diff -Nru plantuml-8024/build.xml plantuml-8039/build.xml --- plantuml-8024/build.xml 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/build.xml 2016-04-22 16:26:34.000000000 +0000 @@ -20,7 +20,7 @@ - + + + + + + + + + + + @@ -49,6 +59,8 @@ + + diff -Nru plantuml-8024/COPYING plantuml-8039/COPYING --- plantuml-8024/COPYING 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/COPYING 2016-04-22 16:26:34.000000000 +0000 @@ -2,7 +2,7 @@ PlantUML : a free UML diagram generator ======================================================================== -(C) Copyright 2009-2014, Arnaud Roques +(C) Copyright 2009-2017, Arnaud Roques PlantUML is free software; you can redistribute it and/or modify it under the terms of the MIT License. diff -Nru plantuml-8024/debian/changelog plantuml-8039/debian/changelog --- plantuml-8024/debian/changelog 2015-07-21 13:04:01.000000000 +0000 +++ plantuml-8039/debian/changelog 2016-04-30 11:37:09.000000000 +0000 @@ -1,3 +1,14 @@ +plantuml (8039-1) unstable; urgency=medium + + * New upstream release (Closes: #816501). + * Unbreak PDF rendering (Closes: #807928): + - Depend on libfop-java and libbatik-java + - Edit Class-Path to point to batik and fop. + * Add watch file (Closes: #822094). + * Update debian/copyright (Closes: #822092). + + -- Andrew Shadura Sat, 30 Apr 2016 13:37:08 +0200 + plantuml (8024-2) unstable; urgency=medium * Recommend graphviz, not depend on it (Closes: #793104). diff -Nru plantuml-8024/debian/control plantuml-8039/debian/control --- plantuml-8024/debian/control 2015-07-21 13:04:01.000000000 +0000 +++ plantuml-8039/debian/control 2016-04-30 11:28:34.000000000 +0000 @@ -6,14 +6,19 @@ ant, ant-contrib, javacc, debhelper (>= 9), - default-jdk + default-jdk, + libfop-java, + libbatik-java Standards-Version: 3.9.6 Homepage: http://plantuml.net/ Package: plantuml Architecture: all Depends: - default-jre | java-runtime, ${misc:Depends} + ${misc:Depends}, + default-jre | java-runtime, + libfop-java, + libbatik-java Recommends: graphviz Description: text-to-UML converter PlantUML is a program allowing to draw UML diagrams, using a simple diff -Nru plantuml-8024/debian/copyright plantuml-8039/debian/copyright --- plantuml-8024/debian/copyright 2015-05-05 14:23:16.000000000 +0000 +++ plantuml-8039/debian/copyright 2016-04-30 11:36:26.000000000 +0000 @@ -1,6 +1,7 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: plantuml -Upstream-Contact: Arnaud Roques +Upstream-Contact: Arnaud Roques +Source: http://plantuml.com/download.html Files: * Copyright: 2009-2014, Arnaud Roques diff -Nru plantuml-8024/debian/patches/pdf.patch plantuml-8039/debian/patches/pdf.patch --- plantuml-8024/debian/patches/pdf.patch 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/debian/patches/pdf.patch 2016-04-30 11:30:07.000000000 +0000 @@ -0,0 +1,13 @@ +Subject: Specify Class-Path to the libraries needed to support PDF (#807928). + +--- a/build.xml ++++ b/build.xml +@@ -55,7 +55,7 @@ + + + +- ++ + + + diff -Nru plantuml-8024/debian/patches/series plantuml-8039/debian/patches/series --- plantuml-8024/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/debian/patches/series 2016-04-30 11:22:23.000000000 +0000 @@ -0,0 +1 @@ +pdf.patch diff -Nru plantuml-8024/debian/watch plantuml-8039/debian/watch --- plantuml-8024/debian/watch 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/debian/watch 2016-04-30 11:18:44.000000000 +0000 @@ -0,0 +1,2 @@ +version=4 +http://sf.net/plantuml/ plantuml-mit@ANY_VERSION@@ARCHIVE_EXT@ diff -Nru plantuml-8024/src/gen/lib/cdt/dtclose__c.java plantuml-8039/src/gen/lib/cdt/dtclose__c.java --- plantuml-8024/src/gen/lib/cdt/dtclose__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtclose__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,148 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.Macro.UNSUPPORTED; + +public class dtclose__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 7ggbhlblmrfr1wq1k20npwyxb +// int dtclose(register Dt_t* dt) +public static Object dtclose(Object... arg) { +UNSUPPORTED("5o7j3hhxxjdvmz0k3eg98i8in"); // int dtclose(register Dt_t* dt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2fi55lg37rcjprso1i0385cj5"); // Dtdisc_t *disc; +UNSUPPORTED("pz52m7579heh6vdbqc3dt84v"); // int ev = 0; +UNSUPPORTED("3iyrv07qx7n0s211y8m7mopsz"); // if(!dt || dt->nview > 0 ) /* can't close if being viewed */ +UNSUPPORTED("b0epxudfxjm8kichhaautm2qi"); // return -1; +UNSUPPORTED("9y2zao3al22pjv2p480p4klcc"); // /* announce the close event to see if we should continue */ +UNSUPPORTED("70rampeezpyz05ynxa49umbrz"); // disc = dt->disc; +UNSUPPORTED("8gsk9kzxnlwgo3aceze9c6gl7"); // if(disc->eventf && +UNSUPPORTED("ho436wfj1mjidd6obd19mhll"); // (ev = (*disc->eventf)(dt,2,((void*)0),disc)) < 0) +UNSUPPORTED("b0epxudfxjm8kichhaautm2qi"); // return -1; +UNSUPPORTED("66fqrcqd57dw3fzb30i176w0r"); // if(dt->view) /* turn off viewing */ +UNSUPPORTED("1xbo7gf92fmqmu2tzpfeuc0wk"); // dtview(dt,((Dt_t*)0)); +UNSUPPORTED("9vl9psbe52rphrxhc41erj2qd"); // if(ev == 0) /* release all allocated data */ +UNSUPPORTED("8fubw8ssxlx99qjv7n52cf3ru"); // { (void)(*(dt->meth->searchf))(dt,((void*)0),0000100); +UNSUPPORTED("5rbpcw29jwi3l66b11are2xd5"); // if(dtsize(dt) > 0) +UNSUPPORTED("896vcxnvc07fbkh09vojp66fv"); // return -1; +UNSUPPORTED("8po7fioot1issl5obmk5hqndd"); // if(dt->data->ntab > 0) +UNSUPPORTED("4ugmcpi8vkb013vuo4wykn0a3"); // (*dt->memoryf)(dt,(void*)dt->data->hh._htab,0,disc); +UNSUPPORTED("1bguaull3m0kl140obilq4ucp"); // (*dt->memoryf)(dt,(void*)dt->data,0,disc); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4wjw4hx0hptydzyvkohwgzoo"); // if(dt->type == 0) +UNSUPPORTED("9jx9g23tuicm5x7f5cvznr3rt"); // free((void*)dt); +UNSUPPORTED("4r6n1aai6737i36g78f9z4apm"); // else if(ev == 0 && dt->type == 1) +UNSUPPORTED("6wqxv1f7tzvjk0lwmqdrcq8la"); // (*dt->memoryf)(dt, (void*)dt, 0, disc); +UNSUPPORTED("oxrmf64nqi0a580iiczqkmky"); // if(disc->eventf) +UNSUPPORTED("8bce06bdd64ypwb17ddloqzu8"); // (void)(*disc->eventf)(dt, 6, ((void*)0), disc); +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtdisc__c.java plantuml-8039/src/gen/lib/cdt/dtdisc__c.java --- plantuml-8024/src/gen/lib/cdt/dtdisc__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtdisc__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,214 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.JUtils.function; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Dtsearch_f; +import h._dt_s; +import h._dtdisc_s; +import h._dtlink_s; +import smetana.core.CString; + +public class dtdisc__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 507t9jcy6v9twvl30rs9i2nwi +// static void* dtmemory(Dt_t* dt,void* addr,size_t size,Dtdisc_t* disc) +public static Object dtmemory(Object... arg) { +UNSUPPORTED("18b3dn3pevbf7ajed6fftvnzk"); // static void* dtmemory(Dt_t* dt,void* addr,size_t size,Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cmb0rxzo3c2wr18j0upjz9iml"); // if(addr) +UNSUPPORTED("bn1cyxafod2777wzl55qh14xq"); // { if(size == 0) +UNSUPPORTED("15j5ccp5owse1ebc5ljhbzg59"); // { free(addr); +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("9ed8imo9cbvwtwe92qmavoqko"); // else return realloc(addr,size); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ew5p7pzg1fmdih1t3u25rqz6y"); // else return size > 0 ? malloc(size) : ((void*)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 axpvuswclmi9bx3qtlh4quyah +// Dtdisc_t* dtdisc(Dt_t* dt, Dtdisc_t* disc, int type) +public static _dtdisc_s dtdisc(_dt_s dt, _dtdisc_s disc, int type) { +ENTERING("axpvuswclmi9bx3qtlh4quyah","dtdisc"); +try { + Dtsearch_f searchf; + _dtlink_s r, t; + CString k; + _dtdisc_s old; + if(N(old = (_dtdisc_s) dt.getPtr("disc")) ) /* initialization call from dtopen() */ + { dt.setPtr("disc", disc); + if(N(dt.setPtr("memoryf", disc.getPtr("memoryf") ))) + dt.setPtr("memoryf", function(dtdisc__c.class, "dtmemory")); + return disc; + } + if(N(disc)) /* only want to know current discipline */ + return old; +UNSUPPORTED("6htlkpaqff61iwmsg1be47uci"); // searchf = dt->meth->searchf; +UNSUPPORTED("ckjxpmega2z5oju8xk72wsy0q"); // ((dt->data->type&010000) ? dtrestore(dt,((Dtlink_t*)0)) : 0); +UNSUPPORTED("34klfi71a7k7iqdrvezqetdjg"); // if(old->eventf && (*old->eventf)(dt,3,(void*)disc,old) < 0) +UNSUPPORTED("1cft3x8zrdzefdb93v3f1tuo7"); // return ((Dtdisc_t*)0); +UNSUPPORTED("4e4gm32ypcbtlzkym7sh79rrd"); // dt->disc = disc; +UNSUPPORTED("6nr96is5y2ct55pupgycwbjmt"); // if(!(dt->memoryf = disc->memoryf) ) +UNSUPPORTED("1prh3v6ko1v9w39hgk7wiknjc"); // dt->memoryf = dtmemory; +UNSUPPORTED("epetks7tchxd027a5fogh5s8y"); // if(dt->data->type&(0000040|0000100|0000020)) +UNSUPPORTED("e2tzh95k1lvjl6wbtpwizam8q"); // goto done; +UNSUPPORTED("9z4k8xq4t2p909fvi8gusmmww"); // else if(dt->data->type&0000002) +UNSUPPORTED("3q5nyguq8mgdfwmm0yrzq2br8"); // { if(type&0000002) +UNSUPPORTED("93q6zqzlgfz2qd0yl6koyw99c"); // goto done; +UNSUPPORTED("6d1rfacssm8768oz9fu5o66t8"); // else goto dt_renew; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("eu35368wm4jf6yedwkayoycx4"); // else if(dt->data->type&(0000001|0000002)) +UNSUPPORTED("8xmm1djjds55s86jodixkp72u"); // { if((type&0000002) && (type&0000001)) +UNSUPPORTED("93q6zqzlgfz2qd0yl6koyw99c"); // goto done; +UNSUPPORTED("6d1rfacssm8768oz9fu5o66t8"); // else goto dt_renew; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1ww5saiqcss2tdx5nts4rxpou"); // else /*if(dt->data->type&(DT_OSET|DT_OBAG))*/ +UNSUPPORTED("4582pmh67cgbsphrw05tf0hmm"); // { if(type&0000001) +UNSUPPORTED("93q6zqzlgfz2qd0yl6koyw99c"); // goto done; +UNSUPPORTED("8njey2jaa662w29s8zcqbjln5"); // dt_renew: +UNSUPPORTED("assw6t0chu41lwws2ysqi4fgi"); // r = dtflatten(dt); +UNSUPPORTED("1rry7yjzos90pgbf3li2qpa18"); // dt->data->type &= ~010000; +UNSUPPORTED("6vkn7padspfbtju9g5b65b34w"); // dt->data->here = ((Dtlink_t*)0); +UNSUPPORTED("2jfi30wa60xp7iqlk9yyf4k5j"); // dt->data->size = 0; +UNSUPPORTED("1i3oayy7gy36lar9kfhuq6rur"); // if(dt->data->type&(0000001|0000002)) +UNSUPPORTED("ay51d19gimt3gpqjact2t0ypm"); // { register Dtlink_t **s, **ends; +UNSUPPORTED("5p6g054kk7snvpwuxudelseir"); // ends = (s = dt->data->hh._htab) + dt->data->ntab; +UNSUPPORTED("3zu1r6orkvmsvbjbzqqx9wedr"); // while(s < ends) +UNSUPPORTED("9wq8eycc78fg8sqi6bjce4q7f"); // *s++ = ((Dtlink_t*)0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3rfhc462a0qx53yecw933hkk8"); // /* reinsert them */ +UNSUPPORTED("ctmfjzioo5q7mzsmb6rf9mxoy"); // while(r) +UNSUPPORTED("9qxb0eqp3ujnnuum1bggqarjh"); // { t = r->right; +UNSUPPORTED("ddltpk94i08fyy6x03ozyc7s1"); // if(!(type&0000002)) /* new hash value */ +UNSUPPORTED("8mj2vd7idro90tjnvl6b9trnc"); // { k = (char*)(disc->link < 0 ? ((Dthold_t*)(r))->obj : (void*)((char*)(r) - disc->link) ); +UNSUPPORTED("1dvo2602az1wcigxx20czskv9"); // k = (void*)(disc->size < 0 ? *((char**)((char*)((void*)k)+disc->key)) : ((char*)((void*)k)+disc->key)); +UNSUPPORTED("269t5qi8m2ujfjvmbqvyjvr1s"); // r->hl._hash = (disc->hashf ? (*disc->hashf)(dt,k,disc) : dtstrhash(0,k,disc->size) ); +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("2e2tx3ch32oxo5y01bflgbf2h"); // (void)(*searchf)(dt,(void*)r,0000040); +UNSUPPORTED("8tob14cb9u9q0mnud0wovaioi"); // r = t; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cerydbb7i6l7c4pgeygvwoqk2"); // done: +UNSUPPORTED("bi0p581nen18ypj0ey48s6ete"); // return old; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("axpvuswclmi9bx3qtlh4quyah","dtdisc"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtextract__c.java plantuml-8039/src/gen/lib/cdt/dtextract__c.java --- plantuml-8024/src/gen/lib/cdt/dtextract__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtextract__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,143 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h._dt_s; +import h._dtlink_s; + +public class dtextract__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 ar89jjwhuitmbhut1o3ft3zpb +// Dtlink_t* dtextract(register Dt_t* dt) +public static _dtlink_s dtextract(_dt_s dt) { +ENTERING("ar89jjwhuitmbhut1o3ft3zpb","dtextract"); +try { + _dtlink_s list = null; + _dtlink_s s[], ends[]; + if((dt.getPtr("data").getInt("type")&(0000004|0000010) )!=0) + list = (_dtlink_s) dt.getPtr("data").getPtr("here"); + else if((dt.getPtr("data").getInt("type")&(0000001|0000002))!=0) + { UNSUPPORTED("list = dtflatten(dt)"); +UNSUPPORTED("8i2mufw9f604gvj48u8nbdazp"); // for(ends = (s = dt->data->hh._htab) + dt->data->ntab; s < ends; ++s) +UNSUPPORTED("4sml4zdr938yth6x815jt1dlm"); // *s = ((Dtlink_t*)0); + } + else /*if(dt->data->type&(DT_LIST|DT_STACK|DT_QUEUE))*/ + { list = (_dtlink_s) dt.getPtr("data").getPtr("hh").getPtr("_head"); + dt.getPtr("data").getPtr("hh").setPtr("_head", null); + } + dt.getPtr("data").setInt("type", dt.getPtr("data").getInt("type") & ~010000); + dt.getPtr("data").setInt("size", 0); + dt.getPtr("data").setPtr("here", null); + return list; +} finally { +LEAVING("ar89jjwhuitmbhut1o3ft3zpb","dtextract"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtflatten__c.java plantuml-8039/src/gen/lib/cdt/dtflatten__c.java --- plantuml-8024/src/gen/lib/cdt/dtflatten__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtflatten__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,155 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.Macro.UNSUPPORTED; + +public class dtflatten__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 5zkzkycgp4e90pajuq4tczdbu +// Dtlink_t* dtflatten(Dt_t* dt) +public static Object dtflatten(Object... arg) { +UNSUPPORTED("1u9gaaespn5nsfpluy23yon7s"); // Dtlink_t* dtflatten(Dt_t* dt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("82qvflv3akadrlktyouix927i"); // register Dtlink_t *t, *r, *list, *last, **s, **ends; +UNSUPPORTED("3ku8njvyle1rle6f9ipn7rggg"); // /* already flattened */ +UNSUPPORTED("88rit68bon46m42ei6oby73oo"); // if(dt->data->type&010000 ) +UNSUPPORTED("d43szif4rveu1dyhv72xv101u"); // return dt->data->here; +UNSUPPORTED("1se1h7w1gasp0ag8tisjl5pox"); // list = last = ((Dtlink_t*)0); +UNSUPPORTED("32ow9kmsxf47y1h17vyj3ef11"); // if(dt->data->type&(0000001|0000002)) +UNSUPPORTED("9tn2ho5yddz96m6l7hzk1m1v7"); // { for(ends = (s = dt->data->hh._htab) + dt->data->ntab; s < ends; ++s) +UNSUPPORTED("5n6odtt738etawc5nprf2q25r"); // { if((t = *s) ) +UNSUPPORTED("7bsf06vm0raykokk6wn5303yf"); // { if(last) +UNSUPPORTED("9albzpygbxkhbrb2e3af7z7b9"); // last->right = t; +UNSUPPORTED("3flwmlcisbdjifpiw5azq841e"); // else list = last = t; +UNSUPPORTED("1pn5heoey2lil0muuixlrz154"); // while(last->right) +UNSUPPORTED("14t2izprf2nq8tnxy4yre0zso"); // last = last->right; +UNSUPPORTED("bgkf4krgjdc0kzlz7de3kbj2u"); // *s = last; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2lqxby7q5n5w5w5uuujup7o8a"); // else if(dt->data->type&(0000020|0000040|0000100) ) +UNSUPPORTED("13uczemwz6rongidozoryhb8e"); // list = dt->data->hh._head; +UNSUPPORTED("6amw1s4wntui27fzf3qls02u5"); // else if((r = dt->data->here) ) /*if(dt->data->type&(DT_OSET|DT_OBAG))*/ +UNSUPPORTED("solulu57qiizpqhr11tmch0h"); // { while((t = r->hl._left) ) +UNSUPPORTED("em247yaxylt9wh0lfmqk531iy"); // (((r)->hl._left = (t)->right, (t)->right = (r)), (r) = (t)); +UNSUPPORTED("6ggr0z59qqyosbseo6wdmvkc3"); // for(list = last = r, r = r->right; r; last = r, r = r->right) +UNSUPPORTED("2jldxtvoid7uy4yqdouts2ysu"); // { if((t = r->hl._left) ) +UNSUPPORTED("ecb7vosojs9ov68ty9m0hzegp"); // { do (((r)->hl._left = (t)->right, (t)->right = (r)), (r) = (t)); +UNSUPPORTED("f2e7di1g7bvt88336jnz0ogd5"); // while((t = r->hl._left) ); +UNSUPPORTED("dol9o0lco748q0ap9l7afdbcs"); // last->right = r; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e880ypqj4mv8ru940eyjo5ene"); // dt->data->here = list; +UNSUPPORTED("8hv4u1n328awal8yfoqykdhxi"); // dt->data->type |= 010000; +UNSUPPORTED("bq8fdnp0ptlj82raupu7egafd"); // return list; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dthash__c.java plantuml-8039/src/gen/lib/cdt/dthash__c.java --- plantuml-8024/src/gen/lib/cdt/dthash__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dthash__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,443 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.Macro.UNSUPPORTED; + +public class dthash__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 7akctm4caciv9haxdk4zlrwu2 +// static void dthtab(Dt_t* dt) +public static Object dthtab(Object... arg) { +UNSUPPORTED("2d2m2vzj4zvzgd4r2zn2s1kqn"); // static void dthtab(Dt_t* dt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dmm9rj1e4gzk6xftk0ezcsact"); // register Dtlink_t *t, *r, *p, **s, **hs, **is, **olds; +UNSUPPORTED("54n8pasotrjhynrhaueagwuhz"); // int n, k; +UNSUPPORTED("axpkyw9uz8rvnmklligok2e2f"); // if(dt->data->minp > 0 && dt->data->ntab > 0) /* fixed table size */ +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("2eqdiqvcsxis68sccmci5sslk"); // dt->data->minp = 0; +UNSUPPORTED("74tln6sb3yrn1nfwgllf1vfj1"); // n = dt->data->ntab; +UNSUPPORTED("6bgqjnz4t47feeoy1br9ew29p"); // if(dt->disc && dt->disc->eventf && +UNSUPPORTED("cr75vmjji1xsei24agv44wqxh"); // (*dt->disc->eventf)(dt, 7, &n, dt->disc) > 0 ) +UNSUPPORTED("4jwe6txgxjvpban5zstx09mx8"); // { if(n < 0) /* fix table size */ +UNSUPPORTED("7chn136gsjv69n13yovn16f3b"); // { dt->data->minp = 1; +UNSUPPORTED("4dlk72qfzjf2r39ukyq7yzfyp"); // if(dt->data->ntab > 0 ) +UNSUPPORTED("49xixhkg85008801z87qmxkgl"); // return; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7yuj23uvw15fcmez2o1pzkjrl"); // else /* set a particular size */ +UNSUPPORTED("14rrn3w4adtaiolijjyulmjsn"); // { for(k = 2; k < n; k *= 2) +UNSUPPORTED("8c0hnggfgcchqp0vr4bwobm4t"); // ; +UNSUPPORTED("dvmpnz9ncerzmb5v8gidr7eis"); // n = k; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("932vaq51fbf5l8i420kesqfg0"); // else n = 0; +UNSUPPORTED("bh1ire4hwludcleecmxv0smag"); // /* compute new table size */ +UNSUPPORTED("abhbgzrg4q5z2vkoed72su98y"); // if(n <= 0) +UNSUPPORTED("dab3gyaa9l6c1zsdv75gwesrh"); // { if((n = dt->data->ntab) == 0) +UNSUPPORTED("4021uenum9y6sgeuboex8d0on"); // n = (256); +UNSUPPORTED("c1uorlajtkwlvx1a2h6ajr0bp"); // while(dt->data->size > ((n) << 1)) +UNSUPPORTED("99wvpps4p28ykwrtq32whiwrd"); // n = ((n) << 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("b2ppghcwec8d3i5y20q5cibn2"); // if(n == dt->data->ntab) +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("ui70t5x7lzm4cg4q5hqswo74"); // /* allocate new table */ +UNSUPPORTED("710t2p2pi32z07r1o6a8imf9j"); // olds = dt->data->ntab == 0 ? ((Dtlink_t**)0) : dt->data->hh._htab; +UNSUPPORTED("400z1yutimeajug4gd8t0opt6"); // if(!(s = (Dtlink_t**)(*dt->memoryf)(dt,olds,n*sizeof(Dtlink_t*),dt->disc)) ) +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("a4y1edr0vk9beqab7n7td6s29"); // olds = s + dt->data->ntab; +UNSUPPORTED("2rycm855gyv5lww7scwom17j3"); // dt->data->hh._htab = s; +UNSUPPORTED("duhcyhub67fpfsay0dkflcxt6"); // dt->data->ntab = n; +UNSUPPORTED("7ksrj2u284dwkngf2km9jg4xj"); // /* rehash elements */ +UNSUPPORTED("1hz692vbawik1ma02xl4o6i21"); // for(hs = s+n-1; hs >= olds; --hs) +UNSUPPORTED("s5sbwingw26r7aehxbc0ii4z"); // *hs = ((Dtlink_t*)0); +UNSUPPORTED("9ymwe2szhthzd4w5m4zv4jag6"); // for(hs = s; hs < olds; ++hs) +UNSUPPORTED("clyaoquug0nyscqmgfstnd3um"); // { for(p = ((Dtlink_t*)0), t = *hs; t; t = r) +UNSUPPORTED("ccbd2da5hrf94txyeadl64rj4"); // { r = t->right; +UNSUPPORTED("84b31s29uevgnrutqi5beo35a"); // if((is = s + ((t->hl._hash)&((n)-1))) == hs) +UNSUPPORTED("59zqwaqjkez5xrkcft9rm1ddg"); // p = t; +UNSUPPORTED("9cm22gi5ztcly2xp8i8bnnrq0"); // else /* move to a new chain */ +UNSUPPORTED("apvgwu04dgxcsjo6z3uw5k0mn"); // { if(p) +UNSUPPORTED("boivlg1vuin099locovgrmxuy"); // p->right = r; +UNSUPPORTED("340ftcld884g4rid6m0z4sco1"); // else *hs = r; +UNSUPPORTED("8tchzpmze0ll3y75ehijf6rye"); // t->right = *is; *is = t; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 78zfgu6jzim09d5xvj1qs9bk0 +// static void* dthash(Dt_t* dt, register void* obj, int type) +public static Object dthash(Object... arg) { +UNSUPPORTED("95hr4hrc6nbqqdqdce5tg8l5p"); // static void* dthash(Dt_t* dt, register void* obj, int type) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dfpfp02iblqj4mzvjx0fueyhf"); // register Dtlink_t *t, *r, *p; +UNSUPPORTED("283qljx9jxfsqlak87k7jg5ny"); // register void *k, *key; +UNSUPPORTED("59o4ibfersjospolmfoujpzrx"); // register unsigned int hsh; +UNSUPPORTED("660kbsr1gj2c3whxtgelujyj1"); // register int lk, sz, ky; +UNSUPPORTED("d7uh8kuvwiwc4dkgh3xeqa7o"); // register Dtcompar_f cmpf; +UNSUPPORTED("boylfimuhvbo4nqzby3ew5tld"); // register Dtdisc_t* disc; +UNSUPPORTED("9sfwn5sp00p82cc2ivzw480ta"); // register Dtlink_t **s, **ends; +UNSUPPORTED("ckjxpmega2z5oju8xk72wsy0q"); // ((dt->data->type&010000) ? dtrestore(dt,((Dtlink_t*)0)) : 0); +UNSUPPORTED("5ggzdi5wqxinikmv0anb4peay"); // /* initialize discipline data */ +UNSUPPORTED("a9vwj28gsu58hp4ocpvno985d"); // disc = dt->disc; (ky = disc->key, sz = disc->size, lk = disc->link, cmpf = disc->comparf); +UNSUPPORTED("dpg99ryukgexcc5n31wdbvraz"); // dt->type &= ~0100000; +UNSUPPORTED("e4rxlgclvydwuznpw7rk0rksa"); // if(!obj) +UNSUPPORTED("8htaux93kinbjvm9ooz891eng"); // { if(type&(0000010|0000020)) +UNSUPPORTED("6hku2pc4tqgui5evf317yqvfm"); // goto end_walk; +UNSUPPORTED("1v2lqr5htt1euj04jfa98gjdv"); // if(dt->data->size <= 0 || !(type&(0000100|0000200|0000400)) ) +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("24ilchev6xpf5y6z34hqa9glk"); // ends = (s = dt->data->hh._htab) + dt->data->ntab; +UNSUPPORTED("92nrnv2rh044z4gtldl61vus0"); // if(type&0000100) +UNSUPPORTED("dhfqwls50q72zxh2fxlvobk33"); // { /* clean out all objects */ +UNSUPPORTED("5vi45e0h8c9ymrwgqotzsu9t1"); // for(; s < ends; ++s) +UNSUPPORTED("6pj3i74r6sowp2uu910mr4yg"); // { t = *s; +UNSUPPORTED("6155l1hofhfyspasyb3ahizbd"); // *s = ((Dtlink_t*)0); +UNSUPPORTED("9jtw72qjx20vdh59dfe1phhyr"); // if(!disc->freef && disc->link >= 0) +UNSUPPORTED("6cgu609p2i9fp9atj1fw3s5cy"); // continue; +UNSUPPORTED("4y5ojoi4p0ic91exb1rfs9s86"); // while(t) +UNSUPPORTED("amls96qnaqczr04p9eg8uyu6l"); // { r = t->right; +UNSUPPORTED("9la822tbyggyiqojilsi237uo"); // if(disc->freef) +UNSUPPORTED("3idn1ydm0vaxkb4b0mv2tez2s"); // (*disc->freef)(dt,(lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ),disc); +UNSUPPORTED("7hdvwe89xp5vg9m4l8lpmgvap"); // if(disc->link < 0) +UNSUPPORTED("6km3uqqb8gzn7n83vngsax7up"); // (*dt->memoryf)(dt,(void*)t,0,disc); +UNSUPPORTED("3fq4aglnc1p3fjid7sxse643h"); // t = r; +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("3joovo5f92ue2fnvked57dbbi"); // dt->data->here = ((Dtlink_t*)0); +UNSUPPORTED("196oh3ma81y2lao0qwcvuwvga"); // dt->data->size = 0; +UNSUPPORTED("8kl1r7cphdbs40t2grhkyhall"); // dt->data->loop = 0; +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("9sifrmemn97t14u5b9ib87dh3"); // else /* computing the first/last object */ +UNSUPPORTED("2oievk2z0s9n8fqc9ug1sbb6p"); // { t = ((Dtlink_t*)0); +UNSUPPORTED("ems59hbo02yf35j3szsgvnu3p"); // while(s < ends && !t ) +UNSUPPORTED("6smbnv0v11g3t6zcnn0gw1cb1"); // t = (type&0000400) ? *--ends : *s++; +UNSUPPORTED("7kk99glk5rm9xs40c8htgo3k"); // if(t && (type&0000400)) +UNSUPPORTED("40b46zexoifo1zv4zz3pqip7m"); // for(; t->right; t = t->right) +UNSUPPORTED("6f76030mwgybzczalesd54a9q"); // ; +UNSUPPORTED("194sa4x6u6hxxh2wes9ola1wt"); // dt->data->loop += 1; +UNSUPPORTED("cqadxs0pgykzd2tkrn18wef8"); // dt->data->here = t; +UNSUPPORTED("2txpn83o34o6qwamy2wb7757o"); // return t ? (lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ) : ((void*)0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7klmk5043gbxzy2n25b5d1dz6"); // /* allow apps to delete an object "actually" in the dictionary */ +UNSUPPORTED("dt29n4tw5mutzyr4fm34jru8t"); // if(dt->meth->type == 0000002 && (type&(0000002|0010000)) ) +UNSUPPORTED("7sbjzi3lqgrnk2dukj4saoqhr"); // { if(!(*(((Dt_t*)(dt))->searchf))((dt),(void*)(obj),0000004) ) +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("eq489drc6t4nw9jr6scwaf47r"); // s = dt->data->hh._htab + ((dt->data->here->hl._hash)&((dt->data->ntab)-1)); +UNSUPPORTED("716ly4m21se00kv1jixe0abvv"); // r = ((Dtlink_t*)0); +UNSUPPORTED("ee5wwcf1ozo1pwrw5cqvta4ye"); // for(p = ((Dtlink_t*)0), t = *s; t; p = t, t = t->right) +UNSUPPORTED("8s0kw91pqx35e9cb8bnmjfpxd"); // { if((lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ) == obj) /* delete this specific object */ +UNSUPPORTED("cazdlksn7swkecr1zwj7u20e7"); // goto do_delete; +UNSUPPORTED("9zezhzqukdf30pddcygujrvm4"); // if(t == dt->data->here) +UNSUPPORTED("e8vu7jceswis3y29jjwhq9ng9"); // r = p; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("eqykdmanwamw75kiyy2znwojp"); // /* delete some matching object */ +UNSUPPORTED("3jvj5fms81a41732hc1ygnn8l"); // p = r; t = dt->data->here; +UNSUPPORTED("8a5ic396b1zd3ypknh2ni33pl"); // goto do_delete; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ctx8452ml6zkglwpzkrei4r8p"); // if(type&(0001000|0000004|0000001|0004000) ) +UNSUPPORTED("dow6c5q06mynnixn0dg629l8s"); // { key = (type&0001000) ? obj : (void*)(sz < 0 ? *((char**)((char*)(obj)+ky)) : ((char*)(obj)+ky)); +UNSUPPORTED("ki4jtqbenojcbm9xo3cw0acj"); // hsh = (disc->hashf ? (*disc->hashf)(dt,key,disc) : dtstrhash(0,key,sz) ); +UNSUPPORTED("5qfstwhbyczhb45awkns4w6s2"); // goto do_search; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("17mzyz618jog9kxscctj849qn"); // else if(type&(0000040|0002000) ) +UNSUPPORTED("a1tr8ku0sxlizc02em1xpti9m"); // { r = (Dtlink_t*)obj; +UNSUPPORTED("5z333zdlm5fisvkd28wdk08lb"); // obj = (lk < 0 ? ((Dthold_t*)(r))->obj : (void*)((char*)(r) - lk) ); +UNSUPPORTED("4mu735y1gatwqfcwvw32kyv4b"); // key = (void*)(sz < 0 ? *((char**)((char*)(obj)+ky)) : ((char*)(obj)+ky)); +UNSUPPORTED("9nsf0jvmpu3ekpif3tgtn9bfj"); // hsh = r->hl._hash; +UNSUPPORTED("5qfstwhbyczhb45awkns4w6s2"); // goto do_search; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6demt9oump237iqswn7lymci2"); // else /*if(type&(DT_DELETE|DT_DETACH|DT_NEXT|DT_PREV))*/ +UNSUPPORTED("8ftvpvpaincodxzo3trgtpjw6"); // { if((t = dt->data->here) && (lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ) == obj) +UNSUPPORTED("9081zc00zn4etyvhw0gwp2pr1"); // { hsh = t->hl._hash; +UNSUPPORTED("q62hm6hsn7w01e8d040wd36q"); // s = dt->data->hh._htab + ((hsh)&((dt->data->ntab)-1)); +UNSUPPORTED("bq7yqk7ac7ar48epr0ntxlu34"); // p = ((Dtlink_t*)0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("9e1xg9ecdgp2asux0oagyok6z"); // { key = (void*)(sz < 0 ? *((char**)((char*)(obj)+ky)) : ((char*)(obj)+ky)); +UNSUPPORTED("7iiuizt4e3k2puwkokgnwk9fl"); // hsh = (disc->hashf ? (*disc->hashf)(dt,key,disc) : dtstrhash(0,key,sz) ); +UNSUPPORTED("2w8sqwcszvntntnfpandwatxf"); // do_search: +UNSUPPORTED("904ox6qqmbvtgeqaalo2krcxq"); // t = dt->data->ntab <= 0 ? ((Dtlink_t*)0) : +UNSUPPORTED("anysrymqqdewimlodxh4vnnf0"); // *(s = dt->data->hh._htab + ((hsh)&((dt->data->ntab)-1))); +UNSUPPORTED("1urtk6yxjydqmp6auwlxz1mry"); // for(p = ((Dtlink_t*)0); t; p = t, t = t->right) +UNSUPPORTED("a94c3oi4jicbke9656azbdmxw"); // { if(hsh == t->hl._hash) +UNSUPPORTED("aba8e4nanbm4v7i73vtichn3a"); // { k = (lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ); k = (void*)(sz < 0 ? *((char**)((char*)(k)+ky)) : ((char*)(k)+ky)); +UNSUPPORTED("6q8ct40por7odz1fi4kqawhu6"); // if((cmpf ? (*cmpf)(dt,key,k,disc) : (sz <= 0 ? strcmp(key,k) : memcmp(key,k,sz)) ) == 0) +UNSUPPORTED("3s0v3cbomg51jgxsi6nrpjbab"); // break; +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("12o3l2uuqwkn6zu5n9ag5b6tv"); // if(t) /* found matching object */ +UNSUPPORTED("b2cn93r7r83xjuylu9s3s7srd"); // dt->type |= 0100000; +UNSUPPORTED("a99qjy1ylbnckiqdhzekz7iaj"); // if(type&(0001000|0000004|0002000)) +UNSUPPORTED("afvq5mw03wvx0n3mvvbrqldkw"); // { if(!t) +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("4lorj98ma2upixa5rr5xwzij7"); // if(p && (dt->data->type&0000001) && dt->data->loop <= 0) +UNSUPPORTED("e12cfa3i62c3w5e93s2snz2io"); // { /* move-to-front heuristic */ +UNSUPPORTED("3rwbnud1fhq4g3dgtggb8ivmp"); // p->right = t->right; +UNSUPPORTED("7w9vk40tp93lbthf68mymuvl7"); // t->right = *s; +UNSUPPORTED("47dhsbny95udoaz2m518jipnd"); // *s = t; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3yx8gco1u2rbh7pp98bmhshcv"); // dt->data->here = t; +UNSUPPORTED("38zm3lu1kmess9k4fq9vw7307"); // return (lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5s9uhnjsikxyxacq0a5avxqlu"); // else if(type&(0000001|0004000)) +UNSUPPORTED("m0dd3fl2j1h8l4v5qcbx8pe3"); // { if(t && (dt->data->type&0000001) ) +UNSUPPORTED("2gqu6oymjvcnv26ghvpj8uw8q"); // { dt->data->here = t; +UNSUPPORTED("7y3981d1t51r85enkkeisu5o"); // return (lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("by4sdf3z0t5wzasnh0mn7qynq"); // if(disc->makef && (type&0000001) && +UNSUPPORTED("819jcvpr9y2bgzfligpibwpw3"); // !(obj = (*disc->makef)(dt,obj,disc)) ) +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("293ajmk1i2zgdsq0l7383qwh3"); // if(lk >= 0) +UNSUPPORTED("3zy0ha2od6p4le2e9q0z8fp5t"); // r = ((Dtlink_t*)((char*)(obj) + lk) ); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("98qmqsabqfk3u0p0lk7ea0p5t"); // { r = (Dtlink_t*)(*dt->memoryf) +UNSUPPORTED("2t8zht6j7v4lkeafea2xf5hyg"); // (dt,((void*)0),sizeof(Dthold_t),disc); +UNSUPPORTED("cd514pac1r4g4n22vahs1hysz"); // if(r) +UNSUPPORTED("9t49z1jdnrgb6bhq6nkkue1ic"); // ((Dthold_t*)r)->obj = obj; +UNSUPPORTED("cqgi8f4d37bqva8z6bx5rvn7w"); // else +UNSUPPORTED("1v509jpumhakfypnj2ti3gu5c"); // { if(disc->makef && disc->freef && (type&0000001)) +UNSUPPORTED("9mpf4sqfgdx785iln3tc53xtk"); // (*disc->freef)(dt,obj,disc); +UNSUPPORTED("aa9atfxr38jo3q71l1xw0bq6k"); // return ((void*)0); +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("s0qtzqe9ppt5wefo9x8w939l"); // r->hl._hash = hsh; +UNSUPPORTED("3bloaq1kau0kxrhfjsbw3ww7t"); // /* insert object */ +UNSUPPORTED("94p1b6yx4z1w4h646vfezwz82"); // do_insert: +UNSUPPORTED("nkb78kwk99oj3n3899azwlch"); // if((dt->data->size += 1) > ((dt->data->ntab) << 1) && dt->data->loop <= 0 ) +UNSUPPORTED("9airb3ddrtasz9ic8vmjmmb3d"); // dthtab(dt); +UNSUPPORTED("atoexyb2y1uyfcvz9fsj28sgk"); // if(dt->data->ntab == 0) +UNSUPPORTED("dod3zpy4g6u8jgmxup50qqys9"); // { dt->data->size -= 1; +UNSUPPORTED("bzc6n7f7vqj21bnxsl91xkwby"); // if(disc->freef && (type&0000001)) +UNSUPPORTED("6tpn7nvqe9d7xas7x5oayr89e"); // (*disc->freef)(dt,obj,disc); +UNSUPPORTED("4jky808nj7nqoi0xqghkq71hu"); // if(disc->link < 0) +UNSUPPORTED("7c6rtwyp4m40lrj88mpgnpb21"); // (*disc->memoryf)(dt,(void*)r,0,disc); +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("4vk743730me6fvf2qfsyeksur"); // s = dt->data->hh._htab + ((hsh)&((dt->data->ntab)-1)); +UNSUPPORTED("xlqibqplgtj358b7ra1xzef6"); // if(t) +UNSUPPORTED("7o4qhqtysg0296gjwygjc528s"); // { r->right = t->right; +UNSUPPORTED("dkl4v64gxr1lec2474603kdmj"); // t->right = r; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("bzix5h9vod9ss1htxqdqpq1de"); // { r->right = *s; +UNSUPPORTED("4ihgxtxxn05e6la642e1lt0de"); // *s = r; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7nqs3a1rtwdoaksqwklk6h9mr"); // dt->data->here = r; +UNSUPPORTED("62u47ehg5sw7ibh04rvqqdaws"); // return obj; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5k3wkmt1521n2igrbw361wdxw"); // else if(type&0000010) +UNSUPPORTED("9he18g2ou1k5oep0depme6a0l"); // { if(t && !(p = t->right) ) +UNSUPPORTED("dda3cpvj9gd3ckayd4vtx06jw"); // { for(ends = dt->data->hh._htab+dt->data->ntab, s += 1; s < ends; ++s) +UNSUPPORTED("2f8x3x8q9d4l3zxkrdo3tgqug"); // if((p = *s) ) +UNSUPPORTED("6ioth986rfbv208dp59shjy15"); // break; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6fbjgrqdc634wlamdggxuyx1y"); // goto done_adj; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("eeak67ajn02aq4hfkpb1houzf"); // else if(type&0000020) +UNSUPPORTED("83v3fyui557cjpsucdnk29bcy"); // { if(t && !p) +UNSUPPORTED("19279rks7tm3qlocyny8mcg8s"); // { if((p = *s) != t) +UNSUPPORTED("9bho5o6g8z5l0obq611t4vwmt"); // { while(p->right != t) +UNSUPPORTED("3vlcvd5o5mws86v5elocljl8c"); // p = p->right; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("cqgi8f4d37bqva8z6bx5rvn7w"); // else +UNSUPPORTED("2l2cjmve22qwyzxs3nemslsrm"); // { p = ((Dtlink_t*)0); +UNSUPPORTED("7x0y3os4rhu1qmyy6cyigcbxn"); // for(s -= 1, ends = dt->data->hh._htab; s >= ends; --s) +UNSUPPORTED("2qzit70v2wvo0hfwhzxndjyet"); // { if((p = *s) ) +UNSUPPORTED("9cd19hzlnsuko7qjdica4avwk"); // { while(p->right) +UNSUPPORTED("cz431qj39zg4imh6mbgcczxqs"); // p = p->right; +UNSUPPORTED("3s0v3cbomg51jgxsi6nrpjbab"); // break; +UNSUPPORTED("7qewsve9tto7ge11dkittrbpg"); // } +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7h31eyrxx5hm6w9t1georb00j"); // done_adj: +UNSUPPORTED("706rjqsb7a7mnl0viqsd8nsuq"); // if(!(dt->data->here = p) ) +UNSUPPORTED("e2m9axtrsvwabp4prolti6gfx"); // { end_walk: +UNSUPPORTED("8mrt3rbp7uw89ql159auu6mmj"); // if((dt->data->loop -= 1) < 0) +UNSUPPORTED("c7fwpv4db3vo9qpsu295z0oxy"); // dt->data->loop = 0; +UNSUPPORTED("7zu532dfsu93magh8miv6p5k7"); // if(dt->data->size > ((dt->data->ntab) << 1) && dt->data->loop <= 0) +UNSUPPORTED("9ev3kbmw9lx3kf7go6zdr7joo"); // dthtab(dt); +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("3y0vfsjtwsjvd3iwojbfm5b7p"); // { dt->data->type |= 020000; +UNSUPPORTED("1lts79855usdqaw6d8govltbd"); // return (lk < 0 ? ((Dthold_t*)(p))->obj : (void*)((char*)(p) - lk) ); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9z9fbich950cta699a2c3p0as"); // else if(type&0000040) +UNSUPPORTED("bupkrulrc2t9aibwzcu7vup7w"); // { if(!t || (dt->data->type&0000002) ) +UNSUPPORTED("1xk47swi87x8a68r3ieehnit6"); // goto do_insert; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("9lkixvm4kipsvy4n793m09ss3"); // { if(disc->freef) +UNSUPPORTED("6tpn7nvqe9d7xas7x5oayr89e"); // (*disc->freef)(dt,obj,disc); +UNSUPPORTED("4jky808nj7nqoi0xqghkq71hu"); // if(disc->link < 0) +UNSUPPORTED("9jdzpj2hhktj69wgcvdr063s"); // (*dt->memoryf)(dt,(void*)r,0,disc); +UNSUPPORTED("2txpn83o34o6qwamy2wb7757o"); // return t ? (lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ) : ((void*)0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3mg6hhndwfct91qjn7bg6gadw"); // else /*if(type&(DT_DELETE|DT_DETACH))*/ +UNSUPPORTED("aqnn8gxdjwjn8bj1jmn893w4c"); // { /* take an element out of the dictionary */ +UNSUPPORTED("3lpfu6n28scyhfqq2c0zpty59"); // do_delete: +UNSUPPORTED("22j08xpxd771hlal238zomv7l"); // if(!t) +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("1wcdapl55tiv1q3u4xsoltmsb"); // else if(p) +UNSUPPORTED("3rwbnud1fhq4g3dgtggb8ivmp"); // p->right = t->right; +UNSUPPORTED("blm4o9icjcy4qqrndqfpqqskz"); // else if((p = *s) == t) +UNSUPPORTED("4it0csugmcnk8ky4nutyv355f"); // p = *s = t->right; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("ab3bg0ss7wkmrlthm6d2cwuau"); // { while(p->right != t) +UNSUPPORTED("27m25gnbutgbfo7ek5u2t0l5w"); // p = p->right; +UNSUPPORTED("3rwbnud1fhq4g3dgtggb8ivmp"); // p->right = t->right; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("hy98ituujoflafzec4f3ggok"); // obj = (lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ); +UNSUPPORTED("bhx4ntuz9q54vz0qyvxhuu0vd"); // dt->data->size -= 1; +UNSUPPORTED("c8l936qbhd0ofjozm9bngu6sg"); // dt->data->here = p; +UNSUPPORTED("e1emcft87tamqtb3x6zxbes7w"); // if(disc->freef && (type&0000002)) +UNSUPPORTED("e4inyabba5878wlc02vhj5bos"); // (*disc->freef)(dt,obj,disc); +UNSUPPORTED("azvf369rtz6gyaywwhk7fgjk2"); // if(disc->link < 0) +UNSUPPORTED("3tov74p8twbpi30dtilg9m6my"); // (*dt->memoryf)(dt,(void*)t,0,disc); +UNSUPPORTED("62u47ehg5sw7ibh04rvqqdaws"); // return obj; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 4n0vhm7fg6h57qkecnis5gtj3 +// static Dtmethod_t _Dtset = + + +//1 9sqlu54dfqsrwxxtvmwmq2jpg +// static Dtmethod_t _Dtbag = + + +//1 879dwfn818v9vidj17x5zmfgb +// Dtmethod_t* Dtset = &_Dtset + + +//1 5m11g50hbrc4sn2ajk23ydg4l +// Dtmethod_t* Dtbag = &_Dtbag + + +//1 9e6zvz6pkjqohy0uo1p257pj6 +// Dtmethod_t _Dthash = + + +//1 bagavrxgzbv4by8jydwtj88mn +// Dtmethod_t* Dthash = &_Dthash + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtlist__c.java plantuml-8039/src/gen/lib/cdt/dtlist__c.java --- plantuml-8024/src/gen/lib/cdt/dtlist__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtlist__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,300 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.Macro.UNSUPPORTED; + +public class dtlist__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 dyc3bu1thij9v7t35zhwd5nsq +// static void* dtlist(register Dt_t* dt, register void* obj, register int type) +public static Object dtlist(Object... arg) { +UNSUPPORTED("2zck894ixnu9hdr876kp5kkil"); // static void* dtlist(register Dt_t* dt, register void* obj, register int type) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("660kbsr1gj2c3whxtgelujyj1"); // register int lk, sz, ky; +UNSUPPORTED("d7uh8kuvwiwc4dkgh3xeqa7o"); // register Dtcompar_f cmpf; +UNSUPPORTED("boylfimuhvbo4nqzby3ew5tld"); // register Dtdisc_t* disc; +UNSUPPORTED("3wo04u3bwxjm2adizil0k6dlz"); // register Dtlink_t *r, *t; +UNSUPPORTED("323rs06etsryh0uezhkjtbd04"); // register void *key, *k; +UNSUPPORTED("ckjxpmega2z5oju8xk72wsy0q"); // ((dt->data->type&010000) ? dtrestore(dt,((Dtlink_t*)0)) : 0); +UNSUPPORTED("a9vwj28gsu58hp4ocpvno985d"); // disc = dt->disc; (ky = disc->key, sz = disc->size, lk = disc->link, cmpf = disc->comparf); +UNSUPPORTED("dpg99ryukgexcc5n31wdbvraz"); // dt->type &= ~0100000; +UNSUPPORTED("e4rxlgclvydwuznpw7rk0rksa"); // if(!obj) +UNSUPPORTED("9vsb4m488mn6r0xd65c3b0ngc"); // { if(type&(0000400|0000200) ) +UNSUPPORTED("34qzq70onioczf5s82mjobdhc"); // { if((r = dt->data->hh._head) ) +UNSUPPORTED("a1ikx5viqbw7iuszqxrdkfa5j"); // { if(type&0000400) +UNSUPPORTED("aiwt2i7u6w149zbfq2c4f66g9"); // r = r->hl._left; +UNSUPPORTED("c1wfwlzje3qf7cn9yrd58r8km"); // dt->data->here = r; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("1ccr1wu363pwoqxfhz7hj4sho"); // return r ? (lk < 0 ? ((Dthold_t*)(r))->obj : (void*)((char*)(r) - lk) ) : ((void*)0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("71r0p0szovteqd7xetljof9k9"); // else if(type&(0000002|0010000)) +UNSUPPORTED("rrsc72yw16kb4a9padzlgblh"); // { if((dt->data->type&(0000020|0000200)) || !(r = dt->data->hh._head)) +UNSUPPORTED("aa9atfxr38jo3q71l1xw0bq6k"); // return ((void*)0); +UNSUPPORTED("4btdyuasa2zps0lqshubsiulz"); // else goto dt_delete; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("bg2msoyh5n8nbv3jrv98xl6jr"); // else if(type&0000100) +UNSUPPORTED("8ema02xdl88j1cg663kqjjmoy"); // { if(disc->freef || disc->link < 0) +UNSUPPORTED("8yt6l4wvynb2dh7majp6twtg0"); // { for(r = dt->data->hh._head; r; r = t) +UNSUPPORTED("5hywksyjo83f15ogrt3lyqs9e"); // { t = r->right; +UNSUPPORTED("9la822tbyggyiqojilsi237uo"); // if(disc->freef) +UNSUPPORTED("eglki07oisy1jcm5hyv0ot6so"); // (*disc->freef)(dt,(lk < 0 ? ((Dthold_t*)(r))->obj : (void*)((char*)(r) - lk) ),disc); +UNSUPPORTED("7hdvwe89xp5vg9m4l8lpmgvap"); // if(disc->link < 0) +UNSUPPORTED("dy8c0o748cjxxm1qbvkm09kh7"); // (*dt->memoryf)(dt,(void*)r,0,disc); +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("340j9mmtga6x1r9zokywny8a5"); // dt->data->hh._head = dt->data->here = ((Dtlink_t*)0); +UNSUPPORTED("196oh3ma81y2lao0qwcvuwvga"); // dt->data->size = 0; +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("buskbis6zqn7fgycezsnmb765"); // else return ((void*)0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("17p4kgmskj2wc3ay0ttkyyj16"); // if(type&(0000001|0004000)) +UNSUPPORTED("69mih5ilj4h72bp4vqpelae3s"); // { if(disc->makef && (type&0000001) && +UNSUPPORTED("819jcvpr9y2bgzfligpibwpw3"); // !(obj = (*disc->makef)(dt,obj,disc)) ) +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("293ajmk1i2zgdsq0l7383qwh3"); // if(lk >= 0) +UNSUPPORTED("3zy0ha2od6p4le2e9q0z8fp5t"); // r = ((Dtlink_t*)((char*)(obj) + lk) ); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("98qmqsabqfk3u0p0lk7ea0p5t"); // { r = (Dtlink_t*)(*dt->memoryf) +UNSUPPORTED("2t8zht6j7v4lkeafea2xf5hyg"); // (dt,((void*)0),sizeof(Dthold_t),disc); +UNSUPPORTED("cd514pac1r4g4n22vahs1hysz"); // if(r) +UNSUPPORTED("9t49z1jdnrgb6bhq6nkkue1ic"); // ((Dthold_t*)r)->obj = obj; +UNSUPPORTED("cqgi8f4d37bqva8z6bx5rvn7w"); // else +UNSUPPORTED("1v509jpumhakfypnj2ti3gu5c"); // { if(disc->makef && disc->freef && (type&0000001)) +UNSUPPORTED("9mpf4sqfgdx785iln3tc53xtk"); // (*disc->freef)(dt,obj,disc); +UNSUPPORTED("aa9atfxr38jo3q71l1xw0bq6k"); // return ((void*)0); +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("9xarci6m8xoxbhm19aicfu6op"); // if(dt->data->type&0000200) +UNSUPPORTED("4oa8mskcvinqc3ghe4qb3z2dn"); // { if(type&0020000) +UNSUPPORTED("6x0vnmjxngk10oi72383wrqdf"); // goto dt_queue; +UNSUPPORTED("2nk49e7v4apz4sgkwea1rocq3"); // else goto dt_stack; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d772otym2gfcniiga03pmsruf"); // else if(dt->data->type&0000020) +UNSUPPORTED("4oa8mskcvinqc3ghe4qb3z2dn"); // { if(type&0020000) +UNSUPPORTED("4ojwnzwt744lvh40g1sz5nks1"); // { if(!(t = dt->data->here) || !t->right) +UNSUPPORTED("e3u46nsizxj0zzm1yuz6mkm5t"); // goto dt_queue; +UNSUPPORTED("90e3icond38fe55d3t9mohnek"); // r->right = t->right; +UNSUPPORTED("esezu2zro83gvkxdm9xhz9ogd"); // r->right->hl._left = r; +UNSUPPORTED("2221i8wr1imn1ch4agvlotbvu"); // r->hl._left = t; +UNSUPPORTED("bdrsml91tltn4duaj0fics6nd"); // r->hl._left->right = r; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("cqgi8f4d37bqva8z6bx5rvn7w"); // else +UNSUPPORTED("2k0cdvd207renm6g59nxxjqs8"); // { if(!(t = dt->data->here) || t == dt->data->hh._head) +UNSUPPORTED("8b34roshgo8gwffhg9ma3gsi5"); // goto dt_stack; +UNSUPPORTED("8g4y8anmfv0cidynh11kl3g24"); // r->hl._left = t->hl._left; +UNSUPPORTED("bdrsml91tltn4duaj0fics6nd"); // r->hl._left->right = r; +UNSUPPORTED("bpwbkzd8dztbberjy54bqwr9r"); // r->right = t; +UNSUPPORTED("esezu2zro83gvkxdm9xhz9ogd"); // r->right->hl._left = r; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("22wam4b54ielgtcvtdx3fxy3r"); // else if(dt->data->type&0000040) +UNSUPPORTED("7eyhwlknuhbf62yfdojjgchdk"); // { dt_stack: +UNSUPPORTED("4ikujhrb5r2ufyhi6857ek42v"); // r->right = t = dt->data->hh._head; +UNSUPPORTED("9onfbw0e4egk5q69g1khqbzd"); // if(t) +UNSUPPORTED("35wihezut0mc3f7nshp29ate5"); // { r->hl._left = t->hl._left; +UNSUPPORTED("638235mxuepku23w4hxkl3ep6"); // t->hl._left = r; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("2du87rzew8rt0830ob1tnqxo6"); // else r->hl._left = r; +UNSUPPORTED("7u6umzefjt96rok3qemy1f717"); // dt->data->hh._head = r; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("5tttas5l0qfvco787vns2uan4"); // else /* if(dt->data->type&DT_QUEUE) */ +UNSUPPORTED("ew3f4m8ld77ai8s7ndfdee9v4"); // { dt_queue: +UNSUPPORTED("1aeq93f540gclms5vcjs7rg6a"); // if((t = dt->data->hh._head) ) +UNSUPPORTED("4pksv1ru7zqlljrja5f514o1j"); // { t->hl._left->right = r; +UNSUPPORTED("8g4y8anmfv0cidynh11kl3g24"); // r->hl._left = t->hl._left; +UNSUPPORTED("638235mxuepku23w4hxkl3ep6"); // t->hl._left = r; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("cqgi8f4d37bqva8z6bx5rvn7w"); // else +UNSUPPORTED("4rj7250ci10tq7lo05uezv8w4"); // { dt->data->hh._head = r; +UNSUPPORTED("dg1qkalat0zmys95gxdc4j24o"); // r->hl._left = r; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("my81njr3zdj3gj3b86jcc8o3"); // r->right = ((Dtlink_t*)0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("4p7dqfnzg979k37w3hvqbjhbq"); // if(dt->data->size >= 0) +UNSUPPORTED("1ot5ghc6sf3uiepe9suupzcy4"); // dt->data->size += 1; +UNSUPPORTED("7nqs3a1rtwdoaksqwklk6h9mr"); // dt->data->here = r; +UNSUPPORTED("6q9hi4nb5yoxs4rcb8mon9vdb"); // return (lk < 0 ? ((Dthold_t*)(r))->obj : (void*)((char*)(r) - lk) ); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("69r6haab9votyq47nu1m8m9mo"); // if((type&0001000) || !(r = dt->data->here) || (lk < 0 ? ((Dthold_t*)(r))->obj : (void*)((char*)(r) - lk) ) != obj) +UNSUPPORTED("dow6c5q06mynnixn0dg629l8s"); // { key = (type&0001000) ? obj : (void*)(sz < 0 ? *((char**)((char*)(obj)+ky)) : ((char*)(obj)+ky)); +UNSUPPORTED("5o1yjgbu0qjlg99lqs1h06iyv"); // for(r = dt->data->hh._head; r; r = r->right) +UNSUPPORTED("9d15odjmf2hxhhdsf9s2up2fd"); // { k = (lk < 0 ? ((Dthold_t*)(r))->obj : (void*)((char*)(r) - lk) ); k = (void*)(sz < 0 ? *((char**)((char*)(k)+ky)) : ((char*)(k)+ky)); +UNSUPPORTED("dnok81nrhi3pajt355zkqm76w"); // if((cmpf ? (*cmpf)(dt,key,k,disc) : (sz <= 0 ? strcmp(key,k) : memcmp(key,k,sz)) ) == 0) +UNSUPPORTED("1dhrv6aj5eq8ntuvb7qbs8aot"); // break; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("be1db0r6fggnry37s9bjem8so"); // if(!r) +UNSUPPORTED("5p6q7ip4om6y4nrsjz07ua456"); // return ((void*)0); +UNSUPPORTED("esjg4ndwtf9ryvxfle5f1awdw"); // dt->type |= 0100000; +UNSUPPORTED("2ptdjk4ijgvrjv9sjqrx5b08n"); // if(type&(0000002|0010000)) +UNSUPPORTED("83b3sp1f1vvsa2w5nqdh831ux"); // { dt_delete: +UNSUPPORTED("3ohzd40a39b2h609ckmcpsxvw"); // if(r->right) +UNSUPPORTED("2p8p0mpv6dnqncm0ewg9gtn53"); // r->right->hl._left = r->hl._left; +UNSUPPORTED("2ankbgvq7yr3z93tl1xnbfgpr"); // if(r == (t = dt->data->hh._head) ) +UNSUPPORTED("8ee45f3kh06ajncucnq4d4zn3"); // { dt->data->hh._head = r->right; +UNSUPPORTED("58dd1wmd3q6hu7jmyttutbtjp"); // if(dt->data->hh._head) +UNSUPPORTED("24pdk7685q5i3eyip2b52xc1a"); // dt->data->hh._head->hl._left = t->hl._left; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("uo5j3uk44ezbi34a4lez0vko"); // { r->hl._left->right = r->right; +UNSUPPORTED("122rcml8ecn8royyv655mfxp7"); // if(r == t->hl._left) +UNSUPPORTED("crlanj0wz66t4lpcauaoonqsc"); // t->hl._left = r->hl._left; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("2550dhcfkngbylvb1phmq8ebq"); // dt->data->here = r == dt->data->here ? r->right : ((Dtlink_t*)0); +UNSUPPORTED("bhx4ntuz9q54vz0qyvxhuu0vd"); // dt->data->size -= 1; +UNSUPPORTED("5z333zdlm5fisvkd28wdk08lb"); // obj = (lk < 0 ? ((Dthold_t*)(r))->obj : (void*)((char*)(r) - lk) ); +UNSUPPORTED("e1emcft87tamqtb3x6zxbes7w"); // if(disc->freef && (type&0000002)) +UNSUPPORTED("e4inyabba5878wlc02vhj5bos"); // (*disc->freef)(dt,obj,disc); +UNSUPPORTED("azvf369rtz6gyaywwhk7fgjk2"); // if(disc->link < 0) +UNSUPPORTED("16tb09hfz1sv26gfi60t8ji16"); // (*dt->memoryf)(dt,(void*)r,0,disc); +UNSUPPORTED("62u47ehg5sw7ibh04rvqqdaws"); // return obj; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5k3wkmt1521n2igrbw361wdxw"); // else if(type&0000010) +UNSUPPORTED("4zcwolmq8zlneya8ew49t1qc4"); // r = r->right; +UNSUPPORTED("eeak67ajn02aq4hfkpb1houzf"); // else if(type&0000020) +UNSUPPORTED("80ghi58dnl87w9e87qt2lw3jn"); // r = r == dt->data->hh._head ? ((Dtlink_t*)0) : r->hl._left; +UNSUPPORTED("1osns9frhkriafbjyob0sbz8z"); // dt->data->here = r; +UNSUPPORTED("cij46y936bg1ikv3ztksloy91"); // return r ? (lk < 0 ? ((Dthold_t*)(r))->obj : (void*)((char*)(r) - lk) ) : ((void*)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 9hopil17a8eg1agt37070u73q +// Dtmethod_t _Dtlist = + + +//1 1fxnvjagcf621oxjj3ciypwfy +// Dtmethod_t _Dtdeque = + + +//1 40f33oiu7l21l1jxw9wfoux8f +// Dtmethod_t _Dtstack = + + +//1 14hp9ggjclgs43wn0uwmfw77d +// Dtmethod_t _Dtqueue = + + +//1 b1q50g67csjki72iuef5of8zy +// Dtmethod_t* Dtlist = &_Dtlist + + +//1 62b2csa6dv66okdkjb7evy47o +// Dtmethod_t* Dtdeque = &_Dtdeque + + +//1 4e88n3c3ml5i5mf3oqr7si856 +// Dtmethod_t* Dtstack = &_Dtstack + + +//1 zroiycxvakotau1jgb16sjzz +// Dtmethod_t* Dtqueue = &_Dtqueue + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtmethod__c.java plantuml-8039/src/gen/lib/cdt/dtmethod__c.java --- plantuml-8024/src/gen/lib/cdt/dtmethod__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtmethod__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,183 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.Macro.UNSUPPORTED; + +public class dtmethod__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 5y8zard8q0t7wd1fznlyiu0is +// Dtmethod_t* dtmethod(Dt_t* dt, Dtmethod_t* meth) +public static Object dtmethod(Object... arg) { +UNSUPPORTED("3km1xhxqsi1kc6xhl15kcri1f"); // Dtmethod_t* dtmethod(Dt_t* dt, Dtmethod_t* meth) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bf4mmzf6u2tqotgqbd6k8eqp0"); // register Dtlink_t *list, *r; +UNSUPPORTED("ab9fv18fhjzwp3wngyyqarrns"); // register Dtdisc_t* disc = dt->disc; +UNSUPPORTED("crjx4y1aesvbz4wkqg5642nj4"); // register Dtmethod_t* oldmeth = dt->meth; +UNSUPPORTED("5c6whtsf2a3glrlh1kczzpqe9"); // if(!meth || meth->type == oldmeth->type) +UNSUPPORTED("8ttmhoaftdijn5bkmfimd9x7"); // return oldmeth; +UNSUPPORTED("8gsk9kzxnlwgo3aceze9c6gl7"); // if(disc->eventf && +UNSUPPORTED("fwq3340fa0pnag7j0f4o7wzm"); // (*disc->eventf)(dt,4,(void*)meth,disc) < 0) +UNSUPPORTED("2igwwp2cx3n29p50m7m8ioyv2"); // return ((Dtmethod_t*)0); +UNSUPPORTED("2eqdiqvcsxis68sccmci5sslk"); // dt->data->minp = 0; +UNSUPPORTED("3lnvvw51l9ruzql33ygokb3l9"); // /* get the list of elements */ +UNSUPPORTED("458eivbagnsewjl8xhw519qcg"); // list = dtflatten(dt); +UNSUPPORTED("9qekjyedz55m5wna2o1oggk12"); // if(dt->data->type&(0000020|0000040|0000100) ) +UNSUPPORTED("3v40gkacc2m6me0zor7nhpjmw"); // dt->data->hh._head = ((Dtlink_t*)0); +UNSUPPORTED("9l8vi2w86i0txe17utistljqu"); // else if(dt->data->type&(0000001|0000002) ) +UNSUPPORTED("hysmhouy1ud6hsdj0cubiudt"); // { if(dt->data->ntab > 0) +UNSUPPORTED("4ugmcpi8vkb013vuo4wykn0a3"); // (*dt->memoryf)(dt,(void*)dt->data->hh._htab,0,disc); +UNSUPPORTED("daqygvp6d794yl5eu8d06g3gi"); // dt->data->ntab = 0; +UNSUPPORTED("1wghucytlosmvwxh9hs06gqnv"); // dt->data->hh._htab = ((Dtlink_t**)0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bl1pmhqf3x1in1wvwhq1v00u2"); // dt->data->here = ((Dtlink_t*)0); +UNSUPPORTED("762s6dooy1oj4wiqk2j8mtcs7"); // dt->data->type = (dt->data->type&~(0000377|010000)) | meth->type; +UNSUPPORTED("62j00tqtfsxxmirwb05ur7z0t"); // dt->meth = meth; +UNSUPPORTED("3hek07go1qr5flyhweyvb88hh"); // if(dt->searchf == oldmeth->searchf) +UNSUPPORTED("7d7hyoujq87agx8focnjapazd"); // dt->searchf = meth->searchf; +UNSUPPORTED("c0iupu78ptdjv7tkp4fp5eoem"); // if(meth->type&(0000020|0000040|0000100) ) +UNSUPPORTED("10dxbmrp9w60lb4wyi4c6ze8a"); // { if(!(oldmeth->type&(0000020|0000040|0000100)) ) +UNSUPPORTED("c6eshgqlcm9am6oih7mqy27cx"); // { if((r = list) ) +UNSUPPORTED("cxw84g4fps5l02s4epfyl6n2r"); // { register Dtlink_t* t; +UNSUPPORTED("et4fiw7yaciidg54t59if0gz"); // for(t = r->right; t; r = t, t = t->right ) +UNSUPPORTED("6y5abi7x957jjhe2rscd9ufjx"); // t->hl._left = r; +UNSUPPORTED("8nfo3btdkjap25oecr3r2t9zz"); // list->hl._left = r; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7duc1evkuyrgnx1k6sqnyoc1e"); // dt->data->hh._head = list; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("99xc5unqmtom8dp50z8en6k79"); // else if(meth->type&(0000004|0000010)) +UNSUPPORTED("dejooawjmch41k0n8wz35280p"); // { dt->data->size = 0; +UNSUPPORTED("dzuwpmnfrpq395y1ou6zll3u2"); // while(list) +UNSUPPORTED("4b3ko2bznm8f1y9qeju4acfua"); // { r = list->right; +UNSUPPORTED("bdgaa5aljhk83mgc5oupnofue"); // (*meth->searchf)(dt,(void*)list,0000040); +UNSUPPORTED("eoujol9u634bcw14kwkb2lm5x"); // list = r; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5i0ckqkt3yzykzquvm6nd08wf"); // else if(!((meth->type&0000002) && (oldmeth->type&0000001)) ) +UNSUPPORTED("34wwvljvfvcvyh3obzyhgmnpo"); // { int rehash; +UNSUPPORTED("6akycohy5byonwsy0g7a3l1nk"); // if((meth->type&(0000001|0000002)) && !(oldmeth->type&(0000001|0000002))) +UNSUPPORTED("4o1gcrc4m2r1348akifhsvudt"); // rehash = 1; +UNSUPPORTED("1byx9oyi0ig37sdx42lv59xv"); // else rehash = 0; +UNSUPPORTED("4zu0hy7teh1cxc74ifeho8ej3"); // dt->data->size = dt->data->loop = 0; +UNSUPPORTED("dzuwpmnfrpq395y1ou6zll3u2"); // while(list) +UNSUPPORTED("4b3ko2bznm8f1y9qeju4acfua"); // { r = list->right; +UNSUPPORTED("20x8nlwk3x08qy0vwwzj6qtad"); // if(rehash) +UNSUPPORTED("30b8etf9nx2grv2w7rsytmgxk"); // { register void* key = (disc->link < 0 ? ((Dthold_t*)(list))->obj : (void*)((char*)(list) - disc->link) ); +UNSUPPORTED("8h5rhllokrgydtbfodokfa8tk"); // key = (void*)(disc->size < 0 ? *((char**)((char*)(key)+disc->key)) : ((char*)(key)+disc->key)); +UNSUPPORTED("t4uwrmevpnx4doh1anexa33y"); // list->hl._hash = (disc->hashf ? (*disc->hashf)(dt,key,disc) : dtstrhash(0,key,disc->size) ); +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("9dj4v9f2xppzoxbumhwauuzk6"); // (void)(*meth->searchf)(dt,(void*)list,0000040); +UNSUPPORTED("eoujol9u634bcw14kwkb2lm5x"); // list = r; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("37bs415tc2fi47jgdzwr9kyeu"); // return oldmeth; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtopen__c.java plantuml-8039/src/gen/lib/cdt/dtopen__c.java --- plantuml-8024/src/gen/lib/cdt/dtopen__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtopen__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,200 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static gen.lib.cdt.dtdisc__c.dtdisc; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.N; +import h._dt_s; +import h._dtdata_s; +import h._dtdisc_s; +import h._dtmethod_s; +import smetana.core.Memory; + +public class dtopen__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 emxrtwweklud1b14cstc9z3bb +// static char* Version = + + + + +//3 34nbfbdgwe34hb4vmfr5p6kbh +// Dt_t* dtopen(Dtdisc_t* disc, Dtmethod_t* meth) +public static _dt_s dtopen(_dtdisc_s disc, _dtmethod_s meth) { +ENTERING("34nbfbdgwe34hb4vmfr5p6kbh","dtopen"); +try { + _dt_s dt = null; + int e; + _dtdata_s data; + if(N(disc) || N(meth)) + return null; + /* allocate space for dictionary */ + if(N(dt = (_dt_s) Memory.malloc(_dt_s.class))) + return null; +// /* initialize all absolutely private data */ + dt.setPtr("searchf", null); + dt.setPtr("meth", null); + dt.setPtr("disc", null); + dtdisc(dt,disc,0); + dt.setInt("type", 0); + dt.setInt("nview", 0); + dt.setPtr("view", null); + dt.setPtr("walk", null); + dt.setPtr("user", null); + if(disc.getPtr("eventf")!=null) + { /* if shared/persistent dictionary, get existing data */ + throw new UnsupportedOperationException(); +// data = ((Dtdata_t*)0); +// if((e = (*disc->eventf)(dt,1,(void*)(&data),disc)) < 0) +// goto err_open; +// else if(e > 0) +// { if(data) +// { if(data->type&meth->type) +// goto done; +// else goto err_open; +// } +// if(!disc->memoryf) +// goto err_open; +// free((void*)dt); +// if(!(dt = (*disc->memoryf)(0, 0, sizeof(Dt_t), disc)) ) +// return ((Dt_t*)0); +// dt->searchf = ((Dtsearch_f)0); +// dt->meth = ((Dtmethod_t*)0); +// dt->disc = ((Dtdisc_t*)0); +// dtdisc(dt,disc,0); +// dt->type = 1; +// dt->nview = 0; +// dt->view = dt->walk = ((Dt_t*)0); +// } + } + /* allocate sharable data */ + if(N(data = (_dtdata_s) (dt.call("memoryf", dt,null,sizeof(_dtdata_s.class),disc)) )) + { err_open: + Memory.free(dt); + return (null); + } + data.setInt("type", meth.getInt("type")); + data.setPtr("here", null); + data.setPtr("hh._htab", null); + data.setInt("ntab", 0); + data.setInt("size", 0); + data.setInt("loop", 0); + data.setInt("minp", 0); +//done: + dt.setPtr("data", data); + dt.setPtr("searchf", meth.getPtr("searchf")); + dt.setPtr("meth", meth); + if(disc.getPtr("eventf")!=null) + throw new UnsupportedOperationException(); +// (*disc->eventf)(dt, 5, (void*)dt, disc); + return dt; +} finally { +LEAVING("34nbfbdgwe34hb4vmfr5p6kbh","dtopen"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtrenew__c.java plantuml-8039/src/gen/lib/cdt/dtrenew__c.java --- plantuml-8024/src/gen/lib/cdt/dtrenew__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtrenew__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,158 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.Macro.UNSUPPORTED; + +public class dtrenew__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 dpntyaoee84n51hi5hei3meki +// void* dtrenew(Dt_t* dt, register void* obj) +public static Object dtrenew(Object... arg) { +UNSUPPORTED("c1icavxc4bdl41jaglud7ov9y"); // void* dtrenew(Dt_t* dt, register void* obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("75g1y88zfpqk2mdy0p3bzcp5u"); // register void* key; +UNSUPPORTED("7hzc11j4z5915otom5ec9sc1p"); // register Dtlink_t *e, *t, **s; +UNSUPPORTED("ab9fv18fhjzwp3wngyyqarrns"); // register Dtdisc_t* disc = dt->disc; +UNSUPPORTED("ckjxpmega2z5oju8xk72wsy0q"); // ((dt->data->type&010000) ? dtrestore(dt,((Dtlink_t*)0)) : 0); +UNSUPPORTED("afazqxuj3nf5t37agp5loypap"); // if(!(e = dt->data->here) || (disc->link < 0 ? ((Dthold_t*)(e))->obj : (void*)((char*)(e) - disc->link) ) != obj) +UNSUPPORTED("5p6q7ip4om6y4nrsjz07ua456"); // return ((void*)0); +UNSUPPORTED("epetks7tchxd027a5fogh5s8y"); // if(dt->data->type&(0000040|0000100|0000020)) +UNSUPPORTED("62u47ehg5sw7ibh04rvqqdaws"); // return obj; +UNSUPPORTED("d0a3msvhdhl5w8ezkp8afz1ay"); // else if(dt->data->type&(0000004|0000010) ) +UNSUPPORTED("6nk9lof9sqibzqlvn7z3v0adk"); // { if(!e->right ) /* make left child the new root */ +UNSUPPORTED("ca72p6wo0wlrje8mc1clzkgd"); // dt->data->here = e->hl._left; +UNSUPPORTED("9kvzz8qhw1tc87iizefkx7jux"); // else /* make right child the new root */ +UNSUPPORTED("bw0zxd3ks2tqu4oa88193x30s"); // { dt->data->here = e->right; +UNSUPPORTED("7xxvhxwnjmtln4k5iqxwas7gy"); // /* merge left subtree to right subtree */ +UNSUPPORTED("b5hfkdgjlasjtdi2d8j9cnsfl"); // if(e->hl._left) +UNSUPPORTED("7qj77o9upzr06q7w290ppiijf"); // { for(t = e->right; t->hl._left; t = t->hl._left) +UNSUPPORTED("6f76030mwgybzczalesd54a9q"); // ; +UNSUPPORTED("31m2jyxntk5bvmxrlz7e1060n"); // t->hl._left = e->hl._left; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9jvkhuwh0wij26qmyu1sft73s"); // else /*if(dt->data->type&(DT_SET|DT_BAG))*/ +UNSUPPORTED("av4lr5g8w88ulq2cwdubl498l"); // { s = dt->data->hh._htab + ((e->hl._hash)&((dt->data->ntab)-1)); +UNSUPPORTED("blraorobd8eq0hg3b3w3uxkwt"); // if((t = *s) == e) +UNSUPPORTED("6bxfg7yydrmhsw5oysk7cxytq"); // *s = e->right; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("z3sto7b7d7g3tgy1pobqnftq"); // { for(; t->right != e; t = t->right) +UNSUPPORTED("8c0hnggfgcchqp0vr4bwobm4t"); // ; +UNSUPPORTED("2bmnk8u0o0gw61p068qqsvd35"); // t->right = e->right; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7i9supotcfsya189dptbk9mg6"); // key = (void*)(disc->size < 0 ? *((char**)((char*)(obj)+disc->key)) : ((char*)(obj)+disc->key)); +UNSUPPORTED("6k8ldpnvi2limcrix2xyqga8a"); // e->hl._hash = (disc->hashf ? (*disc->hashf)(dt,key,disc) : dtstrhash(0,key,disc->size) ); +UNSUPPORTED("6vkn7padspfbtju9g5b65b34w"); // dt->data->here = ((Dtlink_t*)0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("zjdphdwef22jifi7kl4wial9"); // dt->data->size -= 1; +UNSUPPORTED("27sbkwn3jowh7b7zt5tzb2v4q"); // return (*dt->meth->searchf)(dt,(void*)e,0000040) ? obj : ((void*)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtrestore__c.java plantuml-8039/src/gen/lib/cdt/dtrestore__c.java --- plantuml-8024/src/gen/lib/cdt/dtrestore__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtrestore__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,175 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Dtsearch_f; +import h._dt_s; +import h._dtlink_s; + +public class dtrestore__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 8dfut8799tvg4tjvn2yz48d7h +// int dtrestore(register Dt_t* dt, register Dtlink_t* list) +public static int dtrestore(_dt_s dt, _dtlink_s list) { +ENTERING("8dfut8799tvg4tjvn2yz48d7h","dtrestore"); +try { + _dtlink_s t; + //Dtlink_t **s, **ends; + int type; + Dtsearch_f searchf = (Dtsearch_f) dt.getPtr("meth").getPtr("searchf"); + type = dt.getPtr("data").getInt("type")&010000; + if(N(list)) /* restoring a flattened dictionary */ + { if(N(type)) + return -1; + list = (_dtlink_s) dt.getPtr("data").getPtr("here"); + } + else /* restoring an extracted list of elements */ + { if(dt.getPtr("data").getInt("size") != 0) + return -1; + type = 0; + } + dt.getPtr("data").setInt("type", dt.getPtr("data").getInt("type") & ~010000); + if((dt.getPtr("data").getInt("type")&(0000001|0000002))!=0) + { //dt->data->here = ((Dtlink_t*)0); +UNSUPPORTED("4xawc48hce5sov89n8h4j7xw0"); // if(type) /* restoring a flattened dictionary */ +UNSUPPORTED("3yrjmgus9a9415ocrrtj1e733"); // { for(ends = (s = dt->data->hh._htab) + dt->data->ntab; s < ends; ++s) +UNSUPPORTED("7s6h8lg0p1wwil85e1p2msogy"); // { if((t = *s) ) +UNSUPPORTED("2j3e40zcb5znwl73hbk12t6va"); // { *s = list; +UNSUPPORTED("ef469bao0q1pw0jwv7pmoly31"); // list = t->right; +UNSUPPORTED("29gliugc08l5pj89nfqoctwqi"); // t->right = ((Dtlink_t*)0); +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("dri3t8bbbtcxexw436q0kqnxd"); // else /* restoring an extracted list of elements */ +UNSUPPORTED("efiynrcqevfta9kp0bfbujmn5"); // { dt->data->size = 0; +UNSUPPORTED("afqkqg6k8jxzgjyj7tb6kw1fc"); // while(list) +UNSUPPORTED("4rgxhjb5r159n4fh7vilshms9"); // { t = list->right; +UNSUPPORTED("6fq6k0xv0ofue3nmsm3tcbmxc"); // (*searchf)(dt,(void*)list,0000040); +UNSUPPORTED("8dsqgg8k8zwg5ae8ltd5xs9yc"); // list = t; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } + } + else + { if((dt.getPtr("data").getInt("type")&(0000004|0000010))!=0) + dt.getPtr("data").setPtr("here", list); + else /*if(dt->data->type&(DT_LIST|DT_STACK|DT_QUEUE))*/ +{UNSUPPORTED("79wu0m7edfdq02msgoqkzb32"); // { dt->data->here = ((Dtlink_t*)0); +UNSUPPORTED("c8q10nh3f6o4rjxtacmbgjxqj"); // dt->data->hh._head = list; + } + if(N(type)) + dt.getPtr("data").setInt("size", -1); + } + return 0; +} finally { +LEAVING("8dfut8799tvg4tjvn2yz48d7h","dtrestore"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtsize__c.java plantuml-8039/src/gen/lib/cdt/dtsize__c.java --- plantuml-8024/src/gen/lib/cdt/dtsize__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtsize__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,155 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static gen.lib.cdt.dtrestore__c.dtrestore; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import h._dt_s; +import h._dtlink_s; + +public class dtsize__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 6j49zum5hqto1t7fyrz8qjv1u +// static int treecount(register Dtlink_t* e) +public static int treecount(_dtlink_s e) { +ENTERING("6j49zum5hqto1t7fyrz8qjv1u","treecount"); +try { + return e!=null ? treecount((_dtlink_s) e.getPtr("hl._left")) + treecount((_dtlink_s) e.getPtr("right")) + 1 : 0; +} finally { +LEAVING("6j49zum5hqto1t7fyrz8qjv1u","treecount"); +} +} + + + + +//3 bci0ea1fa7egf4aads6gdgvsq +// int dtsize(Dt_t* dt) +public static int dtsize_(_dt_s dt) { +ENTERING("bci0ea1fa7egf4aads6gdgvsq","dtsize"); +try { + _dtlink_s t; + int size; + if (((dt.getPtr("data").getInt("type")&010000)!=0)) dtrestore(dt,null); + if(dt.getPtr("data").getInt("size") < 0) /* !(dt->data->type&(DT_SET|DT_BAG)) */ + { if((dt.getPtr("data").getInt("type")&(0000004|0000010))!=0) + dt.getPtr("data").setInt("size", treecount((_dtlink_s) dt.getPtr("data").getPtr("here"))); + else if((dt.getPtr("data").getInt("type")&(0000020|0000040|0000100))!=0) + { size=0; + for(t = (_dtlink_s) dt.getPtr("data").getPtr("hh").getPtr("_head"); t!=null; t = (_dtlink_s) t.getPtr("right")) + size += 1; + dt.getPtr("data").setInt("size", size); + } + } + return dt.getPtr("data").getInt("size"); + +} finally { +LEAVING("bci0ea1fa7egf4aads6gdgvsq","dtsize"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtstat__c.java plantuml-8039/src/gen/lib/cdt/dtstat__c.java --- plantuml-8024/src/gen/lib/cdt/dtstat__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtstat__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,212 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.Macro.UNSUPPORTED; + +public class dtstat__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 91c7rdavgvzhuigvve5ibdpn0 +// static void dttstat(Dtstat_t* ds, Dtlink_t* root, int depth, int* level) +public static Object dttstat(Object... arg) { +UNSUPPORTED("96759a5l0ygg0om48m2a6t0ng"); // static void dttstat(Dtstat_t* ds, Dtlink_t* root, int depth, int* level) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("56ka5rmkoppf3hruu8g6m0xja"); // if(root->hl._left) +UNSUPPORTED("cid9xp3s0qj3aabaka0l9zv7t"); // dttstat(ds,root->hl._left,depth+1,level); +UNSUPPORTED("9s9ahe7p2w6fq5emj7g8wbjfr"); // if(root->right) +UNSUPPORTED("87cqywe08opun9vcdypm5sngz"); // dttstat(ds,root->right,depth+1,level); +UNSUPPORTED("1cpnp52f4qqoepwe6x0k1xfba"); // if(depth > ds->dt_n) +UNSUPPORTED("7ufge640ert57jo7j225ab7pe"); // ds->dt_n = depth; +UNSUPPORTED("3pj5kfo9kjuutf0og8g2j8geg"); // if(level) +UNSUPPORTED("9gine8rpyhyyk5yrtmvl56o2p"); // level[depth] += 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a8o5okh4tw99gnboco3s2dmxd +// static void dthstat(register Dtdata_t* data, Dtstat_t* ds, register int* count) +public static Object dthstat(Object... arg) { +UNSUPPORTED("48ylybwp2yevlr561pyv3jui"); // static void dthstat(register Dtdata_t* data, Dtstat_t* ds, register int* count) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bqowb8dyq0iy0kow4ic3v69rm"); // register Dtlink_t* t; +UNSUPPORTED("1kv2h7mwh5yurbekfwfiewdhy"); // register int n, h; +UNSUPPORTED("286ioif0j041zmjzncvg5xoll"); // for(h = data->ntab-1; h >= 0; --h) +UNSUPPORTED("3q5ha8vx2tajjl4ufu2w0no4p"); // { n = 0; +UNSUPPORTED("csnxwylxkitnmc1zga3njlqgd"); // for(t = data->hh._htab[h]; t; t = t->right) +UNSUPPORTED("90p2oslbn5buyc5k0tkflj50d"); // n += 1; +UNSUPPORTED("1pfuj1amofbpxyeubend5yxr5"); // if(count) +UNSUPPORTED("5nwitx1rnfie4jd6ny8ssadzg"); // count[n] += 1; +UNSUPPORTED("3w8in45yqqsl7kb6o0suodbq0"); // else if(n > 0) +UNSUPPORTED("ck4u5h04gsnndyuthxg9kuixs"); // { ds->dt_n += 1; +UNSUPPORTED("487tl3ivbjnaxewh91pw7xeuh"); // if(n > ds->dt_max) +UNSUPPORTED("arga2k65qq28lxquyhcmmii6p"); // ds->dt_max = n; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1kbkj84h5jc45cmi7lzd45dp +// int dtstat(register Dt_t* dt, Dtstat_t* ds, int all) +public static Object dtstat(Object... arg) { +UNSUPPORTED("ao2i3bpekp72m9gi7y5ckz4rk"); // int dtstat(register Dt_t* dt, Dtstat_t* ds, int all) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("44m1eek6bje0mjqjlsecsorod"); // register int i; +UNSUPPORTED("26pvlo4hyfclsuk4h43qetsjw"); // static int *Count, Size; +UNSUPPORTED("ckjxpmega2z5oju8xk72wsy0q"); // ((dt->data->type&010000) ? dtrestore(dt,((Dtlink_t*)0)) : 0); +UNSUPPORTED("ec11eijzw85083qye8hp5eex0"); // ds->dt_n = ds->dt_max = 0; +UNSUPPORTED("3tdmcypiwfwu1pn4i6zzf500z"); // ds->dt_count = ((int*)0); +UNSUPPORTED("azymim1m9qe68uhp1mftu7fe1"); // ds->dt_size = dtsize(dt); +UNSUPPORTED("av3q24lmuasi6ojxa3wldv6ta"); // ds->dt_meth = dt->data->type&0000377; +UNSUPPORTED("7wb0sc472yga8vixhnog657ny"); // if(!all) +UNSUPPORTED("5izxoao5ryte71964f8yjfd5y"); // return 0; +UNSUPPORTED("32ow9kmsxf47y1h17vyj3ef11"); // if(dt->data->type&(0000001|0000002)) +UNSUPPORTED("3h1ytwsfcbphbuuhvj29vqlpn"); // { dthstat(dt->data,ds,((int*)0)); +UNSUPPORTED("cg0ykqnfk3ou03i5e9ykd3m5n"); // if(ds->dt_max+1 > Size) +UNSUPPORTED("4ebwk82nv6oujn3zi64gvqqr7"); // { if(Size > 0) +UNSUPPORTED("4dxxr85kxn2tyyzxi82w0iqak"); // free(Count); +UNSUPPORTED("3a6ksysaw3s4hfdjvet2q2qxc"); // if(!(Count = (int*)malloc((ds->dt_max+1)*sizeof(int))) ) +UNSUPPORTED("6pxdbvdu6loxn1ex6nm9i93gb"); // return -1; +UNSUPPORTED("13xjtjclxu8ornn37l48jz2rv"); // Size = ds->dt_max+1; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("36u41cy59sloyiha209o4m5qy"); // for(i = ds->dt_max; i >= 0; --i) +UNSUPPORTED("8aibp56k7f0yagfchektytbwy"); // Count[i] = 0; +UNSUPPORTED("b5vi0pdbdr81ex0fk7lepptgm"); // dthstat(dt->data,ds,Count); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("av63gjdiqp6xi9w4vjwqpn5oo"); // else if(dt->data->type&(0000004|0000010)) +UNSUPPORTED("bld1jk0owgrtf4hcqqhwoccpy"); // { if(dt->data->here) +UNSUPPORTED("31bytekoo4eleuggsetk4m6de"); // { dttstat(ds,dt->data->here,0,((int*)0)); +UNSUPPORTED("7hz6680zzj4qr9s3dm6v435sk"); // if(ds->dt_n+1 > Size) +UNSUPPORTED("aq4shezrsmlv37xas7p8ho5sg"); // { if(Size > 0) +UNSUPPORTED("3y929awdu2jrmw3aer6dqygxb"); // free(Count); +UNSUPPORTED("ex3430euevoine0wgb82be0rc"); // if(!(Count = (int*)malloc((ds->dt_n+1)*sizeof(int))) ) +UNSUPPORTED("9qiuahtnvh744qet6fj8wk596"); // return -1; +UNSUPPORTED("e80mtvhrb447fuzvxw7tmlk79"); // Size = ds->dt_n+1; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("ce7lqmqeaeqmtpznl57wppd5n"); // for(i = ds->dt_n; i >= 0; --i) +UNSUPPORTED("6j9e4nc2e8eecvywkpfm2ut9m"); // Count[i] = 0; +UNSUPPORTED("7vm7v7g848394ourjpirftcq7"); // dttstat(ds,dt->data->here,0,Count); +UNSUPPORTED("ce7lqmqeaeqmtpznl57wppd5n"); // for(i = ds->dt_n; i >= 0; --i) +UNSUPPORTED("2t8ajn7ynd4ll8m6rug9gxbsx"); // if(Count[i] > ds->dt_max) +UNSUPPORTED("8d36wfd4xwyzw0stap7i7dv8y"); // ds->dt_max = Count[i]; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cdj1cmsf0q45eayjhj4n0zpsn"); // ds->dt_count = Count; +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtstrhash__c.java plantuml-8039/src/gen/lib/cdt/dtstrhash__c.java --- plantuml-8024/src/gen/lib/cdt/dtstrhash__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtstrhash__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,136 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.Macro.UNSUPPORTED; + +public class dtstrhash__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 ilmfiy3q8awgqo01v4p6sxqo +// unsigned int dtstrhash(register unsigned int h, void* args, register int n) +public static Object dtstrhash(Object... arg) { +UNSUPPORTED("2yykq92jf12qpgr2zziajbyzl"); // unsigned int dtstrhash(register unsigned int h, void* args, register int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5c17vk53xaiwjbt9ov98wzeer"); // register unsigned char* s = (unsigned char*)args; +UNSUPPORTED("abhbgzrg4q5z2vkoed72su98y"); // if(n <= 0) +UNSUPPORTED("25f9vqwrb3gtkdnfnn6tdi2sp"); // { for(; *s != 0; s += s[1] ? 2 : 1) +UNSUPPORTED("27ugkho4hqjs3cxg13l52hssq"); // h = (h + (s[0]<<8) + s[1])*17109811; +UNSUPPORTED("5b7raoyujdiyvk5amytm2iv8d"); // n = s - (unsigned char*)args; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("dr62hl39yt7u8lxzywzmph1wz"); // { register unsigned char* ends; +UNSUPPORTED("4ytefr16blz6pxv5xh9f0u9v0"); // for(ends = s+n-1; s < ends; s += 2) +UNSUPPORTED("27ugkho4hqjs3cxg13l52hssq"); // h = (h + (s[0]<<8) + s[1])*17109811; +UNSUPPORTED("9luve3tuqafeir04r2fr5d20m"); // if(s <= ends) +UNSUPPORTED("2hbqyzsyz69z1twg3his8qw03"); // h = (h + (s[0]<<8))*17109811; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2eaqcc4p1u1dwzxk8syb0lnws"); // return (h+n)*17109811; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dttree__c.java plantuml-8039/src/gen/lib/cdt/dttree__c.java --- plantuml-8024/src/gen/lib/cdt/dttree__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dttree__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,567 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static gen.lib.cdt.dtrestore__c.dtrestore; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtils.strcmp; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import static smetana.core.Macro.UNSUPPORTED_INT; +import h.Dtcompar_f; +import h._dt_s; +import h._dtdisc_s; +import h._dthold_s; +import h._dtlink_s; +import smetana.core.CFunction; +import smetana.core.CString; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class dttree__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 abqfzg1d1vkzk51225tcdlik5 +// static void* dttree(Dt_t* dt, void* obj, int type) +static class no_root extends RuntimeException {} +static class has_root extends RuntimeException {} +static class do_search extends RuntimeException {} +static class dt_delete extends RuntimeException {} +static class dt_insert extends RuntimeException {} +static class dt_next extends RuntimeException {} +public static Object dttree(_dt_s dt, __ptr__ obj, int type) { +ENTERING("abqfzg1d1vkzk51225tcdlik5","dttree"); +try { + _dtlink_s root, t; + int cmp, lk, sz, ky; + _dtlink_s l, r, me=null; + final __struct__<_dtlink_s> link = __struct__.from(_dtlink_s.class); + Object o, k, key = null; + int n, minp; //, turn[(sizeof(size_t)*8 - 2)]; + Dtcompar_f cmpf; + _dtdisc_s disc; + if (((dt.getPtr("data").getInt("type")) & 010000) !=0) { dtrestore(dt,null); } + disc = (_dtdisc_s) dt.getPtr("disc"); ky = disc.getInt("key"); + sz = disc.getInt("size"); + lk = disc.getInt("link"); + cmpf = (Dtcompar_f) disc.getPtr("comparf"); + dt.setInt("type", dt.getInt("type")&~0100000); + root = (_dtlink_s) dt.getPtr("data").getPtr("here"); + if(N(obj)) + { if(N(root) || N(type&(0000100|0000200|0000400)) ) + return null; + if((type&0000100)!=0) /* delete all objects */ + { + throw new UnsupportedOperationException(); +// if(disc->freef || disc->link < 0) +// { do +// { while((t = root->hl._left) ) +// (((root)->hl._left = (t)->right, (t)->right = (root)), (root) = (t)); +// t = root->right; +// if(disc->freef) +// (*disc->freef)(dt,(lk < 0 ? ((Dthold_t*)(root))->obj : (void*)((char*)(root) - lk) ),disc); +// if(disc->link < 0) +// (*dt->memoryf)(dt,(void*)root,0,disc); +// } while((root = t) ); +// } +// dt->data->size = 0; +// dt->data->here = ((Dtlink_t*)0); +// return ((void*)0); + } + else /* computing largest/smallest element */ + { if((type&0000400)!=0) + { while((t = (_dtlink_s) root.getPtr("right"))!=null ) { + root.setPtr("right", t.getPtr("hl._left")); + t.setPtr("hl._left", root); + root = t; + } + } + else /* type&DT_FIRST */ + { while((t = (_dtlink_s) root.getPtr("hl._left"))!=null ) { + root.setPtr("hl._left", t.getPtr("right")); + t.setPtr("right", root); + root = t; + } + } + dt.getPtr("data").setPtr("here", root); + return (lk < 0 ? root.castTo(_dthold_s.class).getPtr("obj") : root.addVirtualBytes(-lk) ); + } + } + /* note that link.right is LEFT tree and link.left is RIGHT tree */ + l = r = link.amp(); + /* allow apps to delete an object "actually" in the dictionary */ + try { + if(dt.getPtr("meth").getInt("type") == 0000010 && ((type&(0000002|0010000))!=0) ) { + throw new UnsupportedOperationException(); +// { key = (void*)(sz < 0 ? *((char**)((char*)(obj)+ky)) : ((char*)(obj)+ky)); +// for(o = (*(((Dt_t*)(dt))->searchf))((dt),(void*)(obj),0000004); o; o = (*(((Dt_t*)(dt))->searchf))((dt),(void*)(o),0000010) ) +// { k = (void*)(sz < 0 ? *((char**)((char*)(o)+ky)) : ((char*)(o)+ky)); +// if((cmpf ? (*cmpf)(dt,key,k,disc) : (sz <= 0 ? strcmp(key,k) : memcmp(key,k,sz)) ) != 0) +// break; +// if(o == obj) +// { root = dt->data->here; +// l->right = root->hl._left; +// r->hl._left = root->right; +// goto dt_delete; +// } +// } + } + try { + if(((type&(0001000|0000004|0000001|0004000))!=0)) + { key = ((type&0001000)!=0) ? obj : (sz < 0 ? ((__ptr__)obj).addVirtualBytes(ky) : ((__ptr__)obj).addVirtualBytes(ky)); + if(root!=null) + throw new do_search(); + } + else if((type&0000040)!=0) { + throw new UnsupportedOperationException(); +// { me = (Dtlink_t*)obj; +// obj = (lk < 0 ? ((Dthold_t*)(me))->obj : (void*)((char*)(me) - lk) ); +// key = (void*)(sz < 0 ? *((char**)((char*)(obj)+ky)) : ((char*)(obj)+ky)); +// if(root) +// goto do_search; + } + else if(root!=null && (lk < 0 ? (root.castTo(_dthold_s.class).getPtr("obj")!=null): NEQ(root.addVirtualBytes(-lk), obj))) + { key = (sz < 0 ? ((__ptr__)obj).addVirtualBytes(ky) : ((__ptr__)obj).addVirtualBytes(ky)); + throw new do_search(); + } + } catch (do_search do_search) { +// do_search: + if(dt.getPtr("meth").getInt("type") == 0000004 && + (minp = dt.getPtr("data").getInt("minp")) != 0 && (type&(0001000|0000004))!=0) + { /* simple search, note that minp should be even */ +// for(t = root, n = 0; n < minp; ++n) +// { k = (lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ); k = (void*)(sz < 0 ? *((char**)((char*)(k)+ky)) : ((char*)(k)+ky)); +// if((cmp = (cmpf ? (*cmpf)(dt,key,k,disc) : (sz <= 0 ? strcmp(key,k) : memcmp(key,k,sz)) )) == 0) +// return (lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ); +// else +// { turn[n] = cmp; +// if(!(t = cmp < 0 ? t->hl._left : t->right) ) +// return ((void*)0); +// } +// } +// /* exceed search length, top-down splay now */ +// for(n = 0; n < minp; n += 2) +// { if(turn[n] < 0) +// { t = root->hl._left; +// if(turn[n+1] < 0) +// { ((root)->hl._left = (t)->right, (t)->right = (root)); +// ((r) = (r)->hl._left = (t) ); +// root = t->hl._left; +// } +// else +// { ((l) = (l)->right = (t) ); +// ((r) = (r)->hl._left = (root) ); +// root = t->right; +// } +// } +// else +// { t = root->right; +// if(turn[n+1] > 0) +// { ((root)->right = (t)->hl._left, (t)->hl._left = (root)); +// ((l) = (l)->right = (t) ); +// root = t->right; +// } +// else +// { ((r) = (r)->hl._left = (t) ); +// ((l) = (l)->right = (root) ); +// root = t->hl._left; +// } +// } +// } + throw new UnsupportedOperationException("do_search1"); + } + while(true) { + k = lk < 0 ? root.castTo(_dthold_s.class).getPtr("obj") : root.addVirtualBytes(-lk); + k = sz < 0 ? ((__ptr__)k).addVirtualBytes(ky) : ((__ptr__)k).addVirtualBytes(ky); + if((cmp = (cmpf!=null ? (Integer)((CFunction)cmpf).exe(dt,key,k,disc) : + (sz <= 0 ? strcmp((CString)key,(CString)k) : UNSUPPORTED_INT("memcmp(key,k,sz))") ))) == 0) + break; + else if(cmp < 0) + { if((t = (_dtlink_s) root.getPtr("hl._left"))!=null ) + { + k = lk < 0 ? t.castTo(_dthold_s.class).getPtr("obj") : t.addVirtualBytes(-lk); + k = sz < 0 ? ((__ptr__)k).addVirtualBytes(ky) : ((__ptr__)k).addVirtualBytes(ky); + if((cmp = (cmpf!=null ? (Integer)((CFunction)cmpf).exe(dt,key,k,disc) + : (sz <= 0 ? strcmp((CString)key,(CString)k) : UNSUPPORTED_INT("memcmp(key,k,sz))") ))) < 0) + { root.setPtr("hl._left", t.getPtr("right")); + t.setPtr("right", root); + r.setPtr("hl._left", t); + r = t; + if(N(root = (_dtlink_s) t.getPtr("hl._left")) ) + break; + } + else if(cmp == 0) + { r.setPtr("hl._left", root); + r = root; + root = t; + break; + } + else /* if(cmp > 0) */ + { l.setPtr("right", t); + l = t; + r.setPtr("hl._left", root); + r = root; + if(N(root = (_dtlink_s) t.getPtr("right")) ) + break; + } + } + else + { + r.setPtr("hl._left", root); + r = root; + root = null; + break; + } + } + else /* if(cmp > 0) */ + { if ((t = (_dtlink_s) root.getPtr("right"))!=null ) + { + k = (lk < 0 ? t.castTo(_dthold_s.class).getPtr("obj") : t.addVirtualBytes(-lk) ); + k = sz < 0 ? ((__ptr__)k).addVirtualBytes(ky) : ((__ptr__)k).addVirtualBytes(ky); + if((cmp = (cmpf!=null ? (Integer)((CFunction)cmpf).exe(dt,key,k,disc) + : (sz <= 0 ? strcmp((CString)key,(CString)k) : UNSUPPORTED_INT("memcmp(key,k,sz))") ))) > 0) + { + root.setPtr("right", t.getPtr("hl._left")); + t.setPtr("hl._left", root); + l.setPtr("right", t); + l = t; + if(N(root = (_dtlink_s) t.getPtr("right") )) + break; + } + else if(cmp == 0) + { l.setPtr("right", root); + l = root; + root = t; + break; + } + else /* if(cmp < 0) */ + { r.setPtr("hl._left", t); + r = t; + l.setPtr("right", root); + l = root; + if(N(root = (_dtlink_s) t.getPtr("hl._left") )) + break; + } + } + else + { l.setPtr("right", root); + l = root; + root = null; + break; + } + } + } + } + if(root!=null) + { /* found it, now isolate it */ + dt.setInt("type", dt.getInt("type") | 0100000); + l.setPtr("right", root.getPtr("hl._left")); + r.setPtr("hl._left", root.getPtr("right")); + if((type&(0000004|0001000))!=0) + { /*has_root:*/ + throw new has_root(); + } + else if((type&0000010)!=0) + { root.setPtr("hl._left", link.getPtr("right")); + root.setPtr("right", null); + link.setPtr("right", root); + //dt_next: + if((root = (_dtlink_s) link.getPtr("hl._left"))!=null ) + { while((t = (_dtlink_s) root.getPtr("hl._left"))!=null ) { + root.setPtr("hl._left", t.getPtr("right")); + t.setPtr("right", root); + root = t; + } + link.setPtr("hl._left", root.getPtr("right")); + throw new has_root(); + } + else throw new no_root(); + } + else if((type&0000020)!=0) { + throw new UnsupportedOperationException(); +// { root->right = link.hl._left; +// root->hl._left = ((Dtlink_t*)0); +// link.hl._left = root; +// dt_prev: +// if((root = link.right) ) +// { while((t = root->right) ) +// (((root)->right = (t)->hl._left, (t)->hl._left = (root)), (root) = (t)); +// link.right = root->hl._left; +// goto has_root; +// } +// else goto no_root; + } + else if((type&(0000002|0010000))!=0) { + throw new UnsupportedOperationException(); +// { /* taking an object out of the dictionary */ +// dt_delete: +// obj = (lk < 0 ? ((Dthold_t*)(root))->obj : (void*)((char*)(root) - lk) ); +// if(disc->freef && (type&0000002)) +// (*disc->freef)(dt,obj,disc); +// if(disc->link < 0) +// (*dt->memoryf)(dt,(void*)root,0,disc); +// if((dt->data->size -= 1) < 0) +// dt->data->size = -1; +// goto no_root; + } + else if((type&(0000001|0004000))!=0) + { if((dt.getPtr("meth").getInt("type")&0000004)!=0) + throw new has_root(); + else throw new UnsupportedOperationException(); +// { root->hl._left = ((Dtlink_t*)0); +// root->right = link.hl._left; +// link.hl._left = root; +// goto dt_insert; +// } + } + else if((type&0000040)!=0) /* a duplicate */ { + throw new UnsupportedOperationException(); +// { if(dt->meth->type&0000004) +// { if(disc->freef) +// (*disc->freef)(dt,obj,disc); +// if(disc->link < 0) +// (*dt->memoryf)(dt,(void*)me,0,disc); +// } +// else +// { me->hl._left = ((Dtlink_t*)0); +// me->right = link.hl._left; +// link.hl._left = me; +// dt->data->size += 1; +// } +// goto has_root; + } + } + else + { /* not found, finish up LEFT and RIGHT trees */ + r.setPtr("hl._left", null); + l.setPtr("right", null); + if((type&0000010)!=0) + { + //goto dt_next: + if((root = (_dtlink_s) link.getPtr("hl._left"))!=null ) + { while((t = (_dtlink_s) root.getPtr("hl._left"))!=null ) { + root.setPtr("hl._left", t.getPtr("right")); + t.setPtr("right", root); + root = t; + } + link.setPtr("hl._left", root.getPtr("right")); + throw new has_root(); + } + else throw new no_root(); + + } + else if((type&0000020)!=0) + throw new UnsupportedOperationException("goto dt_prev"); + else if((type&(0000004|0001000))!=0) + { + throw new no_root(); + } + else if((type&(0000001|0004000))!=0) + { /*dt_insert:*/ + if(disc.getPtr("makef")!=null && (type&0000001)!=0) + obj = (__ptr__) disc.call("makef", dt,obj,disc); + if(obj!=null) + { + if(lk >= 0) + root = (_dtlink_s) ((__ptr__)obj.addVirtualBytes(lk)).castTo(_dtlink_s.class); + else + { + root = (_dtlink_s)(dt.call("memoryf", + dt,null,sizeof(_dthold_s.class),disc)); + if(root!=null) + root.castTo(_dthold_s.class).setPtr("obj", obj); + else if(disc.getPtr("makef")!=null && disc.getPtr("freef")!=null && + ((type&0000001))!=0) + UNSUPPORTED("(*disc->freef)(dt,obj,disc);"); + } + } + if(root!=null) + { if(dt.getPtr("data").getInt("size") >= 0) + dt.getPtr("data").setInt("size", dt.getPtr("data").getInt("size")+1 ); + throw new has_root(); + } + else throw new UnsupportedOperationException("goto no_root"); + } + else if((type&0000040)!=0) + { root = me; + dt.getPtr("data").setInt("size", dt.getPtr("data").getInt("size")+1 ); + throw new UnsupportedOperationException("goto has_root"); + } + else /*if(type&DT_DELETE)*/ + { obj = null; + throw new UnsupportedOperationException("goto no_root"); + } + // throw new UnsupportedOperationException(); + } +// return ((void*)0); + } catch (has_root has_root) { + root = (_dtlink_s) root.castTo(_dtlink_s.class); + root.setPtr("hl._left", link.getPtr("right")); + root.setPtr("right", link.getPtr("hl._left")); + if((dt.getPtr("meth").getInt("type")&0000010)!=0 && (type&(0000004|0001000))!=0 ) + { //key = (lk < 0 ? ((Dthold_t*)(root))->obj : (void*)((char*)(root) - lk) ); key = (void*)(sz < 0 ? *((char**)((char*)(key)+ky)) : ((char*)(key)+ky)); + throw new UnsupportedOperationException(); +// while((t = root->hl._left) ) +// { /* find max of left subtree */ +// while((r = t->right) ) +// (((t)->right = (r)->hl._left, (r)->hl._left = (t)), (t) = (r)); +// root->hl._left = t; +// /* now see if it's in the same group */ +// k = (lk < 0 ? ((Dthold_t*)(t))->obj : (void*)((char*)(t) - lk) ); k = (void*)(sz < 0 ? *((char**)((char*)(k)+ky)) : ((char*)(k)+ky)); +// if((cmpf ? (*cmpf)(dt,key,k,disc) : (sz <= 0 ? strcmp(key,k) : memcmp(key,k,sz)) ) != 0) +// break; +// (((root)->hl._left = (t)->right, (t)->right = (root)), (root) = (t)); +// } + } + dt.getPtr("data").setPtr("here", root); + return (lk < 0 ? root.castTo(_dthold_s.class).getPtr("obj") : root.addVirtualBytes(-lk)); + } catch (no_root no_root) { + while((t = (_dtlink_s) r.getPtr("hl._left"))!=null) + r = t; + r.setPtr("hl._left", link.getPtr("right")); + dt.getPtr("data").setPtr("here", link.getPtr("hl._left")); + return (type&0000002)!=0 ? obj : null; + } +throw new UnsupportedOperationException(); +} finally { +LEAVING("abqfzg1d1vkzk51225tcdlik5","dttree"); +} +} + + +//1 9g22bw0wprm2n836sva9a545j +// static Dtmethod_t _Dtoset = + + +//1 6lntjtw57dbb52lukeu9qbjm0 +// static Dtmethod_t _Dtobag = + + +//1 23jnfpje5fw0aejl101d0mofi +// Dtmethod_t* Dtoset = &_Dtoset + + +//1 b8q5rjkvf93u0f27esfu3h9ay +// Dtmethod_t* Dtobag = &_Dtobag + + +//1 5kf1n1yhdy9ojgc0mc3pyowaz +// Dtmethod_t _Dttree = +/*public static final __struct__<_dtmethod_s> _Dttree = __struct__.from(_dtmethod_s.class); +static { + _Dttree.setPtr("searchf", function(dttree__c.class, "dttree")); + _Dttree.setInt("type", 0000004); +}*/ + +//1 bvfgwxg0ik8j0au3xhv5ear7h +// Dtmethod_t* Dtorder = &_Dttree + + +//1 avyrqfvu00yyj95dihtoiwmao +// Dtmethod_t* Dttree = &_Dttree +//public static _dtmethod_s Dttree = _Dttree.amp(); +} diff -Nru plantuml-8024/src/gen/lib/cdt/dttreeset__c.java plantuml-8039/src/gen/lib/cdt/dttreeset__c.java --- plantuml-8024/src/gen/lib/cdt/dttreeset__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dttreeset__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,161 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.Macro.UNSUPPORTED; + +public class dttreeset__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 wsyenh3pav82eqg8t6irqmpa +// static Dtlink_t* treebalance(Dtlink_t* list, int size) +public static Object treebalance(Object... arg) { +UNSUPPORTED("9upl561wy34u2kgottk3knhw7"); // static Dtlink_t* treebalance(Dtlink_t* list, int size) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e3svy3s8lap0wa9dpy4q3ppie"); // int n; +UNSUPPORTED("4euymk8i174zc1zk143wb5qlq"); // Dtlink_t *l, *mid; +UNSUPPORTED("8hf6osd37j483sgahmda5xn1j"); // if(size <= 2) +UNSUPPORTED("4fl66qhxrdfm7i88fvwjalk6v"); // return list; +UNSUPPORTED("7cjc57w4211pyb7xn4u5mv2p3"); // for(l = list, n = size/2 - 1; n > 0; n -= 1) +UNSUPPORTED("dcdhqqjy6kk46tsxs923vyy6k"); // l = l->right; +UNSUPPORTED("y7f7c2k7x27uc6ph132zknhi"); // mid = l->right; l->right = ((Dtlink_t*)0); +UNSUPPORTED("6z99uyzu8i3gvzeo5lrxnw4vo"); // mid->hl._left = treebalance(list, (n = size/2) ); +UNSUPPORTED("7pvd4214bcxozaimgklaq3qif"); // mid->right = treebalance(mid->right, size - (n + 1)); +UNSUPPORTED("7zdak9tmoe5cam875dr3zz3wn"); // return mid; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7iha6xdoo376u861k6wv8c5pr +// int dttreeset(Dt_t* dt, int minp, int balance) +public static Object dttreeset(Object... arg) { +UNSUPPORTED("3t7ugtrfg37d90rb22ee962hg"); // int dttreeset(Dt_t* dt, int minp, int balance) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dtghok0zzu4g8fnpx91sx0xav"); // int size; +UNSUPPORTED("4mt1ak6xs18a3xe6dccf6hf3m"); // if(dt->meth->type != 0000004) +UNSUPPORTED("b0epxudfxjm8kichhaautm2qi"); // return -1; +UNSUPPORTED("e1eh9pmpa4fopxse0olzgtcum"); // size = dtsize(dt); +UNSUPPORTED("aafwg5rqya20bgn3vhz3t2iqb"); // if(minp < 0) +UNSUPPORTED("9ox4x4zosos0jeacd6v18u8ak"); // { for(minp = 0; minp < (sizeof(size_t)*8 - 2); ++minp) +UNSUPPORTED("4a30x5e8menohy668n1iozj52"); // if((1 << minp) >= size) +UNSUPPORTED("1dhrv6aj5eq8ntuvb7qbs8aot"); // break; +UNSUPPORTED("7v4oowgea39cogwcgkt7np8iv"); // if(minp <= (sizeof(size_t)*8 - 2)-4) /* use log(size) + 4 */ +UNSUPPORTED("aahg7tgohnhh704ric6b2h83i"); // minp += 4; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("80ideyp40y4dgch5lhho631ig"); // if((dt->data->minp = minp + (minp%2)) > (sizeof(size_t)*8 - 2)) +UNSUPPORTED("c19ehve53a2rtc95cfpgwc2ua"); // dt->data->minp = (sizeof(size_t)*8 - 2); +UNSUPPORTED("s52ssf9x1ga1f1e63jhd0caj"); // if(balance) +UNSUPPORTED("3nozetyxtt4d04pcxdwbatake"); // dt->data->here = treebalance(dtflatten(dt), size); +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtview__c.java plantuml-8039/src/gen/lib/cdt/dtview__c.java --- plantuml-8024/src/gen/lib/cdt/dtview__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtview__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,246 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static gen.lib.cdt.dtrestore__c.dtrestore; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.function; +import static smetana.core.JUtils.strcmp; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import static smetana.core.Macro.UNSUPPORTED_INT; +import h.Dtcompar_f; +import h._dt_s; +import smetana.core.CFunction; +import smetana.core.CString; +import smetana.core.__ptr__; + +public class dtview__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 6spidg45w8teb64726drdswaa +// static void* dtvsearch(Dt_t* dt, register void* obj, register int type) +public static __ptr__ dtvsearch(_dt_s dt, __ptr__ obj, int type) { +ENTERING("6spidg45w8teb64726drdswaa","dtvsearch"); +try { + _dt_s d, p; + __ptr__ o=null, n, ok, nk; + int cmp, lk, sz, ky; + Dtcompar_f cmpf; + /* these operations only happen at the top level */ + if ((type&(0000001|0000002|0000100|0000040))!=0) + return (__ptr__) dt.getPtr("meth").call("searchf", dt, obj, type); + if(((type&(0001000|0000004))!=0) || /* order sets first/last done below */ + (((type&(0000200|0000400))!=0) && N(dt.getPtr("meth").getInt("type")&(0000010|0000004)) ) ) + { for(d = dt; d!=null; d = (_dt_s) d.getPtr("view")) + if((o = (__ptr__) d.getPtr("meth").call("searchf", d,obj,type))!=null ) + break; + dt.setPtr("walk", d); + return o; + } + if((dt.getPtr("meth").getInt("type") & (0000010|0000004) )!=0) + { if(N(type & (0000200|0000400|0000010|0000020)) ) + return null; + n = nk = null; p = null; + for(d = dt; d!=null; d = (_dt_s) d.getPtr("view")) + { if(N(o = (__ptr__) d.getPtr("meth").call("searchf", d, obj, type) )) + continue; + ky = d.getPtr("disc").getInt("key"); + sz = d.getPtr("disc").getInt("size"); + lk = d.getPtr("disc").getInt("link"); + cmpf = (Dtcompar_f) d.getPtr("disc").getPtr("comparf"); + ok = (__ptr__) (sz < 0 ? ((__ptr__)o).addVirtualBytes(ky) : ((__ptr__)o).addVirtualBytes(ky)); + if(n!=null) /* get the right one among all dictionaries */ + { cmp = (cmpf!=null ? (Integer)((CFunction)cmpf).exe(d,ok,nk,d.getPtr("disc")) : (sz <= 0 ? strcmp((CString)ok,(CString)nk) : UNSUPPORTED_INT("memcmp(ok,nk,sz)")) ); + if(((type & (0000010|0000200))!=0 && cmp < 0) || + ((type & (0000020|0000400))!=0 && cmp > 0) ) +UNSUPPORTED("5o3u9aaanyd9yh74sjfkkofmo"); // goto a_dj; + } + else /* looks good for now */ + { a_dj: p = d; + n = o; + nk = ok; + } + } + dt.setPtr("walk", p); + return n; + } + /* non-ordered methods */ +UNSUPPORTED("36qdhpbcwst6tc1gvwcyvg91u"); // if(!(type & (0000010|0000020)) ) +UNSUPPORTED("5p6q7ip4om6y4nrsjz07ua456"); // return ((void*)0); +UNSUPPORTED("bx84jj9durkqzcrq4l9h1b0za"); // if(!dt->walk || obj != (dt->walk->disc->link < 0 ? ((Dthold_t*)(dt->walk->data->here))->obj : (void*)((char*)(dt->walk->data->here) - dt->walk->disc->link) ) ) +UNSUPPORTED("eh58afn12udc5q8yzr25advls"); // { for(d = dt; d; d = d->view) +UNSUPPORTED("de5yx4s0nsbgshd9seabcy2g9"); // if((o = (*(d->meth->searchf))(d, obj, 0000004)) ) +UNSUPPORTED("1dhrv6aj5eq8ntuvb7qbs8aot"); // break; +UNSUPPORTED("66mzv36wy2mflr2u2a5pwa2vg"); // dt->walk = d; +UNSUPPORTED("d4pllgr7b2ohssrhtxxtd1fbb"); // if(!(obj = o) ) +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6he3c07r1xjfepuku37yav920"); // for(d = dt->walk, obj = (*d->meth->searchf)(d, obj, type);; ) +UNSUPPORTED("d7hiatjof3gfyx3ab27oq4d74"); // { while(obj) /* keep moving until finding an uncovered object */ +UNSUPPORTED("44tdztkynd140cqbaafbbxvqn"); // { for(p = dt; ; p = p->view) +UNSUPPORTED("72t51pabtpfsnn4qrcjvd6gkb"); // { if(p == d) /* adjacent object is uncovered */ +UNSUPPORTED("4an2jpd7xs9lm1jlfrbualsrv"); // return obj; +UNSUPPORTED("bndt77eukkw8dnhl8sce4ts3d"); // if((*(p->meth->searchf))(p, obj, 0000004) ) +UNSUPPORTED("6ioth986rfbv208dp59shjy15"); // break; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("5bx9ax8tembk4pweu41m5yw43"); // obj = (*d->meth->searchf)(d, obj, type); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3diupilxwbi5nroolxiy7e8b0"); // if(!(d = dt->walk = d->view) ) /* move on to next dictionary */ +UNSUPPORTED("aihzmr4oo3tuh6kkxwtn9tlbd"); // return ((void*)0); +UNSUPPORTED("esje2igec9cwwteta36lbrdvc"); // else if(type&0000010) +UNSUPPORTED("aeh2pn8gp2xj4lehv52n4hp6b"); // obj = (*(d->meth->searchf))(d,((void*)0),0000200); +UNSUPPORTED("1lfqka4p8e7w15b16wquy0vjx"); // else obj = (*(d->meth->searchf))(d,((void*)0),0000400); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("6spidg45w8teb64726drdswaa","dtvsearch"); +} +} + + + + +//3 dfryioch2xz35w8nq6lxbk5kh +// Dt_t* dtview(register Dt_t* dt, register Dt_t* view) +public static _dt_s dtview(_dt_s dt, _dt_s view) { +ENTERING("dfryioch2xz35w8nq6lxbk5kh","dtview"); +try { + _dt_s d; + if ((dt.getPtr("data").getInt("type")&010000)!=0) dtrestore(dt,null); + if(view!=null) + { if ((view.getPtr("data").getInt("type")&010000)!=0) dtrestore(view,null); + if(NEQ(view.getPtr("meth"), dt.getPtr("meth"))) /* must use the same method */ + UNSUPPORTED("return null;"); + } + /* make sure there won't be a cycle */ + for(d = view; d!=null; d = (_dt_s)d.getPtr("view")) + if(EQ(d, dt)) + return null; + /* no more viewing lower dictionary */ + if((d = (_dt_s)dt.getPtr("view"))!=null ) + d.setInt("nview", d.getInt("nview")-1); + dt.setPtr("walk", null); + dt.setPtr("view", null); + if(N(view)) + { dt.setPtr("searchf", dt.getPtr("meth").getPtr("searchf")); + return d; + } + /* ok */ + dt.setPtr("view", view); + dt.setPtr("searchf", function(dtview__c.class, "dtvsearch")); + view.setInt("nview", view.getInt("nview")+1 ); + return view; +} finally { +LEAVING("dfryioch2xz35w8nq6lxbk5kh","dtview"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/cdt/dtwalk__c.java plantuml-8039/src/gen/lib/cdt/dtwalk__c.java --- plantuml-8024/src/gen/lib/cdt/dtwalk__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cdt/dtwalk__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,134 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cdt; +import static smetana.core.Macro.UNSUPPORTED; + +public class dtwalk__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 8kcykvee64o5kutyoj5s6zlcd +// int dtwalk(register Dt_t* dt, int (*userf)(Dt_t*, void*, void*), void* data) +public static Object dtwalk(Object... arg) { +UNSUPPORTED("b9srn3cj7cbdmgpkg7efd84gy"); // int dtwalk(register Dt_t* dt, int (*userf)(Dt_t*, void*, void*), void* data) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c1mo2va6tje36x5zdz4skrhr3"); // register void *obj, *next; +UNSUPPORTED("38agwqn7uf7ph0hgh9rs1zj6o"); // register Dt_t* walk; +UNSUPPORTED("f1idx4dy7rsiossb8rzdg9ytc"); // register int rv; +UNSUPPORTED("5uhtyadbiw0no45jeogtdm8j1"); // for(obj = (*(((Dt_t*)(dt))->searchf))((dt),(void*)(0),0000200); obj; ) +UNSUPPORTED("1yvxoworxpkhllf50ue62yykm"); // { if(!(walk = dt->walk) ) +UNSUPPORTED("286hyyd6m1nj8sr0io04dorkh"); // walk = dt; +UNSUPPORTED("e5vmvi9xteysydic3lz65s9ma"); // next = (*(((Dt_t*)(dt))->searchf))((dt),(void*)(obj),0000010); +UNSUPPORTED("2wrbbpzkv9yaatkgjr87xt1z0"); // if((rv = (*userf)(walk, obj, data )) < 0) +UNSUPPORTED("9loxyjy5zd52164vd43hrbwd2"); // return rv; +UNSUPPORTED("c1ws7w4pwcfmyhsj7v1nsaiam"); // obj = next; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/agerror__c.java plantuml-8039/src/gen/lib/cgraph/agerror__c.java --- plantuml-8024/src/gen/lib/cgraph/agerror__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/agerror__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,424 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.Macro.UNSUPPORTED; + +public class agerror__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + +//1 461g755qnm9wvxv8jui6a24t +// static agerrlevel_t agerrno + + +//1 e5usqd9mv6o7qtqhzn1ooq8f7 +// static agerrlevel_t agerrlevel = AGWARN + + +//1 65wyo1e2rqlpvn8cmykslgkdk +// static int agmaxerr + + +//1 cyxwkk5enwxhnbcphn28qfacp +// static long aglast + + +//1 5rorjmu2xqe7cz2swf6rpoim7 +// static FILE *agerrout + + +//1 bh4ymcg6wung4rp51y2goh1d4 +// static agusererrf usererrf + + + + +//3 4629q3lk91auv6a511v0x4vlz +// agusererrf agseterrf (agusererrf newf) +public static Object agseterrf(Object... arg) { +UNSUPPORTED("8jzbxfdt0lvxx1g5lts7oux6h"); // agusererrf +UNSUPPORTED("7ncs6gpd4ul7ye0ebi5sdte6g"); // agseterrf (agusererrf newf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e1odaj7t2d733eovc749xtxoz"); // agusererrf oldf = usererrf; +UNSUPPORTED("c1j7e26jj1cw14qzyy94k59pg"); // usererrf = newf; +UNSUPPORTED("3ecn7hsti915o9tbvklji7c1a"); // return oldf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e5jdgza2l5zc0kupfteq5aukb +// agerrlevel_t agseterr(agerrlevel_t lvl) +public static Object agseterr(Object... arg) { +UNSUPPORTED("1jwdh9fku47yepwmadw9neu42"); // agerrlevel_t agseterr(agerrlevel_t lvl) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8wc85fvp4ue7rkh584kznlnga"); // agerrlevel_t oldv = agerrlevel; +UNSUPPORTED("76wyk73unc469eyq5uv58o9r5"); // agerrlevel = lvl; +UNSUPPORTED("bzei33ohmcbm4iyavn26ua9io"); // return oldv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 603i8wgwc04zi1eda5oxbfu3t +// char *aglasterr() +public static Object aglasterr(Object... arg) { +UNSUPPORTED("7sb3l26vza0sr80wy19whq07s"); // char *aglasterr() +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4kj8gevgj79zghoenj66c47jd"); // long endpos; +UNSUPPORTED("3k6eefo2ppnicc6mmsp8y2wtd"); // long len; +UNSUPPORTED("6ik3p99apk5rihypipg0uxu8i"); // char *buf; +UNSUPPORTED("5hxnce09gegtlijkrkjld0w6i"); // if (!agerrout) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("6rc2guy7n7l2kfuv44bitbkr9"); // fflush(agerrout); +UNSUPPORTED("8nylts7ocqt9195btb9qnb915"); // endpos = ftell(agerrout); +UNSUPPORTED("5i545onvth9wso94ub314pe4o"); // len = endpos - aglast; +UNSUPPORTED("50nts7uovqys70g293t0b5amj"); // buf = (char*)malloc(len + 1); +UNSUPPORTED("5tkqcw5p1pfzida9gmkbjsc5g"); // fseek(agerrout, aglast, SEEK_SET); +UNSUPPORTED("474haq9m7a4n7kqe7paej6qbi"); // fread(buf, sizeof(char), len, agerrout); +UNSUPPORTED("3w01p3l63zt07scumxz12foyc"); // buf[len] = '\0'; +UNSUPPORTED("7ik9s8s97py1jire6mujjn05a"); // fseek(agerrout, endpos, SEEK_SET); +UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8nu6iilhr8fc6ltddy6ukbeav +// static void userout (agerrlevel_t level, const char *fmt, va_list args) +public static Object userout(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("a92ywlsdaen90yka53m479wkl"); // userout (agerrlevel_t level, const char *fmt, va_list args) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("xo6m9cruoz5kdd6mzt4sfknp"); // static char* buf; +UNSUPPORTED("bptaq1iwtcs1mly3uja15t0j1"); // static int bufsz = 1024; +UNSUPPORTED("d3z5r251dmhlyub2gj2x1w46q"); // char* np; +UNSUPPORTED("5jiiwgyq1pv7khw5ygfo33wmr"); // int n; +UNSUPPORTED("cjyiejw67ffjjsk60tgeebvif"); // if (!buf) { +UNSUPPORTED("40oxx4fb70iotl4q5l9cft8qb"); // buf = (char*)malloc(bufsz); +UNSUPPORTED("1qmkdostw44gpi19vfg7p7n4j"); // if (!buf) { +UNSUPPORTED("91m823gnagh03x83drfk3mo8m"); // fputs("userout: could not allocate memory\n", stderr ); +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6t1zqtkodps5c0ip5z9m4ys5c"); // if (level != AGPREV) { +UNSUPPORTED("986dz74hfht24rg9hgakv8o54"); // usererrf ((level == AGERR) ? "Error" : "Warning"); +UNSUPPORTED("auhftu1jph1rzzhrtj7f3pnou"); // usererrf (": "); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5ya9apu1bgpt462vp1v11qhyg"); // while (1) { +UNSUPPORTED("4ybihr3u2ey4klcf9a6u65435"); // n = vsnprintf(buf, bufsz, fmt, args); +UNSUPPORTED("qqfwwqxfm9i6sfc0lugd66nf"); // if ((n > -1) && (n < bufsz)) { +UNSUPPORTED("4tqvj0fhss0ek9tp1adme5vk9"); // usererrf (buf); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dnk7v6jvu1uasfcyydkzf1jz2"); // bufsz = ((bufsz*2)>(n+1)?(bufsz*2):(n+1)); +UNSUPPORTED("bbchby3jmfv3jbe401wrjuxzt"); // if ((np = (char*)realloc(buf, bufsz)) == NULL) { +UNSUPPORTED("91m823gnagh03x83drfk3mo8m"); // fputs("userout: could not allocate memory\n", stderr ); +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("46b127jugogkjrjxb2n977bmx"); // va_end(args); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bg9mt0ayklk7lbw3v07dtfigf +// static int agerr_va(agerrlevel_t level, const char *fmt, va_list args) +public static Object agerr_va(Object... arg) { +UNSUPPORTED("863t2xdlf52lqifpg4efkawgu"); // static int agerr_va(agerrlevel_t level, const char *fmt, va_list args) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eyawtts92lihkxvbr369hkd5y"); // agerrlevel_t lvl; +UNSUPPORTED("6lzzzfyhdb5tirbg1ccf9a5m3"); // /* Use previous error level if continuation message; +UNSUPPORTED("czykt0ac8rrwoqsh6nt389fu3"); // * Convert AGMAX to AGERROR; +UNSUPPORTED("4f8vlc80ixgxk5xc2y425pevt"); // * else use input level +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("9u6tfrdzyinkomy2qh16oj4d2"); // lvl = (level == AGPREV ? agerrno : (level == AGMAX) ? AGERR : level); +UNSUPPORTED("ah9u8brmn3qarkrtj9yx70p41"); // /* store this error level */ +UNSUPPORTED("9e0amfta5xoupadiuupa6cuk7"); // agerrno = lvl; +UNSUPPORTED("bwyv65veemjr0y9un4vygtwxb"); // agmaxerr = ((agmaxerr)>(agerrno)?(agmaxerr):(agerrno)); +UNSUPPORTED("8s6ysspbpufy37chp503snd3k"); // /* We report all messages whose level is bigger than the user set agerrlevel +UNSUPPORTED("4e7jp3qf7pzapc314u0v666ze"); // * Setting agerrlevel to AGMAX turns off immediate error reporting. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("588lzo1simvq8koio5n8dzesh"); // if (lvl >= agerrlevel) { +UNSUPPORTED("d201l1bxazbzd0nlukhvkxtcs"); // if (usererrf) +UNSUPPORTED("3go4zq0x8ul8ywoga0jkifagx"); // userout (level, fmt, args); +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("19tsxpp6yrcfw8o24jbkr1vi2"); // if (level != AGPREV) +UNSUPPORTED("bl903wgo0kk135i25d7zw09r6"); // fprintf(stderr, "%s: ", (level == AGERR) ? "Error" : "Warning"); +UNSUPPORTED("6ua1mju1v7qfokep4q7orohn"); // vfprintf(stderr, fmt, args); +UNSUPPORTED("8egqb590juz3lqxaevjssja42"); // va_end(args); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("alerbgdhkd2yzpj6s9lljgxfs"); // if (!agerrout) { +UNSUPPORTED("ekzfh0kvyswlemi42n42ohs2g"); // agerrout = tmpfile(); +UNSUPPORTED("5zhg56z3tqisbs9qbue0mopri"); // if (!agerrout) +UNSUPPORTED("btmwubugs9vkexo4yb7a5nqel"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5ceb5u5voh8555yqssrjmx6gr"); // if (level != AGPREV) +UNSUPPORTED("a0zpkl87k498gutehuvchd3nh"); // aglast = ftell(agerrout); +UNSUPPORTED("85nv28rgbwdyknpacqqgv44mo"); // vfprintf(agerrout, fmt, args); +UNSUPPORTED("46b127jugogkjrjxb2n977bmx"); // va_end(args); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f1dcuhccwam2p309jxc9b2r0t +// int agerr(agerrlevel_t level, const char *fmt, ...) +public static Object agerr(Object... arg) { +UNSUPPORTED("ducszxizpq2a6cql4p9bb47a0"); // int agerr(agerrlevel_t level, const char *fmt, ...) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e0w8vmmpk3wfxblsmz0uoazgs"); // va_list args; +UNSUPPORTED("4k15snpcm2gg90dw68lllbtzl"); // va_start(args, fmt); +UNSUPPORTED("13n0ghn77wo5crn8kvxkrhzbu"); // return agerr_va(level, fmt, args); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7e34h9jajkjs3ho44gntjj2j7 +// void agerrorf(const char *fmt, ...) +public static Object agerrorf(Object... arg) { +UNSUPPORTED("6x8x6k3hp05ros0ch1hlv6581"); // void agerrorf(const char *fmt, ...) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e0w8vmmpk3wfxblsmz0uoazgs"); // va_list args; +UNSUPPORTED("4k15snpcm2gg90dw68lllbtzl"); // va_start(args, fmt); +UNSUPPORTED("30oktqf2os0275j4d3su6q4l"); // agerr_va(AGERR, fmt, args); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 gpzdsjhtcu403ei3vn2ux3bm +// void agwarningf(const char *fmt, ...) +public static Object agwarningf(Object... arg) { +UNSUPPORTED("715xbkxnriyga0q1ic2xuml6n"); // void agwarningf(const char *fmt, ...) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e0w8vmmpk3wfxblsmz0uoazgs"); // va_list args; +UNSUPPORTED("4k15snpcm2gg90dw68lllbtzl"); // va_start(args, fmt); +UNSUPPORTED("dc1ifhst6g6drubm0t70yjtv"); // agerr_va(AGWARN, fmt, args); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6by0h6d4uor86q4dcd9xjw31m +// int agerrors() +public static Object agerrors(Object... arg) { +UNSUPPORTED("92pi4jdtb8fnjjy0lzzbtg1so"); // int agerrors() { return agmaxerr; } + +throw new UnsupportedOperationException(); +} + + + + +//3 aj45yt9ph7b1gdx6hqrt0zr2s +// int agreseterrors() +public static Object agreseterrors(Object... arg) { +UNSUPPORTED("dw5u39aul656iwk9wm0luqblz"); // int agreseterrors() +UNSUPPORTED("yo7buicdiu29rv5vxhas0v3s"); // { +UNSUPPORTED("48ud8ypoh34wmhdfdct9ihz28"); // int rc = agmaxerr; +UNSUPPORTED("8qk2j9d2ppvfm7m5c7elh2hv1"); // agmaxerr = 0; +UNSUPPORTED("3jqypku7gzo7r35oqqr8iwfss"); // return rc; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/agxbuf__c.java plantuml-8039/src/gen/lib/cgraph/agxbuf__c.java --- plantuml-8024/src/gen/lib/cgraph/agxbuf__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/agxbuf__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,170 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.Macro.UNSUPPORTED; + +public class agxbuf__c { + + +//3 688cb39nv214oqldmhd8roirz +// void agxbinit(agxbuf * xb, unsigned int hint, unsigned char *init) +public static Object agxbinit(Object... arg) { +UNSUPPORTED("4l5fskgdbcbqssdclb6lwckwe"); // void agxbinit(agxbuf * xb, unsigned int hint, unsigned char *init) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3ctz7esjgupftv01eshc2dhx2"); // if (init) { +UNSUPPORTED("7ccqm4ipez0mmdk6bv50shi8z"); // xb->buf = init; +UNSUPPORTED("bgb2e1tveztx6w0nuo6t6kxbd"); // xb->dyna = 0; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("49jhfm9yw3megswomc4gzzgd7"); // if (hint == 0) +UNSUPPORTED("5h1ggxg5ypn75rue18vgizp12"); // hint = BUFSIZ; +UNSUPPORTED("bwuph2kus95n04yy45ff0ygwg"); // xb->dyna = 1; +UNSUPPORTED("rowpmdm8bmtos5w0uxjinsts"); // xb->buf = (unsigned char*)malloc((hint)*sizeof(unsigned char)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1vqjbr0qaxnp1tks2ilwqgn3g"); // xb->eptr = xb->buf + hint; +UNSUPPORTED("dtbxbzhkw05lut0ozk9a49lw6"); // xb->ptr = xb->buf; +UNSUPPORTED("5ymin98xo0ermvpyhsuo8xwim"); // *xb->ptr = '\0'; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 lu77u8ojbx0os3eapudi7k0e +// int agxbmore(agxbuf * xb, unsigned int ssz) +public static Object agxbmore(Object... arg) { +UNSUPPORTED("1zbuuoy42nrbwgmz0kzwxatml"); // int agxbmore(agxbuf * xb, unsigned int ssz) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ayzlme0ebe3j87lpz076cg2vq"); // int cnt; /* current no. of characters in buffer */ +UNSUPPORTED("71r9w1f25l9h79jodjer7my8a"); // int size; /* current buffer size */ +UNSUPPORTED("2bckq0rejaf94iovglem6hqko"); // int nsize; /* new buffer size */ +UNSUPPORTED("dmokvf86b5kj3srnwwbr7ebmc"); // unsigned char *nbuf; /* new buffer */ +UNSUPPORTED("347vqdgen21gpinnet4lkk7gk"); // size = xb->eptr - xb->buf; +UNSUPPORTED("49rolm7orqt4aw3uud529g4qc"); // nsize = 2 * size; +UNSUPPORTED("svb97awsbpziy0qhoaq68u7b"); // if (size + (int)ssz > nsize) +UNSUPPORTED("7ykdy1xuvrmibubukfxhfmz91"); // nsize = size + ssz; +UNSUPPORTED("bfinudkdiev8mwo6udbayoaex"); // cnt = xb->ptr - xb->buf; +UNSUPPORTED("4cmq49lu7qhmui59rl36qd6fr"); // if (xb->dyna) { +UNSUPPORTED("8vf8arbygb0610hkc403uiror"); // nbuf = realloc(xb->buf, nsize); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("3sajbfvh0ecfy6mdfwrwrojl6"); // nbuf = (unsigned char*)malloc((nsize)*sizeof(unsigned char)); +UNSUPPORTED("do1ts7n0vopj00hs85yw95qjx"); // memcpy(nbuf, xb->buf, cnt); +UNSUPPORTED("bwuph2kus95n04yy45ff0ygwg"); // xb->dyna = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5a5gutjqda6fhdylt7vi64g71"); // xb->buf = nbuf; +UNSUPPORTED("dodqzfdb41641741187lm9aci"); // xb->ptr = xb->buf + cnt; +UNSUPPORTED("e45cf41wsuzfjfi2my7jn7odp"); // xb->eptr = xb->buf + nsize; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7q04bdt3el30gta4bdtl0cr8s +// int agxbput_n(agxbuf * xb, const char *s, unsigned int ssz) +public static Object agxbput_n(Object... arg) { +UNSUPPORTED("xj5zv8tlevqufi7kllkj6uu1"); // int agxbput_n(agxbuf * xb, const char *s, unsigned int ssz) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6q0wy2t9qi11079j0wyuhsmiw"); // if (xb->ptr + ssz > xb->eptr) +UNSUPPORTED("82p9dlopf5tuzmyy5454sv4mm"); // agxbmore(xb, ssz); +UNSUPPORTED("9tvk5ztcu9lg2u40sfmevitl2"); // memcpy(xb->ptr, s, ssz); +UNSUPPORTED("2wy6om6o92zevnnevl5v0pr0c"); // xb->ptr += ssz; +UNSUPPORTED("dzondrrxi2pe7xy72r0jstd20"); // return ssz; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 12y895mwxr60srt40guuma6j5 +// int agxbput(agxbuf * xb, const char *s) +public static Object agxbput(Object... arg) { +UNSUPPORTED("3oqw629wj8yulgtvwwlxn8iyi"); // int agxbput(agxbuf * xb, const char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dmstj6pqesin7a4ufrtut65t5"); // unsigned int ssz = strlen(s); +UNSUPPORTED("7i8gvckml5cbfmuhw2pjs8czl"); // return agxbput_n(xb, s, ssz); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2zlar00xk0a2nnqcmjb587kvc +// void agxbfree(agxbuf * xb) +public static Object agxbfree(Object... arg) { +UNSUPPORTED("3zwjoplc2wp6x7lb2b5g59pl8"); // void agxbfree(agxbuf * xb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("da8gv3dgf6bnks54n9mnlgzxk"); // if (xb->dyna) +UNSUPPORTED("62irfu7vrq2ewolixn0ksp5f6"); // free(xb->buf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cn9iiltxtts5ijjpixwt2uziu +// int agxbpop(agxbuf * xb) +public static Object agxbpop(Object... arg) { +UNSUPPORTED("1hje4ns6ul7cj52y9n9wlgkkc"); // int agxbpop(agxbuf * xb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("a6gx1f2k9r1jreuxvg1n7jpiw"); // if (xb->ptr > xb->buf) { +UNSUPPORTED("asuii09e2jl1px5timbisq3sx"); // c = *xb->ptr--; +UNSUPPORTED("7q6l09k0u87z31e0nmv2lwr94"); // return c; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/apply__c.java plantuml-8039/src/gen/lib/cgraph/apply__c.java --- plantuml-8024/src/gen/lib/cgraph/apply__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/apply__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,300 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static gen.lib.cgraph.subg__c.agfstsubg; +import static gen.lib.cgraph.subg__c.agnxtsubg; +import static smetana.core.JUtils.function; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGINEDGE; +import static smetana.core.Macro.AGNODE; +import static smetana.core.Macro.AGOUTEDGE; +import static smetana.core.Macro.AGRAPH; +import static smetana.core.Macro.AGTYPE; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agobj_s; +import h.Agraph_s; +import smetana.core.CFunction; +import smetana.core.__ptr__; + +public class apply__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + + + +//3 dups4iqoegzha9tq6pupoim08 +// static Agobj_t *subnode_search(Agraph_t * sub, Agobj_t * n) +public static Object subnode_search(Object... arg) { +UNSUPPORTED("pxacbw8fd49n7yuf74ww3m4o"); // static Agobj_t *subnode_search(Agraph_t * sub, Agobj_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5h609thtbczs8d02vo4tkt5av"); // if (agraphof(n) == sub) +UNSUPPORTED("bp96fem54xcxrw16cmnlpell9"); // return n; +UNSUPPORTED("bdb4i0co0gl0r87nhwlfqsbah"); // return (Agobj_t *) agsubnode(sub, (Agnode_t *) n, (0)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1qi7zit7howdl3n270k4whbgh +// static Agobj_t *subedge_search(Agraph_t * sub, Agobj_t * e) +public static Object subedge_search(Object... arg) { +UNSUPPORTED("4hoc59s32d3n083o2rhe085zx"); // static Agobj_t *subedge_search(Agraph_t * sub, Agobj_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3y411cm763tnv8mvrigf8pg8y"); // if (agraphof(e) == sub) +UNSUPPORTED("8ihpc010r3nccyfagedpc4nlv"); // return e; +UNSUPPORTED("bha9r1zngfg6nmzgqmku0ji52"); // return (Agobj_t *) agsubedge(sub, (Agedge_t *) e, (0)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 95y4aknoddh42lieikrb72vxw +// static Agobj_t *subgraph_search(Agraph_t * sub, Agobj_t * g) +public static Agobj_s subgraph_search(Agraph_s sub, Agobj_s g) { +ENTERING("95y4aknoddh42lieikrb72vxw","subgraph_search"); +try { + return (Agobj_s) sub.castTo(Agobj_s.class); +} finally { +LEAVING("95y4aknoddh42lieikrb72vxw","subgraph_search"); +} +} + + + + +//3 8s9l15wqucf1glmbeb6fmya8e +// static void rec_apply(Agraph_t * g, Agobj_t * obj, agobjfn_t fn, void *arg, agobjsearchfn_t objsearch, int preorder) +public static void rec_apply(Agraph_s g, Agobj_s obj, CFunction fn, __ptr__ arg, CFunction objsearch, boolean preorder) { +ENTERING("8s9l15wqucf1glmbeb6fmya8e","rec_apply"); +try { + Agraph_s sub; + Agobj_s subobj; + if (preorder) + fn.exe(g, obj, arg); + for (sub = agfstsubg(g); sub!=null; sub = agnxtsubg(sub)) { + if ((subobj = (Agobj_s) objsearch.exe(sub, obj))!=null) + rec_apply(sub, subobj, fn, arg, objsearch, preorder); + } + if (N(preorder)) + fn.exe(g, obj, arg); +} finally { +LEAVING("8s9l15wqucf1glmbeb6fmya8e","rec_apply"); +} +} + + + + +//3 9hqql178zpl8iudlf6sgnv7aj +// int agapply(Agraph_t * g, Agobj_t * obj, agobjfn_t fn, void *arg, int preorder) +public static int agapply(Agraph_s g, Agobj_s obj, CFunction fn, __ptr__ arg, boolean preorder) { +ENTERING("9hqql178zpl8iudlf6sgnv7aj","agapply"); +try { + Agobj_s subobj; + CFunction objsearch=null; + switch (AGTYPE(obj)) { + case AGRAPH: + objsearch = function(apply__c.class, "subgraph_search"); + break; + case AGNODE: +UNSUPPORTED("arkoj4niyfqe213zut6szzeji"); // objsearch = subnode_search; + break; + case AGOUTEDGE: + case AGINEDGE: +UNSUPPORTED("3h8kzrrsobdp839772gupdrbf"); // objsearch = subedge_search; + break; + default: +UNSUPPORTED("2pc67byzirrkhe1cmdoguh6i1"); // agerr(AGERR, "agapply: unknown object type %d\n", AGTYPE(obj)); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; + break; + } + if ((subobj = (Agobj_s) objsearch.exe(g, obj))!=null) { + rec_apply(g, subobj, fn, arg, objsearch, preorder); + return 0; + } else +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("9hqql178zpl8iudlf6sgnv7aj","agapply"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/attr__c.java plantuml-8039/src/gen/lib/cgraph/attr__c.java --- plantuml-8024/src/gen/lib/cgraph/attr__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/attr__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1009 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static gen.lib.cdt.dtsize__c.dtsize_; +import static gen.lib.cdt.dtview__c.dtview; +import static gen.lib.cgraph.apply__c.agapply; +import static gen.lib.cgraph.edge__c.agfstout; +import static gen.lib.cgraph.edge__c.agnxtout; +import static gen.lib.cgraph.graph__c.agopen; +import static gen.lib.cgraph.mem__c.agalloc; +import static gen.lib.cgraph.node__c.agfstnode; +import static gen.lib.cgraph.node__c.agnxtnode; +import static gen.lib.cgraph.obj__c.agmethod_upd; +import static gen.lib.cgraph.obj__c.agraphof; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.cgraph.rec__c.agbindrec; +import static gen.lib.cgraph.rec__c.aggetrec; +import static gen.lib.cgraph.refstr__c.agstrdup; +import static gen.lib.cgraph.refstr__c.agstrfree; +import static gen.lib.cgraph.subg__c.agparent; +import static gen.lib.cgraph.utils__c.agdtopen; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.function; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGEDGE; +import static smetana.core.Macro.AGINEDGE; +import static smetana.core.Macro.AGNODE; +import static smetana.core.Macro.AGOUTEDGE; +import static smetana.core.Macro.AGRAPH; +import static smetana.core.Macro.AGTYPE; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agattr_s; +import h.Agdatadict_s; +import h.Agedge_s; +import h.Agnode_s; +import h.Agobj_s; +import h.Agraph_s; +import h.Agrec_s; +import h.Agsym_s; +import h._dt_s; +import h._dtdisc_s; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__ptr__; + +public class attr__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + +//1 cwbgwzo8cprw4eobs3iji59dp +// Dtdisc_t AgDataDictDisc = +/*static public final __struct__<_dtdisc_s> AgDataDictDisc = __struct__.from(_dtdisc_s.class); +static { + AgDataDictDisc.setInt("key", OFFSET.create(Agsym_s.class, "name").toInt()); + AgDataDictDisc.setInt("size", -1); + AgDataDictDisc.setInt("link", OFFSET.create(Agsym_s.class, "link").toInt()); + AgDataDictDisc.setPtr("makef", null); + AgDataDictDisc.setPtr("freef", function(attr__c.class, "freesym")); + AgDataDictDisc.setPtr("comparf", null); + AgDataDictDisc.setPtr("hashf", null); +}*/ + +//1 67blfrj9x850g8ccpo9qjer2 +// static char DataDictName[] = +public final static CString DataDictName = new CString("_AG_datadict"); +//1 1qn6s7dwoq08ugdjnmsvdgj6u +// static Agdesc_t ProtoDesc = +/*static final public __struct__ ProtoDesc = __struct__.from(Agdesc_s.class); +static { + ProtoDesc.setInt("directed", 1); + ProtoDesc.setInt("strict", 0); + ProtoDesc.setInt("no_loop", 1); + ProtoDesc.setInt("maingraph", 0); + ProtoDesc.setInt("flatlock", 1); + ProtoDesc.setInt("no_write", 1); +}*/ + + +//1 30ftenxl879wmnziizunr5vt1 +// static Agraph_t *ProtoGraph +//static public Agraph_s ProtoGraph; + + + +//3 4bm10isw1qq1eqcse8afbxee3 +// Agdatadict_t *agdatadict(Agraph_t * g, int cflag) +public static Agdatadict_s agdatadict(Agraph_s g, boolean cflag) { +ENTERING("4bm10isw1qq1eqcse8afbxee3","agdatadict"); +try { + Agdatadict_s rv; + rv = (Agdatadict_s) aggetrec(g, DataDictName, false).castTo(Agdatadict_s.class); + if (rv!=null || N(cflag)) + return rv; + init_all_attrs(g); + rv = (Agdatadict_s) aggetrec(g, DataDictName, false).castTo(Agdatadict_s.class); + return rv; +} finally { +LEAVING("4bm10isw1qq1eqcse8afbxee3","agdatadict"); +} +} + + + + +//3 2b2cg0am9e1lwc0nqikl2wczb +// Dict_t *agdictof(Agraph_t * g, int kind) +public static _dt_s agdictof(Agraph_s g, int kind) { +ENTERING("2b2cg0am9e1lwc0nqikl2wczb","agdictof"); +try { + Agdatadict_s dd; + _dt_s dict; + dd = agdatadict(g, false); + if (dd!=null) + switch (kind) { + case AGRAPH: + dict = (_dt_s) dd.getPtr("dict.g"); + break; + case AGNODE: + dict = (_dt_s) dd.getPtr("dict.n"); + break; + case AGINEDGE: + case AGOUTEDGE: + dict = (_dt_s) dd.getPtr("dict.e"); + break; + default: + System.err.println("agdictof: unknown kind "+ kind); + dict = null; + throw new UnsupportedOperationException(); + } else + dict = null; + return dict; +} finally { +LEAVING("2b2cg0am9e1lwc0nqikl2wczb","agdictof"); +} +} + + + + +//3 dbhw2q2jfsz9qwawchy0hxj4i +// Agsym_t *agnewsym(Agraph_t * g, char *name, char *value, int id, int kind) +public static Agsym_s agnewsym(Agraph_s g, CString name, CString value, int id, int kind) { +ENTERING("dbhw2q2jfsz9qwawchy0hxj4i","agnewsym"); +try { + Agsym_s sym; + sym = (Agsym_s) agalloc(g, sizeof(Agsym_s.class)); + sym.setInt("kind", kind); + sym.setPtr("name", agstrdup(g, name)); + sym.setPtr("defval", agstrdup(g, value)); + sym.setInt("id", id); + return sym; +} finally { +LEAVING("dbhw2q2jfsz9qwawchy0hxj4i","agnewsym"); +} +} + + + + +//3 5s4tpjeh3jwf722izjq6cm6rq +// static void agcopydict(Dict_t * src, Dict_t * dest, Agraph_t * g, int kind) +public static Object agcopydict(Object... arg) { +UNSUPPORTED("5x2q9spbx7y0k6l59z6oy8cuc"); // static void agcopydict(Dict_t * src, Dict_t * dest, Agraph_t * g, int kind) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1y11aotql5lts9njnreyq9t6r"); // Agsym_t *sym, *newsym; +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("5wsq1ipnwwy8yumrluztmye7f"); // for (sym = (Agsym_t *) (*(((Dt_t*)(src))->searchf))((src),(void*)(0),0000200); sym; +UNSUPPORTED("aqq7o7hh4nwqvvtcdqetmidkg"); // sym = (Agsym_t *) (*(((Dt_t*)(src))->searchf))((src),(void*)(sym),0000010)) { +UNSUPPORTED("2astc0oxlvew45mitrflnx0ar"); // newsym = agnewsym(g, sym->name, sym->defval, sym->id, kind); +UNSUPPORTED("36os9hvg0e59rrhe68di2b5r3"); // newsym->print = sym->print; +UNSUPPORTED("77sre49xpjwlyjqhek659u3tq"); // newsym->fixed = sym->fixed; +UNSUPPORTED("3rc58hrkem2xey59d9ptss1sx"); // (*(((Dt_t*)(dest))->searchf))((dest),(void*)(newsym),0000001); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 alb1d5x6huba3q44ms1wt0rr5 +// static Agdatadict_t *agmakedatadict(Agraph_t * g) +public static Agdatadict_s agmakedatadict(Agraph_s g) { +ENTERING("alb1d5x6huba3q44ms1wt0rr5","agmakedatadict"); +try { + Agraph_s par; + Agdatadict_s parent_dd, dd; + dd = (Agdatadict_s) agbindrec(g, DataDictName, sizeof(Agdatadict_s.class), + false).castTo(Agdatadict_s.class); + dd.setPtr("dict.n", agdtopen(g, Z._().AgDataDictDisc.amp(), Z._().Dttree)); + dd.setPtr("dict.e", agdtopen(g, Z._().AgDataDictDisc.amp(),Z._(). Dttree)); + dd.setPtr("dict.g", agdtopen(g, Z._().AgDataDictDisc.amp(), Z._().Dttree)); + if ((par = agparent(g))!=null) { + parent_dd = agdatadict(par, false); + dtview((_dt_s)dd.getPtr("dict.n"), (_dt_s)parent_dd.getPtr("dict.n")); + dtview((_dt_s)dd.getPtr("dict.e"), (_dt_s)parent_dd.getPtr("dict.e")); + dtview((_dt_s)dd.getPtr("dict.g"), (_dt_s)parent_dd.getPtr("dict.g")); + } else { + if (Z._().ProtoGraph!=null && NEQ(g, Z._().ProtoGraph)) { + /* it's not ok to dtview here for several reasons. the proto + graph could change, and the sym indices don't match */ + parent_dd = agdatadict(Z._().ProtoGraph, false); + agcopydict(parent_dd.getPtr("dict.n"), dd.getPtr("dict.n"), g, AGNODE); + agcopydict(parent_dd.getPtr("dict.e"), dd.getPtr("dict.e"), g, AGEDGE); + agcopydict(parent_dd.getPtr("dict.g"), dd.getPtr("dict.g"), g, AGRAPH); + } + } + return dd; +} finally { +LEAVING("alb1d5x6huba3q44ms1wt0rr5","agmakedatadict"); +} +} + + + + +//3 50wfzq5wy8wc7vuyvs3mrx5ct +// Agsym_t *agdictsym(Dict_t * dict, char *name) +public static Agsym_s agdictsym(_dt_s dict, CString name) { +ENTERING("50wfzq5wy8wc7vuyvs3mrx5ct","agdictsym"); +try { + Agsym_s key = (Agsym_s) Memory.malloc(Agsym_s.class); + key.setPtr("name", name); + return (Agsym_s) dict.call("searchf", (dict),key,0000004); +} finally { +LEAVING("50wfzq5wy8wc7vuyvs3mrx5ct","agdictsym"); +} +} + + + + +//3 4wy4ggu70d7harhix8xnh5w4l +// Agsym_t *aglocaldictsym(Dict_t * dict, char *name) +public static Agsym_s aglocaldictsym(_dt_s dict, CString name) { +ENTERING("4wy4ggu70d7harhix8xnh5w4l","aglocaldictsym"); +try { + Agsym_s rv; + _dt_s view; + view = dtview(dict, null); + rv = agdictsym(dict, name); + dtview(dict, view); + return rv; +} finally { +LEAVING("4wy4ggu70d7harhix8xnh5w4l","aglocaldictsym"); +} +} + + + + +//3 8hy9sl3zmwobwm960jz466ufe +// Agsym_t *agattrsym(void *obj, char *name) +public static Agsym_s agattrsym(__ptr__ obj, CString name) { +ENTERING("8hy9sl3zmwobwm960jz466ufe","agattrsym"); +try { + Agattr_s data; + Agsym_s rv; + CString arg = name; + data = agattrrec(obj.castTo(Agobj_s.class)); + if (data!=null) + rv = agdictsym((_dt_s)data.getPtr("dict"), arg); + else + rv = null; + return rv; +} finally { +LEAVING("8hy9sl3zmwobwm960jz466ufe","agattrsym"); +} +} + + +//1 covyqfvabl7igx9g5rvlhgngz +// char *AgDataRecName = +public final static CString AgDataRecName = new CString("_AG_strdata"); + + + +//3 6az8xu0sgu1d6abu0xfpd89hi +// static int topdictsize(Agobj_t * obj) +public static int topdictsize(Agobj_s obj) { +ENTERING("6az8xu0sgu1d6abu0xfpd89hi","topdictsize"); +try { + _dt_s d; + d = agdictof(agroot(agraphof(obj)), AGTYPE(obj)); + return d!=null ? dtsize_(d) : 0; +} finally { +LEAVING("6az8xu0sgu1d6abu0xfpd89hi","topdictsize"); +} +} + + + + +//3 3wjrlyjdlz8k9nfxenxsfiqmj +// static Agrec_t *agmakeattrs(Agraph_t * context, void *obj) +public static Agrec_s agmakeattrs(Agraph_s context, __ptr__ obj) { +ENTERING("3wjrlyjdlz8k9nfxenxsfiqmj","agmakeattrs"); +try { + int sz; + Agattr_s rec; + Agsym_s sym; + _dt_s datadict; + rec = (Agattr_s) agbindrec(obj, AgDataRecName, sizeof(Agattr_s.class), false).castTo(Agattr_s.class); + datadict = agdictof(context, AGTYPE(obj)); + + + if (rec.getPtr("dict") == null) { + rec.setPtr("dict", agdictof(agroot(context), AGTYPE(obj))); + /* don't malloc(0) */ + sz = topdictsize((Agobj_s) obj); + if (sz < 4) + sz = 4; + rec.setPtr("str", agalloc(agraphof(obj), sizeof("char*", sz))); + /* doesn't call agxset() so no obj-modified callbacks occur */ + for (sym = (Agsym_s) ((__ptr__)datadict.call("searchf", datadict,null,0000200)); sym!=null; + sym = (Agsym_s) ((__ptr__)datadict.call("searchf", datadict,sym,0000010))) + rec.getArrayOfCString("str").plus(sym.getInt("id")).setCString( agstrdup(agraphof(obj), sym.getCString("defval"))); + } else { + } + return (Agrec_s) rec; +} finally { +LEAVING("3wjrlyjdlz8k9nfxenxsfiqmj","agmakeattrs"); +} +} + + + + +//3 50md6kgbmmjiwsq00tdvtqrom +// static void freeattr(Agobj_t * obj, Agattr_t * attr) +public static Object freeattr(Object... arg) { +UNSUPPORTED("b7w7ts75503jg2pb69wdgviy6"); // static void freeattr(Agobj_t * obj, Agattr_t * attr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("22kc1nt4b0bllq26fmw8ytgp2"); // int i, sz; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("8pfuk9ua4x9bh68zk1kzwc5t9"); // g = agraphof(obj); +UNSUPPORTED("65sc7rva5ncw0awo92jglve6w"); // sz = topdictsize(obj); +UNSUPPORTED("cl9683xent4h3vyf21r0ct6a1"); // for (i = 0; i < sz; i++) +UNSUPPORTED("4so817anjuwmq6rj2hjrk4wlx"); // agstrfree(g, attr->str[i]); +UNSUPPORTED("5t1oinkxblld9xyoaz469i6dz"); // agfree(g, attr->str); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6b3c2syvj23lbf7kz0aal8vmc +// static void freesym(Dict_t * d, void * obj, Dtdisc_t * disc) +public static void freesym(_dt_s d, Object obj, _dtdisc_s disc) { +ENTERING("6b3c2syvj23lbf7kz0aal8vmc","freesym"); +try { + UNSUPPORTED("bf9av4xbx61835st3og3wfqr8"); // static void freesym(Dict_t * d, void * obj, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("av59ae8c4mws46sf5dumz1k0s"); // Agsym_t *sym; +UNSUPPORTED("6z29omss9ay00bqf6xael7t6t"); // (void) d; +UNSUPPORTED("3wnut6i7v07q7n0fa538dyp7a"); // sym = (Agsym_t *) obj; +UNSUPPORTED("8l8wg6vltx6d7vc9dzqb6n3wi"); // (void) disc; +UNSUPPORTED("aka2fcwk9snppcvd59dzewx38"); // agstrfree(Ag_G_global, sym->name); +UNSUPPORTED("89enhovojps3wt6zo6s4xqlu7"); // agstrfree(Ag_G_global, sym->defval); +UNSUPPORTED("2ttw1xr5hp7fxq8w5bofu7cg9"); // agfree(Ag_G_global, sym); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("6b3c2syvj23lbf7kz0aal8vmc","freesym"); +} +} + + + + +//3 13sfx74lme08ur04vkrqta25j +// Agattr_t *agattrrec(void *obj) +public static Agattr_s agattrrec(__ptr__ obj) { +ENTERING("13sfx74lme08ur04vkrqta25j","agattrrec"); +try { + return (Agattr_s) aggetrec(obj, AgDataRecName, false).castTo(Agattr_s.class); +} finally { +LEAVING("13sfx74lme08ur04vkrqta25j","agattrrec"); +} +} + + + + +//3 2io7b26wq70e7kwdlzsh6bw7f +// static void addattr(Agraph_t * g, Agobj_t * obj, Agsym_t * sym) +public static void addattr(Agraph_s g, Agobj_s obj, Agsym_s sym) { +ENTERING("2io7b26wq70e7kwdlzsh6bw7f","addattr"); +try { + Agattr_s attr; + attr = (Agattr_s) agattrrec(obj); + + if (sym.getInt("id") >= 4) + attr.setPtr("str", (__ptr__) g.getPtr("clos").getPtr("disc").getPtr("mem").call("resize", g.getPtr("clos").getPtr("state").getPtr("mem"), + attr.getPtr("str"), + sizeof("char*", sym.getInt("id")), + sizeof("char*", sym.getInt("id") + 1))); + attr.getArrayOfCString("str").plus(sym.getInt("id")).setCString(agstrdup(g, sym.getCString("defval"))); + /* agmethod_upd(g,obj,sym); JCE and GN didn't like this. */ +} finally { +LEAVING("2io7b26wq70e7kwdlzsh6bw7f","addattr"); +} +} + + + + +//3 a3qr8ug1rkxp6ocieyp41ly3o +// static Agsym_t *setattr(Agraph_t * g, int kind, char *name, char *value) +public static Agsym_s setattr(Agraph_s g, int kind, CString name, CString value) { +ENTERING("a3qr8ug1rkxp6ocieyp41ly3o","setattr"); +try { + Agdatadict_s dd; + _dt_s ldict, rdict; + Agsym_s lsym, psym, rsym, rv; + Agraph_s root; + Agnode_s n; + Agedge_s e; + + root = agroot(g); + dd = agdatadict(g, (N(0))); /* force initialization of string attributes */ + ldict = agdictof(g, kind); + lsym = aglocaldictsym(ldict, name); + if (lsym!=null) { /* update old local definiton */ + agstrfree(g, lsym.getCString("defval")); + lsym.setPtr("defval", agstrdup(g, value)); + rv = lsym; + } else { + psym = agdictsym(ldict, name); /* search with viewpath up to root */ + if (psym!=null) { /* new local definition */ + lsym = agnewsym(g, name, value, psym.getInt("id"), kind); + ldict.castTo(_dt_s.class).call("searchf",ldict,lsym,0000001); + rv = lsym; + } else { /* new global definition */ + rdict = agdictof(root, kind); + rsym = agnewsym(g, name, value, dtsize_(rdict), kind); + rdict.castTo(_dt_s.class).call("searchf",rdict,rsym,0000001); + switch (kind) { + case AGRAPH: + agapply(root, (Agobj_s) root.castTo(Agobj_s.class), function(attr__c.class, "addattr"), + rsym, (N(0))); + break; + case AGNODE: + for (n = agfstnode(root); n!=null; n = agnxtnode(root, n)) + addattr(g, (Agobj_s) n.castTo(Agobj_s.class), rsym); + break; + case AGINEDGE: + case AGOUTEDGE: + for (n = agfstnode(root); n!=null; n = agnxtnode(root, n)) + for (e = agfstout(root, n); e!=null; e = agnxtout(root, e)) + addattr(g, (Agobj_s) e.castTo(Agobj_s.class), rsym); + break; + } + rv = rsym; + } + } + if (rv!=null && (kind == 0)) + agxset(g, rv, value); + agmethod_upd(g, g, rv); /* JCE and GN wanted this */ + return rv; +} finally { +LEAVING("a3qr8ug1rkxp6ocieyp41ly3o","setattr"); +} +} + + + + +//3 8f80aahwb8cqc2t9592v47ttd +// static Agsym_t *getattr(Agraph_t * g, int kind, char *name) +public static Agsym_s getattr(Agraph_s g, int kind, CString name) { +ENTERING("8f80aahwb8cqc2t9592v47ttd","getattr"); +try { + Agsym_s rv = null; + _dt_s dict; + dict = agdictof(g, kind); + if (dict!=null) + rv = agdictsym(dict, name); /* viewpath up to root */ + return rv; +} finally { +LEAVING("8f80aahwb8cqc2t9592v47ttd","getattr"); +} +} + + + + +//3 blr3drm2hxuzwd6gpeeb84yyg +// Agsym_t *agattr(Agraph_t * g, int kind, char *name, char *value) +public static Agsym_s agattr(Agraph_s g, int kind, CString name, CString value) { +ENTERING("blr3drm2hxuzwd6gpeeb84yyg","agattr"); +try { + Agsym_s rv; + if (g == null) { + if (Z._().ProtoGraph == null) + Z._().ProtoGraph = agopen(null, Z._().ProtoDesc.copy(), null); + g = Z._().ProtoGraph; + } + if (value!=null) + rv = setattr(g, kind, name, value); + else + rv = getattr(g, kind, name); + return rv; +} finally { +LEAVING("blr3drm2hxuzwd6gpeeb84yyg","agattr"); +} +} + + + + +//3 9medmidrd61ljmzlswpxwuxjm +// Agsym_t *agnxtattr(Agraph_t * g, int kind, Agsym_t * attr) +public static Object agnxtattr(Object... arg) { +UNSUPPORTED("1nquny99ik5rdqpdzl1efzzw5"); // Agsym_t *agnxtattr(Agraph_t * g, int kind, Agsym_t * attr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("l4y6zpshfefue2m18wlswfkp"); // Dict_t *d; +UNSUPPORTED("ekzntpxwtsedcg8uzmlsfbb5h"); // Agsym_t *rv; +UNSUPPORTED("786h6jfmnfzp39fkdwa7fzz71"); // if ((d = agdictof(g, kind))) { +UNSUPPORTED("4ftgdafqwlor792t6qye23xle"); // if (attr) +UNSUPPORTED("ealluogofs9ig6hmoveplut40"); // rv = (Agsym_t *) (*(((Dt_t*)(d))->searchf))((d),(void*)(attr),0000010); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("8yv728l38cvhrasbkgvce3bsb"); // rv = (Agsym_t *) (*(((Dt_t*)(d))->searchf))((d),(void*)(0),0000200); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("40zoypg37zonwb7nuewxdti29"); // rv = 0; +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ex2qtmuwz0o2e5svkujdbux78 +// void agraphattr_init(Agraph_t * g) +public static void agraphattr_init(Agraph_s g) { +ENTERING("ex2qtmuwz0o2e5svkujdbux78","agraphattr_init"); +try { + /* Agdatadict_t *dd; */ + /* Agrec_t *attr; */ + Agraph_s context; + g.getStruct("desc").setInt("has_attrs", 1); + /* dd = */ agmakedatadict(g); + if (N(context = agparent(g))) + context = g; + /* attr = */ agmakeattrs(context, g); +} finally { +LEAVING("ex2qtmuwz0o2e5svkujdbux78","agraphattr_init"); +} +} + + + + +//3 ccqww3yvujvy82bw6i1m0rv96 +// int agraphattr_delete(Agraph_t * g) +public static Object agraphattr_delete(Object... arg) { +UNSUPPORTED("4chc6o30l6nehselkvpo4xtao"); // int agraphattr_delete(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eq0gq1d7pmvj94j5nxbexze8p"); // Agdatadict_t *dd; +UNSUPPORTED("4e7iq4f4pk0x2v3zvdc2tdbd1"); // Agattr_t *attr; +UNSUPPORTED("6qvjz1ziwr3nwocahqvfzw14t"); // Ag_G_global = g; +UNSUPPORTED("4t3qv06n62hquaihi33zqc8bi"); // if ((attr = agattrrec(g))) { +UNSUPPORTED("31flnlx452d07y9bjvvk0nygk"); // freeattr((Agobj_t *) g, attr); +UNSUPPORTED("ag6tzein6gkpxcarnafbxws91"); // agdelrec(g, attr->h.name); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4p9dsuje96h48qnpgn0m02aij"); // if ((dd = agdatadict(g, (0)))) { +UNSUPPORTED("6ubrug572yhktadcj02muyr5e"); // if (agdtclose(g, dd->dict.n)) return 1; +UNSUPPORTED("3msb0eqyxef8ye31vjnzxbkh6"); // if (agdtclose(g, dd->dict.e)) return 1; +UNSUPPORTED("597gu9wfswglr8tbdrbqpr27p"); // if (agdtclose(g, dd->dict.g)) return 1; +UNSUPPORTED("dhn07bfi40opq2qmakfkosz77"); // agdelrec(g, dd->h.name); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2pp4ot3pqy71jpfvu3g398y4y +// void agnodeattr_init(Agraph_t * g, Agnode_t * n) +public static void agnodeattr_init(Agraph_s g, Agnode_s n) { +ENTERING("2pp4ot3pqy71jpfvu3g398y4y","agnodeattr_init"); +try { + Agattr_s data; + data = (Agattr_s) agattrrec(n); + if ((N(data)) || (N(data.getPtr("dict")))) + agmakeattrs(g, n); +} finally { +LEAVING("2pp4ot3pqy71jpfvu3g398y4y","agnodeattr_init"); +} +} + + + + +//3 7fbhjqpb2w17ahde2ie2l22n5 +// void agnodeattr_delete(Agnode_t * n) +public static Object agnodeattr_delete(Object... arg) { +UNSUPPORTED("72jlvkhc0kqxzf6infgwjj96n"); // void agnodeattr_delete(Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cxk0x5bmjhvgv8b1uv960lx4"); // Agattr_t *rec; +UNSUPPORTED("96w8m9uhl8904g83fqzl5a0fl"); // if ((rec = agattrrec(n))) { +UNSUPPORTED("34er8hi05mpmz6cld4lt2pzyd"); // freeattr((Agobj_t *) n, rec); +UNSUPPORTED("3vr5ktefaene3xr7wprole0q4"); // agdelrec(n, AgDataRecName); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ckfzmnxfi0jiiayxmq38giw0r +// void agedgeattr_init(Agraph_t * g, Agedge_t * e) +public static void agedgeattr_init(Agraph_s g, Agedge_s e) { +ENTERING("ckfzmnxfi0jiiayxmq38giw0r","agedgeattr_init"); +try { + Agattr_s data; + data = agattrrec(e); + if ((N(data)) || (N(data.getPtr("dict")))) + agmakeattrs(g, e); +} finally { +LEAVING("ckfzmnxfi0jiiayxmq38giw0r","agedgeattr_init"); +} +} + + + + +//3 3cm42f5o83187rwf4l7j7ie1k +// void agedgeattr_delete(Agedge_t * e) +public static Object agedgeattr_delete(Object... arg) { +UNSUPPORTED("97nvxy8b8p4rmo31kk1qkusns"); // void agedgeattr_delete(Agedge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cxk0x5bmjhvgv8b1uv960lx4"); // Agattr_t *rec; +UNSUPPORTED("5n6u4cfiymhx4a88tj9vpz5z8"); // if ((rec = agattrrec(e))) { +UNSUPPORTED("1ct1lua1igkf5stpj1vcd2z0h"); // freeattr((Agobj_t *) e, rec); +UNSUPPORTED("67nly1q6jgpe4ozoidte7zl4v"); // agdelrec(e, AgDataRecName); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eydjyhexv5jr6vi7uhk0cgphv +// char *agget(void *obj, char *name) +public static CString agget(__ptr__ obj, CString name) { +ENTERING("eydjyhexv5jr6vi7uhk0cgphv","agget"); +try { + Agsym_s sym; + Agattr_s data; + CString rv = null; + sym = agattrsym(obj, name); + if (sym == null) + rv = null; /* note was "", but this provides more info */ + else { + data = agattrrec(obj.castTo(Agobj_s.class)); + rv = data.getArrayOfCString("str").plus(sym.getInt("id")).getCString(); + } + return rv; +} finally { +LEAVING("eydjyhexv5jr6vi7uhk0cgphv","agget"); +} +} + + + + +//3 9h5oymhfkp6k34zl0fonn10k9 +// char *agxget(void *obj, Agsym_t * sym) +public static CString agxget(__ptr__ obj, Agsym_s sym) { +ENTERING("9h5oymhfkp6k34zl0fonn10k9","agxget"); +try { + Agattr_s data; + CString rv; + data = agattrrec(obj.castTo(Agobj_s.class)); + + rv = data.getArrayOfCString("str").plus(sym.getInt("id")).getCString(); + return rv; +} finally { +LEAVING("9h5oymhfkp6k34zl0fonn10k9","agxget"); +} +} + + + + +//3 alc2i3vy4lm57qoc7qn69ppgr +// int agset(void *obj, char *name, char *value) +public static Object agset(Object... arg) { +UNSUPPORTED("dw46ysqbvbb1syq3h2su8khpt"); // int agset(void *obj, char *name, char *value) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("av59ae8c4mws46sf5dumz1k0s"); // Agsym_t *sym; +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("a5zpawq5lfz2h4k7xzaf5qtcl"); // sym = agattrsym(obj, name); +UNSUPPORTED("4htetkykqre1tnc0i1ksxdqmx"); // if (sym == ((Agsym_t*)0)) +UNSUPPORTED("71xur63dbv1df4fp5xw1bru2i"); // rv = -1; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("932tqrc73k3hieetx14jtfgk0"); // rv = agxset(obj, sym, value); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4q8xvstvl6fbijhucfd1endxc +// int agxset(void *obj, Agsym_t * sym, char *value) +public static int agxset(__ptr__ obj, Agsym_s sym, CString value) { +ENTERING("4q8xvstvl6fbijhucfd1endxc","agxset"); +try { + Agraph_s g; + Agobj_s hdr; + Agattr_s data; + Agsym_s lsym; + g = agraphof(obj); + hdr = (Agobj_s) obj.castTo(Agobj_s.class); + data = agattrrec(hdr); + + agstrfree(g, data.getArrayOfCString("str").plus(sym.getInt("id")).getCString()); + data.getArrayOfCString("str").plus(sym.getInt("id")).setCString(agstrdup(g, value)); + if (hdr.getStruct("tag").getInt("objtype") == AGRAPH) { + /* also update dict default */ + _dt_s dict; + dict = (_dt_s) agdatadict(g, false).getPtr("dict.g"); + if ((lsym = aglocaldictsym(dict, sym.getCString("name")))!=null) { + agstrfree(g, lsym.getCString("defval")); + lsym.setPtr("defval", agstrdup(g, value)); + } else { + lsym = agnewsym(g, sym.getCString("name"), value, sym.getInt("id"), AGTYPE(hdr)); + dict.call("searchf", dict, lsym, 0000001); + } + } + agmethod_upd(g, obj, sym); + return 0; +} finally { +LEAVING("4q8xvstvl6fbijhucfd1endxc","agxset"); +} +} + + + + +//3 9b7vn95cin8o7mb2f21exh1qr +// int agsafeset(void *obj, char *name, char *value, char *def) +public static int agsafeset(__ptr__ obj, CString name, CString value, CString def) { +ENTERING("9b7vn95cin8o7mb2f21exh1qr","agsafeset"); +try { + Agsym_s a; + a = agattr(agraphof(obj), AGTYPE(obj), name, null); + if (N(a)) + a = agattr(agraphof(obj), AGTYPE(obj), name, def); + return agxset(obj, a, value); +} finally { +LEAVING("9b7vn95cin8o7mb2f21exh1qr","agsafeset"); +} +} + + + + +//3 6gjlgo4s6r0bu7gjazfee6qv8 +// static void init_all_attrs(Agraph_t * g) +public static Object init_all_attrs(Object... arg) { +UNSUPPORTED("bir8xur87cl8inhyrgimkboqq"); // static void init_all_attrs(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2hs0004nnparj6tt7elslt4zj"); // Agraph_t *root; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("bnybowlbrgjx7x160vaxt6eok"); // root = agroot(g); +UNSUPPORTED("et7b6czk7vef12o9ct0zlil6b"); // agapply(root, (Agobj_t *) root, (agobjfn_t) agraphattr_init, +UNSUPPORTED("a1lzdxitcghqk0l63zsudijhj"); // ((Agdisc_t *)0), (!(0))); +UNSUPPORTED("8uyptmsbxy8cnb2yc5e1zjy93"); // for (n = agfstnode(root); n; n = agnxtnode(root, n)) { +UNSUPPORTED("149yfxxc7rsqn6goirepjpcf2"); // agnodeattr_init(g, n); +UNSUPPORTED("1qcg6rx46tkna823mgf1786us"); // for (e = agfstout(root, n); e; e = agnxtout(root, e)) { +UNSUPPORTED("555dsk5o3bvij5uz01q0cs74w"); // agedgeattr_init(g, e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2fmwbgdlz116bdnivfr2gbst7 +// int agcopyattr(void *oldobj, void *newobj) +public static Object agcopyattr(Object... arg) { +UNSUPPORTED("9hxxxad2s159e1mpaqdq32p1j"); // int agcopyattr(void *oldobj, void *newobj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("av59ae8c4mws46sf5dumz1k0s"); // Agsym_t *sym; +UNSUPPORTED("e0it3jbt5zhk1nsy4jog99dpu"); // Agsym_t *newsym; +UNSUPPORTED("6bpbm2s85uk2e5o6cm49boc4w"); // char* val; +UNSUPPORTED("85pgv5dfzc1lewmaoiherq9nf"); // char* nval; +UNSUPPORTED("4lyqrf8bj8y0fbafzxuae0xqa"); // int r = 1; +UNSUPPORTED("enr7x1oa4c50ne66ts6hvz0dx"); // g = agraphof(oldobj); +UNSUPPORTED("6qj4ytcakj7t70xil9hxyy5c9"); // if (AGTYPE(oldobj) != AGTYPE(newobj)) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("5btwvtgpjz0hx5y9ouikwsrc4"); // sym = 0; +UNSUPPORTED("886wv340pnju68k6aejj7o3x0"); // while ((sym = agnxtattr(g, AGTYPE(oldobj), sym))) { +UNSUPPORTED("cino0o0155s1h3gsr2l2uz7z"); // newsym = agattrsym(newobj, sym->name); +UNSUPPORTED("daq5urcl5ihipluxk5sf4ccdx"); // if (!newsym) +UNSUPPORTED("btmwubugs9vkexo4yb7a5nqel"); // return 1; +UNSUPPORTED("aao8dsiq1evom55a3f4w4rha3"); // val = agxget(oldobj, sym); +UNSUPPORTED("a078bakz1z0utl11856f4vk7w"); // r = agxset(newobj, newsym, val); +UNSUPPORTED("cpxrqzz637g381bs344b2sj0u"); // /* FIX(?): Each graph has its own string cache, so a whole new refstr is possibly +UNSUPPORTED("d41ayxc51x2hyvj9eo15qmgun"); // * allocated. If the original was an html string, make sure the new one is as well. +UNSUPPORTED("3kp67yo7cfslm3l0o4e5cdnd8"); // * If cgraph goes to single string table, this can be removed. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("ez0g3o1tj7ommhxsolcr2gsr"); // if (aghtmlstr (val)) { +UNSUPPORTED("do57srwwkvwu30y5dd2pr6tkp"); // nval = agxget (newobj, newsym); +UNSUPPORTED("9nzu0ckgyrqklwagcbye9wtx9"); // agmarkhtmlstr (nval); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/cmpnd__c.java plantuml-8039/src/gen/lib/cgraph/cmpnd__c.java --- plantuml-8024/src/gen/lib/cgraph/cmpnd__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/cmpnd__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,600 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.Macro.UNSUPPORTED; + +public class cmpnd__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + +//1 6sk0fkh49yyiz78kjyeyji8kc +// static char Descriptor_id[] = + + + + +//3 4rwqki94tjjugk2oy6kmp9538 +// static save_stack_t *save_stack_of(Agedge_t * e, Agnode_t * node_being_saved) +public static Object save_stack_of(Object... arg) { +UNSUPPORTED("dwtd4ghruns6yb5wivsktmicy"); // static save_stack_t *save_stack_of(Agedge_t * e, +UNSUPPORTED("8r63y462x0ogz32e14ocmtc7z"); // Agnode_t * node_being_saved) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("6ghvyg27wq05jvjsvouudi50c"); // Agcmpedge_t *edgerec; +UNSUPPORTED("b1mh0xog6n5vpukibyv7u250j"); // edgerec = +UNSUPPORTED("4adx48ujfm4pgwe84r22aveam"); // (Agcmpedge_t *) agbindrec(e, Descriptor_id, sizeof(*edgerec), +UNSUPPORTED("68qk8aanfr03birvp6in33tmn"); // (0)); +UNSUPPORTED("4wdjl8d0e9alxikx2venvybyt"); // if (node_being_saved == AGHEAD(e)) +UNSUPPORTED("5or0zebpgtvozlmal8j2q1ymh"); // i = 0; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("ab64ie0vu9mgaoae2os5qcjjc"); // i = 1; +UNSUPPORTED("aa7o5hl19ogzcf6gfenmnp78g"); // return &(edgerec->stack[i]); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bsses08e1nxxzo7v1nz6e5md6 +// static void stackpush(save_stack_t * stk, Agnode_t * from, Agnode_t * to) +public static Object stackpush(Object... arg) { +UNSUPPORTED("lk08htngq4befknew1gfxoa9"); // static void stackpush(save_stack_t * stk, Agnode_t * from, Agnode_t * to) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("vdr4szogxxo3ysb964je8fqr"); // int i, osize, nsize; +UNSUPPORTED("w0ejuypc1xk0nguosbcbgjs7"); // osize = (stk->stacksize) * sizeof(stk->mem); +UNSUPPORTED("69vqrnfe69qiqljcpvbqzjhrt"); // i = stk->stacksize++; +UNSUPPORTED("bp2iadkg384j7lqq7aojwgfdb"); // nsize = (stk->stacksize) * sizeof(stk->mem); +UNSUPPORTED("8hkinct5qb2wnkfquvrbe5w5n"); // stk->mem = agrealloc(agraphof(from), stk->mem, osize, nsize); +UNSUPPORTED("ede5rkve4x0iqpkclios2jmi6"); // stk->mem[i].from = from; +UNSUPPORTED("1273u57z8yxvq24utrwrv8xau"); // stk->mem[i].to = to; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3bdssdhs8qmao1r28n4x05wla +// static save_e_t stacktop(save_stack_t * stk) +public static Object stacktop(Object... arg) { +UNSUPPORTED("3oi8j1tra0jhtoedy30z1dceg"); // static save_e_t stacktop(save_stack_t * stk) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ceexozbsr12777awy1hzvd6ye"); // save_e_t rv; +UNSUPPORTED("4i89irm9nu2qq9e5my0oyqw92"); // if (stk->stacksize > 0) +UNSUPPORTED("muntii5uysvchbl8serzwm6q"); // rv = stk->mem[stk->stacksize - 1]; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("7iqu564wmk0151evpn81bi4al"); // rv.from = rv.to = ((Agnode_t*)0); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 egn9apfhc7c3wd684jp5des9n +// static save_e_t stackpop(save_stack_t * stk) +public static Object stackpop(Object... arg) { +UNSUPPORTED("6bswtdhkkqef505cf56ngupax"); // static save_e_t stackpop(save_stack_t * stk) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ceexozbsr12777awy1hzvd6ye"); // save_e_t rv; +UNSUPPORTED("dq2r0ep189x1fmzlkrupwz7su"); // rv = stacktop(stk); +UNSUPPORTED("4i89irm9nu2qq9e5my0oyqw92"); // if (stk->stacksize > 0) +UNSUPPORTED("a754migqjxf0orir9je0hpzru"); // stk->stacksize--; +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 19fmhewiyatxc021gdknul20f +// static void splice(Agobj_t * obj, void *arg) +public static Object splice(Object... arg) { +UNSUPPORTED("7wcsyoha9usni3nl1ai3tc3o7"); // static void splice(Agobj_t * obj, void *arg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("ukg32u37iiyg1hjpo3dju9dq"); // Agedge_t *e, *opp; +UNSUPPORTED("dlkppm92zbj77gjcpefjxfgd8"); // Agnode_t *target, *t, *h; +UNSUPPORTED("eub815wyz9gy5rrouxzf2o1g1"); // Agedge_t **dict_of_del, **dict_of_ins, **dict_of_relabel; +UNSUPPORTED("4dutqsf49i6w169yrt0ikwdso"); // Agsplice_arg_t *spl; +UNSUPPORTED("8g1zmagr94kv2f6q5qxprrtqf"); // e = (Agedge_t *) obj; +UNSUPPORTED("dmucqaij4o1u2fxfg43y5j4ow"); // g = agraphof(e); +UNSUPPORTED("5webprz21nzifr3m5zwnqxx6m"); // t = AGTAIL(e); +UNSUPPORTED("ax8363bkxphvbre4n21ewb568"); // h = AGHEAD(e); +UNSUPPORTED("884w4fs279f033u4kxa8xious"); // opp = AGOPP(e); +UNSUPPORTED("bpxhfa46ntshzd0vqkqeoby5s"); // spl = arg; +UNSUPPORTED("6m7avwuqg2ht4f1aihu7uemex"); // target = spl->target; +UNSUPPORTED("2hpfw7zzxdd4qgijc1r9yjv1j"); // /* set e to variant side, opp to invariant */ +UNSUPPORTED("5kqugw221oxim0s4luf2bbx60"); // if ((e->node == h) != spl->head_side) { +UNSUPPORTED("8ulbtgatav4cex07ca2vunsq7"); // Agedge_t *t = e; +UNSUPPORTED("5z8q89g66clummdq5apxn1lhf"); // e = opp; +UNSUPPORTED("aj4xhgtcpcpsmtrs5shi25qly"); // opp = t; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dck6ar35hgorgugfjnx6bdi4h"); // if (spl->head_side) { +UNSUPPORTED("7n0bzvgpc2xrp8zucytk2ub8z"); // dict_of_relabel = &(t->out); +UNSUPPORTED("exrixiraze7t936j9gozi1i6"); // dict_of_del = &(h->in); +UNSUPPORTED("cs1b4s5rzgvma08gnlw4kyi8a"); // dict_of_ins = &(target->in); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("9e37n1vt84uzrvxns8gkkpjrk"); // dict_of_relabel = &(h->in); +UNSUPPORTED("dni9pi1ymdj2dx3kpudxdvex7"); // dict_of_del = &(t->out); +UNSUPPORTED("3gw0vo5ns6u7r6c78h5i3fz8k"); // dict_of_ins = &(target->out); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("37tcvzpvyyi059h8kb294u1pw"); // agdeledgeimage(g, dict_of_del, opp); +UNSUPPORTED("sbztl4163kwplex2051tj6kv"); // agdeledgeimage(g, dict_of_relabel, e); +UNSUPPORTED("du0ylmc796qj4u7fpfcs9h29b"); // e->node = target; +UNSUPPORTED("9frvpqh10msxmvvwlkkmplmnb"); // aginsedgeimage(g, dict_of_ins, opp); +UNSUPPORTED("dqp4p3m2uqtll7k5qy0xfc5sn"); // aginsedgeimage(g, dict_of_relabel, e); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5j5g1wthbifddy3p9spuns8yr +// int agsplice(Agedge_t * e, Agnode_t * target) +public static Object agsplice(Object... arg) { +UNSUPPORTED("axfzz9idalyza2vcuc3lxpm6"); // int agsplice(Agedge_t * e, Agnode_t * target) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4ybt6tm56tubmbuve8lp6rxhh"); // Agnode_t *t, *h; +UNSUPPORTED("bdxq0k3myan9ze5fn881cmpd1"); // Agraph_t *g, *root; +UNSUPPORTED("bil8jirl3ujy07bddvn7fu2tj"); // Agsplice_arg_t splice_arg; +UNSUPPORTED("7tj8suoel784v4amwdbw5vgo0"); // if ((e == ((Agedge_t*)0)) || (e->node == target)) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dmucqaij4o1u2fxfg43y5j4ow"); // g = agraphof(e); +UNSUPPORTED("5webprz21nzifr3m5zwnqxx6m"); // t = AGTAIL(e); +UNSUPPORTED("ax8363bkxphvbre4n21ewb568"); // h = AGHEAD(e); +UNSUPPORTED("dki2ntsgjodo47i5gijolwk9l"); // splice_arg.head_side = (e->node == h); +UNSUPPORTED("5c8hd46y7z4m71nncma6imi91"); // splice_arg.target = target; +UNSUPPORTED("bnybowlbrgjx7x160vaxt6eok"); // root = agroot(g); +UNSUPPORTED("dezciasi2v303hk1sw0x8sdgu"); // agapply(root, (Agobj_t *) e, splice, &splice_arg, (!(0))); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1tlq3bzvd3l8vgfzqblufnrbl +// Agnode_t *agcmpnode(Agraph_t * g, char *name) +public static Object agcmpnode(Object... arg) { +UNSUPPORTED("512bqm8afn34qet92ucsr48py"); // Agnode_t *agcmpnode(Agraph_t * g, char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("65blkwcubnuk73fdazfmejbit"); // n = agnode(g, name, (!(0))); +UNSUPPORTED("9tklhmm0c204xvppkor6fa27j"); // subg = agsubg(g, name); +UNSUPPORTED("3f30xv09zuxursa8mirbicrop"); // if (n && g && agassociate(n, subg)) +UNSUPPORTED("bp96fem54xcxrw16cmnlpell9"); // return n; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("afujljwagn2n2w7aqkq94dyud"); // return ((Agnode_t*)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 55kt0ymvf8xwytjl27ldl9w47 +// int agassociate(Agnode_t * n, Agraph_t * sub) +public static Object agassociate(Object... arg) { +UNSUPPORTED("4sypdgvq8ag9maceg6t7ybgh2"); // int agassociate(Agnode_t * n, Agraph_t * sub) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7f909qn3eh0n5jhwbdss7xsl7"); // Agcmpnode_t *noderec; +UNSUPPORTED("7jdwhjw5hagvavcg0s7mzyvtw"); // Agcmpgraph_t *graphrec; +UNSUPPORTED("a2s3hoak57qxwo7p26uwtl6tw"); // if (agsubnode(sub, n, (0))) +UNSUPPORTED("5ul223252n4s0i9q8gmv7sqkr"); // return -1; /* avoid cycles */ +UNSUPPORTED("2n0hbg501gaoso2zqjoe2w7m1"); // noderec = agbindrec(n, Descriptor_id, sizeof(*noderec), (0)); +UNSUPPORTED("28wqx7jtqdh2nga91wmk9v4pp"); // graphrec = agbindrec(sub, Descriptor_id, sizeof(*graphrec), (0)); +UNSUPPORTED("yhgoyzhuwjezwcawsm4ky6zq"); // if (noderec->subg || graphrec->node) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("5m09ilomtgcifokk2saj5p7n6"); // noderec->subg = sub; +UNSUPPORTED("284nqmn0r6jg3l13sp1j66tdn"); // graphrec->node = n; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b07pin7xj9eofda53ydvki64l +// static void delete_outside_subg(Agraph_t * g, Agnode_t * node, Agraph_t * subg) +public static Object delete_outside_subg(Object... arg) { +UNSUPPORTED("kry3yfo20dytuxfnf38kcsam"); // static void delete_outside_subg(Agraph_t * g, Agnode_t * node, +UNSUPPORTED("5y3h6zj5vt2f7wcth5pip26cj"); // Agraph_t * subg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6g19oav62phxzmj2to9fq3v1x"); // Agraph_t *s, **subglist; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("7jdwhjw5hagvavcg0s7mzyvtw"); // Agcmpgraph_t *graphrec; +UNSUPPORTED("l4y6zpshfefue2m18wlswfkp"); // Dict_t *d; +UNSUPPORTED("7e89xw954lv4akbipty68ohbe"); // if ((g != subg) && (n = agsubnode(g, (Agnode_t *) node, (0)))) { +UNSUPPORTED("1rogfljh6p2ad5nst1eypwpyi"); // (*(((Dt_t*)(g->n_dict))->searchf))((g->n_dict),(void*)(n),0000002); +UNSUPPORTED("abe30iy9w3d0dl2w6a5lsop8v"); // graphrec = agbindrec(g, Descriptor_id, sizeof(*graphrec), (0)); +UNSUPPORTED("f2oroo8l1jg4844ju7u0qqrvl"); // if ((d = graphrec->hidden_node_set) == ((Dict_t *)0)) { +UNSUPPORTED("exx0k792od5v3lta50a7cc7ex"); // /* use name disc. to permit search for hidden node by name */ +UNSUPPORTED("evqbx12s6gejd2x4ot3qp9mom"); // d = graphrec->hidden_node_set +UNSUPPORTED("6sphuxp1saeruucoielhncdwi"); // = agdtopen(g, &Ag_node_name_disc, Dttree); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dc351e9qkjba5ljcn70ir8wok"); // (*(((Dt_t*)(d))->searchf))((d),(void*)(n),0000001); +UNSUPPORTED("b6earq4vdf6hkqbiof5ld8o0f"); // subglist = agsubglist(g); +UNSUPPORTED("1z7syfzy448v3csnwess0czr6"); // while ((s = *subglist++)) +UNSUPPORTED("nec2jxb9w7x6umx24yslrcmt"); // delete_outside_subg(s, node, subg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ayp78uwr34sz0qhg1h8t95kwv +// int aghide(Agnode_t * cmpnode) +public static Object aghide(Object... arg) { +UNSUPPORTED("1g3pfblqoo1dgglsxstj9742s"); // int aghide(Agnode_t * cmpnode) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7f909qn3eh0n5jhwbdss7xsl7"); // Agcmpnode_t *noderec; +UNSUPPORTED("b60qtrkk2j4xw71fl5cofd2cf"); // Agraph_t *g, *subg, *root; +UNSUPPORTED("emedv9iv9jzdkfi9un2n7u1qd"); // Agnode_t *n, *nn, *rootn; +UNSUPPORTED("52m1c5blj9go84x3gvfinhsxk"); // Agedge_t *e, *opp, *f; +UNSUPPORTED("ckh341j07p4zctbd8z88pmxjs"); // g = agraphof(cmpnode); +UNSUPPORTED("6gex4hni6g4u0xtyjv48g3qo"); // /* skip operation if node is not compound, or hidden */ +UNSUPPORTED("ase6k94o0exmeya2beg8xxyrd"); // if (agcmpgraph_of(cmpnode) == ((Agraph_t*)0)) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("1ngod2ph1meu972df8l6bc2b"); // noderec = (Agcmpnode_t *) aggetrec(cmpnode, Descriptor_id, (0)); +UNSUPPORTED("4j153btiyrft10pvhp9s4o13l"); // subg = noderec->subg; +UNSUPPORTED("bnybowlbrgjx7x160vaxt6eok"); // root = agroot(g); +UNSUPPORTED("f2t4kmp1tlgz90kx88edbc1s8"); // /* make sure caller hasn't put a node "inside itself" */ +UNSUPPORTED("d02v8hdosfh8948mx4a51khy4"); // if ((n = agsubnode(subg, cmpnode, (0)))) +UNSUPPORTED("1kkhrgl1v3ojgulkhv2iho34m"); // agdelnode(n); +UNSUPPORTED("aj0mf64ekwjmvyu6kqgvi66vl"); // /* remap edges by splicing and saving previous endpt */ +UNSUPPORTED("58gpvx001o2jm2wb0zi9ykxhx"); // for (n = agfstnode(subg); n; n = agnxtnode(n)) { +UNSUPPORTED("bdm41ygxu6ed5nfinjtmybqji"); // rootn = agsubnode(root, n, (0)); +UNSUPPORTED("4q5u96f55k4ohv094om4hfom3"); // for (e = agfstedge(rootn); e; e = f) { +UNSUPPORTED("c3p50uvstq31yp3nng2ig715m"); // f = agnxtedge(e, rootn); +UNSUPPORTED("bkc2enueo6t9l7kv1jolsetmh"); // if (agsubedge(subg, e, (0))) +UNSUPPORTED("2hw2snx42pro7p7hsy05vln4r"); // continue; /* an internal edge */ +UNSUPPORTED("adb1bm65bqje5izc3vk2789io"); // opp = AGOPP(e); +UNSUPPORTED("32kek6wlljhat9b0vfgu2j7vi"); // stackpush(save_stack_of(e, rootn), rootn, cmpnode); +UNSUPPORTED("2qzlo72387x84q858f0813gkb"); // agsplice(opp, cmpnode); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f415ngsv513d31vpdchhs95kb"); // /* hide nodes by deleting from the parent set. what if they also +UNSUPPORTED("obzrdh816obcnhiv63ncejfj"); // belong to a sibling subg? weird. possible bug. */ +UNSUPPORTED("4bd0uibjrx5ci9pbm9aoki6f5"); // for (n = agfstnode(subg); n; n = nn) { +UNSUPPORTED("4l4330kwixp6e6vgyiy54ys17"); // nn = agnxtnode(n); +UNSUPPORTED("kb51l7sewmn750p94rd43kg6"); // delete_outside_subg(root, n, subg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("394ntxheuereknfzn3ztogs6r"); // /* hide subgraph is easy */ +UNSUPPORTED("257s639mo6gp7eaozszsh1o7w"); // agdelsubg(agparent(subg), subg); +UNSUPPORTED("6abloarv1gy1qzd7xxpla0dyf"); // noderec->collapsed = (!(0)); +UNSUPPORTED("4kztab9wrg1e4rhrix10drw0d"); // g->desc.has_cmpnd = (!(0)); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1gb6h0a1ld4kfxblxauozwl1n +// static void insert_outside_subg(Agraph_t * g, Agnode_t * node, Agraph_t * subg) +public static Object insert_outside_subg(Object... arg) { +UNSUPPORTED("76ij8hacl890v9sivg40zvbig"); // static void insert_outside_subg(Agraph_t * g, Agnode_t * node, +UNSUPPORTED("5y3h6zj5vt2f7wcth5pip26cj"); // Agraph_t * subg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6g19oav62phxzmj2to9fq3v1x"); // Agraph_t *s, **subglist; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("7jdwhjw5hagvavcg0s7mzyvtw"); // Agcmpgraph_t *graphrec; +UNSUPPORTED("ckdhxacpy31hkxoiusj63w0s0"); // if ((g != subg) +UNSUPPORTED("8swye54gpwwju751wheaso218"); // && ((n = agsubnode(g, (Agnode_t *) node, (0))) == ((Agnode_t*)0))) { +UNSUPPORTED("dmahb56s8q8b4hcc3f5pvwham"); // graphrec = (Agcmpgraph_t *) aggetrec(g, Descriptor_id, (0)); +UNSUPPORTED("lxl9n15bjuho7s84h5mnrfjh"); // if (graphrec +UNSUPPORTED("2rld3bcrvvoa3aqorq9on3kof"); // && +UNSUPPORTED("336e61s13ex1sqjdcjpvk13qs"); // ((n = (Agnode_t *) (*(((Dt_t*)(graphrec->hidden_node_set))->searchf))((graphrec->hidden_node_set),(void*)(node),0000004)))) +UNSUPPORTED("2ermrtom5lyizwkjyyw8ubiij"); // (*(((Dt_t*)(g->n_dict))->searchf))((g->n_dict),(void*)(n),0000001); +UNSUPPORTED("b6earq4vdf6hkqbiof5ld8o0f"); // subglist = agsubglist(g); +UNSUPPORTED("1z7syfzy448v3csnwess0czr6"); // while ((s = *subglist++)) +UNSUPPORTED("nec2jxb9w7x6umx24yslrcmt"); // delete_outside_subg(s, node, subg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6lc402jyd31q9vuhqstq3cipf +// int agexpose(Agnode_t * cmpnode) +public static Object agexpose(Object... arg) { +UNSUPPORTED("9apmbol4kwi7nzggmvu74lu8"); // int agexpose(Agnode_t * cmpnode) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7f909qn3eh0n5jhwbdss7xsl7"); // Agcmpnode_t *noderec; +UNSUPPORTED("6ghvyg27wq05jvjsvouudi50c"); // Agcmpedge_t *edgerec; +UNSUPPORTED("b60qtrkk2j4xw71fl5cofd2cf"); // Agraph_t *g, *subg, *root; +UNSUPPORTED("don2z7bcidp3vh6u93uqylp6n"); // Agnode_t *n, *rootcmp; +UNSUPPORTED("109gqpvjmuv5lwcih97x4uwqa"); // Agedge_t *e, *f; +UNSUPPORTED("ac4ommdery6vqxemsczpw45pd"); // save_stack_t *stk; +UNSUPPORTED("8lv2gwgeyznnvkn2sc4qtmsgg"); // save_e_t sav; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("ckh341j07p4zctbd8z88pmxjs"); // g = agraphof(cmpnode); +UNSUPPORTED("cn5g532viw6fnn9qwqgjrg8ut"); // /* skip if this is not a collapsed subgraph */ +UNSUPPORTED("1ngod2ph1meu972df8l6bc2b"); // noderec = (Agcmpnode_t *) aggetrec(cmpnode, Descriptor_id, (0)); +UNSUPPORTED("bqsicd41l9yomlip35oj8xesq"); // if ((noderec == ((Agcmpnode_t *)0) || NOT(noderec->collapsed))) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("euy8jfjxkm1u0yrzwson87j19"); // /* undo aghide (above) in reverse order. first, expose subgraph */ +UNSUPPORTED("4j153btiyrft10pvhp9s4o13l"); // subg = noderec->subg; +UNSUPPORTED("1sf8vp9dtnivh92y8rh0t1z25"); // agsubgrec_insert(agsubgrec(agparent(subg)), subg); +UNSUPPORTED("98brku3wzqlj4ollbjtvk6fa5"); // /* re-insert nodes */ +UNSUPPORTED("7nd099zwv098gk9rg5mpujtqi"); // for (n = agfstnode(subg); n; n = agnxtnode(n)) +UNSUPPORTED("40fhgczx2v7xf4fj52ixa2ae1"); // insert_outside_subg(g, n, subg); +UNSUPPORTED("q9tdqkpe3ypf3sokv2e9iunf"); // /* re-splice the affected edges */ +UNSUPPORTED("bnybowlbrgjx7x160vaxt6eok"); // root = agroot(g); +UNSUPPORTED("lbob6dh3k9ofz0eq54n0bfrf"); // rootcmp = agsubnode(root, cmpnode, (0)); +UNSUPPORTED("6q870w22sh62rr3c3z713a08c"); // for (e = agfstedge(rootcmp); e; e = f) { +UNSUPPORTED("4rk367peiayey75qn4p83rld9"); // f = agnxtedge(e, rootcmp); +UNSUPPORTED("azqu6v7o6ogppzcpc7r4j32te"); // if ((edgerec = (Agcmpedge_t *) aggetrec(e, Descriptor_id, (0)))) { +UNSUPPORTED("7q2kavn0hyciyjodmijsm5t72"); // /* anything interesting on either stack? */ +UNSUPPORTED("49iuc4atzdynskzobe6v2v6by"); // for (i = 0; i < 2; i++) { +UNSUPPORTED("cst8yfaj50yiqi2c79ylx8ipu"); // stk = &(edgerec->stack[i]); +UNSUPPORTED("2jssfbw5q1ezanoj77xitfozx"); // sav = stacktop(stk); +UNSUPPORTED("8ws9njxg0op6x2fecfio25com"); // if (sav.to && (AGID(sav.to) == AGID(cmpnode))) { +UNSUPPORTED("ck3uwtfxhqv714xrb3sros513"); // if (e->node != sav.to) +UNSUPPORTED("50lxrd15vtq2bqijmn3bb0s3d"); // e = AGOPP(e); +UNSUPPORTED("4xrkvbkbiluczhf7ohqwe2f7j"); // agsplice(e, sav.from); +UNSUPPORTED("a2z237r7jaraa3h9fcoipnsoq"); // stackpop(stk); +UNSUPPORTED("2yi9az7ibt7j9bwztjilyo0v2"); // continue; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6lipw6f0pqk6r03nvkb5cjdbq"); // noderec->collapsed = (0); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aduq2oedmk7tixfq937xsx8uk +// Agraph_t *agcmpgraph_of(Agnode_t * n) +public static Object agcmpgraph_of(Object... arg) { +UNSUPPORTED("96w163plg7m5fs459ya5s4eyr"); // Agraph_t *agcmpgraph_of(Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7f909qn3eh0n5jhwbdss7xsl7"); // Agcmpnode_t *noderec; +UNSUPPORTED("bsxlpjgnoko6pxkt2w15vzjoc"); // noderec = (Agcmpnode_t *) aggetrec(n, Descriptor_id, (0)); +UNSUPPORTED("6xdbpq5pdwgfgmaekbtp5fvq2"); // if (noderec && NOT(noderec->collapsed)) +UNSUPPORTED("euroyfixydmzdwgwiv0f2pihb"); // return noderec->subg; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("3jgcplzgc47d97c1hv6u71tpg"); // return ((Agraph_t*)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5hzjwc4e1cfmit7v903028piu +// Agnode_t *agcmpnode_of(Agraph_t * g) +public static Object agcmpnode_of(Object... arg) { +UNSUPPORTED("exxk55w9iak7ur9634a45037a"); // Agnode_t *agcmpnode_of(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7jdwhjw5hagvavcg0s7mzyvtw"); // Agcmpgraph_t *graphrec; +UNSUPPORTED("9vifxckhgfio5f5ba0xie8roh"); // graphrec = (Agcmpgraph_t *) aggetrec(g, Descriptor_id, (0)); +UNSUPPORTED("aixy4qcuhk04x6qoq3y286w8k"); // if (graphrec) +UNSUPPORTED("b6qkfex5h0152pzytdftlh9sb"); // return graphrec->node; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("afujljwagn2n2w7aqkq94dyud"); // return ((Agnode_t*)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2yirbmqshfrzkjrbay3m6j4ep +// Agnode_t *agfindhidden(Agraph_t * g, char *name) +public static Object agfindhidden(Object... arg) { +UNSUPPORTED("8cv8z2j9nan9aew6qpjmibk2t"); // Agnode_t *agfindhidden(Agraph_t * g, char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7jdwhjw5hagvavcg0s7mzyvtw"); // Agcmpgraph_t *graphrec; +UNSUPPORTED("6ccnq25sjyc3hlxdu7hxx8lic"); // Agnode_t key; +UNSUPPORTED("9vifxckhgfio5f5ba0xie8roh"); // graphrec = (Agcmpgraph_t *) aggetrec(g, Descriptor_id, (0)); +UNSUPPORTED("anxj4l9dauyidns1gvnaacw6t"); // if (graphrec) { +UNSUPPORTED("81vu48ydx08zss09rzp8ctgir"); // key.name = name; +UNSUPPORTED("2hneo0tj9jekolndce4nhpax2"); // return (Agnode_t *) (*(((Dt_t*)(graphrec->hidden_node_set))->searchf))((graphrec->hidden_node_set),(void*)(&key),0000004); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("afujljwagn2n2w7aqkq94dyud"); // return ((Agnode_t*)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/edge__c.java plantuml-8039/src/gen/lib/cgraph/edge__c.java --- plantuml-8024/src/gen/lib/cgraph/edge__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/edge__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,933 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static gen.lib.cdt.dtextract__c.dtextract; +import static gen.lib.cdt.dtrestore__c.dtrestore; +import static gen.lib.cgraph.attr__c.AgDataRecName; +import static gen.lib.cgraph.attr__c.agedgeattr_init; +import static gen.lib.cgraph.graph__c.agisstrict; +import static gen.lib.cgraph.graph__c.agisundirected; +import static gen.lib.cgraph.graph__c.agnextseq; +import static gen.lib.cgraph.id__c.agmapnametoid; +import static gen.lib.cgraph.id__c.agregister; +import static gen.lib.cgraph.mem__c.agalloc; +import static gen.lib.cgraph.node__c.agsubnode; +import static gen.lib.cgraph.obj__c.agmethod_init; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.cgraph.rec__c.agbindrec; +import static gen.lib.cgraph.subg__c.agparent; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGEDGE; +import static smetana.core.Macro.AGHEAD; +import static smetana.core.Macro.AGID; +import static smetana.core.Macro.AGINEDGE; +import static smetana.core.Macro.AGMKIN; +import static smetana.core.Macro.AGMKOUT; +import static smetana.core.Macro.AGOPP; +import static smetana.core.Macro.AGOUTEDGE; +import static smetana.core.Macro.AGSEQ; +import static smetana.core.Macro.AGTAG; +import static smetana.core.Macro.AGTAIL; +import static smetana.core.Macro.AGTYPE; +import static smetana.core.Macro.N; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agattr_s; +import h.Agedge_s; +import h.Agedgepair_s; +import h.Agnode_s; +import h.Agraph_s; +import h.Agsubnode_s; +import h.Agtag_s; +import h._dt_s; +import h._dtdisc_s; +import h._dtlink_s; +import smetana.core.ACCESS; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.STARSTAR; +import smetana.core.Z; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class edge__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + +//1 cee3kc2m61ml4f8le5ueoyrjb +// static Agtag_t Tag +//private final static __struct__ Tag = __struct__.from(Agtag_s.class); + + + +//3 9vamtktowqtk4955i546z9obw +// Agedge_t *agfstout(Agraph_t * g, Agnode_t * n) +public static Agedge_s agfstout(Agraph_s g, Agnode_s n) { +ENTERING("9vamtktowqtk4955i546z9obw","agfstout"); +try { + Agsubnode_s sn; + Agedge_s e = null; + sn = agsubrep(g, n); + if (sn!=null) { + dtrestore((_dt_s)g.getPtr("e_seq"), (_dtlink_s)sn.getPtr("out_seq")); + e = (Agedge_s) g.getPtr("e_seq").castTo(_dt_s.class).call("searchf", g.getPtr("e_seq"),null,0000200); + sn.setPtr("out_seq", dtextract((_dt_s)g.getPtr("e_seq"))); + } + return e; +} finally { +LEAVING("9vamtktowqtk4955i546z9obw","agfstout"); +} +} + + + + +//3 1qh7mgqwomkdqvczauv4ex1lu +// Agedge_t *agnxtout(Agraph_t * g, Agedge_t * e) +public static Agedge_s agnxtout(Agraph_s g, Agedge_s e) { +ENTERING("1qh7mgqwomkdqvczauv4ex1lu","agnxtout"); +try { + Agnode_s n; + Agsubnode_s sn; + Agedge_s f = null; + n = AGTAIL(e); + sn = agsubrep(g, n); + if (sn!=null) { + dtrestore((_dt_s)g.getPtr("e_seq"), (_dtlink_s)sn.getPtr("out_seq")); + f = (Agedge_s) g.getPtr("e_seq").castTo(_dt_s.class).call("searchf", g.getPtr("e_seq"),e,0000010); + sn.setPtr("out_seq", dtextract((_dt_s)g.getPtr("e_seq"))); + } + return f; +} finally { +LEAVING("1qh7mgqwomkdqvczauv4ex1lu","agnxtout"); +} +} + + + + +//3 c60qt3ycq0xweabgtqt16xe93 +// Agedge_t *agfstin(Agraph_t * g, Agnode_t * n) +public static Agedge_s agfstin(Agraph_s g, Agnode_s n) { +ENTERING("c60qt3ycq0xweabgtqt16xe93","agfstin"); +try { + Agsubnode_s sn; + Agedge_s e = null; + sn = agsubrep(g, n); + if (sn!=null) { + dtrestore((_dt_s)g.getPtr("e_seq"), (_dtlink_s)sn.getPtr("in_seq")); + e = (Agedge_s) g.getPtr("e_seq").castTo(_dt_s.class).call("searchf", g.getPtr("e_seq"),null,0000200); + sn.setPtr("in_seq", dtextract((_dt_s)g.getPtr("e_seq"))); + } + return e; +} finally { +LEAVING("c60qt3ycq0xweabgtqt16xe93","agfstin"); +} +} + + + + +//3 f2af4x97mqn16npd6alsw7avs +// Agedge_t *agnxtin(Agraph_t * g, Agedge_t * e) +public static Agedge_s agnxtin(Agraph_s g, Agedge_s e) { +ENTERING("f2af4x97mqn16npd6alsw7avs","agnxtin"); +try { + Agnode_s n; + Agsubnode_s sn; + Agedge_s f = null; + n = AGHEAD(e); + sn = agsubrep(g, n); + if (sn!=null) { + dtrestore((_dt_s)g.getPtr("e_seq"), (_dtlink_s)sn.getPtr("in_seq")); + f = (Agedge_s) g.getPtr("e_seq").castTo(_dt_s.class).call("searchf", g.getPtr("e_seq"),e,0000010); + sn.setPtr("in_seq", dtextract((_dt_s)g.getPtr("e_seq"))); + } + return f; +} finally { +LEAVING("f2af4x97mqn16npd6alsw7avs","agnxtin"); +} +} + + + + +//3 6nwyo5bklramr0d093aa1h25o +// Agedge_t *agfstedge(Agraph_t * g, Agnode_t * n) +public static Agedge_s agfstedge(Agraph_s g, Agnode_s n) { +ENTERING("6nwyo5bklramr0d093aa1h25o","agfstedge"); +try { + Agedge_s rv; + rv = agfstout(g, n); + if (rv == null) + rv = agfstin(g, n); + return rv; +} finally { +LEAVING("6nwyo5bklramr0d093aa1h25o","agfstedge"); +} +} + + + + +//3 8zy2u6gsi2xzv2ffv8o4v4uvf +// Agedge_t *agnxtedge(Agraph_t * g, Agedge_t * e, Agnode_t * n) +public static Agedge_s agnxtedge(Agraph_s g, Agedge_s e, Agnode_s n) { +ENTERING("8zy2u6gsi2xzv2ffv8o4v4uvf","agnxtedge"); +try { + Agedge_s rv; + if (AGTYPE(e) == AGOUTEDGE) { + rv = agnxtout(g, e); + if (rv == null) { + do { + rv = N(rv) ? agfstin(g, n) : agnxtin(g,rv); + } while (rv!=null && EQ(rv.getPtr("node"), n)); + } + } else { + do { + rv = agnxtin(g, e); /* so that we only see each edge once, */ + e = rv; + } while (rv!=null && EQ(rv.getPtr("node"), n)); /* ignore loops as in-edges */ + } + return rv; +} finally { +LEAVING("8zy2u6gsi2xzv2ffv8o4v4uvf","agnxtedge"); +} +} + + + + +//3 c175o6j61jqmfnl4o1g1h1mie +// static Agedge_t *agfindedge_by_key(Agraph_t * g, Agnode_t * t, Agnode_t * h, Agtag_t key) +public static Agedge_s agfindedge_by_key(Agraph_s g, Agnode_s t, Agnode_s h, final __struct__ key) { +// WARNING!! STRUCT +return agfindedge_by_key_w_(g, t, h, key.copy()); +} +private static Agedge_s agfindedge_by_key_w_(Agraph_s g, Agnode_s t, Agnode_s h, final __struct__ key) { +ENTERING("c175o6j61jqmfnl4o1g1h1mie","agfindedge_by_key"); +try { + Agedge_s e, template = (Agedge_s) Memory.malloc(Agedge_s.class); + Agsubnode_s sn; + if ((t == null) || (h == null)) + return null; + template.getStruct("base").setStruct("tag", key); + template.setPtr("node", t); /* guess that fan-in < fan-out */ + sn = agsubrep(g, h); + if (N(sn)) e = null; + else { + dtrestore((_dt_s)g.getPtr("e_id"), (_dtlink_s)sn.getPtr("in_id")); + e = (Agedge_s) ((__ptr__)g.getPtr("e_id").castTo(_dt_s.class).call("searchf", g.getPtr("e_id"),template,0000004)); + if (e!=null) e = (Agedge_s) e.castTo(Agedge_s.class); + sn.setPtr("in_id", dtextract((_dt_s)g.getPtr("e_id"))); + } + return e; +} finally { +LEAVING("c175o6j61jqmfnl4o1g1h1mie","agfindedge_by_key"); +} +} + + + + +//3 7ph1egysh0yp1kxmrerg5v40e +// static Agedge_t *agfindedge_by_id(Agraph_t * g, Agnode_t * t, Agnode_t * h, unsigned long id) +public static Object agfindedge_by_id(Object... arg) { +UNSUPPORTED("ec9zslg8lac601i0b25y7zwto"); // static Agedge_t *agfindedge_by_id(Agraph_t * g, Agnode_t * t, Agnode_t * h, +UNSUPPORTED("3aq1nzyk7buuizn5in1tizrxw"); // unsigned long id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e1mtghvcaueacf53mmdm4tfy0"); // Agtag_t tag; +UNSUPPORTED("9sao87j2usq1a87o75iju8s5b"); // tag = Tag; +UNSUPPORTED("8ftb0g8ykm4jkjpro0pcai75y"); // tag.objtype = AGEDGE; +UNSUPPORTED("4dwsgoqnwiy82putqjt97dagp"); // tag.id = id; +UNSUPPORTED("57t26f9vd4vltjvoz5m7lo5lf"); // return agfindedge_by_key(g, t, h, tag); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b32ssm6ex1pdz1b3nt4fwlhul +// Agsubnode_t *agsubrep(Agraph_t * g, Agnode_t * n) +public static Agsubnode_s agsubrep(Agraph_s g, Agnode_s n) { +ENTERING("b32ssm6ex1pdz1b3nt4fwlhul","agsubrep"); +try { + Agsubnode_s sn; + final __struct__ template = __struct__.from(Agsubnode_s.class); + if (EQ(g, n.getPtr("root"))) sn = (Agsubnode_s) n.getStruct("mainsub").amp(); + else { + template.setPtr("node", n); + sn = (Agsubnode_s) g.getPtr("n_id").castTo(_dt_s.class).call("searchf", g.getPtr("n_id"), template.amp(), 0000004); + } + return sn; +} finally { +LEAVING("b32ssm6ex1pdz1b3nt4fwlhul","agsubrep"); +} +} + + + + +//3 6u0niow33w9gva780waluva4n +// static void ins(Dict_t * d, Dtlink_t ** set, Agedge_t * e) +public static void ins(_dt_s d, STARSTAR<_dtlink_s> set, Agedge_s e) { +ENTERING("6u0niow33w9gva780waluva4n","ins"); +try { + dtrestore(d, set.getMe()); + d.call("searchf", d,e,0000001); + set.setMe(dtextract(d)); +} finally { +LEAVING("6u0niow33w9gva780waluva4n","ins"); +} +} + + + + +//3 2h2dtr49b6fcn440sc4xrseg3 +// static void del(Dict_t * d, Dtlink_t ** set, Agedge_t * e) +public static Object del(Object... arg) { +UNSUPPORTED("5lvsvkq5t8c8pj03debt0mwal"); // static void del(Dict_t * d, Dtlink_t ** set, Agedge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("atawgqln44t2lhf2j4q1dsw80"); // void *x; +UNSUPPORTED("c1wraxzkcgmquqsiuypvr56tj"); // dtrestore(d, *set); +UNSUPPORTED("9e6qtst4eze5ps8ukq79d6zf8"); // x = (*(((Dt_t*)(d))->searchf))((d),(void*)(e),0000002); +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("dgfo5c0o8ftxxwmcq8kxe7ht8"); // *set = dtextract(d); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8kizmg7gziussfgx8zs3qvkfw +// static void installedge(Agraph_t * g, Agedge_t * e) +public static void installedge(Agraph_s g, Agedge_s e) { +ENTERING("8kizmg7gziussfgx8zs3qvkfw","installedge"); +try { + Agnode_s t, h; + Agedge_s out, in; + Agsubnode_s sn; + out = AGMKOUT(e); + in = AGMKIN(e); + t = agtail(e); + h = aghead(e); + while (g!=null) { + if (agfindedge_by_key(g, t, h, AGTAG(e))!=null) break; + sn = agsubrep(g, t); final Agsubnode_s sn1 = sn; + ins((_dt_s)g.getPtr("e_seq"), + STARSTAR.amp(new ACCESS<_dtlink_s>() { + public _dtlink_s get() { + return (_dtlink_s) sn1.getPtr("out_seq"); + } + public void set(_dtlink_s obj) { + sn1.setPtr("out_seq", obj); + }}) + , (Agedge_s)out); + ins((_dt_s)g.getPtr("e_id"), + STARSTAR.amp(new ACCESS<_dtlink_s>() { + public _dtlink_s get() { + return (_dtlink_s) sn1.getPtr("out_id"); + } + public void set(_dtlink_s obj) { + sn1.setPtr("out_id", obj); + }}) + , (Agedge_s)out); + sn = agsubrep(g, h); final Agsubnode_s sn2 = sn; + ins((_dt_s)g.getPtr("e_seq"), + STARSTAR.amp(new ACCESS<_dtlink_s>() { + public _dtlink_s get() { + return (_dtlink_s) sn2.getPtr("in_seq"); + } + public void set(_dtlink_s obj) { + sn2.setPtr("in_seq", obj); + }}) + , (Agedge_s)in); + ins((_dt_s)g.getPtr("e_id"), + STARSTAR.amp(new ACCESS<_dtlink_s>() { + public _dtlink_s get() { + return (_dtlink_s) sn2.getPtr("in_id"); + } + public void set(_dtlink_s obj) { + sn2.setPtr("in_id", obj); + }}) + , (Agedge_s)in); + g = agparent(g); + } +} finally { +LEAVING("8kizmg7gziussfgx8zs3qvkfw","installedge"); +} +} + + + + +//3 2vtt6zb0n3oru23okvw4pxasg +// static void subedge(Agraph_t * g, Agedge_t * e) +public static Object subedge(Object... arg) { +UNSUPPORTED("1qslen16fp6w3yse2y311vtsf"); // static void subedge(Agraph_t * g, Agedge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3rvuc9rdxdwmvq3dtwv2hqwjo"); // installedge(g, e); +UNSUPPORTED("4d70e4y79ekvafnx88hgwdrna"); // /* might an init method call be needed here? */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4rzjui6oo0k009o64bxwgjmvq +// static Agedge_t *newedge(Agraph_t * g, Agnode_t * t, Agnode_t * h, unsigned long id) +public static Agedge_s newedge(Agraph_s g, Agnode_s t, Agnode_s h, int id) { +ENTERING("4rzjui6oo0k009o64bxwgjmvq","newedge"); +try { + Agedgepair_s e2; + Agedge_s in, out; + int seq; + agsubnode(g,t,(N(0))); + agsubnode(g,h,(N(0))); + e2 = (Agedgepair_s) agalloc(g, sizeof(Agedgepair_s.class)); + in = (Agedge_s) e2.getStruct("in").amp(); + out = (Agedge_s) e2.getStruct("out").amp(); + seq = agnextseq(g, AGEDGE); + AGTYPE(in, AGINEDGE); + AGTYPE(out, AGOUTEDGE); + AGID(out, id); + AGID(in, id); + AGSEQ(in, seq); + AGSEQ(out, seq); + in.setPtr("node", t); + out.setPtr("node", h); + installedge(g, out); + if (g.getStruct("desc").getBoolean("has_attrs")) { + agbindrec(out, AgDataRecName, sizeof(Agattr_s.class), false); + agedgeattr_init(g, out); + } + agmethod_init(g, out); + return out; +} finally { +LEAVING("4rzjui6oo0k009o64bxwgjmvq","newedge"); +} +} + + + + +//3 1ufxhg5xnmll1pe5339477823 +// static int ok_to_make_edge(Agraph_t * g, Agnode_t * t, Agnode_t * h) +public static boolean ok_to_make_edge(Agraph_s g, Agnode_s t, Agnode_s h) { +ENTERING("1ufxhg5xnmll1pe5339477823","ok_to_make_edge"); +try { + final __struct__ key = __struct__.from(Agtag_s.class); + /* protect against self, multi-edges in strict graphs */ + if (agisstrict(g)) { + if (g.getPtr("desc").getBoolean("no_loop") && (EQ(t, h))) /* simple graphs */ + return false; + key.____(Z._().Tag); + key.setInt("objtype", 0); /* wild card */ + if (agfindedge_by_key(g, t, h, key)!=null) + return false; + } + return (N(0)); +} finally { +LEAVING("1ufxhg5xnmll1pe5339477823","ok_to_make_edge"); +} +} + + + + +//3 75ua3fc3lvhnwftacueslv8e5 +// Agedge_t *agidedge(Agraph_t * g, Agnode_t * t, Agnode_t * h, unsigned long id, int cflag) +public static Object agidedge(Object... arg) { +UNSUPPORTED("5pslnv27wv1h507npa2zxh90y"); // Agedge_t *agidedge(Agraph_t * g, Agnode_t * t, Agnode_t * h, +UNSUPPORTED("e28xnrj58aci1fn3kunzmqxbv"); // unsigned long id, int cflag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2hs0004nnparj6tt7elslt4zj"); // Agraph_t *root; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("1v1wyp9m83obk7jvlhzzmbwqb"); // e = agfindedge_by_id(g, t, h, id); +UNSUPPORTED("1gxwr1hr3zd8rrmnl1zq34xju"); // if ((e == ((Agedge_t*)0)) && agisundirected(g)) +UNSUPPORTED("7jnnbxt6l29uby71ap2ioa94q"); // e = agfindedge_by_id(g, h, t, id); +UNSUPPORTED("2m5yl6487z3nh60gz8x9otg16"); // if ((e == ((Agedge_t*)0)) && cflag && ok_to_make_edge(g, t, h)) { +UNSUPPORTED("7zol2448bccu90sqoxkvnbuif"); // root = agroot(g); +UNSUPPORTED("e9viv3tnfxask57of0bhahbev"); // if ((g != root) && ((e = agfindedge_by_id(root, t, h, id)))) { +UNSUPPORTED("7u9o1s6uopqwva82fgnfbgr03"); // subedge(g, e); /* old */ +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("3nwzv8q6jwjadczk10hhrt14f"); // if (agallocid(g, AGEDGE, id)) { +UNSUPPORTED("2zklsds1y3vegvq9xgmx9ayyn"); // e = newedge(g, t, h, id); /* new */ +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2bswif6w6ot01ynlvkimntfly"); // return e; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4361pvzr3ozft2ov0fgx6t8bo +// Agedge_t *agedge(Agraph_t * g, Agnode_t * t, Agnode_t * h, char *name, int cflag) +public static Agedge_s agedge(Agraph_s g, Agnode_s t, Agnode_s h, CString name, boolean cflag) { +ENTERING("4361pvzr3ozft2ov0fgx6t8bo","agedge"); +try { + Agedge_s e; + int id[] = new int[1]; + int have_id; + have_id = agmapnametoid(g, AGEDGE, name, id, false); + if (have_id!=0 || ((name == null) && ((NOT(cflag)) || agisstrict(g)))) { + /* probe for pre-existing edge */ + final __struct__ key = __struct__.from(Agtag_s.class); + key.____(Z._().Tag); + if (have_id!=0) { + key.setInt("id", id[0]); + key.setInt("objtype", AGEDGE); + } else { + key.setInt("id", 0); + key.setInt("objtype", 0); + } + /* might already exist locally */ + e = agfindedge_by_key(g, t, h, key); + if ((e == null && agisundirected(g))) + e = agfindedge_by_key(g, h, t, key); + if (e!=null) + return e; + if (cflag) { + e = agfindedge_by_key(agroot(g), t, h, key); + if ((e == null) && agisundirected(g)) + e = agfindedge_by_key(agroot(g), h, t, key); + if (e!=null) { + subedge(g,e); + return e; + } + } + } + if (cflag && ok_to_make_edge(g, t, h) + && (agmapnametoid(g, AGEDGE, name, id, (N(0))))!=0) { /* reserve id */ + e = newedge(g, t, h, id[0]); + agregister(g, AGEDGE, e); /* register new object in external namespace */ + } + else + e = null; + return e; +} finally { +LEAVING("4361pvzr3ozft2ov0fgx6t8bo","agedge"); +} +} + + + + +//3 bbzly9og4lr1fza64fjk04djp +// void agdeledgeimage(Agraph_t * g, Agedge_t * e, void *ignored) +public static Object agdeledgeimage(Object... arg) { +UNSUPPORTED("7gzvhvwj0z152fzg3h94s4wa3"); // void agdeledgeimage(Agraph_t * g, Agedge_t * e, void *ignored) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("50fokbemxzgivcd3b6k3miqqn"); // Agedge_t *in, *out; +UNSUPPORTED("4ybt6tm56tubmbuve8lp6rxhh"); // Agnode_t *t, *h; +UNSUPPORTED("2llbfi4jrmre7cyhu90pgcm72"); // Agsubnode_t *sn; +UNSUPPORTED("4pgl4pn1cad2whf242bntmjre"); // (void) ignored; +UNSUPPORTED("65tqa3if9hwq2yshaaiw31i7p"); // if (AGTYPE(e) == AGINEDGE) { +UNSUPPORTED("7awcpvsw7kw84dndmnqoe7jml"); // in = e; +UNSUPPORTED("d4vc8t57wygctu4vl9tau8a6a"); // out = AGIN2OUT(e); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("54k8hnomk4mrwatjixro9a1yr"); // out = e; +UNSUPPORTED("7qnm0e5czl4a8gcj7f5vo98h"); // in = AGOUT2IN(e); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("uc5fexr8h438pt7usvlh0ul3"); // t = in->node; +UNSUPPORTED("9a1uo5zmwfnuphv9st2w2b7hh"); // h = out->node; +UNSUPPORTED("dpshsqc8cs6ucoq4t0hnuxws6"); // sn = agsubrep(g, t); +UNSUPPORTED("a1kpx292l61dmu7eqdcm7fd51"); // del(g->e_seq, &sn->out_seq, out); +UNSUPPORTED("3xx2m5a0qzz8zcz61qn8mw44q"); // del(g->e_id, &sn->out_id, out); +UNSUPPORTED("e1vy7p3xj8dfi23jli55il082"); // sn = agsubrep(g, h); +UNSUPPORTED("dtt5k4axitnc0rvaop78flltt"); // del(g->e_seq, &sn->in_seq, in); +UNSUPPORTED("3w1dtrerdp5ojxgix55ysgcd3"); // del(g->e_id, &sn->in_id, in); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5l2v1bqchqfkinhpae4ip3yvz +// int agdeledge(Agraph_t * g, Agedge_t * e) +public static Object agdeledge(Object... arg) { +UNSUPPORTED("a87xum130tyatez3ic2nbxnna"); // int agdeledge(Agraph_t * g, Agedge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9tj8yk1m099w6420vq9obwqv6"); // e = AGMKOUT(e); +UNSUPPORTED("58hfnwh2g7pubdk6wexuvksuo"); // if (agfindedge_by_key(g, agtail(e), aghead(e), AGTAG(e)) == ((Agedge_t*)0)) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("ackx3cor82a94trjk4owh3083"); // if (g == agroot(g)) { +UNSUPPORTED("5247bml3o0pwzg9fc9q1xhhnc"); // if (g->desc.has_attrs) +UNSUPPORTED("4lf7sorcdbqef4eadxah45x08"); // agedgeattr_delete(e); +UNSUPPORTED("dpp3uqwrwe9geok1zmxonosd3"); // agmethod_delete(g, e); +UNSUPPORTED("6kvbonl2aylsja52uh6deu14c"); // agrecclose((Agobj_t *) e); +UNSUPPORTED("dnmywe26u2d1rmgozlfonjw94"); // agfreeid(g, AGEDGE, AGID(e)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6ox33bv05arfuz70cp795jqlg"); // if (agapply (g, (Agobj_t *) e, (agobjfn_t) agdeledgeimage, ((Agedge_t*)0), (0)) == 0) { +UNSUPPORTED("6tlwlx478gb1clm2fykihi2zk"); // if (g == agroot(g)) +UNSUPPORTED("ebin71xd0muor7ysk74hizhw3"); // agfree(g, e); +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 30v8z3tlda81fbqbkzx6m9fkn +// Agedge_t *agsubedge(Agraph_t * g, Agedge_t * e, int cflag) +public static Agedge_s agsubedge(Agraph_s g, Agedge_s e, boolean cflag) { +ENTERING("30v8z3tlda81fbqbkzx6m9fkn","agsubedge"); +try { + Agnode_s t, h; + Agedge_s rv; + rv = null; + t = agsubnode(g, AGTAIL(e), cflag); + h = agsubnode(g, AGHEAD(e), cflag); + if (t!=null && h!=null) { + rv = agfindedge_by_key(g, t, h, AGTAG(e)); + if (cflag && (rv == null)) { + installedge(g, e); + rv = e; + } + if (rv!=null && (AGTYPE(rv) != AGTYPE(e))) + rv = AGOPP(rv); + } + return rv; +} finally { +LEAVING("30v8z3tlda81fbqbkzx6m9fkn","agsubedge"); +} +} + + + + +//3 avk47eh26r45qk2dtoipwiqvz +// int agedgeidcmpf(Dict_t * d, void *arg_e0, void *arg_e1, Dtdisc_t * disc) +public static int agedgeidcmpf(_dt_s d, __ptr__ arg_e0, __ptr__ arg_e1, _dtdisc_s disc) { +ENTERING("avk47eh26r45qk2dtoipwiqvz","agedgeidcmpf"); +try { + int v; + Agedge_s e0, e1; + e0 = (Agedge_s) arg_e0; + e1 = (Agedge_s) arg_e1; + v = AGID(e0.getPtr("node")) - AGID(e1.getPtr("node")); + if (v == 0) { /* same node */ + if ((AGTYPE(e0) == 0) || (AGTYPE(e1) == 0)) + v = 0; + else + v = AGID(e0) - AGID(e1); + } + return ((v==0)?0:(v<0?-1:1)); +} finally { +LEAVING("avk47eh26r45qk2dtoipwiqvz","agedgeidcmpf"); +} +} + + + + +//3 b6jhzc16xvrknu4e7jp6zx0ue +// int agedgeseqcmpf(Dict_t * d, void *arg_e0, void *arg_e1, Dtdisc_t * disc) +public static int agedgeseqcmpf(_dt_s d, __ptr__ arg_e0, __ptr__ arg_e1, _dtdisc_s disc) { +ENTERING("b6jhzc16xvrknu4e7jp6zx0ue","agedgeseqcmpf"); +try { + int v; + Agedge_s e0, e1; + e0 = (Agedge_s) arg_e0; + e1 = (Agedge_s) arg_e1; + if (NEQ(e0.getPtr("node"), e1.getPtr("node"))) v = AGSEQ(e0.getPtr("node")) - AGSEQ(e1.getPtr("node")); + else v = (AGSEQ(e0) - AGSEQ(e1)); + return ((v==0)?0:(v<0?-1:1)); +} finally { +LEAVING("b6jhzc16xvrknu4e7jp6zx0ue","agedgeseqcmpf"); +} +} + + +//1 d058zqckpiqls71p4vkuxe87o +// Dtdisc_t Ag_mainedge_seq_disc = +/*static final public __struct__<_dtdisc_s> Ag_mainedge_seq_disc = __struct__.from(_dtdisc_s.class); +static { + Ag_mainedge_seq_disc.setInt("key", 0); + Ag_mainedge_seq_disc.setInt("size", 0); + Ag_mainedge_seq_disc.setInt("link", OFFSET.create(Agedge_s.class, "seq_link").toInt()); // seq_link is the third field in Agedge_t + Ag_mainedge_seq_disc.setPtr("makef", null); + Ag_mainedge_seq_disc.setPtr("freef", null); + Ag_mainedge_seq_disc.setPtr("comparf", function(edge__c.class, "agedgeseqcmpf")); + Ag_mainedge_seq_disc.setPtr("hashf", null); + Ag_mainedge_seq_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_mainedge_seq_disc.setPtr("eventf", null); +}*/ + +//1 7n5e8w5zjp9b4oeecyvyl96il +// Dtdisc_t Ag_subedge_seq_disc = +/*static public final __struct__<_dtdisc_s> Ag_subedge_seq_disc = __struct__.from(_dtdisc_s.class); +static { + Ag_subedge_seq_disc.setInt("key", 0); + Ag_subedge_seq_disc.setInt("size", 0); + Ag_subedge_seq_disc.setInt("link", -1); + Ag_subedge_seq_disc.setPtr("makef", null); + Ag_subedge_seq_disc.setPtr("freef", null); + Ag_subedge_seq_disc.setPtr("comparf", function(edge__c.class, "agedgeseqcmpf")); + Ag_subedge_seq_disc.setPtr("hashf", null); + Ag_subedge_seq_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_subedge_seq_disc.setPtr("eventf", null); +}*/ + + +//1 7grv8f2wvpg0db2pn1g7r5abv +// Dtdisc_t Ag_mainedge_id_disc = +/*static final public __struct__<_dtdisc_s> Ag_mainedge_id_disc = __struct__.from(_dtdisc_s.class); +static { + Ag_mainedge_id_disc.setInt("key", 0); + Ag_mainedge_id_disc.setInt("size", 0); + Ag_mainedge_id_disc.setInt("link", OFFSET.create(Agedge_s.class, "id_link").toInt()); // id_link is the second field in Agedge_t + Ag_mainedge_id_disc.setPtr("makef", null); + Ag_mainedge_id_disc.setPtr("freef", null); + Ag_mainedge_id_disc.setPtr("comparf", function(edge__c.class, "agedgeidcmpf")); + Ag_mainedge_id_disc.setPtr("hashf", null); + Ag_mainedge_id_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_mainedge_id_disc.setPtr("eventf", null); +}*/ + +//1 9u0ic8u2hrwlmlqalv37s053f +// Dtdisc_t Ag_subedge_id_disc = +/*static public final __struct__<_dtdisc_s> Ag_subedge_id_disc = __struct__.from(_dtdisc_s.class); +static { + Ag_subedge_id_disc.setInt("key", 0); + Ag_subedge_id_disc.setInt("size", 0); + Ag_subedge_id_disc.setInt("link", -1); + Ag_subedge_id_disc.setPtr("makef", null); + Ag_subedge_id_disc.setPtr("freef", null); + Ag_subedge_id_disc.setPtr("comparf", function(edge__c.class, "agedgeidcmpf")); + Ag_subedge_id_disc.setPtr("hashf", null); + Ag_subedge_id_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_subedge_id_disc.setPtr("eventf", null); +}*/ + + + +//3 ceexs6t1q4jxwz6h0g8fszxp4 +// Agnode_t *agtail(Agedge_t * e) +public static Agnode_s agtail(Agedge_s e) { +ENTERING("ceexs6t1q4jxwz6h0g8fszxp4","agtail"); +try { + return AGTAIL(e); +} finally { +LEAVING("ceexs6t1q4jxwz6h0g8fszxp4","agtail"); +} +} + + + + +//3 3tj9gj3dvrpox6grrdd3rftd8 +// Agnode_t *aghead(Agedge_t * e) +public static Agnode_s aghead(__ptr__ e) { +ENTERING("3tj9gj3dvrpox6grrdd3rftd8","aghead"); +try { + return AGHEAD((Agedge_s) e); +} finally { +LEAVING("3tj9gj3dvrpox6grrdd3rftd8","aghead"); +} +} + + + + +//3 15e6s5bh5hey2u79yoebir59w +// Agedge_t *agopp(Agedge_t * e) +public static Agedge_s agopp(__ptr__ e) { +ENTERING("15e6s5bh5hey2u79yoebir59w","agopp"); +try { + return AGOPP((Agedge_s) e); +} finally { +LEAVING("15e6s5bh5hey2u79yoebir59w","agopp"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/flatten__c.java plantuml-8039/src/gen/lib/cgraph/flatten__c.java --- plantuml-8024/src/gen/lib/cgraph/flatten__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/flatten__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,257 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.Macro.UNSUPPORTED; + +public class flatten__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + + + +//3 69ucljsqnzi8rzbvuqpjp4hfx +// static void agflatten_elist(Dict_t * d, Dtlink_t ** lptr, int flag) +public static Object agflatten_elist(Object... arg) { +UNSUPPORTED("bpx3af0xjz85367rnoh2ipdrn"); // static void agflatten_elist(Dict_t * d, Dtlink_t ** lptr, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4ksyblegh2kh8j0mzdddj80zr"); // dtrestore(d, *lptr); +UNSUPPORTED("ctwl7b6yxhzl4sj91zup9at33"); // dtmethod(d, flag? Dtlist : Dtoset); +UNSUPPORTED("du4za15ppq4ntkttytf8tpzkk"); // *lptr = dtextract(d); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c4syafe2mgpp13hj8vel7hdwh +// void agflatten_edges(Agraph_t * g, Agnode_t * n, int flag) +public static Object agflatten_edges(Object... arg) { +UNSUPPORTED("4ttg1k6ryqoueza8gtu0qesmc"); // void agflatten_edges(Agraph_t * g, Agnode_t * n, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2llbfi4jrmre7cyhu90pgcm72"); // Agsubnode_t *sn; +UNSUPPORTED("2g1n9rzdmt5pucspjmto1jwvn"); // Dtlink_t **tmp; +UNSUPPORTED("1wwtmjdvl73j75h8fp92i9yk5"); // sn = agsubrep(g,n); +UNSUPPORTED("cvsy8oi25qamrmokl6dumfc2n"); // tmp = &(sn->out_seq); /* avoiding - "dereferencing type-punned pointer will break strict-aliasing rules" */ +UNSUPPORTED("9robj8jesxzc7bpyw78z8i80l"); // agflatten_elist(g->e_seq, tmp, flag); +UNSUPPORTED("7no705grsz21vady4u118n7tz"); // tmp = &(sn->in_seq); +UNSUPPORTED("9robj8jesxzc7bpyw78z8i80l"); // agflatten_elist(g->e_seq, tmp, flag); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aswf367vm4ypgb50vecx6oy0e +// void agflatten(Agraph_t * g, int flag) +public static Object agflatten(Object... arg) { +UNSUPPORTED("epc3qpwcrvpagpod79vqkiktz"); // void agflatten(Agraph_t * g, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("6cb8mzhjyrkhua0olueodre85"); // if (flag) { +UNSUPPORTED("3kgshdurj1k3861cmk0j6459q"); // if (g->desc.flatlock == (0)) { +UNSUPPORTED("biacx609ekjlj7vzv20kr0twk"); // dtmethod(g->n_seq,Dtlist); +UNSUPPORTED("feknc9jq0v1n93q583pigog"); // for (n = agfstnode(g); n; n = agnxtnode(g,n)) +UNSUPPORTED("4ufjmlytpm2l2msb8zuxor8s2"); // agflatten_edges(g, n, flag); +UNSUPPORTED("1r4fzaa446otf0jautzt92b4r"); // g->desc.flatlock = (!(0)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("bacueyt9l2eudlsl4z5n0t9l7"); // if (g->desc.flatlock) { +UNSUPPORTED("b0wcdyp5hit8sc1jbi4asmalp"); // dtmethod(g->n_seq,Dtoset); +UNSUPPORTED("feknc9jq0v1n93q583pigog"); // for (n = agfstnode(g); n; n = agnxtnode(g,n)) +UNSUPPORTED("4ufjmlytpm2l2msb8zuxor8s2"); // agflatten_edges(g, n, flag); +UNSUPPORTED("1mvsjktpob2pzvo0s5wp5hbl0"); // g->desc.flatlock = (0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 602i6cqy4kebb7g16m580nxsd +// void agnotflat(Agraph_t * g) +public static Object agnotflat(Object... arg) { +UNSUPPORTED("cu099fjwopup8fb0dz3ob3yui"); // void agnotflat(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1whie4ln05zs17jprvbhgrw0o"); // if (g->desc.flatlock) +UNSUPPORTED("bsprgtbeyh48e6897xrl9q004"); // agerr(AGERR, "flat lock broken"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/graph__c.java plantuml-8039/src/gen/lib/cgraph/graph__c.java --- plantuml-8024/src/gen/lib/cgraph/graph__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/graph__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,668 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static gen.lib.cdt.dtextract__c.dtextract; +import static gen.lib.cdt.dtrestore__c.dtrestore; +import static gen.lib.cdt.dtsize__c.dtsize_; +import static gen.lib.cgraph.attr__c.agraphattr_init; +import static gen.lib.cgraph.edge__c.agsubrep; +import static gen.lib.cgraph.id__c.agmapnametoid; +import static gen.lib.cgraph.id__c.agregister; +import static gen.lib.cgraph.node__c.agfstnode; +import static gen.lib.cgraph.node__c.agnxtnode; +import static gen.lib.cgraph.obj__c.agmethod_init; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.cgraph.subg__c.agparent; +import static gen.lib.cgraph.utils__c.agdtopen; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGID; +import static smetana.core.Macro.AGRAPH; +import static smetana.core.Macro.AGSEQ; +import static smetana.core.Macro.AGTYPE; +import static smetana.core.Macro.ASINT; +import static smetana.core.Macro.N; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agclos_s; +import h.Agdesc_s; +import h.Agdisc_s; +import h.Agmemdisc_s; +import h.Agnode_s; +import h.Agraph_s; +import h.Agsubnode_s; +import h._dt_s; +import h._dtdisc_s; +import h._dtlink_s; +import smetana.core.ACCESS; +import smetana.core.CString; +import smetana.core.STARSTAR; +import smetana.core.Z; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class graph__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 ix101dcoysqmkv8bgsxsq8u1 +// Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + +//1 ewderv8bx65jlxf61iw8en77s +// const char AgraphVersion[] = + + + + +//3 bb2bu9iyqx0u6xx44l282vmch +// static Agclos_t *agclos(Agdisc_t * proto) +public static Agclos_s agclos(Agdisc_s proto) { +ENTERING("bb2bu9iyqx0u6xx44l282vmch","agclos"); +try { + Agmemdisc_s memdisc; + __ptr__ memclosure; + Agclos_s rv; + /* establish an allocation arena */ + memdisc = (Agmemdisc_s) ((proto != null && proto.getPtr("mem") != null) ? proto.getPtr("mem") : Z._().AgMemDisc.amp()); + memclosure = (__ptr__) memdisc.call("open", proto); + rv = (Agclos_s) memdisc.call("alloc", memclosure, sizeof(Agclos_s.class)); + rv.getStruct("disc").setPtr("mem", memdisc); + rv.getStruct("state").setPtr("mem", memclosure); + rv.getStruct("disc").setPtr("id", ((proto != null && proto.getPtr("id") != null) ? proto.getPtr("id") : Z._().AgIdDisc.amp())); + rv.getStruct("disc").setPtr("io", ((proto != null && proto.getPtr("io") != null) ? proto.getPtr("io") : Z._().AgIdDisc.amp())); + rv.setBoolean("callbacks_enabled", (N(0))); + return rv; +} finally { +LEAVING("bb2bu9iyqx0u6xx44l282vmch","agclos"); +} +} + + + + +//3 d5yqn56yii8cdoahswt4n6bug +// Agraph_t *agopen(char *name, Agdesc_t desc, Agdisc_t * arg_disc) +public static Agraph_s agopen(CString name, final __struct__ desc, Agdisc_s arg_disc) { +// WARNING!! STRUCT +return agopen_w_(name, desc.copy(), arg_disc); +} +private static Agraph_s agopen_w_(CString name, final __struct__ desc, Agdisc_s arg_disc) { +ENTERING("d5yqn56yii8cdoahswt4n6bug","agopen"); +try { + Agraph_s g; + Agclos_s clos; + int gid[] = new int[1]; + clos = agclos(arg_disc); + g = (Agraph_s) clos.getStruct("disc").getPtr("mem").call("alloc", clos.getStruct("state").getPtr("mem"), sizeof(Agraph_s.class)); + AGTYPE(g, AGRAPH); + g.setPtr("clos", clos); + g.setStruct("desc", desc); + g.getStruct("desc").setInt("maingraph", ASINT((N(0)))); + g.setPtr("root", g); + g.getPtr("clos").getStruct("state").setPtr("id", (__ptr__) g.getPtr("clos").getStruct("disc").getPtr("id").call("open", g, arg_disc)); + if (agmapnametoid(g, AGRAPH, name, gid, (N(0)))!=0) + AGID(g, gid[0]); + // /* else AGID(g) = 0 because we have no alternatives */ + g = agopen1(g); + agregister(g, AGRAPH, g); + return g; +} finally { +LEAVING("d5yqn56yii8cdoahswt4n6bug","agopen"); +} +} + + + + +//3 8jyhwfdfm0a877qfz8cjlb8rk +// Agraph_t *agopen1(Agraph_t * g) +public static Agraph_s agopen1(Agraph_s g) { +ENTERING("8jyhwfdfm0a877qfz8cjlb8rk","agopen1"); +try { + Agraph_s par; + g.setPtr("n_seq", agdtopen(g, Z._().Ag_subnode_seq_disc.amp(), Z._().Dttree)); + g.setPtr("n_id", agdtopen(g, Z._().Ag_subnode_id_disc.amp(), Z._().Dttree)); + g.setPtr("e_seq", agdtopen(g, EQ(g, agroot(g))? Z._().Ag_mainedge_seq_disc.amp() : Z._().Ag_subedge_seq_disc.amp(), Z._().Dttree)); + g.setPtr("e_id", agdtopen(g, EQ(g, agroot(g))? Z._().Ag_mainedge_id_disc.amp() : Z._().Ag_subedge_id_disc.amp(), Z._().Dttree)); + g.setPtr("g_dict", agdtopen(g, Z._().Ag_subgraph_id_disc.amp(), Z._().Dttree)); + par = agparent(g); + if (par!=null) { + AGSEQ(g, agnextseq(par, AGRAPH)); + par.getPtr("g_dict").call("searchf", par.getPtr("g_dict"),g,0000001); + } /* else AGSEQ=0 */ + if (N(par) || par.getStruct("desc").getBoolean("has_attrs")) + agraphattr_init(g); + agmethod_init(g, g); + return g; +} finally { +LEAVING("8jyhwfdfm0a877qfz8cjlb8rk","agopen1"); +} +} + + + + +//3 dmhavsadfjootm2o8lnwizndm +// int agclose(Agraph_t * g) +public static Object agclose(Object... arg) { +UNSUPPORTED("afwvyph6n53ckvxm8d8h7mfb8"); // int agclose(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bf3nmka0aaoswb2zwm0qee15o"); // Agraph_t *subg, *next_subg, *par; +UNSUPPORTED("7qo66ph77ke8gsbowf6kwqjff"); // Agnode_t *n, *next_n; +UNSUPPORTED("d7yov7q4cj5xaglc5czdcnix5"); // par = agparent(g); +UNSUPPORTED("1u7cs2kb7x42iwswgskdrpk5m"); // if ((par == ((Agraph_t*)0)) && (((g)->clos->disc.mem)->close)) { +UNSUPPORTED("6yjypc20njwrfp5bsnjhiiabf"); // /* free entire heap */ +UNSUPPORTED("cmba0hmq318rx9h0jefkyen70"); // agmethod_delete(g, g); /* invoke user callbacks */ +UNSUPPORTED("dbiair9ce3vkfb8s9l08pfx6w"); // agfreeid(g, AGRAPH, AGID(g)); +UNSUPPORTED("2bdjy9rtybb0v767umxcnz6rs"); // ((g)->clos->disc.mem)->close(((g)->clos->state.mem)); /* whoosh */ +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2hk83bjq106e9rdcpxqbv9nnl"); // for (subg = agfstsubg(g); subg; subg = next_subg) { +UNSUPPORTED("608ihpc2s8xb39yo654s19zxd"); // next_subg = agnxtsubg(subg); +UNSUPPORTED("3noc43t4fqi4gollim1ygyuqh"); // agclose(subg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6r3mocyf2tlkysyu64nxw0u9h"); // for (n = agfstnode(g); n; n = next_n) { +UNSUPPORTED("3d2h3vjjw6x8w1joyvc3qlruy"); // next_n = agnxtnode(g, n); +UNSUPPORTED("3xjgsp211uvaug1aa3mvpdlnc"); // agdelnode(g, n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1ia10h9dh09qjfarfdjx452gf"); // aginternalmapclose(g); +UNSUPPORTED("ddezjv0si4sjtexy5kqfwqg9n"); // agmethod_delete(g, g); +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("5d72jwytwy7gvtmqynj5ndpyr"); // if (agdtclose(g, g->n_id)) return -1; +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("324yaisi4aejlbofpo08bx36u"); // if (agdtclose(g, g->n_seq)) return -1; +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("34xteu7bflgwy03788khpb2gb"); // if (agdtclose(g, g->e_id)) return -1; +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("6bwledkxe6algose4ob82o61"); // if (agdtclose(g, g->e_seq)) return -1; +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("d7yg3wo8tmofx0anjr742k191"); // if (agdtclose(g, g->g_dict)) return -1; +UNSUPPORTED("l0tanhlxt2jokflxnd061z3y"); // if (g->desc.has_attrs) +UNSUPPORTED("9jhznqh28rajdovcc58834278"); // if (agraphattr_delete(g)) return -1; +UNSUPPORTED("a5y6rvdlz9o09pphxz38sbtna"); // agrecclose((Agobj_t *) g); +UNSUPPORTED("crfg36z5yetflihtijtubwo8y"); // agfreeid(g, AGRAPH, AGID(g)); +UNSUPPORTED("et9lswrohfsxngrn2xcefry4q"); // if (par) { +UNSUPPORTED("dzboxj0ijphtqrm463tpbvkhx"); // agdelsubg(par, g); +UNSUPPORTED("e7v29f5dzfhzrj9v4shzbcywi"); // agfree(par, g); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("5y8tww8901b1ro7bgu6r58vgr"); // Agmemdisc_t *memdisc; +UNSUPPORTED("6ozvxgrg2q3sua4w4cnwun2hd"); // void *memclos, *clos; +UNSUPPORTED("9i0i3wyt8alu21zy4mtvxxhj7"); // while (g->clos->cb) +UNSUPPORTED("1y6k38rbnyl26lquznq5kass6"); // agpopdisc(g, g->clos->cb->f); +UNSUPPORTED("8qcjv2uq7ztij51cy8b5r7yqr"); // ((g)->clos->disc.id)->close(((g)->clos->state.id)); +UNSUPPORTED("px95fp6paiia8ts33pk4tph1"); // if (agstrclose(g)) return -1; +UNSUPPORTED("2kp9gdc0xn3li7ibgz4x4lnmz"); // memdisc = ((g)->clos->disc.mem); +UNSUPPORTED("8lo1wjoiak85adsa9fwxo62zl"); // memclos = ((g)->clos->state.mem); +UNSUPPORTED("8n6pjmho9f28hof6v2v1lruyo"); // clos = g->clos; +UNSUPPORTED("ets9jwr303m5yl6eqowve1loh"); // (memdisc->free) (memclos, g); +UNSUPPORTED("d0v33cnucd6c13avcqkwy4wzc"); // (memdisc->free) (memclos, clos); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 axmdmml95l55vlp1vqmh0v5sn +// unsigned long agnextseq(Agraph_t * g, int objtype) +public static int agnextseq(Agraph_s g, int objtype) { +ENTERING("axmdmml95l55vlp1vqmh0v5sn","agnextseq"); +try { + int tmp = g.getPtr("clos").getArrayOfInteger("seq").plus(objtype).getInt(); + tmp++; + g.getPtr("clos").getArrayOfInteger("seq").plus(objtype).setInt(tmp); + return tmp; +} finally { +LEAVING("axmdmml95l55vlp1vqmh0v5sn","agnextseq"); +} +} + + + + +//3 688euygrkbl10cveflgwalo2n +// int agnnodes(Agraph_t * g) +public static int agnnodes(Agraph_s g) { +ENTERING("688euygrkbl10cveflgwalo2n","agnnodes"); +try { + return dtsize_((_dt_s)g.getPtr("n_id")); +} finally { +LEAVING("688euygrkbl10cveflgwalo2n","agnnodes"); +} +} + + + + +//3 8zjne7uv8rfpmbv5t96zhnr4u +// int agnedges(Agraph_t * g) +public static int agnedges(Agraph_s g) { +ENTERING("8zjne7uv8rfpmbv5t96zhnr4u","agnedges"); +try { + Agnode_s n; + int rv = 0; + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) + rv += agdegree(g, n, (false), (N(0))); /* must use OUT to get self-arcs */ + return rv; +} finally { +LEAVING("8zjne7uv8rfpmbv5t96zhnr4u","agnedges"); +} +} + + + + +//3 e1ndua2eo29tb0z93wrmamm3g +// int agnsubg(Agraph_t * g) +public static Object agnsubg(Object... arg) { +UNSUPPORTED("5auwvgl2zekzvzu6p5413tqd0"); // int agnsubg(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("18u3kziious357fry7i0r4kg2"); // return dtsize(g->g_dict); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 blvn1w3v0icnucu5m5xvbrba1 +// int agisdirected(Agraph_t * g) +public static boolean agisdirected(Agraph_s g) { +ENTERING("blvn1w3v0icnucu5m5xvbrba1","agisdirected"); +try { + return g.getStruct("desc").getBoolean("directed"); +} finally { +LEAVING("blvn1w3v0icnucu5m5xvbrba1","agisdirected"); +} +} + + + + +//3 8thgds4eioot64flko26m8ns0 +// int agisundirected(Agraph_t * g) +public static boolean agisundirected(Agraph_s g) { +ENTERING("8thgds4eioot64flko26m8ns0","agisundirected"); +try { + return (NOT(agisdirected(g))); +} finally { +LEAVING("8thgds4eioot64flko26m8ns0","agisundirected"); +} +} + + + + +//3 9qgdebmdfrcfjm394bg59a7y5 +// int agisstrict(Agraph_t * g) +public static boolean agisstrict(Agraph_s g) { +ENTERING("9qgdebmdfrcfjm394bg59a7y5","agisstrict"); +try { + return g.getStruct("desc").getBoolean("strict"); +} finally { +LEAVING("9qgdebmdfrcfjm394bg59a7y5","agisstrict"); +} +} + + + + +//3 4zw0onm78e3x5anx7snfpe40m +// int agissimple(Agraph_t * g) +public static Object agissimple(Object... arg) { +UNSUPPORTED("5khld3f380yzb9kztjfa00b7t"); // int agissimple(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9u553zzb7in07zdd55sdea2an"); // return (g->desc.strict && g->desc.no_loop); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 abaldeo2ie6zi60cazxp7rv47 +// static int cnt(Dict_t * d, Dtlink_t ** set) +public static int cnt(_dt_s d, STARSTAR<_dtlink_s> set) { +ENTERING("abaldeo2ie6zi60cazxp7rv47","cnt"); +try { + int rv; + dtrestore(d, set.getMe()); + rv = dtsize_(d); + set.setMe(dtextract(d)); + return rv; +} finally { +LEAVING("abaldeo2ie6zi60cazxp7rv47","cnt"); +} +} + + + + +//3 crupee5rve7q7m335ngnqsb39 +// int agcountuniqedges(Agraph_t * g, Agnode_t * n, int want_in, int want_out) +public static Object agcountuniqedges(Object... arg) { +UNSUPPORTED("47c9iab9p596xa2xrkcgmepw0"); // int agcountuniqedges(Agraph_t * g, Agnode_t * n, int want_in, int want_out) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("2llbfi4jrmre7cyhu90pgcm72"); // Agsubnode_t *sn; +UNSUPPORTED("en7ch189nkys76f42mlo1s5zz"); // int rv = 0; +UNSUPPORTED("b0wzl2qtz6anq1dhlxtmvwvgn"); // sn = agsubrep(g, n); +UNSUPPORTED("e0cr7vhmu27121z5m8qtchlwn"); // if (want_out) rv = cnt(g->e_seq,&(sn->out_seq)); +UNSUPPORTED("4gu3qg6aqwexl6ysrfrqko4z8"); // if (want_in) { +UNSUPPORTED("3r5t38hbcwvc5hpus6062r7ic"); // if (!want_out) rv += cnt(g->e_seq,&(sn->in_seq)); /* cheap */ +UNSUPPORTED("6p5yaaxfj7183iw2v0uuruh56"); // else { /* less cheap */ +UNSUPPORTED("7jxxmlwkqih7nv6yrum6qhfe0"); // for (e = agfstin(g, n); e; e = agnxtin(g, e)) +UNSUPPORTED("73lyxs2pp1e0s95qdz9vgc5iy"); // if (e->node != n) rv++; /* don't double count loops */ +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2bz40qf0qo7pd6er1ut25gthp +// int agdegree(Agraph_t * g, Agnode_t * n, int want_in, int want_out) +public static int agdegree(Agraph_s g, Agnode_s n, boolean want_in, boolean want_out) { +ENTERING("2bz40qf0qo7pd6er1ut25gthp","agdegree"); +try { + Agsubnode_s sn; + int rv = 0; + sn = agsubrep(g, n); + final Agsubnode_s sn1 = sn; + if (sn!=null) { + if (want_out) rv += cnt((_dt_s)g.getPtr("e_seq"), + STARSTAR.amp(new ACCESS<_dtlink_s>() { + public _dtlink_s get() { + return (_dtlink_s) sn1.getPtr("out_seq"); + } + public void set(_dtlink_s obj) { + sn1.setPtr("out_seq", obj); + }}) + ); + if (want_in) rv += cnt((_dt_s)g.getPtr("e_seq"), + STARSTAR.amp(new ACCESS<_dtlink_s>() { + public _dtlink_s get() { + return (_dtlink_s) sn1.getPtr("in_seq"); + } + public void set(_dtlink_s obj) { + sn1.setPtr("in_seq", obj); + }}) + ); + } + return rv; +} finally { +LEAVING("2bz40qf0qo7pd6er1ut25gthp","agdegree"); +} +} + + + + +//3 dhbtfzzp8n5yygqmhmluo9bxl +// int agraphidcmpf(Dict_t * d, void *arg0, void *arg1, Dtdisc_t * disc) +public static int agraphidcmpf(_dt_s d, __ptr__ arg0, __ptr__ arg1, _dtdisc_s disc) { +ENTERING("dhbtfzzp8n5yygqmhmluo9bxl","agraphidcmpf"); +try { + int v; + Agraph_s sg0, sg1; + sg0 = (Agraph_s) arg0; + sg1 = (Agraph_s) arg1; + v = (AGID(sg0) - AGID(sg1)); + return ((v==0)?0:(v<0?-1:1)); +} finally { +LEAVING("dhbtfzzp8n5yygqmhmluo9bxl","agraphidcmpf"); +} +} + + + + +//3 llkcwaxuse8jc2ri7r9n6t0c +// int agraphseqcmpf(Dict_t * d, void *arg0, void *arg1, Dtdisc_t * disc) +public static Object agraphseqcmpf(Object... arg) { +UNSUPPORTED("97lu4ei4gjam66ku5pz8dn7il"); // int agraphseqcmpf(Dict_t * d, void *arg0, void *arg1, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ccl2joincnprtk47hwmpz1o7n"); // long v; +UNSUPPORTED("73bfha5x7xhgp9p6wxa9jap6j"); // Agraph_t *sg0, *sg1; +UNSUPPORTED("e8rx1ahgpoym3u3v0jgarn58y"); // sg0 = (Agraph_t *) arg0; +UNSUPPORTED("bc6x70wml3jh4l4ana92njtid"); // sg1 = (Agraph_t *) arg1; +UNSUPPORTED("4afy6g5l0jng6m6l3abdyuk80"); // v = (AGSEQ(sg0) - AGSEQ(sg1)); +UNSUPPORTED("2tgj1svqq4v5mqo7525nw7icj"); // return ((v==0)?0:(v<0?-1:1)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 cqgilvgau98cgaulohsii8vx4 +// Dtdisc_t Ag_subgraph_id_disc = +/*static final public __struct__<_dtdisc_s> Ag_subgraph_id_disc = __struct__.from(_dtdisc_s.class); +static { + Ag_subgraph_id_disc.setInt("key", 0); + Ag_subgraph_id_disc.setInt("size", 0); + Ag_subgraph_id_disc.setInt("link", OFFSET.create(Agraph_s.class, "link").toInt()); // link is the third field in Agraph_t + Ag_subgraph_id_disc.setPtr("makef", null); + Ag_subgraph_id_disc.setPtr("freef", null); + Ag_subgraph_id_disc.setPtr("comparf", function(graph__c.class, "agraphidcmpf")); + Ag_subgraph_id_disc.setPtr("hashf", null); + Ag_subgraph_id_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_subgraph_id_disc.setPtr("eventf", null); +}*/ + +//1 98aldesvg4i0qxoidbuanebv7 +// Agdesc_t Agdirected = +/*static final public __struct__ Agdirected = __struct__.from(Agdesc_s.class); +static { + Agdirected.setInt("directed", 1); + Agdirected.setInt("strict", 0); + Agdirected.setInt("no_loop", 0); + Agdirected.setInt("maingraph", 1); +}*/ + +//1 4fbe4dfrxvwi5l1l4rb30s9o8 +// Agdesc_t Agstrictdirected = + + +//1 5rysra3mrm6tscdrjbg5rhyuu +// Agdesc_t Agundirected = + + +//1 2x0008zd99c6pdbwdqnv7yjcz +// Agdesc_t Agstrictundirected = + + +//1 biws2qqe0e0xqmwdmfuvdopo3 +// Agdisc_t AgDefaultDisc = + + + + +//3 4rhqd5bl4tiypdakk2hhpsj7s +// void scndump(Agraph_t *g, char *file) +public static Object scndump(Object... arg) { +UNSUPPORTED("7e937yycgb0eiorckxpq4qqwo"); // void scndump(Agraph_t *g, char *file) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("38goe38ctv7d6jktnwysyagy8"); // FILE * f = fopen(file,"w"); +UNSUPPORTED("7luati80gyuf0ex40qi3bjkkp"); // if (f) {agwrite(g,f); fclose(f);} +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/id__c.java plantuml-8039/src/gen/lib/cgraph/id__c.java --- plantuml-8024/src/gen/lib/cgraph/id__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/id__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,440 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static gen.lib.cgraph.imap__c.aginternalmapinsert; +import static gen.lib.cgraph.imap__c.aginternalmaplookup; +import static gen.lib.cgraph.imap__c.aginternalmapprint; +import static gen.lib.cgraph.obj__c.agraphof; +import static gen.lib.cgraph.refstr__c.agstrbind; +import static gen.lib.cgraph.refstr__c.agstrdup; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGEDGE; +import static smetana.core.Macro.AGID; +import static smetana.core.Macro.AGTYPE; +import static smetana.core.Macro.ASINT; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agdisc_s; +import h.Agobj_s; +import h.Agraph_s; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__ptr__; + +public class id__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + + + +//3 a0a2zxsu8n019hzm1rwf1jc7f +// static void *idopen(Agraph_t * g, Agdisc_t* disc) +public static Object idopen(Agraph_s g, Agdisc_s disc) { +ENTERING("a0a2zxsu8n019hzm1rwf1jc7f","idopen"); +try { + return g; +} finally { +LEAVING("a0a2zxsu8n019hzm1rwf1jc7f","idopen"); +} +} + + + + +//3 lsl0c1gejls1wv04ga6xy2cf +// static long idmap(void *state, int objtype, char *str, unsigned long *id, int createflag) +//static int ctr = 1; +public static int idmap(Object state, int objtype, CString str, int id[], boolean createflag) { +ENTERING("lsl0c1gejls1wv04ga6xy2cf","idmap"); +try { + CString s; + if (str!=null) { + Agraph_s g; + g = (Agraph_s) state; + if (createflag) + s = agstrdup(g, str); + else + s = agstrbind(g, str); + id[0] = Memory.identityHashCode(s); + } else { + id[0] = Z._().ctr; + Z._().ctr += 2; + } + return ASINT(N(0)); +} finally { +LEAVING("lsl0c1gejls1wv04ga6xy2cf","idmap"); +} +} + + + + +//3 8ynmf2fueegi7vjejal3ri1ax +// static long idalloc(void *state, int objtype, unsigned long request) +public static Object idalloc(Object... arg) { +UNSUPPORTED("1z2o91qjhxg0zcs8vgzyl9bf1"); // static long idalloc(void *state, int objtype, unsigned long request) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2s0qc9g3dasd7eqa3rhtlxrae"); // (void) state; +UNSUPPORTED("x0ltcg0hfp8jlgbjde43bdwj"); // (void) objtype; +UNSUPPORTED("6xs9bwnce34njm5w424uwon6d"); // (void) request; +UNSUPPORTED("297p5iu8oro94tdg9v29bbgiw"); // return (0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5fsdlq8w38bfd7gtwz1z8arad +// static void idfree(void *state, int objtype, unsigned long id) +public static Object idfree(Object... arg) { +UNSUPPORTED("adq5fviqjzpkxrjt37qxo1ywh"); // static void idfree(void *state, int objtype, unsigned long id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("x0ltcg0hfp8jlgbjde43bdwj"); // (void) objtype; +UNSUPPORTED("e3dd233viwus8xrkad68a1qhr"); // if (id % 2 == 0) +UNSUPPORTED("69x6bjndheh46syz632mlu192"); // agstrfree((Agraph_t *) state, (char *) id); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8143j507ej7uqqjzw5i32xej5 +// static char *idprint(void *state, int objtype, unsigned long id) +public static CString idprint(__ptr__ state, int objtype, int id) { +ENTERING("8143j507ej7uqqjzw5i32xej5","idprint"); +try { + if (id % 2 == 0) + return (CString) Memory.fromIdentityHashCode(id); + else + return null; +} finally { +LEAVING("8143j507ej7uqqjzw5i32xej5","idprint"); +} +} + + + + +//3 44seyu1scoubb1wsuhwlghwyz +// static void idclose(void *state) +public static Object idclose(Object... arg) { +UNSUPPORTED("18oh21h7t6fg06ozg64u87nyu"); // static void idclose(void *state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2s0qc9g3dasd7eqa3rhtlxrae"); // (void) state; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5bjqo0ihl0x25vaspoiehmwzk +// static void idregister(void *state, int objtype, void *obj) +public static void idregister(Object state, int objtype, Object obj) { +ENTERING("5bjqo0ihl0x25vaspoiehmwzk","idregister"); +try { + +} finally { +LEAVING("5bjqo0ihl0x25vaspoiehmwzk","idregister"); +} +} + + +//1 cxrk51474ugltvklkcvp3v2ly +// Agiddisc_t AgIdDisc = +/*public final static __struct__ AgIdDisc = __struct__.from(Agiddisc_s.class); +static { + AgIdDisc.setPtr("open", function(id__c.class, "idopen")); + AgIdDisc.setPtr("map", function(id__c.class, "idmap")); + AgIdDisc.setPtr("alloc", function(id__c.class, "idalloc")); + AgIdDisc.setPtr("free", function(id__c.class, "idfree")); + AgIdDisc.setPtr("print", function(id__c.class, "idprint")); + AgIdDisc.setPtr("close", function(id__c.class, "idclose")); + AgIdDisc.setPtr("idregister", function(id__c.class, "idregister")); +}*/ + + + +//3 aq30wwcj4ugatsgx0zdtdmeed +// int agmapnametoid(Agraph_t * g, int objtype, char *str, unsigned long *result, int createflag) +public static int agmapnametoid(Agraph_s g, int objtype, CString str, int result[], boolean createflag) { +ENTERING("aq30wwcj4ugatsgx0zdtdmeed","agmapnametoid"); +try { + int rv; + if (str!=null && (str.charAt(0) != '%')) { + rv = (Integer) g.getPtr("clos").getStruct("disc").getPtr("id").call("map", g.getPtr("clos").getStruct("state").getPtr("id"), objtype, str, result, createflag); + if (rv!=0) + return rv; + } + /* either an internal ID, or disc. can't map strings */ + if (str!=null) { + rv = aginternalmaplookup(g, objtype, str, result); + if (rv!=0) + return rv; + } else + rv = 0; + if (createflag) { + /* get a new anonymous ID, and store in the internal map */ + rv = (Integer) g.getPtr("clos").getStruct("disc").getPtr("id").call("map", g.getPtr("clos").getStruct("state").getPtr("id"), objtype, null, result, + createflag); + if (rv!=0 && str!=null) + aginternalmapinsert(g, objtype, str, result[0]); + } + return rv; +} finally { +LEAVING("aq30wwcj4ugatsgx0zdtdmeed","agmapnametoid"); +} +} + + + + +//3 dwufsd296z6lfmtm7fp4e3tk7 +// int agallocid(Agraph_t * g, int objtype, unsigned long request) +public static Object agallocid(Object... arg) { +UNSUPPORTED("5i7l75ugdm5j5c4xtqqk9atdd"); // int agallocid(Agraph_t * g, int objtype, unsigned long request) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dlf21dkccrftu3zc0t5amuwu4"); // return ((g)->clos->disc.id)->alloc(((g)->clos->state.id), objtype, request); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cfub4osftc8djs88cq592feu3 +// void agfreeid(Agraph_t * g, int objtype, unsigned long id) +public static Object agfreeid(Object... arg) { +UNSUPPORTED("4hpxv4j7rcvj3lrbvu2e0hus4"); // void agfreeid(Agraph_t * g, int objtype, unsigned long id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3s1vo79t7lt6fm1bimxdpbqj"); // (void) aginternalmapdelete(g, objtype, id); +UNSUPPORTED("dm45ri059viqxsb08rmvo60y1"); // (((g)->clos->disc.id)->free) (((g)->clos->state.id), objtype, id); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cctsybrl54fy799aynfej4iiy +// char *agnameof(void *obj) +// private static char buf[32]; +public static CString agnameof(__ptr__ obj) { +ENTERING("cctsybrl54fy799aynfej4iiy","agnameof"); +try { + Agraph_s g; + CString rv; + /* perform internal lookup first */ + g = agraphof(obj); + if ((rv = aginternalmapprint(g, AGTYPE(obj), AGID(obj)))!=null) + return rv; + if (g.getPtr("clos").getStruct("disc").getPtr("id").getPtr("print")!=null) { + if ((rv = + (CString) g.getPtr("clos").getStruct("disc").getPtr("id").call("print", g.getPtr("clos").getStruct("state").getPtr("id"), + AGTYPE(obj), + AGID(obj)))!=null) + return rv; + } + if (AGTYPE(obj) != AGEDGE) { + rv = new CString("%"+obj.castTo(Agobj_s.class).getStruct("tag").getInt("id")); + } + else + rv = null; + return rv; +} finally { +LEAVING("cctsybrl54fy799aynfej4iiy","agnameof"); +} +} + + + + +//3 emt63ldde99jnwe2vvjal9kt9 +// void agregister(Agraph_t * g, int objtype, void *obj) +public static void agregister(Agraph_s g, int objtype, Object obj) { +ENTERING("emt63ldde99jnwe2vvjal9kt9","agregister"); +try { + g.getPtr("clos").getStruct("disc").getPtr("id").call("idregister", g.getPtr("clos").getStruct("state").getPtr("id"), objtype, obj); +} finally { +LEAVING("emt63ldde99jnwe2vvjal9kt9","agregister"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/imap__c.java plantuml-8039/src/gen/lib/cgraph/imap__c.java --- plantuml-8024/src/gen/lib/cgraph/imap__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/imap__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,426 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGEDGE; +import static smetana.core.Macro.AGINEDGE; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agraph_s; +import h.IMapEntry_t; +import h._dt_s; +import smetana.core.CString; +import smetana.core.Memory; + +public class imap__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + + + +//3 79n6elfqk1vw36hmv7bxlrb0v +// static int idcmpf(Dict_t * d, void *arg_p0, void *arg_p1, Dtdisc_t * disc) +public static Object idcmpf(Object... arg) { +UNSUPPORTED("1r7psgafk53qtogr4ft1z3lze"); // static int idcmpf(Dict_t * d, void *arg_p0, void *arg_p1, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4ntp67b3zenb7lwin6la68y9g"); // IMapEntry_t *p0, *p1; +UNSUPPORTED("6z29omss9ay00bqf6xael7t6t"); // (void) d; +UNSUPPORTED("44n3fpcv1bzssspskdg8kbbz4"); // p0 = arg_p0; +UNSUPPORTED("4tgwqnnain0i2lv7it6su8k8q"); // p1 = arg_p1; +UNSUPPORTED("8l8wg6vltx6d7vc9dzqb6n3wi"); // (void) disc; +UNSUPPORTED("49gg5v29upcoktnre7tua6o3j"); // return (p0->id - p1->id); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aadw62b6y0d22xf4720pzdiyz +// static int namecmpf(Dict_t * d, void *arg_p0, void *arg_p1, Dtdisc_t * disc) +public static Object namecmpf(Object... arg) { +UNSUPPORTED("7ouzah61jyng2a8u8dfdxeekw"); // static int namecmpf(Dict_t * d, void *arg_p0, void *arg_p1, +UNSUPPORTED("3hfqv3wxw19wel6xzpj1kbshb"); // Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4ntp67b3zenb7lwin6la68y9g"); // IMapEntry_t *p0, *p1; +UNSUPPORTED("6z29omss9ay00bqf6xael7t6t"); // (void) d; +UNSUPPORTED("44n3fpcv1bzssspskdg8kbbz4"); // p0 = arg_p0; +UNSUPPORTED("4tgwqnnain0i2lv7it6su8k8q"); // p1 = arg_p1; +UNSUPPORTED("8l8wg6vltx6d7vc9dzqb6n3wi"); // (void) disc; +UNSUPPORTED("eb7z4ayiwked6cpuntm496002"); // return (p0->str - p1->str); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 cvijg1ekkl36sildxxf28vhug +// static Dtdisc_t LookupByName = + + +//1 dkzjlpsv4zk993r3iyo7msr8n +// static Dtdisc_t LookupById = + + + + +//3 mx2krtbgfhcihopw9rw8kcv3 +// int aginternalmaplookup(Agraph_t * g, int objtype, char *str, unsigned long *result) +public static int aginternalmaplookup(Agraph_s g, int objtype, CString str, int result[]) { +ENTERING("mx2krtbgfhcihopw9rw8kcv3","aginternalmaplookup"); +try { + UNSUPPORTED("9xuzgjxqveawe6v2n4x48r93l"); // int aginternalmaplookup(Agraph_t * g, int objtype, char *str, +UNSUPPORTED("a9jw0mphzrt0q739cxcgk2hxw"); // unsigned long *result) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("l4y6zpshfefue2m18wlswfkp"); // Dict_t *d; +UNSUPPORTED("6ich6qfkkifpsux1v4vgzhiyb"); // IMapEntry_t *sym, template; +UNSUPPORTED("4uffdlbjda8w15jyto7gd77bw"); // char *search_str; +UNSUPPORTED("84sccu12ven74lipf2dljgik4"); // if (objtype == AGINEDGE) +UNSUPPORTED("5q9qhv35w1rsuiuzqkwgshm3p"); // objtype = AGEDGE; +UNSUPPORTED("drm2n6i20x3uimml5ooxm9u25"); // if ((d = g->clos->lookup_by_name[objtype])) { +UNSUPPORTED("9ysphludc93c139uov8ximaj2"); // if ((search_str = agstrbind(g, str))) { +UNSUPPORTED("73apfmwxngxpf2twqiokd75ph"); // template.str = search_str; +UNSUPPORTED("1r11yngj3z66q9h8k7rx0ifra"); // sym = (IMapEntry_t *) (*(((Dt_t*)(d))->searchf))((d),(void*)(&template),0000004); +UNSUPPORTED("8watgmdse1o9uhfuhoexemnl2"); // if (sym) { +UNSUPPORTED("68xn6zrkilfqqsosou3z2ym7o"); // *result = sym->id; +UNSUPPORTED("a1a1uhff21noh1htwzn6yp831"); // return (!(0)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("297p5iu8oro94tdg9v29bbgiw"); // return (0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("mx2krtbgfhcihopw9rw8kcv3","aginternalmaplookup"); +} +} + + + + +//3 ce8fo5gya95enhgssezqs3vav +// void aginternalmapinsert(Agraph_t * g, int objtype, char *str, unsigned long id) +public static Object aginternalmapinsert(Object... arg) { +UNSUPPORTED("bk4ucrzua03gr9lak6zfm3orp"); // void aginternalmapinsert(Agraph_t * g, int objtype, char *str, +UNSUPPORTED("18mfx819yhg1vg5xkrfjr96x2"); // unsigned long id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bh4b0zdn246m225u6zmdk75zs"); // IMapEntry_t *ent; +UNSUPPORTED("84hwqfygghmcbo2exzo01t93o"); // Dict_t *d_name_to_id, *d_id_to_name; +UNSUPPORTED("7wtz0h3ahdkrul4dbb0b7y0l4"); // ent = ((IMapEntry_t*)(agalloc(g,sizeof(IMapEntry_t)))); +UNSUPPORTED("6nwwse4s1ba0m9jfptthwwjbj"); // ent->id = id; +UNSUPPORTED("d8vvc9mhtu43xfmzodcja9bu9"); // ent->str = agstrdup(g, str); +UNSUPPORTED("84sccu12ven74lipf2dljgik4"); // if (objtype == AGINEDGE) +UNSUPPORTED("5q9qhv35w1rsuiuzqkwgshm3p"); // objtype = AGEDGE; +UNSUPPORTED("cdo42je1dwhjo7hka7tk4bu20"); // if ((d_name_to_id = g->clos->lookup_by_name[objtype]) == ((Dict_t *)0)) +UNSUPPORTED("7tkuaa0dee3i2mkwj7ba9bmyj"); // d_name_to_id = g->clos->lookup_by_name[objtype] = +UNSUPPORTED("5em5y2jcl61223aawnzfqj4a0"); // agdtopen(g, &LookupByName, Dttree); +UNSUPPORTED("4x4ql6no5kg3qbek3o45fn7nx"); // if ((d_id_to_name = g->clos->lookup_by_id[objtype]) == ((Dict_t *)0)) +UNSUPPORTED("7tmtjlukhbvxyxkd08ijr2m47"); // d_id_to_name = g->clos->lookup_by_id[objtype] = +UNSUPPORTED("bnhc1g7rce6un1du4m54v8m5r"); // agdtopen(g, &LookupById, Dttree); +UNSUPPORTED("1y4a6gz63nnj0k1ip32krystr"); // (*(((Dt_t*)(d_name_to_id))->searchf))((d_name_to_id),(void*)(ent),0000001); +UNSUPPORTED("6d4vd73oyoit1sj5kt1otroy9"); // (*(((Dt_t*)(d_id_to_name))->searchf))((d_id_to_name),(void*)(ent),0000001); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3r16pkjiksv8i7o961ltxyge6 +// static IMapEntry_t *find_isym(Agraph_t * g, int objtype, unsigned long id) +public static IMapEntry_t find_isym(Agraph_s g, int objtype, int id) { +ENTERING("3r16pkjiksv8i7o961ltxyge6","find_isym"); +try { + _dt_s d; + IMapEntry_t isym, itemplate = (IMapEntry_t) Memory.malloc(IMapEntry_t.class); + if (objtype == AGINEDGE) + objtype = AGEDGE; + if ((d = (_dt_s) g.getPtr("clos").getArrayOfPtr("lookup_by_id").plus(objtype).getPtr())!=null) { + itemplate.setInt("id", id); + isym = (IMapEntry_t) UNSUPPORTED("(IMapEntry_t *) (*(((Dt_t*)(d))->searchf))((d),(void*)(&itemplate),0000004)"); + } else + isym = null; + return isym; +} finally { +LEAVING("3r16pkjiksv8i7o961ltxyge6","find_isym"); +} +} + + + + +//3 foe6bvtujfevsc0f3m8aqln8 +// char *aginternalmapprint(Agraph_t * g, int objtype, unsigned long id) +public static CString aginternalmapprint(Agraph_s g, int objtype, int id) { +ENTERING("foe6bvtujfevsc0f3m8aqln8","aginternalmapprint"); +try { + IMapEntry_t isym; + if ((isym = find_isym(g, objtype, id))!=null) + return isym.getCString("str"); + return null; +} finally { +LEAVING("foe6bvtujfevsc0f3m8aqln8","aginternalmapprint"); +} +} + + + + +//3 5tlg05avf32knqysibbic9jou +// int aginternalmapdelete(Agraph_t * g, int objtype, unsigned long id) +public static Object aginternalmapdelete(Object... arg) { +UNSUPPORTED("19jjvbvuhgwuct5d89a9klzdn"); // int aginternalmapdelete(Agraph_t * g, int objtype, unsigned long id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4s0k0w2gqymjv4rw9e0p94o4e"); // IMapEntry_t *isym; +UNSUPPORTED("84sccu12ven74lipf2dljgik4"); // if (objtype == AGINEDGE) +UNSUPPORTED("5q9qhv35w1rsuiuzqkwgshm3p"); // objtype = AGEDGE; +UNSUPPORTED("60rw9rftet6cvrlc5sv6cdvzo"); // if ((isym = find_isym(g, objtype, id))) { +UNSUPPORTED("6nag2b59botfmnvg4y14s6nez"); // (*(((Dt_t*)(g->clos->lookup_by_name[objtype]))->searchf))((g->clos->lookup_by_name[objtype]),(void*)(isym),0000002); +UNSUPPORTED("dsg36gwsles2ud2bgcuw50yi3"); // (*(((Dt_t*)(g->clos->lookup_by_id[objtype]))->searchf))((g->clos->lookup_by_id[objtype]),(void*)(isym),0000002); +UNSUPPORTED("avjuzl03gu3mel3wyty6geq69"); // agstrfree(g, isym->str); +UNSUPPORTED("6pld2z1bhfc2yevvzc4kxx508"); // agfree(g, isym); +UNSUPPORTED("3adr32h5e1fehu4g7j2u24asz"); // return (!(0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("297p5iu8oro94tdg9v29bbgiw"); // return (0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2wanqmzppni4zd3mlb6pkou1k +// void aginternalmapclearlocalnames(Agraph_t * g) +public static Object aginternalmapclearlocalnames(Object... arg) { +UNSUPPORTED("bkfxi88xlzuzwi4a9iqo8pn28"); // void aginternalmapclearlocalnames(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("9lx77yi3grxo0pchpg8wba5f6"); // IMapEntry_t *sym, *nxt; +UNSUPPORTED("1y1imymtcoka6zqsrmg5hocbt"); // Dict_t **d_name; +UNSUPPORTED("1lwdd78io6jcv1vyvj9qa9xwd"); // /* Dict_t **d_id; */ +UNSUPPORTED("6qvjz1ziwr3nwocahqvfzw14t"); // Ag_G_global = g; +UNSUPPORTED("e68mfs18sqlfouc92k24w2fz7"); // d_name = g->clos->lookup_by_name; +UNSUPPORTED("1upc73ikk3g0k2b325lrtornr"); // /* d_id = g->clos->lookup_by_id; */ +UNSUPPORTED("11oml6vi9s4la6fgcck9ta2y8"); // for (i = 0; i < 3; i++) { +UNSUPPORTED("6h2zc4egoha1kvb86bjeoan7b"); // if (d_name[i]) { +UNSUPPORTED("252siiega2i0vhnempk3jj5gq"); // for (sym = (*(((Dt_t*)(d_name[i]))->searchf))((d_name[i]),(void*)(0),0000200); sym; sym = nxt) { +UNSUPPORTED("9a5rzjs7wyb31qrzau41skcch"); // nxt = (*(((Dt_t*)(d_name[i]))->searchf))((d_name[i]),(void*)(sym),0000010); +UNSUPPORTED("620abwca2qrecak9ujprv3erj"); // if (sym->str[0] == '%') +UNSUPPORTED("2ys9vkqvwbp3l4dlnzxecpufu"); // aginternalmapdelete(g, i, sym->id); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 exx9lnei1gnd60cuddc52z7i9 +// static void closeit(Dict_t ** d) +public static Object closeit(Object... arg) { +UNSUPPORTED("dg5p1tjrd085naw1mo4ichi6q"); // static void closeit(Dict_t ** d) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("11oml6vi9s4la6fgcck9ta2y8"); // for (i = 0; i < 3; i++) { +UNSUPPORTED("dx4pjim9y4f2jtcu836j38fq8"); // if (d[i]) { +UNSUPPORTED("2zjj5fsuyj57whze7pm4bef4e"); // dtclose(d[i]); +UNSUPPORTED("5z84h9gs3klhayayencls3cd3"); // d[i] = ((Dict_t *)0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5dw1m5wgietdxy22txx0l20ph +// void aginternalmapclose(Agraph_t * g) +public static Object aginternalmapclose(Object... arg) { +UNSUPPORTED("bdxp6h1xs4z2wt83fv2a3w0y2"); // void aginternalmapclose(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6qvjz1ziwr3nwocahqvfzw14t"); // Ag_G_global = g; +UNSUPPORTED("9mn11z09mil44jhvfaju1n7i5"); // closeit(g->clos->lookup_by_name); +UNSUPPORTED("74lp49loz9ng7u2mjovdv1wd5"); // closeit(g->clos->lookup_by_id); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/io__c.java plantuml-8039/src/gen/lib/cgraph/io__c.java --- plantuml-8024/src/gen/lib/cgraph/io__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/io__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,296 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.Macro.UNSUPPORTED; + +public class io__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + + + +//3 b0a8zjzqjkvaiqw5i1y82wmzl +// static int iofread(void *chan, char *buf, int bufsize) +public static Object iofread(Object... arg) { +UNSUPPORTED("bmcd2lihkoyncyz2t8p1ilwhr"); // static int iofread(void *chan, char *buf, int bufsize) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("26gbavw0p5ppjkmaget64xm52"); // if (fgets(buf, bufsize, (FILE*)chan)) +UNSUPPORTED("5o3cqxldbu1xnd5mgvbj1qy3s"); // return strlen(buf); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("eutkjban02p11hojrf12g0st9"); // /* return read(fileno((FILE *) chan), buf, bufsize); */ +UNSUPPORTED("9xshhqhkyhgj8lsjfl6myd036"); // /* return fread(buf, 1, bufsize, (FILE*)chan); */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 91y9tcvbxti1ic9nine083re2 +// static int ioputstr(void *chan, const char *str) +public static Object ioputstr(Object... arg) { +UNSUPPORTED("2inl53c1xtplxmq6bmhva91ld"); // static int ioputstr(void *chan, const char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4jzhyye95tludl3z1b0hqg16y"); // return fputs(str, (FILE *) chan); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 atp6gxqi8j9nz39ry13puhwck +// static int ioflush(void *chan) +public static Object ioflush(Object... arg) { +UNSUPPORTED("elxcueeu6temiev9ncf78kvoq"); // static int ioflush(void *chan) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8803glp5cz89v6gvc897n9kjs"); // return fflush((FILE *) chan); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 2qjm4okqgeuarw1i5krezrxiq +// Agiodisc_t AgIoDisc = + + + + +//3 b6znej4isyhxv8vcdyjnnhlpu +// static int memiofread(void *chan, char *buf, int bufsize) +public static Object memiofread(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("cvqc79yfz9kp49vi5uimqh4jl"); // memiofread(void *chan, char *buf, int bufsize) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d66gzmbwgtbpy6ofjgqa41k5z"); // const char *ptr; +UNSUPPORTED("7qpxboqf01dwsthlblwmt7abt"); // char *optr; +UNSUPPORTED("wrvu9u7a8j6i6y6552zncxfk"); // char c; +UNSUPPORTED("apjzivxhs9d0uxff51eym3g5y"); // int l; +UNSUPPORTED("chj5f26gtak38l7rsif9tg2ef"); // rdr_t *s; +UNSUPPORTED("chvo71lh9m3y44gq6waktkbh9"); // if (bufsize == 0) return 0; +UNSUPPORTED("44j7d8p5naz440e73iup8jpiw"); // s = (rdr_t *) chan; +UNSUPPORTED("dod41gsjapxzma7a71g52qjyv"); // if (s->cur >= s->len) +UNSUPPORTED("egywkvzo2t847qnathqnanvcj"); // return 0; +UNSUPPORTED("5fb3yrbuopnj8web61578myje"); // l = 0; +UNSUPPORTED("4wkgx9rod3b8e1pxs5zhmavgr"); // ptr = s->data + s->cur; +UNSUPPORTED("3mp6u4df68hahvdziio4exbae"); // optr = buf; +UNSUPPORTED("lavqvwvsy9irf1laq0kebdbe"); // /* We know we have at least one character */ +UNSUPPORTED("d9o980efrtbwu0i78c437f5bo"); // c = *ptr++; +UNSUPPORTED("53kc41p479auwcycfsbhw8xix"); // do { +UNSUPPORTED("22g9b5gxmlzveusouzcsxmazx"); // *optr++ = c; +UNSUPPORTED("5xjaxhd59ghk4wid321bwwtu"); // l++; +UNSUPPORTED("bghzvix8cn8psfx1zg00ral21"); // /* continue if c is not newline, we have space in buffer, +UNSUPPORTED("ewvfix29v48zrdfokvs94fg22"); // * and next character is non-null (we are working with +UNSUPPORTED("2tcf5k4so7geiwyrcd857b0kd"); // * null-terminated strings. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("4fyi2jay0vaa7egiypve395lt"); // } while ((c != '\n') && (l < bufsize) && (c = *ptr++)); +UNSUPPORTED("20veathk82tfin58bt3ybegax"); // s->cur += l; +UNSUPPORTED("bx6jd8tbmxxxpdfz7u9rtlds"); // return l; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 a56p4nhhkzxgzqx4hqbsff5hf +// static Agiodisc_t memIoDisc = + + + + +//3 7hpggznawe61je0f77vzdulun +// Agraph_t *agmemread(const char *cp) +public static Object agmemread(Object... arg) { +UNSUPPORTED("8gnhy5r408vxior7h2ddxp3ea"); // Agraph_t *agmemread(const char *cp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c9h1fo1uvas6uw1a8qaapnln6"); // Agraph_t* g; +UNSUPPORTED("dv8xv53262iml39dlwafnq6yt"); // rdr_t rdr; +UNSUPPORTED("act2n9l38mora4yp0ugd1sls4"); // Agdisc_t disc; +UNSUPPORTED("x8365fstttag0j2sqo0x3z5k"); // memIoDisc.putstr = AgIoDisc.putstr; +UNSUPPORTED("4kd68cbbycb36shew6gwdjehp"); // memIoDisc.flush = AgIoDisc.flush; +UNSUPPORTED("asg6rxpzyrml0xjz6cw88nqdh"); // rdr.data = cp; +UNSUPPORTED("ctbbb0s3tmdhmku71n493w07s"); // rdr.len = strlen(cp); +UNSUPPORTED("3q856gggmhurx21iopk4q87dy"); // rdr.cur = 0; +UNSUPPORTED("ar2u0bmktm68f4m00re7e6fl"); // disc.mem = &AgMemDisc; +UNSUPPORTED("5m3cyfe6krwfilumr36kzfzx6"); // disc.id = &AgIdDisc; +UNSUPPORTED("7pv4zby7sodjfrg6kryf7uwzt"); // disc.io = &memIoDisc; +UNSUPPORTED("ewezfoxsntzvfqh08khv37zt7"); // g = agread (&rdr, &disc); +UNSUPPORTED("2syri7q5tc0jyvwq8ecyfo3vr"); // return g; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/main__c.java plantuml-8039/src/gen/lib/cgraph/main__c.java --- plantuml-8024/src/gen/lib/cgraph/main__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/main__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,127 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.Macro.UNSUPPORTED; + +public class main__c { + + +//3 6odliptr9wa623cqopkvk2jli +// static void my_ins(Agraph_t * g, Agobj_t * obj, void *context) +public static Object my_ins(Object... arg) { +UNSUPPORTED("c7iv5iry7vbk7hni09hhaowd5"); // static void my_ins(Agraph_t * g, Agobj_t * obj, void *context) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("a9l6doo688qv3rdvch9hmibgq"); // if (AGTYPE(obj) == AGNODE) { +UNSUPPORTED("d450vypq8xi24vzde0qbtu2r8"); // n = (Agnode_t *) obj; +UNSUPPORTED("2gpi6t9bnp5hdft0cecv3iune"); // fprintf(stderr, "%s initialized with label %s\n", agnameof(n), +UNSUPPORTED("1p5eazfn0cyfxuxjea9lnir1w"); // agget(n, "label")); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 712rrmbvh64z403qurukiza4t +// static Agcbdisc_t mydisc = + + + + +//3 bvktrg27hkm4awzgaxie82v5n +// main(int argc, char **argv) +public static Object main(Object... arg) { +UNSUPPORTED("2vxu1fvoegqfch6u8yop5e3yd"); // main(int argc, char **argv) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9rw11eamkbc6vjzz8oon7h5or"); // Agraph_t *g, *prev; +UNSUPPORTED("ecwk3deuub77ow53wzobyi1um"); // int dostat; +UNSUPPORTED("ay3nlfl1osekrj2sqshobe5at"); // if (argc > 1) +UNSUPPORTED("ckyyp5xta8o4677c6fu181fx7"); // dostat = atoi(argv[1]); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("cl0t34fw12lib2l4xzfg1a37y"); // dostat = 0; +UNSUPPORTED("ct1ab9xijd5ig91peu6a6mt9k"); // prev = agopen("some_name", Agdirected, NIL(Agdisc_t *)); +UNSUPPORTED("e0xgjn1wccsmsi4ek4d7a2qei"); // agcallbacks(prev, FALSE); +UNSUPPORTED("7c3x2xl11ikgliugx67a51w0d"); // agpushdisc(prev, &mydisc, NIL(void *)); +UNSUPPORTED("bngzo05d6auu02ybcab17exp"); // while (g = agconcat(prev, stdin, NIL(Agdisc_t *))) { +UNSUPPORTED("69r6skguykum6b262jtd67j6e"); // /*do_it(g, dostat); */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c49oayps7r0q8498dhp8trru4"); // /*agwrite(prev,stdout); */ +UNSUPPORTED("a9cya29glvbdxdy722npvubi1"); // fprintf(stderr, "ready to go, computer fans\n"); +UNSUPPORTED("c2ap65hg9mbsyttiia9s186mf"); // agcallbacks(prev, TRUE); +UNSUPPORTED("b0t9qgq0y5pre95c9o03imotq"); // agclose(prev); +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bhswp7qq6w162hh6ho3csmea3 +// static void prstats(Agraph_t * g, int verbose) +public static Object prstats(Object... arg) { +UNSUPPORTED("5szlwllz47f72n6dum53fsuvt"); // static void prstats(Agraph_t * g, int verbose) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5aj3p757f0uumfpssnoqimpjp +// static void do_it(Agraph_t * g, int dostat) +public static Object do_it(Object... arg) { +UNSUPPORTED("cq0p9fgngzp1ynr7fuablhs5i"); // static void do_it(Agraph_t * g, int dostat) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9w53fmba5tercyxnm4fnbyshd"); // agwrite(g, stdout); +UNSUPPORTED("25junfxb4dqovzjqy48puogi1"); // if (dostat) +UNSUPPORTED("542sekyz7qr0nvvoorslw1nkq"); // prstats(g, dostat > 1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/mem__c.java plantuml-8039/src/gen/lib/cgraph/mem__c.java --- plantuml-8024/src/gen/lib/cgraph/mem__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/mem__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,317 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agdisc_s; +import h.Agraph_s; +import smetana.core.__ptr__; +import smetana.core.size_t; + +public class mem__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + + + +//3 akq0jgwdspf75ypeatgcnfn8w +// static void *memopen(Agdisc_t* disc) +public static Object memopen(Agdisc_s disc) { +ENTERING("akq0jgwdspf75ypeatgcnfn8w","memopen"); +try { + return null; +} finally { +LEAVING("akq0jgwdspf75ypeatgcnfn8w","memopen"); +} +} + + + + +//3 9mtjrx0vjzwuecjwpxylr9tag +// static void *memalloc(void *heap, size_t request) +public static __ptr__ memalloc(__ptr__ heap, size_t request) { +ENTERING("9mtjrx0vjzwuecjwpxylr9tag","memalloc"); +try { + __ptr__ rv; + rv = (__ptr__) request.malloc(); + return rv; +} finally { +LEAVING("9mtjrx0vjzwuecjwpxylr9tag","memalloc"); +} +} + + + + +//3 18v2hhjculhnb3b7fc4tx3yjw +// static void *memresize(void *heap, void *ptr, size_t oldsize, size_t request) +public static Object memresize(Object... arg) { +UNSUPPORTED("1s6udii0nias7f8g4vimpkefh"); // static void *memresize(void *heap, void *ptr, size_t oldsize, +UNSUPPORTED("8zs6530gai5ogf503wd0333qh"); // size_t request) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5ccnu5m92hidffpixzo964tna"); // void *rv; +UNSUPPORTED("74rq74mh7lnfr9i3qmwsbx2hd"); // (void) heap; +UNSUPPORTED("ebomd3babnm180zhyrfeg59wi"); // rv = realloc(ptr, request); +UNSUPPORTED("bzgpl0js1bzsovafg9g24v4ya"); // if (request > oldsize) +UNSUPPORTED("9cjvc6kya9bwic7bue6mcj8yf"); // memset((char *) rv + oldsize, 0, request - oldsize); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c320bstcg5nctel3onh2pserl +// static void memfree(void *heap, void *ptr) +public static Object memfree(Object... arg) { +UNSUPPORTED("5yxdf2sc5xnic9d5j24m0a7yf"); // static void memfree(void *heap, void *ptr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("74rq74mh7lnfr9i3qmwsbx2hd"); // (void) heap; +UNSUPPORTED("f0evk2zajcoprskea22bm18e8"); // free(ptr); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 1cni5q244gsprpvtjsq7gs17m +// Agmemdisc_t AgMemDisc = +/*public static final __struct__ AgMemDisc = __struct__.from(Agmemdisc_s.class); +static { + AgMemDisc.setPtr("open", function(mem__c.class, "memopen")); + AgMemDisc.setPtr("alloc", function(mem__c.class, "memalloc")); + AgMemDisc.setPtr("resize", function(mem__c.class, "memresize")); + AgMemDisc.setPtr("free", function(mem__c.class, "memfree")); + AgMemDisc.setPtr("close", null); +}*/ + + + +//3 7newv1hmzvt4vtttc9cxdxfpn +// void *agalloc(Agraph_t * g, size_t size) +public static __ptr__ agalloc(Agraph_s g, size_t size) { +ENTERING("7newv1hmzvt4vtttc9cxdxfpn","agalloc"); +try { + __ptr__ mem; + mem = (__ptr__) g.getPtr("clos").getStruct("disc").getPtr("mem").call("alloc", g.getPtr("clos").getStruct("state").getPtr("mem"), size); + if (mem == null) + System.err.println("memory allocation failure"); + return mem; +} finally { +LEAVING("7newv1hmzvt4vtttc9cxdxfpn","agalloc"); +} +} + + + + +//3 55lm0cse6lsgqblx6puxpjs3j +// void *agrealloc(Agraph_t * g, void *ptr, size_t oldsize, size_t size) +public static Object agrealloc(Object... arg) { +UNSUPPORTED("910gd4otiivsz2zpsiwlsy00v"); // void *agrealloc(Agraph_t * g, void *ptr, size_t oldsize, size_t size) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("11l1m9u5ne2xf2nff6278od59"); // void *mem; +UNSUPPORTED("b9ag6d7eml860kbycrkuz14b7"); // if (size > 0) { +UNSUPPORTED("zjrd9sttelcubi228vbizqq0"); // if (ptr == 0) +UNSUPPORTED("vr97hnk6c4k8muqake3c3c46"); // mem = agalloc(g, size); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("2n0yfzx569kr1oinsronhmsus"); // mem = +UNSUPPORTED("agphdu4vmb8hu0s57ry4i4axp"); // ((g)->clos->disc.mem)->resize(((g)->clos->state.mem), ptr, oldsize, size); +UNSUPPORTED("60qvwgrubred6pojjs425ctzr"); // if (mem == ((void *)0)) +UNSUPPORTED("9vomh5w83j5mf3src00h8g8g0"); // agerr(AGERR,"memory re-allocation failure"); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("6jbj3fx0j7m0vyvwn0za7bxle"); // mem = ((void *)0); +UNSUPPORTED("a5guhlttwqpai3dhdhdx6shnu"); // return mem; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5cy6dl95ayyuzq0m35179g1a1 +// void agfree(Agraph_t * g, void *ptr) +public static Object agfree(Object... arg) { +UNSUPPORTED("4i7lm2j8h5unocyz6c4isbh2f"); // void agfree(Agraph_t * g, void *ptr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("72fdcloikkmdo51qrcdovcy5v"); // if (ptr) +UNSUPPORTED("efvuftmcvfsswtq39k8vdrgmd"); // (((g)->clos->disc.mem)->free) (((g)->clos->state.mem), ptr); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/node__c.java plantuml-8039/src/gen/lib/cgraph/node__c.java --- plantuml-8024/src/gen/lib/cgraph/node__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/node__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,692 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static gen.lib.cdt.dtsize__c.dtsize_; +import static gen.lib.cgraph.attr__c.AgDataRecName; +import static gen.lib.cgraph.attr__c.agnodeattr_init; +import static gen.lib.cgraph.edge__c.agsubrep; +import static gen.lib.cgraph.graph__c.agnextseq; +import static gen.lib.cgraph.id__c.agmapnametoid; +import static gen.lib.cgraph.id__c.agregister; +import static gen.lib.cgraph.mem__c.agalloc; +import static gen.lib.cgraph.obj__c.agmethod_init; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.cgraph.rec__c.agbindrec; +import static gen.lib.cgraph.subg__c.agparent; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.LOG2; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGID; +import static smetana.core.Macro.AGNODE; +import static smetana.core.Macro.AGSEQ; +import static smetana.core.Macro.AGTYPE; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agattr_s; +import h.Agnode_s; +import h.Agraph_s; +import h.Agsubnode_s; +import h._dt_s; +import h._dtdisc_s; +import smetana.core.CString; +import smetana.core.Z; +import smetana.core.__ptr__; + +public class node__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + + + +//3 4w89du6uel405pm3vxsr3ayxt +// Agnode_t *agfindnode_by_id(Agraph_t * g, unsigned long id) +//private static __struct__ template = __struct__.from(Agsubnode_s.class); +//private static __struct__ dummy = __struct__.from(Agnode_s.class); +public static Agnode_s agfindnode_by_id(Agraph_s g, int id) { +ENTERING("4w89du6uel405pm3vxsr3ayxt","agfindnode_by_id"); +try { + Agsubnode_s sn; + Z._().dummy.getStruct("base").getStruct("tag").setInt("id", id); + Z._().template.setPtr("node", Z._().dummy.amp()); + sn = (Agsubnode_s) (g.getPtr("n_id").call("searchf", g.getPtr("n_id"), Z._().template.amp(),0000004)); + return (Agnode_s) (sn!=null ? sn.getPtr("node") : null); +} finally { +LEAVING("4w89du6uel405pm3vxsr3ayxt","agfindnode_by_id"); +} +} + + + + +//3 1ibow5tsw9y9hfbt65y10nw0r +// Agnode_t *agfindnode_by_name(Agraph_t * g, char *name) +public static Object agfindnode_by_name(Object... arg) { +UNSUPPORTED("jjckyz5rvj2kpvd0vw02o8yj"); // Agnode_t *agfindnode_by_name(Agraph_t * g, char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5v0qr6wzw47z083l6jupv94gw"); // unsigned long id; +UNSUPPORTED("7xzjyxv5eprg0vhj8q61h9d84"); // if (agmapnametoid(g, AGNODE, name, &id, (0))) +UNSUPPORTED("5rhbsviec1b9h1qedfo3hrgt0"); // return agfindnode_by_id(g, id); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("afujljwagn2n2w7aqkq94dyud"); // return ((Agnode_t*)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 55wopi2gd93zpmycxoywlxm0y +// Agnode_t *agfstnode(Agraph_t * g) +public static Agnode_s agfstnode(Agraph_s g) { +ENTERING("55wopi2gd93zpmycxoywlxm0y","agfstnode"); +try { + Agsubnode_s sn; + sn = (Agsubnode_s) g.getPtr("n_seq").castTo(_dt_s.class).call("searchf", g.getPtr("n_seq"),null,0000200); + return sn!=null ? (Agnode_s) sn.getPtr("node") : null; +} finally { +LEAVING("55wopi2gd93zpmycxoywlxm0y","agfstnode"); +} +} + + + + +//3 bek79ccvjys1j9q404i3y6oh8 +// Agnode_t *agnxtnode(Agraph_t * g, Agnode_t * n) +public static int NB = 0; +public static Agnode_s agnxtnode(Agraph_s g, Agnode_s n) { +ENTERING("bek79ccvjys1j9q404i3y6oh8","agnxtnode"); +try { + //ZOOTO + if (NB==0) { + //StructureDefinition.from(IMapEntry_t.class); + } + NB++; + LOG2("NB="+NB); + Agsubnode_s sn; + sn = agsubrep(g, n); + LOG2("sn1="+sn); + if (sn!=null) sn = (Agsubnode_s) g.getPtr("n_seq").castTo(_dt_s.class).call("searchf", g.getPtr("n_seq"),sn,0000010); + LOG2("sn2="+sn); + final __ptr__ result = sn!=null ? sn.getPtr("node") : null; + LOG2("result="+result); + return (Agnode_s) result; +} finally { +LEAVING("bek79ccvjys1j9q404i3y6oh8","agnxtnode"); +} +} + + + + +//3 17tu6ipvtgbjfrggkvyz3nasf +// Agnode_t *aglstnode(Agraph_t * g) +public static Object aglstnode(Object... arg) { +UNSUPPORTED("4lnse8d2e11zapjwbkulyywtz"); // Agnode_t *aglstnode(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2llbfi4jrmre7cyhu90pgcm72"); // Agsubnode_t *sn; +UNSUPPORTED("37449tqynatc8j0u8sohjqujf"); // sn = (Agsubnode_t *) (*(((Dt_t*)(g->n_seq))->searchf))((g->n_seq),(void*)(0),0000400); +UNSUPPORTED("b550764xq8bvu8hoqv0fe2noi"); // return sn ? sn->node : ((Agnode_t*)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3qloij26jbl7m0ftyb0ouesq4 +// Agnode_t *agprvnode(Agraph_t * g, Agnode_t * n) +public static Object agprvnode(Object... arg) { +UNSUPPORTED("8ichcmu1fmaap5w9hqfiohi13"); // Agnode_t *agprvnode(Agraph_t * g, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2llbfi4jrmre7cyhu90pgcm72"); // Agsubnode_t *sn; +UNSUPPORTED("b0wzl2qtz6anq1dhlxtmvwvgn"); // sn = agsubrep(g, n); +UNSUPPORTED("8efe1mjxltxjuin6v0msyzwfb"); // if (sn) sn = ((Agsubnode_t *) (*(((Dt_t*)(g->n_seq))->searchf))((g->n_seq),(void*)(sn),0000020)); +UNSUPPORTED("b550764xq8bvu8hoqv0fe2noi"); // return sn ? sn->node : ((Agnode_t*)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dzb7m0p5xsngvtyr8zs912og4 +// static Agnode_t *newnode(Agraph_t * g, unsigned long id, unsigned long seq) +public static Agnode_s newnode(Agraph_s g, int id, int seq) { +ENTERING("dzb7m0p5xsngvtyr8zs912og4","newnode"); +try { + Agnode_s n; + n = (Agnode_s) ((__ptr__)agalloc(g, sizeof(Agnode_s.class))).castTo(Agnode_s.class); + AGTYPE(n, AGNODE); + AGID(n, id); + AGSEQ(n, seq); + n.setPtr("root", agroot(g)); + if (agroot(g).getStruct("desc").getInt("has_attrs")!=0) + agbindrec(n, AgDataRecName, sizeof(Agattr_s.class), false); + /* nodeattr_init and method_init will be called later, from the + * subgraph where the node was actually created, but first it has + * to be installed in all the (sub)graphs up to root. */ + return n; +} finally { +LEAVING("dzb7m0p5xsngvtyr8zs912og4","newnode"); +} +} + + + + +//3 4m26dpgaiw44hcleugjy71eus +// static void installnode(Agraph_t * g, Agnode_t * n) +public static void installnode(Agraph_s g, Agnode_s n) { +ENTERING("4m26dpgaiw44hcleugjy71eus","installnode"); +try { + Agsubnode_s sn; + int osize; + osize = dtsize_((_dt_s)g.getPtr("n_id")); + if (EQ(g, agroot(g))) sn = (Agsubnode_s) n.getStruct("mainsub").amp().castTo(Agsubnode_s.class); + else sn = (Agsubnode_s) ((__ptr__)agalloc(g, sizeof(Agsubnode_s.class))).castTo(Agsubnode_s.class); + sn.setPtr("node", n); + g.getPtr("n_id").call("searchf", g.getPtr("n_id"),sn,0000001); + g.getPtr("n_seq").call("searchf", g.getPtr("n_seq"),sn,0000001); +} finally { +LEAVING("4m26dpgaiw44hcleugjy71eus","installnode"); +} +} + + + + +//3 3mfxjcaeepn8nitirs3yoqaed +// static void installnodetoroot(Agraph_t * g, Agnode_t * n) +public static void installnodetoroot(Agraph_s g, Agnode_s n) { +ENTERING("3mfxjcaeepn8nitirs3yoqaed","installnodetoroot"); +try { + Agraph_s par; + installnode(g, n); + if ((par = agparent(g))!=null) + installnodetoroot(par, n); +} finally { +LEAVING("3mfxjcaeepn8nitirs3yoqaed","installnodetoroot"); +} +} + + + + +//3 85bb9mezhsgtzar3kqz95mq1 +// static void initnode(Agraph_t * g, Agnode_t * n) +public static void initnode(Agraph_s g, Agnode_s n) { +ENTERING("85bb9mezhsgtzar3kqz95mq1","initnode"); +try { + if (agroot(g).getStruct("desc").getInt("has_attrs")!=0) + agnodeattr_init(g,n); + agmethod_init(g, n); +} finally { +LEAVING("85bb9mezhsgtzar3kqz95mq1","initnode"); +} +} + + + + +//3 1m6sl9df2yaolmufyq5i577a3 +// Agnode_t *agidnode(Agraph_t * g, unsigned long id, int cflag) +public static Agnode_s agidnode(Agraph_s g, int id, int cflag) { +ENTERING("1m6sl9df2yaolmufyq5i577a3","agidnode"); +try { + Agraph_s root; + Agnode_s n; + n = agfindnode_by_id(g, id); + if ((n == null) && cflag!=0) { +UNSUPPORTED("7zol2448bccu90sqoxkvnbuif"); // root = agroot(g); +UNSUPPORTED("1zcb29h7sxm7axw8qeuz9f38w"); // if ((g != root) && ((n = agfindnode_by_id(root, id)))) /*old */ +UNSUPPORTED("9fusma9293koujpr79eyfhxn6"); // agsubnode(g, n, (!(0))); /* insert locally */ +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("5pefvv55zys4ya7lgh0v8595s"); // if (agallocid(g, AGNODE, id)) { /* new */ +UNSUPPORTED("dfn6cx0kwd44mv0ntbzf3p463"); // n = newnode(g, id, agnextseq(g, AGNODE)); +UNSUPPORTED("6qcjp92a88ggl3ea7mxel9cn"); // installnodetoroot(g, n); +UNSUPPORTED("45uf6o7ubd9hy5s65g0f0bbgj"); // initnode(g, n); +UNSUPPORTED("afk9bpom7x393euamnvwwkx6b"); // } else +UNSUPPORTED("5l8briolxhuic5avv0112aj90"); // n = ((Agnode_t*)0); /* allocid for new node failed */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } + /* else return probe result */ + return n; +} finally { +LEAVING("1m6sl9df2yaolmufyq5i577a3","agidnode"); +} +} + + + + +//3 4yh1h1cwoitzb1t8869b79e3g +// Agnode_t *agnode(Agraph_t * g, char *name, int cflag) +public static Agnode_s agnode(Agraph_s g, CString name, boolean cflag) { +ENTERING("4yh1h1cwoitzb1t8869b79e3g","agnode"); +try { + Agraph_s root; + Agnode_s n; + int id[] = new int[1]; + root = agroot(g); + /* probe for existing node */ + if (agmapnametoid(g, AGNODE, name, id, false)!=0) { + if ((n = agfindnode_by_id(g, id[0]))!=null) + return n; + /* might already exist globally, but need to insert locally */ + if (cflag && NEQ(g, root) && ((n = agfindnode_by_id(root, id[0])))!=null) { + return agsubnode(g, n, (N(0))); + } + } + if (cflag && agmapnametoid(g, AGNODE, name, id, (N(0)))!=0) { /* reserve id */ + n = newnode(g, id[0], agnextseq(g, AGNODE)); + installnodetoroot(g, n); + initnode(g, n); + + agregister(g, AGNODE, n); /* register in external namespace */ + return n; + } + return null; +} finally { +LEAVING("4yh1h1cwoitzb1t8869b79e3g","agnode"); +} +} + + + + +//3 acahmq5kvzn3o31mluqgw7q9p +// void agdelnodeimage(Agraph_t * g, Agnode_t * n, void *ignored) +public static Object agdelnodeimage(Object... arg) { +UNSUPPORTED("elm2o1y1nn2deregqtwfd0fm"); // void agdelnodeimage(Agraph_t * g, Agnode_t * n, void *ignored) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("109gqpvjmuv5lwcih97x4uwqa"); // Agedge_t *e, *f; +UNSUPPORTED("2v9cpnwjfya0wz9qq2q8rqx02"); // static Agsubnode_t template; +UNSUPPORTED("8cy87pxkco1cies0ck9zpn66"); // template.node = n; +UNSUPPORTED("4pgl4pn1cad2whf242bntmjre"); // (void) ignored; +UNSUPPORTED("8dskgcobu9u3m4ejmwjq00r5m"); // for (e = agfstedge(g, n); e; e = f) { +UNSUPPORTED("8tmx79zo3pcrz4238v132mjqg"); // f = agnxtedge(g, e, n); +UNSUPPORTED("ezikicsrlgi4g2anmg80iyxy5"); // agdeledgeimage(g, e, 0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5x2emh00yohuaush1f65cqnx3"); // /* If the following lines are switched, switch the discpline using +UNSUPPORTED("35l6nf11aakz6sn2g7wfh60xr"); // * free_subnode below. +UNSUPPORTED("5xkmfp82pyue09k1egerh5ezz"); // */ +UNSUPPORTED("a3umom4df7zkjo9g37dn0xnnl"); // (*(((Dt_t*)(g->n_id))->searchf))((g->n_id),(void*)(&template),0000002); +UNSUPPORTED("enu2k7akluqzw4eos6263usdr"); // (*(((Dt_t*)(g->n_seq))->searchf))((g->n_seq),(void*)(&template),0000002); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d7hac3hpizqk8mmx6oxiv6d3q +// int agdelnode(Agraph_t * g, Agnode_t * n) +public static Object agdelnode(Object... arg) { +UNSUPPORTED("5vrhjcls5tltlk3dn4ssxzusq"); // int agdelnode(Agraph_t * g, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("109gqpvjmuv5lwcih97x4uwqa"); // Agedge_t *e, *f; +UNSUPPORTED("3ly27irmwairjdexym3up87uk"); // if (!agfindnode_by_id(g, AGID(n))) +UNSUPPORTED("a1gf07w8a7uwaryezfqx6en21"); // return -1; /* bad arg */ +UNSUPPORTED("ackx3cor82a94trjk4owh3083"); // if (g == agroot(g)) { +UNSUPPORTED("7n4rwpvryjg5anpy2d43bthxh"); // for (e = agfstedge(g, n); e; e = f) { +UNSUPPORTED("98oagw83x0w96uuzccetdi9ws"); // f = agnxtedge(g, e, n); +UNSUPPORTED("7m6mvhicrmgkuyrwkvblruld0"); // agdeledge(g, e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5247bml3o0pwzg9fc9q1xhhnc"); // if (g->desc.has_attrs) +UNSUPPORTED("d4mqrcccn3toqvhii6rjrrwwu"); // agnodeattr_delete(n); +UNSUPPORTED("7zcf3kp28b1wgy3i2on67h98u"); // agmethod_delete(g, n); +UNSUPPORTED("eqkdptzmrk2vxj9fe3y4eb24l"); // agrecclose((Agobj_t *) n); +UNSUPPORTED("d6jhz9spbq2ywt2efhyikkcdi"); // agfreeid(g, AGNODE, AGID(n)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("86yxjnabv1fuv7zhtuhgex4gx"); // if (agapply (g, (Agobj_t *) n, (agobjfn_t) agdelnodeimage, ((Agnode_t*)0), (0)) == 0) { +UNSUPPORTED("6tlwlx478gb1clm2fykihi2zk"); // if (g == agroot(g)) +UNSUPPORTED("d4sehv0200tcylmbpt9pqc7h1"); // agfree(g, n); +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dytehp1u14cb4j9zsmlesojkq +// static void dict_relabel(Agnode_t * n, void *arg) +public static Object dict_relabel(Object... arg) { +UNSUPPORTED("44mem1e9kck28s208xgn5g04k"); // static void dict_relabel(Agnode_t * n, void *arg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("8hr8p3jy96bfcwujkauwdvd92"); // unsigned long new_id; +UNSUPPORTED("38tgkes5dhr4oloxpg73baq10"); // g = agraphof(n); +UNSUPPORTED("5jv37sfftjuyu9m95lz2avmjk"); // new_id = *(unsigned long *) arg; +UNSUPPORTED("90u0hwihh4q8uosu25ewbzhox"); // (*(((Dt_t*)(g->n_id))->searchf))((g->n_id),(void*)(n),0000002); /* wrong, should be subrep */ +UNSUPPORTED("9d38am0gg0kj6jhq5tri5ac34"); // AGID(n) = new_id; +UNSUPPORTED("3qkq6d6yv4tvsurangttsbn0z"); // (*(((Dt_t*)(g->n_id))->searchf))((g->n_id),(void*)(n),0000001); /* also wrong */ +UNSUPPORTED("dwcdffxfxvt11kvrq2e8l9dg9"); // /* because all the subgraphs share the same node now, this +UNSUPPORTED("8sf7kiafqj2eexpzvr30nmsle"); // now requires a separate deletion and insertion phase */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a29io0pb5tx5bwevwjtr1hg1r +// int agrelabel_node(Agnode_t * n, char *newname) +public static Object agrelabel_node(Object... arg) { +UNSUPPORTED("838qr3zz1vpfb75cfio36192j"); // int agrelabel_node(Agnode_t * n, char *newname) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("8hr8p3jy96bfcwujkauwdvd92"); // unsigned long new_id; +UNSUPPORTED("5c0nzsud433f31yaxkbl4z4gs"); // g = agroot(agraphof(n)); +UNSUPPORTED("1vy801jhp4mbvo2tujvg565wz"); // if (agfindnode_by_name(g, newname)) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("3swbd27n6ds70cn294m0ef8f5"); // if (agmapnametoid(g, AGNODE, newname, &new_id, (!(0)))) { +UNSUPPORTED("5xgainykf6klfsmk4014aw0e2"); // if (agfindnode_by_id(agroot(g), new_id) == ((Agnode_t*)0)) { +UNSUPPORTED("5rjwy8imxqiwj9ia955vyoh9l"); // agfreeid(g, AGNODE, AGID(n)); +UNSUPPORTED("asbts6liah2fjm74ps7do0e1m"); // agapply(g, (Agobj_t *) n, (agobjfn_t) dict_relabel, +UNSUPPORTED("9trirys0q5ojk3sb1jgw8tmdf"); // (void *) &new_id, (0)); +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("7w7v3j2z1voanzyg3oghk1o2t"); // agfreeid(g, AGNODE, new_id); /* couldn't use it after all */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("eaoz5g3p9152utcqjz5d2fgdf"); // /* obj* is unchanged, so no need to re agregister() */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8azkpi8o0wzdufa90lw8hpt6q"); // return -1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d5farp22buvesyi4pydjam4g2 +// Agnode_t *agsubnode(Agraph_t * g, Agnode_t * n0, int cflag) +public static Agnode_s agsubnode(Agraph_s g, Agnode_s n0, boolean cflag) { +ENTERING("d5farp22buvesyi4pydjam4g2","agsubnode"); +try { + Agraph_s par; + Agnode_s n; + if (NEQ(agroot(g), n0.getPtr("root"))) + return null; + n = agfindnode_by_id(g, AGID(n0)); + if ((n == null) && cflag) { + if ((par = agparent(g))!=null) { + n = agsubnode(par, n0, cflag); + installnode(g, n); + /* no callback for existing node insertion in subgraph (?) */ + } + /* else impossible that doesn't belong to */ + } + /* else lookup succeeded */ + return n; +} finally { +LEAVING("d5farp22buvesyi4pydjam4g2","agsubnode"); +} +} + + + + +//3 awwiazixy9c76hvyxlkvvb3vo +// int agsubnodeidcmpf(Dict_t * d, void *arg0, void *arg1, Dtdisc_t * disc) +public static int agsubnodeidcmpf(_dt_s d, __ptr__ arg0, __ptr__ arg1, _dtdisc_s disc) { +ENTERING("awwiazixy9c76hvyxlkvvb3vo","agsubnodeidcmpf"); +try { + int v; + Agsubnode_s sn0, sn1; + sn0 = (Agsubnode_s) arg0.castTo(Agsubnode_s.class); + sn1 = (Agsubnode_s) arg1.castTo(Agsubnode_s.class); + v = (AGID(sn0.getPtr("node")) - AGID(sn1.getPtr("node"))); + return ((v==0)?0:(v<0?-1:1)); +} finally { +LEAVING("awwiazixy9c76hvyxlkvvb3vo","agsubnodeidcmpf"); +} +} + + + + +//3 41fjseux0nxzpr0aq7igym9ux +// int agsubnodeseqcmpf(Dict_t * d, void *arg0, void *arg1, Dtdisc_t * disc) +public static int agsubnodeseqcmpf(_dt_s d, __ptr__ arg0, __ptr__ arg1, _dtdisc_s disc) { +ENTERING("41fjseux0nxzpr0aq7igym9ux","agsubnodeseqcmpf"); +try { + Agsubnode_s sn0, sn1; + int v; + sn0 = (Agsubnode_s) arg0.castTo(Agsubnode_s.class); + sn1 = (Agsubnode_s) arg1.castTo(Agsubnode_s.class); + v = (AGSEQ(sn0.getPtr("node")) - AGSEQ(sn1.getPtr("node"))); + return ((v==0)?0:(v<0?-1:1)); +} finally { +LEAVING("41fjseux0nxzpr0aq7igym9ux","agsubnodeseqcmpf"); +} +} + + + + +//3 a7tb3b1kvq6ykrxzhbaduvg9r +// static void free_subnode (Dt_t* d, Agsubnode_t* sn, Dtdisc_t * disc) +public static Object free_subnode(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("9e4h6d4hxsvsnaiuubzlmccsm"); // free_subnode (Dt_t* d, Agsubnode_t* sn, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eiac02o593gy0a55vv1w8mkmi"); // if (!AGSNMAIN(sn)) +UNSUPPORTED("263bmzd9ilyyeb9w34squ7iw8"); // agfree (sn->node->root, sn); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 us7d1n3fefkf0qyr6thv1sai +// Dtdisc_t Ag_subnode_id_disc = +/*public static final __struct__<_dtdisc_s> Ag_subnode_id_disc = __struct__.from(_dtdisc_s.class); +static { + Ag_subnode_id_disc.setInt("key", 0); + Ag_subnode_id_disc.setInt("size", 0); + Ag_subnode_id_disc.setInt("link", OFFSET.create(Agsubnode_s.class, "id_link").toInt()); // id_link is the second field in Agsubnode_t + Ag_subnode_id_disc.setPtr("makef", null); + Ag_subnode_id_disc.setPtr("freef", null); + Ag_subnode_id_disc.setPtr("comparf", function(node__c.class, "agsubnodeidcmpf")); + Ag_subnode_id_disc.setPtr("hashf", null); + Ag_subnode_id_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_subnode_id_disc.setPtr("eventf", null); +}*/ + +//1 3gqjvodjfsv6wz1tk75zy19p9 +// Dtdisc_t Ag_subnode_seq_disc = +/*public static final __struct__<_dtdisc_s> Ag_subnode_seq_disc = __struct__.from(_dtdisc_s.class); +static { + Ag_subnode_seq_disc.setInt("key", 0); + Ag_subnode_seq_disc.setInt("size", 0); + Ag_subnode_seq_disc.setInt("link", OFFSET.create(Agsubnode_s.class, "seq_link").toInt()); // link is the first field in Agsubnode_t + Ag_subnode_seq_disc.setPtr("makef", null); + Ag_subnode_seq_disc.setPtr("freef", function(node__c.class, "free_subnode")); + Ag_subnode_seq_disc.setPtr("comparf", function(node__c.class, "agsubnodeseqcmpf")); + Ag_subnode_seq_disc.setPtr("hashf", null); + Ag_subnode_seq_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_subnode_seq_disc.setPtr("eventf", null); +}*/ + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/obj__c.java plantuml-8039/src/gen/lib/cgraph/obj__c.java --- plantuml-8024/src/gen/lib/cgraph/obj__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/obj__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,577 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static gen.lib.cgraph.edge__c.agsubedge; +import static gen.lib.cgraph.node__c.agidnode; +import static gen.lib.cgraph.pend__c.agrecord_callback; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGID; +import static smetana.core.Macro.AGINEDGE; +import static smetana.core.Macro.AGNODE; +import static smetana.core.Macro.AGOUTEDGE; +import static smetana.core.Macro.AGRAPH; +import static smetana.core.Macro.AGTYPE; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agcbstack_s; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.Agsym_s; +import h.agobjfn_t; +import h.agobjupdfn_t; +import smetana.core.__ptr__; + +public class obj__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + + + +//3 6wm1l0y857iajfoa6ywpotkld +// int agdelete(Agraph_t * g, void *obj) +public static Object agdelete(Object... arg) { +UNSUPPORTED("26js2ch8px4mwz3gqvjehanq1"); // int agdelete(Agraph_t * g, void *obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9w2ooy12wluvhcufehln1sob3"); // if ((AGTYPE((Agobj_t *) obj) == AGRAPH) && (g != agparent(obj))) { +UNSUPPORTED("8iap36ny5lwbj2qog193slebp"); // agerr(AGERR, "agdelete on wrong graph"); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bldax4f6o5yyujcnonbszc0kv"); // switch (AGTYPE((Agobj_t *) obj)) { +UNSUPPORTED("6x7ztvlgv763oeop84udp1egg"); // case AGNODE: +UNSUPPORTED("4fefei0lku9f461nifc1j9d6j"); // return agdelnode(g, obj); +UNSUPPORTED("c9o8hr6x8n5dty1y3eej1fept"); // case AGINEDGE: +UNSUPPORTED("a6ls4lkgjoheqwo2e7yqt9zz8"); // case AGOUTEDGE: +UNSUPPORTED("5g9ficurorxyixy3ipj7d410l"); // return agdeledge(g, obj); +UNSUPPORTED("eyna33dobiebmtd0nihpgura4"); // case AGRAPH: +UNSUPPORTED("bbhf83j2cbqobo0q3vhbqmjnt"); // return agclose(obj); +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("23wxcrpaiuw9ahrx92r6h8z42"); // agerr(AGERR, "agdelete on bad object"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6z6pjcdqmwle9axtu8m7zzsbc"); // return 0; /* not reached */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 beny4i1ucvryk03o1m3x4mo1o +// int agrename(Agobj_t * obj, char *newname) +public static Object agrename(Object... arg) { +UNSUPPORTED("7b62oxoln2q7p4wdewli878zt"); // int agrename(Agobj_t * obj, char *newname) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("cjioztm3ayr9deoc1btg630su"); // unsigned long old_id, new_id; +UNSUPPORTED("3kwdmn4ezymvab9oercol2gfj"); // switch (AGTYPE(obj)) { +UNSUPPORTED("eyna33dobiebmtd0nihpgura4"); // case AGRAPH: +UNSUPPORTED("6bhsf6u3syvq4i1b3afpo0tcl"); // old_id = AGID(obj); +UNSUPPORTED("46q8c52lbrpze2lfwf32dvmxs"); // g = agraphof(obj); +UNSUPPORTED("erenne373dge3axb6rjm1fe2n"); // /* can we reserve the id corresponding to newname? */ +UNSUPPORTED("daa8h6fs7x6psvrayyh4ajdxx"); // if (agmapnametoid(agroot(g), AGTYPE(obj), newname, +UNSUPPORTED("6eajcdkt2sqkuzinzzpg892gl"); // &new_id, (0)) == 0) +UNSUPPORTED("aivfd7ajlfz8o8oi68d4u5s5z"); // return -1; +UNSUPPORTED("d0w95irsvkkzxory1vu3oibja"); // if (new_id == old_id) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("daa8h6fs7x6psvrayyh4ajdxx"); // if (agmapnametoid(agroot(g), AGTYPE(obj), newname, +UNSUPPORTED("4nvglmcaimqliy54ir51j81yx"); // &new_id, (!(0))) == 0) +UNSUPPORTED("aivfd7ajlfz8o8oi68d4u5s5z"); // return -1; +UNSUPPORTED("eaoz5g3p9152utcqjz5d2fgdf"); // /* obj* is unchanged, so no need to re agregister() */ +UNSUPPORTED("6vyma7idxllhf3a3xbklkk7kv"); // if (agparent(g) && agidsubg(agparent(g), new_id, 0)) +UNSUPPORTED("aivfd7ajlfz8o8oi68d4u5s5z"); // return -1; +UNSUPPORTED("192p8yjash0gcaukx3zukgl4h"); // agfreeid(g, AGRAPH, old_id); +UNSUPPORTED("beefe1mg4aug53iqxfnua8enw"); // AGID(g) = new_id; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6x7ztvlgv763oeop84udp1egg"); // case AGNODE: +UNSUPPORTED("73cww6u88cevoi6i0y8rfti15"); // return agrelabel_node((Agnode_t *) obj, newname); +UNSUPPORTED("bh5gwywn5664iko5vqzvd45x4"); // agrename(obj, newname); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("c9o8hr6x8n5dty1y3eej1fept"); // case AGINEDGE: +UNSUPPORTED("a6ls4lkgjoheqwo2e7yqt9zz8"); // case AGOUTEDGE: +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c4ft3rxx9au29a2ns2nhod4dn +// void agmethod_init(Agraph_t * g, void *obj) +public static void agmethod_init(Agraph_s g, __ptr__ obj) { +ENTERING("c4ft3rxx9au29a2ns2nhod4dn","agmethod_init"); +try { + if (g.getPtr("clos").getBoolean("callbacks_enabled")) + aginitcb(g, obj, (Agcbstack_s) g.getPtr("clos").getPtr("cb")); + else + agrecord_callback(g, obj, 100, null); +} finally { +LEAVING("c4ft3rxx9au29a2ns2nhod4dn","agmethod_init"); +} +} + + + + +//3 eobcsheti70b9gzoi3z968zev +// void aginitcb(Agraph_t * g, void *obj, Agcbstack_t * cbstack) +public static void aginitcb(Agraph_s g, __ptr__ obj, Agcbstack_s cbstack) { +ENTERING("eobcsheti70b9gzoi3z968zev","aginitcb"); +try { + agobjfn_t fn; + if (cbstack == null) + return; +UNSUPPORTED("cv6tr3wc0y2e3s7hrj040fbgz"); // aginitcb(g, obj, cbstack->prev); +UNSUPPORTED("ugu810574xlbrchajuiqvlbj"); // fn = ((agobjfn_t)0); +UNSUPPORTED("afk5q8b9fd4sednpczh6r1eg9"); // switch (((((Agobj_t*)(obj))->tag).objtype)) { +UNSUPPORTED("70xjc0sbkjvexfar5luzibcgf"); // case 0: +UNSUPPORTED("33rj0o79bxra63omicn33shh1"); // fn = cbstack->f->graph.ins; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("d0gk15gzj4wz8nv54zbr285hm"); // case 1: +UNSUPPORTED("43opp5hvwaad6urofp737fx95"); // fn = cbstack->f->node.ins; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4u5xz2u3urj13y0aw30fdyup5"); // case 2: +UNSUPPORTED("7k5xv2n0vdcq7e1h7c511n2vt"); // fn = cbstack->f->edge.ins; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b9a2u7luojz68ys0qfhdssxc5"); // if (fn) +UNSUPPORTED("d6swsvu9o2h2ajgawq3fidg54"); // fn(g, obj, cbstack->state); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("eobcsheti70b9gzoi3z968zev","aginitcb"); +} +} + + + + +//3 29p743rx2pw81slkoaayfeael +// void agmethod_upd(Agraph_t * g, void *obj, Agsym_t * sym) +public static void agmethod_upd(Agraph_s g, __ptr__ obj, Agsym_s sym) { +ENTERING("29p743rx2pw81slkoaayfeael","agmethod_upd"); +try { + if (g.getPtr("clos").getBoolean("callbacks_enabled")) + agupdcb(g, obj, sym, (Agcbstack_s) g.getPtr("clos").getPtr("cb")); + else + agrecord_callback(g, obj, 101, sym); +} finally { +LEAVING("29p743rx2pw81slkoaayfeael","agmethod_upd"); +} +} + + + + +//3 8t9rkcpdvmxph6krjvfmz3s51 +// void agupdcb(Agraph_t * g, void *obj, Agsym_t * sym, Agcbstack_t * cbstack) +public static void agupdcb(Agraph_s g, __ptr__ obj, Agsym_s sym, Agcbstack_s cbstack) { +ENTERING("8t9rkcpdvmxph6krjvfmz3s51","agupdcb"); +try { + agobjupdfn_t fn; + if (cbstack == null) + return; +UNSUPPORTED("7xps60r7235mbe5tshsk48gqu"); // agupdcb(g, obj, sym, cbstack->prev); +UNSUPPORTED("coxarw2y9j5pc184wun1hzqh4"); // fn = ((agobjupdfn_t)0); +UNSUPPORTED("afk5q8b9fd4sednpczh6r1eg9"); // switch (((((Agobj_t*)(obj))->tag).objtype)) { +UNSUPPORTED("70xjc0sbkjvexfar5luzibcgf"); // case 0: +UNSUPPORTED("edztg04z181ml2fb23vg86p4"); // fn = cbstack->f->graph.mod; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("d0gk15gzj4wz8nv54zbr285hm"); // case 1: +UNSUPPORTED("dt0aez1qarpjppkqak7liv45r"); // fn = cbstack->f->node.mod; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4u5xz2u3urj13y0aw30fdyup5"); // case 2: +UNSUPPORTED("dw5h49n9x5t8rmlgpk6lvanem"); // fn = cbstack->f->edge.mod; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b9a2u7luojz68ys0qfhdssxc5"); // if (fn) +UNSUPPORTED("ecckhw6badvki2tacvj1ch4bu"); // fn(g, obj, cbstack->state, sym); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("8t9rkcpdvmxph6krjvfmz3s51","agupdcb"); +} +} + + + + +//3 ejz0zke1kl32wjhs6y52llib0 +// void agmethod_delete(Agraph_t * g, void *obj) +public static Object agmethod_delete(Object... arg) { +UNSUPPORTED("6y7r2ytsjwcyj4if496cwdjjp"); // void agmethod_delete(Agraph_t * g, void *obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4rvy8xnzxoccnwfcit2isk96h"); // if (g->clos->callbacks_enabled) +UNSUPPORTED("ado8gbbdmkf8owwnknnthuzq0"); // agdelcb(g, obj, g->clos->cb); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("do5egp79i4bb6mod85t9nr77i"); // agrecord_callback(g, obj, 102, ((Agsym_t*)0)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 78ludy47c4yx2luf78lkk42z8 +// void agdelcb(Agraph_t * g, void *obj, Agcbstack_t * cbstack) +public static Object agdelcb(Object... arg) { +UNSUPPORTED("1r4i928dlzzl0gpzpersr9rt7"); // void agdelcb(Agraph_t * g, void *obj, Agcbstack_t * cbstack) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f58pg7odheiwpqukdszo4ojxe"); // agobjfn_t fn; +UNSUPPORTED("evtudqllt7mv38ny577gwtz4q"); // if (cbstack == ((Agcbstack_t *)0)) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("49guj1vkw5luz54hl17unr7cg"); // agdelcb(g, obj, cbstack->prev); +UNSUPPORTED("ugu810574xlbrchajuiqvlbj"); // fn = ((agobjfn_t)0); +UNSUPPORTED("3kwdmn4ezymvab9oercol2gfj"); // switch (AGTYPE(obj)) { +UNSUPPORTED("eyna33dobiebmtd0nihpgura4"); // case AGRAPH: +UNSUPPORTED("dmw30r6pv5ptb6ffpgbo1hom8"); // fn = cbstack->f->graph.del; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6x7ztvlgv763oeop84udp1egg"); // case AGNODE: +UNSUPPORTED("c7rd727688cteu7m0deevr0c1"); // fn = cbstack->f->node.del; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("2dqikmmb6ag0anvbzo5tybf1r"); // case AGEDGE: +UNSUPPORTED("ht500g7ljjhniqaq4c7hp6zm"); // fn = cbstack->f->edge.del; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b9a2u7luojz68ys0qfhdssxc5"); // if (fn) +UNSUPPORTED("d6swsvu9o2h2ajgawq3fidg54"); // fn(g, obj, cbstack->state); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 53858x47ifwq7ldf9ukvpdc5r +// Agraph_t *agroot(void* obj) +public static Agraph_s agroot(__ptr__ obj) { +ENTERING("53858x47ifwq7ldf9ukvpdc5r","agroot"); +try { + switch (AGTYPE(obj)) { + case AGINEDGE: + case AGOUTEDGE: + return (Agraph_s) obj.castTo(Agedge_s.class).getPtr("node").getPtr("root"); + case AGNODE: + return (Agraph_s) obj.castTo(Agnode_s.class).getPtr("root"); + case AGRAPH: + return (Agraph_s) obj.castTo(Agraph_s.class).getPtr("root"); + default: /* actually can't occur if only 2 bit tags */ + System.err.println("agroot of a bad object"); + return null; + } +} finally { +LEAVING("53858x47ifwq7ldf9ukvpdc5r","agroot"); +} +} + + + + +//3 brxx6qho8cw09dg7o27lc7c6z +// Agraph_t *agraphof(void *obj) +public static Agraph_s agraphof(__ptr__ obj) { +ENTERING("brxx6qho8cw09dg7o27lc7c6z","agraphof"); +try { + switch (AGTYPE(obj)) { + case AGINEDGE: + case AGOUTEDGE: + return (Agraph_s) obj.castTo(Agedge_s.class).getPtr("node").getPtr("root").castTo(Agraph_s.class); + case AGNODE: + return (Agraph_s) obj.castTo(Agnode_s.class).getPtr("root").castTo(Agraph_s.class); + case AGRAPH: + return (Agraph_s) obj.castTo(Agraph_s.class); + default: /* actually can't occur if only 2 bit tags */ + System.err.println("agraphof a bad object"); + return null; + } +} finally { +LEAVING("brxx6qho8cw09dg7o27lc7c6z","agraphof"); +} +} + + + + +//3 69nqqbr1rod9mgh62okni1oad +// void agpushdisc(Agraph_t * g, Agcbdisc_t * cbd, void *state) +public static Object agpushdisc(Object... arg) { +UNSUPPORTED("cjczq9f29j6pc2upzc84528li"); // void agpushdisc(Agraph_t * g, Agcbdisc_t * cbd, void *state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1zz0va4dgarmwtr54f41ny6ep"); // Agcbstack_t *stack_ent; +UNSUPPORTED("e78wtj8j0f1j2pj8qkxr6rmah"); // stack_ent = ((Agcbstack_t*)(agalloc(g,sizeof(Agcbstack_t)))); +UNSUPPORTED("l45frjjz3xaewezkndogwwdl"); // stack_ent->f = cbd; +UNSUPPORTED("a7fydebz14wgtgsdgcbk47xbh"); // stack_ent->state = state; +UNSUPPORTED("3m8erap924ma44o2eehvy06g9"); // stack_ent->prev = g->clos->cb; +UNSUPPORTED("5y8aaijkgasby7ijmcat25ch7"); // g->clos->cb = stack_ent; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2v86foeia3dqpw9r50vioh1g1 +// int agpopdisc(Agraph_t * g, Agcbdisc_t * cbd) +public static Object agpopdisc(Object... arg) { +UNSUPPORTED("779wduvcdcw9g5ldu82jdwlr0"); // int agpopdisc(Agraph_t * g, Agcbdisc_t * cbd) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1zz0va4dgarmwtr54f41ny6ep"); // Agcbstack_t *stack_ent; +UNSUPPORTED("3ytu4cno18uw06z7dh1w52rxb"); // stack_ent = g->clos->cb; +UNSUPPORTED("811oimiu4ldzfuv78w6eictam"); // if (stack_ent) { +UNSUPPORTED("csgw4fukha77kldy7blppfigk"); // if (stack_ent->f == cbd) +UNSUPPORTED("9ijeaaarq6dcl8wjmum8mpkdl"); // g->clos->cb = stack_ent->prev; +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("36abb5zemj483qnasuoyx3cm8"); // while (stack_ent && (stack_ent->prev->f != cbd)) +UNSUPPORTED("d88q78r1snlry24g7fv6r1s6l"); // stack_ent = stack_ent->prev; +UNSUPPORTED("2fiyg59a40jxjgiy8ukb4pl8q"); // if (stack_ent && stack_ent->prev) +UNSUPPORTED("eyr2q7dj98xk08fwf7mna4oab"); // stack_ent->prev = stack_ent->prev->prev; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("b04xm15d95y51ybg4xjc6ldgb"); // if (stack_ent) { +UNSUPPORTED("8fbzjhtu9d5u96240285dcdh5"); // agfree(g, stack_ent); +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8azkpi8o0wzdufa90lw8hpt6q"); // return -1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a6xpy2adrht1nhb4hi85ex02s +// void *aggetuserptr(Agraph_t * g, Agcbdisc_t * cbd) +public static Object aggetuserptr(Object... arg) { +UNSUPPORTED("73eofxl7fdezesezfrckc4bgx"); // void *aggetuserptr(Agraph_t * g, Agcbdisc_t * cbd) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1zz0va4dgarmwtr54f41ny6ep"); // Agcbstack_t *stack_ent; +UNSUPPORTED("2yjmkfk0h1wnw98ga8d0tz93x"); // for (stack_ent = g->clos->cb; stack_ent; stack_ent = stack_ent->prev) +UNSUPPORTED("csgw4fukha77kldy7blppfigk"); // if (stack_ent->f == cbd) +UNSUPPORTED("6cih8jl2vq8k0dbeiwp44mpgs"); // return stack_ent->state; +UNSUPPORTED("3fyiqswglr6w96ojb2huillz0"); // return ((void *)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 91ej8cxcc0kzgkg2yk3pdiifs +// int agcontains(Agraph_t* g, void* obj) +public static boolean agcontains(Agraph_s g, __ptr__ obj) { +ENTERING("91ej8cxcc0kzgkg2yk3pdiifs","agcontains"); +try { + Agraph_s subg; + if (NEQ(agroot(g), agroot(obj))) return false; + switch (AGTYPE(obj)) { + case AGRAPH: +UNSUPPORTED("5fyr1r26q15uog4pl9eo2iohc"); // subg = (Agraph_t *) obj; +UNSUPPORTED("8vxyvy38lzpbd83cu26nejaan"); // do { +UNSUPPORTED("dqlpdwxfm3o0e4atzaam04f9m"); // if (subg == g) return 1; +UNSUPPORTED("4oqg7vqjjx3n3761fp7f2xld9"); // } while ((subg = agparent (subg))); +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; + case AGNODE: + return (agidnode(g, AGID(obj), 0) != null); + default: + return (agsubedge(g, (Agedge_s) obj, false) != null); + } +} finally { +LEAVING("91ej8cxcc0kzgkg2yk3pdiifs","agcontains"); +} +} + + + + +//3 bbe1e9wqmcr8dz9pswpxff0fr +// int agobjkind(void *arg) +public static int agobjkind(__ptr__ arg) { +ENTERING("bbe1e9wqmcr8dz9pswpxff0fr","agobjkind"); +try { + return AGTYPE(arg); +} finally { +LEAVING("bbe1e9wqmcr8dz9pswpxff0fr","agobjkind"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/pend__c.java plantuml-8039/src/gen/lib/cgraph/pend__c.java --- plantuml-8024/src/gen/lib/cgraph/pend__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/pend__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,530 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.Macro.UNSUPPORTED; + +public class pend__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + +//1 bj2qizrlot8l7g39wf35fgzl0 +// static char DRName[] = + + + + +//3 byhbwh2n3ga4l1qwnurcynxym +// static void free_symlist(pending_cb_t * pcb) +public static Object free_symlist(Object... arg) { +UNSUPPORTED("3ghvg7ys2fzlmdd0nfqzopisv"); // static void free_symlist(pending_cb_t * pcb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9bftq5sqxua9mxfb8hmhxzg2q"); // symlist_t *s, *t; +UNSUPPORTED("d46bm1zp2r99pr5sekx09iv0i"); // for (s = pcb->symlist; s; s = t) { +UNSUPPORTED("4jrxgo85m58bkfh3hxfk13uos"); // t = s->link; +UNSUPPORTED("72av5d8v9cfk2h37srkqv1uat"); // agfree(pcb->g, s); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1x8gmra18kgia8023n42trx6s +// static void freef(Dict_t * dict, void *ptr, Dtdisc_t * disc) +public static Object freef(Object... arg) { +UNSUPPORTED("ctg6vmef59dajuf3reb8gedms"); // static void freef(Dict_t * dict, void *ptr, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7h0bo0mbb4u8n1kgtx80jowvh"); // pending_cb_t *pcb; +UNSUPPORTED("nzl57bfl5onx7q9ge19n2k9i"); // (void) dict; +UNSUPPORTED("8l8wg6vltx6d7vc9dzqb6n3wi"); // (void) disc; +UNSUPPORTED("djuag49lm4jgx0aqda2sd65a1"); // pcb = ptr; +UNSUPPORTED("62a5d439fs66zkm53lsemzmq8"); // free_symlist(pcb); +UNSUPPORTED("2zg02hc6tgna447luar3ns180"); // agfree(pcb->g, pcb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 x0a4r5rzqmzzzm9o3p61nvtr +// static Dtdisc_t Disc = + + + + +//3 cvwttyefig4x3yibqx8zu9rpg +// static Dict_t *dictof(pendingset_t * ds, Agobj_t * obj, int kind) +public static Object dictof(Object... arg) { +UNSUPPORTED("9138xlja2ni7mmvi0cd4temyb"); // static Dict_t *dictof(pendingset_t * ds, Agobj_t * obj, int kind) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eqjiveikrw2zx745yiiyht6vw"); // Dict_t **dict_ref = ((Dict_t **)0); +UNSUPPORTED("b4w701cfbvm8763b1ev8g1ex7"); // dict_ref = 0; +UNSUPPORTED("3kwdmn4ezymvab9oercol2gfj"); // switch (AGTYPE(obj)) { +UNSUPPORTED("eyna33dobiebmtd0nihpgura4"); // case AGRAPH: +UNSUPPORTED("9ty5l2g646lrkxz43tcnhcsk8"); // switch (kind) { +UNSUPPORTED("810zm8iq00e0qe3ufq37krysb"); // case 100: +UNSUPPORTED("2hwqeumfwxs1e0upar3vbq4nc"); // dict_ref = &(ds->ins.g); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("bngxmwnk2d1645cpp43uwhtl6"); // case 101: +UNSUPPORTED("1q1ztoxzgyzwgr4jcwhuslpsw"); // dict_ref = &(ds->mod.g); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2apxm1u469oyhhgobmwbfoleb"); // case 102: +UNSUPPORTED("8baz75germhhy9zanv3jproia"); // dict_ref = &(ds->del.g); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6x7ztvlgv763oeop84udp1egg"); // case AGNODE: +UNSUPPORTED("9ty5l2g646lrkxz43tcnhcsk8"); // switch (kind) { +UNSUPPORTED("810zm8iq00e0qe3ufq37krysb"); // case 100: +UNSUPPORTED("ak9q47vro9e3hyi3b48m6oayw"); // dict_ref = &(ds->ins.n); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("bngxmwnk2d1645cpp43uwhtl6"); // case 101: +UNSUPPORTED("6s9z1yizct0zn7ogttlk7ulgl"); // dict_ref = &(ds->mod.n); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2apxm1u469oyhhgobmwbfoleb"); // case 102: +UNSUPPORTED("8srlv0pjbuwg9piqb76f6ckgg"); // dict_ref = &(ds->del.n); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("2dqikmmb6ag0anvbzo5tybf1r"); // case AGEDGE: +UNSUPPORTED("9ty5l2g646lrkxz43tcnhcsk8"); // switch (kind) { +UNSUPPORTED("810zm8iq00e0qe3ufq37krysb"); // case 100: +UNSUPPORTED("33s6jomznpvcrcdm623n28bfj"); // dict_ref = &(ds->ins.e); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("bngxmwnk2d1645cpp43uwhtl6"); // case 101: +UNSUPPORTED("1xjaty06eacmjpx6128a9zehr"); // dict_ref = &(ds->mod.e); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2apxm1u469oyhhgobmwbfoleb"); // case 102: +UNSUPPORTED("bwwv85v1novxf8cb8fb5db9ca"); // dict_ref = &(ds->del.e); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5823wtehbd6fnifcjphi991ku"); // if (dict_ref == 0) +UNSUPPORTED("d603rhqrsr824tmeeh3ka13ay"); // agerr(AGERR, "pend dictof a bad object"); +UNSUPPORTED("mfln6dqp0s7q0ge06fgytl5e"); // if (*dict_ref == ((Dict_t *)0)) +UNSUPPORTED("7xhphlz4zrlp0grcf6qhyhbs9"); // *dict_ref = agdtopen(agraphof(obj), &Disc, Dttree); +UNSUPPORTED("u3n3bhd98nuoggmwzgri71gl"); // return *dict_ref; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9u07pj11z97vzx0rdu35dy5b6 +// static unsigned long genkey(Agobj_t * obj) +public static Object genkey(Object... arg) { +UNSUPPORTED("6wrgawykukpwhj0d0ha4mzab4"); // static unsigned long genkey(Agobj_t * obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjfznj5lzu9m7zqyasnsrwbf2"); // return obj->tag.id; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d1eeyb9xae1m5jodp0tq4maaw +// static pending_cb_t *lookup(Dict_t * dict, Agobj_t * obj) +public static Object lookup(Object... arg) { +UNSUPPORTED("94gs9x3we2rbx577uw4x9elm2"); // static pending_cb_t *lookup(Dict_t * dict, Agobj_t * obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ax1ryj3kmzi5zm6783ja9ih6x"); // pending_cb_t key, *rv; +UNSUPPORTED("544ezj0y7pdit8iverci40kga"); // key.key = genkey(obj); +UNSUPPORTED("18llpwj4oe5hlfhtvsvgs3jhs"); // rv = (pending_cb_t *) (*(((Dt_t*)(dict))->searchf))((dict),(void*)(&key),0000004); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f35guneihrs1ux86uvf6heyj6 +// static void record_sym(Agobj_t * obj, pending_cb_t * handle, Agsym_t * optsym) +public static Object record_sym(Object... arg) { +UNSUPPORTED("bl646bfryeajicgd7718m70ed"); // static void record_sym(Agobj_t * obj, pending_cb_t * handle, +UNSUPPORTED("amek1l9br0si8a9jvgv8v9jkb"); // Agsym_t * optsym) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6bzyvowe7bryc6qdmgi370qn7"); // symlist_t *sym, *nsym, *psym; +UNSUPPORTED("ctsjwn3br9xwmmxp1cj8a1xna"); // psym = ((symlist_t *)0); +UNSUPPORTED("6ev04nyvxz485q6jxxp3kcdw4"); // for (sym = handle->symlist; sym; psym = sym, sym = sym->link) { +UNSUPPORTED("1lpm2d7z85os1n26xf8u21n8v"); // if (sym->sym == optsym) +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("8gekjn0vgy99mxgi05y3qlbyu"); // if (sym == ((symlist_t *)0)) { +UNSUPPORTED("36okqfroya4wcmu1x0sj9mrb1"); // nsym = agalloc(agraphof(obj), sizeof(symlist_t)); +UNSUPPORTED("9vb4tlfn94icfq124umj7h911"); // nsym->sym = optsym; +UNSUPPORTED("dspsfdiz9pa70d0vxohcf78zh"); // if (psym) +UNSUPPORTED("1iisscyro6w5nimneyxg2nkc1"); // psym->link = nsym; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("arj8etqo9ydjttbgwlyuzw1so"); // handle->symlist = nsym; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1jnrk8qfwrllk59230ucju7zi"); // /* else we already have a callback registered */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bjiqwdwumf3dnt54kft0r6k0d +// static pending_cb_t *insert(Dict_t * dict, Agraph_t * g, Agobj_t * obj, Agsym_t * optsym) +public static Object insert(Object... arg) { +UNSUPPORTED("ckcre9wwmah3rfq66mljy5lh"); // static pending_cb_t *insert(Dict_t * dict, Agraph_t * g, Agobj_t * obj, +UNSUPPORTED("a2kv73jmjelhmpqkjs8m1xjhw"); // Agsym_t * optsym) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3e5oj67wvvqnpkv5irik2w6v7"); // pending_cb_t *handle; +UNSUPPORTED("29wguik0zbbb7k4ia4e4kfyf0"); // handle = agalloc(agraphof(obj), sizeof(pending_cb_t)); +UNSUPPORTED("eez1cohkjcwwmfkyjvquaox4j"); // handle->obj = obj; +UNSUPPORTED("cg45tb5zuauhpymb2endkpc8b"); // handle->key = genkey(obj); +UNSUPPORTED("5hw81md0srbu4w1mw7zzd228n"); // handle->g = g; +UNSUPPORTED("3435d1m4kdvqjqisp1szhzggt"); // if (optsym) { +UNSUPPORTED("3vhegt7tveybev1z9qn912d8h"); // handle->symlist = +UNSUPPORTED("58fxzmz6790e5kheou6gwbjuy"); // (symlist_t *) agalloc(handle->g, sizeof(symlist_t)); +UNSUPPORTED("4wf4lv7owe4aqtbj66fyecrd9"); // handle->symlist->sym = optsym; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("50g9bd087vz9ymko5m8ahciu7"); // (*(((Dt_t*)(dict))->searchf))((dict),(void*)(handle),0000001); +UNSUPPORTED("22ih9lygwn3tv1nppqxyjuzr3"); // return handle; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6xukd3ssn86gjgbed1tgfj2d3 +// static void purge(Dict_t * dict, Agobj_t * obj) +public static Object purge(Object... arg) { +UNSUPPORTED("5e5swvwz1c1vwauwkpqhyba29"); // static void purge(Dict_t * dict, Agobj_t * obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3e5oj67wvvqnpkv5irik2w6v7"); // pending_cb_t *handle; +UNSUPPORTED("5ukc6nwtmlh7xz8dd5ydc0w2d"); // if ((handle = lookup(dict, obj))) { +UNSUPPORTED("yc3nu6vucdrte81w14a2gsy6"); // (*(((Dt_t*)(dict))->searchf))((dict),(void*)(handle),0000002); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 77vpxparxzmm27mmm1mqs0m0y +// void agrecord_callback(Agraph_t * g, Agobj_t * obj, int kind, Agsym_t * optsym) +public static Object agrecord_callback(Object... arg) { +UNSUPPORTED("8kh7tdu40e0f5hui0hcx3ojw"); // void agrecord_callback(Agraph_t * g, Agobj_t * obj, int kind, +UNSUPPORTED("amek1l9br0si8a9jvgv8v9jkb"); // Agsym_t * optsym) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("33vdvvs3uqbdtg7b1fuiy1r22"); // pendingset_t *pending; +UNSUPPORTED("do2ldsjj56m49f95rq76qxpq8"); // Dict_t *dict; +UNSUPPORTED("3e5oj67wvvqnpkv5irik2w6v7"); // pending_cb_t *handle; +UNSUPPORTED("ers4ys5zwhwnecpeo7f50pdlk"); // pending = +UNSUPPORTED("clm1anc67pw03dsc0fl3qb7p0"); // (pendingset_t *) agbindrec(g, DRName, sizeof(pendingset_t), (0)); +UNSUPPORTED("elb9jvgldg2htymh7c74smj7o"); // switch (kind) { +UNSUPPORTED("e19luzlumlv4ceyibjghgitjk"); // case 100: +UNSUPPORTED("bt8qt5d94yexozgdbv5sspmm4"); // ; +UNSUPPORTED("bt8qt5d94yexozgdbv5sspmm4"); // ; +UNSUPPORTED("bh8r0ah5bdhy9b8fguergxls8"); // dict = dictof(pending, obj, 100); +UNSUPPORTED("8w10gh957jzwdh6u4cu779pov"); // handle = lookup(dict, obj); +UNSUPPORTED("3niic65nul5y025zfu6sofbvs"); // if (handle == 0) +UNSUPPORTED("3dk7uy243d9xxq8o4v964pmlw"); // handle = insert(dict, g, obj, optsym); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8q5omndta1qpcentw63h413zf"); // case 101: +UNSUPPORTED("16zt5ri5is42floscnatxr9y0"); // if (lookup(dictof(pending, obj, 100), obj)) +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("7fgyme1271lzkag7zfllc0tew"); // if (lookup(dictof(pending, obj, 102), obj)) +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("b8ce64b0yiy7uu0nuusdpn8mm"); // dict = dictof(pending, obj, 101); +UNSUPPORTED("8w10gh957jzwdh6u4cu779pov"); // handle = lookup(dict, obj); +UNSUPPORTED("3niic65nul5y025zfu6sofbvs"); // if (handle == 0) +UNSUPPORTED("3dk7uy243d9xxq8o4v964pmlw"); // handle = insert(dict, g, obj, optsym); +UNSUPPORTED("a0edh2s4u2bcccyz9l2ipltzh"); // record_sym(obj, handle, optsym); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("e1sxtr2029u6bg4eodqye5nam"); // case 102: +UNSUPPORTED("3xn39mhl4qgpevnmfeihn3yfl"); // purge(dictof(pending, obj, 100), obj); +UNSUPPORTED("ay7yim5iyu0h1rmxxq1j0yiew"); // purge(dictof(pending, obj, 101), obj); +UNSUPPORTED("eva458xjr00pr4dd58xrsr3wo"); // dict = dictof(pending, obj, 102); +UNSUPPORTED("8w10gh957jzwdh6u4cu779pov"); // handle = lookup(dict, obj); +UNSUPPORTED("3niic65nul5y025zfu6sofbvs"); // if (handle == 0) +UNSUPPORTED("3dk7uy243d9xxq8o4v964pmlw"); // handle = insert(dict, g, obj, optsym); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("75q0u8gexnc6ds09pnl8xopt8"); // agerr(AGERR,"agrecord_callback of a bad object"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 74sr5sunzimzs4dop6e56ylqr +// static void cb(Dict_t * dict, int callback_kind) +public static Object cb(Object... arg) { +UNSUPPORTED("8z1461yc2ld1pp01ko4qua5ob"); // static void cb(Dict_t * dict, int callback_kind) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7h0bo0mbb4u8n1kgtx80jowvh"); // pending_cb_t *pcb; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("9b8mh1w2dngpzgm1scb1wfpye"); // symlist_t *psym; +UNSUPPORTED("15pj3yh4siiqcsheonjvz1mx8"); // Agcbstack_t *stack; +UNSUPPORTED("bp0izcgie71mfs126puvdrlbx"); // if (dict) +UNSUPPORTED("ej98wudw2r9gkiyfxn9xxigrt"); // while ((pcb = (pending_cb_t *) (*(((Dt_t*)(dict))->searchf))((dict),(void*)(0),0000200))) { +UNSUPPORTED("ayk3fo7kzma7tc03v9cwyeywf"); // g = pcb->g; +UNSUPPORTED("2erj8yjubziu78llrxii8x4yg"); // stack = g->clos->cb; +UNSUPPORTED("e2iafleiimg0ngh48vlbjxt23"); // switch (callback_kind) { +UNSUPPORTED("y95xe2zitvsk8mj6351b8flm"); // case 100: +UNSUPPORTED("3jiyh0mmbmn3uhj3908tbpie0"); // aginitcb(g, pcb->obj, stack); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("24arz42murckghjk31a75ogis"); // case 101: +UNSUPPORTED("blbqsjlrg598r1c76k0texydb"); // for (psym = pcb->symlist; psym; psym = psym->link) +UNSUPPORTED("dgcqq6caargha2kk43yjiaj5m"); // agupdcb(g, pcb->obj, psym->sym, stack); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bhzbbcptdhj38ktjb1z72wms"); // case 102: +UNSUPPORTED("dhguembbxuyq68vjvlcqwdunu"); // agdelcb(g, pcb->obj, stack); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("1cpmxba68c8jjtr1ixpbt2u0m"); // (*(((Dt_t*)(dict))->searchf))((dict),(void*)(pcb),0000002); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e7sb9ozah1m8hcgr0r26yztet +// static void agrelease_callbacks(Agraph_t * g) +public static Object agrelease_callbacks(Object... arg) { +UNSUPPORTED("6nqqqrpb95kihyqznxyew5ax6"); // static void agrelease_callbacks(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("33vdvvs3uqbdtg7b1fuiy1r22"); // pendingset_t *pending; +UNSUPPORTED("109uv6don6ixsje9elqwf9qsc"); // if (NOT(g->clos->callbacks_enabled)) { +UNSUPPORTED("chkm1ywwa767f299jp5hf2czq"); // g->clos->callbacks_enabled = (!(0)); +UNSUPPORTED("5nn4qm7qly2eoqt2nhd0qp1ax"); // pending = +UNSUPPORTED("52ejby4ynlmeb6idvqokzv2vz"); // (pendingset_t *) agbindrec(g, DRName, sizeof(pendingset_t), +UNSUPPORTED("vul4crxzo1grmvirrvyll0rn"); // (0)); +UNSUPPORTED("ndlj5c2crpsdx40llb9kpwpd"); // /* this destroys objects in the opposite of their order of creation */ +UNSUPPORTED("6eurcgx2i2nlon27osmls3rmf"); // cb(pending->ins.g, 100); +UNSUPPORTED("f3h4fhpy0i0o57b8gan6wviec"); // cb(pending->ins.n, 100); +UNSUPPORTED("896p1o8puht55ta71to18bnvt"); // cb(pending->ins.e, 100); +UNSUPPORTED("3yjst8zxgjiz3m39d11jhdexq"); // cb(pending->mod.g, 101); +UNSUPPORTED("c0nntfbln34a6kp05jv42mc4g"); // cb(pending->mod.n, 101); +UNSUPPORTED("cgqeodbnfbdjj8jt2zu78u0s3"); // cb(pending->mod.e, 101); +UNSUPPORTED("9q2lzuakve6bzn35qu41h2l5m"); // cb(pending->del.e, 102); +UNSUPPORTED("36f1ppow3wgi52nohrx3663mo"); // cb(pending->del.n, 102); +UNSUPPORTED("n1f5rekeo8jd5m5ld7nhw6q"); // cb(pending->del.g, 102); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8uhdzlydn56607gimdrofjtex +// int agcallbacks(Agraph_t * g, int flag) +public static Object agcallbacks(Object... arg) { +UNSUPPORTED("6grr09xacc6khqaw6ho0nky79"); // int agcallbacks(Agraph_t * g, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("27jtm5gi92jvwfaaa1sctuyo"); // if (flag && NOT(g->clos->callbacks_enabled)) +UNSUPPORTED("4d5l812q1evpgwdyqtg3thjc6"); // agrelease_callbacks(g); +UNSUPPORTED("9h26u2rih6iwnene5rc4w674d"); // if (g->clos->callbacks_enabled) { +UNSUPPORTED("1asmx0paikb7t6pd74mg7iux5"); // g->clos->callbacks_enabled = flag; +UNSUPPORTED("3adr32h5e1fehu4g7j2u24asz"); // return (!(0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2sr3ea519cwyuna7gtykf3u03"); // g->clos->callbacks_enabled = flag; +UNSUPPORTED("297p5iu8oro94tdg9v29bbgiw"); // return (0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/rec__c.java plantuml-8039/src/gen/lib/cgraph/rec__c.java --- plantuml-8024/src/gen/lib/cgraph/rec__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/rec__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,518 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static gen.lib.cgraph.edge__c.agopp; +import static gen.lib.cgraph.mem__c.agalloc; +import static gen.lib.cgraph.obj__c.agraphof; +import static gen.lib.cgraph.refstr__c.agstrdup; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.strcmp; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGDATA; +import static smetana.core.Macro.AGINEDGE; +import static smetana.core.Macro.AGNODE; +import static smetana.core.Macro.AGOUTEDGE; +import static smetana.core.Macro.AGRAPH; +import static smetana.core.Macro.AGTYPE; +import static smetana.core.Macro.ASINT; +import static smetana.core.Macro.N; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agobj_s; +import h.Agraph_s; +import h.Agrec_s; +import smetana.core.CString; +import smetana.core.__ptr__; +import smetana.core.size_t; + +public class rec__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + + + +//3 62z9z5vraa2as0c9t108j9xaf +// static void set_data(Agobj_t * obj, Agrec_t * data, int mtflock) +public static void set_data(Agobj_s obj, Agrec_s data, int mtflock) { +ENTERING("62z9z5vraa2as0c9t108j9xaf","set_data"); +try { + Agedge_s e; + obj.setPtr("data", data); + obj.getStruct("tag").setInt("mtflock", mtflock); + if ((AGTYPE(obj) == AGINEDGE) || (AGTYPE(obj) == AGOUTEDGE)) { + e = (Agedge_s) agopp(obj.castTo(Agedge_s.class)); + AGDATA(e, data); + e.getStruct("base").getStruct("tag").setInt("mtflock", mtflock); + } +} finally { +LEAVING("62z9z5vraa2as0c9t108j9xaf","set_data"); +} +} + + + + +//3 7p2ne3oknmyclvsw4lh3axtd8 +// Agrec_t *aggetrec(void *obj, char *name, int mtf) +public static Agrec_s aggetrec(__ptr__ obj, CString name, boolean mtf) { +ENTERING("7p2ne3oknmyclvsw4lh3axtd8","aggetrec"); +try { + Agobj_s hdr; + Agrec_s d, first; + hdr = (Agobj_s) obj.castTo(Agobj_s.class); + first = d = (Agrec_s) hdr.getPtr("data"); + while (d!=null) { + if (N(strcmp(name,d.getCString("name")))) + break; + d = (Agrec_s) d.getPtr("next"); + if (EQ(d, first)) { + d = null; + break; + } + } + if (d!=null) { + if (hdr.getStruct("tag").getBoolean("mtflock")) { + if (mtf && NEQ(hdr.getPtr("data"), d)) + System.err.println("move to front lock inconsistency"); + } else { + if (NEQ(d, first) || (mtf != hdr.getStruct("tag").getBoolean("mtflock"))) + set_data(hdr, d, ASINT(mtf)); /* Always optimize */ + } + } + return d; +} finally { +LEAVING("7p2ne3oknmyclvsw4lh3axtd8","aggetrec"); +} +} + + + + +//3 7sk4k5ipm2jnd244556g1kr6 +// static void objputrec(Agraph_t * g, Agobj_t * obj, void *arg) +public static void objputrec(Agraph_s g, Agobj_s obj, Object arg) { +ENTERING("7sk4k5ipm2jnd244556g1kr6","objputrec"); +try { + Agrec_s firstrec, newrec; + newrec = (Agrec_s) arg; + firstrec = (Agrec_s) obj.getPtr("data"); + if (firstrec == null) + newrec.setPtr("next", newrec); /* 0 elts */ + else { + if (EQ(firstrec.getPtr("next"), firstrec)) { + firstrec.setPtr("next", newrec); /* 1 elt */ + newrec.setPtr("next", firstrec); + } else { + newrec.setPtr("next", firstrec.getPtr("next")); + firstrec.setPtr("next", newrec); + } + } + if (NOT(obj.getStruct("tag").getInt("mtflock"))) + set_data(obj, newrec, (0)); +} finally { +LEAVING("7sk4k5ipm2jnd244556g1kr6","objputrec"); +} +} + + + + +//3 dmh5i83l15mnn1pnu6f5dfv8l +// void *agbindrec(void *arg_obj, char *recname, unsigned int recsize, int mtf) +public static __ptr__ agbindrec(__ptr__ arg_obj, CString recname, size_t recsize, boolean mtf) { +ENTERING("dmh5i83l15mnn1pnu6f5dfv8l","agbindrec"); +try { + Agraph_s g; + Agobj_s obj; + Agrec_s rec; + obj = (Agobj_s) arg_obj.castTo(Agobj_s.class); + g = agraphof(obj); + rec = aggetrec(obj, recname, false); + if ((rec == null && recsize.isStrictPositive())) { + rec = (Agrec_s) ((__ptr__)agalloc(g, recsize)).castTo(Agrec_s.class); + // rec = (Agrec_s) Memory.malloc(Agrec_s.class); + rec.setPtr("name", agstrdup(g, recname)); + switch (obj.getStruct("tag").getInt("objtype")) { + case AGRAPH: + objputrec(g, obj, rec); + break; + case AGNODE: + objputrec(g, obj, rec); + break; + case AGINEDGE: + case AGOUTEDGE: + objputrec(g, obj, rec); + break; + } + } + if (mtf) + aggetrec(arg_obj, recname, (N(0))); + return rec; +} finally { +LEAVING("dmh5i83l15mnn1pnu6f5dfv8l","agbindrec"); +} +} + + + + +//3 7wkmd0z867cfhifu5sx3f9qk0 +// static void objdelrec(Agraph_t * g, Agobj_t * obj, void *arg_rec) +public static Object objdelrec(Object... arg) { +UNSUPPORTED("50zcyap75kyq5dged87b27eux"); // static void objdelrec(Agraph_t * g, Agobj_t * obj, void *arg_rec) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("emb5aoborhmx7xgff2s0f32r7"); // Agrec_t *rec = (Agrec_t *) arg_rec, *newrec; +UNSUPPORTED("a3ypwtn30jl38mmwqqe7cncxj"); // if (obj->data == rec) { +UNSUPPORTED("69qy6kkaiflhbig0kizfx2tti"); // if (rec->next == rec) +UNSUPPORTED("xd727mslmxprqxq2rm02c5d8"); // newrec = ((Agrec_t *)0); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("6w6e40pynrhr4cg19g4qnwmeg"); // newrec = rec->next; +UNSUPPORTED("boyfn5td5ma9qwuqx4rb00zxn"); // set_data(obj, newrec, (0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lrcdtq3amx34ixpjad1kj9w1 +// static void listdelrec(Agobj_t * obj, Agrec_t * rec) +public static Object listdelrec(Object... arg) { +UNSUPPORTED("5vg9c18o4hibwg5a9p47ad9i"); // static void listdelrec(Agobj_t * obj, Agrec_t * rec) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8e7x54av78ukk2gkru2uv7n5t"); // Agrec_t *prev; +UNSUPPORTED("acnbs96yxc5n81gdoim603six"); // prev = obj->data; +UNSUPPORTED("j2ssgapam83gwl5s62grl1fg"); // while (prev->next != rec) { +UNSUPPORTED("4l4pl9wqsuoczyfdlvmzj1gli"); // prev = prev->next; +UNSUPPORTED("bt8qt5d94yexozgdbv5sspmm4"); // ; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1uagqrrdyb18p3s9qlqg8jwjj"); // /* following is a harmless no-op if the list is trivial */ +UNSUPPORTED("erdqdxkn41xuppe0chxcrx73"); // prev->next = rec->next; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dr7dc2ebvb106hcsaxz6elhu9 +// int agdelrec(void *arg_obj, char *name) +public static Object agdelrec(Object... arg) { +UNSUPPORTED("8scieaa3q398qeq2uv44asga1"); // int agdelrec(void *arg_obj, char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("14h5et4t79wqu2qo8divf5tkt"); // Agobj_t *obj; +UNSUPPORTED("146agbqco6st2hn1ajcek08r6"); // Agrec_t *rec; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("ami3me63drun9ofwwmxainjy5"); // obj = (Agobj_t *) arg_obj; +UNSUPPORTED("8pfuk9ua4x9bh68zk1kzwc5t9"); // g = agraphof(obj); +UNSUPPORTED("dhmaidfkewgpedp1d73ef9yx5"); // rec = aggetrec(obj, name, (0)); +UNSUPPORTED("epwrmjxhdofey6itrewqzilu0"); // if (rec) { +UNSUPPORTED("q964zfpibwk1nuufmhbvhvz1"); // listdelrec(obj, rec); /* zap it from the circular list */ +UNSUPPORTED("bxainz8fp03zcbgxzia4t1ta2"); // switch (obj->tag.objtype) { /* refresh any stale pointers */ +UNSUPPORTED("9t6es77h0301xk4n035emz6o"); // case AGRAPH: +UNSUPPORTED("39koq493kdonzfnv7y451gzku"); // objdelrec(g, obj, rec); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4ih7nalu307xv8wvdpmgy537r"); // case AGNODE: +UNSUPPORTED("f0mphr0n2ielt8cpkw0djd9s9"); // case AGINEDGE: +UNSUPPORTED("3zbev1w97o9vgmm1ifhakk5g6"); // case AGOUTEDGE: +UNSUPPORTED("9ixqdoo4u64vgpl11kitdhiwj"); // agapply(agroot(g), obj, objdelrec, rec, (0)); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("b0419fuh4e7iigkr04vrhwoqw"); // agstrfree(g, rec->name); +UNSUPPORTED("9w293r9fg650cqzb27hlm4gm6"); // agfree(g, rec); +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 61hbvi8qf9sf7fp8zpov061px +// static void simple_delrec(Agraph_t * g, Agobj_t * obj, void *rec_name) +public static Object simple_delrec(Object... arg) { +UNSUPPORTED("7jivm8vgxrik7o19yqyy4iuoj"); // static void simple_delrec(Agraph_t * g, Agobj_t * obj, void *rec_name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3lu3vc6o8prg1gr2vk05e0eko"); // agdelrec(obj, rec_name); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e1pnypxtha6b6f6gdnys37746 +// void aginit(Agraph_t * g, int kind, char *rec_name, int arg_rec_size, int mtf) +public static Object aginit(Object... arg) { +UNSUPPORTED("2pn3c5mfp7ik08786jysv3lbs"); // void aginit(Agraph_t * g, int kind, char *rec_name, int arg_rec_size, int mtf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("8a4qjwfuqqw6rztukk1hbffvl"); // Agraph_t *s; +UNSUPPORTED("abzwllf3yvcaghy0hkur9oxfd"); // int rec_size; +UNSUPPORTED("5vb74w15wh9g0ykij86iwtxeb"); // int recur; /* if recursive on subgraphs */ +UNSUPPORTED("4nlgepehelmt97qydjqp7ecah"); // if (arg_rec_size < 0) {recur = 1; rec_size = -arg_rec_size;} +UNSUPPORTED("bevbs1i4v9cvng7nnrs2yqiku"); // else {recur = 0; rec_size= arg_rec_size;} +UNSUPPORTED("elb9jvgldg2htymh7c74smj7o"); // switch (kind) { +UNSUPPORTED("eyna33dobiebmtd0nihpgura4"); // case AGRAPH: +UNSUPPORTED("9k3pxutrp61xdp73x92pxsv8j"); // agbindrec(g, rec_name, rec_size, mtf); +UNSUPPORTED("ufmow0oztf5sdbx36wf4v0e5"); // if (recur) +UNSUPPORTED("4oknzxynn26rak0dbvijyz5t"); // for (s = agfstsubg(g); s; s = agnxtsubg(s)) +UNSUPPORTED("3hu696w8d3t3l7tygoq4twr4x"); // aginit(s,kind,rec_name,arg_rec_size,mtf); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6x7ztvlgv763oeop84udp1egg"); // case AGNODE: +UNSUPPORTED("a6ls4lkgjoheqwo2e7yqt9zz8"); // case AGOUTEDGE: +UNSUPPORTED("c9o8hr6x8n5dty1y3eej1fept"); // case AGINEDGE: +UNSUPPORTED("eg21iwn9eqyjsoisl58nl8i36"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("2kxod9hw7p0o5crbt6xh2gcwy"); // if (kind == AGNODE) +UNSUPPORTED("7lbtjiuf91mfv1rfh26gr9rnf"); // agbindrec(n, rec_name, rec_size, mtf); +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("5qry6mw56jhkh965gr6si5sjz"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) +UNSUPPORTED("3isk98kl2hyz50xh5nk9e79ur"); // agbindrec(e, rec_name, rec_size, mtf); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d8dlatsnpytjohjptji50kek2 +// void agclean(Agraph_t * g, int kind, char *rec_name) +public static Object agclean(Object... arg) { +UNSUPPORTED("2u4lls7xvbemdliclfn1jjlv3"); // void agclean(Agraph_t * g, int kind, char *rec_name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("elb9jvgldg2htymh7c74smj7o"); // switch (kind) { +UNSUPPORTED("eyna33dobiebmtd0nihpgura4"); // case AGRAPH: +UNSUPPORTED("p5rnonv5qza6uss4lurbzcru"); // agapply(g, (Agobj_t *) g, simple_delrec, rec_name, (!(0))); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6x7ztvlgv763oeop84udp1egg"); // case AGNODE: +UNSUPPORTED("a6ls4lkgjoheqwo2e7yqt9zz8"); // case AGOUTEDGE: +UNSUPPORTED("c9o8hr6x8n5dty1y3eej1fept"); // case AGINEDGE: +UNSUPPORTED("eg21iwn9eqyjsoisl58nl8i36"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("2kxod9hw7p0o5crbt6xh2gcwy"); // if (kind == AGNODE) +UNSUPPORTED("an2xd4k44p94rcg7ynge2g1nq"); // agdelrec(n, rec_name); +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("5qry6mw56jhkh965gr6si5sjz"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) +UNSUPPORTED("7k5tz238egfs4u82cpy7lk8dn"); // agdelrec(e, rec_name); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1s9p443oxpnfk2w28k6bgn1y0 +// void agrecclose(Agobj_t * obj) +public static Object agrecclose(Object... arg) { +UNSUPPORTED("f28etp6uks02tqgelaos87f96"); // void agrecclose(Agobj_t * obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("4d3axgxxzgvvs9r07npfgyqqs"); // Agrec_t *rec, *nrec; +UNSUPPORTED("8pfuk9ua4x9bh68zk1kzwc5t9"); // g = agraphof(obj); +UNSUPPORTED("7mfrjfyuzo92p41ycl0k8l0ux"); // if ((rec = obj->data)) { +UNSUPPORTED("8vxyvy38lzpbd83cu26nejaan"); // do { +UNSUPPORTED("ezzhxi7n4n97pmh7g0zo4wprj"); // nrec = rec->next; +UNSUPPORTED("e1l0oyl4p7njuyrgfuf1nph9b"); // agstrfree(g, rec->name); +UNSUPPORTED("3yrrykwn17vvbliut3f5a174w"); // agfree(g, rec); +UNSUPPORTED("66id2vgqklsr5nz9a84lor5eb"); // rec = nrec; +UNSUPPORTED("aqvgta0a2vlgkvf7yvufyzvt5"); // } while (rec != obj->data); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2ila9b4kx11rvt5yy16n3myks"); // obj->data = ((Agrec_t *)0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/refstr__c.java plantuml-8039/src/gen/lib/cgraph/refstr__c.java --- plantuml-8024/src/gen/lib/cgraph/refstr__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/refstr__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,464 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static gen.lib.cgraph.mem__c.agalloc; +import static gen.lib.cgraph.utils__c.agdtdelete; +import static gen.lib.cgraph.utils__c.agdtopen; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agraph_s; +import h._dt_s; +import h.refstr_t; +import smetana.core.ACCESS; +import smetana.core.CString; +import smetana.core.OFFSET; +import smetana.core.STARSTAR; +import smetana.core.Z; +import smetana.core.__struct__; +import smetana.core.size_t; + +public class refstr__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + +//1 8bj6ivnd4go7wt4pvzqgk8mlr +// static unsigned long HTML_BIT +//static public int HTML_BIT; + +//1 dqn77l82bfu071bv703e77jmg +// static unsigned long CNT_BITS +//static public int CNT_BITS; + +//1 boyxdmkhstn4i64pqf6sv1mi7 +// static Dtdisc_t Refstrdisc = +/*static public final __struct__<_dtdisc_s> Refstrdisc = __struct__.from(_dtdisc_s.class); +static { + Refstrdisc.setInt("key", OFFSET.create(refstr_t.class, "s").toInt()); // *s is the third field in refstr_t + Refstrdisc.setInt("size", -1); + Refstrdisc.setInt("link", 0); + Refstrdisc.setPtr("makef", null); + Refstrdisc.setPtr("freef", function(utils__c.class, "agdictobjfree")); + Refstrdisc.setPtr("comparf", null); + Refstrdisc.setPtr("hashf", null); + Refstrdisc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Refstrdisc.setPtr("eventf", null); +}*/ + +//1 2e0tdcdyjc9zq54xt1nzgwvn3 +// static Dict_t *Refdict_default +//static public _dt_s Refdict_default; + + + +//3 f1nwss2xoaub1hyord232ugoj +// static Dict_t *refdict(Agraph_t * g) +public static _dt_s refdict(final Agraph_s g) { +ENTERING("f1nwss2xoaub1hyord232ugoj","refdict"); +try { + STARSTAR<_dt_s> dictref; + if (g != null) + dictref = STARSTAR.amp(new ACCESS<_dt_s>() { + public _dt_s get() { + return (_dt_s) g.getPtr("clos").getPtr("strdict"); + } + public void set(_dt_s obj) { + g.getPtr("clos").setPtr("strdict", obj); + } + }); + else + dictref = STARSTAR.amp(new ACCESS<_dt_s>() { + public _dt_s get() { + return Z._().Refdict_default; + } + public void set(_dt_s obj) { + Z._().Refdict_default = obj; + } + }); + if (dictref.getMe() == null) { + dictref.setMe(agdtopen(g, Z._().Refstrdisc.amp(), Z._().Dttree)); + } + Z._().HTML_BIT = 1 << 31; + Z._().CNT_BITS = ~Z._().HTML_BIT; + return dictref.getMe(); +} finally { +LEAVING("f1nwss2xoaub1hyord232ugoj","refdict"); +} +} + + + + +//3 9aajykl8nuymg60zukycquawa +// int agstrclose(Agraph_t * g) +public static Object agstrclose(Object... arg) { +UNSUPPORTED("c2l353zz5jt7jlmbhjbbt3m7v"); // int agstrclose(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("208rcf0f70q2wxwsa6po42oqq"); // return agdtclose(g, refdict(g)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9ts4wqhw2xafdv3tlcilneewq +// static refstr_t *refsymbind(Dict_t * strdict, char *s) +public static refstr_t refsymbind(_dt_s strdict, CString s) { +ENTERING("9ts4wqhw2xafdv3tlcilneewq","refsymbind"); +try { + final __struct__ key = __struct__.from(refstr_t.class); + refstr_t r; + // key.setPtr("s", s.duplicate()); + key.setPtr("s", s); + r = (refstr_t) strdict.call("searchf", strdict, key.amp(), 0000004); + return r; +} finally { +LEAVING("9ts4wqhw2xafdv3tlcilneewq","refsymbind"); +} +} + + + + +//3 1scntgo71z7c2v15zapiyw59w +// static char *refstrbind(Dict_t * strdict, char *s) +public static CString refstrbind(_dt_s strdict, CString s) { +ENTERING("1scntgo71z7c2v15zapiyw59w","refstrbind"); +try { + refstr_t r; + r = refsymbind(strdict, s); + if (r!=null) + return r.getCString("s"); + else + return null; +} finally { +LEAVING("1scntgo71z7c2v15zapiyw59w","refstrbind"); +} +} + + + + +//3 bb8aqjshw3ecae2lsmhigd0mc +// char *agstrbind(Agraph_t * g, char *s) +public static CString agstrbind(Agraph_s g, CString s) { +ENTERING("bb8aqjshw3ecae2lsmhigd0mc","agstrbind"); +try { + return refstrbind(refdict(g), s); +} finally { +LEAVING("bb8aqjshw3ecae2lsmhigd0mc","agstrbind"); +} +} + + + + +//3 86oznromwhn9qeym0k7pih73q +// char *agstrdup(Agraph_t * g, char *s) +public static CString agstrdup(Agraph_s g, CString s) { +ENTERING("86oznromwhn9qeym0k7pih73q","agstrdup"); +try { + refstr_t r; + _dt_s strdict; + size_t sz; + if (s == null) + return null; + strdict = refdict(g); + r = (refstr_t) refsymbind(strdict, s); + if (r!=null) r = (refstr_t) r.castTo(refstr_t.class); + if (r!=null) + r.setInt("refcnt", r.getInt("refcnt")+1); + else { + sz = sizeof(refstr_t.class).plus(s.length()); + if (g!=null) + r = (refstr_t) agalloc(g, sz); + else + r = (refstr_t) sz.malloc(); + r.setInt("refcnt", 1); + r.setPtr("s", s.duplicate()); +// strcpy(r->store, s); +// r->s = r->store; + strdict.call("searchf", strdict,r,0000001); + } + return r.getCString("s"); +} finally { +LEAVING("86oznromwhn9qeym0k7pih73q","agstrdup"); +} +} + + + + +//3 1ovgpnv6r8ru6iz51ic91zzal +// char *agstrdup_html(Agraph_t * g, char *s) +public static Object agstrdup_html(Object... arg) { +UNSUPPORTED("6679vrn0j0vkzernsn2rlottw"); // char *agstrdup_html(Agraph_t * g, char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1uvxutp09oluiacpgn0f76bgu"); // refstr_t *r; +UNSUPPORTED("czgqod5ni1s5av81qa3n0ghgr"); // Dict_t *strdict; +UNSUPPORTED("55x2wgzchv0157f4g74693oaq"); // size_t sz; +UNSUPPORTED("a5abfeqtsa4i5x739edpwuxin"); // if (s == ((char *)0)) +UNSUPPORTED("xp8okoaicybpovkenntpd857"); // return ((char *)0); +UNSUPPORTED("bo3fdoot7ldevx250qweitj6z"); // strdict = refdict(g); +UNSUPPORTED("12vt0u4w3q0jht9f9vsaybntn"); // r = refsymbind(strdict, s); +UNSUPPORTED("67y4tszu7dmeves31gr9ydmpi"); // if (r) +UNSUPPORTED("5gybhadmtbc77f5wf9adyemj7"); // r->refcnt++; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("9llv1u64vbj6q8loctnrowtm5"); // sz = sizeof(refstr_t) + strlen(s); +UNSUPPORTED("7tmc6a514rv2k24wg5o8qpvyp"); // if (g) +UNSUPPORTED("asjj8bj1b02f70rfr41ayipxy"); // r = (refstr_t *) agalloc(g, sz); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("bp5rr6mkh94826cbgdwglvpk9"); // r = (refstr_t *) malloc(sz); +UNSUPPORTED("6sl9ejza97inawt8uprd120h6"); // r->refcnt = 1 | HTML_BIT; +UNSUPPORTED("dadamob0ot3fpofdm1ey34srj"); // strcpy(r->store, s); +UNSUPPORTED("1cyhds1lm0ee8rtp7k7h5cqfw"); // r->s = r->store; +UNSUPPORTED("b2zaf5uj8gofpyc40hl0ziymh"); // (*(((Dt_t*)(strdict))->searchf))((strdict),(void*)(r),0000001); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("lxjgfic7zk869xczsgazw3sx"); // return r->s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 enhn1ajfo86a19dgm4b8lduz7 +// int agstrfree(Agraph_t * g, char *s) +public static int agstrfree(Agraph_s g, CString s) { +ENTERING("enhn1ajfo86a19dgm4b8lduz7","agstrfree"); +try { + refstr_t r; + _dt_s strdict; + if (s == null) + return -1; + strdict = refdict(g); + r = refsymbind(strdict, s); + if (r!=null) r = (refstr_t) r.castTo(refstr_t.class); + if (r!=null && (EQ(r.getPtr("s"), s))) { + r.setInt("refcnt", r.getInt("refcnt")-1); + if ((r.getInt("refcnt")!=0 && Z._().CNT_BITS!=0) == false) { + agdtdelete(g, strdict, r); + /* + if (g) agfree(g,r); + else free(r); + */ + } + } + if (r == null) + return -1; + return 0; +} finally { +LEAVING("enhn1ajfo86a19dgm4b8lduz7","agstrfree"); +} +} + + + + +//3 3em4wzjnpajd5d3igb90l3rml +// int aghtmlstr(char *s) +public static int aghtmlstr(CString s) { +ENTERING("3em4wzjnpajd5d3igb90l3rml","aghtmlstr"); +try { + refstr_t key; + if (s == null) + return 0; + key = (refstr_t) s.addVirtualBytes(-OFFSET.create(refstr_t.class, "s").toInt()); + return (key.getInt("refcnt") & Z._().HTML_BIT); +} finally { +LEAVING("3em4wzjnpajd5d3igb90l3rml","aghtmlstr"); +} +} + + + + +//3 ap2ebebypq6vmwle0hicv6tmj +// void agmarkhtmlstr(char *s) +public static Object agmarkhtmlstr(Object... arg) { +UNSUPPORTED("8oc24oz62ej815sjwuwuj9bmt"); // void agmarkhtmlstr(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("164ww6fcxh6v2wmxj0v8aqviy"); // refstr_t *key; +UNSUPPORTED("8quozj18vjguewxdpv9w14yjn"); // if (s == NULL) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("9cmt4vbkm95fqftevdqyfvslr"); // key = (refstr_t *) (s - ((int)(&(((refstr_t*)0)->store[0])))); +UNSUPPORTED("68mcf5kr6xw538zkdk8b50aeb"); // key->refcnt |= HTML_BIT; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/scan__c.java plantuml-8039/src/gen/lib/cgraph/scan__c.java --- plantuml-8024/src/gen/lib/cgraph/scan__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/scan__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1828 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.Macro.UNSUPPORTED; + +public class scan__c { +//1 9u1ttuisot4jd2hvnp85ay56g +// typedef signed char flex_int8_t + + +//1 wvexxj8vbty6kaj0saqbx6ts +// typedef short int flex_int16_t + + +//1 hwqrvan7avqujsfxav228c11 +// typedef int flex_int32_t + + +//1 7lla3uunolf6lxmj92jrtn42g +// typedef unsigned char flex_uint8_t + + +//1 f9lv61viy2nrstz0unqh9sqh +// typedef unsigned short int flex_uint16_t + + +//1 amgh831s9403je2b1fbipav6b +// typedef unsigned int flex_uint32_t + + +//1 o1gyrcpeise6ulid46rm843i +// typedef size_t aag_size_t + + +//1 1f24j2fvxxvkjnlu5zfmsrb3y +// extern aag_size_t aagleng + + +//1 bn8sus4ks1cb72itw8xzz1flz +// extern FILE *aagin, *aagout + + +//1 3hxi4rnlmjyc30okmpb31jq2x +// static size_t aag_buffer_stack_top = 0 + + +//1 cvdgf98m8wxs77dykhlbh8cee +// static size_t aag_buffer_stack_max = 0 + + +//1 f2vs4coshydmjcysvmam9xyqe +// static YY_BUFFER_STATE * aag_buffer_stack = 0 + + +//1 e1hf3tomaeg9eyupoxlsqppd8 +// static char aag_hold_char + + +//1 3yvf3qfwm5w59tkhanhadp0sc +// static aag_size_t aag_n_chars + + +//1 bjftnvag2m5zx3ut0gxhbm1yp +// aag_size_t aagleng + + +//1 3qr2iyg8mnjvp20zhsfc7zhll +// static char *aag_c_buf_p = (char *) 0 + + +//1 7p8qmci0084z5p538lompqcgl +// static int aag_init = 0 + + +//1 aqkdngbj0xlr01bnkezay6hpw +// static int aag_start = 0 + + +//1 by6x4qfu7ct1epyt34gtk0c68 +// static int aag_did_buffer_switch_on_eof + + +//1 9dv61b9prrpqjbdic1p73cmii +// typedef unsigned char YY_CHAR + + +//1 u29aw8w233elgi1t0d69a2tp +// FILE *aagin = (FILE *) 0, *aagout = (FILE *) 0 + + +//1 6yqm263qjbxbombyqn8htwe9h +// typedef int aag_state_type + + +//1 4jmbvml2ky2nnj8z2fttiwlpj +// extern int aaglineno + + +//1 8hrt3xlca3e6jbiammiyc4vny +// int aaglineno = 1 + + +//1 4cxmiga6ltifuposa502y9yyt +// extern char *aagtext + + +//1 7xtkfznh5z71t9bxwa8l65woe +// static flex_int16_t aag_accept[93] = + + +//1 681ycgqijl2pdx86pv93mlmpl +// static flex_int32_t aag_ec[256] = + + +//1 bc0sgnek7ow53q48q3951dxf7 +// static flex_int32_t aag_meta[49] = + + +//1 2kiqxti33weulohzuygr5c60p +// static flex_int16_t aag_base[105] = + + +//1 2dk0cchyur4w0ynnbcpumq3df +// static flex_int16_t aag_def[105] = + + +//1 5cx77li3gho8yavxa8ny5ydy8 +// static flex_int16_t aag_nxt[279] = + + +//1 84mqlrbyvesev1wun43vo6rt5 +// static flex_int16_t aag_chk[279] = + + +//1 baro9b24r2upjoluxg072zqan +// static aag_state_type aag_last_accepting_state + + +//1 51sd6p9r881rurh2cn0gr95sb +// static char *aag_last_accepting_cpos + + +//1 4j2pfnbqhihe02dxjobjg2x8s +// extern int aag_flex_debug + + +//1 693kz0rs1kqe9rnq983sul9xf +// int aag_flex_debug = 0 + + +//1 d9rx7y8pk05fhn4zb20edan8k +// char *aagtext + + +//1 bv6npyi314kx5c073l8ghs1md +// extern YYSTYPE aaglval + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + +//1 ulfzla7f173z9e7hy51d7yxc +// static int line_num = 1 + + +//1 7k271geg3zfbftdupjdh78yl0 +// static int html_nest = 0 + + +//1 91mp0doens27fx1oso66rsrpm +// static char* InputFile + + +//1 a00t38gjjcwqriw9cdxo4tdnd +// static Agdisc_t *Disc + + +//1 1by6tdr1jakvfvcghn57hto4l +// static void *Ifile + + +//1 8kv7ct8l9pvdr999inffhfd8u +// static int graphType + + + + +//3 1oj4owfzrg4azkuildy8ykqr9 +// void agreadline(int n) +public static Object agreadline(Object... arg) { +UNSUPPORTED("dsihmt5ebg62c8jribqmgy0dy"); // void agreadline(int n) { line_num = n; } + +throw new UnsupportedOperationException(); +} + + + + +//3 bf0ltyw37l11aswamj8q178wi +// void agsetfile(char* f) +public static Object agsetfile(Object... arg) { +UNSUPPORTED("1efvmz7xvqmxk6ohmzmamgezx"); // void agsetfile(char* f) { InputFile = f; line_num = 1; } + +throw new UnsupportedOperationException(); +} + + + + +//3 3r1v6x85pa9sbewoebj1wpjuu +// void aglexinit(Agdisc_t *disc, void *ifile) +public static Object aglexinit(Object... arg) { +UNSUPPORTED("3744yvxht2vnrh2n60myij0q3"); // void aglexinit(Agdisc_t *disc, void *ifile) { Disc = disc; Ifile = ifile; graphType = 0;} + +throw new UnsupportedOperationException(); +} + + +//1 cry2o4y2edn77xmsht3kg427n +// static char *Sbuf,*Sptr,*Send + + + + +//3 ci1omlit75xbk0j3loutg4m5g +// static void beginstr(void) +public static Object beginstr(Object... arg) { +UNSUPPORTED("dstkjoto15vp16xvlg2k09goi"); // static void beginstr(void) { +UNSUPPORTED("5hieqyyy30hbesj8bpug2z9z6"); // if (Sbuf == ((char*)0)) { +UNSUPPORTED("f5fqw4u40t2nwvcuv9jeqgbke"); // Sbuf = malloc(BUFSIZ); +UNSUPPORTED("4yebcf7ybwlpgm7xoldjbszda"); // Send = Sbuf + BUFSIZ; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5wr6chsypocfjuceerl9mehc4"); // Sptr = Sbuf; +UNSUPPORTED("ea2z7xk1luy674u284ddudw1d"); // *Sptr = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 81ls7ujxrb181svnc5awggx7n +// static void addstr(char *src) +public static Object addstr(Object... arg) { +UNSUPPORTED("703gu6b5q51kg4f4w94snc2mn"); // static void addstr(char *src) { +UNSUPPORTED("3fj8t64rrnh5407ihxrbavnt6"); // char c; +UNSUPPORTED("4emlk2lo8cq6d5o6x461cxzwk"); // if (Sptr > Sbuf) Sptr--; +UNSUPPORTED("8vxyvy38lzpbd83cu26nejaan"); // do { +UNSUPPORTED("a1hhl0r379voikvndx346jxit"); // do {c = *Sptr++ = *src++;} while (c && (Sptr < Send)); +UNSUPPORTED("bl9hlux3ebu4o7860s2zpg075"); // if (c) { +UNSUPPORTED("aadej261od7yk1xcs21hauykh"); // long sz = Send - Sbuf; +UNSUPPORTED("41atfjolp70p7f8qnft3of30k"); // long off = Sptr - Sbuf; +UNSUPPORTED("6x6pgn87tnew1za637nkcb3i3"); // sz *= 2; +UNSUPPORTED("ecyedutxo51rut0aixzmx564t"); // Sbuf = (char*)realloc(Sbuf,sz); +UNSUPPORTED("8rxtl0zns7it9buqlqqsy5odx"); // Send = Sbuf + sz; +UNSUPPORTED("9z7xq6bkmghj8n6042m7mpmh3"); // Sptr = Sbuf + off; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("5k2u7k1fsiidv6ulonq76qhp0"); // } while (c); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2rmqzhh7aovtupqfrlts8pa2m +// static void endstr(void) +public static Object endstr(Object... arg) { +UNSUPPORTED("2sracqywd1qg2l7v5nmpvufkp"); // static void endstr(void) { +UNSUPPORTED("err7e2gsasgf22nnv8bahct4d"); // aaglval.str = (char*)agstrdup(Ag_G_global,Sbuf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4t56dhvw52uu822nlaokivf85 +// static void endstr_html(void) +public static Object endstr_html(Object... arg) { +UNSUPPORTED("dnnpz2205l3ln51f1bs93btf9"); // static void endstr_html(void) { +UNSUPPORTED("ajzrml1ygau4ao515bwvwgn19"); // aaglval.str = (char*)agstrdup_html(Ag_G_global,Sbuf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9nr6wfm5bmxh70x9saeavz26m +// static void storeFileName (char* fname, int len) +public static Object storeFileName(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("cvgvah1jrmrhswwg3rel7x5y0"); // storeFileName (char* fname, int len) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e0zq971pun9bqnupgu74poc4u"); // static int cnt; +UNSUPPORTED("xo6m9cruoz5kdd6mzt4sfknp"); // static char* buf; +UNSUPPORTED("do2te9of2v96mc8oassrb7p3b"); // if (len > cnt) { +UNSUPPORTED("6isxquud3a1wratug7k94a4ty"); // if (cnt) buf = (char*)realloc (buf, len+1); +UNSUPPORTED("aalmsa4r595p8tuhd928kue7f"); // else buf = (char*)malloc (len+1); +UNSUPPORTED("9hhg0szrtn6m33mvdggzdcuiq"); // cnt = len; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4ynhuu395gho3v61nn58lpsp5"); // strcpy (buf, fname); +UNSUPPORTED("bg9is2c95vtwie9h8nu78y9h7"); // InputFile = buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bj9zjg1k93tugikci6pdacgv8 +// static void ppDirective (void) +public static Object ppDirective(Object... arg) { +UNSUPPORTED("amadyb8blecbhpmr03nv1yysj"); // static void ppDirective (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("93ptrxmj16kch68r5qfjvzje8"); // int r, cnt, lineno; +UNSUPPORTED("aqjwq3fk7zmi0i48c6b3bdyn1"); // char buf[2]; +UNSUPPORTED("bykuhm42gpf1y2m3xfegj7yq7"); // char* s = aagtext + 1; /* skip initial # */ +UNSUPPORTED("v2kt5w01rvjcncga1nfw16vb"); // if (strncmp(s, "line", 4) == 0) s += 4; +UNSUPPORTED("cjbpu12dvz9bbaaqizld5hgzw"); // r = sscanf(s, "%d %1[\"]%n", &lineno, buf, &cnt); +UNSUPPORTED("79e2kex2zkmaojwz921wv40lb"); // if (r > 0) { /* got line number */ +UNSUPPORTED("7j9u1nik3c9m3dfr3ss7u99x7"); // line_num = lineno - 1; +UNSUPPORTED("a3cc7hmrfiu20uienzp34trtf"); // if (r > 1) { /* saw quote */ +UNSUPPORTED("ege4ds3wwlaw1lf0dmx6icmdu"); // char* p = s + cnt; +UNSUPPORTED("dy69m5exgjkhw4x2c1j201u5h"); // char* e = p; +UNSUPPORTED("akosnsiu9reyhhy9cuyst4u77"); // while (*e && (*e != '"')) e++; +UNSUPPORTED("chjva8sotwhp8p0plibzdgt64"); // if (e != p) { +UNSUPPORTED("aywlmkpo8in8o5sf37gh7f5o1"); // *e = '\0'; +UNSUPPORTED("m9wyrcnvgtzuy3jb5ssyfv91"); // storeFileName (p, e-p); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7fcnmcd19oiyoyaqr7swnx68s +// static int chkNum(void) +public static Object chkNum(Object... arg) { +UNSUPPORTED("q1tlhq1m7q8bylnobldsy8ul"); // static int chkNum(void) { +UNSUPPORTED("5xen5v195vyw2zxeos5j4b39u"); // unsigned char c = (unsigned char)aagtext[aagleng-1]; /* last character */ +UNSUPPORTED("3lxhbtax9md6unlnsezpjckih"); // if (!isdigit(c) && (c != '.')) { /* c is letter */ +UNSUPPORTED("brcmgy65t9y4nm8afackgego3"); // unsigned char xbuf[BUFSIZ]; +UNSUPPORTED("8c7x8di5w36ib05qan9z4sl9"); // char buf[BUFSIZ]; +UNSUPPORTED("hj3ykx7uaskz9wtccgck8sd6"); // agxbuf xb; +UNSUPPORTED("z3843we5vh08lkokocrbxs3e"); // char* fname; +UNSUPPORTED("91vq8e011oh7gfgr5bsdo0uoc"); // if (InputFile) +UNSUPPORTED("ar7gd5cmdmsozck6dve30u1kc"); // fname = InputFile; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("db3k9j2cu5b3ge53iwoykkaq0"); // fname = "input"; +UNSUPPORTED("b2caeimugashizzvpcmbplmp4"); // agxbinit(&xb, BUFSIZ, xbuf); +UNSUPPORTED("a2p6g2wxux9rba1tjs2ao7o4o"); // agxbput(&xb,"syntax ambiguity - badly delimited number '"); +UNSUPPORTED("1vnop1r6tqrq55n2ab9xcytok"); // agxbput(&xb,aagtext); +UNSUPPORTED("2q8daprlj1cl42ze3qlof04a5"); // sprintf(buf,"' in line %d of ", line_num); +UNSUPPORTED("3wik853jrdht1hsor80i947ue"); // agxbput(&xb,buf); +UNSUPPORTED("36dtrq18d65mdg4ntho7dt2ai"); // agxbput(&xb,fname); +UNSUPPORTED("97sgg79xuvu6p1ug1xnmk3egp"); // agxbput(&xb, " splits into two tokens\n"); +UNSUPPORTED("98hehf3lz7dyyrzh10pbcvcz8"); // agerr(AGWARN,(((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf))); +UNSUPPORTED("52frst03mcbsuu6bmnqs962qm"); // agxbfree(&xb); +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("895k5gbyc2kla939upm8m5u76"); // else return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e5pbkh72mgktxf6bfh0n4gt4 +// int aaglex (void) +public static Object aaglex(Object... arg) { +UNSUPPORTED("pdpjzk6673jkdk1hkeeb2q3a"); // int aaglex (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eyp458tyziuc5smdf8nmisuv0"); // register aag_state_type aag_current_state; +UNSUPPORTED("1kcumm40wtgnrwt1lso5lhyim"); // register char *aag_cp, *aag_bp; +UNSUPPORTED("epg1tabdb42f9reda2apnb1ms"); // register int aag_act; +UNSUPPORTED("8tmid58vn70oblu8ujz1zwswf"); // if ( !(aag_init) ) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("f5bqtt61q9thk5qd1hbwq8iiu"); // (aag_init) = 1; +UNSUPPORTED("3koasm308op0tigliblj62e1f"); // if ( ! (aag_start) ) +UNSUPPORTED("638agduqknpmfdxz829km27pq"); // (aag_start) = 1; /* first start state */ +UNSUPPORTED("5c3m4g98uud1ri4whmpyqmqod"); // if ( ! aagin ) +UNSUPPORTED("43slr3lwfniyoyj6xlp230lbh"); // aagin = stdin; +UNSUPPORTED("8vznga5m9rzjv7al9ph5m5sp4"); // if ( ! aagout ) +UNSUPPORTED("cr8xey1tr55u690uwh7ojmavf"); // aagout = stdout; +UNSUPPORTED("6a7g05a63b5vlbmwml9fqm6js"); // if ( ! ( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL) ) { +UNSUPPORTED("5k310rk7sd9685w7i0mxhvh7b"); // aagensure_buffer_stack (); +UNSUPPORTED("4bwrw2sf366bkgndfaoky57j3"); // (aag_buffer_stack)[(aag_buffer_stack_top)] = +UNSUPPORTED("648rwigd13o83ylenne327tpo"); // aag_create_buffer(aagin,16384 ); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("5vdfn4vw8baq4bh6qaiza5ces"); // aag_load_buffer_state( ); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("64w7kx5jkbrgxchxynb9z68sl"); // while ( 1 ) /* loops until end-of-file is reached */ +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("19a62hiie1pmtcddghe0bqc4p"); // aag_cp = (aag_c_buf_p); +UNSUPPORTED("3dylne08x28cpv7rgbl9342u9"); // /* Support of aagtext. */ +UNSUPPORTED("a4qna0rrphiukyt2cx9xxl4uq"); // *aag_cp = (aag_hold_char); +UNSUPPORTED("cqe8nsxx8zip9neqzuass52k7"); // /* aag_bp points to the position in aag_ch_buf of the start of +UNSUPPORTED("2hkvmkbfi5k14h6ad5el1ypm4"); // * the current run. +UNSUPPORTED("edw1ss2r31mqgsvca2gowi52v"); // */ +UNSUPPORTED("2uu83ztfrm2rf4gilr4ndnado"); // aag_bp = aag_cp; +UNSUPPORTED("1cgpurhged2awokk4s92iw776"); // aag_current_state = (aag_start); +UNSUPPORTED("22smyx4x537664ve7600il5k2"); // aag_current_state += ((aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol); +UNSUPPORTED("8n4v70w7yvxxi7wyk8h2ozq69"); // aag_match: +UNSUPPORTED("9ksbpucly3ydjrripsbhxyhi6"); // do +UNSUPPORTED("2mdt9jdl3qwktdzlvb0pw8fgo"); // { +UNSUPPORTED("b017ngi9yoexu0ag8as3kxifu"); // register YY_CHAR aag_c = aag_ec[((unsigned int) (unsigned char) *aag_cp)]; +UNSUPPORTED("f0f13rvrp28ugo7n953ww9exm"); // if ( aag_accept[aag_current_state] ) +UNSUPPORTED("4pcl1pdojya6hzq73u51kpoch"); // { +UNSUPPORTED("2zkjl87i9j14qd0yy84gkxn8w"); // (aag_last_accepting_state) = aag_current_state; +UNSUPPORTED("63j2j6c74f6tpdddpw68w7j5g"); // (aag_last_accepting_cpos) = aag_cp; +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("2463jdtdj5v0b3g8cve6lltug"); // while ( aag_chk[aag_base[aag_current_state] + aag_c] != aag_current_state ) +UNSUPPORTED("4pcl1pdojya6hzq73u51kpoch"); // { +UNSUPPORTED("324rw4kwwcob6154aq4iylx2c"); // aag_current_state = (int) aag_def[aag_current_state]; +UNSUPPORTED("2lcc1u06ym2da8plsplb66cfx"); // if ( aag_current_state >= 93 ) +UNSUPPORTED("w51fl0acyotorjuhgem7gi4c"); // aag_c = aag_meta[(unsigned int) aag_c]; +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("5id6x27gn8fz38xu0wfi9oiot"); // aag_current_state = aag_nxt[aag_base[aag_current_state] + (unsigned int) aag_c]; +UNSUPPORTED("66elpafqoofzev7x22bewbr2c"); // ++aag_cp; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6cbq6ckkfsopkhgz7xgomi8ai"); // while ( aag_base[aag_current_state] != 230 ); +UNSUPPORTED("9m6gq3wy7dxf2989ifsn5cm9t"); // aag_find_action: +UNSUPPORTED("6dd3zbwpg5nll3gotac8xs0jk"); // aag_act = aag_accept[aag_current_state]; +UNSUPPORTED("3uvb9f03g7dp9se542b3fch97"); // if ( aag_act == 0 ) +UNSUPPORTED("9vnsdr0cb64wib7xchxmeffe1"); // { /* have to back up */ +UNSUPPORTED("5jmzc2p8ihqh3pl8yk426jjs8"); // aag_cp = (aag_last_accepting_cpos); +UNSUPPORTED("4bqktwvoql4rinftb1wb6bwux"); // aag_current_state = (aag_last_accepting_state); +UNSUPPORTED("913oa8bs5aedunutrp23qi71j"); // aag_act = aag_accept[aag_current_state]; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("7z2vv0d273lknczgkvpqne3ly"); // (aagtext) = aag_bp; aagleng = (size_t) (aag_cp - aag_bp); (aag_hold_char) = *aag_cp; *aag_cp = '\0'; (aag_c_buf_p) = aag_cp;; +UNSUPPORTED("apsw22y8tao100sq9bz9d48v1"); // do_action: /* This label is used only to access EOF actions. */ +UNSUPPORTED("8el9cnpl89mu1fuzqhwwf5qxk"); // switch ( aag_act ) +UNSUPPORTED("dco2y6y1hd2mnc3n7yoiq7qru"); // { /* beginning of action switch */ +UNSUPPORTED("66t1xamwgf1zbtor3asfj4mlj"); // case 0: /* must back up */ +UNSUPPORTED("8y7kg3jmm0mxlcmreiqklvczm"); // /* undo the effects of YY_DO_BEFORE_ACTION */ +UNSUPPORTED("edfoo8bmsxnzpivnh86hp8g4j"); // *aag_cp = (aag_hold_char); +UNSUPPORTED("5jmzc2p8ihqh3pl8yk426jjs8"); // aag_cp = (aag_last_accepting_cpos); +UNSUPPORTED("4bqktwvoql4rinftb1wb6bwux"); // aag_current_state = (aag_last_accepting_state); +UNSUPPORTED("2t20blf7b2e9uh29x86jqn0uu"); // goto aag_find_action; +UNSUPPORTED("4et457vtxvdfcniwgvkmgg27m"); // case 1: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("e9sweqn31kfcpevqzc35so2x7"); // return(EOF); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("ni2wdzcw22kpb7r5rbiir6um"); // case 2: +UNSUPPORTED("8fsfk45iz6r1xpxwqpgh87zzc"); // /* rule 2 can match eol */ +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("1om5gjxjxp5p6gu6fqz2e1z4d"); // line_num++; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("29xaavsx8kmwlhodww81f29mi"); // case 3: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("jx9vmge6p0hhmb643cbkitrm"); // (aag_start) = 1 + 2 *(1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9cpt0kyqy9di8h2cd6iika4bw"); // case 4: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("8vr3x5prkq9bx5x7yv4sasjrd"); // /* eat anything not a '*' */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("c7mpoiwvhax172146g6phlprw"); // case 5: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("dij0hf9wozgcp2ki3m2kifoig"); // /* eat up '*'s not followed by '/'s */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9k5fookwzuytueisvyyz0caqk"); // case 6: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("3wg696bpwfs7vhwcw7iif6yt6"); // (aag_start) = 1 + 2 *(0); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("2q7wq83jxx2tqprtgvfd30b2i"); // case 7: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("6xambzauc9qg5hiyrjp9cv94v"); // /* ignore C++-style comments */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("kmgl4qg4fe9op81j902qtcn6"); // case 8: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("6c3vej4do0hnpt0ddel7ijipo"); // ppDirective (); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3qm4f4fp7kvh4l1xcdwlzcdom"); // case 9: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("e3h3y3usy8rlcha932xyo8bb7"); // /* ignore shell-like comments */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9b848ct8iyxow7s4as982amzi"); // case 10: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("a2zmhocyae95g5xo9bfaljr7k"); // /* ignore whitespace */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("947tafpsnhhss094u71s9ubk9"); // case 11: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("87jhtwvxnhipza9f1s895uull"); // /* ignore BOM */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("2l2qmr4rskdcgekd3oqxqj7f2"); // case 12: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("5ps7dxq4k1qcbyiigtbvitzij"); // return(259); /* see tokens in agcanonstr */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4b055gsjgrpcvywbk7up4fg5l"); // case 13: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("1l0aw0zsqx2vbkr3zneykykxd"); // return(260); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8njscivqvdlk4vdfnqdcn9p48"); // case 14: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("eilvuennhlsv84ebtaqqz00iw"); // if (!graphType) graphType = 258; return(258); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("72drdinb4kuj1ahx4pw5lzm0v"); // case 15: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("s9a7uspzll6isipj7m07vk6h"); // if (!graphType) graphType = 261; return(261); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("556y3hjg8xc217kgz7oded7kt"); // case 16: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("3yeeq5bkp5kiybo6jn3eyjs2o"); // return(263); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("2gqru8meihkhpbhyd7jcdcsob"); // case 17: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("1avovk9rb0j1co3gabz86001b"); // return(262); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("cxgy20vpnrsxhz5ksw5ht4pww"); // case 18: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("3jmo6uhihr6ouy9u6117d2797"); // if (graphType == 261) return(264); else return('-'); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("alztpmrrh7gk4sd7fc990467l"); // case 19: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("e6ipohsip8k8qzqpgc992rx8c"); // if (graphType == 258) return(264); else return('-'); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6k7gr42ju1rb53hcb5rqnquyu"); // case 20: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("9nt30eaqhmml8uiohjf1h5hdb"); // { aaglval.str = (char*)agstrdup(Ag_G_global,aagtext); return(267); } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6in850eoepou96lnb2c2t1mpb"); // case 21: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("b15ywfomgq02hcjkw9ampx24y"); // { if (chkNum()) do { int aagless_macro_arg = (aagleng-1); ; *aag_cp = (aag_hold_char); (aag_c_buf_p) = aag_cp = aag_bp + aagless_macro_arg - 0; (aagtext) = aag_bp; aagleng = (size_t) (aag_cp - aag_bp); (aag_hold_char) = *aag_cp; *aag_cp = '\0'; (aag_c_buf_p) = aag_cp;; } while ( 0 ); aaglval.str = (char*)agstrdup(Ag_G_global,aagtext); return(267); } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("cl2w7n3yx4n622lafbt0bwfz1"); // case 22: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("ees73wgk7mwg9zrh612sgsvy1"); // (aag_start) = 1 + 2 *(2); beginstr(); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("27zayxvq2pc68g5ar0432yw9t"); // case 23: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("c5xf7sj3w7fr0pqstn18tj413"); // (aag_start) = 1 + 2 *(0); endstr(); return (268); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6z3m8132yn8zgtthzycjgz78x"); // case 24: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("8h6g770m5l5g215hhlrt2hx9n"); // addstr ("\""); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("952jh9bx0tpblu7shq5rrwpq2"); // case 25: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("8modtlsmam68shpdmcz87uq8h"); // addstr ("\\\\"); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("52vnyui9jklyykligf30zeaai"); // case 26: +UNSUPPORTED("4i9tx8f8c3v6bspkwavhtwano"); // /* rule 26 can match eol */ +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("a8vlwazdypu664ivx6wi8rko2"); // line_num++; /* ignore escaped newlines */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("5n1mokd7dgwogbhb2jas6mb00"); // case 27: +UNSUPPORTED("61heacv6izappfw5yjlcp4so4"); // /* rule 27 can match eol */ +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("3mzcrqnslnbq9vtv1zu9sule8"); // addstr(aagtext); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6gczfeucbsq4yjto6hu1ofs42"); // case 28: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("6g9v7q7xrlzfufvlruovef42p"); // (aag_start) = 1 + 2 *(3); html_nest = 1; beginstr(); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("f16p1igprp064qa5n56o1m2wc"); // case 29: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("f3otz7hfp3792v4zck6dvnmo3"); // html_nest--; if (html_nest) addstr(aagtext); else {(aag_start) = 1 + 2 *(0); endstr_html(); return (268);} +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("72s0wtcj4jofeozc8iz5zbhxl"); // case 30: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("aw1td26c2oe06ysc6u6vj8koz"); // html_nest++; addstr(aagtext); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6xefk8kdpp7y1m3tbc0tpw8wa"); // case 31: +UNSUPPORTED("7x4ipn0el32pfjyg76p0z4oz8"); // /* rule 31 can match eol */ +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("9xv0goh9ck9y3mkaftbg7vmfd"); // addstr(aagtext); line_num++; /* add newlines */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9m9x22bqi8pwhtev4msso0yze"); // case 32: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("3mzcrqnslnbq9vtv1zu9sule8"); // addstr(aagtext); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("18v1y33kqilsfbxil4b3yna75"); // case 33: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("92pt2p1sqtdccyfawj6shkj14"); // return (aagtext[0]); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7rr77fryfl2ub6miww7jg5y4o"); // case 34: +UNSUPPORTED("cbtwhhcbw0kd10g8r34kiet35"); // if ( aagleng > 0 ) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (aagtext[aagleng - 1] == '\n'); +UNSUPPORTED("6bhj3owfzoyf3s0aoqazgzy0q"); // do { if (fwrite( aagtext, aagleng, 1, aagout )) {} } while (0); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("82mqzfrl2p6jfpf29nu6fgxdb"); // case (35 + 0 + 1): +UNSUPPORTED("bqr4ckfep54whmo4876vkmecz"); // case (35 + 1 + 1): +UNSUPPORTED("1w19dr4ubkia25sdjfzomurdz"); // case (35 + 2 + 1): +UNSUPPORTED("byni6m925rj3a4njua63prne"); // case (35 + 3 + 1): +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("3effkdcc9bi9b7aubu1yn7krl"); // case 35: +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("av9evic7ammi9pcxoqac9s8fe"); // /* Amount of text matched not including the EOB char. */ +UNSUPPORTED("1jjcl1pqge71gvb9dki5a07ws"); // int aag_amount_of_matched_text = (int) (aag_cp - (aagtext)) - 1; +UNSUPPORTED("7pvmj2k0z8lp6jgvv2n65nbps"); // /* Undo the effects of YY_DO_BEFORE_ACTION. */ +UNSUPPORTED("a4qna0rrphiukyt2cx9xxl4uq"); // *aag_cp = (aag_hold_char); +UNSUPPORTED("ap1b7l55ctbh41rm7yh9a6jyo"); // if ( (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buffer_status == 0 ) +UNSUPPORTED("2mdt9jdl3qwktdzlvb0pw8fgo"); // { +UNSUPPORTED("1ukrm4fttw7velp3gbz6awwne"); // /* We're scanning a new file or input source. It's +UNSUPPORTED("ejpa48tia006kybs45czjbtse"); // * possible that this happened because the user +UNSUPPORTED("76e3nzz08z4fey19zqzdguph"); // * just pointed aagin at a new source and called +UNSUPPORTED("cqa8ospx14bmafy4npvtjj0k2"); // * aaglex(). If so, then we have to assure +UNSUPPORTED("e858my77taiun73kz47m00tta"); // * consistency between YY_CURRENT_BUFFER and our +UNSUPPORTED("8ythbpqr0qrfn0wl55uih2gds"); // * globals. Here is the right place to do so, because +UNSUPPORTED("3kdgw6xhyuplwsqtw1ya1pyns"); // * this is the first action (other than possibly a +UNSUPPORTED("8fy43ztshuc3bfbwy19xac2zl"); // * back-up) that will match for the new input source. +UNSUPPORTED("2y9k3dfnj3qua970vsvm0b9xt"); // */ +UNSUPPORTED("mdr9dqcs82gxgeyb3oe50yvc"); // (aag_n_chars) = (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_n_chars; +UNSUPPORTED("d7htwvsxyqjdvoqbre0141fdc"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_input_file = aagin; +UNSUPPORTED("2pqrlmsv489oepynhx1ctfsrd"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buffer_status = 1; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("ard8111msvx7284l35jzmp5y9"); // /* Note that here we test for aag_c_buf_p "<=" to the position +UNSUPPORTED("97ogb9i5xevnklykvrvxtsi97"); // * of the first EOB in the buffer, since aag_c_buf_p will +UNSUPPORTED("19jo527lj5j210hqmlrquzim5"); // * already have been incremented past the NUL character +UNSUPPORTED("2vscb9s7ubtgam0r7riyi9532"); // * (since all states make transitions on EOB to the +UNSUPPORTED("2mc3sssivepynss4pdzupko6m"); // * end-of-buffer state). Contrast this with the test +UNSUPPORTED("7gdu59sqyc5wdahkc2f0kmu3k"); // * in input(). +UNSUPPORTED("edw1ss2r31mqgsvca2gowi52v"); // */ +UNSUPPORTED("eqvop36r3g0w8y5r7s6o3eupd"); // if ( (aag_c_buf_p) <= &(aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf[(aag_n_chars)] ) +UNSUPPORTED("9clhogjc9o5uemyhl9hx7vs38"); // { /* This was really a NUL. */ +UNSUPPORTED("136dyc2eryl7aywuv0ri6zazd"); // aag_state_type aag_next_state; +UNSUPPORTED("ip2pkbcvc5wty9nphzk8ahqi"); // (aag_c_buf_p) = (aagtext) + aag_amount_of_matched_text; +UNSUPPORTED("dnttuw20ekafhnv84tucwwbw6"); // aag_current_state = aag_get_previous_state( ); +UNSUPPORTED("19i5bou5dpnrvnljd6c0zi7cs"); // /* Okay, we're now positioned to make the NUL +UNSUPPORTED("1zps4d1dwhg8g1u1jcscs77fp"); // * transition. We couldn't have +UNSUPPORTED("7lnrxsnfwfae9shztjlz5d2sj"); // * aag_get_previous_state() go ahead and do it +UNSUPPORTED("uvmaxaik4hf1hih46fejzlqo"); // * for us because it doesn't know how to deal +UNSUPPORTED("a3itb2gth3y61hczkkazgkqen"); // * with the possibility of jamming (and we don't +UNSUPPORTED("bsa6425l53922413u37n1by7w"); // * want to build jamming into it because then it +UNSUPPORTED("cs6ggz4s573xazs4k8oj0wacf"); // * will run more slowly). +UNSUPPORTED("2y9k3dfnj3qua970vsvm0b9xt"); // */ +UNSUPPORTED("6wfb6gr9sqw5321of6whv6g1n"); // aag_next_state = aag_try_NUL_trans( aag_current_state ); +UNSUPPORTED("47exoq6ktpu2z6qqmsrgjw8mn"); // aag_bp = (aagtext) + 0; +UNSUPPORTED("1z20nxzgjchfpg43kk6p2rxmb"); // if ( aag_next_state ) +UNSUPPORTED("4pcl1pdojya6hzq73u51kpoch"); // { +UNSUPPORTED("2f7302gvw3z5l0tvki3jgnl0q"); // /* Consume the NUL. */ +UNSUPPORTED("ewxmr5ocyniqq9kqdwnbryo5i"); // aag_cp = ++(aag_c_buf_p); +UNSUPPORTED("b2y561rlv42sr2t5b8ebldk2s"); // aag_current_state = aag_next_state; +UNSUPPORTED("ba9wj7om5zk7mol03zxpekt7j"); // goto aag_match; +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("cqgi8f4d37bqva8z6bx5rvn7w"); // else +UNSUPPORTED("4pcl1pdojya6hzq73u51kpoch"); // { +UNSUPPORTED("3nanwdupbkgohlzpjzoaukbr4"); // aag_cp = (aag_c_buf_p); +UNSUPPORTED("9l6wm3vx0rph8i8h7m4dcq34x"); // goto aag_find_action; +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("db3yodgf9sh6cnz3cf8qizzbr"); // else switch ( aag_get_next_buffer( ) ) +UNSUPPORTED("2mdt9jdl3qwktdzlvb0pw8fgo"); // { +UNSUPPORTED("4yd30eh9icuxnqotseihb7l4w"); // case 1: +UNSUPPORTED("4pcl1pdojya6hzq73u51kpoch"); // { +UNSUPPORTED("e4pcfhdqidvl3xfh8flankk0m"); // (aag_did_buffer_switch_on_eof) = 0; +UNSUPPORTED("8cpkysq4c2ufhdv2uclyjax2l"); // if ( aagwrap( ) ) +UNSUPPORTED("e928s13otj5jhz855y8um3tz8"); // { +UNSUPPORTED("5pvlvgzt9geyx90w8yok6qskk"); // /* Note: because we've taken care in +UNSUPPORTED("f2ael09dm75ew3qvb39e8dmqo"); // * aag_get_next_buffer() to have set up +UNSUPPORTED("azoxfeu7zbmcqm822xexak7a9"); // * aagtext, we can now set up +UNSUPPORTED("6n6tnxe89kixgxdvdyu3kderg"); // * aag_c_buf_p so that if some total +UNSUPPORTED("v9iirt1qdivb9mokpz8betax"); // * hoser (like flex itself) wants to +UNSUPPORTED("e6du46l70usukl02zbir6z3i6"); // * call the scanner after we return the +UNSUPPORTED("5xnn62l1dvx5zzamkjgowqgz0"); // * YY_NULL, it'll still work - another +UNSUPPORTED("5huja6w3dtx1wyo3didu5x71b"); // * YY_NULL will get returned. +UNSUPPORTED("2y9jwnvnhklvpvmeawdnqm8i2"); // */ +UNSUPPORTED("f3eyysgcmabvn5tt38wvn6vpj"); // (aag_c_buf_p) = (aagtext) + 0; +UNSUPPORTED("b38vk2yl7yd3ccilu78zpdbdw"); // aag_act = (35 + (((aag_start) - 1) / 2) + 1); +UNSUPPORTED("1kklaudkj34oc41ju7jowskat"); // goto do_action; +UNSUPPORTED("7qewsve9tto7ge11dkittrbpg"); // } +UNSUPPORTED("5dmwgqu6vf5e7mr3pnblxlzbr"); // else +UNSUPPORTED("e928s13otj5jhz855y8um3tz8"); // { +UNSUPPORTED("9igctqd1bmlpq7mo4bt3sj8c3"); // if ( ! (aag_did_buffer_switch_on_eof) ) +UNSUPPORTED("apt6qnupr74oq1rmuhce124oq"); // aagrestart(aagin ); +UNSUPPORTED("7qewsve9tto7ge11dkittrbpg"); // } +UNSUPPORTED("1dhrv6aj5eq8ntuvb7qbs8aot"); // break; +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("5hg15npsnnf19eml2makv9mgf"); // case 0: +UNSUPPORTED("5igou3g3x4fk7tev76iwuz4eu"); // (aag_c_buf_p) = +UNSUPPORTED("8z7l3eh0oo09flvmepzomf8p5"); // (aagtext) + aag_amount_of_matched_text; +UNSUPPORTED("1aotx4d0a8ouhfouerkr911ty"); // aag_current_state = aag_get_previous_state( ); +UNSUPPORTED("3nanwdupbkgohlzpjzoaukbr4"); // aag_cp = (aag_c_buf_p); +UNSUPPORTED("ak6tf6umjq968y5h6qwp3ceo3"); // aag_bp = (aagtext) + 0; +UNSUPPORTED("ba9wj7om5zk7mol03zxpekt7j"); // goto aag_match; +UNSUPPORTED("ewxk0u6la5xyi9w9bnvvvi27w"); // case 2: +UNSUPPORTED("5igou3g3x4fk7tev76iwuz4eu"); // (aag_c_buf_p) = +UNSUPPORTED("5818biabe0znc0ppmei5vo5wo"); // &(aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf[(aag_n_chars)]; +UNSUPPORTED("1aotx4d0a8ouhfouerkr911ty"); // aag_current_state = aag_get_previous_state( ); +UNSUPPORTED("3nanwdupbkgohlzpjzoaukbr4"); // aag_cp = (aag_c_buf_p); +UNSUPPORTED("ak6tf6umjq968y5h6qwp3ceo3"); // aag_bp = (aagtext) + 0; +UNSUPPORTED("9l6wm3vx0rph8i8h7m4dcq34x"); // goto aag_find_action; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("7tfrjvpj21qv1411du5f3lm34"); // aag_fatal_error( +UNSUPPORTED("ybsxsjxulyne6r7b32vyqqa4"); // "fatal flex scanner internal error--no action found" ); +UNSUPPORTED("b7lvqabjq0uf837l088tlw8kv"); // } /* end of action switch */ +UNSUPPORTED("thqyr6hhv3rcohnninr3k5q3"); // } /* end of scanning one token */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1bk2c3ez7bpnqxz6emq8dv629 +// static int aag_get_next_buffer (void) +public static Object aag_get_next_buffer(Object... arg) { +UNSUPPORTED("bntfc8vc6ws60twpz2ksf3ytd"); // static int aag_get_next_buffer (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7ebw6rt1a8gwit3l70juuhrut"); // register char *dest = (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf; +UNSUPPORTED("ep8exp77z0cdsbzoahv0n7pga"); // register char *source = (aagtext); +UNSUPPORTED("85flzwsp2wkcuz6e6p5ey0ja4"); // register int number_to_move, i; +UNSUPPORTED("aipx13znfwyxln9k8crlo39qe"); // int ret_val; +UNSUPPORTED("ft3hwcdb787h4u0eu9f0gq84"); // if ( (aag_c_buf_p) > &(aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf[(aag_n_chars) + 1] ) +UNSUPPORTED("7tfrjvpj21qv1411du5f3lm34"); // aag_fatal_error( +UNSUPPORTED("cqw5y0axbe6zpejdhw2kz5g37"); // "fatal flex scanner internal error--end of buffer missed" ); +UNSUPPORTED("79gs3w7jltoyaahske4enadi5"); // if ( (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_fill_buffer == 0 ) +UNSUPPORTED("6m10jh2mrvdgrq5kcutyjfag5"); // { /* Don't try to fill the buffer, so this is an EOF. */ +UNSUPPORTED("e47658a035mlx7e7nkbpn43e6"); // if ( (aag_c_buf_p) - (aagtext) - 0 == 1 ) +UNSUPPORTED("2mdt9jdl3qwktdzlvb0pw8fgo"); // { +UNSUPPORTED("edz3vn43zclgv62mlqerwztul"); // /* We matched a single character, the EOB, so +UNSUPPORTED("ddn9y5tn3j329gcb6g4qzn5bo"); // * treat this as a final EOF. +UNSUPPORTED("2y9k3dfnj3qua970vsvm0b9xt"); // */ +UNSUPPORTED("2gvt66h1ue0vdx0rjg7066zj5"); // return 1; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("2mdt9jdl3qwktdzlvb0pw8fgo"); // { +UNSUPPORTED("6p4qje014bli5jooxuv9gplax"); // /* We matched some text prior to the EOB, first +UNSUPPORTED("2zgir7cl8vs3jtvgsypy2cprv"); // * process it. +UNSUPPORTED("2y9k3dfnj3qua970vsvm0b9xt"); // */ +UNSUPPORTED("56avbgath9pkm0tr5vgc38blj"); // return 2; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("5iv5436jldi3r5zxc6cyesgt3"); // /* Try to read more data. */ +UNSUPPORTED("5gu7qax0c1v1a4pmunre2gpfc"); // /* First move last chars to start of buffer. */ +UNSUPPORTED("6c80q0czxg343aiz9kirv4lcf"); // number_to_move = (int) ((aag_c_buf_p) - (aagtext)) - 1; +UNSUPPORTED("ez6g2p84bd6n5fvmtci3lp5ey"); // for ( i = 0; i < number_to_move; ++i ) +UNSUPPORTED("14sjmc97aajazt787to7n4w8q"); // *(dest++) = *(source++); +UNSUPPORTED("9y3826ahw934er4dx6vzgbb98"); // if ( (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buffer_status == 2 ) +UNSUPPORTED("7v17eedbak69z08pul9m1ee0h"); // /* don't do the read, it's not guaranteed to return an EOF, +UNSUPPORTED("3tpu3we8b13sqp1mg1w6oosky"); // * just force an EOF +UNSUPPORTED("edw1ss2r31mqgsvca2gowi52v"); // */ +UNSUPPORTED("816mxs5qse46gpfyinnbmuelu"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_n_chars = (aag_n_chars) = 0; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("7411ae9sfh5a5sue0c5a6t9jd"); // aag_size_t num_to_read = +UNSUPPORTED("7p2gso32w93qf8mfa7c19dd4i"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buf_size - number_to_move - 1; +UNSUPPORTED("2lab0ejz2s9lpjigij4sy0k1h"); // while ( num_to_read <= 0 ) +UNSUPPORTED("5vqkxz0eyslb5vps9nth5smdi"); // { /* Not enough room in the buffer - grow it. */ +UNSUPPORTED("cb56koc4u4bh5car10xu0dn6z"); // /* just a shorter name for the current buffer */ +UNSUPPORTED("57z8rr3zk0z9khsbhykuxu8f7"); // YY_BUFFER_STATE b = (aag_buffer_stack)[(aag_buffer_stack_top)]; +UNSUPPORTED("73xg397okl0zo8gynw4zng1ke"); // int aag_c_buf_p_offset = +UNSUPPORTED("1219lzhygrtpy6if4axt26e6q"); // (int) ((aag_c_buf_p) - b->aag_ch_buf); +UNSUPPORTED("cruwi0gg9f33wqllvt84m81o"); // if ( b->aag_is_our_buffer ) +UNSUPPORTED("4pcl1pdojya6hzq73u51kpoch"); // { +UNSUPPORTED("5yo2d2rl188byncy10yrgxzqd"); // aag_size_t new_size = b->aag_buf_size * 2; +UNSUPPORTED("cw9ef12ijn3ivaqxpw82amgng"); // if ( new_size <= 0 ) +UNSUPPORTED("cvj6plivf0ytolhdcjfmykskk"); // b->aag_buf_size += b->aag_buf_size / 8; +UNSUPPORTED("5dmwgqu6vf5e7mr3pnblxlzbr"); // else +UNSUPPORTED("ebs3qp1orzgn5dkmp3ywh6rl5"); // b->aag_buf_size *= 2; +UNSUPPORTED("t0cgbfvq2iycyesyp42ox2vd"); // b->aag_ch_buf = (char *) +UNSUPPORTED("29w5kmsm7hhw6cok9tpv7juql"); // /* Include room in for 2 EOB chars. */ +UNSUPPORTED("3ckiwiugcrriz4h2tefqpz24s"); // aagrealloc((void *) b->aag_ch_buf,b->aag_buf_size + 2 ); +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("cqgi8f4d37bqva8z6bx5rvn7w"); // else +UNSUPPORTED("d073t5yhzx1z93fa1qs3qig1i"); // /* Can't grow it, we don't own it. */ +UNSUPPORTED("3buju5gen0sfqxk4qcf32ym1b"); // b->aag_ch_buf = 0; +UNSUPPORTED("c8x2050nl0s3jf5j0rjmlwb6i"); // if ( ! b->aag_ch_buf ) +UNSUPPORTED("3pnzyfuwgj63ox03srpnrx671"); // aag_fatal_error( +UNSUPPORTED("ddwv9qwbvjhwo8ogidsc3pkcx"); // "fatal error - scanner input buffer overflow" ); +UNSUPPORTED("23uwqhddabh2z0u142dlwaqgg"); // (aag_c_buf_p) = &b->aag_ch_buf[aag_c_buf_p_offset]; +UNSUPPORTED("3v3z6b3hxykqsnkm34v5vt5rr"); // num_to_read = (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buf_size - +UNSUPPORTED("5jdefmguv6za2qdk3aqk98yot"); // number_to_move - 1; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("4svgtot6766l3a8qotzee9wvw"); // if ( num_to_read > 8192 ) +UNSUPPORTED("1msizybwtesl5m6srryjf8r50"); // num_to_read = 8192; +UNSUPPORTED("9hh9s07ydq4w9w37dlrlncmbt"); // /* Read in more data. */ +UNSUPPORTED("6g59dwr892s73mmz5s1084rpw"); // if (( +UNSUPPORTED("28bayw02ppqcuffpcnzwuat5f"); // (aag_n_chars) = Disc->io->afread(Ifile, (&(aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf[number_to_move]), num_to_read)) < 0) aag_fatal_error( "input in flex scanner failed" ); +UNSUPPORTED("2uvf85bz227zpcsxn55l3cvsw"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_n_chars = (aag_n_chars); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("ah0h9w907nopolcfy6oyiwctm"); // if ( (aag_n_chars) == 0 ) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("2e0812f9qysrs1efjy2brmdet"); // if ( number_to_move == 0 ) +UNSUPPORTED("2mdt9jdl3qwktdzlvb0pw8fgo"); // { +UNSUPPORTED("ecuksii2a411xyljnmuh7c8io"); // ret_val = 1; +UNSUPPORTED("du8qw8rchee4hl3blu07sw364"); // aagrestart(aagin ); +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("2mdt9jdl3qwktdzlvb0pw8fgo"); // { +UNSUPPORTED("cnfvjf35p8z6jfgiaezhf7jnk"); // ret_val = 2; +UNSUPPORTED("2dy4yjkq71w7t5m682j0cm1do"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buffer_status = +UNSUPPORTED("8dhl80gn8b27c7954rwx13hpd"); // 2; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("2tlz7d1xig0tr630niwla9240"); // ret_val = 0; +UNSUPPORTED("cej0ij8gde9cqmlkewlcgbm5t"); // if ((aag_size_t) ((aag_n_chars) + number_to_move) > (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buf_size) { +UNSUPPORTED("8xt9rijm997e0dmpqnxn4tsce"); // /* Extend the array by 50%, plus the number we really need. */ +UNSUPPORTED("eoh92xe0ah4y9oioxbsfttwsl"); // aag_size_t new_size = (aag_n_chars) + number_to_move + ((aag_n_chars) >> 1); +UNSUPPORTED("cbqw1w6erw5da9h1syi4c81rq"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf = (char *) aagrealloc((void *) (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf,new_size ); +UNSUPPORTED("2w92ms8mfyj9c5vtlxgacptui"); // if ( ! (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf ) +UNSUPPORTED("bpvihnydln2vsx5j33w8sq0gq"); // aag_fatal_error( "out of dynamic memory in aag_get_next_buffer()" ); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6pgwguxop58ea3opnzwrkudrv"); // (aag_n_chars) += number_to_move; +UNSUPPORTED("8k7xb1uamjt1og4y1mbhrq5le"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf[(aag_n_chars)] = 0; +UNSUPPORTED("dng2s9q40h2aln7hzu7fa508"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf[(aag_n_chars) + 1] = 0; +UNSUPPORTED("9zeakom5x40jklkzebzu09ooq"); // (aagtext) = &(aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf[0]; +UNSUPPORTED("c5segzlua9r3zhvzijt0rr81e"); // return ret_val; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dge0pk480ox74sfkkc1y9j2az +// static aag_state_type aag_get_previous_state (void) +public static Object aag_get_previous_state(Object... arg) { +UNSUPPORTED("2f7ywxbd41kv0w35fr0s3gwtv"); // static aag_state_type aag_get_previous_state (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eyp458tyziuc5smdf8nmisuv0"); // register aag_state_type aag_current_state; +UNSUPPORTED("8uf0gbbm46tqgc4hioxy8vjiz"); // register char *aag_cp; +UNSUPPORTED("bieja928rkcqrr592kae9apln"); // aag_current_state = (aag_start); +UNSUPPORTED("jczmn8egwv4b13o2oyfr7nrl"); // aag_current_state += ((aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol); +UNSUPPORTED("9b7y7lw6mfst8xpmeih019ad"); // for ( aag_cp = (aagtext) + 0; aag_cp < (aag_c_buf_p); ++aag_cp ) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("7qllmw83ohozx15rcagotofz5"); // register YY_CHAR aag_c = (*aag_cp ? aag_ec[((unsigned int) (unsigned char) *aag_cp)] : 1); +UNSUPPORTED("313py7stvip1doqr47qqt0la0"); // if ( aag_accept[aag_current_state] ) +UNSUPPORTED("2mdt9jdl3qwktdzlvb0pw8fgo"); // { +UNSUPPORTED("e7sxeyap3mdy720wtkcdplou5"); // (aag_last_accepting_state) = aag_current_state; +UNSUPPORTED("8qjgsamzeoh109vb22f604x7t"); // (aag_last_accepting_cpos) = aag_cp; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("4h466p7keybrkr5v3giksps4p"); // while ( aag_chk[aag_base[aag_current_state] + aag_c] != aag_current_state ) +UNSUPPORTED("2mdt9jdl3qwktdzlvb0pw8fgo"); // { +UNSUPPORTED("aajkf5dqhvqmw3f9n7p38pj6r"); // aag_current_state = (int) aag_def[aag_current_state]; +UNSUPPORTED("9yopsiwk4yoadiay9h9cv9ehi"); // if ( aag_current_state >= 93 ) +UNSUPPORTED("7vv9ddmvdeq6bgnhu9nrcnxvm"); // aag_c = aag_meta[(unsigned int) aag_c]; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("51p9ejc6sf5qknsjvtayasozy"); // aag_current_state = aag_nxt[aag_base[aag_current_state] + (unsigned int) aag_c]; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("byo2sznczq4ymhtli73pm3udl"); // return aag_current_state; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1bqrp6l15lwke1ldr6rocxdac +// static aag_state_type aag_try_NUL_trans (aag_state_type aag_current_state ) +public static Object aag_try_NUL_trans(Object... arg) { +UNSUPPORTED("1c5zau9pxlkse3pyxct71b9b6"); // static aag_state_type aag_try_NUL_trans (aag_state_type aag_current_state ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5cttrvxgf8tj171oltic9kuxk"); // register int aag_is_jam; +UNSUPPORTED("607lnmo0y2p5f2uu142fznvum"); // register char *aag_cp = (aag_c_buf_p); +UNSUPPORTED("dom9fqyl48xmfjoext3bee9m3"); // register YY_CHAR aag_c = 1; +UNSUPPORTED("31kqmiupr0r27efmb8f7imz5i"); // if ( aag_accept[aag_current_state] ) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("dgv7pz2zpo0js8rtzn1ni3x7v"); // (aag_last_accepting_state) = aag_current_state; +UNSUPPORTED("7p069a7s6dmsdw8ysdduj38wm"); // (aag_last_accepting_cpos) = aag_cp; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("m4dsqto0nhwwx0m59nbspfk1"); // while ( aag_chk[aag_base[aag_current_state] + aag_c] != aag_current_state ) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("85khbtsksdmgyqrfzhgdys0g3"); // aag_current_state = (int) aag_def[aag_current_state]; +UNSUPPORTED("9a13x8h85yf4gv3bob5ag8x9f"); // if ( aag_current_state >= 93 ) +UNSUPPORTED("e1mfyn6wjy9wyaq80y0xgwjhr"); // aag_c = aag_meta[(unsigned int) aag_c]; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("14xmpnv4kpg47d1zmttc99fz0"); // aag_current_state = aag_nxt[aag_base[aag_current_state] + (unsigned int) aag_c]; +UNSUPPORTED("13un885faeok3sujcnk8wsrm3"); // aag_is_jam = (aag_current_state == 92); +UNSUPPORTED("6l9txnev1x47auh1g4bpko864"); // return aag_is_jam ? 0 : aag_current_state; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 kz1k3qeyyshqirx2726nc2lb +// static void aagunput (int c, register char * aag_bp ) +public static Object aagunput(Object... arg) { +UNSUPPORTED("6qb36grs4pj0ke1dlwgx370i1"); // static void aagunput (int c, register char * aag_bp ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8uf0gbbm46tqgc4hioxy8vjiz"); // register char *aag_cp; +UNSUPPORTED("3rlqat2geccfwfzu8sgn63j61"); // aag_cp = (aag_c_buf_p); +UNSUPPORTED("9oaabjtrdlssvq6fvlwffi1f2"); // /* undo effects of setting up aagtext */ +UNSUPPORTED("11cebwack73ecjllyd3vaefq4"); // *aag_cp = (aag_hold_char); +UNSUPPORTED("3mir5tgsoqs63hlvlewrogbvr"); // if ( aag_cp < (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf + 2 ) +UNSUPPORTED("14vg05mqua5r457g6eyrugk5q"); // { /* need to shift things up to make room */ +UNSUPPORTED("1ec7aezzerjgwgwx53i84wstu"); // /* +2 for EOB chars. */ +UNSUPPORTED("b87cedaxmgerhw9uxiuys7af3"); // register aag_size_t number_to_move = (aag_n_chars) + 2; +UNSUPPORTED("7c3v153qetipljsaewu70fefp"); // register char *dest = &(aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf[ +UNSUPPORTED("bj56edmxlh2xzs98iz0i5xcah"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buf_size + 2]; +UNSUPPORTED("dqsiggiv5ytfmlvfbgfomuzkx"); // register char *source = +UNSUPPORTED("2n82mug2j3rzge4uc8kl6gemy"); // &(aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf[number_to_move]; +UNSUPPORTED("997on72fary1gmvda0adob8e2"); // while ( source > (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf ) +UNSUPPORTED("4o5m6d8nlzgd7ivcwrah26ssf"); // *--dest = *--source; +UNSUPPORTED("7fav6sgyuoyymce07cmiwfgrl"); // aag_cp += (int) (dest - source); +UNSUPPORTED("4hwl1p0ol7p3jlw8t1v4iy3dm"); // aag_bp += (int) (dest - source); +UNSUPPORTED("8ggnn11a3zgylsepvdmi403jw"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_n_chars = +UNSUPPORTED("c12ay56bgt5zgecfp6csc78py"); // (aag_n_chars) = (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buf_size; +UNSUPPORTED("9qwx52jdmrqtblu9k27dw2n5j"); // if ( aag_cp < (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf + 2 ) +UNSUPPORTED("2l6f8vs2equ9c6umygyh46k17"); // aag_fatal_error( "flex scanner push-back overflow" ); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("1pzi72hhrtp5tjgv7agsfcrnf"); // *--aag_cp = (char) c; +UNSUPPORTED("dq0ryg1dmq4j646ibu68d5b64"); // (aagtext) = aag_bp; +UNSUPPORTED("ee6jtq1rwjxor1054gu7uvbkq"); // (aag_hold_char) = *aag_cp; +UNSUPPORTED("8toiq63heg2dnnwc1uzhvahm9"); // (aag_c_buf_p) = aag_cp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 23mhytvy8ivrz8bn5qfjy7jm5 +// static int input (void) +public static Object input(Object... arg) { +UNSUPPORTED("8vrkofm3h8bcnpmtcw7xt22kr"); // static int input (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bf60xh4vwy9e0mvwv89b3f8cu"); // int c; +UNSUPPORTED("f2j3r93ldwabmgkvopbu8ke69"); // *(aag_c_buf_p) = (aag_hold_char); +UNSUPPORTED("c8eyfnv59jx8hpsjk089mtwrr"); // if ( *(aag_c_buf_p) == 0 ) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("b32kgmqpglza1bwirwnd6tlkl"); // /* aag_c_buf_p now points to the character we want to return. +UNSUPPORTED("1hq4yhwl0fx75o15jngw0ihb9"); // * If this occurs *before* the EOB characters, then it's a +UNSUPPORTED("f0bzc3s2oxed7pb8q34p648qy"); // * valid NUL; if not, then we've hit the end of the buffer. +UNSUPPORTED("edw1ss2r31mqgsvca2gowi52v"); // */ +UNSUPPORTED("ery3od70l5wa0sz5nqawbvems"); // if ( (aag_c_buf_p) < &(aag_buffer_stack)[(aag_buffer_stack_top)]->aag_ch_buf[(aag_n_chars)] ) +UNSUPPORTED("32h5pb0mkqm4y03b8eybnh4mp"); // /* This was really a NUL. */ +UNSUPPORTED("5n4fw7opgc3vyuqhdl9s5erhg"); // *(aag_c_buf_p) = '\0'; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("7jppcthnpiitb724w59fg08vn"); // { /* need more input */ +UNSUPPORTED("4kiy5u9c2j6xbnjs99ouhtt50"); // aag_size_t offset = (aag_c_buf_p) - (aagtext); +UNSUPPORTED("f0eo1b9yirx22lyq6rll7v2ly"); // ++(aag_c_buf_p); +UNSUPPORTED("aexb0uyz5zg1fozkicu5sbmg8"); // switch ( aag_get_next_buffer( ) ) +UNSUPPORTED("4pcl1pdojya6hzq73u51kpoch"); // { +UNSUPPORTED("zs8i523h032f7caqsscettcf"); // case 2: +UNSUPPORTED("wwb9heihlmibsfsk93ug6kah"); // /* This happens because aag_g_n_b() +UNSUPPORTED("cay0jfu5p5z0uf8v7zaxuhqv3"); // * sees that we've accumulated a +UNSUPPORTED("5nb4ylc94zsre9qm9tqb913kk"); // * token and flags that we need to +UNSUPPORTED("bu1eyl05r0dcoh5bvhilyf33w"); // * try matching the token before +UNSUPPORTED("e920mo2stwad3a7t16p9c67i2"); // * proceeding. But for input(), +UNSUPPORTED("arhq65ae9riiq10uwiv7kyrw9"); // * there's no matching to consider. +UNSUPPORTED("3gkh77x2y5ieqqohy07a19d72"); // * So convert the EOB_ACT_LAST_MATCH +UNSUPPORTED("bi4v3ylk18fw58gaxmlii0vgt"); // * to EOB_ACT_END_OF_FILE. +UNSUPPORTED("2y9jwnvnhklvpvmeawdnqm8i2"); // */ +UNSUPPORTED("9pds58wgqhghti0xhbd56ey3"); // /* Reset buffer status. */ +UNSUPPORTED("e604jkju2d2uxstj1rcgnpwzf"); // aagrestart(aagin ); +UNSUPPORTED("3p8lrx0z9pmfvk0ung8t0k5gw"); // /*FALLTHROUGH*/ +UNSUPPORTED("55sc5kjxx194qbywunw6ie4tq"); // case 1: +UNSUPPORTED("e928s13otj5jhz855y8um3tz8"); // { +UNSUPPORTED("8vgbl2qps52inifu5y46ybcb3"); // if ( aagwrap( ) ) +UNSUPPORTED("beelx35ltrjy6zawc0jvwlmdy"); // return EOF; +UNSUPPORTED("9igctqd1bmlpq7mo4bt3sj8c3"); // if ( ! (aag_did_buffer_switch_on_eof) ) +UNSUPPORTED("apt6qnupr74oq1rmuhce124oq"); // aagrestart(aagin ); +UNSUPPORTED("77mnxqllv81bh7cvexbu27yd0"); // return input(); +UNSUPPORTED("7qewsve9tto7ge11dkittrbpg"); // } +UNSUPPORTED("ch7zw859io5htnhxq7j7g62v"); // case 0: +UNSUPPORTED("asfd0yomhggpw8xczfs2rcq0r"); // (aag_c_buf_p) = (aagtext) + offset; +UNSUPPORTED("6ioth986rfbv208dp59shjy15"); // break; +UNSUPPORTED("cysnuxd51taci3hbg5lifz8ce"); // } +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("eq7rg75ncqkmice90l768lltk"); // c = *(unsigned char *) (aag_c_buf_p); /* cast for 8-bit char's */ +UNSUPPORTED("2pzbicuaj8qxlozp4jb49ela9"); // *(aag_c_buf_p) = '\0'; /* preserve aagtext */ +UNSUPPORTED("63aemjzvkjbuuwy5niv1p8ems"); // (aag_hold_char) = *++(aag_c_buf_p); +UNSUPPORTED("7mz0nhmwr7rhmhe4726mxy930"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_at_bol = (c == '\n'); +UNSUPPORTED("7q6l09k0u87z31e0nmv2lwr94"); // return c; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b91gjad0l9xznwagmx7tqnomu +// void aagrestart (FILE * input_file ) +public static Object aagrestart(Object... arg) { +UNSUPPORTED("a7s7ae3oh1mpb0t6l6gwghp8t"); // void aagrestart (FILE * input_file ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4cjxiuze5n97ut49tnlx7f0xu"); // if ( ! ( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL) ){ +UNSUPPORTED("50o2qy0tkzxph6w8v4gybs11"); // aagensure_buffer_stack (); +UNSUPPORTED("4uzesnnzwv3eg6zjha19j70aj"); // (aag_buffer_stack)[(aag_buffer_stack_top)] = +UNSUPPORTED("cdlpme9zcovn7oia109nftsnu"); // aag_create_buffer(aagin,16384 ); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("b96548w382ibaotlsxjpmslh2"); // aag_init_buffer(( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL),input_file ); +UNSUPPORTED("a4b2f8asd493ruq5ci95a6m81"); // aag_load_buffer_state( ); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 418kp3955qaorltr2gp3n7hr3 +// void aag_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +public static Object aag_switch_to_buffer(Object... arg) { +UNSUPPORTED("7s07x3nube8908f082kwgj234"); // void aag_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9t2da7w0dy6ecggk3f3lrrzln"); // /* TODO. We should be able to replace this entire function body +UNSUPPORTED("6khfrwvr9ws4yzopxjkiwe8l"); // * with +UNSUPPORTED("9rsuoxcu7gx52b6otrhhwtbp7"); // * aagpop_buffer_state(); +UNSUPPORTED("eocuxrrwbo1wfytacznzt7kdp"); // * aagpush_buffer_state(new_buffer); +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("agzt1ivnppc6nqqlyw5uo8amy"); // aagensure_buffer_stack (); +UNSUPPORTED("2t3t5pfo25q325w207ho598um"); // if ( ( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL) == new_buffer ) +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("aqaux0xumrbi1suoc6u75bn9h"); // if ( ( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL) ) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("hjirhak021dywcjxs66ukoqh"); // /* Flush out information for old buffer. */ +UNSUPPORTED("cbtw5voc0x2dgb1nir3oodu4h"); // *(aag_c_buf_p) = (aag_hold_char); +UNSUPPORTED("1lg74bgprfb93mb6yie4nebk2"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buf_pos = (aag_c_buf_p); +UNSUPPORTED("2uvf85bz227zpcsxn55l3cvsw"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_n_chars = (aag_n_chars); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("8zeem234b4537a5t9ii8mjp5e"); // (aag_buffer_stack)[(aag_buffer_stack_top)] = new_buffer; +UNSUPPORTED("a4b2f8asd493ruq5ci95a6m81"); // aag_load_buffer_state( ); +UNSUPPORTED("azal5032o9c7tkzm8qk3rv7np"); // /* We don't actually know whether we did this switch during +UNSUPPORTED("3zs2zt7i904jm2iq5o5xye4ud"); // * EOF (aagwrap()) processing, but the only time this flag +UNSUPPORTED("1msm0c25dbdvj3ng1fyovpk1a"); // * is looked at is after aagwrap() is called, so it's safe +UNSUPPORTED("bxcz3h8s1o9spx7fi7mo2v5t8"); // * to go ahead and always set it. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("8hdw1gealimged5gkvfrv62pl"); // (aag_did_buffer_switch_on_eof) = 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2n1quqa5b6mm0p65k3ewgjdll +// static void aag_load_buffer_state (void) +public static Object aag_load_buffer_state(Object... arg) { +UNSUPPORTED("m33qzmtmg0y53g5pbnlx9mmy"); // static void aag_load_buffer_state (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9thlshhzkqrol5z7lpkm8f7wd"); // (aag_n_chars) = (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_n_chars; +UNSUPPORTED("6cc5nb0zuwi0rv2esfs7inl4"); // (aagtext) = (aag_c_buf_p) = (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buf_pos; +UNSUPPORTED("a93nq970fiu3j1tyhej3qvj4g"); // aagin = (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_input_file; +UNSUPPORTED("exnttys65gikok2rjt0w4ruaq"); // (aag_hold_char) = *(aag_c_buf_p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bz2sdl6duvmrjgptg3i8pek7d +// YY_BUFFER_STATE aag_create_buffer (FILE * file, int size ) +public static Object aag_create_buffer(Object... arg) { +UNSUPPORTED("9a1gw2xo54z6vxuqswldwr5vh"); // YY_BUFFER_STATE aag_create_buffer (FILE * file, int size ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("17fp4sigd3bnfjdj56aiskloz"); // YY_BUFFER_STATE b; +UNSUPPORTED("7mrf0i5kql5xndjgllkbconxd"); // b = (YY_BUFFER_STATE) aagalloc(sizeof( struct aag_buffer_state ) ); +UNSUPPORTED("6dbppvcge8q0qzkzswhskafq0"); // if ( ! b ) +UNSUPPORTED("2f1vsk88rl2oqimdpnpm8sbvq"); // aag_fatal_error( "out of dynamic memory in aag_create_buffer()" ); +UNSUPPORTED("2l43p529tfo79vh9xkwoo3hfy"); // b->aag_buf_size = size; +UNSUPPORTED("ldv2j51bh7c79f2rsjvhe820"); // /* aag_ch_buf has to be 2 characters longer than the size given because +UNSUPPORTED("8mnlk977roejchmemdihfilf7"); // * we need to put in 2 end-of-buffer characters. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("31zfpac9sot6bus0zxh28dkzl"); // b->aag_ch_buf = (char *) aagalloc(b->aag_buf_size + 2 ); +UNSUPPORTED("8ht37kqb7ryerqc8kd1kxxdkf"); // if ( ! b->aag_ch_buf ) +UNSUPPORTED("2f1vsk88rl2oqimdpnpm8sbvq"); // aag_fatal_error( "out of dynamic memory in aag_create_buffer()" ); +UNSUPPORTED("89nlcck0onq0z5nju1h6dihhw"); // b->aag_is_our_buffer = 1; +UNSUPPORTED("3fyqvxxu8l41l1e6xbgis2d1u"); // aag_init_buffer(b,file ); +UNSUPPORTED("1lucb0x0v3ldgueqifh95nl1u"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cvxw0l0ojnracqk5o3c07vf4m +// void aag_delete_buffer (YY_BUFFER_STATE b ) +public static Object aag_delete_buffer(Object... arg) { +UNSUPPORTED("bpqurydddo1eg834j6t2mywht"); // void aag_delete_buffer (YY_BUFFER_STATE b ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6dbppvcge8q0qzkzswhskafq0"); // if ( ! b ) +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("94idskdictwqhs2ac1rj9d7r6"); // if ( b == ( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL) ) /* Not sure if we should pop here. */ +UNSUPPORTED("4zc83wd4y6h4wy7o1wv0p4tp8"); // (aag_buffer_stack)[(aag_buffer_stack_top)] = (YY_BUFFER_STATE) 0; +UNSUPPORTED("ak41c36nk6zr2evsd18682lgj"); // if ( b->aag_is_our_buffer ) +UNSUPPORTED("3432oq780g8u0ny62vr5d09pe"); // aagfree((void *) b->aag_ch_buf ); +UNSUPPORTED("6lktqk4nw3nqopq8oknapaczq"); // aagfree((void *) b ); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8z0ws8ykdt2m53k269y0s3uau +// static void aag_init_buffer (YY_BUFFER_STATE b, FILE * file ) +public static Object aag_init_buffer(Object... arg) { +UNSUPPORTED("7j4p3tv8442q9xyfpqokcny92"); // static void aag_init_buffer (YY_BUFFER_STATE b, FILE * file ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("283psyjlfno8q88uy4cq6jwz9"); // int oerrno = errno; +UNSUPPORTED("e2pfyytd28ykmms2nr0ew4cqn"); // aag_flush_buffer(b ); +UNSUPPORTED("25q4tcfugzmy3edj76t2c5ih3"); // b->aag_input_file = file; +UNSUPPORTED("ahv8zvzf22w9n5ep104x6va7"); // b->aag_fill_buffer = 1; +UNSUPPORTED("2hy7ism50yh61htolfxci8esf"); // /* If b is the current buffer, then aag_init_buffer was _probably_ +UNSUPPORTED("19txf0i7d5sz9risud1w8vrig"); // * called from aagrestart() or through aag_get_next_buffer. +UNSUPPORTED("7lzjjm1jn1acrxrh1eyxcev5r"); // * In that case, we don't want to reset the lineno or column. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("4r35eb6ury607b1mzssz9on3l"); // if (b != ( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL)){ +UNSUPPORTED("dzo34o77efru78xpifgs7z17e"); // b->aag_bs_lineno = 1; +UNSUPPORTED("95t1fosxhhfjmawjuui0dixyv"); // b->aag_bs_column = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a2a0czceeuuuggzlak63rtqdm"); // b->aag_is_interactive = file ? (0 > 0) : 0; +UNSUPPORTED("72x3uklh05naqgu261srbg39y"); // errno = oerrno; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 euu43g3i43888wantq0lgdqe8 +// void aag_flush_buffer (YY_BUFFER_STATE b ) +public static Object aag_flush_buffer(Object... arg) { +UNSUPPORTED("5rlwsfuuevgt6j59owhk0vsyc"); // void aag_flush_buffer (YY_BUFFER_STATE b ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3dq1hii77jc6u73twyfvwl3a9"); // if ( ! b ) +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("6cbsupelvfb558shx2yb0yvcm"); // b->aag_n_chars = 0; +UNSUPPORTED("3v8ttgsv16fumgfkgzlch3q2f"); // /* We always need two end-of-buffer characters. The first causes +UNSUPPORTED("3yrb5f5ki8bec2r96pcs01d39"); // * a transition to the end-of-buffer state. The second causes +UNSUPPORTED("67kt17e65snnq433p7xw2ooew"); // * a jam in that state. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("4w5064pru48ayz24yik2t9wma"); // b->aag_ch_buf[0] = 0; +UNSUPPORTED("838e325iarhiw21926btrglcx"); // b->aag_ch_buf[1] = 0; +UNSUPPORTED("8dzmx2vrua5b75y3ujfdhou5n"); // b->aag_buf_pos = &b->aag_ch_buf[0]; +UNSUPPORTED("czoo07g9uc4a29dyf1qk4v765"); // b->aag_at_bol = 1; +UNSUPPORTED("2hqsp77qbwwdprmfq4hf8u4uu"); // b->aag_buffer_status = 0; +UNSUPPORTED("etbmfw4pqxcunac5so844cqju"); // if ( b == ( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL) ) +UNSUPPORTED("5vdfn4vw8baq4bh6qaiza5ces"); // aag_load_buffer_state( ); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 19g3ujgwn6wfrv2pvydtxr75 +// void aagpush_buffer_state (YY_BUFFER_STATE new_buffer ) +public static Object aagpush_buffer_state(Object... arg) { +UNSUPPORTED("7dnx37wzyytlwuntjzywbpjrz"); // void aagpush_buffer_state (YY_BUFFER_STATE new_buffer ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cyx0t99hvvlwtgheo3d1slkbf"); // if (new_buffer == NULL) +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("8qtcqfmnpmz9w58dyr1fap6hz"); // aagensure_buffer_stack(); +UNSUPPORTED("aoawljluu5zfqg5fymr0tnk1b"); // /* This block is copied from aag_switch_to_buffer. */ +UNSUPPORTED("aqaux0xumrbi1suoc6u75bn9h"); // if ( ( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL) ) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("hjirhak021dywcjxs66ukoqh"); // /* Flush out information for old buffer. */ +UNSUPPORTED("cbtw5voc0x2dgb1nir3oodu4h"); // *(aag_c_buf_p) = (aag_hold_char); +UNSUPPORTED("1lg74bgprfb93mb6yie4nebk2"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_buf_pos = (aag_c_buf_p); +UNSUPPORTED("2uvf85bz227zpcsxn55l3cvsw"); // (aag_buffer_stack)[(aag_buffer_stack_top)]->aag_n_chars = (aag_n_chars); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("eilb2lnorspm9kmjezs2hxn6q"); // /* Only push if top exists. Otherwise, replace top. */ +UNSUPPORTED("ecdndvrvbw37q3nfvqrhf4fie"); // if (( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL)) +UNSUPPORTED("9qfx6cgnnxlimtsgx31ehy9b1"); // (aag_buffer_stack_top)++; +UNSUPPORTED("8zeem234b4537a5t9ii8mjp5e"); // (aag_buffer_stack)[(aag_buffer_stack_top)] = new_buffer; +UNSUPPORTED("ekjsdu753i856myudmzi333d1"); // /* copied from aag_switch_to_buffer. */ +UNSUPPORTED("a4b2f8asd493ruq5ci95a6m81"); // aag_load_buffer_state( ); +UNSUPPORTED("8hdw1gealimged5gkvfrv62pl"); // (aag_did_buffer_switch_on_eof) = 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 27b1vcsegbixqbqjzrwamdpcn +// void aagpop_buffer_state (void) +public static Object aagpop_buffer_state(Object... arg) { +UNSUPPORTED("aho9q6pa29mrtlxb4s78qp3od"); // void aagpop_buffer_state (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("duicdoe269odnnlbpzbnz3h81"); // if (!( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL)) +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("5umm8ltd4b6a51xpblbqy8qks"); // aag_delete_buffer(( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL) ); +UNSUPPORTED("chiisjorqoelih8jlfxzlaf2i"); // (aag_buffer_stack)[(aag_buffer_stack_top)] = NULL; +UNSUPPORTED("8swzz3wyezeggvlkr1py1q29l"); // if ((aag_buffer_stack_top) > 0) +UNSUPPORTED("61uxz7tnjcvsal7zy3z8slfps"); // --(aag_buffer_stack_top); +UNSUPPORTED("cnx6esgchi9pvf0hgjtmjt435"); // if (( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL)) { +UNSUPPORTED("5vdfn4vw8baq4bh6qaiza5ces"); // aag_load_buffer_state( ); +UNSUPPORTED("9szgmfl0nm285xgd2r9vfx5xo"); // (aag_did_buffer_switch_on_eof) = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1iyph8hj357vj714inph32tcl +// static void aagensure_buffer_stack (void) +public static Object aagensure_buffer_stack(Object... arg) { +UNSUPPORTED("3sdjpuqouzn047v1nnvh67d1l"); // static void aagensure_buffer_stack (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a2hcrxfa6lo4empmzpuqcivi1"); // aag_size_t num_to_alloc; +UNSUPPORTED("29cci2yfdmiw9anfb27tuqtz7"); // if (!(aag_buffer_stack)) { +UNSUPPORTED("d1qyxv4ky4vyqiqajtnkwoqjk"); // /* First allocation is just for 2 elements, since we don't know if this +UNSUPPORTED("1ejcjlgelylmli8wh7uj2fq2f"); // * scanner will even need a stack. We use 2 instead of 1 to avoid an +UNSUPPORTED("4obpjr8hh2hqvqqjkrokd638y"); // * immediate realloc on the next call. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("4ewxpgeg2iqq5hl0bwkybovkc"); // num_to_alloc = 1; +UNSUPPORTED("9ju5ond0u4zrfz0v8p0j01l3y"); // (aag_buffer_stack) = (struct aag_buffer_state**)aagalloc +UNSUPPORTED("8oezffgujlxcgxnb9h4o3lxjv"); // (num_to_alloc * sizeof(struct aag_buffer_state*) +UNSUPPORTED("9tah2dk3dzghm88w1iv765ug1"); // ); +UNSUPPORTED("10l1leyl9wq6ubkuu0h8trd75"); // if ( ! (aag_buffer_stack) ) +UNSUPPORTED("eayag7q8kugt9vndqw2b8geiq"); // aag_fatal_error( "out of dynamic memory in aagensure_buffer_stack()" ); +UNSUPPORTED("68gh3oqf36qrvfl7oyy3bvkv7"); // memset((aag_buffer_stack), 0, num_to_alloc * sizeof(struct aag_buffer_state*)); +UNSUPPORTED("e8i8xuvufgmwrgzewq07k0lhh"); // (aag_buffer_stack_max) = num_to_alloc; +UNSUPPORTED("8juns3p4niqfeqfuqfaux3np7"); // (aag_buffer_stack_top) = 0; +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2h8rn6lifnrrpjvtqrzspppaj"); // if ((aag_buffer_stack_top) >= ((aag_buffer_stack_max)) - 1){ +UNSUPPORTED("16vxkn1s1f3fzkucpkffvkyqo"); // /* Increase the buffer to prepare for a possible push. */ +UNSUPPORTED("b4ih8ipe8yvjlfyuadrh03d7f"); // int grow_size = 8 /* arbitrary grow size */; +UNSUPPORTED("aa1un5vm8egsjsou4l4iegl3k"); // num_to_alloc = (aag_buffer_stack_max) + grow_size; +UNSUPPORTED("3ucjxe5tj3edok5k5y3anw2p7"); // (aag_buffer_stack) = (struct aag_buffer_state**)aagrealloc +UNSUPPORTED("2orrmpxhoj5k2nlwrh09qw04q"); // ((aag_buffer_stack), +UNSUPPORTED("cvog4q9qv8mf3yugscs36y940"); // num_to_alloc * sizeof(struct aag_buffer_state*) +UNSUPPORTED("9tah2dk3dzghm88w1iv765ug1"); // ); +UNSUPPORTED("10l1leyl9wq6ubkuu0h8trd75"); // if ( ! (aag_buffer_stack) ) +UNSUPPORTED("eayag7q8kugt9vndqw2b8geiq"); // aag_fatal_error( "out of dynamic memory in aagensure_buffer_stack()" ); +UNSUPPORTED("4ak2m3t1ocbdxila5qx1volyf"); // /* zero only the new slots.*/ +UNSUPPORTED("c9lnuv46scld9i8iqxdhatczy"); // memset((aag_buffer_stack) + (aag_buffer_stack_max), 0, grow_size * sizeof(struct aag_buffer_state*)); +UNSUPPORTED("e8i8xuvufgmwrgzewq07k0lhh"); // (aag_buffer_stack_max) = num_to_alloc; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7yvjra4z1kimbp0xfvzml1ge1 +// YY_BUFFER_STATE aag_scan_buffer (char * base, aag_size_t size ) +public static Object aag_scan_buffer(Object... arg) { +UNSUPPORTED("34agdjyirk3pcfm9jjwp8i13w"); // YY_BUFFER_STATE aag_scan_buffer (char * base, aag_size_t size ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("17fp4sigd3bnfjdj56aiskloz"); // YY_BUFFER_STATE b; +UNSUPPORTED("evnj0omz1k4vp0xmr9r940ds6"); // if ( size < 2 || +UNSUPPORTED("15qfhapzt12li01fk2db08sw0"); // base[size-2] != 0 || +UNSUPPORTED("dn5vk4urvf83ftd9ls9br9h2v"); // base[size-1] != 0 ) +UNSUPPORTED("76i2nlud0sudn1zbabaw51s52"); // /* They forgot to leave room for the EOB's. */ +UNSUPPORTED("5izxoao5ryte71964f8yjfd5y"); // return 0; +UNSUPPORTED("7mrf0i5kql5xndjgllkbconxd"); // b = (YY_BUFFER_STATE) aagalloc(sizeof( struct aag_buffer_state ) ); +UNSUPPORTED("6dbppvcge8q0qzkzswhskafq0"); // if ( ! b ) +UNSUPPORTED("9gd4cfygbf0kpa082mi8835a"); // aag_fatal_error( "out of dynamic memory in aag_scan_buffer()" ); +UNSUPPORTED("4qmg246x23u74iwerx0zeh3us"); // b->aag_buf_size = size - 2; /* "- 2" to take care of EOB's */ +UNSUPPORTED("1t390e7pfxygoif7wdie89mbt"); // b->aag_buf_pos = b->aag_ch_buf = base; +UNSUPPORTED("92ame1l1vygta5t7yseme0tia"); // b->aag_is_our_buffer = 0; +UNSUPPORTED("h4z4d3puygko4no5q08f4hbm"); // b->aag_input_file = 0; +UNSUPPORTED("bv8nrei55lbwkqnotxx27pdpx"); // b->aag_n_chars = b->aag_buf_size; +UNSUPPORTED("eqixc09ymq4dt5vet05b0kmzn"); // b->aag_is_interactive = 0; +UNSUPPORTED("czoo07g9uc4a29dyf1qk4v765"); // b->aag_at_bol = 1; +UNSUPPORTED("qf6o823cw74j6w2me3vz7fbd"); // b->aag_fill_buffer = 0; +UNSUPPORTED("2hqsp77qbwwdprmfq4hf8u4uu"); // b->aag_buffer_status = 0; +UNSUPPORTED("5hfi9p5415gw6c2x685w0q1bo"); // aag_switch_to_buffer(b ); +UNSUPPORTED("1lucb0x0v3ldgueqifh95nl1u"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 43izorque2e7plck393cc6hsz +// YY_BUFFER_STATE aag_scan_string ( char * aagstr ) +public static Object aag_scan_string(Object... arg) { +UNSUPPORTED("9bpq4eoai3kbg3afd97p0nyyj"); // YY_BUFFER_STATE aag_scan_string ( char * aagstr ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8sx87o9hndvp7qaq52vqiceh2"); // return aag_scan_bytes(aagstr,strlen(aagstr) ); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 74bdwb6md7bl3lpynnjoca8pm +// YY_BUFFER_STATE aag_scan_bytes ( char * aagbytes, aag_size_t _aagbytes_len ) +public static Object aag_scan_bytes(Object... arg) { +UNSUPPORTED("22n9ywf6bno4e1ogc0rfnzt43"); // YY_BUFFER_STATE aag_scan_bytes ( char * aagbytes, aag_size_t _aagbytes_len ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("17fp4sigd3bnfjdj56aiskloz"); // YY_BUFFER_STATE b; +UNSUPPORTED("alvm7g1yun5lnprwn379yva7g"); // char *buf; +UNSUPPORTED("242h7r83bv7vrscfynwyu1p2d"); // aag_size_t n; +UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i; +UNSUPPORTED("30v8r32hksc2dvfl6gbcks7xd"); // /* Get memory for full buffer, including space for trailing EOB's. */ +UNSUPPORTED("b0eubmj9g20tq7qvpocaf0s6w"); // n = _aagbytes_len + 2; +UNSUPPORTED("19lotil2m9zts56o7dzyu021m"); // buf = (char *) aagalloc(n ); +UNSUPPORTED("15nhevd3f9fycwuhg9fkjkzew"); // if ( ! buf ) +UNSUPPORTED("80ioy58udfahif5lhgwzdmmp5"); // aag_fatal_error( "out of dynamic memory in aag_scan_bytes()" ); +UNSUPPORTED("5060qt15bitq5p5umkzkhjmh6"); // for ( i = 0; i < _aagbytes_len; ++i ) +UNSUPPORTED("d2qdodjt00avfah797qbnvz90"); // buf[i] = aagbytes[i]; +UNSUPPORTED("5taf7ek5t6s14vsooqe1sc5hr"); // buf[_aagbytes_len] = buf[_aagbytes_len+1] = 0; +UNSUPPORTED("e5ykpyc09qgxxltuktf9u0bqk"); // b = aag_scan_buffer(buf,n ); +UNSUPPORTED("6dbppvcge8q0qzkzswhskafq0"); // if ( ! b ) +UNSUPPORTED("bi5lxu32oapwjy99as9jbkgrn"); // aag_fatal_error( "bad buffer in aag_scan_bytes()" ); +UNSUPPORTED("b7eqyxz30wpigc4f2ut33z6gp"); // /* It's okay to grow etc. this buffer, and we should throw it +UNSUPPORTED("6lvmstg7t0bn7rk9ihku6ovfb"); // * away when we're done. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("89nlcck0onq0z5nju1h6dihhw"); // b->aag_is_our_buffer = 1; +UNSUPPORTED("1lucb0x0v3ldgueqifh95nl1u"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ar1fz1d00siup070hcy6exvpz +// static void aag_fatal_error ( char* msg ) +public static Object aag_fatal_error(Object... arg) { +UNSUPPORTED("cv6qbndhb3hcgxfakqgoab5dx"); // static void aag_fatal_error ( char* msg ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4i3ty8mkp0kgkuxhdvanh87il"); // (void) fprintf( stderr, "%s\n", msg ); +UNSUPPORTED("d969dknbq2w52sen88bpqqyia"); // exit( 2 ); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ak2o99rit6h1dzbfugt87rz4l +// int aagget_lineno (void) +public static Object aagget_lineno(Object... arg) { +UNSUPPORTED("64s6gh6lrs0ga7y5j8aphzsa6"); // int aagget_lineno (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9zr5r3tszhbirce9zhk3n5ai0"); // return aaglineno; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c4xsc4x2etna327n4r43l0src +// FILE *aagget_in (void) +public static Object aagget_in(Object... arg) { +UNSUPPORTED("4uts7eli4y8zgttbczqktzi41"); // FILE *aagget_in (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("deaehhzsl649vtwlwgu42i0zh"); // return aagin; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4werkxqgsv51e1huizt8jy900 +// FILE *aagget_out (void) +public static Object aagget_out(Object... arg) { +UNSUPPORTED("2t24qlethc17kk7k367jup5g7"); // FILE *aagget_out (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("csjzuqxz2wypw8a9z0qffv20n"); // return aagout; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c930io2oqys6cwcw6hokf74af +// aag_size_t aagget_leng (void) +public static Object aagget_leng(Object... arg) { +UNSUPPORTED("4vayu55eo4kfs8mo20fxch8dg"); // aag_size_t aagget_leng (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cv0dvs0mx1m7a9dtk81itn95s"); // return aagleng; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 elqro7uvtzkdgrd0axaati5dn +// char *aagget_text (void) +public static Object aagget_text(Object... arg) { +UNSUPPORTED("u3fnt7o1fu5m0mf5jq7k196a"); // char *aagget_text (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4dv5045xmckixqhwcwxil44on"); // return aagtext; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ddyawmdmhp4bhddv0ycwtja18 +// void aagset_lineno (int line_number ) +public static Object aagset_lineno(Object... arg) { +UNSUPPORTED("42mnbz5hirksqibxvq5ihajy5"); // void aagset_lineno (int line_number ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9s3oxto8c1qvwbmzdtdcnpqjy"); // aaglineno = line_number; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 rnmvgky3jm4cqnymq9s4bzig +// void aagset_in (FILE * in_str ) +public static Object aagset_in(Object... arg) { +UNSUPPORTED("cixzcd1qs551hgk5cdud9swy1"); // void aagset_in (FILE * in_str ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("emvj6vmdj6xmhu581eaheijq7"); // aagin = in_str ; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bho3hef6ijshlmjirs3pp56ov +// void aagset_out (FILE * out_str ) +public static Object aagset_out(Object... arg) { +UNSUPPORTED("cnivj2d0k3i5uxijj3x5cwwse"); // void aagset_out (FILE * out_str ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("401q11i1f4d60b46mam5pre9z"); // aagout = out_str ; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 43ss154kldgxk2nhdusc1m4rz +// int aagget_debug (void) +public static Object aagget_debug(Object... arg) { +UNSUPPORTED("c9hk96h0qduz10qw4i5zsu12w"); // int aagget_debug (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("385w3hg608zj4jjuf8tg9i7an"); // return aag_flex_debug; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ccfhizqhlcd8o5g92d987s2m2 +// void aagset_debug (int bdebug ) +public static Object aagset_debug(Object... arg) { +UNSUPPORTED("wx4hkxwknbvqstpbtb6zpxai"); // void aagset_debug (int bdebug ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("27afey5konvu5bxqp4wcqn2tu"); // aag_flex_debug = bdebug ; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5fcbavnjmbu31asyzd62fwq2d +// static int aag_init_globals (void) +public static Object aag_init_globals(Object... arg) { +UNSUPPORTED("1cdheakmv5siut1ebpy3mw4nu"); // static int aag_init_globals (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1xj50i13vmjo77csr6vph8z8"); // /* Initialization is the same as for the non-reentrant scanner. +UNSUPPORTED("4cx9tvq2hyum5hmwpun673um0"); // * This function is called from aaglex_destroy(), so don't allocate here. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("3x534nljp47scdxqi9fziljco"); // (aag_buffer_stack) = 0; +UNSUPPORTED("17ou7g5dk08wv5ooyxz1v46ex"); // (aag_buffer_stack_top) = 0; +UNSUPPORTED("a7agbnu1gspv8u452j128zaxe"); // (aag_buffer_stack_max) = 0; +UNSUPPORTED("bn3ms6bxvilydm8vcmnp6ivm0"); // (aag_c_buf_p) = (char *) 0; +UNSUPPORTED("ethyoawtkhblcvh3igz42ly3e"); // (aag_init) = 0; +UNSUPPORTED("93c767mz9fmakdujebshet3o2"); // (aag_start) = 0; +UNSUPPORTED("ap09jdvi6qhty3oy8384rf4qp"); // /* Defined in main.c */ +UNSUPPORTED("7gieya1i3nuf9e7qf1cqfxol6"); // aagin = (FILE *) 0; +UNSUPPORTED("9gstdkjqjhxee0r7jfjtrubra"); // aagout = (FILE *) 0; +UNSUPPORTED("c28frl808v2sjzfzht2t71ttm"); // /* For future reference: Set errno on error, since we are called by +UNSUPPORTED("94kvnvpdkv83e3y9mfu0qmy05"); // * aaglex_init() +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b88yq5tilv62doe0lqk0odlu8 +// int aaglex_destroy (void) +public static Object aaglex_destroy(Object... arg) { +UNSUPPORTED("bzhkd6vhm4xizgdkxnz37txnh"); // int aaglex_destroy (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("diwcb2ihx1juuwosf3k0481mv"); // /* Pop the buffer stack, destroying each element. */ +UNSUPPORTED("acw6kp40ss9wyuyw6lol5krx3"); // while(( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL)){ +UNSUPPORTED("7w1cda4u82m87wa7sgr0kfm66"); // aag_delete_buffer(( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL) ); +UNSUPPORTED("7rirfywzjobe7phulakj8z10v"); // (aag_buffer_stack)[(aag_buffer_stack_top)] = NULL; +UNSUPPORTED("3vbgo0m5jfgfztdlczk1jwjhh"); // aagpop_buffer_state(); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8d0cqr6vek3pcj3q1jrp69ztu"); // /* Destroy the stack itself. */ +UNSUPPORTED("6x89ih7uy7e52aqm8jik9xasb"); // aagfree((aag_buffer_stack) ); +UNSUPPORTED("e8xu1gticwk30w7sx8o2d3b4q"); // (aag_buffer_stack) = NULL; +UNSUPPORTED("fd67jflm4li5f28rl4da3pk9"); // /* Reset the globals. This is important in a non-reentrant scanner so the next time +UNSUPPORTED("1sxmjk3yd72dpwsfc1p9l9l2q"); // * aaglex() is called, initialization will occur. */ +UNSUPPORTED("2nkg94pzgw99t3ck0cpkdy863"); // aag_init_globals( ); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c8en52xb7jekcv34dmaqouq5x +// void *aagalloc (aag_size_t size ) +public static Object aagalloc(Object... arg) { +UNSUPPORTED("8ojxikfh5gpuanc8ijbcbcr9g"); // void *aagalloc (aag_size_t size ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5mk7bdo0ve6cs9c230lail7a0"); // return (void *) malloc( size ); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5hlwjmuqfpjsqydhktwpbidq2 +// void *aagrealloc (void * ptr, aag_size_t size ) +public static Object aagrealloc(Object... arg) { +UNSUPPORTED("cyz4ldrm5jj00yg11pg1vc1g1"); // void *aagrealloc (void * ptr, aag_size_t size ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eeh9042j0ixp46lnhsy7ltbwc"); // /* The cast to (char *) in the following accommodates both +UNSUPPORTED("883fkonn9uuzw08gkor0kmjnd"); // * implementations that use char* generic pointers, and those +UNSUPPORTED("625my5yaczozrs8ku83650a76"); // * that use void* generic pointers. It works with the latter +UNSUPPORTED("9a6dm13b8ly2weeidoqgznp2n"); // * because both ANSI C and C++ allow castless assignment from +UNSUPPORTED("64dthpqhwbo8jw99mmijor8ux"); // * any pointer type to void*, and deal with argument conversions +UNSUPPORTED("esoja9b810qbkf294xt3x46ee"); // * as though doing an assignment. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("cqnxm4zyvx1dauh2o6z9730r8"); // return (void *) realloc( (char *) ptr, size ); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dt3z1styelhok5vdef4znud0x +// void aagfree (void * ptr ) +public static Object aagfree(Object... arg) { +UNSUPPORTED("33a9his43erc77yrkij7w4xak"); // void aagfree (void * ptr ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cr6th4uf2lbww89txkvo11nd5"); // free( (char *) ptr ); /* see aagrealloc() for (char *) cast */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b7djg5vf8k7q1bmscjoxbdi7m +// void aagerror(char *str) +public static Object aagerror(Object... arg) { +UNSUPPORTED("72z931gdsqdectne9thcxcwaj"); // void aagerror(char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7vppjgkszsish3wz8km4ji5dj"); // unsigned char xbuf[BUFSIZ]; +UNSUPPORTED("cd0m7hmn0ny9nvoy0lokrb7kz"); // char buf[BUFSIZ]; +UNSUPPORTED("hj3ykx7uaskz9wtccgck8sd6"); // agxbuf xb; +UNSUPPORTED("b2caeimugashizzvpcmbplmp4"); // agxbinit(&xb, BUFSIZ, xbuf); +UNSUPPORTED("ldl8hfy8qw7n0rdphytov4fn"); // if (InputFile) { +UNSUPPORTED("2qs5xwre2g8sars69d8m08x08"); // agxbput (&xb, InputFile); +UNSUPPORTED("132aiak11mkk6gmiwzo5l43pk"); // agxbput (&xb, ": "); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("38pmo3t0g10m68xnnf0j2fpnz"); // agxbput (&xb, str); +UNSUPPORTED("atzckg28vuna91ob4jsdhoecg"); // sprintf(buf," in line %d near '", line_num); +UNSUPPORTED("tg4fmt4hpkhycayadp2io5ol"); // agxbput (&xb, buf); +UNSUPPORTED("ef5bvnzwzqhm8eqarlw1kn1su"); // agxbput (&xb, aagtext); +UNSUPPORTED("6yh0js07kc5h380u3b3hdgptb"); // agxbput (&xb,"'\n"); +UNSUPPORTED("4xsav8esfuiohyr7u0xketqw7"); // agerr(AGERR,(((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf))); +UNSUPPORTED("52frst03mcbsuu6bmnqs962qm"); // agxbfree(&xb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d7y223uahk83hp7is4nahwefj +// void aglexeof() +public static Object aglexeof(Object... arg) { +UNSUPPORTED("9h2m1giehawxuk7dgr9dsfvl4"); // void aglexeof() { aagunput( '@', (aagtext) ); } + +throw new UnsupportedOperationException(); +} + + + + +//3 3ufv8can0vbou4fqbz8jayves +// void aglexbad() +public static Object aglexbad(Object... arg) { +UNSUPPORTED("bf2kdrql8l9oten5fku6ysi2n"); // void aglexbad() { aag_flush_buffer(( (aag_buffer_stack) ? (aag_buffer_stack)[(aag_buffer_stack_top)] : NULL) ); } + +throw new UnsupportedOperationException(); +} + + + + +//3 8mvwigk3z82cg7dw50v9tpfaw +// int aagwrap(void) +public static Object aagwrap(Object... arg) { +UNSUPPORTED("9prn9oo8emos6tvglwqc6ejj9"); // int aagwrap(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/subg__c.java plantuml-8039/src/gen/lib/cgraph/subg__c.java --- plantuml-8024/src/gen/lib/cgraph/subg__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/subg__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,340 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static gen.lib.cgraph.graph__c.agopen1; +import static gen.lib.cgraph.id__c.agmapnametoid; +import static gen.lib.cgraph.id__c.agregister; +import static gen.lib.cgraph.mem__c.agalloc; +import static gen.lib.cgraph.utils__c.agdtdisc; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGID; +import static smetana.core.Macro.AGRAPH; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agraph_s; +import h._dt_s; +import smetana.core.CString; +import smetana.core.Z; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class subg__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + + + +//3 11ezyrsjsotjz9b3cyvb4ie8p +// static Agraph_t *agfindsubg_by_id(Agraph_t * g, unsigned long id) +public static Agraph_s agfindsubg_by_id(Agraph_s g, int id) { +ENTERING("11ezyrsjsotjz9b3cyvb4ie8p","agfindsubg_by_id"); +try { + final __struct__ template = __struct__.from(Agraph_s.class); + agdtdisc(g, (_dt_s) g.getPtr("g_dict"), Z._().Ag_subgraph_id_disc.amp()); + AGID(template.amp(), id); + return (Agraph_s) g.getPtr("g_dict").castTo(_dt_s.class).call("searchf", g.getPtr("g_dict"), template.amp(), 0000004); +} finally { +LEAVING("11ezyrsjsotjz9b3cyvb4ie8p","agfindsubg_by_id"); +} +} + + + + +//3 44saycxbfbr9lou0itlyewkb4 +// static Agraph_t *localsubg(Agraph_t * g, unsigned long id) +public static Agraph_s localsubg(Agraph_s g, int id) { +ENTERING("44saycxbfbr9lou0itlyewkb4","localsubg"); +try { + Agraph_s subg; + subg = agfindsubg_by_id(g, id); + if (subg!=null) + return subg; + subg = (Agraph_s) agalloc(g, sizeof(Agraph_s.class)); + subg.setPtr("clos", g.getPtr("clos")); + subg.setStruct("desc", g.getStruct("desc")); + subg.getStruct("desc").setBoolean("maingraph", false); + subg.setPtr("parent", g); + subg.setPtr("root", g.getPtr("root")); + AGID(subg, id); + return agopen1(subg); +} finally { +LEAVING("44saycxbfbr9lou0itlyewkb4","localsubg"); +} +} + + + + +//3 6wqxmivgp34bobzqacmsj7lcv +// Agraph_t *agidsubg(Agraph_t * g, unsigned long id, int cflag) +public static Object agidsubg(Object... arg) { +UNSUPPORTED("9vhen1flll6k35g72uuroky0z"); // Agraph_t *agidsubg(Agraph_t * g, unsigned long id, int cflag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("elpselocwvpfk3o27nejqo6dl"); // subg = agfindsubg_by_id(g, id); +UNSUPPORTED("cf9t4fxh9z5rmv58441ne0ysa"); // if ((subg == ((Agraph_t*)0)) && cflag && agallocid(g, AGRAPH, id)) +UNSUPPORTED("ecrqdk8b7debftn6d8bbmh0s4"); // subg = localsubg(g, id); +UNSUPPORTED("17jmp11l2jzc1v9qpaqkzkauj"); // return subg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a24jd4r2sdyb4lb2hyababrda +// Agraph_t *agsubg(Agraph_t * g, char *name, int cflag) +public static Agraph_s agsubg(Agraph_s g, CString name, boolean cflag) { +ENTERING("a24jd4r2sdyb4lb2hyababrda","agsubg"); +try { + int id[] = new int[]{0}; + Agraph_s subg; + if (name!=null && agmapnametoid(g, AGRAPH, name, id, false)!=0) { + /* might already exist */ + if ((subg = agfindsubg_by_id(g, id[0]))!=null) + return subg; + } + if (cflag && agmapnametoid(g, AGRAPH, name, id, (N(false)))!=0) { /* reserve id */ + subg = localsubg(g, id[0]); + agregister(g, AGRAPH, subg); + return subg; + } + return null; +} finally { +LEAVING("a24jd4r2sdyb4lb2hyababrda","agsubg"); +} +} + + + + +//3 51eksrs0lhkgohunejlpwyc4k +// Agraph_t *agfstsubg(Agraph_t * g) +public static Agraph_s agfstsubg(Agraph_s g) { +ENTERING("51eksrs0lhkgohunejlpwyc4k","agfstsubg"); +try { + __ptr__ tmp = (__ptr__)g.getPtr("g_dict").castTo(_dt_s.class).call("searchf", g.getPtr("g_dict"),null,0000200); + if (tmp!=null) tmp = tmp.castTo(Agraph_s.class); + return (Agraph_s) tmp; +} finally { +LEAVING("51eksrs0lhkgohunejlpwyc4k","agfstsubg"); +} +} + + + + +//3 85c1qisrein0tzm2regoe61t +// Agraph_t *agnxtsubg(Agraph_t * subg) +public static Agraph_s agnxtsubg(Agraph_s subg) { +ENTERING("85c1qisrein0tzm2regoe61t","agnxtsubg"); +try { + Agraph_s g; + g = agparent(subg); + return g!=null ? (Agraph_s) g.getPtr("g_dict").castTo(_dt_s.class).call("searchf", g.getPtr("g_dict"), subg, 0000010) : null; +} finally { +LEAVING("85c1qisrein0tzm2regoe61t","agnxtsubg"); +} +} + + + + +//3 7kbp6j03hd7u6nnlivi0vt3ja +// Agraph_t *agparent(Agraph_t * g) +public static Agraph_s agparent(Agraph_s g) { +ENTERING("7kbp6j03hd7u6nnlivi0vt3ja","agparent"); +try { + return (Agraph_s) g.getPtr("parent"); +} finally { +LEAVING("7kbp6j03hd7u6nnlivi0vt3ja","agparent"); +} +} + + + + +//3 37trxrsv69a3pl08f5awwj3tq +// long agdelsubg(Agraph_t * g, Agraph_t * subg) +public static Object agdelsubg(Object... arg) { +UNSUPPORTED("bjcimcpi0qag1hc37no67mct5"); // long agdelsubg(Agraph_t * g, Agraph_t * subg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dugmh24ptzgxuj3204p7n39m4"); // return (long) (*(((Dt_t*)(g->g_dict))->searchf))((g->g_dict),(void*)(subg),0000002); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/tester__c.java plantuml-8039/src/gen/lib/cgraph/tester__c.java --- plantuml-8024/src/gen/lib/cgraph/tester__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/tester__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,160 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.Macro.UNSUPPORTED; + +public class tester__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + + + +//3 bxrg42k0b2ondd8e9hxlvgnya +// main() +public static Object main(Object... arg) { +UNSUPPORTED("dvtfwizbjxjdd2zwzte0922xf"); // main() +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("av59ae8c4mws46sf5dumz1k0s"); // Agsym_t *sym; +UNSUPPORTED("eocf25luzhwv5bxjexjp351gh"); // char *val; +UNSUPPORTED("b1b89mh4epi9v1kfzij5iivjf"); // while (g = agread(stdin, ((Agdisc_t *)0))) { +UNSUPPORTED("714pzi0d5ewfa33fhbvig3c1a"); // sym = agattr(g, AGRAPH, "nonsense", "junk"); +UNSUPPORTED("5irwa2ja5che2vhws1r19cora"); // fprintf(stderr,"sym = %x, %s\n", sym, sym? sym->defval : "(none)"); +UNSUPPORTED("b6ynbll4ohfq5rtria3hxrrc"); // agwrite(g, stdout); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/utils__c.java plantuml-8039/src/gen/lib/cgraph/utils__c.java --- plantuml-8024/src/gen/lib/cgraph/utils__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/utils__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,338 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static gen.lib.cdt.dtdisc__c.dtdisc; +import static gen.lib.cdt.dtopen__c.dtopen; +import static gen.lib.cgraph.mem__c.agalloc; +import static gen.lib.cgraph.mem__c.agfree; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.function; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agraph_s; +import h.Dtmemory_f; +import h._dt_s; +import h._dtdisc_s; +import h._dtmethod_s; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.size_t; + +public class utils__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + +//1 2xwmpggwpggfyyfj0vuw3pmfg +// static Agraph_t *Ag_dictop_G +//static public Agraph_s Ag_dictop_G; + + + +//3 7dkudp41c9byhicatk2sxtxqk +// void *agdictobjmem(Dict_t * dict, void * p, size_t size, Dtdisc_t * disc) +public static Object agdictobjmem(_dt_s dict, Object p, size_t size, _dtdisc_s disc) { +ENTERING("7dkudp41c9byhicatk2sxtxqk","agdictobjmem"); +try { + Agraph_s g; + g = Z._().Ag_dictop_G; + if (g!=null) { + if (p!=null) + agfree(g, p); + else + return agalloc(g, size); + } else { + if (p!=null) + Memory.free(p); + else + return size.malloc(); + } + return null; +} finally { +LEAVING("7dkudp41c9byhicatk2sxtxqk","agdictobjmem"); +} +} + + + + +//3 5xdfwxth4q1dm3180qzuf51sn +// void agdictobjfree(Dict_t * dict, void * p, Dtdisc_t * disc) +public static Object agdictobjfree(Object... arg) { +UNSUPPORTED("bsemnw6m2qx5a4hk13xep80nh"); // void agdictobjfree(Dict_t * dict, void * p, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("nzl57bfl5onx7q9ge19n2k9i"); // (void) dict; +UNSUPPORTED("8l8wg6vltx6d7vc9dzqb6n3wi"); // (void) disc; +UNSUPPORTED("ah8bddgh4pyntvi4o9xx91fkm"); // g = Ag_dictop_G; +UNSUPPORTED("5skdegxoz3mwfvm59pbtvqtiq"); // if (g) +UNSUPPORTED("akbizhd9c9w4syt1qpirn7xjy"); // agfree(g, p); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("cy5x5dma0v4hiepir7lrfuo17"); // free(p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 48ox0bg1qmasrer8np51uwsyk +// Dict_t *agdtopen(Agraph_t * g, Dtdisc_t * disc, Dtmethod_t * method) +public static _dt_s agdtopen(Agraph_s g, _dtdisc_s disc, _dtmethod_s method) { +ENTERING("48ox0bg1qmasrer8np51uwsyk","agdtopen"); +try { + Dtmemory_f memf; + _dt_s d; + memf = (Dtmemory_f) disc.getPtr("memoryf"); + disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Z._().Ag_dictop_G = g; + d = dtopen(disc, method); + disc.setPtr("memoryf", memf); + Z._().Ag_dictop_G = null; + return d; +} finally { +LEAVING("48ox0bg1qmasrer8np51uwsyk","agdtopen"); +} +} + + + + +//3 6pbz2fsmebq8iy7if4way3ct2 +// long agdtdelete(Agraph_t * g, Dict_t * dict, void *obj) +public static Object agdtdelete(Object... arg) { +UNSUPPORTED("216ju3s3n4ltlcsntcuo0fg5p"); // long agdtdelete(Agraph_t * g, Dict_t * dict, void *obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("id2cse8d1e37coxkbocjgjt4"); // Ag_dictop_G = g; +UNSUPPORTED("1ii7n9w3quq15wnwynuuwg395"); // return (long) (*(((Dt_t*)(dict))->searchf))((dict),(void*)(obj),0000002); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8a6i39x23joa467bqbo4b25ng +// int agobjfinalize(void * obj) +public static Object agobjfinalize(Object... arg) { +UNSUPPORTED("74745f6w9shsg8hps5dn9cunv"); // int agobjfinalize(void * obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dnx10u35ynobkoiuo7v5k2u49"); // agfree(Ag_dictop_G, obj); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4x6nykawwls34vi6jc9gk1y29 +// int agdtclose(Agraph_t * g, Dict_t * dict) +public static Object agdtclose(Object... arg) { +UNSUPPORTED("8snkovnbu003p9w5cgbn12c73"); // int agdtclose(Agraph_t * g, Dict_t * dict) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ac1z24z48td8pa6zl9az4bqpd"); // Dtmemory_f memf; +UNSUPPORTED("cawsyfy3xa5ktlemxuyyhd376"); // Dtdisc_t *disc; +UNSUPPORTED("95hw7dddoneu0z8zzcnb1uslv"); // disc = dtdisc(dict, ((Dtdisc_t *)0), 0); +UNSUPPORTED("9grut2uf2ma1mtzeq2sfg7p3f"); // memf = disc->memoryf; +UNSUPPORTED("1jsr5jo041ushyjrdwyazntu7"); // disc->memoryf = agdictobjmem; +UNSUPPORTED("id2cse8d1e37coxkbocjgjt4"); // Ag_dictop_G = g; +UNSUPPORTED("32zal75ij4wrh56hfv01bu7as"); // if (dtclose(dict)) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("9qqgn587jlvxto7mbtmfh3o00"); // disc->memoryf = memf; +UNSUPPORTED("dgvsuq3309uz08ww03zstdg8g"); // Ag_dictop_G = ((Agraph_t*)0); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cym72wvu6zffc0vzoa93zha8 +// void agdtdisc(Agraph_t * g, Dict_t * dict, Dtdisc_t * disc) +public static void agdtdisc(Agraph_s g, _dt_s dict, _dtdisc_s disc) { +ENTERING("cym72wvu6zffc0vzoa93zha8","agdtdisc"); +try { + if (disc!=null && NEQ(dtdisc(dict, null, 0), disc)) { + dtdisc(dict, disc, 0); + } + /* else unchanged, disc is same as old disc */ +} finally { +LEAVING("cym72wvu6zffc0vzoa93zha8","agdtdisc"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/cgraph/write__c.java plantuml-8039/src/gen/lib/cgraph/write__c.java --- plantuml-8024/src/gen/lib/cgraph/write__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/cgraph/write__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1087 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.cgraph; +import static smetana.core.Macro.UNSUPPORTED; + +public class write__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6ayavpu39aihwyojkx093pcy3 +// extern Agraph_t *Ag_G_global + + +//1 871mxtg9l6ffpxdl9kniwusf7 +// extern char *AgDataRecName + + +//1 c0o2kmml0tn6hftuwo0u4shwd +// extern Dtdisc_t Ag_subnode_id_disc + + +//1 8k15pyu256unm2kpd9zf5pf7k +// extern Dtdisc_t Ag_subnode_seq_disc + + +//1 e3d820y06gpeusn6atgmj8bzd +// extern Dtdisc_t Ag_mainedge_id_disc + + +//1 cbr0772spix9h1aw7h5v7dv9j +// extern Dtdisc_t Ag_subedge_id_disc + + +//1 akd0c3v0j7m2npxcb9acit1fa +// extern Dtdisc_t Ag_mainedge_seq_disc + + +//1 12d8la07351ww7vwfzucjst8m +// extern Dtdisc_t Ag_subedge_seq_disc + + +//1 29eokk7v88e62g8o6lizmo967 +// extern Dtdisc_t Ag_subgraph_id_disc + + +//1 4xd9cbgy6hk5g6nhjcbpzkx14 +// extern Agcbdisc_t AgAttrdisc + + +//1 6cdl8rg0og4o8zcy4mkimizp1 +// typedef void iochan_t + + + + +//3 btji1owz81k2d77wfwt916p37 +// static int ioput(Agraph_t * g, iochan_t * ofile, char *str) +public static Object ioput(Object... arg) { +UNSUPPORTED("9aaodmphwoa7or45852lcbtet"); // static int ioput(Agraph_t * g, iochan_t * ofile, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f6biqyaknm3x2ue94tm9v84z"); // return ((g)->clos->disc.io)->putstr(ofile, str); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 98m6w41nluqnfg2vjsmgrp28l +// static int Level + + +//1 bvu8ayfef3c7pct1w3xg18vx3 +// static int Max_outputline = 128 + + +//1 1hd2b7p1aumg2dlcjxipts28a +// static unsigned char Attrs_not_written_flag + + +//1 bospb4vypikeakekqc06hvqc2 +// static Agsym_t *Tailport, *Headport + + + + +//3 alc947m7qhu6bnfokb9fxhwhb +// static int indent(Agraph_t * g, iochan_t * ofile) +public static Object indent(Object... arg) { +UNSUPPORTED("40912tixu4uq4phusbevely94"); // static int indent(Agraph_t * g, iochan_t * ofile) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("452nzs4v8pata1dhjmqfyw26a"); // for (i = Level; i > 0; i--) +UNSUPPORTED("cp0y2nic2hoy2snz5nbe40sue"); // {if ((ioput(g, ofile, "\t")) == EOF) return EOF;}; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aquh9vkpmogoajxkl7kq8pukp +// static int strcasecmp(const char *s1, const char *s2) +public static Object strcasecmp(Object... arg) { +UNSUPPORTED("55i7mwlbxqd1zslhu44ix4gza"); // static int strcasecmp(const char *s1, const char *s2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9470qtwtv37oof0w731kh9mcd"); // while ((*s1 != '\0') +UNSUPPORTED("7tdf84gz2hakxs756j3v0w4iv"); // && (tolower(*(unsigned char *) s1) == +UNSUPPORTED("co97u0db3a8mz1pp77hkxq0h3"); // tolower(*(unsigned char *) s2))) { +UNSUPPORTED("2hh1h5gydepd3ut3g43bzn51g"); // s1++; +UNSUPPORTED("7x8zh0pm8zj83pbc2d812jz90"); // s2++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1jrt0skm3a5djo3vfej4kwffc"); // return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2ojpbtgz2c08fy2xlrhgbhcy4 +// static char *_agstrcanon(char *arg, char *buf) +public static Object _agstrcanon(Object... arg) { +UNSUPPORTED("5ahyn8mq6pzmkxszxeuiey91e"); // static char *_agstrcanon(char *arg, char *buf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9uldk42hjnckjndgz1sd6utof"); // char *s, *p; +UNSUPPORTED("54eg86g95y7q6jevr2tq6ehrg"); // unsigned char uc; +UNSUPPORTED("3n6j4vooz01bauxf0x735587g"); // int cnt = 0, dotcnt = 0; +UNSUPPORTED("53cl57zz7angk2fz9q8i9936z"); // int needs_quotes = (0); +UNSUPPORTED("2wr9q842ohxj2ycucqna9tlrq"); // int maybe_num; +UNSUPPORTED("byb61zbgjorc2zybgctqz7ndl"); // int backslash_pending = (0); +UNSUPPORTED("7nrc43frlcod90tqudlokiltw"); // static const char *tokenlist[] /* must agree with scan.l */ +UNSUPPORTED("2z6417vrkzwojo65uicgj0ld5"); // = { "node", "edge", "strict", "graph", "digraph", "subgraph", +UNSUPPORTED("6e42116ruyo5sfksdjqb7k691"); // ((char *)0) +UNSUPPORTED("9u8qqu9tw95qjbv3cxv3hj4bd"); // }; +UNSUPPORTED("c20r5olc3ceq2odrmolb37lhs"); // const char **tok; +UNSUPPORTED("6hksaocbqg9tyniwys30i5f6"); // if (((arg == 0) || (arg)[0] == '\0')) +UNSUPPORTED("bq8taui3sha21pp8m30j2waho"); // return "\"\""; +UNSUPPORTED("br1i8hfkomohyoahqijch1ldi"); // s = arg; +UNSUPPORTED("dpfzdhkfq6u86uv5f9lnqfbpq"); // p = buf; +UNSUPPORTED("1xpnr5tufh6i8r19kq97wxx28"); // *p++ = '\"'; +UNSUPPORTED("8rbzvwd6z91kkb5pape5tgg3q"); // uc = *(unsigned char *) s++; +UNSUPPORTED("eoo27x446n9ubl76pznj5nu00"); // maybe_num = isdigit(uc) || (uc == '.') || (uc == '-'); +UNSUPPORTED("281h1z55fo8i52vhjqmzge30m"); // while (uc) { +UNSUPPORTED("7va7b0kw6l67cbr9jsef9o8jm"); // if (uc == '\"') { +UNSUPPORTED("ety3lnffj2pnokl02nxfy3qjv"); // *p++ = '\\'; +UNSUPPORTED("4xlo42dy0r02v5tuaxfr8oo7a"); // needs_quotes = (!(0)); +UNSUPPORTED("8nzcpbtoi924xzu8ze3z6dbft"); // } +UNSUPPORTED("boo8lxly4fx140xmtb994j62j"); // else if (maybe_num) { +UNSUPPORTED("byw5stodlmd743wbq8w0lp6e5"); // if (uc == '-') { +UNSUPPORTED("ch6epb3d0o3y71kr8cf0cr778"); // if (cnt) { +UNSUPPORTED("92uh7detqycxvk4j84os7jjrx"); // maybe_num = (0); +UNSUPPORTED("1zi6cnn21vajv2p9guz4u0eyr"); // needs_quotes = (!(0)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("80niwic42cqbazv2vfmpokfiz"); // else if (uc == '.') { +UNSUPPORTED("7wa32rmgq2t0s8q2vygfs0on9"); // if (dotcnt++) { +UNSUPPORTED("92uh7detqycxvk4j84os7jjrx"); // maybe_num = (0); +UNSUPPORTED("1zi6cnn21vajv2p9guz4u0eyr"); // needs_quotes = (!(0)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("2w4vdk52vdon2nuo203y11zio"); // else if (!isdigit(uc)) { +UNSUPPORTED("8ewnu9yn4sp7izb230lq2qwol"); // maybe_num = (0); +UNSUPPORTED("15rsfjpgyg6utb04u8l4x3f4c"); // needs_quotes = (!(0)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("52w60ewi6p3skhhun8zvy7g7t"); // else if (!((isalnum(uc)) || ((uc) == '_') || (!isascii(uc)))) +UNSUPPORTED("4xlo42dy0r02v5tuaxfr8oo7a"); // needs_quotes = (!(0)); +UNSUPPORTED("8vqehnf3u9tp0a4iixzlqns4k"); // *p++ = (char) uc; +UNSUPPORTED("5k76wlk3o6m3cuykuhkxtyhgf"); // uc = *(unsigned char *) s++; +UNSUPPORTED("1szm63athnlkprt3pv29pjc6z"); // cnt++; +UNSUPPORTED("7ludbekw5fkwt5axvcwd0ihll"); // /* If breaking long strings into multiple lines, only allow breaks after a non-id char, not a backslash, where the next char is an +UNSUPPORTED("1w1e1pcok5v4q2kgyz2wuk53m"); // * id char. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("eq5hwet5rfzygnaktrq6o4j3d"); // if (Max_outputline) { +UNSUPPORTED("755u0yc4wr61hznjhzfrfko48"); // if (uc && backslash_pending && !((isalnum(p[-1]) || ((p[-1]) == '.') || ((p[-1]) == '-') || !isascii(p[-1])) || (p[-1] == '\\')) && (isalnum(uc) || ((uc) == '.') || ((uc) == '-') || !isascii(uc))) { +UNSUPPORTED("cl1ikibcqt1ygqbum3xi5bk79"); // *p++ = '\\'; +UNSUPPORTED("cnwc77tzwdfyrgdp1t6g4m6xi"); // *p++ = '\n'; +UNSUPPORTED("3ako06kvsu28ggk2b9rs5pz48"); // needs_quotes = (!(0)); +UNSUPPORTED("a2igyeujb49rhtvgheg64bogt"); // backslash_pending = (0); +UNSUPPORTED("ay9m9sdx7o92emcp6gjb31h4a"); // cnt = 0; +UNSUPPORTED("88eck934lobkga6adny14gqe2"); // } else if (uc && (cnt >= Max_outputline)) { +UNSUPPORTED("3v26gypvwqprroryvbtfyvl7u"); // if (!((isalnum(p[-1]) || ((p[-1]) == '.') || ((p[-1]) == '-') || !isascii(p[-1])) || (p[-1] == '\\')) && (isalnum(uc) || ((uc) == '.') || ((uc) == '-') || !isascii(uc))) { +UNSUPPORTED("2a68wg6lba8oqhlul1evol2fj"); // *p++ = '\\'; +UNSUPPORTED("eyabtn4npcdoiho34u0vupwki"); // *p++ = '\n'; +UNSUPPORTED("clp3otxrl7w6cem7ww35rbw9f"); // needs_quotes = (!(0)); +UNSUPPORTED("4k7ukmo931f6gpk5q245qc7dz"); // cnt = 0; +UNSUPPORTED("ajrvpjgla5ygjcpzcymd6016y"); // } else { +UNSUPPORTED("5mo9vqlb40kc1is2oibapcqj3"); // backslash_pending = (!(0)); +UNSUPPORTED("4nbucwlhcfvw7r0uycyy9qc5l"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1xpnr5tufh6i8r19kq97wxx28"); // *p++ = '\"'; +UNSUPPORTED("2t1d66kwn86kqh0i665hqw6cl"); // *p = '\0'; +UNSUPPORTED("6bzvicgwyrevlzo30bikj1qv"); // if (needs_quotes || ((cnt == 1) && ((*arg == '.') || (*arg == '-')))) +UNSUPPORTED("60rrsbs3bgak2rhurj1kw71av"); // return buf; +UNSUPPORTED("70snqwmjpiy8fb85i8p82n7j8"); // /* Use quotes to protect tokens (example, a node named "node") */ +UNSUPPORTED("2d7m0n84k3kvilcrfc581k3m6"); // /* It would be great if it were easier to use flex here. */ +UNSUPPORTED("5yik6wlbtybgi55kf4vxe7bx"); // for (tok = tokenlist; *tok; tok++) +UNSUPPORTED("7896yl4xbftaovjgrkv4xtxot"); // if (!strcasecmp(*tok, arg)) +UNSUPPORTED("1fjzdj317ee1mtxirudje5tbt"); // return buf; +UNSUPPORTED("2ima76y69crfh98d13kjftpwm"); // return arg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 10ev68p7aeqzm8tqvi1j5g6c0 +// static char *agcanonhtmlstr(char *arg, char *buf) +public static Object agcanonhtmlstr(Object... arg) { +UNSUPPORTED("8u1d8u9bl7jguved1qmtwv38g"); // static char *agcanonhtmlstr(char *arg, char *buf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9uldk42hjnckjndgz1sd6utof"); // char *s, *p; +UNSUPPORTED("br1i8hfkomohyoahqijch1ldi"); // s = arg; +UNSUPPORTED("dpfzdhkfq6u86uv5f9lnqfbpq"); // p = buf; +UNSUPPORTED("es744ndlvsi3inn0ehkueww59"); // *p++ = '<'; +UNSUPPORTED("5rofh7oao8cih2ztkjkacpzpm"); // while (*s) +UNSUPPORTED("8e6st6hhl4yfs7qub4b87bkm0"); // *p++ = *s++; +UNSUPPORTED("5bbyh5dbvs12qykhja5su1xyb"); // *p++ = '>'; +UNSUPPORTED("2t1d66kwn86kqh0i665hqw6cl"); // *p = '\0'; +UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5el4k6xor36xwe2zw5pbxwvxg +// char *agstrcanon(char *arg, char *buf) +public static Object agstrcanon(Object... arg) { +UNSUPPORTED("2eugjkuvwod6onqy9kfs2rzsm"); // char *agstrcanon(char *arg, char *buf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2weabf7fj63ctkhrx0t8zthrb"); // if (aghtmlstr(arg)) +UNSUPPORTED("9iyrui5feoircaa0tm6yvyegj"); // return agcanonhtmlstr(arg, buf); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("4td6knrzidkire6uqf2ev1u8w"); // return _agstrcanon(arg, buf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9ykg6r8cft6m1eqz84ptrhkkm +// static char *getoutputbuffer(char *str) +public static Object getoutputbuffer(Object... arg) { +UNSUPPORTED("561sswbojerghf2xu4dg5bt1s"); // static char *getoutputbuffer(char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("zfr61ahp8m2301a6i0zw5oys"); // static char *rv; +UNSUPPORTED("24n1fkl62ovew6wndvdgst75s"); // static int len; +UNSUPPORTED("azsy6o1769l9s9lw7qvcr8zld"); // int req; +UNSUPPORTED("bcaz0e6faadnkk9q7r31ox2uv"); // req = ((2 * strlen(str) + 2)>(BUFSIZ)?(2 * strlen(str) + 2):(BUFSIZ)); +UNSUPPORTED("9u4b3k1a4ejkmpk16dd3q6h49"); // if (req > len) { +UNSUPPORTED("3530976sh2i9fg23975vrw161"); // if (rv) +UNSUPPORTED("523zs48zoju9q6xlk50eptn16"); // rv = realloc(rv, req); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("7kox9x8pkq2f0khjm3jy4bbwp"); // rv = malloc(req); +UNSUPPORTED("7vego0iiluodex426985pztf0"); // len = req; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ewe36i40rrl3fpv7w0ryw05ni +// char *agcanonStr(char *str) +public static Object agcanonStr(Object... arg) { +UNSUPPORTED("eyq4o9s8y123aetgpoe3yv8vb"); // char *agcanonStr(char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f4vpef7vd5wmhxtl2q4x9j290"); // return agstrcanon(str, getoutputbuffer(str)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dkk9fge4n0ji352t2bmtqxgcq +// char *agcanon(char *str, int html) +public static Object agcanon(Object... arg) { +UNSUPPORTED("6rhv4om26ccgv3sf274hlssrb"); // char *agcanon(char *str, int html) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cd1a0xw1om8gnmntf662c4ta"); // char* buf = getoutputbuffer(str); +UNSUPPORTED("13sqoi4hswov0j5sorbvjalue"); // if (html) +UNSUPPORTED("71wx9wy7wm7l1ofewrs36twa4"); // return agcanonhtmlstr(str, buf); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("2gdx5yodu3th7xbdmdm7k5hw0"); // return _agstrcanon(str, buf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c3jnf1oiv9b8aheuv9llnqtg +// static int _write_canonstr(Agraph_t * g, iochan_t * ofile, char *str, int chk) +public static Object _write_canonstr(Object... arg) { +UNSUPPORTED("zr1y2wf05ldfglo6vrypd4d7"); // static int _write_canonstr(Agraph_t * g, iochan_t * ofile, char *str, +UNSUPPORTED("6jsqaz0aadg586twc1a3xkgp4"); // int chk) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2f8bmob0vz6yu5pd99cq577kg"); // if (chk) +UNSUPPORTED("byq8fiy8jzdslxiaf8z70lrfu"); // str = agcanonStr(str); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("eqcm90rf7s86jz2vlvlu3wo94"); // str = _agstrcanon(str, getoutputbuffer(str)); +UNSUPPORTED("3a92mnynygrlxzyr67es6ff7w"); // return ioput(g, ofile, str); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wklmg8c4xwrlh8zj8mzsqqgy +// static int write_canonstr(Agraph_t * g, iochan_t * ofile, char *str) +public static Object write_canonstr(Object... arg) { +UNSUPPORTED("9s58htjsqxlqmo523tjez4v1v"); // static int write_canonstr(Agraph_t * g, iochan_t * ofile, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ao6n16fxplk35wuikk9lm5zsx"); // return _write_canonstr(g, ofile, str, (!(0))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 y99h25djxm7t672axpq6s9so +// static int write_dict(Agraph_t * g, iochan_t * ofile, char *name, Dict_t * dict, int top) +public static Object write_dict(Object... arg) { +UNSUPPORTED("2hsbtmft7fp9pqzt27syqpe99"); // static int write_dict(Agraph_t * g, iochan_t * ofile, char *name, +UNSUPPORTED("cbjl3cpko6q4cka2s9mb8kbhs"); // Dict_t * dict, int top) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("behjm5bjsenezpg3f7cncvteu"); // int cnt = 0; +UNSUPPORTED("51l8b50tqomi0gritl94e51v7"); // Dict_t *view; +UNSUPPORTED("d173c80zt5jm4yd6ok8338o1x"); // Agsym_t *sym, *psym; +UNSUPPORTED("9x367lbtuypg6bts6evclmc2w"); // if (!top) +UNSUPPORTED("e1i7a6hfs0ejqoyb25zzrfqta"); // view = dtview(dict, ((Dict_t *)0)); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("5te3ph3q5wvma3d2s5lw15mte"); // view = 0; +UNSUPPORTED("2sbfwpbl8pxucyovu38d8v0rd"); // for (sym = (Agsym_t *) (*(((Dt_t*)(dict))->searchf))((dict),(void*)(0),0000200); sym; +UNSUPPORTED("4h5k9o906c9hqrjv889octnef"); // sym = (Agsym_t *) (*(((Dt_t*)(dict))->searchf))((dict),(void*)(sym),0000010)) { +UNSUPPORTED("avha7r5me5k7qy01jm6ejjvn6"); // if (((sym->defval == 0) || (sym->defval)[0] == '\0') && !sym->print) { /* try to skip empty str (default) */ +UNSUPPORTED("cgjccnmi11urn78eb1tpbqbay"); // if (view == ((Dict_t *)0)) +UNSUPPORTED("bcbhr2jloy4m2wcwkwqv35wki"); // continue; /* no parent */ +UNSUPPORTED("w57oejn8kxfcqhajcavmo1dq"); // psym = (Agsym_t *) (*(((Dt_t*)(view))->searchf))((view),(void*)(sym),0000004); +UNSUPPORTED("9h1gyp9h3qbn1qj5fva3bn3xf"); // ; +UNSUPPORTED("40fpwl1wqislxo0xgi8qgkqb9"); // if (((psym->defval == 0) || (psym->defval)[0] == '\0') && psym->print) +UNSUPPORTED("3soi5dlurq6giqt0kic48ak6j"); // continue; /* also empty in parent */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5drtib7guih41r51l0f4akjwx"); // if (cnt++ == 0) { +UNSUPPORTED("7qym8pnati72j923z80ihv0tx"); // {if ((indent(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("91e6m2zyz414vtug4jlpigewp"); // {if ((ioput(g, ofile, name)) == EOF) return EOF;}; +UNSUPPORTED("2sydxv2pzbrpeo9em23ycry8f"); // {if ((ioput(g, ofile, " [")) == EOF) return EOF;}; +UNSUPPORTED("3ye74etl8i6jh415zncm5xbim"); // Level++; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("82k1j53lomse95wqgrzvbetri"); // {if ((ioput(g, ofile, ",\n")) == EOF) return EOF;}; +UNSUPPORTED("7qym8pnati72j923z80ihv0tx"); // {if ((indent(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("82qplhcz1dry5ubqktjt15d6r"); // {if ((write_canonstr(g, ofile, sym->name)) == EOF) return EOF;}; +UNSUPPORTED("6ex6hk4ixb3yj1adbanpmz0dj"); // {if ((ioput(g, ofile, "=")) == EOF) return EOF;}; +UNSUPPORTED("ap40fv2u1o0jybevdc42ino23"); // {if ((write_canonstr(g, ofile, sym->defval)) == EOF) return EOF;}; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3edmnqy3ok6qglbgwxmakkngx"); // if (cnt > 0) { +UNSUPPORTED("17ejasz912kqtejldaozqxa0y"); // Level--; +UNSUPPORTED("dcosmode4wc3bkdk46pmafk3k"); // if (cnt > 1) { +UNSUPPORTED("tsypfw2ouyjuo1o6idz4hyur"); // {if ((ioput(g, ofile, "\n")) == EOF) return EOF;}; +UNSUPPORTED("7qym8pnati72j923z80ihv0tx"); // {if ((indent(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2p7hprd3pg5l28a3i4dl93swy"); // {if ((ioput(g, ofile, "];\n")) == EOF) return EOF;}; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9x367lbtuypg6bts6evclmc2w"); // if (!top) +UNSUPPORTED("33ixxp63qe4r2prla9az18o5"); // dtview(dict, view); /* restore previous view */ +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aul5zu4oj0o9yrzdmyk88qt2s +// static int write_dicts(Agraph_t * g, iochan_t * ofile, int top) +public static Object write_dicts(Object... arg) { +UNSUPPORTED("9za417mkt9iven86uu3v8o7tr"); // static int write_dicts(Agraph_t * g, iochan_t * ofile, int top) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("as84an41e1m52e76l3k6541ik"); // Agdatadict_t *def; +UNSUPPORTED("4mlv0t6g3bl1stjs6qxrdoxc4"); // if ((def = agdatadict(g, (0)))) { +UNSUPPORTED("16qe57vlv8koos7hnsvji0tcb"); // {if ((write_dict(g, ofile, "graph", def->dict.g, top)) == EOF) return EOF;}; +UNSUPPORTED("ddwzxi0rpkb52u0w6d1r77skm"); // {if ((write_dict(g, ofile, "node", def->dict.n, top)) == EOF) return EOF;}; +UNSUPPORTED("1fi4yw89hspw1v0on1017ioyg"); // {if ((write_dict(g, ofile, "edge", def->dict.e, top)) == EOF) return EOF;}; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cg729l895pi0qnmlxnjytf8pd +// static int write_hdr(Agraph_t * g, iochan_t * ofile, int top) +public static Object write_hdr(Object... arg) { +UNSUPPORTED("bv82284a2i51n13utave7gi65"); // static int write_hdr(Agraph_t * g, iochan_t * ofile, int top) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5tmjn44cq2g0o6a4eim9n4r41"); // char *name, *sep, *kind, *strict; +UNSUPPORTED("2o2xukvz5nqsn8ucmx0ibzi7u"); // int root = 0; +UNSUPPORTED("defp72d837w5grmr10ijl40sc"); // Attrs_not_written_flag = AGATTRWF(g); +UNSUPPORTED("8rxqqli6dshrniwafycl2x50i"); // strict = ""; +UNSUPPORTED("1dsqqvt6epu2867o19gd1w7e1"); // if (NOT(top) && agparent(g)) +UNSUPPORTED("8rffe0xay7r01yrp1zqkh1l0p"); // kind = "sub"; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("6digseocbrizgs0l1xdyetpd1"); // root = 1; +UNSUPPORTED("3l4f565mguh1h41c30y87hhcu"); // if (g->desc.directed) +UNSUPPORTED("e88vmmq10gtrhyxfiisp4c5n6"); // kind = "di"; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("477n1bidkrk4b8hcikwd601ww"); // kind = ""; +UNSUPPORTED("k23gu3jbsh35eolp8cxy1von"); // if (agisstrict(g)) +UNSUPPORTED("coedgh6jpr1nsmmodeufhccd5"); // strict = "strict "; +UNSUPPORTED("120w7pql0m6xxhshb1hu9xr83"); // Tailport = agattr(g, AGEDGE, "tailport", ((char *)0)); +UNSUPPORTED("31kmh5iv8cqwsc5169jcje4m5"); // Headport = agattr(g, AGEDGE, "headport", ((char *)0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b1au7bgi7piu07obja3u404tt"); // name = agnameof(g); +UNSUPPORTED("y39797izv2dtp714gzmbjmt2"); // sep = " "; +UNSUPPORTED("deq0wlkdzgn0dsup6s8crdptk"); // if (!name || name[0] == '%') +UNSUPPORTED("bngxzmad7ha2neojmucdgq2f"); // sep = name = ""; +UNSUPPORTED("2upjlgu52bgdstwlj5g27peod"); // {if ((indent(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("5x4jedwac3kvbjptwajbktmx9"); // {if ((ioput(g, ofile, strict)) == EOF) return EOF;}; +UNSUPPORTED("7gibcx01sloiz2efkhytt8gx4"); // /* output "graph" only for root graphs or graphs with names */ +UNSUPPORTED("6qy1c4safapm1tb5wyodbw52d"); // if (*name || root) { +UNSUPPORTED("2g43v7zyxobg6xrwdex1ad5fw"); // {if ((ioput(g, ofile, kind)) == EOF) return EOF;}; +UNSUPPORTED("48tfev7pi5eibapsnaibi6q4"); // {if ((ioput(g, ofile, "graph ")) == EOF) return EOF;}; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c6idt0yj6nq2ckloubbnilhq6"); // if (name[0]) +UNSUPPORTED("3kefg3n38sd1r4iu21fkfdpf5"); // {if ((write_canonstr(g, ofile, name)) == EOF) return EOF;}; +UNSUPPORTED("67g1mzlw40lif93mafscbv4vi"); // {if ((ioput(g, ofile, sep)) == EOF) return EOF;}; +UNSUPPORTED("e0s5onmgtm3tlfd56y1rf4m6i"); // {if ((ioput(g, ofile, "{\n")) == EOF) return EOF;}; +UNSUPPORTED("9brxtep7biyoqds0hj0atawrp"); // Level++; +UNSUPPORTED("bd93m59b1ncaay038o5563pwq"); // {if ((write_dicts(g, ofile, top)) == EOF) return EOF;}; +UNSUPPORTED("utp8mj7yh7s1sb68xrde8b8"); // AGATTRWF(g) = (!(0)); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3ledn06tna47mr73hhkiydl5l +// static int write_trl(Agraph_t * g, iochan_t * ofile) +public static Object write_trl(Object... arg) { +UNSUPPORTED("b4cjvzzfv0u8yh5ym5v2dmx2e"); // static int write_trl(Agraph_t * g, iochan_t * ofile) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2q3myz3ctrvxg2tezy4xtlm09"); // (void) g; +UNSUPPORTED("b3oxdten2n4i8m918fdxsp1hh"); // Level--; +UNSUPPORTED("2upjlgu52bgdstwlj5g27peod"); // {if ((indent(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("836o18jp9on1g7j6kfal2t1wd"); // {if ((ioput(g, ofile, "}\n")) == EOF) return EOF;}; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eyh488kxcrbg6le1efk7a3xpu +// static int irrelevant_subgraph(Agraph_t * g) +public static Object irrelevant_subgraph(Object... arg) { +UNSUPPORTED("4oyi2kt79cxmi0rtl1m5q6g6h"); // static int irrelevant_subgraph(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("fv6rlb2tzb6zbyr7t72uclhx"); // int i, n; +UNSUPPORTED("cx0vt87bfp7pjiaw2jb68u1v7"); // Agattr_t *sdata, *pdata, *rdata; +UNSUPPORTED("eq0gq1d7pmvj94j5nxbexze8p"); // Agdatadict_t *dd; +UNSUPPORTED("8i0d7frxcvvmzhidle0zin9i0"); // char *name; +UNSUPPORTED("b1au7bgi7piu07obja3u404tt"); // name = agnameof(g); +UNSUPPORTED("c6ldem2asmpu0kxd9k0v9b52m"); // if (name && name[0] != '%') +UNSUPPORTED("e6i1m837bi402fjvy87uxgyf"); // return (0); +UNSUPPORTED("1p7l4il64r01z920qe41c1z6l"); // if ((sdata = agattrrec(g)) && (pdata = agattrrec(agparent(g)))) { +UNSUPPORTED("4qk4wnxqgrsapkliulr94azku"); // rdata = agattrrec(agroot(g)); +UNSUPPORTED("dxmershxq961ha7vc4m5cr62k"); // n = dtsize(rdata->dict); +UNSUPPORTED("2865bsxs4j68vooz1yohtvgy"); // for (i = 0; i < n; i++) +UNSUPPORTED("29ws3fuj2ixpal7w4giqlkeoc"); // if (sdata->str[i] && pdata->str[i] +UNSUPPORTED("cek78fcyqh122xyfndqd7s7cc"); // && strcmp(sdata->str[i], pdata->str[i])) +UNSUPPORTED("dpizbhlbpjwomse6dgvnrhaih"); // return (0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3rxguujcd6li5w0c4w1p79et1"); // dd = agdatadict(g, (0)); +UNSUPPORTED("3tczoyxz5wlg8a4g3uhvrmm5o"); // if (!dd) +UNSUPPORTED("3adr32h5e1fehu4g7j2u24asz"); // return (!(0)); +UNSUPPORTED("22w1xj2fgexar3yp1jw8lz583"); // if ((dtsize(dd->dict.n) > 0) || (dtsize(dd->dict.e) > 0)) +UNSUPPORTED("e6i1m837bi402fjvy87uxgyf"); // return (0); +UNSUPPORTED("4si0cf97a5sfd9ozuunds9goz"); // return (!(0)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ck85o9cm7ekqx3c2l0adsac5s +// int node_in_subg(Agraph_t * g, Agnode_t * n) +public static Object node_in_subg(Object... arg) { +UNSUPPORTED("lttsft2kddk4usoa58k8snym"); // int node_in_subg(Agraph_t * g, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("92vjk6rjnnnji7bcczz51lwfx"); // for (subg = agfstsubg(g); subg; subg = agnxtsubg(subg)) { +UNSUPPORTED("7y0e3lnda08y951e0taazdpb3"); // if (irrelevant_subgraph(subg)) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("b64f4gc73opgpeltlgyojoq15"); // if (agsubnode(subg, n, (0))) +UNSUPPORTED("euj7k5raviuazd8jahwobe0r3"); // return (!(0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("297p5iu8oro94tdg9v29bbgiw"); // return (0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ksojc2a5losovfniqlzgt1vt +// static int has_no_edges(Agraph_t * g, Agnode_t * n) +public static Object has_no_edges(Object... arg) { +UNSUPPORTED("64vkuv5tpo1b1viokvi658vrb"); // static int has_no_edges(Agraph_t * g, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("awbxq19f7u7jetepurmyrq5mv"); // return ((agfstin(g, n) == ((Agedge_t *)0)) +UNSUPPORTED("enl87hoolfbxysnsww72soosi"); // && (agfstout(g, n) == ((Agedge_t *)0))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2iad3x6pf4ovvofoylnqwe2wc +// static int has_no_predecessor_below(Agraph_t * g, Agnode_t * n, unsigned long val) +public static Object has_no_predecessor_below(Object... arg) { +UNSUPPORTED("7lbmpmt9voddi7i14szyn3qmm"); // static int has_no_predecessor_below(Agraph_t * g, Agnode_t * n, +UNSUPPORTED("1fr81p8hxc1nvf0lvodnf29px"); // unsigned long val) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("38wcnqjivdjylzj9ulbjvi1e1"); // if (AGSEQ(n) < val) +UNSUPPORTED("e6i1m837bi402fjvy87uxgyf"); // return (0); +UNSUPPORTED("ac765q9popbptusjymwzret5y"); // for (e = agfstin(g, n); e; e = agnxtin(g, e)) +UNSUPPORTED("dzqw274wu2nx03reilr9l7j5y"); // if (AGSEQ(e->node) < val) +UNSUPPORTED("8tnlb2txucdutal7665h0v68g"); // return (0); +UNSUPPORTED("4si0cf97a5sfd9ozuunds9goz"); // return (!(0)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 tn031eypwz2gs5143bxpsnuu +// static int not_default_attrs(Agraph_t * g, Agnode_t * n) +public static Object not_default_attrs(Object... arg) { +UNSUPPORTED("emqc8yarfq0dgf06cnadhmpy7"); // static int not_default_attrs(Agraph_t * g, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bbzey600kwgvkyquhmgo33kda"); // Agattr_t *data; +UNSUPPORTED("av59ae8c4mws46sf5dumz1k0s"); // Agsym_t *sym; +UNSUPPORTED("2q3myz3ctrvxg2tezy4xtlm09"); // (void) g; +UNSUPPORTED("9j51hcoecext2qm6zhr7sj0oz"); // if ((data = agattrrec(n))) { +UNSUPPORTED("coc462aobf6quvrhpcpnjpdrn"); // for (sym = (Agsym_t *) (*(((Dt_t*)(data->dict))->searchf))((data->dict),(void*)(0),0000200); sym; +UNSUPPORTED("amu8ypy9stk8vb4g601x25kpb"); // sym = (Agsym_t *) (*(((Dt_t*)(data->dict))->searchf))((data->dict),(void*)(sym),0000010)) { +UNSUPPORTED("8wug16wgeteq8od3sraaujwnx"); // if (data->str[sym->id] != sym->defval) +UNSUPPORTED("a1a1uhff21noh1htwzn6yp831"); // return (!(0)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("297p5iu8oro94tdg9v29bbgiw"); // return (0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3hudq21u19r8v940lhosa07zk +// static int write_subgs(Agraph_t * g, iochan_t * ofile) +public static Object write_subgs(Object... arg) { +UNSUPPORTED("81exc454cwr51dk4iq3g3so7e"); // static int write_subgs(Agraph_t * g, iochan_t * ofile) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("92vjk6rjnnnji7bcczz51lwfx"); // for (subg = agfstsubg(g); subg; subg = agnxtsubg(subg)) { +UNSUPPORTED("b5hukzaylqhk3l4u8ewu9m7bz"); // if (irrelevant_subgraph(subg)) { +UNSUPPORTED("br6dtjggd74cdyd97thtidtrh"); // write_subgs(subg, ofile); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("1ckh4rmjqkc7rc1701bz33i77"); // {if ((write_hdr(subg, ofile, (0))) == EOF) return EOF;}; +UNSUPPORTED("35agz39gubwvzxnxqoyttjyov"); // {if ((write_body(subg, ofile)) == EOF) return EOF;}; +UNSUPPORTED("6eshqt45zq6jp769b50pfyvlg"); // {if ((write_trl(subg, ofile)) == EOF) return EOF;}; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 61m4d49ffhloytgknml3f3wr9 +// static int write_edge_name(Agedge_t * e, iochan_t * ofile, int terminate) +public static Object write_edge_name(Object... arg) { +UNSUPPORTED("7653rldgp23j0jh9w5u24afy9"); // static int write_edge_name(Agedge_t * e, iochan_t * ofile, int terminate) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("egwh1ccpd1lrz94020eszo4mm"); // p = agnameof(e); +UNSUPPORTED("dmucqaij4o1u2fxfg43y5j4ow"); // g = agraphof(e); +UNSUPPORTED("bq8birldnzbfylw4cnes3ptj5"); // if (NOT(((p == 0) || (p)[0] == '\0'))) { +UNSUPPORTED("5kbp8i958xdwwdrsh3bodyol6"); // {if ((ioput(g, ofile, " [key=")) == EOF) return EOF;}; +UNSUPPORTED("awv07dimzjjfdzdt11o3pq77k"); // {if ((write_canonstr(g, ofile, p)) == EOF) return EOF;}; +UNSUPPORTED("d1a8tpm0uunsuvxjpppo8iww6"); // if (terminate) +UNSUPPORTED("cjtrrjw2cx48bap924touvqbx"); // {if ((ioput(g, ofile, "]")) == EOF) return EOF;}; +UNSUPPORTED("e1ueu04zlv0zdyfii20b8r0rk"); // rv = (!(0)); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("f5bn92wqqc6u64vmryax7oqh4"); // rv = (0); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 29knq7812qkc7yve3ynqs319m +// static int write_nondefault_attrs(void *obj, iochan_t * ofile, Dict_t * defdict) +public static Object write_nondefault_attrs(Object... arg) { +UNSUPPORTED("2eq8u2i8o96r7kj3kvvpk8pp8"); // static int write_nondefault_attrs(void *obj, iochan_t * ofile, +UNSUPPORTED("f427jfb8dxus2g2a3h2u8o5xu"); // Dict_t * defdict) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bbzey600kwgvkyquhmgo33kda"); // Agattr_t *data; +UNSUPPORTED("av59ae8c4mws46sf5dumz1k0s"); // Agsym_t *sym; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("behjm5bjsenezpg3f7cncvteu"); // int cnt = 0; +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("eg7ostyrb6k3w76d6frhjsxao"); // if ((AGTYPE(obj) == AGINEDGE) || (AGTYPE(obj) == AGOUTEDGE)) { +UNSUPPORTED("b55iou6m33m4dht1xfevf1l4a"); // {if ((rv = write_edge_name(obj, ofile, (0))) == EOF) return EOF;}; +UNSUPPORTED("3530976sh2i9fg23975vrw161"); // if (rv) +UNSUPPORTED("7hl03wjg5yryhvbe4ar0i0b8g"); // cnt++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2jm7yr9s1ma9qprxon3kn34hs"); // data = agattrrec(obj); +UNSUPPORTED("8pfuk9ua4x9bh68zk1kzwc5t9"); // g = agraphof(obj); +UNSUPPORTED("ck70ilm5r0hsin65zhsuhqvr8"); // if (data) +UNSUPPORTED("2xgrljvi8tbcibpvd93e3y4wu"); // for (sym = (Agsym_t *) (*(((Dt_t*)(defdict))->searchf))((defdict),(void*)(0),0000200); sym; +UNSUPPORTED("5iyprqxhu5o7vb2hvqsg29102"); // sym = (Agsym_t *) (*(((Dt_t*)(defdict))->searchf))((defdict),(void*)(sym),0000010)) { +UNSUPPORTED("1277c7kjmziau8c0dpsgenzrx"); // if ((AGTYPE(obj) == AGINEDGE) || (AGTYPE(obj) == AGOUTEDGE)) { +UNSUPPORTED("1sexsl72k6x8a89gyzml82202"); // if (Tailport && (sym->id == Tailport->id)) +UNSUPPORTED("2yi9az7ibt7j9bwztjilyo0v2"); // continue; +UNSUPPORTED("e5ubbne6czhxg5l70lp73v2qy"); // if (Headport && (sym->id == Headport->id)) +UNSUPPORTED("2yi9az7ibt7j9bwztjilyo0v2"); // continue; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("an1qa2d9iqrp3xzh32hq5m7wo"); // if (data->str[sym->id] != sym->defval) { +UNSUPPORTED("4xhq9pg814p2c5b2fffoiv6h9"); // if (cnt++ == 0) { +UNSUPPORTED("34h2pyawnomoq99i31tmiadll"); // {if ((indent(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("edwv0jnia03ljoa7nei9zz0de"); // {if ((ioput(g, ofile, " [")) == EOF) return EOF;}; +UNSUPPORTED("cyr36a84f56xloi9axapn4x0l"); // Level++; +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("dm4dxqtiqxuaqodlpd06p0iu2"); // {if ((ioput(g, ofile, ",\n")) == EOF) return EOF;}; +UNSUPPORTED("34h2pyawnomoq99i31tmiadll"); // {if ((indent(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("ewb7dhzx8h311btm514wxqh5d"); // {if ((write_canonstr(g, ofile, sym->name)) == EOF) return EOF;}; +UNSUPPORTED("e5geka21ka5gvgmjo8gyb2vul"); // {if ((ioput(g, ofile, "=")) == EOF) return EOF;}; +UNSUPPORTED("66a4xw8npqjv8xk4jka0g2xsm"); // {if ((write_canonstr(g, ofile, data->str[sym->id])) == EOF) return EOF;}; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3edmnqy3ok6qglbgwxmakkngx"); // if (cnt > 0) { +UNSUPPORTED("35d94qq9wy75h3y8r2eov436"); // {if ((ioput(g, ofile, "]")) == EOF) return EOF;}; +UNSUPPORTED("17ejasz912kqtejldaozqxa0y"); // Level--; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("au1zt5ka3uvb2gtbnxfc6dp8m"); // AGATTRWF((Agobj_t *) obj) = (!(0)); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cxw4svv83nd76h7g9n4wtvyhe +// static int write_nodename(Agnode_t * n, iochan_t * ofile) +public static Object write_nodename(Object... arg) { +UNSUPPORTED("cpgq7yh759xl1zrvqft4831wz"); // static int write_nodename(Agnode_t * n, iochan_t * ofile) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2p565zvorxx52bxl6qo7p76e"); // char *name, buf[20]; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("a4xof3tnbquhro6rrhmnuqoli"); // name = agnameof(n); +UNSUPPORTED("38tgkes5dhr4oloxpg73baq10"); // g = agraphof(n); +UNSUPPORTED("30nxp5k7c6mdth5ymcpz1oxob"); // if (name) { +UNSUPPORTED("3kefg3n38sd1r4iu21fkfdpf5"); // {if ((write_canonstr(g, ofile, name)) == EOF) return EOF;}; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("ezpeldusu1c6rg1a2nm7scden"); // sprintf(buf, "_%ld_SUSPECT", AGID(n)); /* could be deadly wrong */ +UNSUPPORTED("bryntb9dnhodyku7ylgr1cie9"); // {if ((ioput(g, ofile, buf)) == EOF) return EOF;}; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 evmg0r67fn4l8l3ivojk7rt0g +// static int attrs_written(void *obj) +public static Object attrs_written(Object... arg) { +UNSUPPORTED("7psl0ji9q989ywpylalpurvqy"); // static int attrs_written(void *obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ae64q3xp4s7ek7gaqaekhyrbv"); // return (AGATTRWF((Agobj_t *) obj)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2m70lxskcmbyg6wdxe5r6ai1e +// static int write_node(Agnode_t * n, iochan_t * ofile, Dict_t * d) +public static Object write_node(Object... arg) { +UNSUPPORTED("cqa550o688iknrhl43di42f58"); // static int write_node(Agnode_t * n, iochan_t * ofile, Dict_t * d) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("38tgkes5dhr4oloxpg73baq10"); // g = agraphof(n); +UNSUPPORTED("2upjlgu52bgdstwlj5g27peod"); // {if ((indent(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("ad6u6q90muje77m4c2w3g4vnp"); // {if ((write_nodename(n, ofile)) == EOF) return EOF;}; +UNSUPPORTED("188f2l06cxx44bobai7uck0n3"); // if (NOT(attrs_written(n))) +UNSUPPORTED("604ofy6n5gra880spsr7pttzu"); // {if ((write_nondefault_attrs(n, ofile, d)) == EOF) return EOF;}; +UNSUPPORTED("36fggxzk0yp5o9iu0wl66dbg4"); // return ioput(g, ofile, ";\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f14lr3pcw3fr38egphpz5nnu4 +// static int write_node_test(Agraph_t * g, Agnode_t * n, unsigned long pred_id) +public static Object write_node_test(Object... arg) { +UNSUPPORTED("5dzvb8cmg948ujvvba4qgoohs"); // static int write_node_test(Agraph_t * g, Agnode_t * n, +UNSUPPORTED("5wtydk3j3fgnkmg8zhzz67wtx"); // unsigned long pred_id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4iai1f8jf6nldihij6j7geznt"); // if (NOT(node_in_subg(g, n)) && has_no_predecessor_below(g, n, pred_id)) { +UNSUPPORTED("6r86ld6632dwt68hrrxl7r69n"); // if (has_no_edges(g, n) || not_default_attrs(g, n)) +UNSUPPORTED("euj7k5raviuazd8jahwobe0r3"); // return (!(0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("297p5iu8oro94tdg9v29bbgiw"); // return (0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5zf7u1r6hz67tt7a3231b6prh +// static int write_port(Agedge_t * e, iochan_t * ofile, Agsym_t * port) +public static Object write_port(Object... arg) { +UNSUPPORTED("4xje10w5oamectfsdzliliyqw"); // static int write_port(Agedge_t * e, iochan_t * ofile, Agsym_t * port) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eocf25luzhwv5bxjexjp351gh"); // char *val; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("8rqevc1hrm1ne2lnxwvj4fv4c"); // if (!port) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dmucqaij4o1u2fxfg43y5j4ow"); // g = agraphof(e); +UNSUPPORTED("831dn8v157veiodzq2v8241lf"); // val = agxget(e, port); +UNSUPPORTED("4suzircl51e85yp915bz7v4qu"); // if (val[0] == '\0') +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("1p5n9iv2fv2lzf7o45j51tgxp"); // {if ((ioput(g, ofile, ":")) == EOF) return EOF;}; +UNSUPPORTED("3iqdx5w9ghlst037y7bcvz6wf"); // if (aghtmlstr(val)) { +UNSUPPORTED("56u7ilzcb1yhhwozqmp6hleat"); // {if ((write_canonstr(g, ofile, val)) == EOF) return EOF;}; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("252d0vgl5lh8pgtnfcmeu89tc"); // char *s = strchr(val, ':'); +UNSUPPORTED("dmtz739k0mm5ehrx59272alpr"); // if (s) { +UNSUPPORTED("ezrforbrab3hidaupv18faqcb"); // *s = '\0'; +UNSUPPORTED("akn31o7bkj0ssrdx07xi5mm43"); // {if ((_write_canonstr(g, ofile, val, (0))) == EOF) return EOF;}; +UNSUPPORTED("81xvkbzakdflnij10q44u5uoe"); // {if ((ioput(g, ofile, ":")) == EOF) return EOF;}; +UNSUPPORTED("4fp9nlo79i4xv1dnsitfjarsm"); // {if ((_write_canonstr(g, ofile, s + 1, (0))) == EOF) return EOF;}; +UNSUPPORTED("94ybugc52d4387gg45p7y33hs"); // *s = ':'; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("akn31o7bkj0ssrdx07xi5mm43"); // {if ((_write_canonstr(g, ofile, val, (0))) == EOF) return EOF;}; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4ldk2wgnwzswqi3af43tel24y +// static int write_edge_test(Agraph_t * g, Agedge_t * e) +public static Object write_edge_test(Object... arg) { +UNSUPPORTED("9yp7jgxf5ed1bvk0sw51xbkbo"); // static int write_edge_test(Agraph_t * g, Agedge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("9qltiz4q6ds2g8b7awgcytymv"); // /* can use agedge() because we subverted the dict compar_f */ +UNSUPPORTED("92vjk6rjnnnji7bcczz51lwfx"); // for (subg = agfstsubg(g); subg; subg = agnxtsubg(subg)) { +UNSUPPORTED("7y0e3lnda08y951e0taazdpb3"); // if (irrelevant_subgraph(subg)) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("eg7qrpri7skg2hr3nvvadkdyd"); // if (agsubedge(subg, e, (0))) +UNSUPPORTED("8tnlb2txucdutal7665h0v68g"); // return (0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4si0cf97a5sfd9ozuunds9goz"); // return (!(0)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 achkvduksnhmlem44ia61tdpm +// static int write_edge(Agedge_t * e, iochan_t * ofile, Dict_t * d) +public static Object write_edge(Object... arg) { +UNSUPPORTED("35w5n554uravyh0k7gmn73zup"); // static int write_edge(Agedge_t * e, iochan_t * ofile, Dict_t * d) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4ybt6tm56tubmbuve8lp6rxhh"); // Agnode_t *t, *h; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("5webprz21nzifr3m5zwnqxx6m"); // t = AGTAIL(e); +UNSUPPORTED("ax8363bkxphvbre4n21ewb568"); // h = AGHEAD(e); +UNSUPPORTED("8qt01zznk6z8nu3spriyiry81"); // g = agraphof(t); +UNSUPPORTED("2upjlgu52bgdstwlj5g27peod"); // {if ((indent(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("2gxk9z53sl9dr4ozmgyl6vn6j"); // {if ((write_nodename(t, ofile)) == EOF) return EOF;}; +UNSUPPORTED("71dxqgydbyqut1trdx63djy04"); // {if ((write_port(e, ofile, Tailport)) == EOF) return EOF;}; +UNSUPPORTED("edsdju74g486xwykrjecfdz9t"); // {if ((ioput(g, ofile,(agisdirected(agraphof(t)) ? " -> " : " -- "))) == EOF) return EOF;}; +UNSUPPORTED("cg68mtym2rtcpt6dl9cgou9ty"); // {if ((write_nodename(h, ofile)) == EOF) return EOF;}; +UNSUPPORTED("9yj27gqf0jtykmnnuyntescvp"); // {if ((write_port(e, ofile, Headport)) == EOF) return EOF;}; +UNSUPPORTED("1v1o17ud9bvt5cbsexej1x6lb"); // if (NOT(attrs_written(e))) { +UNSUPPORTED("ddestrlasmplu0lkczahiwnio"); // {if ((write_nondefault_attrs(e, ofile, d)) == EOF) return EOF;}; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("197ftan7rtv20qonq7s9jvp8n"); // {if ((write_edge_name(e, ofile, (!(0)))) == EOF) return EOF;}; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("36fggxzk0yp5o9iu0wl66dbg4"); // return ioput(g, ofile, ";\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 uu07lrf43gcxm3lfka71pyvs +// static int write_body(Agraph_t * g, iochan_t * ofile) +public static Object write_body(Object... arg) { +UNSUPPORTED("24udwe07nmfa7mly8u6t458cy"); // static int write_body(Agraph_t * g, iochan_t * ofile) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6vso73lw5lxv6m32fli4evzoo"); // Agnode_t *n, *prev; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("eq0gq1d7pmvj94j5nxbexze8p"); // Agdatadict_t *dd; +UNSUPPORTED("ecc7weo8sqce4hc8zhangqyxh"); // /* int has_attr; */ +UNSUPPORTED("1qkoefgefzcbae9lcfldryhcu"); // /* has_attr = (agattrrec(g) != NIL(Agattr_t*)); */ +UNSUPPORTED("epct28o6e8jijggk3kdf7at2d"); // {if ((write_subgs(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("avn5z8qt3zn87v0tr4t43aptm"); // dd = agdatadict(agroot(g), (0)); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("5o93nkpvajmx0eouvhi1py3a3"); // if (write_node_test(g, n, AGSEQ(n))) +UNSUPPORTED("bnzzfj5rb2fb7l96rnoscoyzt"); // {if ((write_node(n, ofile, dd ? dd->dict.n : 0)) == EOF) return EOF;}; +UNSUPPORTED("9z3wosnod2eza62eqd598gf15"); // prev = n; +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("4rv2a1j1w99ox9vwkb58qcndm"); // if ((prev != aghead(e)) +UNSUPPORTED("6pm10qlp4eognb60xcbf4a2tx"); // && write_node_test(g, aghead(e), AGSEQ(n))) { +UNSUPPORTED("as20nn69z1udd99ioxq1m2410"); // {if ((write_node(aghead(e), ofile, dd ? dd->dict.n : 0)) == EOF) return EOF;}; +UNSUPPORTED("4hmon4o3z87811qet9gh6wspf"); // prev = aghead(e); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("a9y45p58h8680rmry84kep0k7"); // if (write_edge_test(g, e)) +UNSUPPORTED("6yl3in89h59zpkbs0vjdo9g5e"); // {if ((write_edge(e, ofile, dd ? dd->dict.e : 0)) == EOF) return EOF;}; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6qzik6sn6t699oya0mtmc09kj +// static void set_attrwf(Agraph_t * g, int toplevel, int value) +public static Object set_attrwf(Object... arg) { +UNSUPPORTED("8qq9xih8ju452kzwi2vfuflx1"); // static void set_attrwf(Agraph_t * g, int toplevel, int value) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("24t3hnv9bwzu54ytirjoo9ll0"); // AGATTRWF(g) = value; +UNSUPPORTED("92vjk6rjnnnji7bcczz51lwfx"); // for (subg = agfstsubg(g); subg; subg = agnxtsubg(subg)) { +UNSUPPORTED("37kcx814prucmw0dgtx90gys3"); // set_attrwf(subg, (0), value); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5r7vuplpj8az4hdy8stn9opja"); // if (toplevel) { +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("8wb9syhcd6ckmrfo4kkh1dg6o"); // AGATTRWF(n) = value; +UNSUPPORTED("8wpryg13apwpccvklympyeyqu"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) +UNSUPPORTED("cb595c0e5qk8td22sve3vdd9y"); // AGATTRWF(e) = value; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9bptgx2xn1o2lmf9b3bmbjcx8 +// int agwrite(Agraph_t * g, void *ofile) +public static Object agwrite(Object... arg) { +UNSUPPORTED("354j237921gksw95lxhfou3c9"); // int agwrite(Agraph_t * g, void *ofile) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("yiuh599p05f2mpu2e3pesu2o"); // char* s; +UNSUPPORTED("dwe86466ugstemepdfk8yzphz"); // int len; +UNSUPPORTED("w1wwvddvl612b2n4mm48vyzg"); // Level = 0; /* re-initialize tab level */ +UNSUPPORTED("c1kw4u0tftoc897fbywyem5cx"); // if ((s = agget(g, "linelength")) && isdigit(*s)) { +UNSUPPORTED("3osc4y4ixfivmttpwtzh5gqse"); // len = (int)strtol(s, (char **)NULL, 10); +UNSUPPORTED("4rqc2dbtsiwkva90qvgd404ve"); // if ((len == 0) || (len >= 60)) +UNSUPPORTED("72a6c8cf7tnb2ookwzttqa88n"); // Max_outputline = len; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4sbvvs8w0qt626w12i77zjorp"); // set_attrwf(g, (!(0)), (0)); +UNSUPPORTED("auyox07z514kd3x5fgcna10dd"); // {if ((write_hdr(g, ofile, (!(0)))) == EOF) return EOF;}; +UNSUPPORTED("75p7mwy716aorog189xdsukra"); // {if ((write_body(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("dfeqp09vdcut9uyrm908or81q"); // {if ((write_trl(g, ofile)) == EOF) return EOF;}; +UNSUPPORTED("b4rn0yi1ogpc3e78wrtt5jj15"); // Max_outputline = 128; +UNSUPPORTED("cbe60vdps5mrbfuocxpwxzu78"); // return ((g)->clos->disc.io)->flush(ofile); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/circogen/block__c.java plantuml-8039/src/gen/lib/circogen/block__c.java --- plantuml-8024/src/gen/lib/circogen/block__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/circogen/block__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,792 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.circogen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class block__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9rei645fnqv344obz0uoyex48 +// void initBlocklist(blocklist_t * bl) +public static Object initBlocklist(Object... arg) { +UNSUPPORTED("b9lm66dbqkkvj11gjv6ixtzes"); // void initBlocklist(blocklist_t * bl) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2gv0rd5g51qywarjewujgg0wg"); // bl->first = NULL; +UNSUPPORTED("84wobegtjib75n6tzvjh44yz9"); // bl->last = NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 19tlf8geba4mmtvfraapj2ihq +// block_t *mkBlock(Agraph_t * g) +public static Object mkBlock(Object... arg) { +UNSUPPORTED("8aht5e0uzry2hgrx8j3t91t3h"); // block_t *mkBlock(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ep27cw0fr6yzvjsr2jjkjlec8"); // block_t *sn; +UNSUPPORTED("7qyv71ou47lailu4hr5ivx7pn"); // sn = (block_t*)zmalloc(sizeof(block_t)); +UNSUPPORTED("a78jj8s3uefgn1qrwuo3dk1zg"); // initBlocklist(&sn->children); +UNSUPPORTED("72hz711fvb7wvjonk9a8za7wr"); // sn->sub_graph = g; +UNSUPPORTED("axh3xbpigakp8kvk0zxytmhrh"); // return sn; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4cy6ndql7d5hrpt7o1mzu72g7 +// void freeBlock(block_t * sp) +public static Object freeBlock(Object... arg) { +UNSUPPORTED("by27j04uml21wxjfx84pwdxft"); // void freeBlock(block_t * sp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bw55qe8krzotin01mfy1csyex"); // if (!sp) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("bgl6boip2qg0jeqpb0xul7zq5"); // freeNodelist(sp->circle_list); +UNSUPPORTED("714y8kgak1wm462uo9bbws9cm"); // free(sp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2ojqv7jnuux6c4p8esq8xxgc7 +// int blockSize(block_t * sp) +public static Object blockSize(Object... arg) { +UNSUPPORTED("9zpg2zz1n9vha7oq1jtt6zg1b"); // int blockSize(block_t * sp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4ovedot78vu5tzh694k36bu2s"); // return agnnodes (sp->sub_graph); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c76mkedayihrzuhirkmh8frs0 +// void appendBlock(blocklist_t * bl, block_t * bp) +public static Object appendBlock(Object... arg) { +UNSUPPORTED("3kzcmknh3043exfd3rg9qnauu"); // void appendBlock(blocklist_t * bl, block_t * bp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bo0d60j50f7vu1x1mgrblwzhi"); // bp->next = NULL; +UNSUPPORTED("3xp3wpcmexyum8m1gq428okg1"); // if (bl->last) { +UNSUPPORTED("b4rchxhfigzjnd0zk6fj6fds0"); // bl->last->next = bp; +UNSUPPORTED("3pxhbtenmm4l9t5c1rzo8xlq2"); // bl->last = bp; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("8q5ii2me9kwiu5wq2zivlj783"); // bl->first = bp; +UNSUPPORTED("3pxhbtenmm4l9t5c1rzo8xlq2"); // bl->last = bp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4s05y1elv7zc7nryp7pos16tc +// void insertBlock(blocklist_t * bl, block_t * bp) +public static Object insertBlock(Object... arg) { +UNSUPPORTED("2nghwj079h9g08aglo2lda8nw"); // void insertBlock(blocklist_t * bl, block_t * bp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5yixtdzq6t0fq3duxif5nnf6k"); // if (bl->first) { +UNSUPPORTED("9qazclvxrbi2ldc49nj6mxplk"); // bp->next = bl->first; +UNSUPPORTED("8q5ii2me9kwiu5wq2zivlj783"); // bl->first = bp; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("8q5ii2me9kwiu5wq2zivlj783"); // bl->first = bp; +UNSUPPORTED("3pxhbtenmm4l9t5c1rzo8xlq2"); // bl->last = bp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/circogen/blockpath__c.java plantuml-8039/src/gen/lib/circogen/blockpath__c.java --- plantuml-8024/src/gen/lib/circogen/blockpath__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/circogen/blockpath__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1377 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.circogen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class blockpath__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 e0c6o8stnbe78j48z75ksdz7r +// typedef Dt_t edgelist + + +//1 39duc9sgnnz7xqy8c1hhno72b +// typedef Dt_t nodeset_t + + +//1 7j7kswbhzemhda2b85gqybnya +// typedef Dt_t deglist_t + + + + +//3 1xvwimo7h6xxwr3nk7628z91s +// static Agraph_t *clone_graph(Agraph_t * ing, Agraph_t ** xg) +public static Object clone_graph(Object... arg) { +UNSUPPORTED("34rwtfj0jl6bt8tx92beev5es"); // static Agraph_t *clone_graph(Agraph_t * ing, Agraph_t ** xg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6wqyctm7ejmgwmi9b1flcldk3"); // Agraph_t *clone; +UNSUPPORTED("5xvxmd998k2ijhl36ekqvj047"); // Agraph_t *xclone; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("5symvkivg72wbeqivuz9ryc6v"); // Agnode_t *xn; +UNSUPPORTED("cpd7gqx32iybmzyawrjcefiz4"); // Agnode_t *xh; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("das87gvl5xaq7y7ewtx5trkws"); // Agedge_t *xe; +UNSUPPORTED("drj328bbj3dx7pr601ewryc7l"); // char gname[128]; +UNSUPPORTED("dprz24km2yzgmc5ejmr97z3t"); // static int id = 0; +UNSUPPORTED("3uv05i6otc22zt0czdcyol8c4"); // sprintf(gname, "_clone_%d", id++); +UNSUPPORTED("2tckewjgb2ez5dfcjpkgpmycc"); // clone = agsubg(ing, gname,1); +UNSUPPORTED("ef32h8iori24zal5sdv464o4d"); // agbindrec(clone, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); //node custom data +UNSUPPORTED("3uv05i6otc22zt0czdcyol8c4"); // sprintf(gname, "_clone_%d", id++); +UNSUPPORTED("61zzjvyr1c2df7ivceck1gill"); // xclone = agopen(gname, ing->desc,((Agdisc_t *)0)); +UNSUPPORTED("9q61eb8nam9w8rcvj6541f4i1"); // for (n = agfstnode(ing); n; n = agnxtnode(ing, n)) { +UNSUPPORTED("bd9reyxulshw9zgpuyvynufwr"); // agsubnode(clone,n,1); +UNSUPPORTED("dnawynwzg0deirz2ezhwax64z"); // xn = agnode(xclone, agnameof(n),1); +UNSUPPORTED("cpyo6x44eksqi66ug3agz7etm"); // agbindrec(xn, "Agnodeinfo_t", sizeof(Agnodeinfo_t), NOT(0)); //node custom data +UNSUPPORTED("7dnug9uxi7ddoghyrm8rbz45f"); // (((cdata*)(ND_alg(n)))->u.clone) = xn; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9q61eb8nam9w8rcvj6541f4i1"); // for (n = agfstnode(ing); n; n = agnxtnode(ing, n)) { +UNSUPPORTED("6std6zvo31kvt5tyxhzwncfoa"); // xn = (((cdata*)(ND_alg(n)))->u.clone); +UNSUPPORTED("5mv803jds3a1llgeb7lp12hym"); // for (e = agfstout(ing, n); e; e = agnxtout(ing, e)) { +UNSUPPORTED("f49wwvqnjs7d8fc9cm90sgbv4"); // agsubedge(clone,e,1); +UNSUPPORTED("7grev3hqtou9mx6g02xvz0b0v"); // xh = (((cdata*)(ND_alg(aghead(e))))->u.clone); +UNSUPPORTED("am4vpp5kcl3e6rciv4xntyr5b"); // xe = agedge(xclone, xn, xh, NULL, 1); +UNSUPPORTED("apc6204gnibhddglh7n3y9qo2"); // agbindrec(xe, "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); //node custom data +UNSUPPORTED("f56tf6qn2kusvulydoii7h2er"); // (ED_to_orig(xe)) = e; +UNSUPPORTED("9ayqbb28l0qyxfhjwx1asjn8z"); // (ND_order(xn)) += 1; +UNSUPPORTED("8uaatcogu6qcrp89p9733ne5l"); // (ND_order(xh)) += 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5sw6xgh0vs7xf7cty92581cew"); // *xg = xclone; +UNSUPPORTED("ahsxnrtj709jyhggtyh45qhez"); // return clone; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4js7mtzis5vqcin2nnzmzp3z6 +// static deglist_t *getList(Agraph_t * g) +public static Object getList(Object... arg) { +UNSUPPORTED("a2dgfuc79lf165ux7e468ykof"); // static deglist_t *getList(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("81bp1ufbinisb1i9is0fn5koz"); // deglist_t *dl = mkDeglist(); +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("1h4udrr1gk5uezae7l4x9e4c5"); // insertDeglist(dl, n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cm8qrfhqoqzqx9qfxzg3ti8r7"); // return dl; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4ighdv8te0lys3rchzw8aymm0 +// static void find_pair_edges(Agraph_t * g, Agnode_t * n, Agraph_t * outg) +public static Object find_pair_edges(Object... arg) { +UNSUPPORTED("xutw9e2nplvs3q4gfvk7xn29"); // static void find_pair_edges(Agraph_t * g, Agnode_t * n, Agraph_t * outg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjfpfavygvfxjo8jce5nz48ic"); // Agnode_t **neighbors_with; +UNSUPPORTED("88isz9fycrsmab3txj9tib205"); // Agnode_t **neighbors_without; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("1bl759aws53yjk3xg9shiogx5"); // Agedge_t *ep; +UNSUPPORTED("3t0ulygac81ueh0xjr391hyrh"); // Agedge_t *ex; +UNSUPPORTED("4rip97cgvbcrlgycxl0wajpuh"); // Agnode_t *n1; +UNSUPPORTED("5ozeh48rt3sdc5ufi9nv6yx88"); // Agnode_t *n2; +UNSUPPORTED("amd7is8j6qvef26sc483rjbsr"); // int has_pair_edge; +UNSUPPORTED("1wmjkf3r3rua2n9n6v1glz64z"); // int diff; +UNSUPPORTED("d1i7jcsqu99gvxf2fe251lvl6"); // int has_pair_count = 0; +UNSUPPORTED("36m9lheffujrzgna7hs9i3oa8"); // int no_pair_count = 0; +UNSUPPORTED("1l486qszpb5d3sqdm06kutpur"); // int node_degree; +UNSUPPORTED("dod8opyy7guv4i3ux4lcxsn7e"); // int edge_cnt = 0; +UNSUPPORTED("cl7dqwmcfqwhf0n719zq4i2k1"); // node_degree = (ND_order(n)); +UNSUPPORTED("vetjk9jrsga9ojup5vx2t4ni"); // neighbors_with = (Agnode_t **)gmalloc((node_degree)*sizeof(Agnode_t *)); +UNSUPPORTED("4to2767qvlj3zg70yj3ahf9cz"); // neighbors_without = (Agnode_t **)gmalloc((node_degree)*sizeof(Agnode_t *)); +UNSUPPORTED("dcuhjbsiioawp6zspvonwd4px"); // for (e = agfstedge(g, n); e; e = agnxtedge(g, e, n)) { +UNSUPPORTED("b5elzpoploj144houo511jga7"); // n1 = aghead(e); +UNSUPPORTED("1qpu7mh7kzjg30a060o39exdr"); // if (n1 == n) +UNSUPPORTED("mgr12zup6vvs740u6t01s0ay"); // n1 = agtail(e); +UNSUPPORTED("8o80wphccqc90ul9j5h8s4ilr"); // has_pair_edge = 0; +UNSUPPORTED("5b98jlpc20lv99xoeybrxpm1w"); // for (ep = agfstedge(g, n); ep; ep = agnxtedge(g, ep, n)) { +UNSUPPORTED("7jumz67ra7zkgh5bzs6ipvjbz"); // if (ep == e) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("7h0r1z7b1tcde4wytwxyigz8d"); // n2 = aghead(ep); +UNSUPPORTED("1ejwt6n5a5fy0nqpmbu2yvzcz"); // if (n2 == n) +UNSUPPORTED("7brsmwx9usebj9aic30rgi992"); // n2 = agtail(ep); +UNSUPPORTED("1w90pq659kpysd8cqbnw3qcx8"); // ex = (agedge(g,n1,n2,NULL,0)); +UNSUPPORTED("bg0v15q62qx908cnod0vhp94"); // if (ex) { +UNSUPPORTED("3jxs7icfff5r9a8w80frrl2qd"); // has_pair_edge = 1; +UNSUPPORTED("f11zryvghlrmh8ao6y8enailu"); // if (n1 < n2) { /* count edge only once */ +UNSUPPORTED("esb0m4s9o67n9ql98u27i29a6"); // edge_cnt++; +UNSUPPORTED("c2qsyou5a2mxsrqyfw0pd15f0"); // if ((ED_to_orig(ex))) { +UNSUPPORTED("3o5uqynsriitatedjwd5jqyqp"); // agdelete(outg, (ED_to_orig(ex))); +UNSUPPORTED("drj8qjyjkeeedlfyurwkzkhxl"); // (ED_to_orig(ex)) = 0; /* delete only once */ +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7vcnaipx3tekqorsaz8eb1adj"); // if (has_pair_edge) { +UNSUPPORTED("cnm2l3yft4vyot34be8t1q709"); // neighbors_with[has_pair_count] = n1; +UNSUPPORTED("bwqyt0dssk1c4fftol3ez81mj"); // has_pair_count++; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("dbgef1y9toqosqz2hc3fqgtaf"); // neighbors_without[no_pair_count] = n1; +UNSUPPORTED("9kjm44g5pimn301rv05u1mq9x"); // no_pair_count++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("689peqrlgcq6sxh3v1rsyxtgs"); // diff = node_degree - 1 - edge_cnt; +UNSUPPORTED("e7wveq1bjq0k8h3zn94l5i8wb"); // if (diff > 0) { +UNSUPPORTED("absiuplqv7ngv5nns8wt419fq"); // int mark; +UNSUPPORTED("6c2a0fq6cdv6n7jis6xvac1ix"); // Agnode_t *hp; +UNSUPPORTED("3r7e5ngdy1yhhp156zdz404vn"); // Agnode_t *tp; +UNSUPPORTED("9o448o0hfz9079rtymm3fd0qy"); // if (diff < no_pair_count) { +UNSUPPORTED("55303709crow86p7bnbxlxz61"); // for (mark = 0; mark < no_pair_count; mark += 2) { +UNSUPPORTED("9a6n9k96dfza7terjf4n1yxio"); // if ((mark + 1) >= no_pair_count) +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("62vzr4kpbt7zxzw5m06i9vxf0"); // tp = neighbors_without[mark]; +UNSUPPORTED("573djj9aqjout7yn9acz0msc0"); // hp = neighbors_without[mark + 1]; +UNSUPPORTED("4a0i5ng3bn2o81uk4awkwo3s4"); // agbindrec(agedge(g, tp, hp, NULL, 1), "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); // edge custom data +UNSUPPORTED("bt7cn3xkr1gbum4zzewtaecm9"); // (ND_order(tp))++; +UNSUPPORTED("4paqhnx66ihnlgeeho4uccezz"); // (ND_order(hp))++; +UNSUPPORTED("82nc9dwhc9qf2yqko8gvwyuu4"); // diff--; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("cvy8xzqnrho2kumg5d8mekg34"); // mark = 2; +UNSUPPORTED("39clbhwbr48385uif3r3jyo5j"); // while (diff > 0) { +UNSUPPORTED("9ibgjjztevco43v870eobnqn6"); // tp = neighbors_without[0]; +UNSUPPORTED("dogedkqmkviq59unc5qb15zog"); // hp = neighbors_without[mark]; +UNSUPPORTED("4a0i5ng3bn2o81uk4awkwo3s4"); // agbindrec(agedge(g, tp, hp, NULL, 1), "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); // edge custom data +UNSUPPORTED("bt7cn3xkr1gbum4zzewtaecm9"); // (ND_order(tp))++; +UNSUPPORTED("4paqhnx66ihnlgeeho4uccezz"); // (ND_order(hp))++; +UNSUPPORTED("bvi3mrdatiowhbq318wj7t5jy"); // mark++; +UNSUPPORTED("82nc9dwhc9qf2yqko8gvwyuu4"); // diff--; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cvk2tpu5s7mpszng4o7z4uevw"); // else if (diff == no_pair_count) { +UNSUPPORTED("2karo0elfxneqcwst1zdznso5"); // tp = neighbors_with[0]; +UNSUPPORTED("8p4qikbfm03s7g4w8yxf4tlrs"); // for (mark = 0; mark < no_pair_count; mark++) { +UNSUPPORTED("dogedkqmkviq59unc5qb15zog"); // hp = neighbors_without[mark]; +UNSUPPORTED("bx4itrrvtmxvzfputf73rj8fm"); // agbindrec(agedge(g, tp, hp, NULL, 1), "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); //node custom data +UNSUPPORTED("bt7cn3xkr1gbum4zzewtaecm9"); // (ND_order(tp))++; +UNSUPPORTED("4paqhnx66ihnlgeeho4uccezz"); // (ND_order(hp))++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7vjoj31lznmgyarxml1sy7ox6"); // free(neighbors_without); +UNSUPPORTED("bbg4ogpuvzv576iu3onqmhju1"); // free(neighbors_with); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5hjb2e85ks2yxpsv09neo671u +// static Agraph_t *remove_pair_edges(Agraph_t * ing) +public static Object remove_pair_edges(Object... arg) { +UNSUPPORTED("8b98j875ieeuxpp3w5kzn2kf8"); // static Agraph_t *remove_pair_edges(Agraph_t * ing) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9is4trbhw01oz0cmsbdblvcoa"); // int counter = 0; +UNSUPPORTED("e8p66xu6d28z50k31k7r0ruv9"); // int nodeCount; +UNSUPPORTED("5760jwtqnhv40s4dp7zpbd2p4"); // Agraph_t *outg; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("dtvy3v63j8ttw75a8ta8pgszu"); // deglist_t *dl; +UNSUPPORTED("18nnhw7fdpv524qt7ylfos296"); // Agnode_t *currnode, *adjNode; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("8jwp8mwo7ot7xsf8ns9gs8a2o"); // outg = clone_graph(ing, &g); +UNSUPPORTED("64x7lmip056ro44hpphewu94p"); // nodeCount = agnnodes(g); +UNSUPPORTED("5dt7of1fqql5p3otsieom2p1f"); // dl = getList(g); +UNSUPPORTED("10dayw0vczrle8e7lkndoebt"); // while (counter < (nodeCount - 3)) { +UNSUPPORTED("9ishx77nbvjt46s5fl4jhslpf"); // currnode = firstDeglist(dl); +UNSUPPORTED("55km83y6i071gl9xqtr1hzju0"); // /* Remove all adjacent nodes since they have to be reinserted */ +UNSUPPORTED("3cj7ssv3hhlsw7e1ot96wtq0q"); // for (e = agfstedge(g, currnode); e; e = agnxtedge(g, e, currnode)) { +UNSUPPORTED("8fnm18xabfb23euirw5rfmhe3"); // adjNode = aghead(e); +UNSUPPORTED("91oh79rmhzowurysvijqznpkk"); // if (currnode == adjNode) +UNSUPPORTED("4ti4gb4lwa7plyg7vl4b59d4e"); // adjNode = agtail(e); +UNSUPPORTED("8dn8j57dc5w84dbdxh2hk6czn"); // removeDeglist(dl, adjNode); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("gt3415hgzp0g16aajzn7it2y"); // find_pair_edges(g, currnode, outg); +UNSUPPORTED("3cj7ssv3hhlsw7e1ot96wtq0q"); // for (e = agfstedge(g, currnode); e; e = agnxtedge(g, e, currnode)) { +UNSUPPORTED("8fnm18xabfb23euirw5rfmhe3"); // adjNode = aghead(e); +UNSUPPORTED("91oh79rmhzowurysvijqznpkk"); // if (currnode == adjNode) +UNSUPPORTED("4ti4gb4lwa7plyg7vl4b59d4e"); // adjNode = agtail(e); +UNSUPPORTED("1ulrtmmbe2o7nyyx5fgxbyrre"); // (ND_order(adjNode))--; +UNSUPPORTED("810sb6lz7qgr9nrycusvbbzy7"); // insertDeglist(dl, adjNode); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9ksf1vajgaan07p41p29c1mvj"); // agdelete(g, currnode); +UNSUPPORTED("3a9goefb48roao7azhg25lwv4"); // counter++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ego3r1tvwrpv2hie8y9p8vq4z"); // agclose(g); +UNSUPPORTED("bzbcdfu9fycm2qy7dza17pulf"); // freeDeglist(dl); +UNSUPPORTED("64agnrsd2jyuqnb8ubm8yf939"); // return outg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f1mdq67yllxhx8tkbelbjdkx9 +// static void measure_distance(Agnode_t * n, Agnode_t * ancestor, int dist, Agnode_t * change) +public static Object measure_distance(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("8bbskd8aene9q6w9pz2qp13fw"); // measure_distance(Agnode_t * n, Agnode_t * ancestor, int dist, +UNSUPPORTED("4ohwv9g736ydr0cd2dmuu9bum"); // Agnode_t * change) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("emwevwo0p4unmb6sn0ik4yzap"); // Agnode_t *parent; +UNSUPPORTED("66rs5wnllik0lwwbe8fw7ktxa"); // parent = (((cdata*)(ND_alg(ancestor)))->u.t.tparent); +UNSUPPORTED("dguki3hdfa1kq44yaqn98boh9"); // if (parent == NULL) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("aw8pnfl1tsuoaueckf9mofohg"); // dist++; +UNSUPPORTED("4i7mu83mb8n3077hqvv3ztsqg"); // /* check parent to see if it has other leaf paths at greater distance +UNSUPPORTED("61w8f47fwkx6oxr422266x9u6"); // than the context node. +UNSUPPORTED("c79vqc2pd4tar610rh20wk0q5"); // set the path/distance of the leaf at this ancestor node */ +UNSUPPORTED("785w0j47h9kkeks4zohm8bn8u"); // if ((((cdata*)(ND_alg(parent)))->u.t.fdist) == 0) { +UNSUPPORTED("odqvjb27zbo8g38ir4tbv4fb"); // (((cdata*)(ND_alg(parent)))->u.t.first) = n; +UNSUPPORTED("8yb1877mq891cnion52w856az"); // (((cdata*)(ND_alg(parent)))->u.t.fdist) = dist; +UNSUPPORTED("22n84nx5zmde2aqnfq4rkhcdn"); // } else if (dist > (((cdata*)(ND_alg(parent)))->u.t.fdist)) { +UNSUPPORTED("4t78u0dg9i2tf1588vsd87wpu"); // if ((((cdata*)(ND_alg(parent)))->u.t.first) != change) { +UNSUPPORTED("5brmbajf5fq9nvllfcqjjfmsw"); // if (!(((cdata*)(ND_alg(parent)))->u.t.sdist) || ((((cdata*)(ND_alg(parent)))->u.t.second) != change)) +UNSUPPORTED("2jyqy7n3lrsgubqscmb7p3if4"); // change = (((cdata*)(ND_alg(parent)))->u.t.first); +UNSUPPORTED("19u1abvwe4vrvq0hldkrldf65"); // (((cdata*)(ND_alg(parent)))->u.t.second) = (((cdata*)(ND_alg(parent)))->u.t.first); +UNSUPPORTED("aej3ymuuarfdfevbrbkxsfs1r"); // (((cdata*)(ND_alg(parent)))->u.t.sdist) = (((cdata*)(ND_alg(parent)))->u.t.fdist); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("odqvjb27zbo8g38ir4tbv4fb"); // (((cdata*)(ND_alg(parent)))->u.t.first) = n; +UNSUPPORTED("8yb1877mq891cnion52w856az"); // (((cdata*)(ND_alg(parent)))->u.t.fdist) = dist; +UNSUPPORTED("23tiyp1zz7p7yeapfjpvg3kru"); // } else if (dist > (((cdata*)(ND_alg(parent)))->u.t.sdist)) { +UNSUPPORTED("dkbinvu0a5a7l1l2e0mfen5ls"); // (((cdata*)(ND_alg(parent)))->u.t.second) = n; +UNSUPPORTED("dg7zogxpcg388yqyb1xdvk4hg"); // (((cdata*)(ND_alg(parent)))->u.t.sdist) = dist; +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("9t7irrcz950cxvnzf5xsilkuy"); // measure_distance(n, parent, dist, change); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eqsv2jiguz68m8clhpypd2wtj +// static nodelist_t *find_longest_path(Agraph_t * tree) +public static Object find_longest_path(Object... arg) { +UNSUPPORTED("cvtvy1400pesjx53tcmkjoh24"); // static nodelist_t *find_longest_path(Agraph_t * tree) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("2gvulcn94hbghghj84i0jx84k"); // Agnode_t *common = 0; +UNSUPPORTED("dg27rmepe42fviq2zsoc4nkom"); // nodelist_t *path; +UNSUPPORTED("38pqlxd7dn2wdk3ivibma2s8r"); // nodelist_t *endPath; +UNSUPPORTED("eszd2jki841w9l43vjkv77qqy"); // int maxlength = 0; +UNSUPPORTED("5dswuhpbodc6rdro2smwpjlyd"); // int length; +UNSUPPORTED("6ze037lpldk361f6h3fwxbmkj"); // if (agnnodes(tree) == 1) { +UNSUPPORTED("5m0qc9a8hm3bdq1i2t3g0uze7"); // path = mkNodelist(); +UNSUPPORTED("c0er3d8ikj00bi6ecdbilrjzd"); // n = agfstnode(tree); +UNSUPPORTED("4b4d97qgj2naf7ialtoh01zog"); // appendNodelist(path, NULL, n); +UNSUPPORTED("ebb0c3immayb4hoajawmwxzn6"); // ((((cdata*)(ND_alg(n)))->flags) |= (1 << 4)); +UNSUPPORTED("57hqjupepq3w3p8tudecyd91y"); // return path; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f40r7vp17jnh4w34jf4kknwxu"); // for (n = agfstnode(tree); n; n = agnxtnode(tree, n)) { +UNSUPPORTED("8ggnunqhr4uo65x8fdxbsdrgr"); // int count = 0; +UNSUPPORTED("7crzab0780ludywzjqq7jn68u"); // for (e = agfstedge(tree, n); e; e = agnxtedge(tree, e, n)) { +UNSUPPORTED("fn6rrzmrb2yold6j6aofg94n"); // count++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("axvvybks5kjv50jof4glc5akw"); // if (count == 1) +UNSUPPORTED("bqeso1gnv2nbf93k6kixny15c"); // measure_distance(n, n, 0, NULL); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7l8pfb0panv7kyxnbai3r40l7"); // /* find the branch node rooted at the longest path */ +UNSUPPORTED("f40r7vp17jnh4w34jf4kknwxu"); // for (n = agfstnode(tree); n; n = agnxtnode(tree, n)) { +UNSUPPORTED("2v4h1qs75txn0u2ka5u5ohm4d"); // length = (((cdata*)(ND_alg(n)))->u.t.fdist) + (((cdata*)(ND_alg(n)))->u.t.sdist); +UNSUPPORTED("2k2m053n227krxq80hshcvbvq"); // if (length > maxlength) { +UNSUPPORTED("22ivj50dgjwft18kf35pc3hcx"); // common = n; +UNSUPPORTED("bl2c5mti2q66mk9q5zpkzvjhe"); // maxlength = length; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7l4sdilvn1glxjwba09dqlh9j"); // path = mkNodelist(); +UNSUPPORTED("18k7q52nyp8v37a82vwl7dqgf"); // for (n = (((cdata*)(ND_alg(common)))->u.t.first); n != common; n = (((cdata*)(ND_alg(n)))->u.t.tparent)) { +UNSUPPORTED("4b4d97qgj2naf7ialtoh01zog"); // appendNodelist(path, NULL, n); +UNSUPPORTED("ebb0c3immayb4hoajawmwxzn6"); // ((((cdata*)(ND_alg(n)))->flags) |= (1 << 4)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5bqpx04m3ulqgnjp1uq7v5ecg"); // appendNodelist(path, NULL, common); +UNSUPPORTED("9ogv29igutj106iwd8snrg4gp"); // ((((cdata*)(ND_alg(common)))->flags) |= (1 << 4)); +UNSUPPORTED("5ai3t063tci7wwvpelyzozkpe"); // if ((((cdata*)(ND_alg(common)))->u.t.sdist)) { /* 2nd path might be empty */ +UNSUPPORTED("8gamehelsfvfqu8t3lhw7metk"); // endPath = mkNodelist(); +UNSUPPORTED("4ixka9e2f1yaiwrmd9b3ulkwu"); // for (n = (((cdata*)(ND_alg(common)))->u.t.second); n != common; n = (((cdata*)(ND_alg(n)))->u.t.tparent)) { +UNSUPPORTED("4l3pddu5c5tyn2hdllc5xc2b1"); // appendNodelist(endPath, NULL, n); +UNSUPPORTED("9ouwvpziziaylyfco5gvxgpe3"); // ((((cdata*)(ND_alg(n)))->flags) |= (1 << 4)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2zxzzdmj6wlilg54h807crbbi"); // reverseAppend(path, endPath); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1funi6zh0ilqaehngcqcvj4dv"); // return path; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7mnudtov3ojyhnxn1jmz3zhy7 +// static void dfs(Agraph_t * g, Agnode_t * n, Agraph_t * tree) +public static Object dfs(Object... arg) { +UNSUPPORTED("131fnq97ij23iofee00tmleze"); // static void dfs(Agraph_t * g, Agnode_t * n, Agraph_t * tree) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("aegubuefai4rt9vz61w182wop"); // Agnode_t *neighbor; +UNSUPPORTED("9t479vqa2ymwishrpzy1a1ro6"); // ((((cdata*)(ND_alg(n)))->flags) |= (1 << 0)); +UNSUPPORTED("dcuhjbsiioawp6zspvonwd4px"); // for (e = agfstedge(g, n); e; e = agnxtedge(g, e, n)) { +UNSUPPORTED("7ieiz3se1f6o9p9zcbu79zl12"); // neighbor = aghead(e); +UNSUPPORTED("10sn3zchzf9d7ht2lrm0m7huu"); // if (neighbor == n) +UNSUPPORTED("chnngfe1cxsk6niy46axanm5v"); // neighbor = agtail(e); +UNSUPPORTED("5hlnwdwlnvscyeo34qyip2v04"); // if (!((((cdata*)(ND_alg(neighbor)))->flags)&(1 << 0))) { +UNSUPPORTED("bs25m8xsm63lovekwfeuy1bq8"); // /* add the edge to the dfs tree */ +UNSUPPORTED("o3dylpltii5m67nljeyu79xm"); // agsubedge(tree,e,1); +UNSUPPORTED("6e7qpwatv0gehp3jq2n5jl0tn"); // (((cdata*)(ND_alg(neighbor)))->u.t.tparent) = n; +UNSUPPORTED("5hf02fnyz7e82bsdi008hkcs4"); // dfs(g, neighbor, tree); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8m28w7pi7rv4oxv0akl2s4az4 +// static Agraph_t *spanning_tree(Agraph_t * g) +public static Object spanning_tree(Object... arg) { +UNSUPPORTED("49a0lsjfstrgxkgmha9h4b27r"); // static Agraph_t *spanning_tree(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("459mwrl3t5jnf7fnwppgzog9d"); // Agraph_t *tree; +UNSUPPORTED("drj328bbj3dx7pr601ewryc7l"); // char gname[128]; +UNSUPPORTED("dprz24km2yzgmc5ejmr97z3t"); // static int id = 0; +UNSUPPORTED("60igk923ldbzwccf0dq02uvh2"); // sprintf(gname, "_span_%d", id++); +UNSUPPORTED("243c86rza8src132jwe71acdq"); // tree = agsubg(g, gname,1); +UNSUPPORTED("2140hiqxo5gioobsxbknkia87"); // agbindrec(tree, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); //node custom data +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("eo79kblqdj7n8c48gyaykzvaa"); // agsubnode(tree,n,1); +UNSUPPORTED("cbjv030bk1i7bitcc7c2hcuhb"); // (((cdata*)(ND_alg(n)))->u.t.fdist) = 0; +UNSUPPORTED("5xyp50h8arj9da80smy22ih62"); // (((cdata*)(ND_alg(n)))->u.t.sdist) = 0; +UNSUPPORTED("6ug5kj6ku8simq7gccmq34p9w"); // ((((cdata*)(ND_alg(n)))->flags) &= ~(1 << 0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("654jrg7u4lpnw39673anaxy05"); // if (!((((cdata*)(ND_alg(n)))->flags)&(1 << 0))) { +UNSUPPORTED("9ixtcl048f5htxwcmjhqj4xh8"); // (((cdata*)(ND_alg(n)))->u.t.tparent) = NULL; +UNSUPPORTED("ch25czkmw7witaw8m0zxu2v4o"); // dfs(g, n, tree); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("48tgunsw0gvmwerbb89baomqt"); // return tree; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c94mjtmn1vruvrupmwtvtj4j4 +// static void block_graph(Agraph_t * g, block_t * sn) +public static Object block_graph(Object... arg) { +UNSUPPORTED("2qk0mibp8cprk47gh0021zl53"); // static void block_graph(Agraph_t * g, block_t * sn) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("4ugp2tyzj8gbyoj1ntbji8gqt"); // Agraph_t *subg = sn->sub_graph; +UNSUPPORTED("6ewipai3bqonhmh4h826lvwyi"); // for (n = agfstnode(subg); n; n = agnxtnode(subg, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("485bmhmjlr2huu0f4p5z6v2bk"); // if ((((cdata*)(ND_alg(aghead(e))))->block) == sn) +UNSUPPORTED("22qf444fgbfmeou84fua1gs3l"); // agsubedge(subg,e,1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1e0vzs6lzgjx91tory442op41 +// static int count_all_crossings(nodelist_t * list, Agraph_t * subg) +public static Object count_all_crossings(Object... arg) { +UNSUPPORTED("airx5so2nky74856ss97mvrrt"); // static int count_all_crossings(nodelist_t * list, Agraph_t * subg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7rutwn578nyaydek3ukuywh1x"); // nodelistitem_t *item; +UNSUPPORTED("75tzt0fyavt0p83sz3v3pv7ed"); // edgelist *openEdgeList = init_edgelist(); +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("8tcbm5letf43s691urfrbn7w6"); // int crossings = 0; +UNSUPPORTED("18m42y34puuy1otsup09u8l8g"); // int order = 1; +UNSUPPORTED("6ewipai3bqonhmh4h826lvwyi"); // for (n = agfstnode(subg); n; n = agnxtnode(subg, n)) { +UNSUPPORTED("20f1gy1u7m87t833twh2u9vy3"); // for (e = agfstout(subg, n); e; e = agnxtout(subg, e)) { +UNSUPPORTED("6931gsvidrt039x6qh2vy768v"); // (((edata*)(ED_alg(e)))->order) = 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7z11gxrpvg2nqkuzrh0ss0vif"); // for (item = list->first; item; item = item->next) { +UNSUPPORTED("efcirwqi1qo67gxv4hcey7ume"); // n = item->curr; +UNSUPPORTED("8tiv7x7n2v8qov6f670pejv6m"); // for (e = agfstedge(subg, n); e; e = agnxtedge(subg, e, n)) { +UNSUPPORTED("5it9zyfqa6jar9yxfa7flt92h"); // if ((((edata*)(ED_alg(e)))->order) > 0) { +UNSUPPORTED("as78wt71mg4et2ds447kzrari"); // edgelistitem *eitem; +UNSUPPORTED("dcbcc8dw9uhlkriq96iod65ph"); // Agedge_t *ep; +UNSUPPORTED("dzgptt1cuu3tail6gke0ndad6"); // for (eitem = (edgelistitem *) (*(((Dt_t*)(openEdgeList))->searchf))((openEdgeList),(void*)(0),0000200); eitem; +UNSUPPORTED("98jfvxmfcjwgpd61jl7puqr2m"); // eitem = +UNSUPPORTED("79wv8os0486c6l3lc0j8lvezr"); // (edgelistitem *) (*(((Dt_t*)(openEdgeList))->searchf))((openEdgeList),(void*)(eitem),0000010)) { +UNSUPPORTED("5xrki1xzikku31wkllhqpaewd"); // ep = eitem->edge; +UNSUPPORTED("dw9gk92vuk9xc3r8steqe6zs"); // if ((((edata*)(ED_alg(ep)))->order) > (((edata*)(ED_alg(e)))->order)) { +UNSUPPORTED("1bphd7niyj38txw9c488jyjz2"); // if ((aghead(ep) != n) && (agtail(ep) != n)) +UNSUPPORTED("2di6ygf4a96q7nwxhskkgrw8o"); // crossings++; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("eaez2tc8zrg7hyuiqyz4f8m7o"); // remove_edge(openEdgeList, e); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8tiv7x7n2v8qov6f670pejv6m"); // for (e = agfstedge(subg, n); e; e = agnxtedge(subg, e, n)) { +UNSUPPORTED("91uh6sqsfh1qb0fg04rbrdaw9"); // if ((((edata*)(ED_alg(e)))->order) == 0) { +UNSUPPORTED("a6gzwtrnqvryer9ydo0merz8a"); // (((edata*)(ED_alg(e)))->order) = order; +UNSUPPORTED("ebh9kjfm4r3twmi100svfaoh8"); // add_edge(openEdgeList, e); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("eldw55y2gptsekyygj243zo2m"); // order++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3nvvwjw6i1covfxr77dz0lce2"); // free_edgelist(openEdgeList); +UNSUPPORTED("100wla4cww7zywuyk2fohr3xg"); // return crossings; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8czdf1x63rnqxr498fl5mu2ii +// static nodelist_t *reduce(nodelist_t * list, Agraph_t * subg, int *cnt) +public static Object reduce(Object... arg) { +UNSUPPORTED("cwpahrifd5wwpp1k3y6amf8q3"); // static nodelist_t *reduce(nodelist_t * list, Agraph_t * subg, int *cnt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6s78t7dpqpe72my2zxxdxlk1h"); // Agnode_t *curnode; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("aegubuefai4rt9vz61w182wop"); // Agnode_t *neighbor; +UNSUPPORTED("eedmn1ulafp58zfalsbio69js"); // nodelist_t *listCopy; +UNSUPPORTED("668vzrztg8r3431ajfmw3g02k"); // int crossings, j, newCrossings; +UNSUPPORTED("77tuxfetkuwk0qecejqda566j"); // crossings = *cnt; +UNSUPPORTED("7sled3cai213z4mjtz6ouzbab"); // for (curnode = agfstnode(subg); curnode; +UNSUPPORTED("d1i3acz6unvgbwiv7odkyn4wn"); // curnode = agnxtnode(subg, curnode)) { +UNSUPPORTED("2ynmbuh1d6pql6jrbzrrc4u9n"); // /* move curnode next to its neighbors */ +UNSUPPORTED("7clmrie9c4nqk5v2egaacn1q6"); // for (e = agfstedge(subg, curnode); e; +UNSUPPORTED("6nv3yyms6hkbtvpxr2osh2nll"); // e = agnxtedge(subg, e, curnode)) { +UNSUPPORTED("chnngfe1cxsk6niy46axanm5v"); // neighbor = agtail(e); +UNSUPPORTED("bu9rxi8b2cnjazzdzuotyfg4j"); // if (neighbor == curnode) +UNSUPPORTED("99x2l2tyimliely71mzavabu"); // neighbor = aghead(e); +UNSUPPORTED("ezup66bu66yfirmt20hqkgdxe"); // for (j = 0; j < 2; j++) { +UNSUPPORTED("a8tgrohpgihnjc2kpijobpjd1"); // listCopy = cloneNodelist(list); +UNSUPPORTED("1fxi4o6li1nl6wrgdan7ub49p"); // insertNodelist(list, curnode, neighbor, j); +UNSUPPORTED("ews1nvni0evsjd0c1j15xp9zw"); // newCrossings = count_all_crossings(list, subg); +UNSUPPORTED("329woztg53uqbx6ynh0vq40vs"); // if (newCrossings < crossings) { +UNSUPPORTED("87xah9ucvidkmqksxjgiqcm3q"); // crossings = newCrossings; +UNSUPPORTED("2axy8hr9pzd6olc68yx47v36"); // freeNodelist(listCopy); +UNSUPPORTED("4gw33f013xiqh23y4qxvn3d9h"); // if (crossings == 0) { +UNSUPPORTED("8pq2na3ntepyrxjom3nm4b3nz"); // *cnt = 0; +UNSUPPORTED("22k9gq4saeqd1dqkjlw3n81uk"); // return list; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("b7novmb8rx70k61bo5m0uyau9"); // freeNodelist(list); +UNSUPPORTED("1n0q6ik5o2dkkj2n6rt2faeot"); // list = listCopy; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c7m8r79si1ex35hc16xd82hd1"); // *cnt = crossings; +UNSUPPORTED("1a5vgaasp2bunvu19mvepzcny"); // return list; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9pjrmh6pnvpbc5tpxbuxkfy2r +// static nodelist_t *reduce_edge_crossings(nodelist_t * list, Agraph_t * subg) +public static Object reduce_edge_crossings(Object... arg) { +UNSUPPORTED("4eoehi8akkxbp2fncwis0hbk9"); // static nodelist_t *reduce_edge_crossings(nodelist_t * list, +UNSUPPORTED("a935m1m335lnnl5kbpomckdgf"); // Agraph_t * subg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4wtqpy4n4ubxgx32v15tr9cqw"); // int i, crossings, origCrossings; +UNSUPPORTED("dvodtoselzbs0hwbpat0xpnrd"); // crossings = count_all_crossings(list, subg); +UNSUPPORTED("94ljjdd4lnd7p8oredbxp5h5p"); // if (crossings == 0) +UNSUPPORTED("bq8fdnp0ptlj82raupu7egafd"); // return list; +UNSUPPORTED("b4ra1tmfi8msxf5pk7ni6rtaa"); // for (i = 0; i < 10; i++) { +UNSUPPORTED("7gnrez23ntedxdkmy4bq1nc6d"); // origCrossings = crossings; +UNSUPPORTED("6v1zixxec41vfsswu9of6ak6d"); // list = reduce(list, subg, &crossings); +UNSUPPORTED("6ver0nli3zk4pk2adhcaj69lt"); // /* return if no crossings or no improvement */ +UNSUPPORTED("6b6zmsryvxnodnsb1ara9ezv"); // if ((origCrossings == crossings) || (crossings == 0)) +UNSUPPORTED("85qxcaovlw0aattglmv16j1y7"); // return list; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1a5vgaasp2bunvu19mvepzcny"); // return list; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bq29c0uv67b29jesxdkwou7vq +// static double largest_nodesize(nodelist_t * list) +public static Object largest_nodesize(Object... arg) { +UNSUPPORTED("5nov6rgtb1xfsmsmb95ao36jk"); // static double largest_nodesize(nodelist_t * list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("7rutwn578nyaydek3ukuywh1x"); // nodelistitem_t *item; +UNSUPPORTED("ebs0cu7vx1ovmzfmeirn0fbhf"); // double size = 0; +UNSUPPORTED("7z11gxrpvg2nqkuzrh0ss0vif"); // for (item = list->first; item; item = item->next) { +UNSUPPORTED("8fe3jo12mqb510koyhz1o4n53"); // n = (((cdata*)(ND_alg(item->curr)))->orig.np); +UNSUPPORTED("e94z9yc4z98po6ttj9s4gwqz5"); // if (ND_width(n) > size) +UNSUPPORTED("96gl9rmd2kc102alxqwkzh8s0"); // size = ND_width(n); +UNSUPPORTED("1l6zldehr4bas1tjrpw0wcsmq"); // if (ND_height(n) > size) +UNSUPPORTED("7wntc07s618ezkj2tlys82dsa"); // size = ND_height(n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5fnyq1zql95vx5xiysa7fj12a"); // return size; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 atxva7f7s47kevximw8nohn83 +// static void place_node(Agraph_t * g, Agnode_t * n, nodelist_t * list) +public static Object place_node(Object... arg) { +UNSUPPORTED("dhsmb0fpwrhqfh202b2ya1gwh"); // static void place_node(Agraph_t * g, Agnode_t * n, nodelist_t * list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("3ti66vwo4a7z0ey7qyc17pwgo"); // int placed = 0; +UNSUPPORTED("1fhup2mc58329xom46x9ipqad"); // nodelist_t *neighbors = mkNodelist(); +UNSUPPORTED("6eda300y216s8bk6efunzvd7"); // nodelistitem_t *one, *two; +UNSUPPORTED("2661ch6g78x3kmtmtuvwn9iaz"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("ez1oh51m2jyugwrdxtszxncb4"); // appendNodelist(neighbors, NULL, aghead(e)); +UNSUPPORTED("7xblqjuc3wznadzt37mhdn0yb"); // ((((cdata*)(ND_alg(aghead(e))))->flags) |= (1 << 5)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2wj6c20getix97noebmsx1104"); // for (e = agfstin(g, n); e; e = agnxtin(g, e)) { +UNSUPPORTED("6e5d3quxydepzsdu1v6kcx2j9"); // appendNodelist(neighbors, NULL, agtail(e)); +UNSUPPORTED("cj2b2sk2xjph79ytokb0nz7d0"); // ((((cdata*)(ND_alg(agtail(e))))->flags) |= (1 << 5)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dws0zbnsy0q6wdujac277jx6h"); // /* Look for 2 neighbors consecutive on list */ +UNSUPPORTED("8c4xb1cup0eb4w7ugvbb9rsa2"); // if (sizeNodelist(neighbors) >= 2) { +UNSUPPORTED("2r6ksypefukzqje5z1h080n8b"); // for (one = list->first; one; one = one->next) { +UNSUPPORTED("4w6hanltkox8go11fcpkpd6d0"); // if (one == list->last) +UNSUPPORTED("7dt4hu5pt1so36wg9em25i168"); // two = list->first; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("5mucr596k75huswetgb21xfts"); // two = one->next; +UNSUPPORTED("5mrohdkphuegwpog81zep3bqj"); // if (((((cdata*)(ND_alg(one->curr)))->flags)&(1 << 5)) && ((((cdata*)(ND_alg(two->curr)))->flags)&(1 << 5))) { +UNSUPPORTED("86tczettzqkp9amjuq87cibsm"); // appendNodelist(list, one, n); +UNSUPPORTED("3dzlfoy5eqgugcdfbjv8zcby3"); // placed = 1; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("eolyswl0kan2g1oro7sf7dlkn"); // /* Find any neighbor on list */ +UNSUPPORTED("q5re8099dbf0x4lcbhbbu6ng"); // if (!placed && sizeNodelist(neighbors) > 0) { +UNSUPPORTED("2r6ksypefukzqje5z1h080n8b"); // for (one = list->first; one; one = one->next) { +UNSUPPORTED("5j3184idhwlfzuj756zdlclzz"); // if (((((cdata*)(ND_alg(one->curr)))->flags)&(1 << 5))) { +UNSUPPORTED("86tczettzqkp9amjuq87cibsm"); // appendNodelist(list, one, n); +UNSUPPORTED("3dzlfoy5eqgugcdfbjv8zcby3"); // placed = 1; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1h9104vucwa2i8aqw5aerzyow"); // if (!placed) +UNSUPPORTED("7qo2n4ze0g7p9t1ogpzc3ipn4"); // appendNodelist(list, NULL, n); +UNSUPPORTED("b1lpwkx7e649c7mmzzhfojcs"); // for (one = neighbors->first; one; one = one->next) +UNSUPPORTED("b93htz7wxsh0vfriyv1cwa1ki"); // ((((cdata*)(ND_alg(one->curr)))->flags) &= ~(1 << 5)); +UNSUPPORTED("1hifaw0fi3lsxfsxqus9q0vtu"); // freeNodelist(neighbors); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cawey01ormyor7v954u5hzfey +// static void place_residual_nodes(Agraph_t * g, nodelist_t * list) +public static Object place_residual_nodes(Object... arg) { +UNSUPPORTED("en0wlzq4qk95xb32n6ux616st"); // static void place_residual_nodes(Agraph_t * g, nodelist_t * list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("1cdeb2efvxae5126go3nmrsg7"); // if (!((((cdata*)(ND_alg(n)))->flags)&(1 << 4))) +UNSUPPORTED("3g36s5b3dv73yw7ewv2beed0p"); // place_node(g, n, list); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aaehk4efk1kdkult25czfr4ly +// nodelist_t *layout_block(Agraph_t * g, block_t * sn, double min_dist) +public static Object layout_block(Object... arg) { +UNSUPPORTED("96wogy71y5hq6ao91l2959nwg"); // nodelist_t *layout_block(Agraph_t * g, block_t * sn, double min_dist) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("1vbnjb5ennjmd3jgr0h5lxr78"); // Agraph_t *copyG, *tree, *subg; +UNSUPPORTED("d7uu3k4m5ty17ck42vok0b2qd"); // nodelist_t *longest_path; +UNSUPPORTED("7rutwn578nyaydek3ukuywh1x"); // nodelistitem_t *item; +UNSUPPORTED("9bb4tfjgt05vo41vrsxihxynh"); // int N, k; +UNSUPPORTED("1rtt9wypz4gfn7xr2fks2hthp"); // double theta, radius, largest_node; +UNSUPPORTED("6ie9wugmj8v1zqz6a4swgy8tn"); // largest_node = 0; +UNSUPPORTED("3upuwem5kn6f9b3audmgcehul"); // subg = sn->sub_graph; +UNSUPPORTED("bw1u4xso3sa81szwkx88hb6jg"); // block_graph(g, sn); /* add induced edges */ +UNSUPPORTED("7quou2xsgqtingzpaf869lf5f"); // copyG = remove_pair_edges(subg); +UNSUPPORTED("aiom675n9jcj1o0uvhoqgj5ad"); // tree = spanning_tree(copyG); +UNSUPPORTED("2ffqmdckwluvmr4fnf9g1p0a4"); // longest_path = find_longest_path(tree); +UNSUPPORTED("2kg4ot07s5c1lk6jzjrem2peu"); // place_residual_nodes(subg, longest_path); +UNSUPPORTED("eohec8mb17ceh55fu499v3hfa"); // /* at this point, longest_path is a list of all nodes in the block */ +UNSUPPORTED("59rqtug86xn3t38nbu2xx4qa2"); // /* apply crossing reduction algorithms here */ +UNSUPPORTED("cxqtiq1ujinlka2jg1ebmr139"); // longest_path = reduce_edge_crossings(longest_path, subg); +UNSUPPORTED("2j5mmz9425dcuw67yt2t8nne8"); // N = sizeNodelist(longest_path); +UNSUPPORTED("d93qp1f2d17eorifwlmvp90xx"); // largest_node = largest_nodesize(longest_path); +UNSUPPORTED("a1h2h6hb6wvbkjonsfvviiqzj"); // /* N*(min_dist+largest_node) is roughly circumference of required circle */ +UNSUPPORTED("9iy5h9dm1zsjym6pfl3ylkqgd"); // if (N == 1) +UNSUPPORTED("btfv6mxo9yikaacwq3g24z3cb"); // radius = 0; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("a4f2hf2gkxar44781l8iwiv3k"); // radius = (N * (min_dist + largest_node)) / (2 * M_PI); +UNSUPPORTED("4w3iss4zp4bwtbkgqj0wmdyhv"); // for (item = longest_path->first; item; item = item->next) { +UNSUPPORTED("efcirwqi1qo67gxv4hcey7ume"); // n = item->curr; +UNSUPPORTED("6zg1ud5tzcw5bdxchosqyeiqs"); // if (((((cdata*)(ND_alg(n)))->flags)&(1 << 3))) { +UNSUPPORTED("dg2tng58imdzt1293k60wzrvj"); // /* QUESTION: Why is only one parent realigned? */ +UNSUPPORTED("36jp3lyg0cx6apbu4x762ea9w"); // realignNodelist(longest_path, item); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("33k2b5luc10vdywklbylqhsd2"); // k = 0; +UNSUPPORTED("4w3iss4zp4bwtbkgqj0wmdyhv"); // for (item = longest_path->first; item; item = item->next) { +UNSUPPORTED("efcirwqi1qo67gxv4hcey7ume"); // n = item->curr; +UNSUPPORTED("81lsao9ntz07i5qaabbrxid0z"); // (((cdata*)(ND_alg(n)))->u.f.pos) = k; +UNSUPPORTED("6fh5b7a1jd505ta311zo8ujvb"); // (((cdata*)(ND_alg(n)))->u.f.psi) = 0.0; +UNSUPPORTED("5f6s0v8wt6wm6q2v5hc7c4r0t"); // theta = k * ((2.0 * M_PI) / N); +UNSUPPORTED("sfsmtqrcc76jfzjcnubbxneg"); // ND_pos(n)[0] = radius * cos(theta); +UNSUPPORTED("5f4xmzw5upv6bc05yh7gvu438"); // ND_pos(n)[1] = radius * sin(theta); +UNSUPPORTED("9zq7xtwq5cysffia17vtbbt9u"); // k++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9iy5h9dm1zsjym6pfl3ylkqgd"); // if (N == 1) +UNSUPPORTED("6htkya60ij0v64lsrq2wfi94n"); // sn->radius = largest_node / 2; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("2r0eguj5fxa438xij0sf1innn"); // sn->radius = radius; +UNSUPPORTED("a4yy4msg8gf1nhbmov5b7lv9w"); // sn->rad0 = sn->radius; +UNSUPPORTED("4kh2nel2kgvoqc4k1f7loko7a"); // /* initialize parent pos */ +UNSUPPORTED("9a2zxkibosjbtbvdsel5mg35z"); // sn->parent_pos = -1; +UNSUPPORTED("d5071btcahcfirgj180l4iemf"); // agclose(copyG); +UNSUPPORTED("c190sceo0yb33l7x7924nrxqf"); // return longest_path; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/circogen/blocktree__c.java plantuml-8039/src/gen/lib/circogen/blocktree__c.java --- plantuml-8024/src/gen/lib/circogen/blocktree__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/circogen/blocktree__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,944 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.circogen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class blocktree__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6ne46ggmvh7e9kgb4qr6mgghz +// static void addNode(block_t * bp, Agnode_t * n) +public static Object addNode(Object... arg) { +UNSUPPORTED("5fdextpuo92ltskzutccn1w3c"); // static void addNode(block_t * bp, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("608kwe7sw71zktjgckbl7m132"); // agsubnode(bp->sub_graph, n,1); +UNSUPPORTED("dffy2ydqahbtvoy8dze2i5dlh"); // (((cdata*)(ND_alg(n)))->block) = bp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9nkxqs5j4cz6n4smpxnzf7of3 +// static Agraph_t *makeBlockGraph(Agraph_t * g, circ_state * state) +public static Object makeBlockGraph(Object... arg) { +UNSUPPORTED("8ogugxg0mlrykven1dyll85id"); // static Agraph_t *makeBlockGraph(Agraph_t * g, circ_state * state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("78gq1jdufena2r9rigvse5178"); // char name[128]; +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("ep00xn89fpirmsx2551j54utc"); // sprintf(name, "_block_%d", state->blockCount++); +UNSUPPORTED("6kliff60l8s46s6kyw9368wgr"); // subg = agsubg(g, name,1); +UNSUPPORTED("8zyh2vdcxj8wuinpcbzo3huem"); // agbindrec(subg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); //node custom data +UNSUPPORTED("17jmp11l2jzc1v9qpaqkzkauj"); // return subg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1u9vc7us642ioh6z6mmvho9g1 +// static block_t *makeBlock(Agraph_t * g, circ_state * state) +public static Object makeBlock(Object... arg) { +UNSUPPORTED("b3jgqti5i1lplht0jdz9jh7lw"); // static block_t *makeBlock(Agraph_t * g, circ_state * state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("22k5mxqow9wcl5tj1dd6fzevq"); // Agraph_t *subg = makeBlockGraph(g, state); +UNSUPPORTED("1tq2co4mjsd8njnuq9fdtfklv"); // block_t *bp = mkBlock(subg); +UNSUPPORTED("bgo7070e5cs998w6zp1ma85ad"); // return bp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1go7wdt4hei24xynw7ja3qypq +// static void push (estack* s, Agedge_t* e) +public static Object push(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("vn3gavzznx35o0dk5unn8jy"); // push (estack* s, Agedge_t* e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("uik83qgtmxor295psahfjlp3"); // (((edata*)(ED_alg(e)))->next) = s->top; +UNSUPPORTED("pehl52zn5cecaq6tcryq0x2q"); // s->top = e; +UNSUPPORTED("2c0ljksb11ygrfdzsey9kinf0"); // s->sz += 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 an818082xt6tg4sjkaragfihw +// static Agedge_t* pop (estack* s) +public static Object pop(Object... arg) { +UNSUPPORTED("6brdr8wx9pidlrz4g71hamlqp"); // static Agedge_t* +UNSUPPORTED("dxpg1bn6k36l5op477n9l4hbd"); // pop (estack* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dbyzosemqb0ppxbcjl1jjf1qh"); // Agedge_t *top = s->top; +UNSUPPORTED("7vzatp8nd0zuhbh0cegy6voub"); // if (top) { +UNSUPPORTED("cwpy7cbgmqoffiq6cukx7c31w"); // assert(s->sz > 0); +UNSUPPORTED("83l03yivh32p027nc80nu1btm"); // s->top = (((edata*)(ED_alg(top)))->next); +UNSUPPORTED("6p5s6spq9gzbxvr8bqua8bv0t"); // s->sz -= 1; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("2g1czwq8qs1hp7515i11qbn75"); // assert(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3bqe70q9zr1iec0o5964x3po6"); // return top; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2me26r3sdk182f52iux8yh3l7 +// static void dfs(Agraph_t * g, Agnode_t * u, circ_state * state, int isRoot, estack* stk) +public static Object dfs(Object... arg) { +UNSUPPORTED("c369mcpdwbw752z2jekex2hf7"); // static void dfs(Agraph_t * g, Agnode_t * u, circ_state * state, int isRoot, estack* stk) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("c21enf3w0nz9vfmu0omf2pasm"); // Agnode_t *v; +UNSUPPORTED("5wnipxqjqmsnr2uwvqwr2cu0"); // (((cdata*)(ND_alg(u)))->u.bc.low_val) = (((cdata*)(ND_alg(u)))->u.bc.val) = state->orderCount++; +UNSUPPORTED("9s7k6ldzdus38t62lpr55000"); // for (e = agfstedge(g, u); e; e = agnxtedge(g, e, u)) { +UNSUPPORTED("9cgusihkv0qycon7x1n4kz95b"); // v = aghead (e); +UNSUPPORTED("drfwkbbxrkoogg8hhauehkh6"); // if (v == u) { +UNSUPPORTED("2mnwbfqb7ood0nr3wms28k5id"); // v = agtail(e); +UNSUPPORTED("cm1em5jid5u0xgj8alt9a9m1q"); // if (!(((edata*)(ED_alg(e)))->order)) (((edata*)(ED_alg(e)))->order) = -1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("9yyjp4p6zziu01suj7lssvi4k"); // if (!(((edata*)(ED_alg(e)))->order)) (((edata*)(ED_alg(e)))->order) = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1r6lgg40sanlh8qfeyzt2sz1b"); // if ((((cdata*)(ND_alg(v)))->u.bc.val) == 0) { /* Since VAL(root) == 0, it gets treated as artificial cut point */ +UNSUPPORTED("4ku4mtdtf8eu7dsik5e9l8w3f"); // (((cdata*)(ND_alg(v)))->parent) = u; +UNSUPPORTED("40l3w6fxdqk7jcoe1f20py27u"); // push(stk, e); +UNSUPPORTED("3q2wnl77y6o7s10ol3v0f2ee5"); // dfs(g, v, state, 0, stk); +UNSUPPORTED("2s7ggn90po89x6892u3aw0d4c"); // (((cdata*)(ND_alg(u)))->u.bc.low_val) = MIN((((cdata*)(ND_alg(u)))->u.bc.low_val), (((cdata*)(ND_alg(v)))->u.bc.low_val)); +UNSUPPORTED("dx8clvdw9l98h159fafict51k"); // if ((((cdata*)(ND_alg(v)))->u.bc.low_val) >= (((cdata*)(ND_alg(u)))->u.bc.val)) { /* u is an articulation point */ +UNSUPPORTED("5fzvk8a3ck85ucnadckwql1vs"); // block_t *block = NULL; +UNSUPPORTED("5oeglenbq34ox5mkdigd64g9z"); // Agnode_t *np; +UNSUPPORTED("dcbcc8dw9uhlkriq96iod65ph"); // Agedge_t *ep; +UNSUPPORTED("88rfsizqhsisyh0d9rb1bv3bt"); // do { +UNSUPPORTED("392s3l6pl2ed4023q8op6jta4"); // ep = pop(stk); +UNSUPPORTED("dflbezxz2r72pws6xe7vvbbbh"); // if ((((edata*)(ED_alg(ep)))->order) == 1) +UNSUPPORTED("pl5n2urlg4z2upqje2ljhk2w"); // np = aghead (ep); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("72io0nz3p9udd43iejoiyedth"); // np = agtail (ep); +UNSUPPORTED("c6rvwexx0of5c130rdze64xbc"); // if (!(((cdata*)(ND_alg(np)))->block)) { +UNSUPPORTED("a0zitz4spvxd1oupdy1s7hd5l"); // if (!block) +UNSUPPORTED("8lv6xtno3xs8wl26y200ykmex"); // block = makeBlock(g, state); +UNSUPPORTED("602huydeg5ve96m3x0h98lh4a"); // addNode(block, np); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("dzj2mkoa2s6esucxuunkyzcrz"); // } while (ep != e); +UNSUPPORTED("106jvi4gem7gfnn40a3g1xo1y"); // if (block) { /* If block != NULL, it's not empty */ +UNSUPPORTED("aqtlj8skhmf9wz5f0n1nccj58"); // if (!(((cdata*)(ND_alg(u)))->block) && blockSize (block) > 1) +UNSUPPORTED("8e36nltg9tsh13ysaeu9b3xwu"); // addNode(block, u); +UNSUPPORTED("ajhtu8lfrochg83cml0idqsn4"); // if (isRoot && ((((cdata*)(ND_alg(u)))->block) == block)) +UNSUPPORTED("a9m6isxgegq9aeczp21cyz0qr"); // insertBlock(&state->bl, block); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("erqsgjie1p79zl2lhqatnh57p"); // appendBlock(&state->bl, block); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("5xrstrqht5cg3izffsi86009l"); // } else if ((((cdata*)(ND_alg(u)))->parent) != v) { +UNSUPPORTED("c5ymhzniwwix5kjf5r9mi1udq"); // (((cdata*)(ND_alg(u)))->u.bc.low_val) = MIN((((cdata*)(ND_alg(u)))->u.bc.low_val), (((cdata*)(ND_alg(v)))->u.bc.val)); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bl92cdt5jy9ajznr76qvu5u3z"); // if (isRoot && !(((cdata*)(ND_alg(u)))->block)) { +UNSUPPORTED("9wut2nvkbil7m9gdvk263xzdx"); // block_t *block = makeBlock(g, state); +UNSUPPORTED("8btookv5587dfffitdmx3k35k"); // addNode(block, u); +UNSUPPORTED("896yvdgaq76sb5yqbe0x4l9tl"); // insertBlock(&state->bl, block); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c7mojhpcwyo755u6jowwxzwdn +// static void find_blocks(Agraph_t * g, circ_state * state) +public static Object find_blocks(Object... arg) { +UNSUPPORTED("ylya6ldy3006k2mvsc0kjr3i"); // static void find_blocks(Agraph_t * g, circ_state * state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("9ogt1rgyy3nv83to4x8129yq0"); // Agnode_t *root = NULL; +UNSUPPORTED("apccihmjvnjfb2gngozexu0pv"); // estack stk; +UNSUPPORTED("5c5jw8s53v4xxzd0hjnb1c0xf"); // /* check to see if there is a node which is set to be the root +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("73e7ycmqgzyurfw36etvb6lok"); // if (state->rootname) { +UNSUPPORTED("50guz4u3cqnirdo6vskc81u0h"); // root = (agnode(g,state->rootname,0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2yfzfscmhgfvx7xei8m2i134n"); // if (!root && state->N_root) { +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("boqoqrnqkywxjnumpgm25jeol"); // if (late_bool((((cdata*)(ND_alg(n)))->orig.np), state->N_root, 0)) { +UNSUPPORTED("e5p9z4gtbl2rf8vks9hna8fj7"); // root = n; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("anefy71k1qdwcre9fss1qww47"); // if (!root) +UNSUPPORTED("8wx5h49bfrzew5ioem57hqaku"); // root = agfstnode(g); +UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose) +UNSUPPORTED("6ld2y2hao9s1lkkrmddsf5i8i"); // fprintf (stderr, "root = %s\n", agnameof(root)); +UNSUPPORTED("7qjtonl2321drh5v9ho2mcs9h"); // stk.sz = 0; +UNSUPPORTED("bh76cnkyano23y7meefmksn9m"); // stk.top = NULL; +UNSUPPORTED("5yfanzsqlioq7gn97vklmkamp"); // dfs(g, root, state, 1, &stk); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cjsr6alm5iy3bs8riqc06wcks +// block_t *createBlocktree(Agraph_t * g, circ_state * state) +public static Object createBlocktree(Object... arg) { +UNSUPPORTED("e06kufbnk6wkhrm3pt4te6xnt"); // block_t *createBlocktree(Agraph_t * g, circ_state * state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c1e61umpnq91loowv2uiik4ij"); // block_t *bp; +UNSUPPORTED("cl9j9gn2okzgv6lp648zd7gjg"); // block_t *next; +UNSUPPORTED("7u378ih9lwpzdxqjnl915ozy"); // block_t *root; +UNSUPPORTED("985nf8jew0zg19ydmlmarwyl1"); // int min; +UNSUPPORTED("zsxs5umsbj18bnqc6lktrohg"); // /* int ordercnt; */ +UNSUPPORTED("998lr64x35apz58m02j3ku5n1"); // find_blocks(g, state); +UNSUPPORTED("byp6901xynik3rsv9cr4fhhsv"); // bp = state->bl.first; /* if root chosen, will be first */ +UNSUPPORTED("af5dizr8shg0fwpm9h3uph2pq"); // /* Otherwise, just pick first as root */ +UNSUPPORTED("e5u2k2ay64u871sbka0jicz44"); // root = bp; +UNSUPPORTED("1p9o9fak3l29yccpv66xc6yiw"); // /* Find node with minimum VAL value to find parent block */ +UNSUPPORTED("52d43l3k0o0pazixrgafonsg"); // /* FIX: Should be some way to avoid search below. */ +UNSUPPORTED("be7cej3k68m2hyi0ovumc1afl"); // /* ordercnt = state->orderCount; */ +UNSUPPORTED("7k318sxybq0zhrputecbfg773"); // for (bp = bp->next; bp; bp = next) { +UNSUPPORTED("360sjyc5tpijfr34t8o87o2p5"); // Agnode_t *n; +UNSUPPORTED("cqe5tbsvdcln5fenokkx487qu"); // Agnode_t *parent; +UNSUPPORTED("d6lk7cmcvuqr4qs5dfwu706sb"); // Agnode_t *child; +UNSUPPORTED("7lymfnepa38jojaj5zjskbznj"); // Agraph_t *subg = bp->sub_graph; +UNSUPPORTED("a2kougw7r3jfbz7ze8s6kazbe"); // child = n = agfstnode(subg); +UNSUPPORTED("cmhxq8ncnq4anh500ypets4ue"); // min = (((cdata*)(ND_alg(n)))->u.bc.val); +UNSUPPORTED("c6tks2zg6v1n8ax6rce1jpvg"); // parent = (((cdata*)(ND_alg(n)))->parent); +UNSUPPORTED("oxkynlrnba518ft6x49g0nhx"); // for (n = agnxtnode(subg, n); n; n = agnxtnode(subg, n)) { +UNSUPPORTED("dn9g5gc8h36vuedkojddpsk1l"); // if ((((cdata*)(ND_alg(n)))->u.bc.val) < min) { +UNSUPPORTED("4jiqex4vrb3h22p1a535twbv4"); // child = n; +UNSUPPORTED("6swxk3a2yzffi6kodqi79dmf0"); // min = (((cdata*)(ND_alg(n)))->u.bc.val); +UNSUPPORTED("b5q946bvy2ot5dgds0b9jm3xn"); // parent = (((cdata*)(ND_alg(n)))->parent); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("armnjsiv39eeb8c1hmgwdskyi"); // ((((cdata*)(ND_alg(parent)))->flags) |= (1 << 3)); +UNSUPPORTED("4mqskxttlknlm6gm81bf3wrj8"); // ((bp)->child) = child; +UNSUPPORTED("c6ysaq17vofi62cdypownjyzj"); // next = bp->next; /* save next since list insertion destroys it */ +UNSUPPORTED("5k4ysbm441casqb6cw2ew8119"); // appendBlock(&((((cdata*)(ND_alg(parent)))->block)->children), bp); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("58xx7i0kix9651uhj6fri63gs"); // initBlocklist(&state->bl); /* zero out list */ +UNSUPPORTED("4hzlvk8t0qcn15wg6988vwra9"); // return root; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bq25y50izaq05n3onmen588ni +// void freeBlocktree(block_t * bp) +public static Object freeBlocktree(Object... arg) { +UNSUPPORTED("1bc9hggj8zqlk9aydw3i3xvy4"); // void freeBlocktree(block_t * bp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dnimuukbrqydy7hshg1fgcjip"); // block_t *child; +UNSUPPORTED("cl9j9gn2okzgv6lp648zd7gjg"); // block_t *next; +UNSUPPORTED("7r4rd1zknlb7o2vbqkbejbkrc"); // for (child = bp->children.first; child; child = next) { +UNSUPPORTED("4vzo0f6h7upy5ozou8hnsqvsl"); // next = child->next; +UNSUPPORTED("aumnv9uavdnj9vgt5yjii95y0"); // freeBlocktree(child); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("16olnzzj2c8vf954tvar2hnen"); // freeBlock(bp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/circogen/circpos__c.java plantuml-8039/src/gen/lib/circogen/circpos__c.java --- plantuml-8024/src/gen/lib/circogen/circpos__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/circogen/circpos__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1070 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.circogen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class circpos__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cmpzgqstlf9awa8ui3b11frt +// static double getRotation(block_t * sn, Agraph_t * g, double x, double y, double theta) +public static Object getRotation(Object... arg) { +UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("ehfx7xgiq9xn598nzs9ob1vqi"); // getRotation(block_t * sn, Agraph_t * g, double x, double y, double theta) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8ut1w6qb3edbl3hod5x18e2np"); // double mindist2; +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("egtkt6veeq1obtp8hbipv6zon"); // /* Agedge_t* e; */ +UNSUPPORTED("7rg8w1sc9llk8kb9rh887zduv"); // Agnode_t *n, *closest_node, *neighbor; +UNSUPPORTED("e1slwj7xzo1j4uaft8p1ctzy9"); // nodelist_t *list; +UNSUPPORTED("q9993yde5bqm2h0x8p5xgb2i"); // double len2, newX, newY; +UNSUPPORTED("e64oflkl2z9gx00h2zb17dt3r"); // int count; +UNSUPPORTED("3upuwem5kn6f9b3audmgcehul"); // subg = sn->sub_graph; +UNSUPPORTED("ek0r6cxzyv5ro7byggfuuddz7"); // list = sn->circle_list; +UNSUPPORTED("ep1jr1n7qskeuwa1gkr496u3n"); // if (sn->parent_pos >= 0) { +UNSUPPORTED("3mx4t7u3i2vxwqc19wkhvtmwb"); // theta += M_PI - sn->parent_pos; +UNSUPPORTED("1jbpmsvfitefuxb4jyp6k1vgb"); // if (theta < 0) +UNSUPPORTED("bhxmsrgs0qu2rni1bt9331brp"); // theta += 2 * M_PI; +UNSUPPORTED("d3ynhdpzzr674aqqwfmf0asp"); // return theta; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("addsn42febvq5fyfi20wz7f9m"); // count = sizeNodelist(list); +UNSUPPORTED("6bjurf9k81q5hn7xavxrgthoi"); // if (count == 2) { +UNSUPPORTED("4u3h25c7y4bqrl34zj8c2s19i"); // return (theta - M_PI / 2.0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ds5icqf0zn1hzeo64qpp89ni7"); // /* Find node in block connected to block's parent */ +UNSUPPORTED("4p0l2zbyxkjyv4vnyoc1lj8sc"); // neighbor = ((sn)->child); +UNSUPPORTED("d1891z4wlxsylmbz0r6ruevst"); // newX = ND_pos(neighbor)[0] + x; +UNSUPPORTED("bck3af1j77nrs3hvtwhi6mlkv"); // newY = ND_pos(neighbor)[1] + y; +UNSUPPORTED("ebh5hoiqk7yz0ztscg8hnxbo7"); // mindist2 = LEN2(newX, newY); /* save sqrts by using sqr of dist to find min */ +UNSUPPORTED("2qjkfcus0tlgqcapg2tkwnpng"); // closest_node = neighbor; +UNSUPPORTED("6ewipai3bqonhmh4h826lvwyi"); // for (n = agfstnode(subg); n; n = agnxtnode(subg, n)) { +UNSUPPORTED("71ky04w3ye5z6znqu7n71vl0v"); // if (n == neighbor) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("1mwv5wk5wak4p4jrtylf6pca4"); // newX = ND_pos(n)[0] + x; +UNSUPPORTED("1456cp7oqq1bug1q4fhzsqhgg"); // newY = ND_pos(n)[1] + y; +UNSUPPORTED("apnl2pxadxv9i0xc2ykubdrho"); // len2 = LEN2(newX, newY); +UNSUPPORTED("9ycebbjahmt9g4g87v7409dcv"); // if (len2 < mindist2) { +UNSUPPORTED("4ep8vufoq8au3w7qibolk95mn"); // mindist2 = len2; +UNSUPPORTED("4tzwzg7wxbgffsxb7lnrbfxrg"); // closest_node = n; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e6cndx8m1cxstvpu8i8lsq64m"); // /* if((neighbor != closest_node) && !ISPARENT(neighbor)) { */ +UNSUPPORTED("4ce2cpltl3g9gelwnak2hybsb"); // if (neighbor != closest_node) { +UNSUPPORTED("bjieu83v9ahhyxd1buoprxtcz"); // double rho = sn->rad0; +UNSUPPORTED("79u7d4lrnqw8upa324kmc6ebc"); // double r = sn->radius - rho; +UNSUPPORTED("1t2r0x7jllycm17vx91vz9f6p"); // double n_x = ND_pos(neighbor)[0]; +UNSUPPORTED("d5b57fo06ypzhhu6h5pf3a4s7"); // if ((((sn)->flags)&(1 << 0)) && (-r < n_x)) { +UNSUPPORTED("29wv3jfqbk7lqmos79ml5hcww"); // double R = LEN(x, y); +UNSUPPORTED("7qr92iktscz1c93a1hh5ifx50"); // double n_y = ND_pos(neighbor)[1]; +UNSUPPORTED("d9r83dnsjcdjmrc1aozjg691m"); // double phi = atan2(n_y, n_x + r); +UNSUPPORTED("3to3yvt3nms5fsewdv9vyivmp"); // double l = r - rho / (cos(phi)); +UNSUPPORTED("6pe515ww8zls6t9zcvlh6ipjf"); // theta += M_PI / 2.0 - phi - asin((l / R) * (cos(phi))); +UNSUPPORTED("9elbnqbhc8v2ox6bzgxk1gxfp"); // } else { /* Origin still at center of this block */ +UNSUPPORTED("78w1zetbzjtive7xf4lki9jq1"); // double phi = atan2(ND_pos(neighbor)[1], ND_pos(neighbor)[0]); +UNSUPPORTED("609cgj27e69s8dmo8glg3ajzs"); // theta += M_PI - phi - (((cdata*)(ND_alg(neighbor)))->u.f.psi); +UNSUPPORTED("9q8038i79c1g9pk2o23hl7nqi"); // if (theta > 2 * M_PI) +UNSUPPORTED("59nb5ql4n0d2osxi8brq9b9dj"); // theta -= 2 * M_PI; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("7b399a6b9nnep504azdykuqob"); // theta = 0; +UNSUPPORTED("3t6rhlr39eef1gr8tqabhir2d"); // return theta; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 gs9ma7p0wh81t6pgpfsi1mu6 +// static void applyDelta(block_t * sn, double x, double y, double rotate) +public static Object applyDelta(Object... arg) { +UNSUPPORTED("4gp3cxkdringd7h6oo0dg4g4v"); // static void applyDelta(block_t * sn, double x, double y, double rotate) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dnimuukbrqydy7hshg1fgcjip"); // block_t *child; +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("3upuwem5kn6f9b3audmgcehul"); // subg = sn->sub_graph; +UNSUPPORTED("6ewipai3bqonhmh4h826lvwyi"); // for (n = agfstnode(subg); n; n = agnxtnode(subg, n)) { +UNSUPPORTED("c7nledx3js6xh39qgrc3j4j18"); // double X, Y; +UNSUPPORTED("2m9mua77b7vokkrlp2age37c1"); // if (rotate != 0) { +UNSUPPORTED("dnhg8ifhp8l8ttdzgvfjethmc"); // double tmpX, tmpY; +UNSUPPORTED("1li4s29cv6mlwnsy1hfdo298h"); // double cosR, sinR; +UNSUPPORTED("2hxaiccs9coowwxkb6lhhn4kb"); // tmpX = ND_pos(n)[0]; +UNSUPPORTED("5sbylnb9ov5k0hsv902247jj4"); // tmpY = ND_pos(n)[1]; +UNSUPPORTED("bbflbxuecw2twvqqkmo71b4oo"); // cosR = cos(rotate); +UNSUPPORTED("9p9h1xtk984siasj5wglqc78w"); // sinR = sin(rotate); +UNSUPPORTED("1j77mc8cp1tw63rxfp8wi7yfa"); // X = tmpX * cosR - tmpY * sinR; +UNSUPPORTED("eo679za5hyr3fod5d1tyrmktf"); // Y = tmpX * sinR + tmpY * cosR; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("5rgfb3sb3s9da7ukh7w8460yu"); // X = ND_pos(n)[0]; +UNSUPPORTED("7hhsgdhs0xss97a35uycoc77h"); // Y = ND_pos(n)[1]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2ibts74izihvl7plps72sd77z"); // /* translate */ +UNSUPPORTED("7ufxtczkukt6jq6dwezehykdu"); // ND_pos(n)[0] = X + x; +UNSUPPORTED("5j8ptjhth0fmqnlfgcp07j0kp"); // ND_pos(n)[1] = Y + y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5q8iyg8qadpdv4xsyt8pbaafd"); // for (child = sn->children.first; child; child = child->next) +UNSUPPORTED("6tfiliuoxmw3nwxjmqspkhrmw"); // applyDelta(child, x, y, rotate); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dkl7hvx97dgz0mz1n3waj9wxy +// static double getInfo (posinfo_t* pi, posstate * stp, double min_dist) +public static Object getInfo(Object... arg) { +UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("840ltlj3x7buqo1tz0ufzb0q1"); // getInfo (posinfo_t* pi, posstate * stp, double min_dist) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dnimuukbrqydy7hshg1fgcjip"); // block_t *child; +UNSUPPORTED("5vgu39qaeyddsky8nzh69a1cs"); // double maxRadius = 0; /* Max. radius of children */ +UNSUPPORTED("a8pqaixk20tomle987jcvpjgr"); // double diameter = 0; /* sum of child diameters */ +UNSUPPORTED("a4pd76gzm03ukmko7rpk50rxz"); // int childCount = 0; +UNSUPPORTED("5jz1jehvl3s4wz5ghc6zrake1"); // for (child = stp->cp; child; child = child->next) { +UNSUPPORTED("61fqoj6svhfxxjz8q16q08wol"); // if ((((child)->child)? (((cdata*)(ND_alg(((child)->child))))->parent) : 0) == pi->n) { +UNSUPPORTED("17lb6oohjc36ieu38qsv0lska"); // childCount++; +UNSUPPORTED("1j7z4ghl8sdcb5gj02suro8ru"); // if (maxRadius < child->radius) { +UNSUPPORTED("dcj0ypnuwkf4wldd9j0wzynze"); // maxRadius = child->radius; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5cb305yot8ml7rimh6zfg9fe2"); // diameter += 2 * child->radius + min_dist; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("76l6vcvzq0ezifuroltqyaajc"); // pi->diameter = diameter; +UNSUPPORTED("8ln0onaw2pyj3ubj0v4dn5bks"); // pi->childCount = childCount; +UNSUPPORTED("66i09znv8qgbsd8lktrlnhlht"); // pi->minRadius = stp->radius + min_dist + maxRadius; +UNSUPPORTED("b30825a9409z4f6wp159mgquy"); // pi->maxRadius = maxRadius; +UNSUPPORTED("aruhcgr64df62b73mgxm10bjv"); // return maxRadius; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1n9ypbho9o6l5h94s3xw065pc +// static void setInfo (posinfo_t* p0, posinfo_t* p1, double delta) +public static Object setInfo(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("5pammq1crwk6lp3uxho5gb8wo"); // setInfo (posinfo_t* p0, posinfo_t* p1, double delta) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("73hafrp1gwi626l02wei36tg2"); // double t = (p0->diameter*p1->minRadius) + (p1->diameter*p0->minRadius); +UNSUPPORTED("4kmowfkoj6kbw5buu9vl93z4j"); // t /= 2*delta*p0->minRadius*p1->minRadius; +UNSUPPORTED("l8bh6n5jn0o9gdujjrj6uv4d"); // if (t < 1) +UNSUPPORTED("2t7ets0lvfbfx07z5w658psx6"); // t = 1; +UNSUPPORTED("2uk6hulg3s481xzedfv74gvjv"); // if (t > p0->scale) +UNSUPPORTED("5xsoxjokv9bzcry8ueg81tgfi"); // p0->scale = t; +UNSUPPORTED("aasj9alkqxjb213qiijqolzdi"); // if (t > p1->scale) +UNSUPPORTED("2dnhdfxe24p2769g5nzx8e114"); // p1->scale = t; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3hwx5f8xljw9aw6ahmlxzwd5 +// static void positionChildren (Agraph_t* g, posinfo_t* pi, posstate * stp, int length, double min_dist) +public static Object positionChildren(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("1i00gkii027wmdfk5vmixheyv"); // positionChildren (Agraph_t* g, posinfo_t* pi, posstate * stp, int length, double min_dist) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dnimuukbrqydy7hshg1fgcjip"); // block_t *child; +UNSUPPORTED("2h28ngm52bopvhkktsqrsjuft"); // double childAngle, childRadius, incidentAngle; +UNSUPPORTED("6vkkhyp5yqx03cxcvjgzreyvg"); // double mindistAngle, rotateAngle, midAngle; +UNSUPPORTED("czazrrlmm4rvdzz6txkva79cj"); // int midChild, cnt = 0; +UNSUPPORTED("4rvlw7dclng4zb33jxph77mm3"); // double snRadius = stp->subtreeR; /* max subtree radius */ +UNSUPPORTED("9zpk9ku3vjqfnb0uc5io2w4d0"); // double firstAngle = stp->firstAngle; +UNSUPPORTED("9ckqittdyp855n6lrgajg89lo"); // double lastAngle = stp->lastAngle; +UNSUPPORTED("5fhwtiypa1ch4e6i1bqst7bnk"); // double d, deltaX, deltaY; +UNSUPPORTED("17ihywepb60o3clfx7kh1juae"); // childRadius = pi->scale * pi->minRadius; +UNSUPPORTED("3bgnzdbzgpt26xgjqlxo3zrw4"); // if (length == 1) { +UNSUPPORTED("1bmsz9xxns8k870t2xt3pk3lv"); // childAngle = 0; +UNSUPPORTED("bcdjefa6xvlkdm5fwvxpwfq74"); // d = pi->diameter/(2*M_PI); +UNSUPPORTED("4s560bphn0f8s4ap4kdv75sf7"); // childRadius = MAX(childRadius, d); +UNSUPPORTED("7cz14k84zv34v3u19m7zbd07n"); // d = 2*M_PI*childRadius - pi->diameter; +UNSUPPORTED("cts1w4s3ihwu230dhm01amlgz"); // if (d > 0) +UNSUPPORTED("6pty4l2yj4aihv0e7tio7zm8z"); // min_dist += d/pi->childCount; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("47pymrkdiujlqzk1n6kf5cqqi"); // childAngle = pi->theta - pi->diameter/(2 * childRadius); +UNSUPPORTED("5jb40zn7lo9j5bftqp4efb4xe"); // if ((childRadius + pi->maxRadius) > snRadius) +UNSUPPORTED("4o3mkhn9l2d1zweohu5gak0lq"); // snRadius = childRadius + pi->maxRadius; +UNSUPPORTED("albxxl7eiza84jfbelnz7np50"); // mindistAngle = min_dist / childRadius; +UNSUPPORTED("l5aya5nm5hnerh8jjksx3lqz"); // midChild = (pi->childCount + 1) / 2; +UNSUPPORTED("5jz1jehvl3s4wz5ghc6zrake1"); // for (child = stp->cp; child; child = child->next) { +UNSUPPORTED("5y748gqz7osqt1a345ioimm0e"); // if ((((child)->child)? (((cdata*)(ND_alg(((child)->child))))->parent) : 0) != pi->n) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("77uduyi6k655bzus5bii32rj"); // if (sizeNodelist(child->circle_list) <= 0) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("9npzenhjwahb1tub0weflymow"); // incidentAngle = child->radius / childRadius; +UNSUPPORTED("c69jvmzrevph74caisfpf79mn"); // if (length == 1) { +UNSUPPORTED("btx47bd050say49ybxbfxxrx8"); // if (childAngle != 0) { +UNSUPPORTED("11n2y6kkv4rca0be56oa4yuwy"); // if (pi->childCount == 2) +UNSUPPORTED("a9ogeli9lgxver8dtpvq26r1s"); // childAngle = M_PI; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("e3rf09rej790utv5odsi7sirm"); // childAngle += incidentAngle; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("bnmngdaagaced9g37k4iectpn"); // if (firstAngle < 0) +UNSUPPORTED("bsx8hf00tkq0m0i9os2gv7hne"); // firstAngle = childAngle; +UNSUPPORTED("8llapzv34igunous8dfu6ic8p"); // lastAngle = childAngle; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("26covu77lvuzprfh5pc35c6m7"); // if (pi->childCount == 1) { +UNSUPPORTED("ds80vzgun3b3octlz0lofd9qz"); // childAngle = pi->theta; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("2qps72ppptkpmaonwjx89t8ti"); // childAngle += incidentAngle + mindistAngle / 2; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4xx1ubdla04bj1c1nkji47ycn"); // deltaX = childRadius * cos(childAngle); +UNSUPPORTED("4q41infzh177ycry5n376xyo"); // deltaY = childRadius * sin(childAngle); +UNSUPPORTED("59lpvl8d38879wlvcrxj3i3ok"); // /* first apply the delta to the immediate child and see if we need +UNSUPPORTED("cbr9evjzrxqa89gdj6lugvuut"); // * to rotate it for better edge link +UNSUPPORTED("ae0iqjg4062ccpw6kxq0jktan"); // * should return the theta value if there was a rotation else zero +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("d3t3vti6mue4xaw6rg9dwck94"); // rotateAngle = getRotation(child, g, deltaX, deltaY, childAngle); +UNSUPPORTED("a79u8uaekxm40c65ezudsd5u6"); // applyDelta(child, deltaX, deltaY, rotateAngle); +UNSUPPORTED("c69jvmzrevph74caisfpf79mn"); // if (length == 1) { +UNSUPPORTED("aw0pdp4pepihfz8q083ilj9cy"); // childAngle += incidentAngle + mindistAngle; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("cb8bk29jo8zc6bh1xx9p06lnc"); // childAngle += incidentAngle + mindistAngle / 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1szm63athnlkprt3pv29pjc6z"); // cnt++; +UNSUPPORTED("962p120sk6jb00rm75uryy0nv"); // if (cnt == midChild) +UNSUPPORTED("9kvtjmj7u050tx0m6yiax5wvz"); // midAngle = childAngle; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4e8ao1xf7cnvtb07wtsyvxvbx"); // if ((length > 1) && (pi->n == stp->neighbor)) { +UNSUPPORTED("5hpo1zarnam66vyjyrst5vfut"); // (((cdata*)(ND_alg(pi->n)))->u.f.psi) = midAngle; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("70x4gfo9wip2xi3nkekxl3pd9"); // stp->subtreeR = snRadius; +UNSUPPORTED("26dtlxr2hlpcs2smx34sg8u84"); // stp->firstAngle = firstAngle; +UNSUPPORTED("e1bjfx85nmchm67a1wftqkeqt"); // stp->lastAngle = lastAngle; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 183knc853hg2lewtrjxjwbad +// static double position(Agraph_t * g, int childCount, int length, nodelist_t * path, block_t * sn, double min_dist) +public static Object position(Object... arg) { +UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("22vnfrl02muhf1spl5hz0w23t"); // position(Agraph_t * g, int childCount, int length, nodelist_t * path, +UNSUPPORTED("c1t6ifcshh5aolq58u6d8zzpj"); // block_t * sn, double min_dist) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7rutwn578nyaydek3ukuywh1x"); // nodelistitem_t *item; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("6ucakys2cw7jiv28161pyriv1"); // posstate state; +UNSUPPORTED("8k85245qpent3wzgi4bryorr3"); // int i, counter = 0; +UNSUPPORTED("a695nieoct28fopsesdpcnge"); // double maxRadius = 0.0; +UNSUPPORTED("92mb8jdyxj5379bf15u10ncne"); // double angle; +UNSUPPORTED("39lrh4yp65e7bz2yxmw4eykrf"); // double theta = 0.0; +UNSUPPORTED("23og2wsnt900of8nebhax9oyf"); // posinfo_t* parents = (posinfo_t*)zmalloc((childCount)*sizeof(posinfo_t)); +UNSUPPORTED("bzqraac2wnk8t66hw56y468nc"); // int num_parents = 0; +UNSUPPORTED("z72pagx4ayrk2yqmotbjuefr"); // posinfo_t* next; +UNSUPPORTED("eeemcjy0m28y6uo1k67ow85aw"); // posinfo_t* curr; +UNSUPPORTED("c9q6ir4wu73b7lv68ilvxy3x7"); // double delta; +UNSUPPORTED("6yffdiw932i5rt81vhl78p4my"); // state.cp = sn->children.first; +UNSUPPORTED("2i8rbg0cq017n4ujwzb6ehb70"); // state.subtreeR = sn->radius; +UNSUPPORTED("3zq6dyqtdab8t8om06kbqxsf7"); // state.radius = sn->radius; +UNSUPPORTED("2oqyqn73k762frqgxysfgwdvx"); // state.neighbor = ((sn)->child); +UNSUPPORTED("5v4yfu1mewcqtr1iitiv2k5zs"); // state.nodeAngle = 2 * M_PI / length; +UNSUPPORTED("6f204wxzonpgn67h24efbeg87"); // state.firstAngle = -1; +UNSUPPORTED("dua53rud195i1fza5gx41y8wl"); // state.lastAngle = -1; +UNSUPPORTED("5dgjj6y6q8lzpoow2gga1vw08"); // for (item = path->first; item; item = item->next) { +UNSUPPORTED("efcirwqi1qo67gxv4hcey7ume"); // n = item->curr; +UNSUPPORTED("94qpgyg00z0hr00d8pd3z1ayb"); // theta = counter * state.nodeAngle; +UNSUPPORTED("3a9goefb48roao7azhg25lwv4"); // counter++; +UNSUPPORTED("6zg1ud5tzcw5bdxchosqyeiqs"); // if (((((cdata*)(ND_alg(n)))->flags)&(1 << 3))) { +UNSUPPORTED("2d3h31rypli1to22ks3625yb3"); // parents[num_parents].n = n; +UNSUPPORTED("3w4m6651a3two5vpclinusgxz"); // parents[num_parents].theta = theta; +UNSUPPORTED("a969k09an1c03o3fchyxzdknw"); // maxRadius = getInfo (parents+num_parents, &state, min_dist); +UNSUPPORTED("nfniu0ma9kcpj4iftil7vxzo"); // num_parents++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("19ff6lx469ojx0kd8qng7xnm2"); // if (num_parents == 1) +UNSUPPORTED("ebbpim2wuh8zmq8eb2hy0rwa4"); // parents->scale = 1.0; +UNSUPPORTED("7nq76o6ilylvrnthd9saci3dm"); // else if (num_parents == 2) { +UNSUPPORTED("97x4yhfbu7p7ax1wjgypyzvs2"); // curr = parents; +UNSUPPORTED("cxlahkp8nrxsqxjo1h4m6luwj"); // next = parents+1; +UNSUPPORTED("318uuok3kzhklbp2qy5oz5isd"); // delta = next->theta - curr->theta; +UNSUPPORTED("dl7kx2da6bpzv7t95mctx0k4b"); // if (delta > M_PI) +UNSUPPORTED("8w966007ytd8humlh8ld5n3y"); // delta = 2*M_PI - delta; +UNSUPPORTED("42eevkdrj77smcpbkbycptbr9"); // setInfo (curr, next, delta); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("97x4yhfbu7p7ax1wjgypyzvs2"); // curr = parents; +UNSUPPORTED("5pdqtasaquwj0buhiaa5kl3lu"); // for (i = 0; i < num_parents; i++) { +UNSUPPORTED("o2ar05chdjxtjoiic51moxxo"); // if (i+1 == num_parents) { +UNSUPPORTED("9wiicb729io2751z1cqj3za3w"); // next = parents; +UNSUPPORTED("8w39fyrm0xi8av27kkb2ox9iq"); // delta = next->theta - curr->theta + 2*M_PI; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("2wgrvn9lpnb1glq51snvhrlpn"); // next = curr+1; +UNSUPPORTED("6rnd98sxn37mywfmwpgmz5jys"); // delta = next->theta - curr->theta; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("3wodlygye92vfolc4yek541q5"); // setInfo (curr, next, delta); +UNSUPPORTED("f09krbnpkp0dj7clpnfofxhs3"); // curr++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6s78kskfp8mah4jsgthr07vz5"); // for (i = 0; i < num_parents; i++) { +UNSUPPORTED("3qghhc5maci1337vzb8zb1d23"); // positionChildren (g, parents + i, &state, length, min_dist); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2zf1tuimr6i6xmj6st44n1y6d"); // free (parents); +UNSUPPORTED("6ehx9nw398bee4byzgr4hyvrj"); // /* If block has only 1 child, to save space, we coalesce it with the +UNSUPPORTED("158fhk9tz4932mk3kgob0majr"); // * child. Instead of having final radius sn->radius + max child radius, +UNSUPPORTED("st1dl3d0qufd92ksixbfqrs8"); // * we have half that. However, the origin of the block is no longer in +UNSUPPORTED("82bqem29c6dlp0g32cggclhpj"); // * the center of the block, so we cannot do a simple rotation to get +UNSUPPORTED("aq0f42fl4631zdfwv7noubqpf"); // * the neighbor node next to the parent block in getRotate. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("bbfns218ckyof9zhxovat1856"); // if (childCount == 1) { +UNSUPPORTED("9totzf6n9ceszh8mm3tllioma"); // applyDelta(sn, -(maxRadius + min_dist / 2), 0, 0); +UNSUPPORTED("7xw3jatz27ecvuvr8ndmzpri2"); // sn->radius += min_dist / 2 + maxRadius; +UNSUPPORTED("djn1r9ekdaplctm3dmv4s86hq"); // (((sn)->flags) |= (1 << 0)); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("2z11j34mh7ho6yeonjtcuftyk"); // sn->radius = state.subtreeR; +UNSUPPORTED("2634lkpplyldiomou50vs8ne8"); // angle = (state.firstAngle + state.lastAngle) / 2.0 - M_PI; +UNSUPPORTED("62ygf2gmqakbkjtv70bqh5q3i"); // return angle; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a87t2i8cdtwy70eh2fop0pu68 +// static void doBlock(Agraph_t * g, block_t * sn, double min_dist) +public static Object doBlock(Object... arg) { +UNSUPPORTED("5nry31kqija8llhs67tppjguq"); // static void doBlock(Agraph_t * g, block_t * sn, double min_dist) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dnimuukbrqydy7hshg1fgcjip"); // block_t *child; +UNSUPPORTED("d7uu3k4m5ty17ck42vok0b2qd"); // nodelist_t *longest_path; +UNSUPPORTED("akedsyjeha5i5pifvmpx754fx"); // int childCount, length; +UNSUPPORTED("csnfgux07j8xroe4dfr5ydmww"); // double centerAngle = M_PI; +UNSUPPORTED("5czwx5ja6vchkqqf3nj1dbplo"); // /* layout child subtrees */ +UNSUPPORTED("6fmp43rz8qxcnka1ixy8ofy4o"); // childCount = 0; +UNSUPPORTED("2ucdzk00biyj5tphlncfr7de8"); // for (child = sn->children.first; child; child = child->next) { +UNSUPPORTED("cqqmq5uo5abmk8d0omydy8qfe"); // doBlock(g, child, min_dist); +UNSUPPORTED("ckf9u9keyanpnzokxxvtxisu8"); // childCount++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f5dfmshylzxahkpt6bypg8gdf"); // /* layout this block */ +UNSUPPORTED("96pbgoge9aguwe0pojeb6478b"); // longest_path = layout_block(g, sn, min_dist); +UNSUPPORTED("9j0wpzijxf3wv4nwyk56labpn"); // sn->circle_list = longest_path; +UNSUPPORTED("2px8ljbfc4yhbhbv2i3n5kjvc"); // length = sizeNodelist(longest_path); /* path contains everything in block */ +UNSUPPORTED("epc8pxjomwsgtpc3cie7d8jp9"); // /* attach children */ +UNSUPPORTED("4abtrzavmj7jx497pijua7lit"); // if (childCount > 0) +UNSUPPORTED("3px8jprdntkfoay5evmj3utqc"); // centerAngle = +UNSUPPORTED("byo5mpsyssgtbxmb1x5yu3hcy"); // position(g, childCount, length, longest_path, sn, min_dist); +UNSUPPORTED("16uagx1awpuxh25qk8lwdiewh"); // if ((length == 1) && ((((sn)->child)? (((cdata*)(ND_alg(((sn)->child))))->parent) : 0))) { +UNSUPPORTED("9nmeqvmukyg4yokpki9xdf3vj"); // sn->parent_pos = centerAngle; +UNSUPPORTED("d8izngkerf5zyrx3iwt0zqq3f"); // if (sn->parent_pos < 0) +UNSUPPORTED("7ex0u65w20yvu6ejq0eph4w2j"); // sn->parent_pos += 2 * M_PI; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 chxnkeyek1c0y3nf5nzcr860m +// void circPos(Agraph_t * g, block_t * sn, circ_state * state) +public static Object circPos(Object... arg) { +UNSUPPORTED("7kmetdiv7luwpajiej493xalo"); // void circPos(Agraph_t * g, block_t * sn, circ_state * state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e4qh6uup89pjepp99d1dehhh"); // doBlock(g, sn, state->min_dist); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/circogen/circular__c.java plantuml-8039/src/gen/lib/circogen/circular__c.java --- plantuml-8024/src/gen/lib/circogen/circular__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/circogen/circular__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,790 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.circogen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class circular__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 brutblu0x5wghdgucrt52smjm +// static void initGraphAttrs(Agraph_t * g, circ_state * state) +public static Object initGraphAttrs(Object... arg) { +UNSUPPORTED("mevh06n4q12f6qlyrvz3w4g0"); // static void initGraphAttrs(Agraph_t * g, circ_state * state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3z24ttdbl5xv131ksj7fa1bos"); // static Agraph_t *rootg; +UNSUPPORTED("2sxz0ovw0gl9wk9npfs6dv3ef"); // static attrsym_t *N_artpos; +UNSUPPORTED("armrshxy92azyhnq4ajdo80ng"); // static attrsym_t *N_root; +UNSUPPORTED("1aahky7zclwyujyy33hntydc6"); // static attrsym_t *G_mindist; +UNSUPPORTED("cjkaslolwvv9zm99ol4025xwn"); // static char *rootname; +UNSUPPORTED("btcm26tl3qvd0mpw8v6ehj7fl"); // Agraph_t *rg; +UNSUPPORTED("75g5xnaflgg4p8k1558jb4iwe"); // node_t *n = agfstnode(g); +UNSUPPORTED("8sbtilif75x33dpu4ndtghvpb"); // rg = agraphof((((cdata*)(ND_alg(n)))->orig.np)); +UNSUPPORTED("1b78iugl2igpzf6u74oi1e79p"); // if (rg != rootg) { /* new root graph */ +UNSUPPORTED("94t7yb92h6bvdimz86ehh9rj"); // state->blockCount = 0; +UNSUPPORTED("9pibd50hsa8xrddgalqpzemqq"); // rootg = rg; +UNSUPPORTED("dw7jwke69sqerh0l2h4j1irbs"); // G_mindist = agattr(rootg,AGRAPH, "mindist", NULL); +UNSUPPORTED("248jckj3fduzazffdm0ezhdgo"); // N_artpos = agattr(rootg,AGNODE, "articulation_pos", NULL); +UNSUPPORTED("60so4xhc3ssfm3o0ub5d6e6nf"); // N_root = agattr(rootg,AGNODE, "root", NULL); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f0rizk4nvevdxrxdceh5l8gb8"); // rootname = agget(rootg, "root"); +UNSUPPORTED("5qqotagszvhwnqyx2q40b4xh1"); // initBlocklist(&state->bl); +UNSUPPORTED("bpjxyfqoeiyunzjxeqp945vfx"); // state->orderCount = 1; +UNSUPPORTED("5r1nzq4zm4l0jc5gao2cxf41k"); // state->min_dist = late_double(rootg, G_mindist, 1.0, 0.0); +UNSUPPORTED("d19x5ja0lnq2fpohjymq0r6h4"); // state->N_artpos = N_artpos; +UNSUPPORTED("23qn4w90tp8ja02yccctbqsq3"); // state->N_root = N_root; +UNSUPPORTED("1mmya9odnwx31zrehpl1jpsy1"); // state->rootname = rootname; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7576syipts6h49ytv0bxjqihr +// static void cleanup(block_t * root, circ_state * sp) +public static Object cleanup(Object... arg) { +UNSUPPORTED("797dl0jvi1n3233d8o4uyei2b"); // static void cleanup(block_t * root, circ_state * sp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("gazjytqmjmd1urhxt9548d55"); // freeBlocktree(root); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 boxxvmmqhsqas56onmc5f3zwe +// static block_t* createOneBlock(Agraph_t * g, circ_state * state) +public static Object createOneBlock(Object... arg) { +UNSUPPORTED("59ge1w6bvjt3yigegnr06qnl8"); // static block_t* +UNSUPPORTED("9xvo8aqpz8luw2fq3dl28uijm"); // createOneBlock(Agraph_t * g, circ_state * state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("78gq1jdufena2r9rigvse5178"); // char name[128]; +UNSUPPORTED("c1e61umpnq91loowv2uiik4ij"); // block_t *bp; +UNSUPPORTED("ci2zh69w6nhi0q816i1ixuy9k"); // Agnode_t* n; +UNSUPPORTED("ep00xn89fpirmsx2551j54utc"); // sprintf(name, "_block_%d", state->blockCount++); +UNSUPPORTED("8hrghpozt8br3ds7ltyndkky6"); // subg = agsubg(g, name, 1); +UNSUPPORTED("dkw9ioytrkmgvbpp3g41plz2w"); // bp = mkBlock(subg); +UNSUPPORTED("7wq24g054kmx3aw25vk5ksj4"); // for (n = agfstnode(g); n; n = agnxtnode(g,n)) { +UNSUPPORTED("e3s0e6n0tn5oo7ufsgmpz2da4"); // agsubnode(bp->sub_graph, n, 1); +UNSUPPORTED("5w85v39q14iajt0jgg03tk3a9"); // (((cdata*)(ND_alg(n)))->block) = bp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bgo7070e5cs998w6zp1ma85ad"); // return bp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8uhw81t1ved37tzd71k710amg +// void circularLayout(Agraph_t * g, Agraph_t* realg) +public static Object circularLayout(Object... arg) { +UNSUPPORTED("b9ydomdo0508iyd0x2pfye9lz"); // void circularLayout(Agraph_t * g, Agraph_t* realg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7u378ih9lwpzdxqjnl915ozy"); // block_t *root; +UNSUPPORTED("d75hzxqbv87poc5kfhal0xyck"); // static circ_state state; +UNSUPPORTED("c9dpf2d6r2iz9o45zgyidbebh"); // if (agnnodes(g) == 1) { +UNSUPPORTED("6ki4i8xt1mzl7q9z88kubd4yj"); // Agnode_t *n = agfstnode(g); +UNSUPPORTED("1if9tmldy50vvy2r6q47ljlzr"); // ND_pos(n)[0] = 0; +UNSUPPORTED("dl1koje47ohkw3rirkqubr4ha"); // ND_pos(n)[1] = 0; +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("15iqjzyyusn71pklqiaym0leo"); // initGraphAttrs(g, &state); +UNSUPPORTED("guyydelm9krftn3qex06vuuh"); // if (mapbool(agget(realg, "oneblock"))) +UNSUPPORTED("2lhfurdnccdltspt0boh4e1r1"); // root = createOneBlock(g, &state); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("8b2zub4wcpg8aqduu4g2d0vye"); // root = createBlocktree(g, &state); +UNSUPPORTED("4snxxj405ai3to5yun84phl1o"); // circPos(g, root, &state); +UNSUPPORTED("9nk75yy4i467l0g7z9wrmspqk"); // cleanup(root, &state); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/circogen/circularinit__c.java plantuml-8039/src/gen/lib/circogen/circularinit__c.java --- plantuml-8024/src/gen/lib/circogen/circularinit__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/circogen/circularinit__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,980 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.circogen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class circularinit__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 exy2l03ceq9zw4vf01bbd4d3o +// typedef unsigned int packval_t + + + + +//3 5zqkuy8tub9dafvyyyiaizp7g +// static void circular_init_edge(edge_t * e) +public static Object circular_init_edge(Object... arg) { +UNSUPPORTED("81a6u66j0hogvfd05waxp3tg4"); // static void circular_init_edge(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9egiculslq6sjkjl1r3i2xhyw"); // agbindrec(e, "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); //node custom data +UNSUPPORTED("dwvquwksg1mxo6dxl7r7gaxpe"); // common_init_edge(e); +UNSUPPORTED("6asvm3mgvrgkcyl9tgnl3h63l"); // ED_factor(e) = late_double(e, E_weight, 1.0, 0.0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4ng3mbiynzux1wvgsup4kxys4 +// static void circular_init_node_edge(graph_t * g) +public static Object circular_init_node_edge(Object... arg) { +UNSUPPORTED("9znhhxthl2danllds1rjgalwy"); // static void circular_init_node_edge(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("7s165b75za7edl3pgyc01kxis"); // int i = 0; +UNSUPPORTED("3v6tdz74pwvplr74f6twrd5el"); // ndata* alg = (ndata*)zmalloc((agnnodes(g))*sizeof(ndata)); +UNSUPPORTED("6v4vv0lnaxuk2fjdmt9we0u5a"); // GD_neato_nlist(g) = (node_t **)zmalloc((agnnodes(g) + 1)*sizeof(node_t *)); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("1jlbav97feq4ldstpk1olcq1v"); // neato_init_node(n); +UNSUPPORTED("duvqfgu1th3wcqujatvqygq4q"); // ND_alg(n) = alg + i; +UNSUPPORTED("db7iioqpe7jfqzku8slbbyrqx"); // GD_neato_nlist(g)[i++] = n; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("9nauxuqfe7l71ry6spo3zx7sv"); // circular_init_edge(e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ed4m1q5pf8w4vmugtmdtyswf5 +// void circo_init_graph(graph_t * g) +public static Object circo_init_graph(Object... arg) { +UNSUPPORTED("clgz3no8an7z04vs9z66h54i5"); // void circo_init_graph(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6vmhwvwf0v01vufgz8qcmh7jb"); // setEdgeType (g, (1 << 1)); +UNSUPPORTED("6l9t0fr5noj4qmjm4d97s1yg"); // /* GD_ndim(g) = late_int(g,agfindattr(g,"dim"),2,2); */ +UNSUPPORTED("dewv2jeq4al6xed6mstt62s4"); // Ndim = GD_ndim(g) = 2; /* The algorithm only makes sense in 2D */ +UNSUPPORTED("do50yggt3kfryy3rl36hav9ex"); // circular_init_node_edge(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6oaqcf3sa5k7zbraca82kld7x +// static node_t *makeDerivedNode(graph_t * dg, char *name, int isNode, void *orig) +public static Object makeDerivedNode(Object... arg) { +UNSUPPORTED("30m11dka21d62sohxvn94zyzs"); // static node_t *makeDerivedNode(graph_t * dg, char *name, int isNode, +UNSUPPORTED("cp1d6p3arstdrks87m40zwgfb"); // void *orig) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("73d7bkrhzxc6l2mp8q3dm11jk"); // node_t *n = agnode(dg, name,1); +UNSUPPORTED("dv6sz213l2u9hnm297p0rddyc"); // agbindrec(n, "Agnodeinfo_t", sizeof(Agnodeinfo_t), NOT(0)); //node custom data +UNSUPPORTED("a3k4jc1wdwonrnd37opgktsjs"); // ND_alg(n) = (void *) (cdata*)zmalloc(sizeof(cdata)); +UNSUPPORTED("4j672890oi8yw0qwb24k82gwl"); // if (isNode) { +UNSUPPORTED("7r7bg9zjwf1z4qmhfna2gszb6"); // ND_pos(n) = (double*)zmalloc((Ndim)*sizeof(double)); +UNSUPPORTED("1cgm8oljhf1418e7rcmln1b3f"); // ND_lw(n) = ND_lw((node_t *) orig); +UNSUPPORTED("1015mjuidbqu2as0i5ttigd8z"); // ND_rw(n) = ND_rw((node_t *) orig); +UNSUPPORTED("6wd4a54nsu1mu9kautswdhkqv"); // ND_ht(n) = ND_ht((node_t *) orig); +UNSUPPORTED("3y9rgbfji9tz3o3njt36tin5w"); // (((cdata*)(ND_alg(n)))->orig.np) = (node_t *) orig; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("9mivzy7020945qzvi116o7mqd"); // (((cdata*)(ND_alg(n)))->orig.g) = (graph_t *) orig; +UNSUPPORTED("69hc24ic55i66g8tf2ne42327"); // return n; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 47innmyoq6u3g1towfnldiw7q +// Agraph_t **circomps(Agraph_t * g, int *cnt) +public static Object circomps(Object... arg) { +UNSUPPORTED("88dug57az6beipl0x6lgbi4be"); // Agraph_t **circomps(Agraph_t * g, int *cnt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bgwb4n61b6v6hggxzjxkzyyhh"); // int c_cnt; +UNSUPPORTED("8i0oxshyd0x2idt42lftg3zjx"); // Agraph_t **ccs; +UNSUPPORTED("4irto8d9ngepfwouz32g86zl6"); // Agraph_t *dg; +UNSUPPORTED("bbeocxhxeybyz66p85ymkw21p"); // Agnode_t *n, *v, *dt, *dh; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("5qsdev7ikmpmm9zepv8ye0zy6"); // Agraph_t *sg; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("1bl759aws53yjk3xg9shiogx5"); // Agedge_t *ep; +UNSUPPORTED("79qovd7yt2ksk0181m08pcblr"); // Agnode_t *p; +UNSUPPORTED("b90zsijnwtlivim554qwqm0ix"); // dg = agopen("derived", Agstrictundirected,((Agdisc_t *)0)); +UNSUPPORTED("21avs22bxicrobqqehf2myfbe"); // agbindrec (dg, "info", sizeof(Agraphinfo_t), NOT(0)); +UNSUPPORTED("bjc2oies1s6gsu3oimfh0p2vw"); // GD_alg(g) = dg; /* store derived graph for closing later */ +UNSUPPORTED("7lrfd3npcqkgakq00km2isrez"); // for (v = agfstnode(g); v; v = agnxtnode(g, v)) { +UNSUPPORTED("66d9cjc3c19rkl1xo5q75eyy3"); // if ((((ndata*)(ND_alg(v)))->dnode)) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("3xd9di7e0pn5j3ab12plbfwdg"); // n = makeDerivedNode(dg, agnameof(v), 1, v); +UNSUPPORTED("60ya0ytt4vev09o5aku73jahr"); // (((ndata*)(ND_alg(v)))->dnode) = n; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7lrfd3npcqkgakq00km2isrez"); // for (v = agfstnode(g); v; v = agnxtnode(g, v)) { +UNSUPPORTED("erx1nf1775jonr4w5wft0hvdu"); // for (e = agfstout(g, v); e; e = agnxtout(g, e)) { +UNSUPPORTED("3t1pr150rt35qfaq27r1zbv4p"); // dt = (((ndata*)(ND_alg(agtail(e))))->dnode); +UNSUPPORTED("e6mfovkd5y5ejfzgrd5ejbxyq"); // dh = (((ndata*)(ND_alg(aghead(e))))->dnode); +UNSUPPORTED("etnv2n1zrsnrvqk0iw4k56m3k"); // if (dt != dh) { +UNSUPPORTED("4e8oaa3hyozzg07trkzctvpjg"); // agbindrec(agedge(dg, dt, dh, NULL, 1), "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); //node custom data +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bdwcg056rr8f0gjq6j88p2x7n"); // ccs = ccomps(dg, &c_cnt, 0); +UNSUPPORTED("5jibz6gpp5kod6l57ny3ty3r1"); // /* replace block nodes with block contents */ +UNSUPPORTED("m6vxwfbuj0amz3vibr3v29ej"); // for (i = 0; i < c_cnt; i++) { +UNSUPPORTED("6u96xrwleb6z11oid6j69lgbg"); // sg = ccs[i]; +UNSUPPORTED("87tnwfub3vnyzczex6ea2030o"); // /* add edges: since sg is a union of components, all edges +UNSUPPORTED("c3jorj497dblwgp23ztqrl4w3"); // * of any node should be added, except loops. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("8ndqdk4p1i3jl54ffpn01qpf0"); // for (n = agfstnode(sg); n; n = agnxtnode(sg, n)) { +UNSUPPORTED("2xz1i48q3s732gi3b9voxo5x5"); // p = (((cdata*)(ND_alg(n)))->orig.np); +UNSUPPORTED("8kf4pg1a2oonwlfycu9ekh7kk"); // for (e = agfstout(g, p); e; e = agnxtout(g, e)) { +UNSUPPORTED("3gd7lc1v93xd4xermby6u1r65"); // /* n = DNODE(agtail(e)); by construction since agtail(e) == p */ +UNSUPPORTED("eurm7o0ur76a0r8d1mvhnyuxn"); // dh = (((ndata*)(ND_alg(aghead(e))))->dnode); +UNSUPPORTED("cajrzypw29s0vxy9q2wb63pb5"); // if (n != dh) { +UNSUPPORTED("wxztz2ihmtaq7a3tnh877wtn"); // ep = agedge(dg, n, dh, NULL, 1); +UNSUPPORTED("cyrt7a79zj3qpozi5u03e9rha"); // agbindrec(ep, "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); //node custom data +UNSUPPORTED("3nbvxqmkpczy87gapoiflcm7h"); // agsubedge(sg,ep,1); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6sp7lph2mvxrohj6vtfkicdim"); // /* Finally, add edge data to edges */ +UNSUPPORTED("914a8cae80n1ri1fpea93utu7"); // for (n = agfstnode(dg); n; n = agnxtnode(dg, n)) { +UNSUPPORTED("1rw5ca354jxnf4pzpzmqok202"); // for (e = agfstout(dg, n); e; e = agnxtout(dg, e)) { +UNSUPPORTED("7w6qk0tqimtm4cv1my0ck9qvr"); // ED_alg(e) = (edata*)zmalloc(sizeof(edata)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4e70xntp9dn0j9tedf99r36kd"); // *cnt = c_cnt; +UNSUPPORTED("d077t46km2flvzhvfy5b9ld5u"); // return ccs; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8tkw52jrm3q5gjxend5f4k65u +// static void closeDerivedGraph(graph_t * g) +public static Object closeDerivedGraph(Object... arg) { +UNSUPPORTED("6rwrdoon90p8fi9j654lwxnlv"); // static void closeDerivedGraph(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("dyaixncu6fj64t6jwaub8p2i5"); // free(ED_alg(e)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("54ofz7viqgqwlis5n9xqmuu5h"); // free(ND_alg(n)); +UNSUPPORTED("2nmtwczdx0jgyqpwa58dcregg"); // free(ND_pos(n)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ego3r1tvwrpv2hie8y9p8vq4z"); // agclose(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dpkh3zgzyq6fbp9ioeeobtmuf +// static void copyPosns(graph_t * g) +public static Object copyPosns(Object... arg) { +UNSUPPORTED("85yp63ze7p9x92x7hu9n8g2i5"); // static void copyPosns(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("aigogf44ojtcesuy4xs7inqbn"); // node_t *v; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("ew59jdm9lyvhthz1t6xrxvtxb"); // v = (((cdata*)(ND_alg(n)))->orig.np); +UNSUPPORTED("1yrksj0nsa8xiq23zugddcfu0"); // ND_pos(v)[0] = ND_pos(n)[0]; +UNSUPPORTED("4oe7lgzfrw1944cz1lgdilxgk"); // ND_pos(v)[1] = ND_pos(n)[1]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2c199pi91nr7mh3acdkqmldz +// void circoLayout(Agraph_t * g) +public static Object circoLayout(Object... arg) { +UNSUPPORTED("9fhl98askfr5pey0tdt2q7595"); // void circoLayout(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8i0oxshyd0x2idt42lftg3zjx"); // Agraph_t **ccs; +UNSUPPORTED("5qsdev7ikmpmm9zepv8ye0zy6"); // Agraph_t *sg; +UNSUPPORTED("bkb0ghck7vt2m0xdwrl4k3xsw"); // int ncc; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("9ejwyvcq1foytw59mxl3482uc"); // if (agnnodes(g)) { +UNSUPPORTED("5claujskttaa3ofagihoocs0"); // ccs = circomps(g, &ncc); +UNSUPPORTED("edukq9g8egufczs6ja3h99k6a"); // if (ncc == 1) { +UNSUPPORTED("5culj7o9syz5p697akumt6yuo"); // circularLayout(ccs[0], g); +UNSUPPORTED("45bp9uwmk8jhe2621hwavtn3u"); // copyPosns(ccs[0]); +UNSUPPORTED("dr2tfyal8xy7z5fd0tf0ewyl7"); // adjustNodes(g); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("4b10vmvqnqosanuvuht0ftet9"); // Agraph_t *dg = ccs[0]->root; +UNSUPPORTED("83e9l49h8gnb0np8c6kq3m4uv"); // pack_info pinfo; +UNSUPPORTED("7jf67vp6muqkvku6lzkv5jp7e"); // getPackInfo(g, l_node, 8, &pinfo); +UNSUPPORTED("3rfcnwowz3h58n92j7igzwap0"); // for (i = 0; i < ncc; i++) { +UNSUPPORTED("6n1wgj9rnpi5u0c1f6mo7hvdr"); // sg = ccs[i]; +UNSUPPORTED("6bvrmd6fk9hdhoya1rhrdttvh"); // circularLayout(sg, g); +UNSUPPORTED("8wmpmd9fii5i7bt0z2xxzqqws"); // adjustNodes(sg); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("85ss84hamlz7rmyoghxnfvtfx"); // /* FIX: splines have not been calculated for dg +UNSUPPORTED("46z2ex51d85utlwyty1u4gva7"); // * To use, either do splines in dg and copy to g, or +UNSUPPORTED("2ienyma5vtgjvnjw1bzj078ue"); // * construct components of g from ccs and use that in packing. +UNSUPPORTED("20m1lc1moer8x00tx9ceto0iw"); // */ +UNSUPPORTED("dyd2ouvfyiz2rwx8lvicc5dfx"); // packSubgraphs(ncc, ccs, dg, &pinfo); +UNSUPPORTED("6j69ahhob9se73yezbxmtj1kw"); // for (i = 0; i < ncc; i++) +UNSUPPORTED("187gxizgv5cq2o0jxwkmjjh6h"); // copyPosns(ccs[i]); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5eru5cerydhchm7ojmgdlkv9y"); // free(ccs); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3ei94sqys69psr637fpltuail +// void circo_layout(Agraph_t * g) +public static Object circo_layout(Object... arg) { +UNSUPPORTED("26zulk7sh7ulle9t1br08yku4"); // void circo_layout(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3o29ookoifg8un22eqmpv1dji"); // if (agnnodes(g) == 0) return; +UNSUPPORTED("crts7mlr0gno5bv400gffajrh"); // circo_init_graph(g); +UNSUPPORTED("3n1vj06ggjmp8hz1d20mk2y6p"); // circoLayout(g); +UNSUPPORTED("b9ppl4mqx1v2uc46b1spxyavl"); // /* Release ND_alg as we need to reuse it during edge routing */ +UNSUPPORTED("13jrnqbzc7n4ujm1kc140syrh"); // free(ND_alg(agfstnode(g))); +UNSUPPORTED("5cj9wu1kpmvlmkgf7a52qkdhe"); // spline_edges(g); +UNSUPPORTED("4mt9sefpw760d2ucfonntrzd5"); // dotneato_postprocess(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b296om49teiekj6lwox3v4ych +// void circo_cleanup(graph_t * g) +public static Object circo_cleanup(Object... arg) { +UNSUPPORTED("2000uj9hmwompnjqlkhmdf51y"); // void circo_cleanup(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("42x5vqk9aw9a2ld3duvpmp7u9"); // n = agfstnode(g); +UNSUPPORTED("1dhb4juzl1nov6lfw5m04nrjm"); // if (n == NULL) +UNSUPPORTED("5fyrd330hpw6jlkkbj1hbwwrx"); // return; /* g is empty */ +UNSUPPORTED("f45nj0vg9pqonlpelxgxia20d"); // closeDerivedGraph((graph_t*)GD_alg(g)); /* delete derived graph */ +UNSUPPORTED("d5kco5u1uhmm9tbu87zidddbe"); // /* free (ND_alg(n)); */ +UNSUPPORTED("5vwclwrj7d6gxp9jc712gfxeo"); // for (; n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("5otoqd7o1zz8ni50urywr7yjy"); // gv_cleanup_edge(e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ec2wg4tpq1npq2mtdbc154ylh"); // gv_cleanup_node(n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dxp41biia9zas5nfacx5m4vhp"); // free(GD_neato_nlist(g)); +UNSUPPORTED("58o9b8zmlqcq96deeorllidce"); // if (g != agroot(g)) +UNSUPPORTED("3339e6k6eajhv2r0c4wedzjx7"); // agclean (g,AGRAPH,"Agraphinfo_t"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/circogen/deglist__c.java plantuml-8039/src/gen/lib/circogen/deglist__c.java --- plantuml-8024/src/gen/lib/circogen/deglist__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/circogen/deglist__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,851 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.circogen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class deglist__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 7j7kswbhzemhda2b85gqybnya +// typedef Dt_t deglist_t + + + + +//3 6jjh5wxnkdktgwiietsjulw6z +// static degitem *mkItem(Dt_t * d, degitem * obj, Dtdisc_t * disc) +public static Object mkItem(Object... arg) { +UNSUPPORTED("34l3cr7o0s36r6np2mo81nf28"); // static degitem *mkItem(Dt_t * d, degitem * obj, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("70m8szenrqelm5jiezi74rafb"); // degitem *ap = (degitem*)gmalloc(sizeof(degitem)); +UNSUPPORTED("4ouv9h9vqevqnrhkan5tlj097"); // ap->np = NULL; +UNSUPPORTED("271cqt1d7zvpcjyeqcy8l9eun"); // ap->deg = obj->deg; +UNSUPPORTED("b8cimfvcp1vea97hyfr4m9nix"); // return ap; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dxc5b2nwkbljd2ajty06o3jsb +// static void freeItem(Dt_t * d, degitem * obj, Dtdisc_t * disc) +public static Object freeItem(Object... arg) { +UNSUPPORTED("bdbhhqyr54fvrnkfl9uvtqwwr"); // static void freeItem(Dt_t * d, degitem * obj, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8are8jqzwfj87yj4tkaohi3tf"); // free(obj); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 63kiupllvljfbvo3a449loqbj +// static int cmpDegree(Dt_t * d, int *key1, int *key2, Dtdisc_t * disc) +public static Object cmpDegree(Object... arg) { +UNSUPPORTED("5c5veztcj8p7w17adgwu5lm2w"); // static int cmpDegree(Dt_t * d, int *key1, int *key2, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cgd49hnc586jvde6n28xo4kbs"); // if (*key1 < *key2) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("9l1k6re48q3fnj1wo008zixlf"); // else if (*key1 > *key2) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 19ddabks48tw9coeb5b7qhsc8 +// static Dtdisc_t nodeDisc = + + + + +//3 8s93atp6fs5gev3r499v2zshm +// deglist_t *mkDeglist(void) +public static Object mkDeglist(Object... arg) { +UNSUPPORTED("4b6n6j1dlfujg6k83xdu9ngrt"); // deglist_t *mkDeglist(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2frmh5mz12cekzldrd7afbeb4"); // deglist_t *s = dtopen(&nodeDisc, Dtoset); +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 583rk1k9h9793rue8tv6fay4g +// void freeDeglist(deglist_t * s) +public static Object freeDeglist(Object... arg) { +UNSUPPORTED("ckni1tor84ydnmlnmg6twknr1"); // void freeDeglist(deglist_t * s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1eacawmrzl4lhcatl49wx5ig5"); // dtclose(s); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8ab3eesjs8stuegu0nvbyzepc +// void insertDeglist(deglist_t * ns, Agnode_t * n) +public static Object insertDeglist(Object... arg) { +UNSUPPORTED("64f8u0ha3z0utn16h0x5vfec0"); // void insertDeglist(deglist_t * ns, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bqnel5obbh4bl3zf0omgdos4n"); // degitem key; +UNSUPPORTED("eeebhkpkvwktepj7rwhq5doyn"); // degitem *kp; +UNSUPPORTED("78a3fqbduf77elveak3a5mlzy"); // key.deg = (ND_order(n)); +UNSUPPORTED("b796ihupd560f2wp258m0hns6"); // kp = (*(((Dt_t*)(ns))->searchf))((ns),(void*)(&key),0000001); +UNSUPPORTED("8qnzzx284czktidqetzzx8zn2"); // ND_next(n) = kp->np; +UNSUPPORTED("611u8u1k5yndthyjbbn8n4vom"); // kp->np = n; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 196qf9oo7v4q0vpkmh0offqml +// void removeDeglist(deglist_t * list, Agnode_t * n) +public static Object removeDeglist(Object... arg) { +UNSUPPORTED("7teewdwi0ri4goei9djjltz9k"); // void removeDeglist(deglist_t * list, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bqnel5obbh4bl3zf0omgdos4n"); // degitem key; +UNSUPPORTED("erd6k9k70zu76g38b4bw40qgc"); // degitem *ip; +UNSUPPORTED("4dnqwjhhs92m1h2q7ld3cpbxw"); // Agnode_t *np; +UNSUPPORTED("1ru9ims6hmw013lfo33nqoovf"); // Agnode_t *prev; +UNSUPPORTED("78a3fqbduf77elveak3a5mlzy"); // key.deg = (ND_order(n)); +UNSUPPORTED("epr624cob4pobua20tuitepp"); // ip = (degitem *) (*(((Dt_t*)(list))->searchf))((list),(void*)(&key),0000004); +UNSUPPORTED("9olui43gl7h3h1fmw7zn66imq"); // assert(ip); +UNSUPPORTED("7efmqfndjamyl7n0z6r5wfzl4"); // if (ip->np == n) { +UNSUPPORTED("ajf2a1kwtqzgaf0ttc2nkdlo2"); // ip->np = ND_next(n); +UNSUPPORTED("3aucho1nw67puvtklsyv092ds"); // if (ip->np == NULL) +UNSUPPORTED("cqy11coo93d3bsdiwq7ud9fuo"); // (*(((Dt_t*)(list))->searchf))((list),(void*)(ip),0000002); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("52mt95m4116s9iwqfb25s4pav"); // prev = ip->np; +UNSUPPORTED("4sz2f5szhalvcqtkmhiik0vx9"); // np = ND_next(prev); +UNSUPPORTED("4n2kwfilkk67likl0qzeycxvd"); // while (np && (np != n)) { +UNSUPPORTED("bo6pv2ttquzlqms4raesbt03g"); // prev = np; +UNSUPPORTED("5d6ye4vskzqqtwv623y3ih813"); // np = ND_next(np); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5ezdne9bvwnh3wos769j8wiia"); // if (np) +UNSUPPORTED("1g10xvvi5utvhj60qc2xdojj1"); // ND_next(prev) = ND_next(np); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6anrbidvt56pez6p6gbqpydt3 +// Agnode_t *firstDeglist(deglist_t * list) +public static Object firstDeglist(Object... arg) { +UNSUPPORTED("e0sl2agzlockom7cxoo51qw1r"); // Agnode_t *firstDeglist(deglist_t * list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("erd6k9k70zu76g38b4bw40qgc"); // degitem *ip; +UNSUPPORTED("4dnqwjhhs92m1h2q7ld3cpbxw"); // Agnode_t *np; +UNSUPPORTED("8i6t915t48u87p7rtir1632oz"); // ip = (degitem *) (*(((Dt_t*)(list))->searchf))((list),(void*)(0),0000200); +UNSUPPORTED("bct0h7obrwmyxyjpdlga0lo14"); // if (ip) { +UNSUPPORTED("78029h2ysex4tgn2j6yc9n606"); // np = ip->np; +UNSUPPORTED("dga7wwrm8t8ae9u45xa81skdx"); // ip->np = ND_next(np); +UNSUPPORTED("3aucho1nw67puvtklsyv092ds"); // if (ip->np == NULL) +UNSUPPORTED("cqy11coo93d3bsdiwq7ud9fuo"); // (*(((Dt_t*)(list))->searchf))((list),(void*)(ip),0000002); +UNSUPPORTED("17ijaw8uvtaqajyt5gz56c0bl"); // return np; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/circogen/edgelist__c.java plantuml-8039/src/gen/lib/circogen/edgelist__c.java --- plantuml-8024/src/gen/lib/circogen/edgelist__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/circogen/edgelist__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,820 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.circogen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class edgelist__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 e0c6o8stnbe78j48z75ksdz7r +// typedef Dt_t edgelist + + + + +//3 c48pu7sje0r78t2wzd4wriou1 +// static edgelistitem *mkItem(Dt_t * d, edgelistitem * obj, Dtdisc_t * disc) +public static Object mkItem(Object... arg) { +UNSUPPORTED("8pmb3scayujj5o5eo9kju7s41"); // static edgelistitem *mkItem(Dt_t * d, edgelistitem * obj, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8ecewest645ms26bpisstjmbk"); // edgelistitem *ap = (edgelistitem*)gmalloc(sizeof(edgelistitem)); +UNSUPPORTED("52bu9pkvky17tuwkbe7qqix6r"); // ap->edge = obj->edge; +UNSUPPORTED("b8cimfvcp1vea97hyfr4m9nix"); // return ap; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5ju6nwkzfj1kw0o19m27zgi3k +// static void freeItem(Dt_t * d, edgelistitem * obj, Dtdisc_t * disc) +public static Object freeItem(Object... arg) { +UNSUPPORTED("3u61y9byumq89etvp23c3riam"); // static void freeItem(Dt_t * d, edgelistitem * obj, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8are8jqzwfj87yj4tkaohi3tf"); // free(obj); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6cpvzyjpob8pd1xlv3ttghxux +// static int cmpItem(Dt_t * d, Agedge_t ** key1, Agedge_t ** key2, Dtdisc_t * disc) +public static Object cmpItem(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("ajqv8acrh7u8vbw2juulsum5d"); // cmpItem(Dt_t * d, Agedge_t ** key1, Agedge_t ** key2, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7utf654gwt7egdzz3hm89nlxl"); // if (*key1 > *key2) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("6upfe9100usb1lfxsl7la30s7"); // else if (*key1 < *key2) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 en30luofpod7z27w0aj4r8enb +// static Dtdisc_t ELDisc = + + + + +//3 7fca27qkh2mdzf81nmexrpiqr +// edgelist *init_edgelist() +public static Object init_edgelist(Object... arg) { +UNSUPPORTED("yy5ggz6clx2c2onc8xl22qfk"); // edgelist *init_edgelist() +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cfid3mmhj2rdurvanznm8otj3"); // edgelist *list = dtopen(&ELDisc, Dtoset); +UNSUPPORTED("1a5vgaasp2bunvu19mvepzcny"); // return list; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a9ttx4x4j9nv42ye6uynivjyd +// void free_edgelist(edgelist * list) +public static Object free_edgelist(Object... arg) { +UNSUPPORTED("3yal0ro8r8xufkq7jtgbrga2v"); // void free_edgelist(edgelist * list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aa4i2v07wlx8w47e0lf34c4wz"); // dtclose(list); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 19dxubfb11w2vtknmrufxxlxs +// void add_edge(edgelist * list, Agedge_t * e) +public static Object add_edge(Object... arg) { +UNSUPPORTED("9qznefcg03z35rgwce6d2xz50"); // void add_edge(edgelist * list, Agedge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5mz4ehypkf3qcceorma37u4o3"); // edgelistitem temp; +UNSUPPORTED("9ux5w93i4ironqiyms86u2lmg"); // temp.edge = e; +UNSUPPORTED("52s02sgijqd90o3eaje0m3ymi"); // (*(((Dt_t*)(list))->searchf))((list),(void*)(&temp),0000001); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9dw7otsax5p3wgco3ezmr6p5u +// void remove_edge(edgelist * list, Agedge_t * e) +public static Object remove_edge(Object... arg) { +UNSUPPORTED("bce0vyzq6ak6qdqruxc8c31h7"); // void remove_edge(edgelist * list, Agedge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5mz4ehypkf3qcceorma37u4o3"); // edgelistitem temp; +UNSUPPORTED("9ux5w93i4ironqiyms86u2lmg"); // temp.edge = e; +UNSUPPORTED("3gjvpmqetnm6nonhtfkdatcmn"); // (*(((Dt_t*)(list))->searchf))((list),(void*)(&temp),0000002); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7e8iajy59wdlj5qbl2szrnj87 +// int size_edgelist(edgelist * list) +public static Object size_edgelist(Object... arg) { +UNSUPPORTED("ovhqdnpxyvdbmwdqi76epfly"); // int size_edgelist(edgelist * list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a0c7a03jtehhu1ndk4myhpzma"); // return dtsize(list); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/circogen/nodelist__c.java plantuml-8039/src/gen/lib/circogen/nodelist__c.java --- plantuml-8024/src/gen/lib/circogen/nodelist__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/circogen/nodelist__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,979 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.circogen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class nodelist__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dtvicq2fjah66wz933ioh4bh2 +// static nodelistitem_t *init_nodelistitem(Agnode_t * n) +public static Object init_nodelistitem(Object... arg) { +UNSUPPORTED("cppsm8li6xhe2nfca5h9hc35s"); // static nodelistitem_t *init_nodelistitem(Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a81qmm3v9xj9l8nrqdopeg5x1"); // nodelistitem_t *p = (nodelistitem_t*)zmalloc(sizeof(nodelistitem_t)); +UNSUPPORTED("dgfcptwn9m7o8i9r1b9xvngzy"); // p->curr = n; +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dy4cfo30aqhqfs9ohp0qrn7fu +// nodelist_t *mkNodelist() +public static Object mkNodelist(Object... arg) { +UNSUPPORTED("czt31m4nlpmyzl2714h6vy9wu"); // nodelist_t *mkNodelist() +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8b2hcjxxfs3fupuecrnixuljm"); // nodelist_t *list = (nodelist_t*)zmalloc(sizeof(nodelist_t)); +UNSUPPORTED("1a5vgaasp2bunvu19mvepzcny"); // return list; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ani6po8xj4sxqbhdawzmq8251 +// void freeNodelist(nodelist_t * list) +public static Object freeNodelist(Object... arg) { +UNSUPPORTED("dfgd45o6wb4a2i7993nhfbpvg"); // void freeNodelist(nodelist_t * list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("pa3zri6e03r37li0yvmybpg4"); // nodelistitem_t *temp; +UNSUPPORTED("c6bl1xv56sveza6epjosbv1oj"); // nodelistitem_t *next; +UNSUPPORTED("35qymiuzsxbel5wazqnch2eqy"); // if (!list) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("cq9fd6hdrk5i2d37kpjha3qrq"); // for (temp = list->first; temp; temp = next) { +UNSUPPORTED("dkag6uuiaeylf8agl944h05pb"); // next = temp->next; +UNSUPPORTED("ahlgfjly01f5ug0y9pa2ajm6i"); // free(temp); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("77gdlnaiah901ax125wm0qh80"); // free(list); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bzpmqsej7l7xiqisk32bw2zm8 +// void appendNodelist(nodelist_t * list, nodelistitem_t * one, Agnode_t * n) +public static Object appendNodelist(Object... arg) { +UNSUPPORTED("8yvpsepddhtbarkxefc50dm1h"); // void appendNodelist(nodelist_t * list, nodelistitem_t * one, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4iranqg9epblrgj1bzf4x4xbv"); // nodelistitem_t *np = init_nodelistitem(n); +UNSUPPORTED("3khggq4ry681ql90ves4iwmto"); // list->sz++; +UNSUPPORTED("cgb1s2cixxv6xguzmcfhke7dj"); // if (!one) +UNSUPPORTED("ii36llbqruzbw1jtya2ee80y"); // one = list->last; +UNSUPPORTED("2lje4v7acqxe7g8zjwc2sqica"); // if (one == list->last) { +UNSUPPORTED("6o2129m3tutp76nyfcwp605xq"); // if (one) +UNSUPPORTED("76hhn52ngdrr2tjdvcbh751r"); // one->next = np; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("7jm6wxh1nz1zzdnbe6acf2bwu"); // list->first = np; +UNSUPPORTED("7gfo2ikm6jikpp4r8zdshyabs"); // np->prev = one; +UNSUPPORTED("1xr19fxblzroful8ndn0u83zq"); // np->next = NULL; +UNSUPPORTED("24wk90ztjjugjmfnnklcx35hx"); // list->last = np; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("drtfyjrp7u51ma7hu4owbox4y"); // nodelistitem_t *temp = one->next; +UNSUPPORTED("189hobyq8t73opjr6qzhjp8iz"); // one->next = np; +UNSUPPORTED("7gfo2ikm6jikpp4r8zdshyabs"); // np->prev = one; +UNSUPPORTED("19s0nm1mqdyd4k94v7574crf1"); // temp->prev = np; +UNSUPPORTED("adyo2r5ry9iybnj962fi9s2lx"); // np->next = temp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ctsccyqeaa9wecrwozla2ksu1 +// nodelist_t *reverseNodelist(nodelist_t * list) +public static Object reverseNodelist(Object... arg) { +UNSUPPORTED("6g1dv3qe875isiu5iwy67xcox"); // nodelist_t *reverseNodelist(nodelist_t * list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("pa3zri6e03r37li0yvmybpg4"); // nodelistitem_t *temp; +UNSUPPORTED("5nxbag6j6mm7x1s5lcxx4yduv"); // nodelistitem_t *p; +UNSUPPORTED("dgmoklrjltys555ns5u1guhlc"); // for (p = list->first; p; p = p->prev) { +UNSUPPORTED("13rcpao1mnwjyegxg4am7xcfk"); // temp = p->next; +UNSUPPORTED("cpbjg01gslnulx45hhu9laqkq"); // p->next = p->prev; +UNSUPPORTED("oky4e50byjbs4i1b2ryzxldd"); // p->prev = temp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("86r2uoo76jcwz7tegpylhu6hj"); // temp = list->last; +UNSUPPORTED("qsi5a1a5iu7ucnu30kwcdlyq"); // list->last = list->first; +UNSUPPORTED("4jyx9h2dzuqwc2lw74af56n8q"); // list->first = temp; +UNSUPPORTED("1a5vgaasp2bunvu19mvepzcny"); // return list; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 af9x62teargqqy8dz9adaj72s +// void realignNodelist(nodelist_t * list, nodelistitem_t * np) +public static Object realignNodelist(Object... arg) { +UNSUPPORTED("1tadjwwe46zric2aoph7y61gs"); // void realignNodelist(nodelist_t * list, nodelistitem_t * np) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("pa3zri6e03r37li0yvmybpg4"); // nodelistitem_t *temp; +UNSUPPORTED("b0lfbtcbms9p2h7g8ps8ssz4k"); // nodelistitem_t *prev; +UNSUPPORTED("5blj9eu4g4s75yfeqzyik4z8w"); // if (np == list->first) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("9pbvnj7ksi5hm9yp64vshl4n2"); // temp = list->first; +UNSUPPORTED("9xeibemdh2ufq2ugwmdbkdfc8"); // prev = np->prev; +UNSUPPORTED("emjbf0ldol95uuq5s5ewx07pa"); // list->first = np; +UNSUPPORTED("9m9ukxgb5qeidz5dbtl9rtxyn"); // np->prev = NULL; +UNSUPPORTED("ddjypr6ls3rjoapphnj80yk8j"); // list->last->next = temp; +UNSUPPORTED("8n6y5ljrux6tk4ois15gwc3ud"); // temp->prev = list->last; +UNSUPPORTED("5ta19ur7mycgypllf3zhq2f7t"); // list->last = prev; +UNSUPPORTED("6xwhww8e9rdm0um5baaabdyw2"); // prev->next = NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bknx0j43q6gqf020gmb5mk2g3 +// nodelist_t *cloneNodelist(nodelist_t * list) +public static Object cloneNodelist(Object... arg) { +UNSUPPORTED("chwajviesvyazqfya8zcqw9pa"); // nodelist_t *cloneNodelist(nodelist_t * list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("49lh14x9cdmmo85yn8bljp09o"); // nodelist_t *newlist = mkNodelist(); +UNSUPPORTED("pa3zri6e03r37li0yvmybpg4"); // nodelistitem_t *temp; +UNSUPPORTED("5csialohxa4l0l6lraa54rmd4"); // nodelistitem_t *prev = 0; +UNSUPPORTED("45mgdorn59qcesu3x01ksl67c"); // for (temp = list->first; temp; temp = temp->next) { +UNSUPPORTED("ggy4iialzsdom3scvl3ix7vn"); // appendNodelist(newlist, prev, temp->curr); +UNSUPPORTED("6xavzw9y8t22iaihjhb327nyz"); // prev = newlist->last; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7e0gcw4mhuz5knrmxh84mikwr"); // return newlist; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9st8dsjp6370v1ctv6tc4q47 +// void insertNodelist(nodelist_t * list, Agnode_t * cn, Agnode_t * neighbor, int pos) +public static Object insertNodelist(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("2lza3k61gsci4pfghoqrm2apj"); // insertNodelist(nodelist_t * list, Agnode_t * cn, Agnode_t * neighbor, +UNSUPPORTED("9969ggdyyy9qaur8aysp582wn"); // int pos) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("pa3zri6e03r37li0yvmybpg4"); // nodelistitem_t *temp; +UNSUPPORTED("b0lfbtcbms9p2h7g8ps8ssz4k"); // nodelistitem_t *prev; +UNSUPPORTED("c6bl1xv56sveza6epjosbv1oj"); // nodelistitem_t *next; +UNSUPPORTED("6w96lik5dx405g2u9ld3a945i"); // nodelistitem_t *actual = 0; +UNSUPPORTED("45mgdorn59qcesu3x01ksl67c"); // for (temp = list->first; temp; temp = temp->next) { +UNSUPPORTED("c7rv3ap37bgop5z5dny0hewms"); // if (temp->curr == cn) { +UNSUPPORTED("5qyuo5c4mgehfy3ggqlhubahi"); // actual = temp; +UNSUPPORTED("lmiaqjil1ebd2s0own6tv1g3"); // prev = actual->prev; +UNSUPPORTED("e11p9bzk9vmkzp6ioie4ym9be"); // next = actual->next; +UNSUPPORTED("7itpb16oyinejl2bkuba1jo8b"); // if (prev) /* not first */ +UNSUPPORTED("97nmcjqjguhnn2yp36k9lnavv"); // prev->next = next; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("2q3wh8f7xp879s4g1ksfxwau5"); // list->first = next; +UNSUPPORTED("1l5eba0k2sfypru0g3jfpbaam"); // if (next) /* not last */ +UNSUPPORTED("4ybg9mys8i2ml9jsa8xmj62c5"); // next->prev = prev; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("dorc8lvahip1l8che0g88yyzw"); // list->last = prev; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bx05lgxs331md9fie0wesuvap"); // assert(actual); +UNSUPPORTED("9pg1u5lrva4tjoa207r87y7uu"); // prev = NULL; +UNSUPPORTED("45mgdorn59qcesu3x01ksl67c"); // for (temp = list->first; temp; temp = temp->next) { +UNSUPPORTED("66w0tvg4s2lxiscws77pv2vjz"); // if (temp->curr == neighbor) { +UNSUPPORTED("9fhgx695e7k9wnez4245dfdsb"); // if (pos == 0) { +UNSUPPORTED("9oeoke5lzd4ljfeh4g7nqbruq"); // if (temp == list->first) { +UNSUPPORTED("2bui4chbceam8ff4fjcvzygkf"); // list->first = actual; +UNSUPPORTED("6hto5cvdur2emyfneplidb71m"); // actual->next = temp; +UNSUPPORTED("81jvm012c1ipk41dfemx9ewuf"); // actual->prev = NULL; +UNSUPPORTED("ddmhucj8hk31d4s1w9omtylrz"); // temp->prev = actual; +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("elrbl0s6gcjiksecuyv4cwlrw"); // prev->next = actual; +UNSUPPORTED("33ng2zf79ee91w58r5kpq90gt"); // actual->prev = prev; +UNSUPPORTED("cc0to99z5maq2xnjhudfr5o70"); // actual->next = temp; +UNSUPPORTED("8abdi4757pva6bgf2i8xlx185"); // temp->prev = actual; +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("ccdv56be5vthenta387vrn1qr"); // if (temp == list->last) { +UNSUPPORTED("48aigcr040halrvm3i4d0krx9"); // list->last = actual; +UNSUPPORTED("49xd4a7j75bfcwd3lfr2r75ud"); // actual->next = NULL; +UNSUPPORTED("bir7bd59frh7n7n26s0f9q1x3"); // actual->prev = temp; +UNSUPPORTED("3w4qk4r0u8s7lzijxjot851ef"); // temp->next = actual; +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("4bi759cy3ujnnd0eiv920n5v0"); // actual->prev = temp; +UNSUPPORTED("bh2fcn9ayoiebx80yo7p43d1i"); // actual->next = temp->next; +UNSUPPORTED("c99hxdonxolbe50cscuoi2y00"); // temp->next->prev = actual; +UNSUPPORTED("35b7fo9lcqnhoglg99yc2kpd0"); // temp->next = actual; +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("45r3mykwgd2rl2mbaem3fhd09"); // prev = temp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3acdwz7swl5xiaa4deeffslb2 +// int sizeNodelist(nodelist_t * list) +public static Object sizeNodelist(Object... arg) { +UNSUPPORTED("az6xj0b4g7rrv5wk4ienryz07"); // int sizeNodelist(nodelist_t * list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("30o3t71m1veta2ztp8qeny0jg"); // return list->sz; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7vwgwolpyeakgeadjc38vro7u +// int node_position(nodelist_t * list, Agnode_t * n) +public static Object node_position(Object... arg) { +UNSUPPORTED("49384gvfui8kk87uo1hvm6jus"); // int node_position(nodelist_t * list, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("chetbysouusnjyid1ehspawij"); // return (((cdata*)(ND_alg(n)))->u.f.pos); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d6risaxfqb2wnfu7t64z2qlhv +// static void concatNodelist(nodelist_t * l1, nodelist_t * l2) +public static Object concatNodelist(Object... arg) { +UNSUPPORTED("crqjl1cf4fhimn7a2kq8j7ktq"); // static void concatNodelist(nodelist_t * l1, nodelist_t * l2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("23s2d45xl329cxf5vszbyqum2"); // if (l2->first) { +UNSUPPORTED("94su581vwu985fxc3b3fsn0db"); // if (l2->first) { +UNSUPPORTED("1ynd953ypkhiqrl4nheca01f0"); // l1->last->next = l2->first; +UNSUPPORTED("8isrj1p6vyp0ibaeneexjpr3k"); // l2->first->prev = l1->last; +UNSUPPORTED("lrue5uyjqn248q4hn96a2tyr"); // l1->last = l2->last; +UNSUPPORTED("3hgnhs33erfrulx6incku34ma"); // l1->sz += l2->sz; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("9zzlp61k5udwshnz984m6k1za"); // *l1 = *l2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bp2bbcnbcxxxpxg843u1hyonh +// void reverseAppend(nodelist_t * l1, nodelist_t * l2) +public static Object reverseAppend(Object... arg) { +UNSUPPORTED("wj6n5ch1rmqne3qxotl515tp"); // void reverseAppend(nodelist_t * l1, nodelist_t * l2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f2kglvjqspzbssrc0t5gqounl"); // l2 = reverseNodelist(l2); +UNSUPPORTED("crnlco3s0jlkrli5fzm8s9rny"); // concatNodelist(l1, l2); +UNSUPPORTED("e3lo2nmmrc9efrwoifxg3z4bp"); // free(l2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/circogen/nodeset__c.java plantuml-8039/src/gen/lib/circogen/nodeset__c.java --- plantuml-8024/src/gen/lib/circogen/nodeset__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/circogen/nodeset__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,854 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.circogen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class nodeset__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 39duc9sgnnz7xqy8c1hhno72b +// typedef Dt_t nodeset_t + + + + +//3 62459jnnxbav2c5hcep7v85nb +// static nsitem_t *mkItem(Dt_t * d, nsitem_t * obj, Dtdisc_t * disc) +public static Object mkItem(Object... arg) { +UNSUPPORTED("bsbgshly9fnfkjkq1j8wzgf6v"); // static nsitem_t *mkItem(Dt_t * d, nsitem_t * obj, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4dsr793q1dbnq4jof60oe0a1x"); // nsitem_t *ap = (nsitem_t*)gmalloc(sizeof(nsitem_t)); +UNSUPPORTED("2a3snjof794fbvtns64g1oydj"); // ap->np = obj->np; +UNSUPPORTED("b8cimfvcp1vea97hyfr4m9nix"); // return ap; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c5n5x0ad5kdzzfdcyn4jk60uk +// static void freeItem(Dt_t * d, nsitem_t * obj, Dtdisc_t * disc) +public static Object freeItem(Object... arg) { +UNSUPPORTED("4ynix280v14ql47zkf5nhsqjo"); // static void freeItem(Dt_t * d, nsitem_t * obj, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8are8jqzwfj87yj4tkaohi3tf"); // free(obj); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 75pqi5jto64y7vf5woibc7we7 +// static int cmpItem(Dt_t * d, Agnode_t ** key1, Agnode_t ** key2, Dtdisc_t * disc) +public static Object cmpItem(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("23scptyfqg3min3jegzkmsba5"); // cmpItem(Dt_t * d, Agnode_t ** key1, Agnode_t ** key2, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7utf654gwt7egdzz3hm89nlxl"); // if (*key1 > *key2) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("6upfe9100usb1lfxsl7la30s7"); // else if (*key1 < *key2) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 54whed6ufxjlmpxj9tx6zqlbx +// static Dtdisc_t nodeDisc = + + + + +//3 450ov2obe7vcg7jy4mdrs1kq6 +// nodeset_t *mkNodeset() +public static Object mkNodeset(Object... arg) { +UNSUPPORTED("2zeou2lmth8zxf98spohfevn9"); // nodeset_t *mkNodeset() +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7w5u5wrm21t7ngnd9pe778h25"); // nodeset_t *s = dtopen(&nodeDisc, Dtoset); +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clbr7gnx6ka3lhe7su6lm9txj +// void freeNodeset(nodeset_t * s) +public static Object freeNodeset(Object... arg) { +UNSUPPORTED("grtt180bkqajtt8903kd4w3w"); // void freeNodeset(nodeset_t * s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2tsp1c0clxcfselstsr54hnrg"); // if (s != NULL) +UNSUPPORTED("8ozn8claiw8jsksr2w5j0028i"); // dtclose(s); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4ruhmyhymnmhpz0b78gk3dya +// void clearNodeset(nodeset_t * s) +public static Object clearNodeset(Object... arg) { +UNSUPPORTED("5af7s6p6nj71jacraqx9oerps"); // void clearNodeset(nodeset_t * s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8idvqx73jm5c6q3x6qk0uuv33"); // (*(((Dt_t*)(s))->searchf))((s),(void*)(0),0000100); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c5x2cnob455a31zsm30tmlmqc +// void insertNodeset(nodeset_t * ns, Agnode_t * n) +public static Object insertNodeset(Object... arg) { +UNSUPPORTED("dctuhmh9290ltkzbol4v2c181"); // void insertNodeset(nodeset_t * ns, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b6eq7i5dup9xp7pea447e40j4"); // nsitem_t key; +UNSUPPORTED("4sacr2xzpt0z7lm5tpdtj5o2e"); // key.np = n; +UNSUPPORTED("adp8kv3cgemc8cu7fohblmj0f"); // (*(((Dt_t*)(ns))->searchf))((ns),(void*)(&key),0000001); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e0ghryzmt0b0d3blwtyi1t6is +// void removeNodeset(nodeset_t * ns, Agnode_t * n) +public static Object removeNodeset(Object... arg) { +UNSUPPORTED("7vkqkt69zioljaapauhoi7zxt"); // void removeNodeset(nodeset_t * ns, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b6eq7i5dup9xp7pea447e40j4"); // nsitem_t key; +UNSUPPORTED("4sacr2xzpt0z7lm5tpdtj5o2e"); // key.np = n; +UNSUPPORTED("4ncqgz69861d8ismpkbjmad92"); // (*(((Dt_t*)(ns))->searchf))((ns),(void*)(&key),0000002); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 q9vubw6u2jkstxm4emkzpxtu +// int sizeNodeset(nodeset_t * ns) +public static Object sizeNodeset(Object... arg) { +UNSUPPORTED("2a1aiss2f5k7z2sowpoo65ojd"); // int sizeNodeset(nodeset_t * ns) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7xkm2ev66k4ilje9ec4lpq6ad"); // return dtsize(ns); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5os2x3unmsneajs4xd4i1jkxp +// void printNodeset(nodeset_t * ns) +public static Object printNodeset(Object... arg) { +UNSUPPORTED("a8uozjs0q7y2pa14d9yqrbk6s"); // void printNodeset(nodeset_t * ns) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9ha1577re7zue762z6qi4xtgd"); // nsitem_t *ip; +UNSUPPORTED("1nnn5fn3otojyadjlfyivf1bo"); // for (ip = (nsitem_t *) (*(((Dt_t*)(ns))->searchf))((ns),(void*)(0),0000200); ip; +UNSUPPORTED("dote9fxh3agqvjxns586ln04c"); // ip = (nsitem_t *) (*(((Dt_t*)(ns))->searchf))((ns),(void*)(ip),0000010)) { +UNSUPPORTED("9qkbnrn10w82tq2g5boqlixvv"); // fprintf(stderr, "%s", agnameof(ip->np)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c95k2u5egba0bgdcr1c8inc4e"); // fputs("\n", stderr); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/args__c.java plantuml-8039/src/gen/lib/common/args__c.java --- plantuml-8024/src/gen/lib/common/args__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/args__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,982 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class args__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4bf9buvykusqzi4629qwmbd2x +// static int neato_extra_args(GVC_t *gvc, int argc, char** argv) +public static Object neato_extra_args(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("esa1s702otdlr6702fn7wstuz"); // neato_extra_args(GVC_t *gvc, int argc, char** argv) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("vchrmawq91kb0ii45yhrwq9"); // char** p = argv+1; +UNSUPPORTED("29u9nk1nrupcw2j8c7qe5glz7"); // int i; +UNSUPPORTED("dqwks39qtsnmvslaj3igd3y27"); // char* arg; +UNSUPPORTED("b153u7kyw153reyniefayrq6n"); // int cnt = 1; +UNSUPPORTED("dm1yusgl0wehpupm0jpt4whpr"); // for (i = 1; i < argc; i++) { +UNSUPPORTED("7yfqt2sdvyf0czltsldtzxf02"); // arg = argv[i]; +UNSUPPORTED("78ho9iw8bl94i74str8zdbor8"); // if (arg && *arg == '-') { +UNSUPPORTED("52y2apnsdpil1r7ibzx11pfwq"); // switch (arg[1]) { +UNSUPPORTED("1xmmmvijo8yqys8w1l7equ9bh"); // case 'x' : Reduce = NOT(0); break; +UNSUPPORTED("np1uxcrfeypdcuwqmi7i4srq"); // case 'n': +UNSUPPORTED("9sjpw2ts0x0qu27cc7xgcoc36"); // if (arg[2]) { +UNSUPPORTED("c45q8u35p73iqi4c2x1tt50s7"); // Nop = atoi(arg+2); +UNSUPPORTED("e7kh2ktytt7wqgsocz9cktts3"); // if (Nop <= 0) { +UNSUPPORTED("1yk7tr54pd4zonqofo51220c5"); // agerr (AGERR, "Invalid parameter \"%s\" for -n flag\n", arg+2); +UNSUPPORTED("d48xlsgsi8ksecguxhnr5gpr6"); // dotneato_usage (1); +UNSUPPORTED("aivfd7ajlfz8o8oi68d4u5s5z"); // return -1; +UNSUPPORTED("4v3ujrl58y59e7pqk0ke5t564"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("296pjg5wdjsxjiyr8ajjrb5er"); // else Nop = 1; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("63dmlsq766n7ojce42s6jvgyv"); // default : +UNSUPPORTED("77mslev6fngkh87g2jkd6j87j"); // cnt++; +UNSUPPORTED("6fllt9icceu2ygmiz84j3ls10"); // if (*p != arg) *p = arg; +UNSUPPORTED("5ms90gds9d7jyok5oqzrumfjz"); // p++; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("dquo3qofk56ds5xl95lhvcthf"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("cqtmxcio96sfpr9cmw4ukg3op"); // cnt++; +UNSUPPORTED("5436ztz7fh7w1wa56xdldkwxj"); // if (*p != arg) *p = arg; +UNSUPPORTED("broludtxg204vlgctqigehzxi"); // p++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("23w7qifugn1eere89tsewk6tp"); // *p = 0; +UNSUPPORTED("aux4g6wms30ow0s96grtfcsba"); // return cnt; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8p7j205ggerm803oa23gkc2g8 +// static int memtest_extra_args(GVC_t *gvc, int argc, char** argv) +public static Object memtest_extra_args(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("7do955i8h8cmq6xw2d40dfrcs"); // memtest_extra_args(GVC_t *gvc, int argc, char** argv) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("vchrmawq91kb0ii45yhrwq9"); // char** p = argv+1; +UNSUPPORTED("29u9nk1nrupcw2j8c7qe5glz7"); // int i; +UNSUPPORTED("dqwks39qtsnmvslaj3igd3y27"); // char* arg; +UNSUPPORTED("b153u7kyw153reyniefayrq6n"); // int cnt = 1; +UNSUPPORTED("dm1yusgl0wehpupm0jpt4whpr"); // for (i = 1; i < argc; i++) { +UNSUPPORTED("7yfqt2sdvyf0czltsldtzxf02"); // arg = argv[i]; +UNSUPPORTED("78ho9iw8bl94i74str8zdbor8"); // if (arg && *arg == '-') { +UNSUPPORTED("52y2apnsdpil1r7ibzx11pfwq"); // switch (arg[1]) { +UNSUPPORTED("9zx51b0tqpm98tv6whinwsaf4"); // case 'm' : +UNSUPPORTED("9sjpw2ts0x0qu27cc7xgcoc36"); // if (arg[2]) { +UNSUPPORTED("bk5spyi1l39jkjsb3vbxzm3zv"); // MemTest = atoi(arg+2); +UNSUPPORTED("3xb2rjjaiqbjuir0amd6fb25g"); // if (MemTest <= 0) { +UNSUPPORTED("a1lgwp8e8pwhm57ony6wojcxk"); // agerr (AGERR, "Invalid parameter \"%s\" for -m flag\n", arg+2); +UNSUPPORTED("d48xlsgsi8ksecguxhnr5gpr6"); // dotneato_usage (1); +UNSUPPORTED("aivfd7ajlfz8o8oi68d4u5s5z"); // return -1; +UNSUPPORTED("4v3ujrl58y59e7pqk0ke5t564"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("9fb91rfixm2s211ep1iptout"); // else MemTest = -1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("63dmlsq766n7ojce42s6jvgyv"); // default : +UNSUPPORTED("77mslev6fngkh87g2jkd6j87j"); // cnt++; +UNSUPPORTED("6fllt9icceu2ygmiz84j3ls10"); // if (*p != arg) *p = arg; +UNSUPPORTED("5ms90gds9d7jyok5oqzrumfjz"); // p++; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("dquo3qofk56ds5xl95lhvcthf"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("cqtmxcio96sfpr9cmw4ukg3op"); // cnt++; +UNSUPPORTED("5436ztz7fh7w1wa56xdldkwxj"); // if (*p != arg) *p = arg; +UNSUPPORTED("broludtxg204vlgctqigehzxi"); // p++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("23w7qifugn1eere89tsewk6tp"); // *p = 0; +UNSUPPORTED("aux4g6wms30ow0s96grtfcsba"); // return cnt; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5vvap3kfi3ewk4onfchidrfmz +// static int config_extra_args(GVC_t *gvc, int argc, char** argv) +public static Object config_extra_args(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("36f9jhc4e06p98qfdd1h9db62"); // config_extra_args(GVC_t *gvc, int argc, char** argv) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("vchrmawq91kb0ii45yhrwq9"); // char** p = argv+1; +UNSUPPORTED("29u9nk1nrupcw2j8c7qe5glz7"); // int i; +UNSUPPORTED("dqwks39qtsnmvslaj3igd3y27"); // char* arg; +UNSUPPORTED("b153u7kyw153reyniefayrq6n"); // int cnt = 1; +UNSUPPORTED("dm1yusgl0wehpupm0jpt4whpr"); // for (i = 1; i < argc; i++) { +UNSUPPORTED("7yfqt2sdvyf0czltsldtzxf02"); // arg = argv[i]; +UNSUPPORTED("78ho9iw8bl94i74str8zdbor8"); // if (arg && *arg == '-') { +UNSUPPORTED("52y2apnsdpil1r7ibzx11pfwq"); // switch (arg[1]) { +UNSUPPORTED("8hve8n5micl5wbpbe4s6tx91r"); // case 'v': +UNSUPPORTED("1i5rkr1j6m4qjh4p7ccv160tb"); // gvc->common.verbose = 1; +UNSUPPORTED("braofjgdk57w4vybhk2d5lf74"); // if (isdigit(arg[2])) +UNSUPPORTED("eh4a9je8p9cc5237lmw5bge42"); // gvc->common.verbose = atoi(&arg[2]); +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("w7w6iggiak86ob87592vfsc6"); // case 'O' : +UNSUPPORTED("dy3as4a2z79xr2yy9ruo7pvgr"); // gvc->common.auto_outfile_names = NOT(0); +UNSUPPORTED("5tzm1n3i8u3c1oms5ri2fiqbt"); // break; +UNSUPPORTED("28vj8fdgz2qg6391cwrl0oz21"); // case 'c' : +UNSUPPORTED("63ui3zhby8bmj2wg0fn2q96xj"); // gvc->common.config = NOT(0); +UNSUPPORTED("5tzm1n3i8u3c1oms5ri2fiqbt"); // break; +UNSUPPORTED("63dmlsq766n7ojce42s6jvgyv"); // default : +UNSUPPORTED("77mslev6fngkh87g2jkd6j87j"); // cnt++; +UNSUPPORTED("6fllt9icceu2ygmiz84j3ls10"); // if (*p != arg) *p = arg; +UNSUPPORTED("5ms90gds9d7jyok5oqzrumfjz"); // p++; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("dquo3qofk56ds5xl95lhvcthf"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("cqtmxcio96sfpr9cmw4ukg3op"); // cnt++; +UNSUPPORTED("5436ztz7fh7w1wa56xdldkwxj"); // if (*p != arg) *p = arg; +UNSUPPORTED("broludtxg204vlgctqigehzxi"); // p++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("23w7qifugn1eere89tsewk6tp"); // *p = 0; +UNSUPPORTED("aux4g6wms30ow0s96grtfcsba"); // return cnt; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f1dd7gkq4wmnxg8hs236lk99y +// static int setDouble (double* v, char* arg) +public static Object setDouble(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("de23ht5iyfmjr52eufndqvviw"); // setDouble (double* v, char* arg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1vp9ctqomm1prbzfcw3iekjae"); // char* p; +UNSUPPORTED("2di4na9yg012kjr64hp3x0c0f"); // double d; +UNSUPPORTED("5chu16helmcmihc2ulr2kxgzr"); // d = strtod(arg,&p); +UNSUPPORTED("1sa25jtazj7gwvr1kvphkc3dh"); // if (p == arg) { +UNSUPPORTED("a23t2j8ukgpd3n7ubqpa5gccj"); // agerr (AGERR, "bad value in flag -L%s - ignored\n", arg-1); +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("9vlugsd3snak94gf05cwvnrr2"); // *v = d; +UNSUPPORTED("bid671dovx1rdiquw5vm3fttj"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4gmf2emr89qdx3aqmaplne0k +// static int setInt (int* v, char* arg) +public static Object setInt(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("1ia068nvginu2yhs188oo991p"); // setInt (int* v, char* arg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1vp9ctqomm1prbzfcw3iekjae"); // char* p; +UNSUPPORTED("63myvfqx2n5qchb2xsnadn2t3"); // int i; +UNSUPPORTED("6tenu6ts0talbe25gqrp1boie"); // i = (int)strtol(arg,&p,10); +UNSUPPORTED("1sa25jtazj7gwvr1kvphkc3dh"); // if (p == arg) { +UNSUPPORTED("a23t2j8ukgpd3n7ubqpa5gccj"); // agerr (AGERR, "bad value in flag -L%s - ignored\n", arg-1); +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("3zdv2wxd4wuyb443w3ewc4tud"); // *v = i; +UNSUPPORTED("bid671dovx1rdiquw5vm3fttj"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6150ojro4hufw87jc6pvq95dd +// static int setFDPAttr (char* arg) +public static Object setFDPAttr(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("bjhn85lnzdoq1133w83naducd"); // setFDPAttr (char* arg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("adal17qy2p2c2udfjdup5jcd8"); // switch (*arg++) { +UNSUPPORTED("ewho1c3gx6n1smztwz6delx7f"); // case 'g' : +UNSUPPORTED("16d1qggixmwdtn8d7fhnwln0u"); // fdp_parms->useGrid = 0; +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("2fn9v8i1hgalj7sq7q8huppke"); // case 'O' : +UNSUPPORTED("8hzafgbup3w08h2m9b6005vp2"); // fdp_parms->useNew = 0; +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("ehgiqxt9i5d239qrzougvanzh"); // case 'n' : +UNSUPPORTED("5v7kadf0khrmtx1dldq0rpi98"); // if (setInt (&fdp_parms->numIters, arg)) return 1; +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("2d40s862frst4por3szi6iowz"); // case 'U' : +UNSUPPORTED("8b2suxlh89glat5kihpuepbzn"); // if (setInt (&fdp_parms->unscaled, arg)) return 1; +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("7dcx28zgefkzakfiqddjd4twc"); // case 'C' : +UNSUPPORTED("2552dgdsp464ukyu0ul3iu8rr"); // if (setDouble (&fdp_parms->C, arg)) return 1; +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("3sutcnfx01z7382cib3gkfhht"); // case 'T' : +UNSUPPORTED("45zugi5wky945tib5vhd1x21y"); // if (*arg == '*') { +UNSUPPORTED("6iuiou1xlsam1m2a03r5hrp07"); // if (setDouble (&fdp_parms->Tfact, arg+1)) return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("4kdlxsp3dqepnmerxanmtbvdi"); // if (setDouble (&fdp_parms->T0, arg)) return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("ao6hmye4t5tgve7qeyo667z6m"); // default : +UNSUPPORTED("bcdblpxa0h1d0z47irwzxw9p5"); // agerr (AGWARN, "unknown flag -L%s - ignored\n", arg-1); +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("bid671dovx1rdiquw5vm3fttj"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3vun3scvr1a4wzvyc881vq03y +// static int fdp_extra_args (GVC_t *gvc, int argc, char** argv) +public static Object fdp_extra_args(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("2mn97djxh0musn36mr9yc0fsu"); // fdp_extra_args (GVC_t *gvc, int argc, char** argv) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("vchrmawq91kb0ii45yhrwq9"); // char** p = argv+1; +UNSUPPORTED("29u9nk1nrupcw2j8c7qe5glz7"); // int i; +UNSUPPORTED("dqwks39qtsnmvslaj3igd3y27"); // char* arg; +UNSUPPORTED("b153u7kyw153reyniefayrq6n"); // int cnt = 1; +UNSUPPORTED("dm1yusgl0wehpupm0jpt4whpr"); // for (i = 1; i < argc; i++) { +UNSUPPORTED("7yfqt2sdvyf0czltsldtzxf02"); // arg = argv[i]; +UNSUPPORTED("ef9qwa3dgutydp4p7luyr2bc6"); // if (arg && (*arg == '-') && (*(arg+1) == 'L')) { +UNSUPPORTED("5kylq06joc45h90diw5jw7ltf"); // if (setFDPAttr (arg+2)) { +UNSUPPORTED("3336x5ydlp3mcvrtiyxeh97kg"); // dotneato_usage(1); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dquo3qofk56ds5xl95lhvcthf"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("cqtmxcio96sfpr9cmw4ukg3op"); // cnt++; +UNSUPPORTED("5436ztz7fh7w1wa56xdldkwxj"); // if (*p != arg) *p = arg; +UNSUPPORTED("broludtxg204vlgctqigehzxi"); // p++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("23w7qifugn1eere89tsewk6tp"); // *p = 0; +UNSUPPORTED("aux4g6wms30ow0s96grtfcsba"); // return cnt; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5xe1appewv62gtmkzdjzib7mr +// int gvParseArgs(GVC_t *gvc, int argc, char** argv) +public static Object gvParseArgs(Object... arg) { +UNSUPPORTED("9wm868oq7vnqwr4h9g3qwpp70"); // int gvParseArgs(GVC_t *gvc, int argc, char** argv) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("1adiibcyzt5tbvoqh5dcoed4x"); // if ((argc = neato_extra_args(gvc, argc, argv)) < 0) +UNSUPPORTED("9ha9lxje55wyq89xmlikm85qw"); // return (1-argc); +UNSUPPORTED("9khladgfiv87rrhd2orifedvf"); // if ((argc = fdp_extra_args(gvc, argc, argv)) < 0) +UNSUPPORTED("9ha9lxje55wyq89xmlikm85qw"); // return (1-argc); +UNSUPPORTED("bw180d61ya05twg120nytatvc"); // if ((argc = memtest_extra_args(gvc, argc, argv)) < 0) +UNSUPPORTED("9ha9lxje55wyq89xmlikm85qw"); // return (1-argc); +UNSUPPORTED("3ardghom15gc1fi8iffbnxvo8"); // if ((argc = config_extra_args(gvc, argc, argv)) < 0) +UNSUPPORTED("9ha9lxje55wyq89xmlikm85qw"); // return (1-argc); +UNSUPPORTED("7ch594ljf53kf7khsyl2f7fd5"); // if ((rv = dotneato_args_initialize(gvc, argc, argv))) +UNSUPPORTED("cs1ejkx9cw658cl8cagdzqrzm"); // return rv; +UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose) +UNSUPPORTED("8xq126b3a0ygzs1b8d52hvvhm"); // gvplugin_write_status(gvc); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/arrows__c.java plantuml-8039/src/gen/lib/common/arrows__c.java --- plantuml-8024/src/gen/lib/common/arrows__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/arrows__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1504 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static gen.lib.cgraph.attr__c.agxget; +import static gen.lib.cgraph.graph__c.agisdirected; +import static gen.lib.cgraph.obj__c.agraphof; +import static gen.lib.common.splines__c.bezier_clip; +import static gen.lib.common.utils__c.late_double; +import static smetana.core.JUtils.LOG2; +import static smetana.core.JUtils.function; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.DIST2; +import static smetana.core.Macro.ED_conc_opp_flag; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.arrowdir_t; +import h.bezier; +import h.boxf; +import h.inside_t; +import h.pointf; +import smetana.core.CString; +import smetana.core.MutableDouble; +import smetana.core.Z; +import smetana.core.__array_of_struct__; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class arrows__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 8g6b12c9lhliz7wt1b4g6ol4q +// static arrowdir_t Arrowdirs[] = + + +//1 bh7utclfhqwp6bpy5c8g693wa +// static arrowname_t Arrowsynonyms[] = +/*private static final __array_of_struct__ Arrowsynonyms = __array_of_struct__.malloc(arrowname_t.class, 1); +static { + Arrowsynonyms.plus(0).setStruct(create_arrowname_t(null, 0)); +}*/ + +//1 5yb25qm8n3hiqb86lalpa6q5n +// static arrowname_t Arrowmods[] = +/*private static final __array_of_struct__ Arrowmods = __array_of_struct__.malloc(arrowname_t.class, 1); +static { + Arrowmods.plus(0).setStruct(create_arrowname_t(null, 0)); +}*/ + +//1 e8dhqbfo267go86knqiqq0dnv +// static arrowname_t Arrownames[] = +/*private static final __array_of_struct__ Arrownames = __array_of_struct__.malloc(arrowname_t.class, 3); +static { + Arrownames.plus(0).setStruct(create_arrowname_t("normal", 1)); + Arrownames.plus(1).setStruct(create_arrowname_t("none", 8)); + Arrownames.plus(2).setStruct(create_arrowname_t(null, 0)); +} +private final static __struct__ create_arrowname_t(String name, int type) { + final __struct__ result = __struct__.from(arrowname_t.class); + result.setCString("name", name==null?null:new CString(name)); + result.setInt("type", type); + return result; +}*/ +//1 dnirq5m2r8c2mep5o1m3cdn6d +// static arrowtype_t Arrowtypes[] = +/*private static final __array_of_struct__ Arrowtypes = __array_of_struct__.malloc(arrowtype_t.class, 9); +static { + Arrowtypes.plus(0).setStruct(createArrowtypes(1, 1.0, function(arrows__c.class, "arrow_type_normal"))); + Arrowtypes.plus(1).setStruct(createArrowtypes(2, 1.0, function(arrows__c.class, "arrow_type_crow"))); + Arrowtypes.plus(2).setStruct(createArrowtypes(3, 0.5, function(arrows__c.class, "arrow_type_tee"))); + Arrowtypes.plus(3).setStruct(createArrowtypes(4, 1.0, function(arrows__c.class, "arrow_type_box"))); + Arrowtypes.plus(4).setStruct(createArrowtypes(5, 1.2, function(arrows__c.class, "arrow_type_diamond"))); + Arrowtypes.plus(5).setStruct(createArrowtypes(6, 0.8, function(arrows__c.class, "arrow_type_dot"))); + Arrowtypes.plus(6).setStruct(createArrowtypes(7, 1.0, function(arrows__c.class, "arrow_type_curve"))); + Arrowtypes.plus(7).setStruct(createArrowtypes(8, 0.5, function(arrows__c.class, "arrow_type_gap"))); + Arrowtypes.plus(8).setStruct(createArrowtypes(0, 0.0, null)); +} +private final static __struct__ createArrowtypes(int type, double lenfact, CFunction function) { + final __struct__ result = __struct__.from(arrowtype_t.class); + result.setInt("type", type); + result.setDouble("lenfact", lenfact); + result.setPtr("gen", function); + return result; +}*/ + + +//3 3apnay8wumntfkvud64ov7fcf +// static char *arrow_match_name_frag(char *name, arrowname_t * arrownames, int *flag) +public static CString arrow_match_name_frag(CString name, __array_of_struct__ arrownames, int flag[]) { +ENTERING("3apnay8wumntfkvud64ov7fcf","arrow_match_name_frag"); +try { + UNSUPPORTED("cw8t22aa6zs16jqowqjjkzywg"); // static char *arrow_match_name_frag(char *name, arrowname_t * arrownames, int *flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ij5y28mkncrjeiqcpshx0eb6"); // arrowname_t *arrowname; +UNSUPPORTED("1tn1krtup6qe1swed3vb7rsyl"); // int namelen = 0; +UNSUPPORTED("c0vrdgjia18jvvw01f49sovz5"); // char *rest = name; +UNSUPPORTED("ecwk85uixpdt1xvlwr1rw58a4"); // for (arrowname = arrownames; arrowname->name; arrowname++) { +UNSUPPORTED("9h58czuqvp8q45izpqt7dzgi6"); // namelen = strlen(arrowname->name); +UNSUPPORTED("9fd8hjdir8m00yuhi9anrrnos"); // if (strncmp(name, arrowname->name, namelen) == 0) { +UNSUPPORTED("ag3b2jixanemgvefu1c01mp6u"); // *flag |= arrowname->type; +UNSUPPORTED("1h43j4ja8m8uxuvay0jg33ukm"); // rest += namelen; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bbweh79ihpurvsz097xab3u5k"); // return rest; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("3apnay8wumntfkvud64ov7fcf","arrow_match_name_frag"); +} +} + + + + +//3 b669zec8aznq4obnil98j5lby +// static char *arrow_match_shape(char *name, int *flag) +public static CString arrow_match_shape(CString name, int flag[]) { +ENTERING("b669zec8aznq4obnil98j5lby","arrow_match_shape"); +try { + CString next, rest; + int f[] = new int[] {0}; + rest = arrow_match_name_frag(name, Z._().Arrowsynonyms, f); +UNSUPPORTED("304yfmlt3qwn4zydpx1hgmf5o"); // if (rest == name) { +UNSUPPORTED("8vxyvy38lzpbd83cu26nejaan"); // do { +UNSUPPORTED("do0zgfzipmk0sgv0q0u14es1c"); // next = rest; +UNSUPPORTED("csdu3mgjv4ya6xqk2bisko4gp"); // rest = arrow_match_name_frag(next, Arrowmods, &f); +UNSUPPORTED("17cxbrtqid90xrrl75cvyvhs5"); // } while (next != rest); +UNSUPPORTED("9u4q5zwdkpdava55p9xyg8xph"); // rest = arrow_match_name_frag(rest, Arrownames, &f); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("98pvjlaju0ufz56v1jcwyelw6"); // if (f && !(f & ((1 << 4) - 1))) +UNSUPPORTED("2mly07gipiope02mgflzcie3e"); // f |= 1; +UNSUPPORTED("48w47t8z0k3lb7rxdlbd6n7p9"); // *flag |= f; +UNSUPPORTED("bbweh79ihpurvsz097xab3u5k"); // return rest; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("b669zec8aznq4obnil98j5lby","arrow_match_shape"); +} +} + + + + +//3 2pveqb5qcgfxcqp410ub942eg +// static void arrow_match_name(char *name, int *flag) +public static void arrow_match_name(CString name, int flag[]) { +ENTERING("2pveqb5qcgfxcqp410ub942eg","arrow_match_name"); +try { + CString rest = name; + CString next; + int i, f; + flag[0] = 0; + LOG2("Skipping arrow_match_name"); +} finally { +LEAVING("2pveqb5qcgfxcqp410ub942eg","arrow_match_name"); +} +} + + + + +//3 2szgwtfieaw58pea2ohjyu8ea +// void arrow_flags(Agedge_t * e, int *sflag, int *eflag) +public static void arrow_flags(Agedge_s e, int sflag[], int eflag[]) { +ENTERING("2szgwtfieaw58pea2ohjyu8ea","arrow_flags"); +try { + CString attr; + arrowdir_t arrowdir; + sflag[0] = (0); + eflag[0] = agisdirected(agraphof(e)) ? 1 : (0); + if (Z._().E_dir!=null && ((attr = agxget(e, Z._().E_dir))).charAt(0)!='\0') { +UNSUPPORTED("em7x45v09orjeey5u06gf9b4s"); // for (arrowdir = Arrowdirs; arrowdir->dir; arrowdir++) { +UNSUPPORTED("dhaookuw0a1xqmh07lldcvlgi"); // if ((*(attr)==*(arrowdir->dir)&&!strcmp(attr,arrowdir->dir))) { +UNSUPPORTED("1d32qbc447n7nmmvedj3bnhr4"); // *sflag = arrowdir->sflag; +UNSUPPORTED("4bwlkonvn34iwi5ea1o8zov3o"); // *eflag = arrowdir->eflag; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } + if (Z._().E_arrowhead!=null && (eflag[0] == 1) && ((attr = agxget(e,Z._(). E_arrowhead))).charAt(0)!='\0') + arrow_match_name(attr, eflag); + if (Z._().E_arrowtail!=null && (sflag[0] == 1) && ((attr = agxget(e, Z._().E_arrowtail))).charAt(0)!='\0') + arrow_match_name(attr, sflag); + if (ED_conc_opp_flag(e)) { +UNSUPPORTED("1p2usipxeqlorwroqo37t3yfy"); // edge_t *f; +UNSUPPORTED("6ne3pu2bnhx6tyx81t4td4up6"); // int s0, e0; +UNSUPPORTED("8vccx8sm1c228dqm7l1jm2hfs"); // /* pick up arrowhead of opposing edge */ +UNSUPPORTED("cu21qrxyz93ly7l96af2gcsle"); // f = (agedge(agraphof(aghead(e)),aghead(e),agtail(e),NULL,0)); +UNSUPPORTED("9u6scg3h7baww90tcykvjhajo"); // arrow_flags(f, &s0, &e0); +UNSUPPORTED("157il4mnbenpon7knxfdb4fwb"); // *eflag = *eflag | s0; +UNSUPPORTED("7wucod5xwp24vblpcbjbmmcq1"); // *sflag = *sflag | e0; + } +} finally { +LEAVING("2szgwtfieaw58pea2ohjyu8ea","arrow_flags"); +} +} + + + + +//3 1yk5wl46i7rlzcern0tefd24s +// double arrow_length(edge_t * e, int flag) +public static double arrow_length(Agedge_s e, int flag) { +ENTERING("1yk5wl46i7rlzcern0tefd24s","arrow_length"); +try { + __ptr__ arrowtype; + double lenfact = 0.0; + int f, i; + for (i = 0; i < 4; i++) { + /* we don't simply index with flag because arrowtypes are not necessarily sorted */ + f = (flag >> (i * 8)) & ((1 << 4) - 1); + for (arrowtype = Z._().Arrowtypes.asPtr(); arrowtype.getPtr("gen")!=null; arrowtype=arrowtype.plus(1)) { + if (f == arrowtype.getInt("type")) { + lenfact += arrowtype.getDouble("lenfact"); + break; + } + } + } + /* The original was missing the factor E_arrowsz, but I believe it + should be here for correct arrow clipping */ + return 10. * lenfact * late_double(e, Z._().E_arrowsz, 1.0, 0.0); +} finally { +LEAVING("1yk5wl46i7rlzcern0tefd24s","arrow_length"); +} +} + + + + +//3 7ymcsnwqkr1crisrga0kezh1f +// static boolean inside(inside_t * inside_context, pointf p) +public static boolean inside(inside_t inside_context, final __struct__ p) { +// WARNING!! STRUCT +return inside_w_(inside_context, p.copy()); +} +private static boolean inside_w_(inside_t inside_context, final __struct__ p) { +ENTERING("7ymcsnwqkr1crisrga0kezh1f","inside"); +try { + return DIST2(p, inside_context.getPtr("a.p").plus(0).getPtr()) <= inside_context.getPtr("a.r").getDouble(); +} finally { +LEAVING("7ymcsnwqkr1crisrga0kezh1f","inside"); +} +} + + + + +//3 9eellwhg4gsa2pdszpeqihs2d +// int arrowEndClip(edge_t* e, pointf * ps, int startp, int endp, bezier * spl, int eflag) +public static int arrowEndClip(Agedge_s e, __ptr__ ps, int startp, int endp, bezier spl, int eflag) { +ENTERING("9eellwhg4gsa2pdszpeqihs2d","arrowEndClip"); +try { + final __struct__ inside_context = __struct__.from(inside_t.class); + final __array_of_struct__ sp = __array_of_struct__.malloc(pointf.class, 4); + double elen; + MutableDouble elen2 = new MutableDouble(0); + elen = arrow_length(e, eflag); + elen2.setValue(elen * elen); + spl.setInt("eflag", eflag); + spl.setStruct("ep", ps.plus(endp + 3).getStruct()); + if (endp > startp && DIST2(ps.plus(endp).getPtr(), ps.plus(endp + 3).getPtr()) < elen2.getValue()) { + endp -= 3; + } + sp.plus(3).setStruct(ps.plus(endp).getStruct()); + sp.plus(2).setStruct(ps.plus(endp+1).getStruct()); + sp.plus(1).setStruct(ps.plus(endp+2).getStruct()); + sp.plus(0).setStruct(spl.getStruct("ep")); + /* ensure endpoint starts inside */ + inside_context.setPtr("a.p", sp.plus(0).asPtr()); + inside_context.setPtr("a.r", elen2.amp()); + bezier_clip(inside_context.amp(), function(arrows__c.class, "inside"), sp, NOT(false)); + ps.plus(endp).setStruct(sp.plus(3).getStruct()); + ps.plus(endp+1).setStruct(sp.plus(2).getStruct()); + ps.plus(endp+2).setStruct(sp.plus(1).getStruct()); + ps.plus(endp+3).setStruct(sp.plus(0).getStruct()); + return endp; +} finally { +LEAVING("9eellwhg4gsa2pdszpeqihs2d","arrowEndClip"); +} +} + + + + +//3 q7y4oxn0paexbgynmtg2zmiv +// int arrowStartClip(edge_t* e, pointf * ps, int startp, int endp, bezier * spl, int sflag) +public static Object arrowStartClip(Object... arg) { +UNSUPPORTED("7yvz6xdsdp7elmx244pl0gazz"); // int arrowStartClip(edge_t* e, pointf * ps, int startp, +UNSUPPORTED("8k5ruwl8qgfm72sur688h274s"); // int endp, bezier * spl, int sflag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("114lbsab8twbq15luo36j31q2"); // inside_t inside_context; +UNSUPPORTED("96gdnugus7n28odgvctx3xuls"); // pointf sp[4]; +UNSUPPORTED("7igs7akkknm38zfqq5ws6i8e1"); // double slen, slen2; +UNSUPPORTED("hda5ej3tl5f5yl2yv519fh9g"); // slen = arrow_length(e, sflag); +UNSUPPORTED("cn1u0njiskbqzm1ytxc60hvhn"); // slen2 = slen * slen; +UNSUPPORTED("4wg1jjuy1tzmozuyrpld67lyo"); // spl->sflag = sflag, spl->sp = ps[startp]; +UNSUPPORTED("3kwfclot4ahgcgki9f7gyz7hp"); // if (endp > startp && DIST2(ps[startp], ps[startp + 3]) < slen2) { +UNSUPPORTED("ee4c7giu5c5wj9p89yhrftlm4"); // startp += 3; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("58e2ypxz9985jahejomcb3q9c"); // sp[0] = ps[startp + 3]; +UNSUPPORTED("q6t1k12ql53bpk2kf68hsi5y"); // sp[1] = ps[startp + 2]; +UNSUPPORTED("76tg0a3uda3p8svf251tnr0yi"); // sp[2] = ps[startp + 1]; +UNSUPPORTED("agxcxgo6w8v0tipza7n9c05xt"); // sp[3] = spl->sp; /* ensure endpoint starts inside */ +UNSUPPORTED("58ncmwp330cx9zr4kpm4xoidb"); // inside_context.a.p = &sp[3]; +UNSUPPORTED("80bq4dpb1ulq3sd3d5z3lpmub"); // inside_context.a.r = &slen2; +UNSUPPORTED("90ahfjp59dwgkcrmlb5p9li27"); // bezier_clip(&inside_context, inside, sp, 0); +UNSUPPORTED("7wfhuqxd87aw2hxd3hl4izmjh"); // ps[startp] = sp[3]; +UNSUPPORTED("3olq3bup4vl7pzvxu3imphze9"); // ps[startp + 1] = sp[2]; +UNSUPPORTED("dm3yq6cmfbrst02xdf1yqfx3j"); // ps[startp + 2] = sp[1]; +UNSUPPORTED("49s7487urjz20iy0mbbgjvrjh"); // ps[startp + 3] = sp[0]; +UNSUPPORTED("4acg3jbqtner5sse4kbl0829m"); // return startp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5i0vg914q5v5dzz5vo7rg9omc +// void arrowOrthoClip(edge_t* e, pointf* ps, int startp, int endp, bezier* spl, int sflag, int eflag) +public static Object arrowOrthoClip(Object... arg) { +UNSUPPORTED("5cmga0193q90gs5y2r0l9ekgq"); // void arrowOrthoClip(edge_t* e, pointf* ps, int startp, int endp, bezier* spl, int sflag, int eflag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("y7yudkjc31udfiam6z6lkpyz"); // pointf p, q, r, s, t; +UNSUPPORTED("3kkc3p6yj8romhqyooa86wcf7"); // double d, tlen, hlen, maxd; +UNSUPPORTED("c69aoxg5blb5c27rwb7uvguna"); // if (sflag && eflag && (endp == startp)) { /* handle special case of two arrows on a single segment */ +UNSUPPORTED("eb6qp4f6c1liqz5gv8yr4nt2u"); // p = ps[endp]; +UNSUPPORTED("ecphms6syi9sh7jtisdvhb8hr"); // q = ps[endp+3]; +UNSUPPORTED("2pzsi9r63yv2o8qeounzv6cny"); // tlen = arrow_length (e, sflag); +UNSUPPORTED("f4d86okjchj0qyg2roq13hufh"); // hlen = arrow_length (e, eflag); +UNSUPPORTED("3sbhjktcu1u1avngc5ej62mw4"); // d = DIST(p, q); +UNSUPPORTED("bsdcbs5e8tkm1802lidu0jtw8"); // if (hlen + tlen >= d) { +UNSUPPORTED("8gpoj60hh2teibwc83s0ii79w"); // hlen = tlen = d/3.0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6xtkcedj7la7fqplc0unqj0wx"); // if (p.y == q.y) { /* horz segment */ +UNSUPPORTED("9n0q5j1nqa19z0zoz3mpmwpdv"); // s.y = t.y = p.y; +UNSUPPORTED("c2tle7mztwggexoad4drqjw0a"); // if (p.x < q.x) { +UNSUPPORTED("183kgzstrmgynznfkfj0jl3df"); // t.x = q.x - hlen; +UNSUPPORTED("7cugpgpm4lyr66kkhauqj5qvy"); // s.x = p.x + tlen; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("a8lrkw50xbjo3ntsv0r1mz5i9"); // t.x = q.x + hlen; +UNSUPPORTED("37zp6lexzsbm2vomf22x7i5r"); // s.x = p.x - tlen; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4l6yfu81669thfh19tmcn44pu"); // else { /* vert segment */ +UNSUPPORTED("bc0n1oxhmb3wgphgm1w4n9dz1"); // s.x = t.x = p.x; +UNSUPPORTED("d2pzq44lkkxam6rx01xnozquf"); // if (p.y < q.y) { +UNSUPPORTED("5k5qyffqi7gacnu4jwl6efngx"); // t.y = q.y - hlen; +UNSUPPORTED("7ppaznbfc8awmm6e9d9qzw4ms"); // s.y = p.y + tlen; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("8ohhvcqa5v7oor1gbpznb6faq"); // t.y = q.y + hlen; +UNSUPPORTED("4j6guu6e5ddqobe77kt7sbmjq"); // s.y = p.y - tlen; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("a4d4fgiq4l3sbeb9ud8dowkby"); // ps[endp] = ps[endp + 1] = s; +UNSUPPORTED("db740uoo9pfyknnmi2yx0glgb"); // ps[endp + 2] = ps[endp + 3] = t; +UNSUPPORTED("ewajj4utlr95mfmaswtc9yeiv"); // spl->eflag = eflag, spl->ep = p; +UNSUPPORTED("9bgf1pn9yx1vlolgcjos2emsl"); // spl->sflag = sflag, spl->sp = q; +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5zse8mf1iyqtzzlq2txqcym6x"); // if (eflag) { +UNSUPPORTED("bpf9snlwegftq8d78l9hsz76b"); // hlen = arrow_length(e, eflag); +UNSUPPORTED("eb6qp4f6c1liqz5gv8yr4nt2u"); // p = ps[endp]; +UNSUPPORTED("ecphms6syi9sh7jtisdvhb8hr"); // q = ps[endp+3]; +UNSUPPORTED("3sbhjktcu1u1avngc5ej62mw4"); // d = DIST(p, q); +UNSUPPORTED("9b0ae4jocdkvqt8r3iw39yf5d"); // maxd = 0.9*d; +UNSUPPORTED("bwzkrhk431iwhs6c467tb0yh9"); // if (hlen >= maxd) { /* arrow too long */ +UNSUPPORTED("23uwvl5a8msik1u1crb262nqj"); // hlen = maxd; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6xtkcedj7la7fqplc0unqj0wx"); // if (p.y == q.y) { /* horz segment */ +UNSUPPORTED("a851ewci39wssny4nn99f4nmr"); // r.y = p.y; +UNSUPPORTED("a2dyb0em7hwd4qdx1u0tuc8pl"); // if (p.x < q.x) r.x = q.x - hlen; +UNSUPPORTED("90ksto8lyojedi0p77l4zm7x"); // else r.x = q.x + hlen; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4l6yfu81669thfh19tmcn44pu"); // else { /* vert segment */ +UNSUPPORTED("4rh9lai2dcsutwg48bb2qljyg"); // r.x = p.x; +UNSUPPORTED("6gnp9tso58zn1rn4j7jv3i1y0"); // if (p.y < q.y) r.y = q.y - hlen; +UNSUPPORTED("3wd6fw8km4tp6a1p9ijk343ih"); // else r.y = q.y + hlen; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bxxlk6noh1kzyi93fptcz29j4"); // ps[endp + 1] = p; +UNSUPPORTED("d3kionq4ycqr87orc5vkdnse0"); // ps[endp + 2] = ps[endp + 3] = r; +UNSUPPORTED("4uwxjmxybnuriwua5xoo17bfa"); // spl->eflag = eflag; +UNSUPPORTED("25oo9o1uy5fisoodt43sio6zx"); // spl->ep = q; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3297fx8lk8bjyg998l9ujeeph"); // if (sflag) { +UNSUPPORTED("5slqgq5wsgplyy9uj9mg5pkrc"); // tlen = arrow_length(e, sflag); +UNSUPPORTED("ayxhimnpo6p08kshlux75qpcu"); // p = ps[startp]; +UNSUPPORTED("2ydx1urmjnn1tgx6ffzsvwimx"); // q = ps[startp+3]; +UNSUPPORTED("3sbhjktcu1u1avngc5ej62mw4"); // d = DIST(p, q); +UNSUPPORTED("9b0ae4jocdkvqt8r3iw39yf5d"); // maxd = 0.9*d; +UNSUPPORTED("1uya1cfbkj8b6j38zbvdxmgrq"); // if (tlen >= maxd) { /* arrow too long */ +UNSUPPORTED("3ydle9u127f7saxiibosc2lxs"); // tlen = maxd; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6xtkcedj7la7fqplc0unqj0wx"); // if (p.y == q.y) { /* horz segment */ +UNSUPPORTED("a851ewci39wssny4nn99f4nmr"); // r.y = p.y; +UNSUPPORTED("7xq2f46jfu6rsd83fqyr71z26"); // if (p.x < q.x) r.x = p.x + tlen; +UNSUPPORTED("8gtrjqabiq8x8jl0j2eveiugg"); // else r.x = p.x - tlen; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4l6yfu81669thfh19tmcn44pu"); // else { /* vert segment */ +UNSUPPORTED("4rh9lai2dcsutwg48bb2qljyg"); // r.x = p.x; +UNSUPPORTED("es4i2rg7sahthpreieu5hcwl7"); // if (p.y < q.y) r.y = p.y + tlen; +UNSUPPORTED("26o5nwhklplaxveikjpxzxoom"); // else r.y = p.y - tlen; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5pnx91gtz1gahdprf0syc4yk5"); // ps[startp] = ps[startp + 1] = r; +UNSUPPORTED("3e3iux8uecaf6eu2s9q46clr5"); // ps[startp + 2] = q; +UNSUPPORTED("bmeeipd0o72kslox40628z9gj"); // spl->sflag = sflag; +UNSUPPORTED("dwq656v3u8zmbqdetlo0wmyeb"); // spl->sp = p; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b7nm38od2nxotpyzxg0ychqdb +// static void arrow_type_normal(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +public static Object arrow_type_normal(Object... arg) { +UNSUPPORTED("bk3aihjbdtkitpdvvtmzbt2zu"); // static void arrow_type_normal(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4z3ehq6q8ofvyjy4r4mrg86cl"); // pointf q, v, a[5]; +UNSUPPORTED("5qr741c2e1pdivv0bbjcr6cik"); // double arrowwidth; +UNSUPPORTED("9gahmv6psjnccqesq7xt6q6hx"); // arrowwidth = 0.35; +UNSUPPORTED("bih7b1ef9lfxy4uy4o07ae3bk"); // if (penwidth > 4) +UNSUPPORTED("o3yn0730zlzconddqarivq05"); // arrowwidth *= penwidth / 4; +UNSUPPORTED("949z3586m713okvlu1ymyw1us"); // v.x = -u.y * arrowwidth; +UNSUPPORTED("c8xqr3hfd006yf1uuh47ndi71"); // v.y = u.x * arrowwidth; +UNSUPPORTED("eh1wtktxp1goqc7akjgyqf00j"); // q.x = p.x + u.x; +UNSUPPORTED("3op9xoxcy2m0v7q790ta7f9hl"); // q.y = p.y + u.y; +UNSUPPORTED("eh6fh3kco3kvywuta8d8yb5v0"); // if (flag & (1<<(4+1))) { +UNSUPPORTED("3by9fwhdnq30ll5nt8qbfwx0p"); // a[0] = a[4] = p; +UNSUPPORTED("4ut2bmvsgdsemxiv8urham7m3"); // a[1].x = p.x - v.x; +UNSUPPORTED("asa1ffrrxd6dkzm1sdamgofuu"); // a[1].y = p.y - v.y; +UNSUPPORTED("60oc061ln68pvrg7zp8s3ncog"); // a[2] = q; +UNSUPPORTED("591i8kbz6r8bskar4gy0vpsus"); // a[3].x = p.x + v.x; +UNSUPPORTED("7i9sj4qz5f52w1wiz47bo6dv2"); // a[3].y = p.y + v.y; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("6ofxgqmmh2ikk8818bf8aw2mw"); // a[0] = a[4] = q; +UNSUPPORTED("4l3g4pagkn0dto3bwi2e0bukd"); // a[1].x = q.x - v.x; +UNSUPPORTED("9wv7w8vdiedhkfehzqwyyv897"); // a[1].y = q.y - v.y; +UNSUPPORTED("d0mui3zxt1cx6mx5wfax35iah"); // a[2] = p; +UNSUPPORTED("b5arwmpck5jtms8g1zgnojj5o"); // a[3].x = q.x + v.x; +UNSUPPORTED("3viyneb6qkp0alwghd7mo06cc"); // a[3].y = q.y + v.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3kac8n2z06u2z5pqkm7c4z4nl"); // if (flag & (1<<(4+2))) +UNSUPPORTED("52punwd4fhhq1arhez8cuwvam"); // gvrender_polygon(job, a, 3, !(flag & (1<<(4+0)))); +UNSUPPORTED("9i420px3t1z2sosclutiev22e"); // else if (flag & (1<<(4+3))) +UNSUPPORTED("gu9pg6c0d0uzlztdiq2o96zh"); // gvrender_polygon(job, &a[2], 3, !(flag & (1<<(4+0)))); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("7c6e70h4efa2wpa155lfy3er5"); // gvrender_polygon(job, &a[1], 3, !(flag & (1<<(4+0)))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b6y46a44yguy7zuhgxukxnq79 +// static void arrow_type_crow(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +public static Object arrow_type_crow(Object... arg) { +UNSUPPORTED("6rtaogz992ixfhc4qfzpl9pw8"); // static void arrow_type_crow(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1hutab8l2bf18ywdh16qls7ix"); // pointf m, q, v, w, a[9]; +UNSUPPORTED("9riilhm03el22oazbpvsntuyd"); // double arrowwidth, shaftwidth; +UNSUPPORTED("3pjnxs55moxekjdkzcgmes60h"); // arrowwidth = 0.45; +UNSUPPORTED("7k8ulzafyheqq2wcj2ued1mll"); // if (penwidth > (4 * arrowsize) && (flag & (1<<(4+1)))) +UNSUPPORTED("85aamjzbblwnk2bp9jvnetpmf"); // arrowwidth *= penwidth / (4 * arrowsize); +UNSUPPORTED("ykk0490b4cs8a1v9gpqx95we"); // shaftwidth = 0; +UNSUPPORTED("61i60vknj2akb0ojgfdcnjjyh"); // if (penwidth > 1 && (flag & (1<<(4+1)))) +UNSUPPORTED("ak0a6438e5b0b2nu2wl572f6d"); // shaftwidth = 0.05 * (penwidth - 1) / arrowsize; /* arrowsize to cancel the arrowsize term already in u */ +UNSUPPORTED("949z3586m713okvlu1ymyw1us"); // v.x = -u.y * arrowwidth; +UNSUPPORTED("c8xqr3hfd006yf1uuh47ndi71"); // v.y = u.x * arrowwidth; +UNSUPPORTED("56jq7ic46net8ort3ve4st2tw"); // w.x = -u.y * shaftwidth; +UNSUPPORTED("ampfe31k0mn8vsflzy5cx4lgv"); // w.y = u.x * shaftwidth; +UNSUPPORTED("eh1wtktxp1goqc7akjgyqf00j"); // q.x = p.x + u.x; +UNSUPPORTED("3op9xoxcy2m0v7q790ta7f9hl"); // q.y = p.y + u.y; +UNSUPPORTED("cfk5fnc73y4ey68iwqxlsr7u9"); // m.x = p.x + u.x * 0.5; +UNSUPPORTED("2mtpxqz0h7jsb7bmao9g1vkar"); // m.y = p.y + u.y * 0.5; +UNSUPPORTED("5rymactsr9099qy69qf1bkwdr"); // if (flag & (1<<(4+1))) { /* vee */ +UNSUPPORTED("4s8pxkc9kbvhabi2gbpxic5sm"); // a[0] = a[8] = p; +UNSUPPORTED("4l3g4pagkn0dto3bwi2e0bukd"); // a[1].x = q.x - v.x; +UNSUPPORTED("9wv7w8vdiedhkfehzqwyyv897"); // a[1].y = q.y - v.y; +UNSUPPORTED("6rqmfaf4g98cg0t1qaax08e69"); // a[2].x = m.x - w.x; +UNSUPPORTED("1nwyu905ao88kvq8pgnfwerf5"); // a[2].y = m.y - w.y; +UNSUPPORTED("9z1frd2w5h9zvfo4pszqlzp30"); // a[3].x = q.x - w.x; +UNSUPPORTED("1s86b9xef6phy3gt70ojgn6ip"); // a[3].y = q.y - w.y; +UNSUPPORTED("4zd6xleeq5n1l2zznquvnlw7v"); // a[4] = q; +UNSUPPORTED("2wb1104b1x08j7tecfcwk25uj"); // a[5].x = q.x + w.x; +UNSUPPORTED("6tq7rnp0h0p9xtxibo13g8v3t"); // a[5].y = q.y + w.y; +UNSUPPORTED("7byonl28yipw4lk1syuuj51it"); // a[6].x = m.x + w.x; +UNSUPPORTED("lwb6vnlr2dq5ysijij21wbgl"); // a[6].y = m.y + w.y; +UNSUPPORTED("eh4rkk1h3ciybh0u0hgehkdxx"); // a[7].x = q.x + v.x; +UNSUPPORTED("bxhyoes561jf42tw73tjj33sj"); // a[7].y = q.y + v.y; +UNSUPPORTED("54abbljqrd361peswxjtohjg0"); // } else { /* crow */ +UNSUPPORTED("5i9r1mehhwkkn8ojo8csm0piw"); // a[0] = a[8] = q; +UNSUPPORTED("4ut2bmvsgdsemxiv8urham7m3"); // a[1].x = p.x - v.x; +UNSUPPORTED("asa1ffrrxd6dkzm1sdamgofuu"); // a[1].y = p.y - v.y; +UNSUPPORTED("6rqmfaf4g98cg0t1qaax08e69"); // a[2].x = m.x - w.x; +UNSUPPORTED("1nwyu905ao88kvq8pgnfwerf5"); // a[2].y = m.y - w.y; +UNSUPPORTED("5yhpyznqsxb2ga5si6phvakqg"); // a[3].x = p.x; +UNSUPPORTED("3eko75yr046fkm2yulawhw236"); // a[3].y = p.y; +UNSUPPORTED("7nofpsbtwg78gooeo8makz5bb"); // a[4] = p; +UNSUPPORTED("dl1jq9xglce6cfpe03mzu3p22"); // a[5].x = p.x; +UNSUPPORTED("8kqrguezr1d2awpazfz88cw5"); // a[5].y = p.y; +UNSUPPORTED("7byonl28yipw4lk1syuuj51it"); // a[6].x = m.x + w.x; +UNSUPPORTED("lwb6vnlr2dq5ysijij21wbgl"); // a[6].y = m.y + w.y; +UNSUPPORTED("egqlf021ldci9s31jrpk2m1pk"); // a[7].x = p.x + v.x; +UNSUPPORTED("60b7k5jzqw1ndaxnese0cnx2t"); // a[7].y = p.y + v.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3kac8n2z06u2z5pqkm7c4z4nl"); // if (flag & (1<<(4+2))) +UNSUPPORTED("8vyuq79k664wims1n1ltnudbt"); // gvrender_polygon(job, a, 6, 1); +UNSUPPORTED("9i420px3t1z2sosclutiev22e"); // else if (flag & (1<<(4+3))) +UNSUPPORTED("ap1vbm2kxsjtcp3pezwq2jwln"); // gvrender_polygon(job, &a[3], 6, 1); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("d0npn4cmn6nd0ytaww7u7ghrw"); // gvrender_polygon(job, a, 9, 1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e8w54seijyii7km6zl3sivjpu +// static void arrow_type_gap(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +public static Object arrow_type_gap(Object... arg) { +UNSUPPORTED("anlswsxb36i1znu2805bu47t2"); // static void arrow_type_gap(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("brf7jajkh244o41ekaw2tyora"); // pointf q, a[2]; +UNSUPPORTED("eh1wtktxp1goqc7akjgyqf00j"); // q.x = p.x + u.x; +UNSUPPORTED("3op9xoxcy2m0v7q790ta7f9hl"); // q.y = p.y + u.y; +UNSUPPORTED("dhfgavaa2js7qt2ciwujmmrpv"); // a[0] = p; +UNSUPPORTED("7b2bztb06255tydz21zauq8qq"); // a[1] = q; +UNSUPPORTED("9hbag2bcttyxj9vas0kvof5qp"); // gvrender_polyline(job, a, 2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eg7sgk8umcqfthbo1t0plohbt +// static void arrow_type_tee(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +public static Object arrow_type_tee(Object... arg) { +UNSUPPORTED("9u6pwrzl9t5i0kfvnwn7uufrp"); // static void arrow_type_tee(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1hwyzphi1ihi2lx3engtta1qa"); // pointf m, n, q, v, a[4]; +UNSUPPORTED("e8sltpxlu9ln6k3zn49u46zau"); // v.x = -u.y; +UNSUPPORTED("1wxxf464go09wrecpyo3y2k25"); // v.y = u.x; +UNSUPPORTED("eh1wtktxp1goqc7akjgyqf00j"); // q.x = p.x + u.x; +UNSUPPORTED("3op9xoxcy2m0v7q790ta7f9hl"); // q.y = p.y + u.y; +UNSUPPORTED("61cj5vg96f8j145swk5v2nz5a"); // m.x = p.x + u.x * 0.2; +UNSUPPORTED("25zmgst5hb9ya664up64k51tt"); // m.y = p.y + u.y * 0.2; +UNSUPPORTED("9wrt18toae33nd3tmifyahyt8"); // n.x = p.x + u.x * 0.6; +UNSUPPORTED("1151hzer2rx55qz715on0gexs"); // n.y = p.y + u.y * 0.6; +UNSUPPORTED("4ihm8x9khys2bcoivyqzf4dth"); // a[0].x = m.x + v.x; +UNSUPPORTED("941h30wfi9u1c17vhabko438l"); // a[0].y = m.y + v.y; +UNSUPPORTED("7qtkiyjyg6pzhhoyslv8pmp1q"); // a[1].x = m.x - v.x; +UNSUPPORTED("24iwwf6paxfgux41w93obhwp4"); // a[1].y = m.y - v.y; +UNSUPPORTED("314g2i9mvbz4um5y7oiyuldvw"); // a[2].x = n.x - v.x; +UNSUPPORTED("7ebhg7671hxu0useo7ewi26kn"); // a[2].y = n.y - v.y; +UNSUPPORTED("8mc60oc3vsykq69a5zb6h72u4"); // a[3].x = n.x + v.x; +UNSUPPORTED("6q0rldgbg1rfr4skqzq0v099f"); // a[3].y = n.y + v.y; +UNSUPPORTED("9u73bl75ej5xy9pe46nac6ih5"); // if (flag & (1<<(4+2))) { +UNSUPPORTED("6omh7vjmab159riw0fejjpwk0"); // a[0] = m; +UNSUPPORTED("3w139dwzvrzrghf5w8hox1qen"); // a[3] = n; +UNSUPPORTED("2u9qb4zvcio06wzd2nb3bjrs4"); // } else if (flag & (1<<(4+3))) { +UNSUPPORTED("7g1lyxw6yo0ycv1l688mehedr"); // a[1] = m; +UNSUPPORTED("72r460jtb2id4k8ri9sdwuqy4"); // a[2] = n; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("15b4dosag4vcx31fnicxczw81"); // gvrender_polygon(job, a, 4, 1); +UNSUPPORTED("dhfgavaa2js7qt2ciwujmmrpv"); // a[0] = p; +UNSUPPORTED("7b2bztb06255tydz21zauq8qq"); // a[1] = q; +UNSUPPORTED("9hbag2bcttyxj9vas0kvof5qp"); // gvrender_polyline(job, a, 2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3hdgy0baje1akb7fjw9yovjwz +// static void arrow_type_box(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +public static Object arrow_type_box(Object... arg) { +UNSUPPORTED("4u7yj9rhqxdonlyd5taprxs28"); // static void arrow_type_box(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5lmvyh791uemv9zn9qfakp4qb"); // pointf m, q, v, a[4]; +UNSUPPORTED("ep2toe83b4kkoeb00wqwru73t"); // v.x = -u.y * 0.4; +UNSUPPORTED("8c686kltb5ewlt4qkf7ljmmc8"); // v.y = u.x * 0.4; +UNSUPPORTED("66oe3r3caie8ddr9mgkqkk0r3"); // m.x = p.x + u.x * 0.8; +UNSUPPORTED("1mowxzv768r12lzc4blbkl873"); // m.y = p.y + u.y * 0.8; +UNSUPPORTED("eh1wtktxp1goqc7akjgyqf00j"); // q.x = p.x + u.x; +UNSUPPORTED("3op9xoxcy2m0v7q790ta7f9hl"); // q.y = p.y + u.y; +UNSUPPORTED("apz7b1n6lnsr7u47d661qkf7r"); // a[0].x = p.x + v.x; +UNSUPPORTED("eqdvtg0j9avxbrpfozktn2358"); // a[0].y = p.y + v.y; +UNSUPPORTED("f0vjjdkq6txr0nrc7xjvcxpa9"); // a[1].x = p.x - v.x; +UNSUPPORTED("4e5dina8t36xvh3bfr8y98a9m"); // a[1].y = p.y - v.y; +UNSUPPORTED("4npxatuz83si51hcyaeshl3x3"); // a[2].x = m.x - v.x; +UNSUPPORTED("br2saagm87ysykkosh9e0xjab"); // a[2].y = m.y - v.y; +UNSUPPORTED("8kb1ee4fjdywi21l0xydfefb4"); // a[3].x = m.x + v.x; +UNSUPPORTED("coalhyxqy4kj07zi50yoc48fy"); // a[3].y = m.y + v.y; +UNSUPPORTED("9u73bl75ej5xy9pe46nac6ih5"); // if (flag & (1<<(4+2))) { +UNSUPPORTED("5fbtaluh9dcnwehl25ff3obkc"); // a[0] = p; +UNSUPPORTED("9bjq8dynp7r5d7sbwtodjucxc"); // a[3] = m; +UNSUPPORTED("2u9qb4zvcio06wzd2nb3bjrs4"); // } else if (flag & (1<<(4+3))) { +UNSUPPORTED("e2cqpiig8ac96q5ovh3nyr7t1"); // a[1] = p; +UNSUPPORTED("4uekqgdzqn4bhxlllod39w27b"); // a[2] = m; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7y7z0oxvzng5clk605r3p4zz8"); // gvrender_polygon(job, a, 4, !(flag & (1<<(4+0)))); +UNSUPPORTED("1p9lzfwbik1778u5gdeqpxm31"); // a[0] = m; +UNSUPPORTED("7b2bztb06255tydz21zauq8qq"); // a[1] = q; +UNSUPPORTED("9hbag2bcttyxj9vas0kvof5qp"); // gvrender_polyline(job, a, 2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 equc1q4r6wcoe2pwwnk2u01og +// static void arrow_type_diamond(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +public static Object arrow_type_diamond(Object... arg) { +UNSUPPORTED("4wg2b1eyit9ve72uqrds41jk2"); // static void arrow_type_diamond(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7ww1c4ncz55av20zgtif7choz"); // pointf q, r, v, a[5]; +UNSUPPORTED("1xsjvcsxdwie2v666ry6ihghq"); // v.x = -u.y / 3.; +UNSUPPORTED("9xea2lahdijfjgz0skow4ps5m"); // v.y = u.x / 3.; +UNSUPPORTED("4p3vbsracdkwmi6dly3odymvb"); // r.x = p.x + u.x / 2.; +UNSUPPORTED("7y5j7ecroy4fci5jzh6mk2sl9"); // r.y = p.y + u.y / 2.; +UNSUPPORTED("eh1wtktxp1goqc7akjgyqf00j"); // q.x = p.x + u.x; +UNSUPPORTED("3op9xoxcy2m0v7q790ta7f9hl"); // q.y = p.y + u.y; +UNSUPPORTED("8n36qnwzpe2hugs30s3am1zsg"); // a[0] = a[4] = q; +UNSUPPORTED("e97x8nztsokegzu9u2tgwssgi"); // a[1].x = r.x + v.x; +UNSUPPORTED("3yv64xfvqgiyturtkz9pnkbtd"); // a[1].y = r.y + v.y; +UNSUPPORTED("3isw1pofpfafh53xdqo1gmbrr"); // a[2] = p; +UNSUPPORTED("655732redrvi9o3a3dyjh90af"); // a[3].x = r.x - v.x; +UNSUPPORTED("55u2biopicz70n81k5ml5lzjp"); // a[3].y = r.y - v.y; +UNSUPPORTED("3kac8n2z06u2z5pqkm7c4z4nl"); // if (flag & (1<<(4+2))) +UNSUPPORTED("gu9pg6c0d0uzlztdiq2o96zh"); // gvrender_polygon(job, &a[2], 3, !(flag & (1<<(4+0)))); +UNSUPPORTED("9i420px3t1z2sosclutiev22e"); // else if (flag & (1<<(4+3))) +UNSUPPORTED("52punwd4fhhq1arhez8cuwvam"); // gvrender_polygon(job, a, 3, !(flag & (1<<(4+0)))); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6qac6zmwtg6rwpmn73fq6poje"); // gvrender_polygon(job, a, 4, !(flag & (1<<(4+0)))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dxl50r7ooipvtkyjb0sleittd +// static void arrow_type_dot(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +public static Object arrow_type_dot(Object... arg) { +UNSUPPORTED("bsrxktb5cvoy4qewxrb3z3ht"); // static void arrow_type_dot(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e077smjlsfuq1ptdwqpn7lcf0"); // double r; +UNSUPPORTED("c1555k4n8zggr5m5nozuhequ8"); // pointf AF[2]; +UNSUPPORTED("9nadrv289g5ravobyhu05u9or"); // r = sqrt(u.x * u.x + u.y * u.y) / 2.; +UNSUPPORTED("bxxvjt8g03vytuyx531n55b1g"); // AF[0].x = p.x + u.x / 2. - r; +UNSUPPORTED("8lbe9l6h0hqnth5j5skwrhxx1"); // AF[0].y = p.y + u.y / 2. - r; +UNSUPPORTED("1krebba2swwkp12jt15xqkjqd"); // AF[1].x = p.x + u.x / 2. + r; +UNSUPPORTED("btubzlppo1x1284g7zu99lk03"); // AF[1].y = p.y + u.y / 2. + r; +UNSUPPORTED("7mu57g14vmt1bdc523s4wiy22"); // gvrender_ellipse(job, AF, 2, !(flag & (1<<(4+0)))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5oioemwdl3g1maj3ikzleo0nm +// static void arrow_type_curve(GVJ_t* job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +public static Object arrow_type_curve(Object... arg) { +UNSUPPORTED("2rt93fe18qb092yomrw5l6mko"); // static void arrow_type_curve(GVJ_t* job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7127v6bnaxe4g216ue7fn3fyp"); // double arrowwidth = penwidth > 4 ? 0.5 * penwidth / 4 : 0.5; +UNSUPPORTED("euvu8ayo5swdxux8kyjmrywr5"); // pointf q, v, w; +UNSUPPORTED("9jc1l9d43c00gutvyto6snss3"); // pointf AF[4], a[2]; +UNSUPPORTED("eh1wtktxp1goqc7akjgyqf00j"); // q.x = p.x + u.x; +UNSUPPORTED("4qmtmdrrceo9h0mka0fkj5xci"); // q.y = p.y + u.y; +UNSUPPORTED("bvibgke8hnjr9rlyzfdumk5w"); // v.x = -u.y * arrowwidth; +UNSUPPORTED("c8xqr3hfd006yf1uuh47ndi71"); // v.y = u.x * arrowwidth; +UNSUPPORTED("duqsnax25spvj38rnd9v32b4d"); // w.x = v.y; // same direction as u, same magnitude as v. +UNSUPPORTED("4srsifkr8qc1viu2xijhnt66s"); // w.y = -v.x; +UNSUPPORTED("dhfgavaa2js7qt2ciwujmmrpv"); // a[0] = p; +UNSUPPORTED("7b2bztb06255tydz21zauq8qq"); // a[1] = q; +UNSUPPORTED("11fvrbnzwbuar9l5gc9wurbor"); // AF[0].x = p.x + v.x + w.x; +UNSUPPORTED("34xjxb9aaiworzwsfodegww0g"); // AF[0].y = p.y + v.y + w.y; +UNSUPPORTED("73ax76wsls8wr2c86mm6umxkl"); // AF[3].x = p.x - v.x + w.x; +UNSUPPORTED("7q0ly8njmscobyx3v5u7xb59c"); // AF[3].y = p.y - v.y + w.y; +UNSUPPORTED("9qmj4a7f67dltmu1pte8pzqox"); // AF[1].x = p.x + 0.95 * v.x + w.x - w.x * 4.0 / 3.0; +UNSUPPORTED("5spg9wtj9dwqh43yhk0dqfija"); // AF[1].y = AF[0].y - w.y * 4.0 / 3.0; +UNSUPPORTED("ab3yikrvtlncw10ivdxvr4a52"); // AF[2].x = p.x - 0.95 * v.x + w.x - w.x * 4.0 / 3.0; +UNSUPPORTED("45ok1xa7ia1ugs2o8ediwmd5p"); // AF[2].y = AF[3].y - w.y * 4.0 / 3.0; +UNSUPPORTED("9hbag2bcttyxj9vas0kvof5qp"); // gvrender_polyline(job, a, 2); +UNSUPPORTED("3kac8n2z06u2z5pqkm7c4z4nl"); // if (flag & (1<<(4+2))) +UNSUPPORTED("58oum3y30wqa0bofgze20unn7"); // Bezier(AF, 3, 0.5, NULL, AF); +UNSUPPORTED("9i420px3t1z2sosclutiev22e"); // else if (flag & (1<<(4+3))) +UNSUPPORTED("8dngt8wih972oouawx4wska6k"); // Bezier(AF, 3, 0.5, AF, NULL); +UNSUPPORTED("78tsqk66ihei67oy2ptr6t6f3"); // gvrender_beziercurve(job, AF, sizeof(AF) / sizeof(pointf), 0, 0, 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ruebmb0rzoin79tmkp4o357x +// static pointf arrow_gen_type(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +public static Object arrow_gen_type(Object... arg) { +UNSUPPORTED("6eekmrou08qiz0zielzyhyn4g"); // static pointf arrow_gen_type(GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9rrbht5x8qg377l1khejt2as2"); // int f; +UNSUPPORTED("aed0rb6bb02eluj3o0ugcfqv9"); // arrowtype_t *arrowtype; +UNSUPPORTED("ml2ttdehp7agi83yijbgk49r"); // f = flag & ((1 << 4) - 1); +UNSUPPORTED("f036frj7aawxz98ctbodsj666"); // for (arrowtype = Arrowtypes; arrowtype->type; arrowtype++) { +UNSUPPORTED("6qf8zxk5crelbhxfi42gd00l3"); // if (f == arrowtype->type) { +UNSUPPORTED("epoo24e6zcp2uaje5ukce1yvh"); // u.x *= arrowtype->lenfact * arrowsize; +UNSUPPORTED("bcfjvd5s3jub6wo9roe0xmn0g"); // u.y *= arrowtype->lenfact * arrowsize; +UNSUPPORTED("5wc1a7bb8k1d528kxw2uchm7c"); // (arrowtype->gen) (job, p, u, arrowsize, penwidth, flag); +UNSUPPORTED("3wwns14fz356e6p4s8byp3d6i"); // p.x = p.x + u.x; +UNSUPPORTED("3rzld1v7nkscibpukz3bdox3v"); // p.y = p.y + u.y; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2u4vcl57jl62dmf8fy80ioppm +// boxf arrow_bb(pointf p, pointf u, double arrowsize, int flag) +public static Object arrow_bb(Object... arg) { +UNSUPPORTED("67tfc7x1j056na7s6itymoeol"); // boxf arrow_bb(pointf p, pointf u, double arrowsize, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2fvgbj82ham8m0frx5hn9dyi"); // double s; +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("94ds3z1i0vt5rbv13ja90fdfp"); // double ax,ay,bx,by,cx,cy,dx,dy; +UNSUPPORTED("6r1gp4hfea5imwnuiyfuxzh6k"); // double ux2, uy2; +UNSUPPORTED("d5vh8if7unojun6hmulj4il7u"); // /* generate arrowhead vector */ +UNSUPPORTED("5yc3jb0utnnay4x88h644puhz"); // u.x -= p.x; +UNSUPPORTED("egh8lzpdfrza6k11lopupxykp"); // u.y -= p.y; +UNSUPPORTED("bh7ueu6dokefdmej3xz79c7ty"); // /* the EPSILONs are to keep this stable as length of u approaches 0.0 */ +UNSUPPORTED("3oao4fejxee2cop1fhd4m8tae"); // s = 10. * arrowsize / (sqrt(u.x * u.x + u.y * u.y) + .0001); +UNSUPPORTED("8qxmhdlg9d49yg9gxkjw043"); // u.x += (u.x >= 0.0) ? .0001 : -.0001; +UNSUPPORTED("4vxtvwh3x5b3i33sdyppe3trq"); // u.y += (u.y >= 0.0) ? .0001 : -.0001; +UNSUPPORTED("bwi3f8xk8t2nbzy5tjtgeewjl"); // u.x *= s; +UNSUPPORTED("do56zsbrbn95ovnoqu6zzjjmw"); // u.y *= s; +UNSUPPORTED("alix1e6k9ywov3xxcwxcgo1hh"); // /* compute all 4 corners of rotated arrowhead bounding box */ +UNSUPPORTED("9bdmzamsx8jasbcfy2mk0v7yt"); // ux2 = u.x / 2.; +UNSUPPORTED("3k8htwk7cas9gfe4j797zk3b"); // uy2 = u.y / 2.; +UNSUPPORTED("ar2s2pmmxun5v6p0d4mlij1ro"); // ax = p.x - uy2; +UNSUPPORTED("d9cpq1pbscjxjhkyi57s76o4r"); // ay = p.y - ux2; +UNSUPPORTED("7m3bdjur8btdn3q1dzd4o751s"); // bx = p.x + uy2; +UNSUPPORTED("bhn3rg0stek17iytsy7bgbwqw"); // by = p.y + ux2; +UNSUPPORTED("ai8hjx4uwhzow4nolep1478xn"); // cx = ax + u.x; +UNSUPPORTED("15l0cqg7njm4ebimncczi9uho"); // cy = ay + u.y; +UNSUPPORTED("29117dcz6pcm4ibiebo4cemeh"); // dx = bx + u.x; +UNSUPPORTED("7s3y5imd0u3woy1d0q58g1wlh"); // dy = by + u.y; +UNSUPPORTED("7lzozmdnkd5c06cyxy2skrar5"); // /* compute a right bb */ +UNSUPPORTED("4shnxc3z5z4wj3l0pl7tml625"); // bb.UR.x = MAX(ax, MAX(bx, MAX(cx, dx))); +UNSUPPORTED("2igw3asrvk13qlfbw4sgn7vxt"); // bb.UR.y = MAX(ay, MAX(by, MAX(cy, dy))); +UNSUPPORTED("7fz9fiabx9i87t8t6bgjeso5a"); // bb.LL.x = MIN(ax, MIN(bx, MIN(cx, dx))); +UNSUPPORTED("c6v20rdx0lfdvypx8l4tomnri"); // bb.LL.y = MIN(ay, MIN(by, MIN(cy, dy))); +UNSUPPORTED("5v5hh30squmit8o2i5hs25eig"); // return bb; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8ss8m9a0p5v0yx2oqggh0rx57 +// void arrow_gen(GVJ_t * job, emit_state_t emit_state, pointf p, pointf u, double arrowsize, double penwidth, int flag) +public static Object arrow_gen(Object... arg) { +UNSUPPORTED("ag73i6wbc5lb0d46ul40euyur"); // void arrow_gen(GVJ_t * job, emit_state_t emit_state, pointf p, pointf u, double arrowsize, double penwidth, int flag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("2fvgbj82ham8m0frx5hn9dyi"); // double s; +UNSUPPORTED("66oipfshtfj4imr4j2x2drib0"); // int i, f; +UNSUPPORTED("ecr1y7qy0ikxkidkdfvwv88ir"); // emit_state_t old_emit_state; +UNSUPPORTED("c3lqudp40feg72zp97ngqkww9"); // old_emit_state = obj->emit_state; +UNSUPPORTED("3ook7gsw0rr7b6uwm9f5a5dtx"); // obj->emit_state = emit_state; +UNSUPPORTED("exvy7jlggpvu1zhz08fo1jbvi"); // /* Dotted and dashed styles on the arrowhead are ugly (dds) */ +UNSUPPORTED("em34eidklzv0dobtybvgz9gwu"); // /* linewidth needs to be reset */ +UNSUPPORTED("4g8oyutwebzej18aaiz74zb9k"); // gvrender_set_style(job, job->gvc->defaultlinestyle); +UNSUPPORTED("eertb1vvqryb308a1uuff8s0"); // gvrender_set_penwidth(job, penwidth); +UNSUPPORTED("d5vh8if7unojun6hmulj4il7u"); // /* generate arrowhead vector */ +UNSUPPORTED("5yc3jb0utnnay4x88h644puhz"); // u.x -= p.x; +UNSUPPORTED("egh8lzpdfrza6k11lopupxykp"); // u.y -= p.y; +UNSUPPORTED("bh7ueu6dokefdmej3xz79c7ty"); // /* the EPSILONs are to keep this stable as length of u approaches 0.0 */ +UNSUPPORTED("9s182w6wdwxo0pwu9hljlyofe"); // s = 10. / (sqrt(u.x * u.x + u.y * u.y) + .0001); +UNSUPPORTED("8qxmhdlg9d49yg9gxkjw043"); // u.x += (u.x >= 0.0) ? .0001 : -.0001; +UNSUPPORTED("4vxtvwh3x5b3i33sdyppe3trq"); // u.y += (u.y >= 0.0) ? .0001 : -.0001; +UNSUPPORTED("bwi3f8xk8t2nbzy5tjtgeewjl"); // u.x *= s; +UNSUPPORTED("do56zsbrbn95ovnoqu6zzjjmw"); // u.y *= s; +UNSUPPORTED("3zei0bi63grn37qiuxn09n7hz"); // /* the first arrow head - closest to node */ +UNSUPPORTED("a2n8aqfq0cqpx8elstmfn9oq6"); // for (i = 0; i < 4; i++) { +UNSUPPORTED("8sgyt5ym5jt73oknb4tdj2zpl"); // f = (flag >> (i * 8)) & ((1 << 8) - 1); +UNSUPPORTED("5vg3retgvi5ekir9xbw8j4zoq"); // if (f == (0)) +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("biq7xz2uj7ksjrqn6tqr9glzj"); // p = arrow_gen_type(job, p, u, arrowsize, penwidth, f); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b1bkq4eyrmepbxyb3qiuhi8b8"); // obj->emit_state = old_emit_state; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/colxlate__c.java plantuml-8039/src/gen/lib/common/colxlate__c.java --- plantuml-8024/src/gen/lib/common/colxlate__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/colxlate__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,619 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.Macro.UNSUPPORTED; + +public class colxlate__c { +//1 9jk9ukwctyqdsan5lm6845y0i +// static hsvrgbacolor_t color_lib[] = + + +//1 48s1hew37k508i0ge3vcsxs69 +// static char* colorscheme + + + + +//3 7m77ow39f9cx65se44asa35dr +// static void hsv2rgb(double h, double s, double v, double *r, double *g, double *b) +public static Object hsv2rgb(Object... arg) { +UNSUPPORTED("bimj2bwogufgm8nwcyse0gmpq"); // static void hsv2rgb(double h, double s, double v, +UNSUPPORTED("95mlswcykd5as5wr8jbkfhz4f"); // double *r, double *g, double *b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("zxlsmu6cv48cbb2gz66otml0"); // double f, p, q, t; +UNSUPPORTED("8c67ztx4rycxh4gu2wweri33c"); // if (s <= 0.0) { /* achromatic */ +UNSUPPORTED("94xhdyetsqaie6jerahy5j021"); // *r = v; +UNSUPPORTED("9yacceicho3snok9td1kmsz9n"); // *g = v; +UNSUPPORTED("8ocel5g2qz8h3vz6bplc9bqe1"); // *b = v; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("6yid2gjsrd4a5mnmskepuy6us"); // if (h >= 1.0) +UNSUPPORTED("6n63uw6udor92ej9zr5x3cno3"); // h = 0.0; +UNSUPPORTED("3i7f8yorkl1thq29uhkr8b1uu"); // h = 6.0 * h; +UNSUPPORTED("12owlv8yrft4tfobrzyrgicux"); // i = (int) h; +UNSUPPORTED("5u8p6i1s1982n1h0xpp8k1pro"); // f = h - (double) i; +UNSUPPORTED("ajuk9rgsixt6bj32ar7rcc0y7"); // p = v * (1 - s); +UNSUPPORTED("707y9q1bx5bjn1lvry15sl54u"); // q = v * (1 - (s * f)); +UNSUPPORTED("jfjlwylasccbjb8xviddgimf"); // t = v * (1 - (s * (1 - f))); +UNSUPPORTED("9bo1itj979wxduxtvlcn8uetb"); // switch (i) { +UNSUPPORTED("46lzlkypfilrge90rkaiveuyb"); // case 0: +UNSUPPORTED("3i88n1gcazf1gz2x4pkhnw9so"); // *r = v; +UNSUPPORTED("bc8k4esl3g1mon6lhrh3ekj1w"); // *g = t; +UNSUPPORTED("7yrzwjb1vtg9vfwd29ab2xh4d"); // *b = p; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2o83im06dulx11wjpy469gkoa"); // case 1: +UNSUPPORTED("1487j2wuhsnecg3oa9zmz8ykw"); // *r = q; +UNSUPPORTED("1ynaxhs8cckpg37mv7f9id75r"); // *g = v; +UNSUPPORTED("7yrzwjb1vtg9vfwd29ab2xh4d"); // *b = p; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("b8vgbvwzllfs4lrqmmqyr1spk"); // case 2: +UNSUPPORTED("251n6pj3iysy48k21h1sj93lb"); // *r = p; +UNSUPPORTED("1ynaxhs8cckpg37mv7f9id75r"); // *g = v; +UNSUPPORTED("bdpl9tlkwe79rgxap4jt30wsz"); // *b = t; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1640m8as34e90xhvvtl877cmo"); // case 3: +UNSUPPORTED("251n6pj3iysy48k21h1sj93lb"); // *r = p; +UNSUPPORTED("nsh415cf187nepn41pky0qp2"); // *g = q; +UNSUPPORTED("6p2xjajb6ttv9mqfeunzd9eil"); // *b = v; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("495y0cnvj5vci19wsufg88rrq"); // case 4: +UNSUPPORTED("9fwms7ny5s08rx7kz1uyk22di"); // *r = t; +UNSUPPORTED("d9mdl8v0dmc06nxrlfveytbxc"); // *g = p; +UNSUPPORTED("6p2xjajb6ttv9mqfeunzd9eil"); // *b = v; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1wjv2f7dql1ddky1us3a7q5jq"); // case 5: +UNSUPPORTED("3i88n1gcazf1gz2x4pkhnw9so"); // *r = v; +UNSUPPORTED("d9mdl8v0dmc06nxrlfveytbxc"); // *g = p; +UNSUPPORTED("85qonu4zwiaxex0rz7lnk8erp"); // *b = q; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dujzfvldmjwflku9wihupdxnv +// static void rgb2hsv(double r, double g, double b, double *h, double *s, double *v) +public static Object rgb2hsv(Object... arg) { +UNSUPPORTED("c10593ciqiaa4rupftmpdu18r"); // static void rgb2hsv(double r, double g, double b, +UNSUPPORTED("e4aaxkxcwspiazmche1j75xdt"); // double *h, double *s, double *v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("440ugp6g625kjfyqr3kq3jrya"); // double rgbmin, rgbmax; +UNSUPPORTED("4zaqiduai9l3ps6u0ild4xiok"); // double rc, bc, gc; +UNSUPPORTED("cii4xmgmg0i6aidwdo4k8lvrg"); // double ht = 0.0, st = 0.0; +UNSUPPORTED("29eodvfgvnx0ikz7xtmlydoyb"); // rgbmin = MIN(r, MIN(g, b)); +UNSUPPORTED("2q0rmom8c6ik02h6h0nuybjln"); // rgbmax = MAX(r, MAX(g, b)); +UNSUPPORTED("1a9pi00vrpfpynvcdzxg33yji"); // if (rgbmax > 0.0) +UNSUPPORTED("38gq7n4g3llpkn0d8h2ncfn4a"); // st = (rgbmax - rgbmin) / rgbmax; +UNSUPPORTED("e92j0hzan753sveeu1kuwt73a"); // if (st > 0.0) { +UNSUPPORTED("8yt1g8tezilw0yagtf68gd4qn"); // rc = (rgbmax - r) / (rgbmax - rgbmin); +UNSUPPORTED("8h7ff4ogst5zbmyxcuu263r3l"); // gc = (rgbmax - g) / (rgbmax - rgbmin); +UNSUPPORTED("5sstg8pw8w9jswa78mg2lp3o1"); // bc = (rgbmax - b) / (rgbmax - rgbmin); +UNSUPPORTED("7qtihe7rt5ub2gdmz6y337qie"); // if (r == rgbmax) +UNSUPPORTED("9f8cswgb2rpdygjlxjh2iulgq"); // ht = bc - gc; +UNSUPPORTED("5m7yr50934hcucttwck4tl2o9"); // else if (g == rgbmax) +UNSUPPORTED("brfmtodakxaatp88cgebeetdl"); // ht = 2 + rc - bc; +UNSUPPORTED("7x8fw9oqxkymp3jp9hvfvoh7o"); // else if (b == rgbmax) +UNSUPPORTED("5ev3v0kjv7x08a9yplztn6wa2"); // ht = 4 + gc - rc; +UNSUPPORTED("aasi665vfkuijj147w3r3jb8b"); // ht = ht * 60.0; +UNSUPPORTED("1wreejtyubn67ne2tfig9anp0"); // if (ht < 0.0) +UNSUPPORTED("2cxp7z4dkecyj870xw6hya2rj"); // ht += 360.0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7970jq9aylmwywthy9p42i5fy"); // *h = ht / 360.0; +UNSUPPORTED("6couzbc17vserykjutgcv7bau"); // *v = rgbmax; +UNSUPPORTED("218fn8tnzsp40gkh5om1ut3qy"); // *s = st; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9dul807684jurxmxyyg1zyure +// static void rgb2cmyk(double r, double g, double b, double *c, double *m, double *y, double *k) +public static Object rgb2cmyk(Object... arg) { +UNSUPPORTED("352h951qbn47q4ctnzbrevu5m"); // static void rgb2cmyk(double r, double g, double b, double *c, double *m, +UNSUPPORTED("plznbj7ka6vfot5ko2iqa8gb"); // double *y, double *k) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("mlwnha0hbx9pl1rufkohkksk"); // *c = 1.0 - r; +UNSUPPORTED("40r81y2k11kyitt5p234zhr70"); // *m = 1.0 - g; +UNSUPPORTED("ds3bnptxye9sd8n9a6gnfbrf4"); // *y = 1.0 - b; +UNSUPPORTED("562ybodfaiqpazgnghrz8vu3h"); // *k = *c < *m ? *c : *m; +UNSUPPORTED("4agh1yjrfmwb2sia0cnj5q0j1"); // *k = *y < *k ? *y : *k; +UNSUPPORTED("9tw36bdsk4la16ly056swg45a"); // *c -= *k; +UNSUPPORTED("63fae2kzb2jh1n6rs66cvwviz"); // *m -= *k; +UNSUPPORTED("bdgp8lodki7wk4jv9ml43a0zd"); // *y -= *k; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4yhpwysfqkk00mf4cyx28mzrl +// static int colorcmpf(const void *p0, const void *p1) +public static Object colorcmpf(Object... arg) { +UNSUPPORTED("vnbeb7jqvgxfst4woiz27q00"); // static int colorcmpf(const void *p0, const void *p1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("anwjd7uy4hi0y3rmpq55acgx0"); // return strcasecmp(((hsvrgbacolor_t *) p0)->name, ((hsvrgbacolor_t *) p1)->name); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ax75qqr4my2r9ct8dbjvvjtx6 +// char *canontoken(char *str) +public static Object canontoken(Object... arg) { +UNSUPPORTED("1629zjdfy374s0osuesihd243"); // char *canontoken(char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2v53bu6z6q950ej04e355vyf7"); // static unsigned char *canon; +UNSUPPORTED("7bza0dswpz5oeunov6e43mgnz"); // static int allocated; +UNSUPPORTED("8j8ixiwexrxoe86i1a876qdje"); // unsigned char c, *p, *q; +UNSUPPORTED("dwe86466ugstemepdfk8yzphz"); // int len; +UNSUPPORTED("1zhw3nw03w7084dt7cn5ig222"); // p = (unsigned char *) str; +UNSUPPORTED("8vgrid9zcfh2t3gzsci2uvqde"); // len = strlen(str); +UNSUPPORTED("6kgkyoeg9m2xhq784cr9r710f"); // if (len >= allocated) { +UNSUPPORTED("choxsv8xq99cuoyy5rg3o3ufx"); // allocated = len + 1 + 10; +UNSUPPORTED("ccnla80pbvf8pmi4mw346hsq"); // canon = grealloc(canon, allocated); +UNSUPPORTED("evp8j7r652aqkdwzrhv80ufny"); // if (!canon) +UNSUPPORTED("7t3fvwp9cv90qu5bdjdglcgtk"); // return NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("53qdbi352d1p2q9140cbko0cz"); // q = (unsigned char *) canon; +UNSUPPORTED("5idssb31ihz3min8hoscutczg"); // while ((c = *p++)) { +UNSUPPORTED("6oxkjdt12xal6ds7edudbei57"); // /* if (isalnum(c) == FALSE) */ +UNSUPPORTED("9aswll10socwk83z1vt2t2vu5"); // /* continue; */ +UNSUPPORTED("4ne58tc0bo4i4oz5o4b4jme6v"); // if (isupper(c)) +UNSUPPORTED("815fsuia4alqab5oi8bf1fe1u"); // c = tolower(c); +UNSUPPORTED("6ibj8xkzlbep7pg079j68cmn5"); // *q++ = c; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5i5738mywatxkhk4v46m08ovk"); // *q = '\0'; +UNSUPPORTED("6nni1hupcgk2q8q167p2yra2t"); // return (char*)canon; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5vgbyvdcctqnygkqbcvf8gqkn +// static char* fullColor (char* prefix, char* str) +public static Object fullColor(Object... arg) { +UNSUPPORTED("6jzwle4t7n644wac4w3ptbzmk"); // static char* fullColor (char* prefix, char* str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("424m1v4nzzlsabaud5t50dky9"); // static char *fulls; +UNSUPPORTED("7bza0dswpz5oeunov6e43mgnz"); // static int allocated; +UNSUPPORTED("5tzyrmochxttq8ah54w2vyt0t"); // int len = strlen (prefix) + strlen (str) + 3; +UNSUPPORTED("6kgkyoeg9m2xhq784cr9r710f"); // if (len >= allocated) { +UNSUPPORTED("5nfq8ajs2tcl63yizz227j6hh"); // allocated = len + 10; +UNSUPPORTED("ahqyb9ue6f8my0dze9s8q9uqt"); // fulls = grealloc(fulls, allocated); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f07r4c1sjki0te2vto68bc7d5"); // sprintf (fulls, "/%s/%s", prefix, str); +UNSUPPORTED("585wlsg0zojpqdlnosc7sdtor"); // return fulls; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7fjoenpad8y11os28cr4ephqh +// static char* resolveColor (char* str) +public static Object resolveColor(Object... arg) { +UNSUPPORTED("7m0ujhxnmed6v558yry5p4sic"); // static char* resolveColor (char* str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("yiuh599p05f2mpu2e3pesu2o"); // char* s; +UNSUPPORTED("a7quapa33ocs19moe9pa284em"); // char* ss; /* second slash */ +UNSUPPORTED("8rgzc2l3qs5gokf0lfbwmmhs3"); // char* c2; /* second char */ +UNSUPPORTED("7ucbnwh0ljbustpvbj9f1fn8t"); // if ((*str == 'b') || !strncmp(str+1,"lack",4)) return str; +UNSUPPORTED("a0xs3pzeccr79t7yxu1vm2r8u"); // if ((*str == 'w') || !strncmp(str+1,"hite",4)) return str; +UNSUPPORTED("d8l6cky1r79llb12wx586fh0i"); // if ((*str == 'l') || !strncmp(str+1,"ightgrey",8)) return str; +UNSUPPORTED("68g0vl4sfqxaix0eokby77miu"); // if (*str == '/') { /* if begins with '/' */ +UNSUPPORTED("1thcre099akc701ud9cuvpzq9"); // c2 = str+1; +UNSUPPORTED("8u609q2j81o8ca2nq875feu9l"); // if ((ss = strchr(c2, '/'))) { /* if has second '/' */ +UNSUPPORTED("96qq76vindtvvu8py6ok6rsr8"); // if (*c2 == '/') { /* if second '/' is second character */ +UNSUPPORTED("6ob87wfl5ntacrexwpvwr2quj"); // /* Do not compare against final '/' */ +UNSUPPORTED("5o4dygmz7fi9rfd6gjdpg4y4o"); // if (((colorscheme) && *(colorscheme) && strncasecmp("X11/", colorscheme, ((sizeof("X11/")-1)/sizeof(char))-1))) +UNSUPPORTED("bwvwh0rl4f7dxumtom7tf2aa0"); // s = fullColor (colorscheme, c2+1); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("6w0zpynuopuao5in4a5tgvx5f"); // s = c2+1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("3q14jpw2hoz4iitdnw1u99dd1"); // else if (strncasecmp("X11/", c2, ((sizeof("X11/")-1)/sizeof(char)))) s = str; +UNSUPPORTED("7dtq56iupgwvfj9k3shmy1wkp"); // else s = ss + 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1rqtbmq74rzsr87zc33fdw705"); // else s = c2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("62rg8f7qxc5hu0156fliwf3ag"); // else if (((colorscheme) && *(colorscheme) && strncasecmp("X11/", colorscheme, ((sizeof("X11/")-1)/sizeof(char))-1))) s = fullColor (colorscheme, str); +UNSUPPORTED("33x0otv2ficwuhmdfoii6co2s"); // else s = str; +UNSUPPORTED("f133bzwue6od0ojktddh20n9o"); // return canontoken(s); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2zuzgeyimjdnf5mv3x8t0ki77 +// int colorxlate(char *str, gvcolor_t * color, color_type_t target_type) +public static Object colorxlate(Object... arg) { +UNSUPPORTED("ehzhqf0ynhngejezvvyifodzu"); // int colorxlate(char *str, gvcolor_t * color, color_type_t target_type) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8dd4kyqg8a18xkqxxrnm0kpsx"); // static hsvrgbacolor_t *last; +UNSUPPORTED("2v53bu6z6q950ej04e355vyf7"); // static unsigned char *canon; +UNSUPPORTED("7bza0dswpz5oeunov6e43mgnz"); // static int allocated; +UNSUPPORTED("31egkhuhw9vzm6yjeq3o989rg"); // unsigned char *p, *q; +UNSUPPORTED("2pxbjw6strjq1x0l4vcvhnzrd"); // hsvrgbacolor_t fake; +UNSUPPORTED("10sir32iwi5l2jyfgp65pihto"); // unsigned char c; +UNSUPPORTED("f2swz3fpapldgb0ehjrn24ye6"); // double H, S, V, A, R, G, B; +UNSUPPORTED("e82iuugluc7yqcpf1hzdj9t0b"); // double C, M, Y, K; +UNSUPPORTED("5fmu1gaywyplm6yn24ng702iy"); // unsigned int r, g, b, a; +UNSUPPORTED("2w4c2wk59z31rlianeffya4b7"); // int len, rc; +UNSUPPORTED("3xampp1xmjli0ebd8k04oflkz"); // color->type = target_type; +UNSUPPORTED("z00zvrgs8voqmzcegfqnd3mj"); // rc = 0; +UNSUPPORTED("aa2xm983i87wm9yrret50wu7z"); // for (; *str == ' '; str++); /* skip over any leading whitespace */ +UNSUPPORTED("1zhw3nw03w7084dt7cn5ig222"); // p = (unsigned char *) str; +UNSUPPORTED("6ylglimpylokiuqholp7kc8f1"); // /* test for rgb value such as: "#ff0000" +UNSUPPORTED("1hhw7mmcd7hy3tga5c2cy4uj1"); // or rgba value such as "#ff000080" */ +UNSUPPORTED("dlrbi3u8m2m8y76z33sps4wba"); // a = 255; /* default alpha channel value=opaque in case not supplied */ +UNSUPPORTED("5z0a0j45mhkka5aqm9y0dmg2"); // if ((*p == '#') +UNSUPPORTED("aycrro09nwns8jn23jakn4e31"); // && (sscanf((char *) p, "#%2x%2x%2x%2x", &r, &g, &b, &a) >= 3)) { +UNSUPPORTED("cqoqa6pnbr8t180lly83arzbf"); // switch (target_type) { +UNSUPPORTED("8x2g67uo65ux7na4wn8yr2hoi"); // case HSVA_DOUBLE: +UNSUPPORTED("dpkd6jyfsackl5xx7qm7yc3ju"); // R = (double) r / 255.0; +UNSUPPORTED("cepcltt67wcchzsr6s990ntkq"); // G = (double) g / 255.0; +UNSUPPORTED("4ntwadqpbmdf0t4d0ua8tquxu"); // B = (double) b / 255.0; +UNSUPPORTED("c5xrk3b0ql8xij7ug0lc3j511"); // A = (double) a / 255.0; +UNSUPPORTED("7p8xgh8y8u9gfp2723esq8nhr"); // rgb2hsv(R, G, B, &H, &S, &V); +UNSUPPORTED("3c6fimz05io2h7r45jqm5akmd"); // color->u.HSVA[0] = H; +UNSUPPORTED("dvkaok4qjui5j7he8uyb7cjkk"); // color->u.HSVA[1] = S; +UNSUPPORTED("esjtk662lb2dnrfl7t3r19b07"); // color->u.HSVA[2] = V; +UNSUPPORTED("a8ptt1hl64brvfj57jiv380y2"); // color->u.HSVA[3] = A; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4qyq5lb20pb6flw57yam37kot"); // case RGBA_BYTE: +UNSUPPORTED("9fiju79nf1q6i93juztjnip4z"); // color->u.rgba[0] = r; +UNSUPPORTED("1tmbx7r5acrevkd0wcmtzec6i"); // color->u.rgba[1] = g; +UNSUPPORTED("5tqv0dfpaz9wlvpf33sd44mnj"); // color->u.rgba[2] = b; +UNSUPPORTED("4ubswipncx92gv5jqv7v4n7un"); // color->u.rgba[3] = a; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("b18nw968wk9mdxeq4ho72d8xp"); // case CMYK_BYTE: +UNSUPPORTED("dpkd6jyfsackl5xx7qm7yc3ju"); // R = (double) r / 255.0; +UNSUPPORTED("cepcltt67wcchzsr6s990ntkq"); // G = (double) g / 255.0; +UNSUPPORTED("4ntwadqpbmdf0t4d0ua8tquxu"); // B = (double) b / 255.0; +UNSUPPORTED("7tttv6awjz9muyxywh3cs8h1a"); // rgb2cmyk(R, G, B, &C, &M, &Y, &K); +UNSUPPORTED("c0b76suwtky43nbsirv28wize"); // color->u.cmyk[0] = (int) C *255; +UNSUPPORTED("5yg3z9bc07yyfs901cvlx7p6b"); // color->u.cmyk[1] = (int) M *255; +UNSUPPORTED("5rh4naug8vgufalo3q2odxixd"); // color->u.cmyk[2] = (int) Y *255; +UNSUPPORTED("2ijzabu50uo431fzaevemaq3p"); // color->u.cmyk[3] = (int) K *255; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("3hhhktkxv13skdg8qtbqfccvb"); // case RGBA_WORD: +UNSUPPORTED("bsssysiehopm4fcx00c71nb0u"); // color->u.rrggbbaa[0] = r * 65535 / 255; +UNSUPPORTED("bc6z6ydxkwnxduq905k7ry0gj"); // color->u.rrggbbaa[1] = g * 65535 / 255; +UNSUPPORTED("1u2tjaly9mqdx06awvx8fw8c4"); // color->u.rrggbbaa[2] = b * 65535 / 255; +UNSUPPORTED("86f7yk4nr72y7ayyrc6e57135"); // color->u.rrggbbaa[3] = a * 65535 / 255; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1ap6qfmpr0qmmroo04n4v2y6p"); // case RGBA_DOUBLE: +UNSUPPORTED("ammm9vmhuq93wsdacjqvvo546"); // color->u.RGBA[0] = (double) r / 255.0; +UNSUPPORTED("5x5jz0u21i8uemni5rpvge5oa"); // color->u.RGBA[1] = (double) g / 255.0; +UNSUPPORTED("9nfyug5ab9pqtaa0fxrdd2v8a"); // color->u.RGBA[2] = (double) b / 255.0; +UNSUPPORTED("eyrh1tnmpdj4ybancy56dmmml"); // color->u.RGBA[3] = (double) a / 255.0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("3963t7kz3wj9jmr4b42bh0ikz"); // case COLOR_STRING: +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("8efm2ybg3ifrezi2q4fb03p57"); // case COLOR_INDEX: +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("eitnhp9lhv04qoq5fn35tp7p2"); // return rc; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e75g686bfy9mqu1k87in9vv1r"); // /* test for hsv value such as: ".6,.5,.3" */ +UNSUPPORTED("e2k96empw2ygjnzfrqjpvgffr"); // if (((c = *p) == '.') || isdigit(c)) { +UNSUPPORTED("3zq9jhiq7l7htzl88zmc4a0b2"); // len = strlen((char*)p); +UNSUPPORTED("28up8t9arwfar8xkch24atnae"); // if (len >= allocated) { +UNSUPPORTED("ddmhu29n34mvpbug20e7gfrpp"); // allocated = len + 1 + 10; +UNSUPPORTED("c8rgido7c9hwk057p1nwflu9h"); // canon = grealloc(canon, allocated); +UNSUPPORTED("3soihimxufqqtgztcecr5lan"); // if (! canon) { +UNSUPPORTED("47umle9mvhgi9vy7toebc2zvw"); // rc = -1; +UNSUPPORTED("cgwgihktqarc0n7hll268tdb4"); // return rc; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("d1cbfh7ze9z7h7rh3jxl96c8x"); // q = canon; +UNSUPPORTED("6uczw0au913vi88zvveu2h0tl"); // while ((c = *p++)) { +UNSUPPORTED("f0m7phmob63hrmzhuvohg5wet"); // if (c == ',') +UNSUPPORTED("ael7ld07kdrxvpb8xj12l8vij"); // c = ' '; +UNSUPPORTED("a1naxqdqse0i1gltpcxpqtfp9"); // *q++ = c; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cxlp7boqg1gqp4ii26w29519a"); // *q = '\0'; +UNSUPPORTED("2ppiwy4oes1lkaol4e2nknf9c"); // if (sscanf((char *) canon, "%lf%lf%lf", &H, &S, &V) == 3) { +UNSUPPORTED("2c8rcf5yaysr8fqa5ap1asp9j"); // /* clip to reasonable values */ +UNSUPPORTED("4tzrqsjvx05il761enljel6n6"); // H = MAX(MIN(H, 1.0), 0.0); +UNSUPPORTED("dqjpxih9a58hiwicuciw06vr4"); // S = MAX(MIN(S, 1.0), 0.0); +UNSUPPORTED("2za1jxsv0x24f8jimgjfpvj15"); // V = MAX(MIN(V, 1.0), 0.0); +UNSUPPORTED("7tcobltkij2n43sx05o9n6kug"); // switch (target_type) { +UNSUPPORTED("3waht38mgt9ux3yz4zl4g1g4k"); // case HSVA_DOUBLE: +UNSUPPORTED("nuwdoqw88otrz2ssylnbnhnh"); // color->u.HSVA[0] = H; +UNSUPPORTED("f2w3ia24h1oa09rc6ewthuc5i"); // color->u.HSVA[1] = S; +UNSUPPORTED("605q0z46ca4sxxsb3vb0rvj5o"); // color->u.HSVA[2] = V; +UNSUPPORTED("6zqfqqrvuik71peygm447hc76"); // color->u.HSVA[3] = 1.0; /* opaque */ +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6ulscgeog9ank5opws5gczv7f"); // case RGBA_BYTE: +UNSUPPORTED("99gjspcfmqpjeen6w12y4grb9"); // hsv2rgb(H, S, V, &R, &G, &B); +UNSUPPORTED("bwjh16cq6yjwoe2p22hgy0pum"); // color->u.rgba[0] = (int) (R * 255); +UNSUPPORTED("7pi61v8ugyyvumjdeyhcs1bzc"); // color->u.rgba[1] = (int) (G * 255); +UNSUPPORTED("5ydlbqv65443sqvn73lcaww78"); // color->u.rgba[2] = (int) (B * 255); +UNSUPPORTED("7thq3k4slxcy7ycv1gx28o9h0"); // color->u.rgba[3] = 255; /* opaque */ +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("1nx06r4czcqlfs4lqegi34ddz"); // case CMYK_BYTE: +UNSUPPORTED("99gjspcfmqpjeen6w12y4grb9"); // hsv2rgb(H, S, V, &R, &G, &B); +UNSUPPORTED("2bxuxozonvzepjt6utzrrqfdu"); // rgb2cmyk(R, G, B, &C, &M, &Y, &K); +UNSUPPORTED("ehoij0dm9c7xnl5za53e9joub"); // color->u.cmyk[0] = (int) C *255; +UNSUPPORTED("3kk069yq96yvqh7cbytq1oe9p"); // color->u.cmyk[1] = (int) M *255; +UNSUPPORTED("pnh92bvbr8g0ovs0svdb0ety"); // color->u.cmyk[2] = (int) Y *255; +UNSUPPORTED("8j6drpob4qn1tzqv46ezm2qta"); // color->u.cmyk[3] = (int) K *255; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("40ebfdiui5ixqhgg7n6ycmk1d"); // case RGBA_WORD: +UNSUPPORTED("99gjspcfmqpjeen6w12y4grb9"); // hsv2rgb(H, S, V, &R, &G, &B); +UNSUPPORTED("bqjm1u4dd0c7dgjivlp4lunfx"); // color->u.rrggbbaa[0] = (int) (R * 65535); +UNSUPPORTED("7qa6nwupc5p5tzjy2j3sbpw84"); // color->u.rrggbbaa[1] = (int) (G * 65535); +UNSUPPORTED("9upp88q1d7krwt03zdr7f2dp1"); // color->u.rrggbbaa[2] = (int) (B * 65535); +UNSUPPORTED("v5ww88r64fhyefive8jpwod1"); // color->u.rrggbbaa[3] = 65535; /* opaque */ +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("f20hyopi99mh64hgvbob3629i"); // case RGBA_DOUBLE: +UNSUPPORTED("99gjspcfmqpjeen6w12y4grb9"); // hsv2rgb(H, S, V, &R, &G, &B); +UNSUPPORTED("6jkogp2xmtjsirkkt4gq0qk9g"); // color->u.RGBA[0] = R; +UNSUPPORTED("9k4pjgp3uz7nshtjln3fy9auu"); // color->u.RGBA[1] = G; +UNSUPPORTED("7y5ue1vo9dkn36t07st57ckmh"); // color->u.RGBA[2] = B; +UNSUPPORTED("afan1dakanjzco4n2c6rjrxw1"); // color->u.RGBA[3] = 1.0; /* opaque */ +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("yi2ftsdqvd62kvijtv49ciof"); // case COLOR_STRING: +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bptas91kxl67utozz0z9ksslp"); // case COLOR_INDEX: +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("boigxj79k0wl3vix6mrtksbik"); // return rc; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("akwwtrxikvsg54ppqaouiraja"); // /* test for known color name (generic, not renderer specific known names) */ +UNSUPPORTED("bniidu3c7uw4j4gnlrw1sml7b"); // fake.name = resolveColor(str); +UNSUPPORTED("a3ffcy8id0r4fealybty3ncv2"); // if (!fake.name) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("nlfkt4ol3t13u9upjdrx7dnl"); // if ((last == NULL) +UNSUPPORTED("dcjahkpgs4yy496ikzaozniuw"); // || (last->name[0] != fake.name[0]) +UNSUPPORTED("4nyn87tawoh9ejder70ax0di4"); // || (strcmp(last->name, fake.name))) { +UNSUPPORTED("c8e30ys418x2wrqsniggk3h2u"); // last = (hsvrgbacolor_t *) bsearch((void *) &fake, +UNSUPPORTED("13zn2zu4jxknhl31gd5np1hq9"); // (void *) color_lib, +UNSUPPORTED("csk5c5fpsg633xn59o6ekp7kw"); // sizeof(color_lib) / +UNSUPPORTED("326muvlkda3aeejlqnmab0unj"); // sizeof(hsvrgbacolor_t), sizeof(fake), +UNSUPPORTED("92scws4jkdku0225nkuwyg3en"); // colorcmpf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7wyv7w4rv25zss2ym7p8di9e"); // if (last != NULL) { +UNSUPPORTED("cqoqa6pnbr8t180lly83arzbf"); // switch (target_type) { +UNSUPPORTED("8x2g67uo65ux7na4wn8yr2hoi"); // case HSVA_DOUBLE: +UNSUPPORTED("1p412ag7t6o00ebns760u1buq"); // color->u.HSVA[0] = ((double) last->h) / 255.0; +UNSUPPORTED("3u2uzmxb21wo3n5ofhxvsos1j"); // color->u.HSVA[1] = ((double) last->s) / 255.0; +UNSUPPORTED("1f7avk3ldrvt4iqyousfpakfa"); // color->u.HSVA[2] = ((double) last->v) / 255.0; +UNSUPPORTED("9cutkzl8ytljfv3pdlcwwuo39"); // color->u.HSVA[3] = ((double) last->a) / 255.0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4qyq5lb20pb6flw57yam37kot"); // case RGBA_BYTE: +UNSUPPORTED("euv8extiyg9ojwarxbdg173x0"); // color->u.rgba[0] = last->r; +UNSUPPORTED("ew13r0uorvrr11af042y87wox"); // color->u.rgba[1] = last->g; +UNSUPPORTED("ama3ynaxltjqwoy88w1z0aarf"); // color->u.rgba[2] = last->b; +UNSUPPORTED("1chs0ktvl6et5zijblcp8qlnr"); // color->u.rgba[3] = last->a; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("b18nw968wk9mdxeq4ho72d8xp"); // case CMYK_BYTE: +UNSUPPORTED("yiknpgciig2uwoai0h23rlk8"); // R = (last->r) / 255.0; +UNSUPPORTED("xlpnj1maqomtvccdwcrsa06q"); // G = (last->g) / 255.0; +UNSUPPORTED("956if091oxzp9zfflftahx9vj"); // B = (last->b) / 255.0; +UNSUPPORTED("7tttv6awjz9muyxywh3cs8h1a"); // rgb2cmyk(R, G, B, &C, &M, &Y, &K); +UNSUPPORTED("dq3d8fxtdbd8vmi1ctrbouqys"); // color->u.cmyk[0] = (int) C * 255; +UNSUPPORTED("1v32c1lsmzvu5i9ciubbfzgj8"); // color->u.cmyk[1] = (int) M * 255; +UNSUPPORTED("8ilbscdq894a1u0mxx9qehekv"); // color->u.cmyk[2] = (int) Y * 255; +UNSUPPORTED("4p9d1nzs3tw96wxlefrt3dbum"); // color->u.cmyk[3] = (int) K * 255; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("3hhhktkxv13skdg8qtbqfccvb"); // case RGBA_WORD: +UNSUPPORTED("2chrmq478c0dkbx2vtuzkttt3"); // color->u.rrggbbaa[0] = last->r * 65535 / 255; +UNSUPPORTED("elxida3hf2w5648hreja3h77h"); // color->u.rrggbbaa[1] = last->g * 65535 / 255; +UNSUPPORTED("7vfbr6rrlg6254zzkf6ezthyz"); // color->u.rrggbbaa[2] = last->b * 65535 / 255; +UNSUPPORTED("9d0ijf90chv5xiy3wyak6svth"); // color->u.rrggbbaa[3] = last->a * 65535 / 255; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1ap6qfmpr0qmmroo04n4v2y6p"); // case RGBA_DOUBLE: +UNSUPPORTED("c8i3r57st2or1lb0p5zmpjbel"); // color->u.RGBA[0] = last->r / 255.0; +UNSUPPORTED("bad4ojyrfigi4mmom4cehxisg"); // color->u.RGBA[1] = last->g / 255.0; +UNSUPPORTED("e69nmcysppzvuafruou5z51pw"); // color->u.RGBA[2] = last->b / 255.0; +UNSUPPORTED("5x4y6hddq6bkpbfumqlnf287x"); // color->u.RGBA[3] = last->a / 255.0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("3963t7kz3wj9jmr4b42bh0ikz"); // case COLOR_STRING: +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("8efm2ybg3ifrezi2q4fb03p57"); // case COLOR_INDEX: +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("eitnhp9lhv04qoq5fn35tp7p2"); // return rc; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c2rphnmj3qjo7esjrr8lrf9n8"); // /* if we're still here then we failed to find a valid color spec */ +UNSUPPORTED("7g304hflsebasgkwe7p0ogfcf"); // rc = 1; +UNSUPPORTED("7g1g78rlfxhrdbth346b6va3v"); // switch (target_type) { +UNSUPPORTED("3xh9pvlzl0se6kai61hpvztb0"); // case HSVA_DOUBLE: +UNSUPPORTED("77m5r1fi548i2a3r9s6x0gsce"); // color->u.HSVA[0] = color->u.HSVA[1] = color->u.HSVA[2] = 0.0; +UNSUPPORTED("8r2m62v2wseqye77wjj1iuzx5"); // color->u.HSVA[3] = 1.0; /* opaque */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1ke9k1couoeb4od2nwibgg0xu"); // case RGBA_BYTE: +UNSUPPORTED("3f06oe6h7bl42mxja847kojce"); // color->u.rgba[0] = color->u.rgba[1] = color->u.rgba[2] = 0; +UNSUPPORTED("epcd3n4y8gy400i35b2dx3dfz"); // color->u.rgba[3] = 255; /* opaque */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3setnlgc8vsi8j9jzph3w3tgw"); // case CMYK_BYTE: +UNSUPPORTED("8moqdtdmwf0umamz8fe6mppyd"); // color->u.cmyk[0] = +UNSUPPORTED("66cowglrsnm9ygf0ojc1i0tka"); // color->u.cmyk[1] = color->u.cmyk[2] = color->u.cmyk[3] = 0; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1gc399p944szfhhd18p1c2zde"); // case RGBA_WORD: +UNSUPPORTED("a7056wzw9fyolfdizijjxbrnr"); // color->u.rrggbbaa[0] = color->u.rrggbbaa[1] = color->u.rrggbbaa[2] = 0; +UNSUPPORTED("4e0n7dmb7rj5h0oatmxqc3lv2"); // color->u.rrggbbaa[3] = 65535; /* opaque */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("ix5z8u4vldva0mpwk1hnmx3s"); // case RGBA_DOUBLE: +UNSUPPORTED("a86aiakru49t2tk7tg5y7ym3h"); // color->u.RGBA[0] = color->u.RGBA[1] = color->u.RGBA[2] = 0.0; +UNSUPPORTED("ck9hrfq4njkslj58o9vzim5wf"); // color->u.RGBA[3] = 1.0; /* opaque */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8d4tzwdd3f608e3jl4lzyugu0"); // case COLOR_STRING: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("aa8lnx1ghmaq1qg4pxuhfpz9d"); // case COLOR_INDEX: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5bc9k4vsl6g7wejc5xefc5964"); // return rc; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6xt07sam57leaegn555zem71x +// static void rgba_wordToByte (int* rrggbbaa, unsigned char* rgba) +public static Object rgba_wordToByte(Object... arg) { +UNSUPPORTED("bao9ostouhscklw6g4sr9d1ca"); // static void rgba_wordToByte (int* rrggbbaa, unsigned char* rgba) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("a2n8aqfq0cqpx8elstmfn9oq6"); // for (i = 0; i < 4; i++) { +UNSUPPORTED("56z2bopl8zqqjgty1iei0mdz8"); // rgba[i] = rrggbbaa[i] * 255 / 65535; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6yolsjak65tidlbndbkdir4zi +// static void rgba_dblToByte (double* RGBA, unsigned char* rgba) +public static Object rgba_dblToByte(Object... arg) { +UNSUPPORTED("44ty1s8y3t609jxlz3dhwo8up"); // static void rgba_dblToByte (double* RGBA, unsigned char* rgba) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("a2n8aqfq0cqpx8elstmfn9oq6"); // for (i = 0; i < 4; i++) { +UNSUPPORTED("7top6cd4psdex6hfkw4d92a5z"); // rgba[i] = (unsigned char)(RGBA[i] * 255); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4u0xx0imm7gw6d27a58wt7uhd +// int colorCvt(gvcolor_t *ocolor, gvcolor_t *ncolor) +public static Object colorCvt(Object... arg) { +UNSUPPORTED("crf94filr3nvamikn2fv9l283"); // int colorCvt(gvcolor_t *ocolor, gvcolor_t *ncolor) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1bh3yj957he6yv2dkeg4pzwdk"); // int rc; +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("yiuh599p05f2mpu2e3pesu2o"); // char* s; +UNSUPPORTED("7n0bnxi86o1eioqyouz3afqm6"); // unsigned char rgba[4]; +UNSUPPORTED("4rev51u4r7578qsqtboqis36t"); // if (ocolor->type == ncolor->type) { +UNSUPPORTED("b5cexskqcmrvkru1pwloy29ap"); // memcpy (&ncolor->u, &ocolor->u, sizeof(ocolor->u)); +UNSUPPORTED("awjmnc3xe191yrjoav96x4t6i"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("29yartnlkg78jtqss7wvr2ukx"); // s = buf; +UNSUPPORTED("bprjantrlt6985c2t92ljx17q"); // switch (ocolor->type) { +UNSUPPORTED("85pg3jiffmuxf208m722qskve"); // case HSVA_DOUBLE : +UNSUPPORTED("b61kxubde7agaa67lf3047gw9"); // sprintf (buf, "%.03f %.03f %.03f %.03f", +UNSUPPORTED("ecz167vvi43rqv3i1be6y9d44"); // ocolor->u.HSVA[0], ocolor->u.HSVA[1], ocolor->u.HSVA[2], ocolor->u.HSVA[3]); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dxegdbspzy9czkr6nd5x8poe1"); // case RGBA_BYTE : +UNSUPPORTED("bdfv0m39061r7mieslqyunk37"); // sprintf (buf, "#%02x%02x%02x%02x", +UNSUPPORTED("eavvghusqadvoi5m9t899gywv"); // ocolor->u.rgba[0], ocolor->u.rgba[1], ocolor->u.rgba[2], ocolor->u.rgba[3]); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1gc399p944szfhhd18p1c2zde"); // case RGBA_WORD: +UNSUPPORTED("ahox2to99gp3ku632fit5yh2w"); // rgba_wordToByte (ocolor->u.rrggbbaa, rgba); +UNSUPPORTED("dvj2lr88uw99nw4a2fsu74quo"); // sprintf (buf, "#%02x%02x%02x%02x", rgba[0], rgba[1], rgba[2], rgba[3]); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("ix5z8u4vldva0mpwk1hnmx3s"); // case RGBA_DOUBLE: +UNSUPPORTED("a04b7du8qje7yf4tbvp5yadym"); // rgba_dblToByte (ocolor->u.RGBA, rgba); +UNSUPPORTED("dvj2lr88uw99nw4a2fsu74quo"); // sprintf (buf, "#%02x%02x%02x%02x", rgba[0], rgba[1], rgba[2], rgba[3]); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8d4tzwdd3f608e3jl4lzyugu0"); // case COLOR_STRING: +UNSUPPORTED("e7srlpjuk0ycck3ei9y4xotvg"); // s = ocolor->u.string; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8p4y43r1r9vccmnk4h3h083v9"); // case CMYK_BYTE : +UNSUPPORTED("1z040zrivaz8vtuh8w8a4mqsn"); // /* agerr (AGWARN, "Input color type 'CMYK_BYTE' not supported for conversion\n"); */ +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("aa8lnx1ghmaq1qg4pxuhfpz9d"); // case COLOR_INDEX: +UNSUPPORTED("99jz8sfo7x4ocdi773b6ja0za"); // /* agerr (AGWARN, "Input color type 'COLOR_INDEX' not supported for conversion\n"); */ +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("dxk2qiq2wg8ckisq3kx3k8wd"); // /* agerr (AGWARN, "Unknown input color type value '%u'\n", ncolor->type); */ +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("eq82slwrwm0pcpqius7pgtlrn"); // rc = colorxlate (s, ncolor, ncolor->type); +UNSUPPORTED("5bc9k4vsl6g7wejc5xefc5964"); // return rc; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 idov6ir1ql05vewhvosl6zmm +// void setColorScheme (char* s) +public static Object setColorScheme(Object... arg) { +UNSUPPORTED("aae50vjirjpwewp57f09nxgqi"); // void setColorScheme (char* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9d6vms1yygd86dcdp61pb75o5"); // colorscheme = s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/ellipse__c.java plantuml-8039/src/gen/lib/common/ellipse__c.java --- plantuml-8024/src/gen/lib/common/ellipse__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/ellipse__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1117 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class ellipse__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8vtqch9vmg15ugkvb5kjl1qj0 +// static void computeFoci(ellipse_t * ep) +public static Object computeFoci(Object... arg) { +UNSUPPORTED("5bcbitmdppffwahp7nmlbi83r"); // static void computeFoci(ellipse_t * ep) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eid8kqvkuydr459fnsfbtpyc3"); // double d = sqrt(ep->a * ep->a - ep->b * ep->b); +UNSUPPORTED("eeaywijqk4uxvw19tkbgu253m"); // double dx = d * ep->cosTheta; +UNSUPPORTED("7vyd4ve72btbkfo43shwx7kau"); // double dy = d * ep->sinTheta; +UNSUPPORTED("br7a9whx0v42l4kzkaa11t9pa"); // ep->xF1 = ep->cx - dx; +UNSUPPORTED("dnp04v8l7mdx3jxxtc3sec415"); // ep->yF1 = ep->cy - dy; +UNSUPPORTED("9hptigk23rnp3v4o7v1c9xvmx"); // ep->xF2 = ep->cx + dx; +UNSUPPORTED("e94dmwui1l6ntq9ng55xax8sz"); // ep->yF2 = ep->cy + dy; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dbew322vv0bgrg4pymgszeaae +// static void computeEndPoints(ellipse_t * ep) +public static Object computeEndPoints(Object... arg) { +UNSUPPORTED("rteaacx2szzim69sc25f66sp"); // static void computeEndPoints(ellipse_t * ep) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("852vsfhje4mvzn5rx2n6haj3a"); // double aCosEta1 = ep->a * cos(ep->eta1); +UNSUPPORTED("5vmwuoxk5n6ypgduysu1dh0kp"); // double bSinEta1 = ep->b * sin(ep->eta1); +UNSUPPORTED("4ezeyj8mjzl0ud7yld078fcyn"); // double aCosEta2 = ep->a * cos(ep->eta2); +UNSUPPORTED("5opkvasd5uqsvfp6dk3070nav"); // double bSinEta2 = ep->b * sin(ep->eta2); +UNSUPPORTED("8epdhhsfs576m8gn5ouli23am"); // // start point +UNSUPPORTED("auzwiyyj4hsb2eboae8lyqlmr"); // ep->x1 = ep->cx + aCosEta1 * ep->cosTheta - bSinEta1 * ep->sinTheta; +UNSUPPORTED("2fkvvtpflc1gcev5x50ukgmni"); // ep->y1 = ep->cy + aCosEta1 * ep->sinTheta + bSinEta1 * ep->cosTheta; +UNSUPPORTED("3t5jjvo0n6xmvf92fj004j0hs"); // // end point +UNSUPPORTED("ejinp3zk9hy2cymz06oocdlyj"); // ep->x2 = ep->cx + aCosEta2 * ep->cosTheta - bSinEta2 * ep->sinTheta; +UNSUPPORTED("dpv02upzejm2ish3bydlsyc1z"); // ep->y2 = ep->cy + aCosEta2 * ep->sinTheta + bSinEta2 * ep->cosTheta; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f3ru0t0ysk3xq8fbxnr5ujcol +// static void computeBounds(ellipse_t * ep) +public static Object computeBounds(Object... arg) { +UNSUPPORTED("9u1yf6gyi3s9qsowre67k9cox"); // static void computeBounds(ellipse_t * ep) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1jhf3o4xhvl4fndu7fi826pia"); // double bOnA = ep->b / ep->a; +UNSUPPORTED("bee7zzfdd190fvfubd4fs5b6l"); // double etaXMin, etaXMax, etaYMin, etaYMax; +UNSUPPORTED("5afe3vaihk6e4p8x6gy8qfhcr"); // if (abs(ep->sinTheta) < 0.1) { +UNSUPPORTED("b44ulenttvb6b1j69bgmz2dyb"); // double tanTheta = ep->sinTheta / ep->cosTheta; +UNSUPPORTED("8i8hnf634d0hep4k8kabadrxc"); // if (ep->cosTheta < 0) { +UNSUPPORTED("4b1t0o4s7kq4i1undk0da0jcz"); // etaXMin = -atan(tanTheta * bOnA); +UNSUPPORTED("b7jmwu8pdrcw664uippx0c5la"); // etaXMax = etaXMin + M_PI; +UNSUPPORTED("edthlj4laeqv2dvsbdo0ujj77"); // etaYMin = 0.5 * M_PI - atan(tanTheta / bOnA); +UNSUPPORTED("9uxxapjhe1pfj97wusc80hs82"); // etaYMax = etaYMin + M_PI; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("5xmqdjsimutfhanihqci92yoj"); // etaXMax = -atan(tanTheta * bOnA); +UNSUPPORTED("k1fpex84n120tc9umch4dd0n"); // etaXMin = etaXMax - M_PI; +UNSUPPORTED("2i5a5rw4qsc8scf27aedttnj5"); // etaYMax = 0.5 * M_PI - atan(tanTheta / bOnA); +UNSUPPORTED("2414bgwj0n3olrl7u8abdy7hm"); // etaYMin = etaYMax - M_PI; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("dnl9l5tyykjo0dn6xjrbhnfaz"); // double invTanTheta = ep->cosTheta / ep->sinTheta; +UNSUPPORTED("n4to8nhj56e7uztxuu78u0sv"); // if (ep->sinTheta < 0) { +UNSUPPORTED("e9iw0rwef6vz2hztrrbzy3v6k"); // etaXMax = 0.5 * M_PI + atan(invTanTheta / bOnA); +UNSUPPORTED("k1fpex84n120tc9umch4dd0n"); // etaXMin = etaXMax - M_PI; +UNSUPPORTED("1cy9nyh492abntcky0ue533o7"); // etaYMin = atan(invTanTheta * bOnA); +UNSUPPORTED("9uxxapjhe1pfj97wusc80hs82"); // etaYMax = etaYMin + M_PI; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("ckx1q1okd2zthayurvcirb8w3"); // etaXMin = 0.5 * M_PI + atan(invTanTheta / bOnA); +UNSUPPORTED("b7jmwu8pdrcw664uippx0c5la"); // etaXMax = etaXMin + M_PI; +UNSUPPORTED("1sqp1jtgyx1b6flh58samo02q"); // etaYMax = atan(invTanTheta * bOnA); +UNSUPPORTED("2414bgwj0n3olrl7u8abdy7hm"); // etaYMin = etaYMax - M_PI; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7ltffkplh3lj7prv6bon5ei7e"); // etaXMin -= ((2*M_PI) * floor((etaXMin - ep->eta1) / (2*M_PI))); +UNSUPPORTED("ady72sy3azf76ixh9cxjttc56"); // etaYMin -= ((2*M_PI) * floor((etaYMin - ep->eta1) / (2*M_PI))); +UNSUPPORTED("9c6vacohw6o4p1e7voqrkz6n6"); // etaXMax -= ((2*M_PI) * floor((etaXMax - ep->eta1) / (2*M_PI))); +UNSUPPORTED("cwmxqy86krxnxsomsoybaspuc"); // etaYMax -= ((2*M_PI) * floor((etaYMax - ep->eta1) / (2*M_PI))); +UNSUPPORTED("dij74k8lt7yzvn6n6xmfq75n8"); // ep->xLeft = (etaXMin <= ep->eta2) +UNSUPPORTED("1ukn2pq6zv8y6a9fgougih6wt"); // ? (ep->cx + ep->a * cos(etaXMin) * ep->cosTheta - +UNSUPPORTED("aa4t9o7jjo8u8eqipf4kbzcq0"); // ep->b * sin(etaXMin) * ep->sinTheta) +UNSUPPORTED("3zjfvhmp6k0k6v7hdfkdlto1q"); // : MIN(ep->x1, ep->x2); +UNSUPPORTED("atkfn6kpphewnxtsynnmvfeel"); // ep->yUp = (etaYMin <= ep->eta2) +UNSUPPORTED("58sfpd21ohh829mr07sxluba8"); // ? (ep->cy + ep->a * cos(etaYMin) * ep->sinTheta + +UNSUPPORTED("exo6jd6mgq4ngv2kzclxi72p7"); // ep->b * sin(etaYMin) * ep->cosTheta) +UNSUPPORTED("3h3l4h9ad373p847bxm8pti3o"); // : MIN(ep->y1, ep->y2); +UNSUPPORTED("6y80nhe43fd7avmd01vjaydxv"); // ep->width = ((etaXMax <= ep->eta2) +UNSUPPORTED("9rbb1o9htcoqa6f7h6yld63s8"); // ? (ep->cx + ep->a * cos(etaXMax) * ep->cosTheta - +UNSUPPORTED("9abeby5gfh0jqgx8dk98hr2fc"); // ep->b * sin(etaXMax) * ep->sinTheta) +UNSUPPORTED("bhv1vywv9qd5ca6t99xgkzk17"); // : MAX(ep->x1, ep->x2)) - ep->xLeft; +UNSUPPORTED("2exid5xh3kknda3ysp93l9d3s"); // ep->height = ((etaYMax <= ep->eta2) +UNSUPPORTED("1wxk3315oh6f0xk0syz7qugv"); // ? (ep->cy + ep->a * cos(etaYMax) * ep->sinTheta + +UNSUPPORTED("1y457377scnua66r6tsljyj7u"); // ep->b * sin(etaYMax) * ep->cosTheta) +UNSUPPORTED("8imiuzth6v80tk5lgs51w60jr"); // : MAX(ep->y1, ep->y2)) - ep->yUp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6ux66xrlzxo48ong9gml2cqz6 +// static void initEllipse(ellipse_t * ep, double cx, double cy, double a, double b, double theta, double lambda1, double lambda2) +public static Object initEllipse(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("4qt5lx5lec9tzx3nexn72e2p0"); // initEllipse(ellipse_t * ep, double cx, double cy, double a, double b, +UNSUPPORTED("4fozc01yvrouj1drvzdcxx8tz"); // double theta, double lambda1, double lambda2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("90mx2sux5frp9aptmc8h9ye7y"); // ep->cx = cx; +UNSUPPORTED("52hr1pca3zdv84xe26bd4fgng"); // ep->cy = cy; +UNSUPPORTED("2aclnqswxw7pae437ifnxl13f"); // ep->a = a; +UNSUPPORTED("36t2inuf67b2oiq7lep7z0zsh"); // ep->b = b; +UNSUPPORTED("76yrwughjo484aczhkqz91f8c"); // ep->theta = theta; +UNSUPPORTED("3lkrt052c6yilscp9h7qbjesg"); // ep->eta1 = atan2(sin(lambda1) / b, cos(lambda1) / a); +UNSUPPORTED("b583gqgxa482v3bdcaa3hmw6q"); // ep->eta2 = atan2(sin(lambda2) / b, cos(lambda2) / a); +UNSUPPORTED("cyam280f24o4coz4q6l0avz1t"); // ep->cosTheta = cos(theta); +UNSUPPORTED("a0l008pmkvmqfo8fhm5sr77zm"); // ep->sinTheta = sin(theta); +UNSUPPORTED("75g4xmc5yynuwuvgw4zi23c2l"); // // make sure we have eta1 <= eta2 <= eta1 + 2*PI +UNSUPPORTED("1kto59za5qccggp3qkrmli3lb"); // ep->eta2 -= (2*M_PI) * floor((ep->eta2 - ep->eta1) / (2*M_PI)); +UNSUPPORTED("4hr1qdifrsqwsjgm5wxg8i4zo"); // // the preceding correction fails if we have exactly eta2 - eta1 = 2*PI +UNSUPPORTED("2f6g4qg6bii7atjcpo9cpc4kg"); // // it reduces the interval to zero length +UNSUPPORTED("1ezgfy2ndbltclwxwp8oojvm"); // if ((lambda2 - lambda1 > M_PI) && (ep->eta2 - ep->eta1 < M_PI)) { +UNSUPPORTED("bynickn53la7xh8nqg3h8i1w"); // ep->eta2 += (2*M_PI); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cccwh34t2pmjflf3kvq62r2x7"); // computeFoci(ep); +UNSUPPORTED("wwi2rzhppnx0345v75k7kshh"); // computeEndPoints(ep); +UNSUPPORTED("7i38ish6k60higbgoc0t6zryh"); // computeBounds(ep); +UNSUPPORTED("8fv18ee53q0sd6joolf3c8tjf"); // /* Flatness parameters */ +UNSUPPORTED("5xixk4yhld5skmu6j7lpzrkg5"); // ep->f = (ep->a - ep->b) / ep->a; +UNSUPPORTED("6dycpzwekx4x3ruzple8snldz"); // ep->e2 = ep->f * (2.0 - ep->f); +UNSUPPORTED("adhmukdd7ygvxewqssb73dt59"); // ep->g = 1.0 - ep->f; +UNSUPPORTED("1e4mn2c02ynfoqykfwkqf80y7"); // ep->g2 = ep->g * ep->g; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 modnvis05b2ap40fth36fsbx +// typedef double erray_t[2][4][4] + + +//1 c28e3zyflxpxh5u2y5l9lxth7 +// static erray_t coeffs2Low = + + +//1 8xpyyldrcpysiemcf8n5fzkce +// static erray_t coeffs2High = + + +//1 8srrrv3xnjrk83hlma25mqog0 +// static double safety2[] = + + +//1 c8as7txd6r6suzmt2cdon5boo +// static erray_t coeffs3Low = + + +//1 5530t4mftd6n4c3wvqkmwe6pb +// static erray_t coeffs3High = + + +//1 4jjyqprhu52o35a0x8um9rzbj +// static double safety3[] = + + + + +//3 f45byv8jwcavrwa02m57bsq2f +// static double estimateError(ellipse_t * ep, int degree, double etaA, double etaB) +public static Object estimateError(Object... arg) { +UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("81pe9jboqg99odbe4gatii9o5"); // estimateError(ellipse_t * ep, int degree, double etaA, double etaB) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4nqjmzm78sbspzbbvh83l1wqj"); // double c0, c1, eta = 0.5 * (etaA + etaB); +UNSUPPORTED("ei3ryx6a8qmb3j08w0r38fm5m"); // if (degree < 2) { +UNSUPPORTED("bafgj5541k02iovom9pghd35i"); // // start point +UNSUPPORTED("al3j4ybn9xey3d8hxfovxes0r"); // double aCosEtaA = ep->a * cos(etaA); +UNSUPPORTED("6j0wqgniqhykqlxzy5nfjkcht"); // double bSinEtaA = ep->b * sin(etaA); +UNSUPPORTED("5v68bplm2zxmrq1941oy9c0he"); // double xA = +UNSUPPORTED("7hlnzbhb4vu0s8m3iekr9hs7i"); // ep->cx + aCosEtaA * ep->cosTheta - bSinEtaA * ep->sinTheta; +UNSUPPORTED("bakm3osn3jh0yvyhjtb8auiqf"); // double yA = +UNSUPPORTED("25tfmxpd3xeq7idm8hg6smumu"); // ep->cy + aCosEtaA * ep->sinTheta + bSinEtaA * ep->cosTheta; +UNSUPPORTED("57vo4lo58ualncbhe0g66qqxo"); // // end point +UNSUPPORTED("e1lvbiz37gwq3w3lsbwmywejy"); // double aCosEtaB = ep->a * cos(etaB); +UNSUPPORTED("6g4xkqaa3vkriejl85k6d6ip8"); // double bSinEtaB = ep->b * sin(etaB); +UNSUPPORTED("5b70fbxrii2h834flkxu129e3"); // double xB = +UNSUPPORTED("ctwnvvfffsf081yo227cp2slu"); // ep->cx + aCosEtaB * ep->cosTheta - bSinEtaB * ep->sinTheta; +UNSUPPORTED("74m124l1fdd7igt4ja3mvquo1"); // double yB = +UNSUPPORTED("efdfyhsh3wk8cpsn3nrf1ib7m"); // ep->cy + aCosEtaB * ep->sinTheta + bSinEtaB * ep->cosTheta; +UNSUPPORTED("d6dlj9oid3ny4l1nt34bpj05b"); // // maximal error point +UNSUPPORTED("9mm8mdhifxed86jq3pangsa8k"); // double aCosEta = ep->a * cos(eta); +UNSUPPORTED("4rv2z0s2o3hox4otx4uyxx16r"); // double bSinEta = ep->b * sin(eta); +UNSUPPORTED("53v1o3w0oa8nltejmlnlem1c8"); // double x = +UNSUPPORTED("ddk8om4owxtmb9qebyops2xgx"); // ep->cx + aCosEta * ep->cosTheta - bSinEta * ep->sinTheta; +UNSUPPORTED("d6e8tgeqiqg1hn73iswv050l5"); // double y = +UNSUPPORTED("6jzcvmj8xlc2s6kq5pn8zgiq1"); // ep->cy + aCosEta * ep->sinTheta + bSinEta * ep->cosTheta; +UNSUPPORTED("7shptv1gfgw2txdkiohaew5qu"); // double dx = xB - xA; +UNSUPPORTED("7q4tonxuivpv3r60br713u8cw"); // double dy = yB - yA; +UNSUPPORTED("7dxwccoxgtghiyyg2nbgngdrt"); // return abs(x * dy - y * dx + xB * yA - xA * yB) +UNSUPPORTED("6ttfnx9a8ob4ukzb7oecubvg9"); // / sqrt(dx * dx + dy * dy); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("2y5n6pky28slb57ykhvtcp62n"); // double x = ep->b / ep->a; +UNSUPPORTED("2csh64kflwrp07e3dwv9oz03t"); // double dEta = etaB - etaA; +UNSUPPORTED("et9z35jbfy808p3b42ps137cy"); // double cos2 = cos(2 * eta); +UNSUPPORTED("asyn8y03tdpjngvspmbkqth8c"); // double cos4 = cos(4 * eta); +UNSUPPORTED("dbgklearxausxvblrhmwm69km"); // double cos6 = cos(6 * eta); +UNSUPPORTED("a58pvybppvlmnbdyx45xdpyzw"); // // select the right coefficient's set according to degree and b/a +UNSUPPORTED("2258kkvkn5md3tcdny03b96k2"); // double (*coeffs)[4][4]; +UNSUPPORTED("1ukfunkznhy5tkck4go86qhv9"); // double *safety; +UNSUPPORTED("1o8yyd7ow42gdsrc8ewk6le6n"); // if (degree == 2) { +UNSUPPORTED("41zkkw49rrvzklq1eqh9s2s9r"); // coeffs = (x < 0.25) ? coeffs2Low : coeffs2High; +UNSUPPORTED("cg5jc2ey7bz90ddwt40jqnapb"); // safety = safety2; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("9rtt3vwq0rhvfakl2i8tdk8be"); // coeffs = (x < 0.25) ? coeffs3Low : coeffs3High; +UNSUPPORTED("egps64f0a68wnh3q6fx4p2ysy"); // safety = safety3; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("eml5k8qxnrchzpqnm01ruuwqo"); // c0 = ((x * (x * coeffs[0][0][0] + coeffs[0][0][1]) + coeffs[0][0][2]) / (x + coeffs[0][0][3])) +UNSUPPORTED("cqxpgi4zr6bvyfr0o4mp6rd5s"); // + cos2 * ((x * (x * coeffs[0][1][0] + coeffs[0][1][1]) + coeffs[0][1][2]) / (x + coeffs[0][1][3])) +UNSUPPORTED("b2eaiaddcuwhzq50t4gatlzww"); // + cos4 * ((x * (x * coeffs[0][2][0] + coeffs[0][2][1]) + coeffs[0][2][2]) / (x + coeffs[0][2][3])) +UNSUPPORTED("3d527fertf5i60a5fk29pct9d"); // + cos6 * ((x * (x * coeffs[0][3][0] + coeffs[0][3][1]) + coeffs[0][3][2]) / (x + coeffs[0][3][3])); +UNSUPPORTED("c6s11bu0ckntk4q6dyit2jxic"); // c1 = ((x * (x * coeffs[1][0][0] + coeffs[1][0][1]) + coeffs[1][0][2]) / (x + coeffs[1][0][3])) +UNSUPPORTED("f3pfupz6exjm23p6vys39euar"); // + cos2 * ((x * (x * coeffs[1][1][0] + coeffs[1][1][1]) + coeffs[1][1][2]) / (x + coeffs[1][1][3])) +UNSUPPORTED("bgs8cv8obm3ryyjj229tlmswm"); // + cos4 * ((x * (x * coeffs[1][2][0] + coeffs[1][2][1]) + coeffs[1][2][2]) / (x + coeffs[1][2][3])) +UNSUPPORTED("azmk1qgarnulp3giuvas37jno"); // + cos6 * ((x * (x * coeffs[1][3][0] + coeffs[1][3][1]) + coeffs[1][3][2]) / (x + coeffs[1][3][3])); +UNSUPPORTED("1ky4r4vl6t393yk9kbgw7bh2x"); // return ((x * (x * safety[0] + safety[1]) + safety[2]) / (x + safety[3])) * ep->a * exp(c0 + c1 * dEta); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 70xw8j1k8uyzbal94r6eojd9y +// static int bufsize + + + + +//3 6ob4t12ro0s6l779gciak3bch +// static void moveTo(Ppolyline_t * path, double x, double y) +public static Object moveTo(Object... arg) { +UNSUPPORTED("1hy4wd0k1zued4le59e0n2zc2"); // static void moveTo(Ppolyline_t * path, double x, double y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3wse6f3637ka6m9l7uw8u00zs"); // bufsize = 100; +UNSUPPORTED("36x1yvktu0m3dauxwru23h4he"); // path->ps = (pointf*)zmalloc((bufsize)*sizeof(pointf)); +UNSUPPORTED("3jdc8ww9wt3jm2on3wzk2iicp"); // path->ps[0].x = x; +UNSUPPORTED("2ott6971tzqm0pgv2ntsp6xmq"); // path->ps[0].y = y; +UNSUPPORTED("blxf8yf4uhyfflf4s704tdny4"); // path->pn = 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 92tacqag0enwgnsai827dzvj +// static void curveTo(Ppolyline_t * path, double x1, double y1, double x2, double y2, double x3, double y3) +public static Object curveTo(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("8wpj32rf7vxw5vksq9xbd723q"); // curveTo(Ppolyline_t * path, double x1, double y1, +UNSUPPORTED("d9cxkpd6vb2ake96idw50f8p4"); // double x2, double y2, double x3, double y3) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3ffriosb52yi4g0r0rfskyuh2"); // if (path->pn + 3 >= bufsize) { +UNSUPPORTED("89opqpdbhaunecn3x2fhgoqi1"); // bufsize *= 2; +UNSUPPORTED("el037gz5k64eu70ci3r4jz1fg"); // path->ps = realloc(path->ps, bufsize * sizeof(pointf)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cnq0jqrsqam2tzexsj9ljdacb"); // path->ps[path->pn].x = x1; +UNSUPPORTED("eb422k88tthew61m5cvgev4zm"); // path->ps[path->pn++].y = y1; +UNSUPPORTED("7tynfe9ozr1hbls4dy97cydmg"); // path->ps[path->pn].x = x2; +UNSUPPORTED("5n2xvadiyrbz2jru3tqre1yia"); // path->ps[path->pn++].y = y2; +UNSUPPORTED("9sdwwiwapq125zwfw36v6hq0n"); // path->ps[path->pn].x = x3; +UNSUPPORTED("3dhx7b3v7gj0wtqehfwnjh7ql"); // path->ps[path->pn++].y = y3; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5wgj2c7ammc2srsk18ybblucr +// static void lineTo(Ppolyline_t * path, double x, double y) +public static Object lineTo(Object... arg) { +UNSUPPORTED("4788edx5cz2g1llvg7gdrhgkb"); // static void lineTo(Ppolyline_t * path, double x, double y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7bwr2izdyqrsr0jge28mgc6h7"); // pointf curp = path->ps[path->pn - 1]; +UNSUPPORTED("6uibs0390x3y4023ll8jz3mtf"); // curveTo(path, curp.x, curp.y, x, y, x, y); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4si3gfp3na9r1cx2rppxmqocc +// static void endPath(Ppolyline_t * path, boolean close) +public static Object endPath(Object... arg) { +UNSUPPORTED("a3i3545ftylhs0w17yipx92xr"); // static void endPath(Ppolyline_t * path, boolean close) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("125u8ocmya1ui6f2vy92ys41c"); // if (close) { +UNSUPPORTED("3djonfjd3xbwxbodqwx1skugw"); // pointf p0 = path->ps[0]; +UNSUPPORTED("71o5tbu2chebztr0guygypx2z"); // lineTo(path, p0.x, p0.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("encppe3huv4mp2ji9ia8we1rf"); // path->ps = realloc(path->ps, path->pn * sizeof(pointf)); +UNSUPPORTED("dq633y7scsa3qogdlcv98ujt4"); // bufsize = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b76b8i1fllarol9vjfahw6uya +// static Ppolyline_t *genEllipticPath(ellipse_t * ep, int degree, double threshold, boolean isSlice) +public static Object genEllipticPath(Object... arg) { +UNSUPPORTED("91sbkwh00nzifuk95ozdary4"); // static Ppolyline_t *genEllipticPath(ellipse_t * ep, int degree, +UNSUPPORTED("1jho2qfx5zatpnhywq7fypo"); // double threshold, boolean isSlice) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aowovz5r9m2dfhwxk2moegfwg"); // double dEta; +UNSUPPORTED("cbeyotgoz8sj8w1p2ma1po8yg"); // double etaB; +UNSUPPORTED("31to79oaw2rkhf29ccrl20mj2"); // double cosEtaB; +UNSUPPORTED("b8gcx58tzmh72ms4ssnot545i"); // double sinEtaB; +UNSUPPORTED("4eacqyzdlewxnmaedlule7mx8"); // double aCosEtaB; +UNSUPPORTED("8oztmyi1wky7n2k1gjxw5k2kf"); // double bSinEtaB; +UNSUPPORTED("1kstfc0e2hdfd15g9e9uvr53g"); // double aSinEtaB; +UNSUPPORTED("9rgvt9yas8ku0zhgttge30k3x"); // double bCosEtaB; +UNSUPPORTED("dpyf0oqvxn4itklm9k5eo1fif"); // double xB; +UNSUPPORTED("di8gcqpn4bf80nprjr1q526q4"); // double yB; +UNSUPPORTED("89sledhxl1y6gptmb75g76trn"); // double xBDot; +UNSUPPORTED("aau6f1pgrltq35uj7q9zcuevw"); // double yBDot; +UNSUPPORTED("6wfj8onzmd4ihhh62dqfmqpbx"); // double t; +UNSUPPORTED("7y0h5n9q9sdwej5muoboxjtl8"); // double alpha; +UNSUPPORTED("6gfec3zgd4i523lz512hts9ly"); // Ppolyline_t *path = (Ppolyline_t*)zmalloc(sizeof(Ppolyline_t)); +UNSUPPORTED("dh1qpynvja9ozx3mmd9xuy10i"); // // find the number of Bezier curves needed +UNSUPPORTED("ar4ns635419133da91e2k1etc"); // boolean found = 0; +UNSUPPORTED("8w8z8tst3x20ezyvmfejrucxb"); // int i, n = 1; +UNSUPPORTED("41b6xd1eatvjppvf8h03krn8u"); // while ((!found) && (n < 1024)) { +UNSUPPORTED("f2apscs44h7zvtbyq6zuf5leb"); // double dEta = (ep->eta2 - ep->eta1) / n; +UNSUPPORTED("z2j1gwsh2yqpq6i9hqsygpn7"); // if (dEta <= 0.5 * M_PI) { +UNSUPPORTED("5ypdcm9cz1l4o6qvyhn7lusyw"); // double etaB = ep->eta1; +UNSUPPORTED("3rhtrb7nj3d17mymh37964wkq"); // found = NOT(0); +UNSUPPORTED("dmx4u8plzqizvbw217h1c18v0"); // for (i = 0; found && (i < n); ++i) { +UNSUPPORTED("1owrp5mnc0asdgluskbl1mc2t"); // double etaA = etaB; +UNSUPPORTED("cpmqpv752wy651vgw5t9u64dp"); // etaB += dEta; +UNSUPPORTED("abj2hmy07ynfglx6g7zr1f6ne"); // found = +UNSUPPORTED("6vs1fqoounnf8ofyr68pb75xn"); // (estimateError(ep, degree, etaA, etaB) <= threshold); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9ei4d4anf86nhrp9dfszb6ff5"); // n = n << 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8glirgejroxk9jsnn8oejt27z"); // dEta = (ep->eta2 - ep->eta1) / n; +UNSUPPORTED("394kiqtci2payvw1njliknrih"); // etaB = ep->eta1; +UNSUPPORTED("2ve4a5xpd6fkmbne0apabjwlq"); // cosEtaB = cos(etaB); +UNSUPPORTED("1rbfssozfn3y0rahc86urmbxz"); // sinEtaB = sin(etaB); +UNSUPPORTED("81sh0z0xif6urj4v0h9absql5"); // aCosEtaB = ep->a * cosEtaB; +UNSUPPORTED("7odi6naflbbvvowb3vp5gtyhd"); // bSinEtaB = ep->b * sinEtaB; +UNSUPPORTED("7luv4wv6c1jfj68avkop12sdz"); // aSinEtaB = ep->a * sinEtaB; +UNSUPPORTED("jebv6n0pxm00athds44rw762"); // bCosEtaB = ep->b * cosEtaB; +UNSUPPORTED("aaqx8hl76xuq6qx64odpwxjsy"); // xB = ep->cx + aCosEtaB * ep->cosTheta - bSinEtaB * ep->sinTheta; +UNSUPPORTED("a7epwiprisvk7hatwz29e81vn"); // yB = ep->cy + aCosEtaB * ep->sinTheta + bSinEtaB * ep->cosTheta; +UNSUPPORTED("cx4qajzc2uxg7xihh8j3ydlmd"); // xBDot = -aSinEtaB * ep->cosTheta - bCosEtaB * ep->sinTheta; +UNSUPPORTED("f2a8vdqh1dkv7gnwr4536d6af"); // yBDot = -aSinEtaB * ep->sinTheta + bCosEtaB * ep->cosTheta; +UNSUPPORTED("7pkr7zujmkk8j0xh1n1ivj8i1"); // if (isSlice) { +UNSUPPORTED("csdxg3xqeagn92mcrjyq40r5c"); // moveTo(path, ep->cx, ep->cy); +UNSUPPORTED("1fqyscfa9fwuf5n2rhjn4nvuj"); // lineTo(path, xB, yB); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("6htku7y9bbpib1fzlig3k9ial"); // moveTo(path, xB, yB); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8oqm5tqho5p9xkljdyubg0zur"); // t = tan(0.5 * dEta); +UNSUPPORTED("97rqqc2zbf5t0if1dkm0j3um1"); // alpha = sin(dEta) * (sqrt(4 + 3 * t * t) - 1) / 3; +UNSUPPORTED("8hfre4wnsmu5vg8bloua9pt0x"); // for (i = 0; i < n; ++i) { +UNSUPPORTED("1f7sp0cdfz66t9m125f6bwj0a"); // double xA = xB; +UNSUPPORTED("3qungfyrl8d4zazdrtnoqi7bj"); // double yA = yB; +UNSUPPORTED("djs8dfefd0tw9q6sty5q9kb6x"); // double xADot = xBDot; +UNSUPPORTED("5s7fznr9wo7tb01tnkzy3a9x0"); // double yADot = yBDot; +UNSUPPORTED("9zmdugqhtonbk2uax4r1smfp0"); // etaB += dEta; +UNSUPPORTED("40atcaschllkhc48gvgcctqqx"); // cosEtaB = cos(etaB); +UNSUPPORTED("3wk53wrbggqm9bldp0x0imauu"); // sinEtaB = sin(etaB); +UNSUPPORTED("cgtssyu17hyr1izu0kd9zqyb2"); // aCosEtaB = ep->a * cosEtaB; +UNSUPPORTED("5w40g6uq2np9av26cpdk9i9b4"); // bSinEtaB = ep->b * sinEtaB; +UNSUPPORTED("3b4sjubnmli66nlqf5q3q3719"); // aSinEtaB = ep->a * sinEtaB; +UNSUPPORTED("7nqyo2i7o0i5814kpz1t8fvkf"); // bCosEtaB = ep->b * cosEtaB; +UNSUPPORTED("orxom0ksatjcwil29m8c8xpr"); // xB = ep->cx + aCosEtaB * ep->cosTheta - bSinEtaB * ep->sinTheta; +UNSUPPORTED("9y4re0bc7gs6ezwo6dc6qq99n"); // yB = ep->cy + aCosEtaB * ep->sinTheta + bSinEtaB * ep->cosTheta; +UNSUPPORTED("7m8ftuaslxmui9i3e48skp9jg"); // xBDot = -aSinEtaB * ep->cosTheta - bCosEtaB * ep->sinTheta; +UNSUPPORTED("8m21k2haq7dcptayx554yipuh"); // yBDot = -aSinEtaB * ep->sinTheta + bCosEtaB * ep->cosTheta; +UNSUPPORTED("1mkkhdqaw4q68ikbcimj4nnhm"); // if (degree == 1) { +UNSUPPORTED("4y2q0gdsegz0qgrxygnze69gy"); // lineTo(path, xB, yB); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("8szp6o6pmribq5pnz7f822m68"); // curveTo(path, (xA + alpha * xADot), (yA + alpha * yADot), +UNSUPPORTED("e24ni1b4ssyrj0fchznzlca7f"); // (xB - alpha * xBDot), (yB - alpha * yBDot), xB, yB); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("drbttufba5uy7q29k27vn86q2"); // endPath(path, isSlice); +UNSUPPORTED("1funi6zh0ilqaehngcqcvj4dv"); // return path; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ee3uvbiaoz1oj4yogh3160ow8 +// Ppolyline_t *ellipticWedge(pointf ctr, double xsemi, double ysemi, double angle0, double angle1) +public static Object ellipticWedge(Object... arg) { +UNSUPPORTED("451xfygtsc86bfhvc33x9gzww"); // Ppolyline_t *ellipticWedge(pointf ctr, double xsemi, double ysemi, +UNSUPPORTED("578jtluj0t4iz6w97uoncr9mi"); // double angle0, double angle1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b1pam4t64t0vpc7cazx2uxqpw"); // ellipse_t ell; +UNSUPPORTED("8b9keoeetrhid6hvr0lbl3p9l"); // Ppolyline_t *pp; +UNSUPPORTED("wm5wmb9qw0libmt58lrk9ql5"); // initEllipse(&ell, ctr.x, ctr.y, xsemi, ysemi, 0, angle0, angle1); +UNSUPPORTED("18dpm0f93alpm6wn3gvtr5a18"); // pp = genEllipticPath(&ell, 3, 0.00001, 1); +UNSUPPORTED("7etsvryh248syh0l6ag8lcsi2"); // return pp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/emit__c.java plantuml-8039/src/gen/lib/common/emit__c.java --- plantuml-8024/src/gen/lib/common/emit__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/emit__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,5231 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static gen.lib.cgraph.attr__c.agget; +import static gen.lib.common.geom__c.ptToLine2; +import static gen.lib.common.utils__c.Bezier; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agraph_s; +import h.boxf; +import h.pointf; +import h.xdot; +import smetana.core.CString; +import smetana.core.__array_of_struct__; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class emit__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7udip7yo3ddkp9ocjftokpm9y +// void* init_xdot (Agraph_t* g) +public static __ptr__ init_xdot(Agraph_s g) { +ENTERING("7udip7yo3ddkp9ocjftokpm9y","init_xdot"); +try { + CString p; + xdot xd = null; + if (N((p = agget(g, new CString("_background")))!=null && p.charAt(0)!='\0')) { + if (N((p = agget(g, new CString("_draw_")))!=null && p.charAt(0)!='\0')) { + return null; + } + } +UNSUPPORTED("16fu50ud9qppkwxzdy0nde3lm"); // xd = parseXDotF (p, NULL, sizeof (exdot_op)); +UNSUPPORTED("1x2xrqe9on9i2dlb07gj02n65"); // if (!xd) { +UNSUPPORTED("b4emzm37tsv7edlai0fhwoul1"); // agerr(AGWARN, "Could not parse \"_background\" attribute in graph %s\n", agnameof(g)); +UNSUPPORTED("72v3r8ey2hvh1o9qskrji8im4"); // agerr(AGPREV, " \"%s\"\n", p); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("jujeh27uxxeyas8n09tnlnbu"); // return xd; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("7udip7yo3ddkp9ocjftokpm9y","init_xdot"); +} +} + + +//1 2mlc0h4j6tfwqvwqa6hyvz4o5 +// static char *defaultlinestyle[3] = + + + + +//3 7d00uua41zvsvxe77gttfnmy +// obj_state_t* push_obj_state(GVJ_t *job) +public static Object push_obj_state(Object... arg) { +UNSUPPORTED("epyu2q1m9hozws9k2sjri40sa"); // obj_state_t* push_obj_state(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e468kl46d9gv50x67guzl3gvx"); // obj_state_t *obj, *parent; +UNSUPPORTED("4iwsnw8sdl14e952mea0vbirj"); // if (! (obj = zmalloc(sizeof(obj_state_t)))) +UNSUPPORTED("ehd3dhcaq9t6u9bppvv8uk9pq"); // agerr(AGERR, "no memory from zmalloc()\n"); +UNSUPPORTED("4sj5l7lrob40gejr8efmsh7jd"); // parent = obj->parent = job->obj; +UNSUPPORTED("cymxgixtrn3cty2dfm0f5n993"); // job->obj = obj; +UNSUPPORTED("2yxuvhwao8vnwsdql2towwn8a"); // if (parent) { +UNSUPPORTED("at60efb0o2t6r5j89rkvnvmmz"); // obj->pencolor = parent->pencolor; /* default styles to parent's style */ +UNSUPPORTED("2i4ng2pvtum10vrqr1k5jmdhy"); // obj->fillcolor = parent->fillcolor; +UNSUPPORTED("er3gsvbhtbl0f2njgt05z1ula"); // obj->pen = parent->pen; +UNSUPPORTED("e20x3563jh67vt1lll5yvztoa"); // obj->fill = parent->fill; +UNSUPPORTED("1vf36pbannt87rqhdedfp9tzg"); // obj->penwidth = parent->penwidth; +UNSUPPORTED("bm8svjgexuo58jrlla94c7lmf"); // obj->gradient_angle = parent->gradient_angle; +UNSUPPORTED("96a2xfansfphgn02ik2pzbgsk"); // obj->stopcolor = parent->stopcolor; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("2hztnghjdrq4iblkkiw28e6lp"); // /* obj->pencolor = NULL */ +UNSUPPORTED("f1vt7k6jpnvkr3l5hnrufbo7n"); // /* obj->fillcolor = NULL */ +UNSUPPORTED("1d8vwhh78wsjnjv3b66v7k71f"); // obj->pen = PEN_SOLID; +UNSUPPORTED("327rx5pyklem7b31hdikywlqb"); // obj->fill = FILL_NONE; +UNSUPPORTED("8jey9s92w1zm7gze74a8q4dp6"); // obj->penwidth = 1.; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5ps6tm8zierqwp3ptuy9ntbwr"); // return obj; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 fky2di67il17v6esshx73u77 +// void pop_obj_state(GVJ_t *job) +public static Object pop_obj_state(Object... arg) { +UNSUPPORTED("b5pcmjz1yx45rkkn6ihfese3y"); // void pop_obj_state(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("cvrjqjl5r3cwa1izxxgzgzrap"); // assert(obj); +UNSUPPORTED("1ngdn0iitk41tdtce8t4ip3nx"); // free(obj->id); +UNSUPPORTED("4di6e9e0vvr37qbzgje4ludyv"); // free(obj->url); +UNSUPPORTED("11bs83ywfvb5bc5pmq26xjbe1"); // free(obj->labelurl); +UNSUPPORTED("4iclkuumd2z23hcz3vtlmij9v"); // free(obj->tailurl); +UNSUPPORTED("7w1xqpnr4u8nds6opogcbvnya"); // free(obj->headurl); +UNSUPPORTED("b8dl0ih21bsnryi1pxe5tgqjp"); // free(obj->tooltip); +UNSUPPORTED("9l3frodyf6j4nlcj24te5nrwp"); // free(obj->labeltooltip); +UNSUPPORTED("tl0hkuk7y0kr8oegohd0xg83"); // free(obj->tailtooltip); +UNSUPPORTED("8td9te5re4sfu60jumgh7qvpd"); // free(obj->headtooltip); +UNSUPPORTED("azi0jshcues9wq2154bdnsfdu"); // free(obj->target); +UNSUPPORTED("1bv7lwtfb303gq0pr61b5ie5e"); // free(obj->labeltarget); +UNSUPPORTED("36xt1x2kwfa0fj8scj17o65hk"); // free(obj->tailtarget); +UNSUPPORTED("eikpmw4wrmt4519cz2ixxv4hn"); // free(obj->headtarget); +UNSUPPORTED("5g6xu70y47jbf9u1izz9d7lqm"); // free(obj->url_map_p); +UNSUPPORTED("9d3byqiz2l6m12o73jh9el0av"); // free(obj->url_bsplinemap_p); +UNSUPPORTED("e2337piojwep89s9v6hvret9f"); // free(obj->url_bsplinemap_n); +UNSUPPORTED("36q9rct12zy148w6hckc97kcj"); // job->obj = obj->parent; +UNSUPPORTED("8are8jqzwfj87yj4tkaohi3tf"); // free(obj); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 z4e7tnt40d3c4kv5u7cyhl9x +// int initMapData (GVJ_t* job, char* lbl, char* url, char* tooltip, char* target, char *id, void* gobj) +public static Object initMapData(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("1r7179s3ntgv42pdh8lf7ri6p"); // initMapData (GVJ_t* job, char* lbl, char* url, char* tooltip, char* target, char *id, +UNSUPPORTED("us8je5vaodb65uh2al1w1c3h"); // void* gobj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("12bpksga44s9sfl7x8xn2rt2k"); // int flags = job->flags; +UNSUPPORTED("5x4jq493dtdcx7z85qo0l2vwm"); // int assigned = 0; +UNSUPPORTED("9c0gci8o1tk34epj1ssmue4dx"); // if ((flags & (1<<15)) && lbl) +UNSUPPORTED("6hfoiuvpq4uvwmw4pxqqcjro6"); // obj->label = lbl; +UNSUPPORTED("ekhzvq8l2u2frs2tl01cuf71s"); // if (flags & (1<<16)) { +UNSUPPORTED("5u6uuo67mo3c4f2ojvfudltt5"); // obj->id = strdup_and_subst_obj(id, gobj); +UNSUPPORTED("rss1781s9o1r7w5npkmc0bmg"); // if (url && url[0]) { +UNSUPPORTED("1sruesngpnjzqoec5jwxwxwj8"); // obj->url = strdup_and_subst_obj(url, gobj); +UNSUPPORTED("e9av6ob52m06dxds7d0uontab"); // assigned = 1; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ep9t9tvrtouwjd7pulp378fzi"); // if (flags & (1<<22)) { +UNSUPPORTED("ccrueeib4dlvmyrlpzxl572jv"); // if (tooltip && tooltip[0]) { +UNSUPPORTED("96zad8kmhopk7wo5xdyxacpl0"); // obj->tooltip = strdup_and_subst_obj(tooltip, gobj); +UNSUPPORTED("3fiobhu1ragr2f099ghsonx1h"); // obj->explicit_tooltip = NOT(0); +UNSUPPORTED("e9av6ob52m06dxds7d0uontab"); // assigned = 1; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("a3azuqia2enebzovqhpnhquvj"); // else if (obj->label) { +UNSUPPORTED("2l7dzbw9rqphv63paqq8wvbrc"); // obj->tooltip = strdup(obj->label); +UNSUPPORTED("e9av6ob52m06dxds7d0uontab"); // assigned = 1; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4lne2bv62nrpmlhj27vxjy1f6"); // if ((flags & (1<<23)) && target && target[0]) { +UNSUPPORTED("ebgucy53hwmcaz1m04q7dolf4"); // obj->target = strdup_and_subst_obj(target, gobj); +UNSUPPORTED("3wreyz9de84yyv079xk4ujkv3"); // assigned = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2zpk6us1pyyltxkpge8hnuyn2"); // return assigned; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d74beympg4wulmk8p6lh8daql +// static void layerPagePrefix (GVJ_t* job, agxbuf* xb) +public static Object layerPagePrefix(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("6djudoziuh8bcxd8oxm1qch58"); // layerPagePrefix (GVJ_t* job, agxbuf* xb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8gm1i2tpkqevee6guh43vbzjg"); // char buf[128]; /* large enough for 2 decimal 64-bit ints and "page_," */ +UNSUPPORTED("cxr89wmz3j80aqc8410masvdn"); // if (job->layerNum > 1 && (job->flags & (1<<6))) { +UNSUPPORTED("bmg9rcy7b1x6gh95ojpwla6i8"); // agxbput (xb, job->gvc->layerIDs[job->layerNum]); +UNSUPPORTED("7eax6z8h47h2x1xxyqr1tkluc"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)'_'))); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("age7jtxi8adhl9jz4ne7xdp80"); // if ((job->pagesArrayElem.x > 0) || (job->pagesArrayElem.x > 0)) { +UNSUPPORTED("cnwkbrftohdks7u707na56420"); // sprintf (buf, "page%d,%d_", job->pagesArrayElem.x, job->pagesArrayElem.y); +UNSUPPORTED("2i6wv75y4aki5i8plhbvy276v"); // agxbput (xb, buf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3uk5ht4qhgq91m46lw7xtdx8q +// char* getObjId (GVJ_t* job, void* obj, agxbuf* xb) +public static Object getObjId(Object... arg) { +UNSUPPORTED("cqm25rponse4rsi686sbn1lo0"); // char* +UNSUPPORTED("cxy7pg7aplrpxxilr17uxmir1"); // getObjId (GVJ_t* job, void* obj, agxbuf* xb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e7icadj7xe1r3gypdnhaaqh0z"); // char* id; +UNSUPPORTED("c34mxcvhpn9flzo7mx3jta9v6"); // graph_t* root = job->gvc->g; +UNSUPPORTED("4vz75ugb6dvgui5r4b3vha9w5"); // char* gid = GD_drawing(root)->id; +UNSUPPORTED("b6fudxfj7yzgmij9ar0axs3cs"); // long idnum; +UNSUPPORTED("1y49dkdztswfqp8gc2fsgsfjt"); // char* pfx; +UNSUPPORTED("42dnqesv46qi3oy4hhv4xtngt"); // char buf[64]; /* large enough for a decimal 64-bit int */ +UNSUPPORTED("eyzyn1uwtp0eb367awnyqsnu9"); // layerPagePrefix (job, xb); +UNSUPPORTED("4ivnihqhlqxt5urta85bj8cvo"); // id = agget(obj, "id"); +UNSUPPORTED("b5lnfc5x2s74jwjfi17neykdl"); // if (id && (*id != '\0')) { +UNSUPPORTED("h8d3b8qgeb1asgpckee022dh"); // agxbput (xb, id); +UNSUPPORTED("7q3mbxgjfr96cttjsdev54twj"); // return (((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)'\0'))),(char*)((xb)->ptr = (xb)->buf)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("442w4uruys9gula2urpooqejy"); // if ((obj != root) && gid) { +UNSUPPORTED("b58nurhwbw66quisr070n2wi8"); // agxbput (xb, gid); +UNSUPPORTED("7eax6z8h47h2x1xxyqr1tkluc"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)'_'))); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("91broiy562bqiwualvjbh1l0s"); // switch (agobjkind(obj)) { +UNSUPPORTED("eyna33dobiebmtd0nihpgura4"); // case AGRAPH: +UNSUPPORTED("250ofmvxldcwzahtn4zl83wcq"); // idnum = AGSEQ(obj); +UNSUPPORTED("7ivrapxz56e3axqq0wlp2c84o"); // if (root == obj) +UNSUPPORTED("8i5eqmk1n84h3oisk8qmr80fk"); // pfx = "graph"; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("eghyuptvw5kbqlkky78xkyqch"); // pfx = "clust"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6x7ztvlgv763oeop84udp1egg"); // case AGNODE: +UNSUPPORTED("dioszphfdf02j4mzkk1orixil"); // idnum = AGSEQ((Agnode_t*)obj); +UNSUPPORTED("24c6tv0vcpu7u1sf37b5vd6bn"); // pfx = "node"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("2dqikmmb6ag0anvbzo5tybf1r"); // case AGEDGE: +UNSUPPORTED("88j50o42ltjx7x5kljmhtaimc"); // idnum = AGSEQ((Agedge_t*)obj); +UNSUPPORTED("8dj6qoxln9rok8xeaycmhigg3"); // pfx = "edge"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("doz63noywyk8negzqyp5wtn7y"); // agxbput (xb, pfx); +UNSUPPORTED("9arliqoqxm070wy9ayr807ydh"); // sprintf (buf, "%ld", idnum); +UNSUPPORTED("4nzvose05k5ompo6nn67jyf82"); // agxbput (xb, buf); +UNSUPPORTED("ersrvcvo8qkfouomz222hiih7"); // return (((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)'\0'))),(char*)((xb)->ptr = (xb)->buf)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dcom8r4kkrsi0tbps20sjm7rl +// static void initObjMapData (GVJ_t* job, textlabel_t *lab, void* gobj) +public static Object initObjMapData(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("ezkgjtfltwmwf154o793aps7z"); // initObjMapData (GVJ_t* job, textlabel_t *lab, void* gobj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4m1ejpxv77loq6ojxpmbi77gc"); // char* lbl; +UNSUPPORTED("dr7hyuwqwq1d5pbc066tdwb5g"); // char* url = agget(gobj, "href"); +UNSUPPORTED("9eonbfqft5myxd7s5xqwvv974"); // char* tooltip = agget(gobj, "tooltip"); +UNSUPPORTED("5tk1r0qbghssa155we7canz54"); // char* target = agget(gobj, "target"); +UNSUPPORTED("e7icadj7xe1r3gypdnhaaqh0z"); // char* id; +UNSUPPORTED("h0or3v13348vfl22jqz895yc"); // unsigned char buf[128]; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("ci65k77x1b3nq6luu69s87oup"); // agxbinit(&xb, 128, buf); +UNSUPPORTED("e1z56ssmce7u8j50hn74nzs06"); // if (lab) lbl = lab->text; +UNSUPPORTED("bw2gbd060avck8ivr43eed32t"); // else lbl = NULL; +UNSUPPORTED("9kl6bihhj6lqk5907u9vx0svh"); // if (!url || !*url) /* try URL as an alias for href */ +UNSUPPORTED("5x0bbp126wunx54k3b5z6kqiv"); // url = agget(gobj, "URL"); +UNSUPPORTED("5n6h8udz66glqsnvzl6q0ax4d"); // id = getObjId (job, gobj, &xb); +UNSUPPORTED("5eb4m9ppzio68im6rq3z9owdi"); // initMapData (job, lbl, url, tooltip, target, id, gobj); +UNSUPPORTED("1at5m9ctjn3ukv5gqtfswik02"); // agxbfree(&xb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 hjkaeebrodvjebhg1hpg9z5e +// static void map_point(GVJ_t *job, pointf pf) +public static Object map_point(Object... arg) { +UNSUPPORTED("8blzxhihaqxozyztu9fj7nshg"); // static void map_point(GVJ_t *job, pointf pf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("12bpksga44s9sfl7x8xn2rt2k"); // int flags = job->flags; +UNSUPPORTED("aukx8c3dz83p6cpnh0fhhnqo8"); // pointf *p; +UNSUPPORTED("6ic0ku7wr32jsf5j0pwkrzq8j"); // if (flags & ((1<<16) | (1<<22))) { +UNSUPPORTED("68o2j7ic39aasjk49deprnnhh"); // if (flags & (1<<17)) { +UNSUPPORTED("69ud33lfpzxun6ls6bpequzo8"); // obj->url_map_shape = MAP_RECTANGLE; +UNSUPPORTED("d7uo4fiq8is4wmoeklxb9lrhm"); // obj->url_map_n = 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("5k8t4lz63jq26u2xqeoskhen7"); // obj->url_map_shape = MAP_POLYGON; +UNSUPPORTED("ah8hfbgy2ofsubklkazu04w4d"); // obj->url_map_n = 4; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9wnyoic97gd28arr56l0i8iy3"); // free(obj->url_map_p); +UNSUPPORTED("ec0oubjt8fhapkogfpg8s7y13"); // obj->url_map_p = p = (pointf*)zmalloc((obj->url_map_n)*sizeof(pointf)); +UNSUPPORTED("d7tqa8sc5yn0805hga1a0lhy2"); // (p[0].x = pf.x - 3, p[0].y = pf.y - 3, p[1].x = pf.x + 3, p[1].y = pf.y + 3); +UNSUPPORTED("cnadzqqicrskcdzko360llcg5"); // if (! (flags & (1<<13))) +UNSUPPORTED("9626u9a6bmyb4pqydfy9oe48w"); // gvrender_ptf_A(job, p, p, 2); +UNSUPPORTED("3qt79u8muuulxatmo48vjk6r3"); // if (! (flags & (1<<17))) +UNSUPPORTED("e0f10b7obog3b7z2tra14ajtx"); // rect2poly(p); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dlyzfsrfmu4fl7l50uzdvu3mc +// static char **checkClusterStyle(graph_t* sg, int *flagp) +public static Object checkClusterStyle(Object... arg) { +UNSUPPORTED("4fe1xtiblsit7upcg8o8vn11n"); // static char **checkClusterStyle(graph_t* sg, int *flagp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("byo308l1rmve5rmx8wt32juux"); // char *style; +UNSUPPORTED("1m69eum6fcxl62kbxksis88or"); // char **pstyle = 0; +UNSUPPORTED("1y4qclfm9xrlqe6oi5k512dih"); // int istyle = 0; +UNSUPPORTED("c77cb1sgh5mlnuscrdp9pxwm8"); // if (((style = agget(sg, "style")) != 0) && style[0]) { +UNSUPPORTED("h7xdp8l98vgmu8dkibee5kcm"); // char **pp; +UNSUPPORTED("9uleufnyvtzwmq2wbcnmeyp3a"); // char **qp; +UNSUPPORTED("1ys4x1uj0hoyf2yuvrmddwh9i"); // char *p; +UNSUPPORTED("6akvfrhnmmgier60pl8bkt42r"); // pp = pstyle = parse_style(style); +UNSUPPORTED("9vj0v0tutidnb2hxprdosjm39"); // while ((p = *pp)) { +UNSUPPORTED("e3mpm8potxtvjdd42cnwhluxl"); // if (strcmp(p, "filled") == 0) { +UNSUPPORTED("5uu1d9grveb0bmsov10mqrtj3"); // istyle |= (1 << 0); +UNSUPPORTED("5lcmi10wuwp3fyn36cloc29y3"); // pp++; +UNSUPPORTED("5fxeuc5zc3643ly5dyson06s5"); // }else if (strcmp(p, "radial") == 0) { +UNSUPPORTED("a3fnxu8lgm7c35op5nmoe8xj6"); // istyle |= ((1 << 0) | (1 << 1)); +UNSUPPORTED("9bo1rem63xdcqaveddsqb89y"); // qp = pp; /* remove rounded from list passed to renderer */ +UNSUPPORTED("21y8hlxutle9votbe86f2hfpl"); // do { +UNSUPPORTED("7ca407ksqxmxkuny8m7gr1rzj"); // qp++; +UNSUPPORTED("7jb3shp3mthw99uh3iir44z47"); // *(qp-1) = *qp; +UNSUPPORTED("1ujv3j8mb7i0c6nzdfgy27w4s"); // } while (*qp); +UNSUPPORTED("9wcwovvjpprmy66u5cc2hpy3i"); // }else if (strcmp(p, "striped") == 0) { +UNSUPPORTED("6tcwivyh9w6pmh1ys8hf9m48o"); // istyle |= (1 << 6); +UNSUPPORTED("9bo1rem63xdcqaveddsqb89y"); // qp = pp; /* remove rounded from list passed to renderer */ +UNSUPPORTED("21y8hlxutle9votbe86f2hfpl"); // do { +UNSUPPORTED("7ca407ksqxmxkuny8m7gr1rzj"); // qp++; +UNSUPPORTED("7jb3shp3mthw99uh3iir44z47"); // *(qp-1) = *qp; +UNSUPPORTED("1ujv3j8mb7i0c6nzdfgy27w4s"); // } while (*qp); +UNSUPPORTED("agd1qpujy8ioolsnjhmz0zapr"); // }else if (strcmp(p, "rounded") == 0) { +UNSUPPORTED("dtj2r1tvn8fuoefvhmbg7k8es"); // istyle |= (1 << 2); +UNSUPPORTED("9bo1rem63xdcqaveddsqb89y"); // qp = pp; /* remove rounded from list passed to renderer */ +UNSUPPORTED("21y8hlxutle9votbe86f2hfpl"); // do { +UNSUPPORTED("7ca407ksqxmxkuny8m7gr1rzj"); // qp++; +UNSUPPORTED("7jb3shp3mthw99uh3iir44z47"); // *(qp-1) = *qp; +UNSUPPORTED("1ujv3j8mb7i0c6nzdfgy27w4s"); // } while (*qp); +UNSUPPORTED("7z03qzrkm0iobzqhlwp87ljr2"); // } else pp++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8wc6gkmat3lo0h81wd7xv879k"); // *flagp = istyle; +UNSUPPORTED("iuoxnbeo1cwfgz97k92ylegx"); // return pstyle; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9iqjkcr5mukm81hrbwh0ea6fl +// static void freeSegs (colorsegs_t* segs) +public static Object freeSegs(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("464xlb3ygxv6p9mg54yjog4xx"); // freeSegs (colorsegs_t* segs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("byogskcr9egmgq0x5kmqvwi4v"); // free (segs->base); +UNSUPPORTED("70o1qrp2ik2rtbnfye965jlti"); // free (segs->segs); +UNSUPPORTED("864f5ylvxgoy5rwmwl4pstg2p"); // free (segs); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 97btw75unjbstma95wtq0zatf +// static double getSegLen (char* s) +public static Object getSegLen(Object... arg) { +UNSUPPORTED("9xupxgb2zpj09jpcf9avjwewg"); // static double getSegLen (char* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2xm53iv3ul2vyq7751jovt7yv"); // char* p = strchr (s, ';'); +UNSUPPORTED("bkz9mqmemp1ljxdwdbu8xv3e9"); // char* endp; +UNSUPPORTED("9gol5nm38e942ve1ebl1cjtlv"); // double v; +UNSUPPORTED("e5uuzflrromc49aac8g763pcj"); // if (!p) { +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ad4vrj0twr5jijvunb1bz9koj"); // *p++ = '\0'; +UNSUPPORTED("8hxu46s395rpsel8pqxzl9ana"); // v = strtod (p, &endp); +UNSUPPORTED("bog16vtrt7asrtd5qswrdityh"); // if (endp != p) { /* scanned something */ +UNSUPPORTED("rqt6x5hv72afst4yu8og4eh1"); // if (v >= 0) +UNSUPPORTED("b9t6ne0njxrwqqcdw8t4lt7kt"); // return v; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8azkpi8o0wzdufa90lw8hpt6q"); // return -1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8zfj6ri8h66qg7vjb6r0gtwl5 +// static int parseSegs (char* clrs, int nseg, colorsegs_t** psegs) +public static Object parseSegs(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("apdtd2ytdipe6mbcrtuzg8me3"); // parseSegs (char* clrs, int nseg, colorsegs_t** psegs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b2p5bomt1ebfvkood2varaauq"); // colorsegs_t* segs = (colorsegs_t*)zmalloc(sizeof(colorsegs_t)); +UNSUPPORTED("8zv1ffgik05z2fcc41di32sn8"); // colorseg_t* s; +UNSUPPORTED("elj0n3kcg90w49mdluubv8bns"); // char* colors = strdup (clrs); +UNSUPPORTED("3tsetuywdzi8crkdp7yfkzgs0"); // char* color; +UNSUPPORTED("c4mq9v0j066932j65m2kds553"); // int cnum = 0; +UNSUPPORTED("5wbs6wytrjo8k4jbvke5n0u42"); // double v, left = 1; +UNSUPPORTED("4tnoq3emby6jh6mtizghjicok"); // static int doWarn = 1; +UNSUPPORTED("a8vxj66zhdcnifeyd5g50smwk"); // int i, rval = 0; +UNSUPPORTED("a4px33i4moqe8ybwatz0g8k6"); // char* p; +UNSUPPORTED("axv64lmdgc8l7wrse4f2uje2c"); // if (nseg == 0) { +UNSUPPORTED("9kkvl2096j2mcfgl88zxrg3mt"); // nseg = 1; +UNSUPPORTED("1p0odq4xbiiyk9zulrtgh78p7"); // /* need to know how many colors separated by ':' */ +UNSUPPORTED("8lwg5726u0argoi40r0o86mvp"); // for (p = colors; *p; p++) { +UNSUPPORTED("1rfsopgavnlzprt3drtcsj0x4"); // if (*p == ':') nseg++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9bp5sal0vgfug2x1wf511qs7f"); // segs->base = colors; +UNSUPPORTED("2ivkw78cp3krrv7689cye5s78"); // segs->segs = s = (colorseg_t*)zmalloc((nseg+1)*sizeof(colorseg_t)); +UNSUPPORTED("4szmily3ea0fmu6uuro6gu156"); // for (color = strtok(colors, ":"); color; color = strtok(0, ":")) { +UNSUPPORTED("4004f4k7a6sfsgb610fgbmu5w"); // if ((v = getSegLen (color)) >= 0) { +UNSUPPORTED("azbip4rt1t97r5xu2s3fylz3y"); // double del = v - left; +UNSUPPORTED("8h66ar8vsn5btqcntrimnkktm"); // if (del > 0) { +UNSUPPORTED("ed89ssfw3aoze3hsxopkgecse"); // if (doWarn && !(((del) < 1E-5) && ((del) > -1E-5))) { +UNSUPPORTED("bteqpt6c6yz7o7d5dbmof10wj"); // agerr (AGWARN, "Total size > 1 in \"%s\" color spec ", clrs); +UNSUPPORTED("24grm1ux24glgzb3vunz0hgk2"); // doWarn = 0; +UNSUPPORTED("7uujii1ibtc8h2vtmdczkb97f"); // rval = 3; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("c5j07yi4nl2nzq8fjmkv7tsby"); // v = left; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("733sj1rtrkdhnykyrn3z1muzd"); // left -= v; +UNSUPPORTED("7dvqls8r4achyytx9jb4ce5nd"); // if (v > 0) s[cnum].hasFraction = NOT(0); +UNSUPPORTED("3jt663rt945dkhqkl1rv5w95u"); // if (*color) s[cnum].color = color; +UNSUPPORTED("c1mbrfego3c40gci714lbozdu"); // s[cnum++].t = v; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("7qqjev9ey61berllhtqdtio5j"); // if (doWarn) { +UNSUPPORTED("1uclwqp3vls9evizalhsqup1f"); // agerr (AGERR, "Illegal length value in \"%s\" color attribute ", clrs); +UNSUPPORTED("ccs8p4eo4ehywnii033x2xz3k"); // doWarn = 0; +UNSUPPORTED("4o9eycynbr1xrbs7xu7wqkoqo"); // rval = 2; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5spew51c4hokx3tvptq38hoif"); // else rval = 1; +UNSUPPORTED("723lxfi188696x4nsqtjqibuc"); // freeSegs (segs); +UNSUPPORTED("4sm28tt9yujgmryycwcj3ozcs"); // return rval; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dcahiv0k45nuszddfmx52qvsl"); // if ((((left) < 1E-5) && ((left) > -1E-5))) { +UNSUPPORTED("546rex5xh4grberu1heou0wg1"); // left = 0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8wynr3ctvgfgo13bcha3yofvl"); // /* distribute remaining into slot with t == 0; if none, add to last */ +UNSUPPORTED("az8pyhrjnf2hzlv8tkhg72zw6"); // if (left > 0) { +UNSUPPORTED("dutfiykx9omnitayjorbg1vx2"); // /* count zero segments */ +UNSUPPORTED("49ujuxia41bf3tqa9jq7skubi"); // nseg = 0; +UNSUPPORTED("7wc6473fldnm8onr6x54aoknb"); // for (i = 0; i < cnum; i++) { +UNSUPPORTED("hw7c0mgetn36f6qtikru7dxh"); // if (s[i].t == 0) nseg++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e5xpvo7h1n57u6ajux2emdsjl"); // if (nseg > 0) { +UNSUPPORTED("b9220xzm85t055qqrbe3x2o91"); // double delta = left/nseg; +UNSUPPORTED("2tpczuw50n6atxp3ugll97g2l"); // for (i = 0; i < cnum; i++) { +UNSUPPORTED("datujg26m1qe4v9viophnfqmk"); // if (s[i].t == 0) s[i].t = delta; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("cpvqe6ppslph7n78gdtd33ll2"); // s[cnum-1].t += left; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bzphdbk9lv18c2kha9yj9p9bq"); // /* Make sure last positive segment is followed by a sentinel. */ +UNSUPPORTED("dnru0y416hypltckpasyalvi1"); // nseg = 0; +UNSUPPORTED("8es1vpe9qvsc5j4mi98x0h6ml"); // for (i = cnum-1; i >= 0; i--) { +UNSUPPORTED("8eg8vanptayonxgtj46f8qo4h"); // if (s[i].t > 0) break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("63bgrye6x8o4p2w5u6ix8cfnh"); // s[i+1].color = NULL; +UNSUPPORTED("cg9otruqfz0hiw1to7o5dbvz2"); // segs->numc = i+1; +UNSUPPORTED("9evut88r5b01zyynad10pnqj6"); // *psegs = segs; +UNSUPPORTED("bhpm3hntm4gkn66ozolahaqhb"); // return rval; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5mu8biu5ww33wd5ieraclh88z +// int wedgedEllipse (GVJ_t* job, pointf * pf, char* clrs) +public static Object wedgedEllipse(Object... arg) { +UNSUPPORTED("7zkpme13g8rxxwloxvpvvnbcw"); // int +UNSUPPORTED("aa0ojv015bm44zwcwqav8hg79"); // wedgedEllipse (GVJ_t* job, pointf * pf, char* clrs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8z3a2qjysx0m326m5qjy91tnu"); // colorsegs_t* segs; +UNSUPPORTED("8zv1ffgik05z2fcc41di32sn8"); // colorseg_t* s; +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("8vpvinya0zfrnowhlphkyccd5"); // double save_penwidth = job->obj->penwidth; +UNSUPPORTED("1nq1fbyjqq72b0sc2bulz00rw"); // pointf ctr, semi; +UNSUPPORTED("qw8wtu53e7k1aubdv962neuz"); // Ppolyline_t* pp; +UNSUPPORTED("ecf4tlsg5qocdf5cl3xt0usir"); // double angle0, angle1; +UNSUPPORTED("7w32bzfgk50pyvzfs7qaxoi1e"); // rv = parseSegs (clrs, 0, &segs); +UNSUPPORTED("45tn760kszitmijgc00zjux63"); // if ((rv == 1) || (rv == 2)) return rv; +UNSUPPORTED("5a05hfj5quc4ubw4bd0bbtjoq"); // ctr.x = (pf[0].x + pf[1].x) / 2.; +UNSUPPORTED("65mz1z9ktoe9whfa6lwcmvscf"); // ctr.y = (pf[0].y + pf[1].y) / 2.; +UNSUPPORTED("8ji2e4xqar7owxkedpin2m8ez"); // semi.x = pf[1].x - ctr.x; +UNSUPPORTED("92ipp30q5f40j3d2wqk9xu4od"); // semi.y = pf[1].y - ctr.y; +UNSUPPORTED("2qlp0rgdgbozdtvtuwqp37pa4"); // if (save_penwidth > 0.5) +UNSUPPORTED("hmdk2acbhhzqbukut4pqgz2q"); // gvrender_set_penwidth(job, 0.5); +UNSUPPORTED("dddsxf9cjjlgn8v2snkxl6e1z"); // angle0 = 0; +UNSUPPORTED("9lw73gbrcdxipj1j1b1kpyvfc"); // for (s = segs->segs; s->color; s++) { +UNSUPPORTED("8wmjgptzcrcqkza35tcf7btrq"); // if (s->t == 0) continue; +UNSUPPORTED("40pn9i6e6b8aw6gvfysg075ae"); // gvrender_set_fillcolor (job, (s->color?s->color:"black")); +UNSUPPORTED("4vzp246p162a5yt5k0d62gcz6"); // if (s[1].color == NULL) +UNSUPPORTED("9647s4q9zvdoqktuh274a9y3e"); // angle1 = 2*M_PI; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("caiwb8g1acalpp0esm3dy0be2"); // angle1 = angle0 + 2*M_PI*(s->t); +UNSUPPORTED("9ll9d8jthp2hl8sh52a8h2dgp"); // pp = ellipticWedge (ctr, semi.x, semi.y, angle0, angle1); +UNSUPPORTED("7arx1xvmroi48xi8occ15h0qj"); // gvrender_beziercurve(job, pp->ps, pp->pn, 0, 0, 1); +UNSUPPORTED("dtpeo119iz3e8pf4sty2eypec"); // angle0 = angle1; +UNSUPPORTED("bku6jthxqindqm1lycet3lgq1"); // freePath (pp); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2qlp0rgdgbozdtvtuwqp37pa4"); // if (save_penwidth > 0.5) +UNSUPPORTED("efgc8uu9zhn5gek92wvnw2cqt"); // gvrender_set_penwidth(job, save_penwidth); +UNSUPPORTED("dwbftn5fib1yir7gshhy14cup"); // freeSegs (segs); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1lx9cef1wqmf2k66twye6mf9g +// int stripedBox (GVJ_t * job, pointf* AF, char* clrs, int rotate) +public static Object stripedBox(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("ekv2bika3f3ammx903i7szf5x"); // stripedBox (GVJ_t * job, pointf* AF, char* clrs, int rotate) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8z3a2qjysx0m326m5qjy91tnu"); // colorsegs_t* segs; +UNSUPPORTED("8zv1ffgik05z2fcc41di32sn8"); // colorseg_t* s; +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("cvn5016us8gcyjc73vgd06clq"); // double xdelta; +UNSUPPORTED("d8sp6cfkpfyndzmid92shiq50"); // pointf pts[4]; +UNSUPPORTED("aqsj4hnm1mckt6pv4pqok37cv"); // double lastx; +UNSUPPORTED("8vpvinya0zfrnowhlphkyccd5"); // double save_penwidth = job->obj->penwidth; +UNSUPPORTED("7w32bzfgk50pyvzfs7qaxoi1e"); // rv = parseSegs (clrs, 0, &segs); +UNSUPPORTED("45tn760kszitmijgc00zjux63"); // if ((rv == 1) || (rv == 2)) return rv; +UNSUPPORTED("csirqgn1exx47m56awd7suhlq"); // if (rotate) { +UNSUPPORTED("6yvxg6bp1ape4nmefxjyjjhti"); // pts[0] = AF[2]; +UNSUPPORTED("7x2bhgf39q42g2fhxk0vfkxxk"); // pts[1] = AF[3]; +UNSUPPORTED("f179v6qur6kketo9cy3lotml7"); // pts[2] = AF[0]; +UNSUPPORTED("b1kk11zisn7fvypwmt593hdwp"); // pts[3] = AF[1]; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("eolhyp22bac440ap3o96c3mqz"); // pts[0] = AF[0]; +UNSUPPORTED("7bgongoew7lrxnvqed64y1aq5"); // pts[1] = AF[1]; +UNSUPPORTED("dsj2jtc38wd64ffe18qloaybe"); // pts[2] = AF[2]; +UNSUPPORTED("w8lcp07u15ugb9pbyz628ux6"); // pts[3] = AF[3]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8cka942q7qvwsisxeamy9xfgs"); // lastx = pts[1].x; +UNSUPPORTED("el6wjonhvfaekmhry0o1xncfi"); // xdelta = (pts[1].x - pts[0].x); +UNSUPPORTED("m16l42bmexhmji8xy54ow3ac"); // pts[1].x = pts[2].x = pts[0].x; +UNSUPPORTED("2qlp0rgdgbozdtvtuwqp37pa4"); // if (save_penwidth > 0.5) +UNSUPPORTED("hmdk2acbhhzqbukut4pqgz2q"); // gvrender_set_penwidth(job, 0.5); +UNSUPPORTED("9lw73gbrcdxipj1j1b1kpyvfc"); // for (s = segs->segs; s->color; s++) { +UNSUPPORTED("8wmjgptzcrcqkza35tcf7btrq"); // if (s->t == 0) continue; +UNSUPPORTED("40pn9i6e6b8aw6gvfysg075ae"); // gvrender_set_fillcolor (job, (s->color?s->color:"black")); +UNSUPPORTED("3r3zv42eo8ubdity1juxhmhh4"); // /* gvrender_polygon(job, pts, 4, FILL | NO_POLY); */ +UNSUPPORTED("4vzp246p162a5yt5k0d62gcz6"); // if (s[1].color == NULL) +UNSUPPORTED("9zsrpebctk9utmb3xexrrnn5n"); // pts[1].x = pts[2].x = lastx; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("cnyxri62od5y8ghnijv4z9wsb"); // pts[1].x = pts[2].x = pts[0].x + xdelta*(s->t); +UNSUPPORTED("7s4cl2nfmsmuphbzuu24n43gk"); // gvrender_polygon(job, pts, 4, 1); +UNSUPPORTED("8g6jo6gn7rt47zmjtrbh705qi"); // pts[0].x = pts[3].x = pts[1].x; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2qlp0rgdgbozdtvtuwqp37pa4"); // if (save_penwidth > 0.5) +UNSUPPORTED("efgc8uu9zhn5gek92wvnw2cqt"); // gvrender_set_penwidth(job, save_penwidth); +UNSUPPORTED("dwbftn5fib1yir7gshhy14cup"); // freeSegs (segs); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a4ze3nkth5n070iajraile73b +// void emit_map_rect(GVJ_t *job, boxf b) +public static Object emit_map_rect(Object... arg) { +UNSUPPORTED("co9kbfer4pfzrsg32xzdxnu2u"); // void emit_map_rect(GVJ_t *job, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("12bpksga44s9sfl7x8xn2rt2k"); // int flags = job->flags; +UNSUPPORTED("aukx8c3dz83p6cpnh0fhhnqo8"); // pointf *p; +UNSUPPORTED("6ic0ku7wr32jsf5j0pwkrzq8j"); // if (flags & ((1<<16) | (1<<22))) { +UNSUPPORTED("68o2j7ic39aasjk49deprnnhh"); // if (flags & (1<<17)) { +UNSUPPORTED("69ud33lfpzxun6ls6bpequzo8"); // obj->url_map_shape = MAP_RECTANGLE; +UNSUPPORTED("d7uo4fiq8is4wmoeklxb9lrhm"); // obj->url_map_n = 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("5k8t4lz63jq26u2xqeoskhen7"); // obj->url_map_shape = MAP_POLYGON; +UNSUPPORTED("ah8hfbgy2ofsubklkazu04w4d"); // obj->url_map_n = 4; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9wnyoic97gd28arr56l0i8iy3"); // free(obj->url_map_p); +UNSUPPORTED("ec0oubjt8fhapkogfpg8s7y13"); // obj->url_map_p = p = (pointf*)zmalloc((obj->url_map_n)*sizeof(pointf)); +UNSUPPORTED("67z1fedypeeyro29m0t5h6cii"); // p[0] = b.LL; +UNSUPPORTED("dskfal9yhsof4338w6yry9mve"); // p[1] = b.UR; +UNSUPPORTED("cnadzqqicrskcdzko360llcg5"); // if (! (flags & (1<<13))) +UNSUPPORTED("9626u9a6bmyb4pqydfy9oe48w"); // gvrender_ptf_A(job, p, p, 2); +UNSUPPORTED("3qt79u8muuulxatmo48vjk6r3"); // if (! (flags & (1<<17))) +UNSUPPORTED("e0f10b7obog3b7z2tra14ajtx"); // rect2poly(p); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3ai5lu5hhd5fuikmo022v1jm0 +// static void map_label(GVJ_t *job, textlabel_t *lab) +public static Object map_label(Object... arg) { +UNSUPPORTED("c4rnzzthoq9f8agcrqudi4mz"); // static void map_label(GVJ_t *job, textlabel_t *lab) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("12bpksga44s9sfl7x8xn2rt2k"); // int flags = job->flags; +UNSUPPORTED("aukx8c3dz83p6cpnh0fhhnqo8"); // pointf *p; +UNSUPPORTED("6ic0ku7wr32jsf5j0pwkrzq8j"); // if (flags & ((1<<16) | (1<<22))) { +UNSUPPORTED("68o2j7ic39aasjk49deprnnhh"); // if (flags & (1<<17)) { +UNSUPPORTED("69ud33lfpzxun6ls6bpequzo8"); // obj->url_map_shape = MAP_RECTANGLE; +UNSUPPORTED("d7uo4fiq8is4wmoeklxb9lrhm"); // obj->url_map_n = 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("5k8t4lz63jq26u2xqeoskhen7"); // obj->url_map_shape = MAP_POLYGON; +UNSUPPORTED("ah8hfbgy2ofsubklkazu04w4d"); // obj->url_map_n = 4; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9wnyoic97gd28arr56l0i8iy3"); // free(obj->url_map_p); +UNSUPPORTED("ec0oubjt8fhapkogfpg8s7y13"); // obj->url_map_p = p = (pointf*)zmalloc((obj->url_map_n)*sizeof(pointf)); +UNSUPPORTED("pv2pug94o7tyi304mtm18jaw"); // (p[0].x = lab->pos.x - lab->dimen.x / 2., p[0].y = lab->pos.y - lab->dimen.y / 2., p[1].x = lab->pos.x + lab->dimen.x / 2., p[1].y = lab->pos.y + lab->dimen.y / 2.); +UNSUPPORTED("cnadzqqicrskcdzko360llcg5"); // if (! (flags & (1<<13))) +UNSUPPORTED("9626u9a6bmyb4pqydfy9oe48w"); // gvrender_ptf_A(job, p, p, 2); +UNSUPPORTED("3qt79u8muuulxatmo48vjk6r3"); // if (! (flags & (1<<17))) +UNSUPPORTED("e0f10b7obog3b7z2tra14ajtx"); // rect2poly(p); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9hfoy16yb9l36g778lx6o4loa +// static boolean isRect(polygon_t * p) +public static Object isRect(Object... arg) { +UNSUPPORTED("9boj1p1495tsl7kbb9os62euc"); // static boolean isRect(polygon_t * p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("jq836u6s0o7a40yevy0sjlhv"); // return (p->sides == 4 && (ROUND(p->orientation) % 90) == 0 +UNSUPPORTED("2pp49cjtsontnjugs7vlomdvi"); // && p->distortion == 0.0 && p->skew == 0.0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 drf7d6idpinqx579kloyv3tjf +// static int ifFilled(node_t * n) +public static Object ifFilled(Object... arg) { +UNSUPPORTED("576n3ll5ycnzfrne5a0vg4kmb"); // static int ifFilled(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ezo17twsxmg7baw2hkcmffhbr"); // char *style, *p, **pp; +UNSUPPORTED("9lfwryf4m8bo4travw1edcxtr"); // int r = 0; +UNSUPPORTED("8pjk3xuss8ew2p7e7t0djo8qp"); // style = late_nnstring(n, N_style, ""); +UNSUPPORTED("4ouo3ttcnk1yyzsz5wrt88zw"); // if (style[0]) { +UNSUPPORTED("a7llauzxp1up7djc1wq1dnfco"); // pp = parse_style(style); +UNSUPPORTED("307dibrb4o6rniseaep5vofol"); // while ((p = *pp)) { +UNSUPPORTED("36yyrnflvlp1fqax3117d8a7o"); // if (strcmp(p, "filled") == 0) +UNSUPPORTED("dxmd648tdx5y1devieu0sclw"); // r = 1; +UNSUPPORTED("8dkwt30u4binxrx5y6sqggg8i"); // pp++; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3sh9756i5zm4vgebijiohr21q +// static pointf *pEllipse(double a, double b, int np) +public static Object pEllipse(Object... arg) { +UNSUPPORTED("81ja3n1hoznf26wc2vhvhl9fj"); // static pointf *pEllipse(double a, double b, int np) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("39lrh4yp65e7bz2yxmw4eykrf"); // double theta = 0.0; +UNSUPPORTED("eyglfufrpugwrnbykbifud876"); // double deltheta = 2 * M_PI / np; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("2rkzhui0essisp5zlw44vx4j9"); // pointf *ps; +UNSUPPORTED("9plpwtwefveugoac2qi9x6chi"); // ps = (pointf*)zmalloc((np)*sizeof(pointf)); +UNSUPPORTED("8sd8edat3oeyfbnetgt6bwa6l"); // for (i = 0; i < np; i++) { +UNSUPPORTED("78zadymnp5kv296ust519rwwy"); // ps[i].x = a * cos(theta); +UNSUPPORTED("7aqmygicj0weq2ez2gpdasxzj"); // ps[i].y = b * sin(theta); +UNSUPPORTED("4tksxfn79hejj7dk9u7587tdx"); // theta += deltheta; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b0dfwpxhogdrp9mwkzc8oa9vt"); // return ps; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7nqmdkcnal35ollpstkk707t8 +// static int check_control_points(pointf *cp) +public static boolean check_control_points(__ptr__ cp) { +ENTERING("7nqmdkcnal35ollpstkk707t8","check_control_points"); +try { + double dis1 = ptToLine2 (cp.plus(0).getStruct(), cp.plus(3).getStruct(), cp.plus(1).getStruct()); + double dis2 = ptToLine2 (cp.plus(0).getStruct(), cp.plus(3).getStruct(), cp.plus(2).getStruct()); + if (dis1 < 2.0*2.0 && dis2 < 2.0*2.0) + return true; + else + return false; +} finally { +LEAVING("7nqmdkcnal35ollpstkk707t8","check_control_points"); +} +} + + + + +//3 5wldemr88fdxl6101ugewclw9 +// void update_bb_bz(boxf *bb, pointf *cp) +public static void update_bb_bz(__ptr__ bb, __array_of_struct__ cp) { +ENTERING("5wldemr88fdxl6101ugewclw9","update_bb_bz"); +try { + /* if any control point of the segment is outside the bounding box */ + if (cp.plus(0).getDouble("x") > bb.getStruct("UR").getDouble("x") || cp.plus(0).getDouble("x") < bb.getStruct("LL").getDouble("x") || + cp.plus(0).getDouble("y") > bb.getStruct("UR").getDouble("y") || cp.plus(0).getDouble("y") < bb.getStruct("LL").getDouble("y") || + cp.plus(1).getDouble("x") > bb.getStruct("UR").getDouble("x") || cp.plus(1).getDouble("x") < bb.getStruct("LL").getDouble("x") || + cp.plus(1).getDouble("y") > bb.getStruct("UR").getDouble("y") || cp.plus(1).getDouble("y") < bb.getStruct("LL").getDouble("y") || + cp.plus(2).getDouble("x") > bb.getStruct("UR").getDouble("x") || cp.plus(2).getDouble("x") < bb.getStruct("LL").getDouble("x") || + cp.plus(2).getDouble("y") > bb.getStruct("UR").getDouble("y") || cp.plus(2).getDouble("y") < bb.getStruct("LL").getDouble("y") || + cp.plus(3).getDouble("x") > bb.getStruct("UR").getDouble("x") || cp.plus(3).getDouble("x") < bb.getStruct("LL").getDouble("x") || + cp.plus(3).getDouble("y") > bb.getStruct("UR").getDouble("y") || cp.plus(3).getDouble("y") < bb.getStruct("LL").getDouble("y")) { + /* if the segment is sufficiently refined */ + if (check_control_points(cp.asPtr())) { + int i; + /* expand the bounding box */ + for (i = 0; i < 4; i++) { + if (cp.plus(i).getDouble("x") > bb.getStruct("UR").getDouble("x")) + bb.getStruct("UR").setDouble("x", cp.plus(i).getDouble("x")); + else if (cp.plus(i).getDouble("x") < bb.getStruct("LL").getDouble("x")) + bb.getStruct("LL").setDouble("x", cp.plus(i).getDouble("x")); + if (cp.plus(i).getDouble("y") > bb.getStruct("UR").getDouble("y")) + bb.getStruct("UR").setDouble("y", cp.plus(i).getDouble("y")); + else if (cp.plus(i).getDouble("y") < bb.getStruct("LL").getDouble("y")) + bb.getStruct("LL").setDouble("y", cp.plus(i).getDouble("y")); + } + } + else { /* else refine the segment */ + final __array_of_struct__ left = __array_of_struct__.malloc(pointf.class, 4); + final __array_of_struct__ right = __array_of_struct__.malloc(pointf.class, 4); + Bezier (cp, 3, 0.5, left.asPtr(), right.asPtr()); + update_bb_bz(bb, left); + update_bb_bz(bb, right); + } + } +} finally { +LEAVING("5wldemr88fdxl6101ugewclw9","update_bb_bz"); +} +} + + + + +//3 5inp24tkswwr4gef832cfsh04 +// static segitem_t* appendSeg (pointf p, segitem_t* lp) +public static Object appendSeg(Object... arg) { +UNSUPPORTED("9ox1lgfkkrjj3l9g1jpe0gs04"); // static segitem_t* appendSeg (pointf p, segitem_t* lp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bk3628thwysou5cfzrxarcqte"); // segitem_t* s = (segitem_t*)gmalloc(sizeof(segitem_t)); +UNSUPPORTED("3tnumckwljivhxj7b6mdf24d6"); // {(s)->next = 0; (s)->p = p;}; +UNSUPPORTED("46ylfb4pi0znpxitzsije2mhw"); // lp->next = s; +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4n0kvrpdwpl0e1imvz963aa1o +// static void map_bspline_poly(pointf **pbs_p, int **pbs_n, int *pbs_poly_n, int n, pointf* p1, pointf* p2) +public static Object map_bspline_poly(Object... arg) { +UNSUPPORTED("1r3l20vlipm0x1r2dprvygc9i"); // static void map_bspline_poly(pointf **pbs_p, int **pbs_n, int *pbs_poly_n, int n, pointf* p1, pointf* p2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("30xnf4zdgb1ykf89oqbuo4l2a"); // int i = 0, nump = 0, last = 2*n-1; +UNSUPPORTED("f06mx73hq0m616fggpl7pm6l0"); // for ( ; i < *pbs_poly_n; i++) +UNSUPPORTED("9bq6z8tgn463c2b2b1ujzzu64"); // nump += (*pbs_n)[i]; +UNSUPPORTED("6xsx7pggjnc2umqgysrjf2o7f"); // (*pbs_poly_n)++; +UNSUPPORTED("cavf92uaf58wsqimp1tktt9u5"); // *pbs_n = grealloc(*pbs_n, (*pbs_poly_n) * sizeof(int)); +UNSUPPORTED("9v28ohj2y5y341vn7mh44qo8"); // (*pbs_n)[i] = 2*n; +UNSUPPORTED("8uvz87etb5208kleb7ehkzyfc"); // *pbs_p = grealloc(*pbs_p, (nump + 2*n) * sizeof(pointf)); +UNSUPPORTED("1vi49g48u2rc9v88yhabta0yw"); // for (i = 0; i < n; i++) { +UNSUPPORTED("6hab7v9b2nr1fy1es1y7q8vhn"); // (*pbs_p)[nump+i] = p1[i]; +UNSUPPORTED("2qtwscm7pv5eahjzljn3gwez3"); // (*pbs_p)[nump+last-i] = p2[i]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7vktvjafa2lmwlaxsy0nbulut +// static segitem_t* approx_bezier (pointf *cp, segitem_t* lp) +public static Object approx_bezier(Object... arg) { +UNSUPPORTED("al673209lz1hskkt7drx6qaib"); // static segitem_t* approx_bezier (pointf *cp, segitem_t* lp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9460wahmu30hhy9lbmjxls3ju"); // pointf left[4], right[4]; +UNSUPPORTED("eomhceyowlehxg33yuxfclcdz"); // if (check_control_points(cp)) { +UNSUPPORTED("czol56efilyo93ev9cxz3ytyo"); // if (((lp)->next == (segitem_t*)1)) {(lp)->next = 0; (lp)->p = cp[0];}; +UNSUPPORTED("1358cb4a22h5h06oy1a6j08sq"); // lp = appendSeg (cp[3], lp); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("9czjzt923nh9t1r0ofwg1uiqi"); // Bezier (cp, 3, 0.5, left, right); +UNSUPPORTED("b0liuqott07bzgsycyywz3wgi"); // lp = approx_bezier (left, lp); +UNSUPPORTED("3fohjex9x5u6w5e9ivere17uz"); // lp = approx_bezier (right, lp); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("22f0z0bsq8tczqmt8rdxhmye9"); // return lp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3nlf0dmvl0qwc88vhsi69eo85 +// static double bisect (pointf pp, pointf cp, pointf np) +public static Object bisect(Object... arg) { +UNSUPPORTED("8h36arb302hy4bmfyuq5lvq4d"); // static double bisect (pointf pp, pointf cp, pointf np) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8kh11h44zj580voonfm37tko9"); // double ang, theta, phi; +UNSUPPORTED("85xsvegtkipyc8fvrmffpt7on"); // theta = atan2(np.y - cp.y,np.x - cp.x); +UNSUPPORTED("c3wm3ceipv4mlnttlnfmsnx9c"); // phi = atan2(pp.y - cp.y,pp.x - cp.x); +UNSUPPORTED("b0ntn6nfptzm2qbjo2ls49i1c"); // ang = theta - phi; +UNSUPPORTED("4li40ysz6584mc8iejchar0ej"); // if (ang > 0) ang -= 2*M_PI; +UNSUPPORTED("col2agnktr81l4ybzpnuvni0b"); // return (phi + ang/2.0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 45zvw50w2tfskogjqa2wzlmhg +// static void mkSegPts (segitem_t* prv, segitem_t* cur, segitem_t* nxt, pointf* p1, pointf* p2, double w2) +public static Object mkSegPts(Object... arg) { +UNSUPPORTED("5hv5nomfe90vtds8hxhox7yej"); // static void mkSegPts (segitem_t* prv, segitem_t* cur, segitem_t* nxt, +UNSUPPORTED("78rchge0ctod4mkpq2fslrh0s"); // pointf* p1, pointf* p2, double w2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("egh0kbv4tt7cyg4y0jqpw892u"); // pointf cp, pp, np; +UNSUPPORTED("biw1k2scxl82ky4h2e5gzzz3w"); // double theta, delx, dely; +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("1uw3lcxgjre9mhnye9n5mc3nq"); // cp = cur->p; +UNSUPPORTED("8oyy7q664cu8y31s5gm98jaok"); // /* if prv or nxt are NULL, use the one given to create a collinear +UNSUPPORTED("7cujcl5h2n20wpsmy96ce8y1t"); // * prv or nxt. This could be more efficiently done with special case code, +UNSUPPORTED("90m6pb4mxn7bdssm66d6ex652"); // * but this way is more uniform. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("4m73973c5to6aicgd30f6yzaf"); // if (prv) { +UNSUPPORTED("c1rauhosdsgiv6485akroiljy"); // pp = prv->p; +UNSUPPORTED("ethb044vg7vhe5m2lhq81kab3"); // if (nxt) +UNSUPPORTED("5svwwfzkdun5jxqdn4mouh5n6"); // np = nxt->p; +UNSUPPORTED("3jir07ymknf0hmb9pv9x4dr3o"); // else { +UNSUPPORTED("b6z52jimoq1wmtvxf8qjyx889"); // np.x = 2*cp.x - pp.x; +UNSUPPORTED("7plg4dt2urchak7x50b0qhyz2"); // np.y = 2*cp.y - pp.y; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("8hw6aqovl83yx8u0xlbnkcbw2"); // np = nxt->p; +UNSUPPORTED("a6vni7nsbr4l53ceg9tyv09i8"); // pp.x = 2*cp.x - np.x; +UNSUPPORTED("9r62maaemrr57dm3tdh7fuva6"); // pp.y = 2*cp.y - np.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3ktptkz1bjdklvgym7woyu60x"); // theta = bisect(pp,cp,np); +UNSUPPORTED("a4adtr9lu9kofe8mqolr4fg4r"); // delx = w2*cos(theta); +UNSUPPORTED("4uljbij5lrj26jqovnqnbkzxc"); // dely = w2*sin(theta); +UNSUPPORTED("6r23zes3ngn7ela6z0elabnsq"); // p.x = cp.x + delx; +UNSUPPORTED("4uzttmp6bugdo2qudn1xrr8fj"); // p.y = cp.y + dely; +UNSUPPORTED("bntn382sm9mnloab7gci08f64"); // *p1 = p; +UNSUPPORTED("92rv8dekgpna6e0qh7la8kyg0"); // p.x = cp.x - delx; +UNSUPPORTED("2czgguvp48sudmjwiuoanrvbq"); // p.y = cp.y - dely; +UNSUPPORTED("823jqic6za2w9bn6bxd5sfovp"); // *p2 = p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3xmhrtq5g7trpp4u40xr0b8y2 +// static void map_output_bspline (pointf **pbs, int **pbs_n, int *pbs_poly_n, bezier* bp, double w2) +public static Object map_output_bspline(Object... arg) { +UNSUPPORTED("6lvrwl802yfwlo7kfixgg5nez"); // static void map_output_bspline (pointf **pbs, int **pbs_n, int *pbs_poly_n, bezier* bp, double w2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("460a9s2we7gle00rxon2fthvv"); // segitem_t* segl = (segitem_t*)gmalloc(sizeof(segitem_t)); +UNSUPPORTED("7jg00n3u4jk162hmdo63f64lo"); // segitem_t* segp = segl; +UNSUPPORTED("b8pna82nkq66ot9l709idym2o"); // segitem_t* segprev; +UNSUPPORTED("agsgwjn5iwlfedcqbv8ckm57"); // segitem_t* segnext; +UNSUPPORTED("8kw0juwrrjw2z97umyrg0g1qd"); // int nc, j, k, cnt; +UNSUPPORTED("8d1z0mjgb910nvnha97hjtek8"); // pointf pts[4], pt1[50], pt2[50]; +UNSUPPORTED("asm74enhle0g30mwnz8t1buui"); // ((segl)->next = (segitem_t*)1); +UNSUPPORTED("2adno2mo8kzsvrdtc21rhj4v5"); // nc = (bp->size - 1)/3; /* nc is number of bezier curves */ +UNSUPPORTED("7swib3bakj4z6ubjcayxfitj6"); // for (j = 0; j < nc; j++) { +UNSUPPORTED("95y530ux2hdmxrhr3nyzp3g9t"); // for (k = 0; k < 4; k++) { +UNSUPPORTED("c9uvgse79w32172gjma953aq2"); // pts[k] = bp->list[3*j + k]; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("5sy2c7piyke76572zgaizewud"); // segp = approx_bezier (pts, segp); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6ivsqczanxvoll90ol5rf9nwj"); // segp = segl; +UNSUPPORTED("7934mrgiu0ms3qybvycy3cgay"); // segprev = 0; +UNSUPPORTED("3wtn792c3ql5yhn77alu6r5d8"); // cnt = 0; +UNSUPPORTED("2aqvc301awlepsejrafp4yyc6"); // while (segp) { +UNSUPPORTED("3aw5thxio3mh4yvrwep3op3cb"); // segnext = segp->next; +UNSUPPORTED("4ov54jbry4z74fejjwuepxe84"); // mkSegPts (segprev, segp, segnext, pt1+cnt, pt2+cnt, w2); +UNSUPPORTED("77mslev6fngkh87g2jkd6j87j"); // cnt++; +UNSUPPORTED("2r5ivfdgqpq5a6nyot9hijti3"); // if ((segnext == NULL) || (cnt == 50)) { +UNSUPPORTED("8upks3wb9w2i7a6fib6tg86so"); // map_bspline_poly (pbs, pbs_n, pbs_poly_n, cnt, pt1, pt2); +UNSUPPORTED("br4bzacgnowkbgloqwj6hi6xi"); // pt1[0] = pt1[cnt-1]; +UNSUPPORTED("1a82ke2ad8rgjec4c9c58r8nz"); // pt2[0] = pt2[cnt-1]; +UNSUPPORTED("5n5phg49hlzthwyjtssepk4pr"); // cnt = 1; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("3m3komtzmujd239y2dgskiyj6"); // segprev = segp; +UNSUPPORTED("7gox3cmouztk9pgbp4kyi21n3"); // segp = segnext; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f3da2ac9kdmfwv0pfno2zrouc"); // /* free segl */ +UNSUPPORTED("5h71fr0i2yoyjffmruxsjp21z"); // while (segl) { +UNSUPPORTED("diwidyhfydftnczhbvpa03d1"); // segp = segl->next; +UNSUPPORTED("n2x8n88pew5ot3r4s1zgnqw9"); // free (segl); +UNSUPPORTED("9facw1k96gpqu3xnm2hjb1d2c"); // segl = segp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9xju3of8zy5f2mk0f6vd6kxoi +// static boolean is_natural_number(char *sstr) +public static Object is_natural_number(Object... arg) { +UNSUPPORTED("9rhheqjcnai59q1k0d8y9jynt"); // static boolean is_natural_number(char *sstr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1dlob9vbxvn4cj6g0rosu94jd"); // unsigned char *str = (unsigned char *) sstr; +UNSUPPORTED("alw7hro2r95xcs6yzutcluxtm"); // while (*str) +UNSUPPORTED("9m3itcf8i2mq6xorvv3zdwhh"); // if (NOT(isdigit(*str++))) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("8fwlqtemsmckleh6946lyd8mw"); // return NOT(0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4udru8pf61208dtuf22zzmmqd +// static int layer_index(GVC_t *gvc, char *str, int all) +public static Object layer_index(Object... arg) { +UNSUPPORTED("3lxm6mluhtqpfsa9nzkd3apqi"); // static int layer_index(GVC_t *gvc, char *str, int all) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3ak6myanfllb9z1xz4e6c0nhf"); // /* GVJ_t *job = gvc->job; */ +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("ddtbvyocaoyzuds5nmnsodhqb"); // if ((*(str)==*("all")&&!strcmp(str,"all"))) +UNSUPPORTED("8duf2go7r0jiqw3wnkiqbol4r"); // return all; +UNSUPPORTED("8ztkkwz0e702fr9np4y6o4kuu"); // if (is_natural_number(str)) +UNSUPPORTED("34uc4omjjar6x7rskk72va3j6"); // return atoi(str); +UNSUPPORTED("1s842n3ke9usoirca1dwsrrzx"); // if (gvc->layerIDs) +UNSUPPORTED("cpogmg64n6exvblx87d1pmwfo"); // for (i = 1; i <= gvc->numLayers; i++) +UNSUPPORTED("939rzzi8dp0sws71xjv2n1d66"); // if ((*(str)==*(gvc->layerIDs[i])&&!strcmp(str,gvc->layerIDs[i]))) +UNSUPPORTED("b9e4nv60rh6o1ai85uu0ougv"); // return i; +UNSUPPORTED("8azkpi8o0wzdufa90lw8hpt6q"); // return -1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a8rdk6dogn52h5grbbxfoq34z +// static boolean selectedLayer(GVC_t *gvc, int layerNum, int numLayers, char *spec) +public static Object selectedLayer(Object... arg) { +UNSUPPORTED("eri18s9ivcrynir2bpx4jnw8g"); // static boolean selectedLayer(GVC_t *gvc, int layerNum, int numLayers, char *spec) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("15uc40a82mi1mztghnyvoy460"); // int n0, n1; +UNSUPPORTED("h0or3v13348vfl22jqz895yc"); // unsigned char buf[128]; +UNSUPPORTED("2zdui2eukxklqn2ig8nh0bw1t"); // char *w0, *w1; +UNSUPPORTED("ccg75yolmilezu48nio7ksbf9"); // char *buf_part_p = NULL, *buf_p = NULL, *cur, *part_in_p; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("9h6icoq4cc2e2ibff10l3xrob"); // boolean rval = 0; +UNSUPPORTED("ci65k77x1b3nq6luu69s87oup"); // agxbinit(&xb, 128, buf); +UNSUPPORTED("bhiyk7f25o6jysgsxycaf5vbo"); // agxbput(&xb, spec); +UNSUPPORTED("aww221dmkj4h9x0qmlvai6bun"); // part_in_p = (((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf)); +UNSUPPORTED("8o0g4i9g8jc2qoljztsf5l69"); // /* Thanks to Matteo Nastasi for this extended code. */ +UNSUPPORTED("5wc9kd553mqdmeqrzv5u3kuyv"); // while ((rval == 0) && (cur = strtok_r(part_in_p, gvc->layerListDelims, &buf_part_p))) { +UNSUPPORTED("5mvzc9us20jr0bcopdypz0mfo"); // w1 = w0 = strtok_r (cur, gvc->layerDelims, &buf_p); +UNSUPPORTED("snrpgbkmqz2ba186d24cmfnx"); // if (w0) +UNSUPPORTED("bx1n828umga5916irui1tb7cx"); // w1 = strtok_r (NULL, gvc->layerDelims, &buf_p); +UNSUPPORTED("crroc3un37wt9d0omuvaq8gca"); // switch ((w0 != NULL) + (w1 != NULL)) { +UNSUPPORTED("46lzlkypfilrge90rkaiveuyb"); // case 0: +UNSUPPORTED("1y7jah5hullcu9snkfa1oy1f2"); // rval = 0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2o83im06dulx11wjpy469gkoa"); // case 1: +UNSUPPORTED("1jygz6h6idqhtvh7bqd78fhy2"); // n0 = layer_index(gvc, w0, layerNum); +UNSUPPORTED("c8zzp13vx1yth31xuqj1661c8"); // rval = (n0 == layerNum); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("b8vgbvwzllfs4lrqmmqyr1spk"); // case 2: +UNSUPPORTED("9y7cribaclzkutrf9lusdgb73"); // n0 = layer_index(gvc, w0, 0); +UNSUPPORTED("45uxr9q1d74dbhay2ugv205w0"); // n1 = layer_index(gvc, w1, numLayers); +UNSUPPORTED("2gcf1ylvtukspepmlgp37irq5"); // if ((n0 >= 0) || (n1 >= 0)) { +UNSUPPORTED("ad3pm1secuibs7iqrobtxw2is"); // if (n0 > n1) { +UNSUPPORTED("en01k6v1n32c2swyx0elf6pcg"); // int t = n0; +UNSUPPORTED("2bjyjz9cvls6hyytpcmbkgmcs"); // n0 = n1; +UNSUPPORTED("bpseot9l807jidv28yid809wm"); // n1 = t; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("cer1dt8c42dt0eigzkalgg0u4"); // rval = BETWEEN(n0, layerNum, n1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("59btplbumo93hp7myb8mvi5ee"); // part_in_p = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1at5m9ctjn3ukv5gqtfswik02"); // agxbfree(&xb); +UNSUPPORTED("bhpm3hntm4gkn66ozolahaqhb"); // return rval; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2zlzcril6uiesf8z9zo8bvfyz +// static boolean selectedlayer(GVJ_t *job, char *spec) +public static Object selectedlayer(Object... arg) { +UNSUPPORTED("3nzphmy08w2y4a3yntr24xw0p"); // static boolean selectedlayer(GVJ_t *job, char *spec) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("any52sc1hzc52gsl6k37qteok"); // return selectedLayer (job->gvc, job->layerNum, job->numLayers, spec); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8elt2ktgbiurz9gdlvgjpr8mp +// static int* parse_layerselect(GVC_t *gvc, graph_t * g, char *p) +public static Object parse_layerselect(Object... arg) { +UNSUPPORTED("6lvivuwtc6e4wjgguepfq8nud"); // static int* parse_layerselect(GVC_t *gvc, graph_t * g, char *p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ezxtli9973z4een4uoj2cfsho"); // int* laylist = (int*)gmalloc((gvc->numLayers+2)*sizeof(int)); +UNSUPPORTED("b5a93beg34iiqtnufv9wanh2r"); // int i, cnt = 0; +UNSUPPORTED("c2uuo0qyuykgxql7fsz1al9h4"); // for (i = 1; i <=gvc->numLayers; i++) { +UNSUPPORTED("7u51wobeze34in0qy7cnjmqv5"); // if (selectedLayer (gvc, i, gvc->numLayers, p)) { +UNSUPPORTED("b5ymvvr45fvj1wbcdyoe57nnd"); // laylist[++cnt] = i; +UNSUPPORTED("8nzcpbtoi924xzu8ze3z6dbft"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("77njmf3w9m7xk714hk5o8hjv5"); // if (cnt) { +UNSUPPORTED("f3878e9jng3sa7ipt8cmlofqs"); // laylist[0] = cnt; +UNSUPPORTED("a3k7ll5ie5r0j4h3t4tefex3b"); // laylist[cnt+1] = gvc->numLayers+1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("c0ejg4cn6ao9jn7vtsuqug4gl"); // agerr(AGWARN, "The layerselect attribute \"%s\" does not match any layer specifed by the layers attribute - ignored.\n", p); +UNSUPPORTED("f3878e9jng3sa7ipt8cmlofqs"); // laylist[0] = cnt; +UNSUPPORTED("8skx11npk6vn3hbxvcuxklf6v"); // free (laylist); +UNSUPPORTED("45iwrgdr374i74cf8em6uwfmx"); // laylist = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("30gwy84osotlzmeicu7kfluyp"); // return laylist; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4kiahfclenuf921uyxg4lzlbs +// static int parse_layers(GVC_t *gvc, graph_t * g, char *p) +public static Object parse_layers(Object... arg) { +UNSUPPORTED("1spuppzfx1me4g279wfftgu5n"); // static int parse_layers(GVC_t *gvc, graph_t * g, char *p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7v0207mxa8hqzexz49lscukl8"); // int ntok; +UNSUPPORTED("eqt7m58ywry2anaa5wpii01ri"); // char *tok; +UNSUPPORTED("bpt627vzs0r1tzo7jgpyjdssp"); // int sz; +UNSUPPORTED("2v5nye0hqxoem0cn4n22cgcov"); // gvc->layerDelims = agget(g, "layersep"); +UNSUPPORTED("2gnxlhqmvfrjzjd75hm5mx6em"); // if (!gvc->layerDelims) +UNSUPPORTED("aia1lj9r0sseuxbuefdo14bao"); // gvc->layerDelims = ":\t "; +UNSUPPORTED("6b9c2dn4yffcjru8dxyzsu37e"); // gvc->layerListDelims = agget(g, "layerlistsep"); +UNSUPPORTED("7wf2w4t3x9ak3skyqq8y1okhb"); // if (!gvc->layerListDelims) +UNSUPPORTED("563hs3cgmcdcqb6l4rrpv75ek"); // gvc->layerListDelims = ","; +UNSUPPORTED("8r1h2mlb2u87klqp21y9ilhie"); // if ((tok = strpbrk (gvc->layerDelims, gvc->layerListDelims))) { /* conflict in delimiter strings */ +UNSUPPORTED("q0y5qqfvuie4x5nbuh4ltwml"); // agerr(AGWARN, "The character \'%c\' appears in both the layersep and layerlistsep attributes - layerlistsep ignored.\n", *tok); +UNSUPPORTED("5yy5l7k4jffs33fkk86gnxx1y"); // gvc->layerListDelims = ""; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c4wye11e21cuxetha8fjaezcj"); // ntok = 0; +UNSUPPORTED("1gxcbnw3tixp11pk9jkijirao"); // sz = 0; +UNSUPPORTED("2ejr8g3scrhv7fxwj1tno13zd"); // gvc->layers = strdup(p); +UNSUPPORTED("6q7eqo62kv90x2ch8rce2nhwq"); // for (tok = strtok(gvc->layers, gvc->layerDelims); tok; +UNSUPPORTED("577hr51xn1w20008653y51w8j"); // tok = strtok(NULL, gvc->layerDelims)) { +UNSUPPORTED("7gwdsxgme4t8qinotj0dxsvcw"); // ntok++; +UNSUPPORTED("2ffbgwipxpwoyr4fd0k4ha0nq"); // if (ntok > sz) { +UNSUPPORTED("d3yzx9720tr2kq7hefgjdkrp6"); // sz += 128; +UNSUPPORTED("32u0qx8yeqxu4r0bk3enhqi0n"); // gvc->layerIDs = ALLOC(sz, gvc->layerIDs, char *); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("3q96x283efzk6afscurxeve1h"); // gvc->layerIDs[ntok] = tok; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b0n1l1dvbn6aov6g3xvi2i0ur"); // if (ntok) { +UNSUPPORTED("epu81n9xme9sxje3laz6szujx"); // gvc->layerIDs = RALLOC(ntok + 2, gvc->layerIDs, char *); /* shrink to minimum size */ +UNSUPPORTED("yd1fq95zbahnl8ztvhpjb71k"); // gvc->layerIDs[0] = NULL; +UNSUPPORTED("557694uxqmnbvy9qb7t1armld"); // gvc->layerIDs[ntok + 1] = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c4f8xkcsh8jpj7admwanbez66"); // return ntok; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4gyjzihgl8che7plolivfm89h +// static int chkOrder(graph_t * g) +public static Object chkOrder(Object... arg) { +UNSUPPORTED("9jzoupo86al5szoppdb9ug4jm"); // static int chkOrder(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7g8u2dbeh9st5st5kp6oshdu5"); // char *p = agget(g, "outputorder"); +UNSUPPORTED("3cvmixd2u1g2d9l03kuxyyxxw"); // if (p) { +UNSUPPORTED("a88zp39raphu4mpw0pi8oq1hi"); // char c = *p; +UNSUPPORTED("a11i71rfjtl0mxznvr2rsxg4r"); // if ((c == 'n') && !strcmp(p + 1, "odesfirst")) +UNSUPPORTED("d6qsecgbj60rq8xaef9umqge9"); // return (1<<0); +UNSUPPORTED("a5f5xut0kypunfkizx4yu77ae"); // if ((c == 'e') && !strcmp(p + 1, "dgesfirst")) +UNSUPPORTED("9boy87u68njstsw43wxf5urh9"); // return (1<<4); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 33hjwrwudmjobd5yhbvu86jxz +// static void init_layering(GVC_t * gvc, graph_t * g) +public static Object init_layering(Object... arg) { +UNSUPPORTED("7iqktnxyjnxn51eeuuy0oh1uz"); // static void init_layering(GVC_t * gvc, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("76nok3eiyr33qf4ecv69ujxn6"); // char *str; +UNSUPPORTED("avab4390fpb68yais5eijodkt"); // /* free layer strings and pointers from previous graph */ +UNSUPPORTED("8zsh0fgdj4ri6w73fr47391cy"); // if (gvc->layers) { +UNSUPPORTED("6zw20p1kbgu9ycram23hk8ece"); // free(gvc->layers); +UNSUPPORTED("a012u6bc7d55ctuf92taryny"); // gvc->layers = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("42i2j3ry654uexmr231uhaqw8"); // if (gvc->layerIDs) { +UNSUPPORTED("5x7zl391qtijlzmv7wg3my1uh"); // free(gvc->layerIDs); +UNSUPPORTED("b4z8eoj6aem9v33o3snekjt37"); // gvc->layerIDs = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1zd3la1zp34vbtw6eiyojzrxi"); // if (gvc->layerlist) { +UNSUPPORTED("c2onv8y2o0rubycnv6cvmfgxx"); // free(gvc->layerlist); +UNSUPPORTED("1ovwh9w5ny7xovqo71y582jpw"); // gvc->layerlist = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("efigtm6w6713gs6f8j1kdon3p"); // if ((str = agget(g, "layers")) != 0) { +UNSUPPORTED("vdhfuyl28ln9lsrhizcu26ri"); // gvc->numLayers = parse_layers(gvc, g, str); +UNSUPPORTED("2zl1bqc97q5o2qjpkdo7svkrj"); // if (((str = agget(g, "layerselect")) != 0) && *str) { +UNSUPPORTED("428c4zbkpplv4awwcg3ne3q2i"); // gvc->layerlist = parse_layerselect(gvc, g, str); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("b4z8eoj6aem9v33o3snekjt37"); // gvc->layerIDs = NULL; +UNSUPPORTED("d1k0kld2zrm4eln7qp4kx6yaz"); // gvc->numLayers = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3edoapk4bnc3rsmt3huwoqf9g +// static int numPhysicalLayers (GVJ_t *job) +public static Object numPhysicalLayers(Object... arg) { +UNSUPPORTED("5zoarmqyf1m3t67nl5xahrslu"); // static int numPhysicalLayers (GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bzx9zh3zx8kyugkbdhlk4qzte"); // if (job->gvc->layerlist) { +UNSUPPORTED("60ik4am7yzmctb72j26n5lr2q"); // return job->gvc->layerlist[0]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("1aeayu3ipqii7ienwaw2fclmc"); // return job->numLayers; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cpiumi39pczm8e5154f9udcco +// static void firstlayer(GVJ_t *job, int** listp) +public static Object firstlayer(Object... arg) { +UNSUPPORTED("5e25vrbqvnj3q41zkb05shjgt"); // static void firstlayer(GVJ_t *job, int** listp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("90n549z2ovp2q6sbcp8ovmgl5"); // job->numLayers = job->gvc->numLayers; +UNSUPPORTED("bzx9zh3zx8kyugkbdhlk4qzte"); // if (job->gvc->layerlist) { +UNSUPPORTED("2fuv307u38d5mdk8l04r6u4wq"); // int *list = job->gvc->layerlist; +UNSUPPORTED("y80sygu21ondz3a4lzihqypj"); // int cnt = *list++; +UNSUPPORTED("5pz4cc2cq395z3znk5opultm2"); // if ((cnt > 1) && (! (job->flags & (1<<6)))) { +UNSUPPORTED("4gruo7b3gf61r0fw9j6awgase"); // agerr(AGWARN, "layers not supported in %s output\n", +UNSUPPORTED("6aw3ie76clejxz6q2120b63i8"); // job->output_langname); +UNSUPPORTED("edlmftq4sdx2y0m6ghban11vo"); // list[1] = job->numLayers + 1; /* only one layer printed */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("397jrexm8oa7doqg2bmttotgy"); // job->layerNum = *list++; +UNSUPPORTED("74506hoopc6w4pd2tieyyk052"); // *listp = list; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("9njkqrmknfdjv143rey9fn21b"); // if ((job->numLayers > 1) +UNSUPPORTED("b6082dq1axeyie3r2u3gmt90y"); // && (! (job->flags & (1<<6)))) { +UNSUPPORTED("4gruo7b3gf61r0fw9j6awgase"); // agerr(AGWARN, "layers not supported in %s output\n", +UNSUPPORTED("6aw3ie76clejxz6q2120b63i8"); // job->output_langname); +UNSUPPORTED("7aldo2ccuxu5nz7wrjpi2kgbk"); // job->numLayers = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8fsuke0q52rma3v3dzl4r7nxl"); // job->layerNum = 1; +UNSUPPORTED("8by4zer0vztykds6f7wo09dxl"); // *listp = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b445mlh9alsqmydjwlh3lzsnz +// static boolean validlayer(GVJ_t *job) +public static Object validlayer(Object... arg) { +UNSUPPORTED("bfi9hniz5k2qe0dadeqq4ki5b"); // static boolean validlayer(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("45m14336nzkr3zwmroo7wwmop"); // return (job->layerNum <= job->numLayers); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3y21gcvzhj6vn9gl9g6gag119 +// static void nextlayer(GVJ_t *job, int** listp) +public static Object nextlayer(Object... arg) { +UNSUPPORTED("28yugcvd6qow68yasmq967pbn"); // static void nextlayer(GVJ_t *job, int** listp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("20yv9az4kpafd26nxc9kj1ggt"); // int *list = *listp; +UNSUPPORTED("essmww0ueu4ulfn9wjtq7m4vl"); // if (list) { +UNSUPPORTED("397jrexm8oa7doqg2bmttotgy"); // job->layerNum = *list++; +UNSUPPORTED("74506hoopc6w4pd2tieyyk052"); // *listp = list; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("2xz0u3jthtaln82mr50e5afw8"); // job->layerNum++; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dpqjdl72ma03lvh522bej00pf +// static point pagecode(GVJ_t *job, char c) +public static Object pagecode(Object... arg) { +UNSUPPORTED("858jif62sg7t8bfj0q5dgi77b"); // static point pagecode(GVJ_t *job, char c) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e5r3mj8btrkw973m7l0rritko"); // point rv; +UNSUPPORTED("b2ritu2u2kl5u66e81tvv21f8"); // rv.x = rv.y = 0; +UNSUPPORTED("8amt8fmqdipygnxirowfbawox"); // switch (c) { +UNSUPPORTED("2s6hwvc7utwke7l45suhmumhk"); // case 'T': +UNSUPPORTED("13gd95p7284sp2kf1rup3gssg"); // job->pagesArrayFirst.y = job->pagesArraySize.y - 1; +UNSUPPORTED("6nseewwep98wlkw901fwmkkr4"); // rv.y = -1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9nbe45sgjnq9pebqfddm57j34"); // case 'B': +UNSUPPORTED("8wyp8gbxgnri6agdl2zv0nzbv"); // rv.y = 1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("92wd4259ggzetbnn56kh75cap"); // case 'L': +UNSUPPORTED("9zlyi4rkx1oa6app1mk6zdqs1"); // rv.x = 1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9rqaici2t4gmxgbc4jjbi5147"); // case 'R': +UNSUPPORTED("d4nni7llszxdo8f1w0qosk8n2"); // job->pagesArrayFirst.x = job->pagesArraySize.x - 1; +UNSUPPORTED("92r9rc8z07ot90pz7kfoilce8"); // rv.x = -1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wn2yfi2l0bfzlw5fyeeunug7 +// static void init_job_pagination(GVJ_t * job, graph_t *g) +public static Object init_job_pagination(Object... arg) { +UNSUPPORTED("3i2vk6s34y6kty29dnciiqr2i"); // static void init_job_pagination(GVJ_t * job, graph_t *g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eyew5ay5wwktz4fysz0b78ugv"); // GVC_t *gvc = job->gvc; +UNSUPPORTED("1p9i7j8ykvafmept9v326ki38"); // pointf pageSize; /* page size for the graph - points*/ +UNSUPPORTED("cbreumvyopnc8jb823f3fg490"); // pointf imageSize; /* image size on one page of the graph - points */ +UNSUPPORTED("bvl8rq7rhjfofyjexcv6ath9j"); // pointf margin; /* margin for a page of the graph - points */ +UNSUPPORTED("dlxve5gfi5a0trnjntul0l7vt"); // pointf centering = {0.0, 0.0}; /* centering offset - points */ +UNSUPPORTED("7wipi75cu71j2ubfdid86r3mz"); // /* unpaginated image size - in points - in graph orientation */ +UNSUPPORTED("4hd3j07l34jpp34kggybuv7g7"); // imageSize = job->view; +UNSUPPORTED("euhifkui6pusftx1ts79yvw64"); // /* rotate imageSize to page orientation */ +UNSUPPORTED("eoj2n5u9aqzo40fe4thgnio4v"); // if (job->rotation) +UNSUPPORTED("5bktmmmrdanogwscr9akvqvgp"); // imageSize = exch_xyf(imageSize); +UNSUPPORTED("cj9bqu9dsr79jfgtfgxyw1bt7"); // /* margin - in points - in page orientation */ +UNSUPPORTED("2prr8ugshi1wh3b0uqq1rytbq"); // margin = job->margin; +UNSUPPORTED("e0syewo5shkbuvckfgxahgawk"); // /* determine pagination */ +UNSUPPORTED("3ben86oxo4b9mvbfear0uaa5k"); // if (gvc->graph_sets_pageSize && (job->flags & (1<<5))) { +UNSUPPORTED("e9k3pfk8bwgj68mf5plbws00a"); // /* page was set by user */ +UNSUPPORTED("26ouotfw5qjqy45epxvh85q2a"); // /* determine size of page for image */ +UNSUPPORTED("cmeyghelvujbqypzncob2k347"); // pageSize.x = gvc->pageSize.x - 2 * margin.x; +UNSUPPORTED("4hhbnhebhvdvguv07gl1exqzr"); // pageSize.y = gvc->pageSize.y - 2 * margin.y; +UNSUPPORTED("7dzf9uvb5ahp4ja7cchy16e9q"); // if (pageSize.x < .0001) +UNSUPPORTED("8qfk6mlrxuxel1fxryn3xxsw7"); // job->pagesArraySize.x = 1; +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("39zkkuuxu0d1bo4xiaa6rvio1"); // job->pagesArraySize.x = (int)(imageSize.x / pageSize.x); +UNSUPPORTED("crpbptuooqpagkwwoovfr87ze"); // if ((imageSize.x - (job->pagesArraySize.x * pageSize.x)) > .0001) +UNSUPPORTED("fvkmj6z0flmool752kj3ezui"); // job->pagesArraySize.x++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("aeqvjc584z1k3o3btf1z27yi"); // if (pageSize.y < .0001) +UNSUPPORTED("9i2hzfup3uawsgs8xz84cvm3u"); // job->pagesArraySize.y = 1; +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("eu05pk9cbv4r7teo48863rut5"); // job->pagesArraySize.y = (int)(imageSize.y / pageSize.y); +UNSUPPORTED("9ec6tcamvhf35mwg760yp31tj"); // if ((imageSize.y - (job->pagesArraySize.y * pageSize.y)) > .0001) +UNSUPPORTED("2ptmkss0hqmoiaitn5hc03ccy"); // job->pagesArraySize.y++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dz4mq3t7i81irfy7jpgoo8slq"); // job->numPages = job->pagesArraySize.x * job->pagesArraySize.y; +UNSUPPORTED("8umi1sn4x93betwy7p6c2ceqk"); // /* find the drawable size in points */ +UNSUPPORTED("eei96a8vzvruyjbss0f6i4qe9"); // imageSize.x = MIN(imageSize.x, pageSize.x); +UNSUPPORTED("a7bw5k7czo7ubsb5x8785vxd7"); // imageSize.y = MIN(imageSize.y, pageSize.y); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("226xpnvf8rs1n0r4ei8klybwz"); // /* page not set by user, use default from renderer */ +UNSUPPORTED("916om7kp0deyvh2ghmt7tmt47"); // if (job->render.features) { +UNSUPPORTED("21jloev0l8fed4itydbq5py3k"); // pageSize.x = job->device.features->default_pagesize.x - 2*margin.x; +UNSUPPORTED("6c84lafv8rataik7pt8umib2"); // if (pageSize.x < 0.) +UNSUPPORTED("86x0hskgajl1rvbco28b3ftih"); // pageSize.x = 0.; +UNSUPPORTED("bvs3ijknux4wq8q8oh2adxyyp"); // pageSize.y = job->device.features->default_pagesize.y - 2*margin.y; +UNSUPPORTED("5ff2kpbbm9iear9jk4p33l1eu"); // if (pageSize.y < 0.) +UNSUPPORTED("nnszo3g5yfwbcgr1rfyh9htr"); // pageSize.y = 0.; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("7flj6fib45vcdli5dtp5hzydu"); // pageSize.x = pageSize.y = 0.; +UNSUPPORTED("563r9ecafak4g1eplsnjkqdi3"); // job->pagesArraySize.x = job->pagesArraySize.y = job->numPages = 1; +UNSUPPORTED("2ey4w19bytoq2sls78pheoku7"); // if (pageSize.x < imageSize.x) +UNSUPPORTED("15499m2w5qjd6yd4xa4ixhvjr"); // pageSize.x = imageSize.x; +UNSUPPORTED("austii7xnr5g8y2fjg8l6gl3"); // if (pageSize.y < imageSize.y) +UNSUPPORTED("bblz8gxp9uoak4lx31ok0b8b8"); // pageSize.y = imageSize.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bbafhwu8tnhlc6acwajgx43vy"); // /* initial window size */ +UNSUPPORTED("8362vxhywm5vjg5yy2rukot0l"); // //fprintf(stderr,"page=%g,%g dpi=%g,%g zoom=%g\n", pageSize.x, pageSize.y, job->dpi.x, job->dpi.y, job->zoom); +UNSUPPORTED("9ov3mqr5woomu5pa3ijim18bp"); // job->width = ROUND((pageSize.x + 2*margin.x) * job->dpi.x / 72); +UNSUPPORTED("dtc0guw406xkcekddmamm5rae"); // job->height = ROUND((pageSize.y + 2*margin.y) * job->dpi.y / 72); +UNSUPPORTED("7osvdh761zt2s8mi855ch8az8"); // /* set up pagedir */ +UNSUPPORTED("1cf5m3zu5ms9hd5uutq68nzfr"); // job->pagesArrayMajor.x = job->pagesArrayMajor.y +UNSUPPORTED("cuhzmvcf28hg8mxfw6jzahyz1"); // = job->pagesArrayMinor.x = job->pagesArrayMinor.y = 0; +UNSUPPORTED("910btb676tbzhf5zag3qt6p6y"); // job->pagesArrayFirst.x = job->pagesArrayFirst.y = 0; +UNSUPPORTED("58i27py4gadbh4uynztkillbo"); // job->pagesArrayMajor = pagecode(job, gvc->pagedir[0]); +UNSUPPORTED("4g3yxj64kn7kau45efo78icdp"); // job->pagesArrayMinor = pagecode(job, gvc->pagedir[1]); +UNSUPPORTED("crjkqjf6ujmxl2713vrq1mowh"); // if ((abs(job->pagesArrayMajor.x + job->pagesArrayMinor.x) != 1) +UNSUPPORTED("8xuyb2svr5wn3bsnke50x9egf"); // || (abs(job->pagesArrayMajor.y + job->pagesArrayMinor.y) != 1)) { +UNSUPPORTED("rupytferkko4y32b1y4nvfda"); // job->pagesArrayMajor = pagecode(job, 'B'); +UNSUPPORTED("3oh81o2dhshk0cwkh0se96nqd"); // job->pagesArrayMinor = pagecode(job, 'L'); +UNSUPPORTED("6fm493t81wrciw7a1qwrwwv2v"); // agerr(AGWARN, "pagedir=%s ignored\n", gvc->pagedir); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("csilklooo31ve0sxcvlk6sz50"); // /* determine page box including centering */ +UNSUPPORTED("alu1x0je9svo1m9vsro4jt661"); // if (GD_drawing(g)->centered) { +UNSUPPORTED("bd1di5q520ro9gdu3luri6uqw"); // if (pageSize.x > imageSize.x) +UNSUPPORTED("by6kyuqhzuke68yh4d1zsgjl8"); // centering.x = (pageSize.x - imageSize.x) / 2; +UNSUPPORTED("245d5xe3ls4raq0ru2opv9bjk"); // if (pageSize.y > imageSize.y) +UNSUPPORTED("entb38itr4f1eoghh2si1k2yc"); // centering.y = (pageSize.y - imageSize.y) / 2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2jawgno03mhhf060l1l58y85o"); // /* rotate back into graph orientation */ +UNSUPPORTED("3h1yo631e2fq69mxwoggya716"); // if (job->rotation) { +UNSUPPORTED("5bktmmmrdanogwscr9akvqvgp"); // imageSize = exch_xyf(imageSize); +UNSUPPORTED("cdvkc3n17wltx1ckd9ctxu40"); // pageSize = exch_xyf(pageSize); +UNSUPPORTED("aoommvrw3wcdqhpe1d9z2nrbr"); // margin = exch_xyf(margin); +UNSUPPORTED("am7xuokdmqu2xn6gmw3imq4ys"); // centering = exch_xyf(centering); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("452t79mqvs76inxtds258lmwc"); // /* canvas area, centered if necessary */ +UNSUPPORTED("egq8epmn2ww7uiikth9xfqyg2"); // job->canvasBox.LL.x = margin.x + centering.x; +UNSUPPORTED("317995ucd58ato9cs7ssy4kw5"); // job->canvasBox.LL.y = margin.y + centering.y; +UNSUPPORTED("9dlme2kqph7etv96uch6et43x"); // job->canvasBox.UR.x = margin.x + centering.x + imageSize.x; +UNSUPPORTED("5eznso0zqq6thx7ifejpl7egg"); // job->canvasBox.UR.y = margin.y + centering.y + imageSize.y; +UNSUPPORTED("ejrxa302gsbb1mtk617yev4ma"); // /* size of one page in graph units */ +UNSUPPORTED("2ktn14lo6mijabcu413qkefxe"); // job->pageSize.x = imageSize.x / job->zoom; +UNSUPPORTED("mo56q7xk3qwgskgf05s41bku"); // job->pageSize.y = imageSize.y / job->zoom; +UNSUPPORTED("b5mgup3twbezb6h3b77frrr32"); // /* pageBoundingBox in device units and page orientation */ +UNSUPPORTED("wgrjodb4gag4o6bbqdxsct4f"); // job->pageBoundingBox.LL.x = ROUND(job->canvasBox.LL.x * job->dpi.x / 72); +UNSUPPORTED("4ibgme5rpasxyxnxfo9nx0uej"); // job->pageBoundingBox.LL.y = ROUND(job->canvasBox.LL.y * job->dpi.y / 72); +UNSUPPORTED("23f72iko8ym45z6o2v06lmrf8"); // job->pageBoundingBox.UR.x = ROUND(job->canvasBox.UR.x * job->dpi.x / 72); +UNSUPPORTED("cazmki1n27pnpo1rf83qc35cv"); // job->pageBoundingBox.UR.y = ROUND(job->canvasBox.UR.y * job->dpi.y / 72); +UNSUPPORTED("3h1yo631e2fq69mxwoggya716"); // if (job->rotation) { +UNSUPPORTED("effd896sgn6sehp6jdoqfo5bu"); // job->pageBoundingBox.LL = exch_xy(job->pageBoundingBox.LL); +UNSUPPORTED("e6umepvfyiglcz7y9070vqcw1"); // job->pageBoundingBox.UR = exch_xy(job->pageBoundingBox.UR); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 18839plafofp0mij32iifl4kw +// static void firstpage(GVJ_t *job) +public static Object firstpage(Object... arg) { +UNSUPPORTED("54ikst765kaurqs5qbxgw62pi"); // static void firstpage(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d5tvlsaovhs5xq1fsq2ff13ea"); // job->pagesArrayElem = job->pagesArrayFirst; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1oosdfui4w6wrmjyrea5q0q5j +// static boolean validpage(GVJ_t *job) +public static Object validpage(Object... arg) { +UNSUPPORTED("5hdqj8s4dsinb9hoj6ra36f9w"); // static boolean validpage(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6s658komj0oc3gl02m6w1a5cl"); // return ((job->pagesArrayElem.x >= 0) +UNSUPPORTED("i8aw94fegecco4s00otz3bb0"); // && (job->pagesArrayElem.x < job->pagesArraySize.x) +UNSUPPORTED("61clso3i8seexlw62qjygdpkc"); // && (job->pagesArrayElem.y >= 0) +UNSUPPORTED("aude4er9wxhdfvjg0cm8qe53l"); // && (job->pagesArrayElem.y < job->pagesArraySize.y)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9xha5eg5k3mbziq2ptbw1gyyk +// static void nextpage(GVJ_t *job) +public static Object nextpage(Object... arg) { +UNSUPPORTED("3zzzr5yvj7mho7ylmluju8zzv"); // static void nextpage(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("90v54lwwxx1bsav5znrj48tkj"); // job->pagesArrayElem = add_point(job->pagesArrayElem, job->pagesArrayMinor); +UNSUPPORTED("9lqhnwlrk62cxcln9uq0024y0"); // if (validpage(job) == 0) { +UNSUPPORTED("2mcnl5q2zavzvatv4bugp5g6v"); // if (job->pagesArrayMajor.y) +UNSUPPORTED("53fqbcbkex674c100tfx744f6"); // job->pagesArrayElem.x = job->pagesArrayFirst.x; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("503luvfr4rh4kt3ktfo48tii4"); // job->pagesArrayElem.y = job->pagesArrayFirst.y; +UNSUPPORTED("a179fxb17hjyc52yjgeshme15"); // job->pagesArrayElem = add_point(job->pagesArrayElem, job->pagesArrayMajor); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a7du41byqeco4ri9ytgrmrv91 +// static boolean write_edge_test(Agraph_t * g, Agedge_t * e) +public static Object write_edge_test(Object... arg) { +UNSUPPORTED("9rfens9tggchdklhfwa4kaqlu"); // static boolean write_edge_test(Agraph_t * g, Agedge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5qsdev7ikmpmm9zepv8ye0zy6"); // Agraph_t *sg; +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("99d9j6m0161wdv2tu4wbf3ifi"); // for (c = 1; c <= GD_n_cluster(g); c++) { +UNSUPPORTED("cuf43q4kl3kqgyuuxdqve1mqt"); // sg = GD_clust(g)[c]; +UNSUPPORTED("72iyzot8hjs1ni2lzvvc2ibn2"); // if (agcontains(sg, e)) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8fwlqtemsmckleh6946lyd8mw"); // return NOT(0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 blr202hbxs2lw3k393qohaw2i +// static boolean write_node_test(Agraph_t * g, Agnode_t * n) +public static Object write_node_test(Object... arg) { +UNSUPPORTED("9xuxw9sbimnioecqbuwnav0qp"); // static boolean write_node_test(Agraph_t * g, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5qsdev7ikmpmm9zepv8ye0zy6"); // Agraph_t *sg; +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("99d9j6m0161wdv2tu4wbf3ifi"); // for (c = 1; c <= GD_n_cluster(g); c++) { +UNSUPPORTED("cuf43q4kl3kqgyuuxdqve1mqt"); // sg = GD_clust(g)[c]; +UNSUPPORTED("4mgclp1plbdi4oudwrp9t4oh2"); // if (agcontains(sg, n)) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8fwlqtemsmckleh6946lyd8mw"); // return NOT(0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3w1wzp6uh4yl5o7brxcuf9ip6 +// static pointf* copyPts (pointf* pts, int* ptsize, xdot_point* inpts, int numpts) +public static Object copyPts(Object... arg) { +UNSUPPORTED("1wmmoe7m5528rl69n3zrnxhrg"); // static pointf* +UNSUPPORTED("7bm15tetrusr4tjv45g1l12mm"); // copyPts (pointf* pts, int* ptsize, xdot_point* inpts, int numpts) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9a0g5x0xovxojrvkasvwowcw5"); // int i, sz = *ptsize; +UNSUPPORTED("a9llhmmnr8bimltlwtihii1cr"); // if (numpts > sz) { +UNSUPPORTED("3z4f2367ql9ea8y2br7xxotsn"); // sz = MAX(2*sz, numpts); +UNSUPPORTED("20m3u8zv7b0bef39rhk9o4ft5"); // pts = RALLOC(sz, pts, pointf); +UNSUPPORTED("klakg17zs75ckw23eh65hsxj"); // *ptsize = sz; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5alxr1b92wrqvkbrhhkibw4n0"); // for (i = 0; i < numpts; i++) { +UNSUPPORTED("23z0p3o7uw6iisz8rz93fmju8"); // pts[i].x = inpts[i].x; +UNSUPPORTED("1otoj1bflw7ets1aqhi7x3gv7"); // pts[i].y = inpts[i].y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b7gk8q1reftzri269holggnig"); // return pts; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2ho96kyoz7afiqvpkgzje2q17 +// static void emit_xdot (GVJ_t * job, xdot* xd) +public static Object emit_xdot(Object... arg) { +UNSUPPORTED("dx3xx20717wqwhmrxmr2vve4w"); // static void emit_xdot (GVJ_t * job, xdot* xd) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2p6ji7mn6c9yb2wjrxpfdi2a7"); // int image_warn = 1; +UNSUPPORTED("4fdllwmvxpz1l1wbhs4x0nd8h"); // int ptsize = 1000; +UNSUPPORTED("14sqwaw2nua8zxlzi03vrp99n"); // pointf* pts = (pointf*)gmalloc((1000)*sizeof(pointf)); +UNSUPPORTED("6h54fnrtmztsxuhsa6imjz1a7"); // exdot_op* op; +UNSUPPORTED("fliif79u3s8wl3il1sr4xy7m"); // int i, angle; +UNSUPPORTED("a0vsnu7j685g9wawdylnp9ack"); // char** styles = 0; +UNSUPPORTED("610stn97kmwddhnpeizvxmri2"); // int filled = 1; +UNSUPPORTED("9go5curik6dnbejv5o2pj8ve2"); // op = (exdot_op*)(xd->ops); +UNSUPPORTED("dvwaxn9xbj2jw2hjwvvs0tj3z"); // for (i = 0; i < xd->cnt; i++) { +UNSUPPORTED("ab1ajnetstzss8ksa66rwdtze"); // switch (op->op.kind) { +UNSUPPORTED("1texeok1es39lsgo5wdppbco2"); // case xd_filled_ellipse : +UNSUPPORTED("effcskuftros0sla2ltem13mh"); // case xd_unfilled_ellipse : +UNSUPPORTED("9oxng5yti9jzjlhlee8ivkduh"); // if (boxf_overlap(op->bb, job->clip)) { +UNSUPPORTED("eh7zpmojvvc2ava7e01p17wy3"); // pts[0].x = op->op.u.ellipse.x - op->op.u.ellipse.w; +UNSUPPORTED("6buxv3e1hyjli0lwoxxp24v0a"); // pts[0].y = op->op.u.ellipse.y - op->op.u.ellipse.h; +UNSUPPORTED("7zuf0gmhnqw8pehovb01ajiff"); // pts[1].x = op->op.u.ellipse.w; +UNSUPPORTED("8jfm3tgnfah6oxs36u6auntxy"); // pts[1].y = op->op.u.ellipse.h; +UNSUPPORTED("9qjmukp231ben11immdj4r1tz"); // gvrender_ellipse(job, pts, 2, (op->op.kind == xd_filled_ellipse?filled:0)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("40fjmoej0qk9hwneja77jlo2y"); // case xd_filled_polygon : +UNSUPPORTED("6uw61r6bh4tiicbj46yxr9t4k"); // case xd_unfilled_polygon : +UNSUPPORTED("9oxng5yti9jzjlhlee8ivkduh"); // if (boxf_overlap(op->bb, job->clip)) { +UNSUPPORTED("e8xah2ix2nhclr9bifa3tcc8x"); // pts = copyPts (pts, &ptsize, op->op.u.polygon.pts, op->op.u.polygon.cnt); +UNSUPPORTED("40c49lgnwfti09qhawe9qm3f7"); // gvrender_polygon(job, pts, op->op.u.polygon.cnt, (op->op.kind == xd_filled_polygon?filled:0)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4eu4a2drbgdgq6xb3lnl3hn9y"); // case xd_filled_bezier : +UNSUPPORTED("bn514k7swi4s6uclqqke583n8"); // case xd_unfilled_bezier : +UNSUPPORTED("9oxng5yti9jzjlhlee8ivkduh"); // if (boxf_overlap(op->bb, job->clip)) { +UNSUPPORTED("2g406s0cpa1h7r9vudzsxwz3b"); // pts = copyPts (pts, &ptsize, op->op.u.bezier.pts, op->op.u.bezier.cnt); +UNSUPPORTED("3kzwg9cpwabfnvuyfvvt0e4c9"); // gvrender_beziercurve(job, pts, op->op.u.bezier.cnt, 0, 0, (op->op.kind == xd_filled_bezier?filled:0)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1l7ha9akoh6yew2v54hvu3del"); // case xd_polyline : +UNSUPPORTED("9oxng5yti9jzjlhlee8ivkduh"); // if (boxf_overlap(op->bb, job->clip)) { +UNSUPPORTED("75vwkjetu3vs2efqgkquomhey"); // pts = copyPts (pts, &ptsize, op->op.u.polyline.pts, op->op.u.polyline.cnt); +UNSUPPORTED("2kirl6fra7pbqwmtc9b9rav42"); // gvrender_polyline(job, pts, op->op.u.polyline.cnt); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("60mg8gze602593bf2vddicza0"); // case xd_text : +UNSUPPORTED("9oxng5yti9jzjlhlee8ivkduh"); // if (boxf_overlap(op->bb, job->clip)) { +UNSUPPORTED("djw3lr9bvuzdg88p1b61ibm23"); // pts[0].x = op->op.u.text.x; +UNSUPPORTED("405lw9ptftz28hgpp0qcf6ggg"); // pts[0].y = op->op.u.text.y; +UNSUPPORTED("8uwiw0r7tra0g01788ktwkt8t"); // gvrender_textspan(job, pts[0], op->span); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("298qj2a6o0kxeatu0jgvoi784"); // case xd_fill_color : +UNSUPPORTED("3zv13wowl159snnsunkxkjtug"); // gvrender_set_fillcolor(job, op->op.u.color); +UNSUPPORTED("7ek7aftv8z293izx886r01oqm"); // filled = 1; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("qwcu5b23c4g1dkhz5kg9foza"); // case xd_pen_color : +UNSUPPORTED("1zlhprkxd9efydpc2r24kd7fa"); // gvrender_set_pencolor(job, op->op.u.color); +UNSUPPORTED("7ek7aftv8z293izx886r01oqm"); // filled = 1; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("8yhndo0ghuwhbavc33g7v21ni"); // case xd_grad_fill_color : +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("briow60sq6ay4k0slv0k1e0ai"); // char* clr0; +UNSUPPORTED("1d5jtx9oz042hr4a21vm9wd8s"); // char* clr1; +UNSUPPORTED("9tmq69gqblhx0uj3ylye71gdm"); // float frac; +UNSUPPORTED("3qtmddjw3ecnb2jfielq996dh"); // if (op->op.u.grad_color.type == xd_radial) { +UNSUPPORTED("7wjddh54icciyrvc03tmou0k6"); // xdot_radial_grad* p = &op->op.u.grad_color.u.ring; +UNSUPPORTED("82vevzieh8c8a5vw0c3537ysr"); // clr0 = p->stops[0].color; +UNSUPPORTED("25x3dhc524e69l7m63fm0botd"); // clr1 = p->stops[1].color; +UNSUPPORTED("2yubqrr4rmb6wyok8zz3d4l4b"); // frac = p->stops[1].frac; +UNSUPPORTED("c7ot1hnnumwoi4dv6bz51rr86"); // if ((p->x1 == p->x0) && (p->y1 == p->y0)) +UNSUPPORTED("2wcz57lhb7pd9xqu6a16n149a"); // angle = 0; +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("o9ps6kmfn10hdy083p2fd3as"); // angle = (int)(180.0*acos((p->x0 - p->x1)/p->r0)/M_PI); +UNSUPPORTED("34ytjoiyf9fnxnng5a51xtnj9"); // gvrender_set_fillcolor(job, clr0); +UNSUPPORTED("7ynfnu592qnwkfm90qrka6a4n"); // gvrender_set_gradient_vals(job, clr1, angle, frac); +UNSUPPORTED("5jf506rwz9snq4d6ozpjvg3yg"); // filled = 3; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("828t3nqv5ns5qvt2e0glyg2ju"); // xdot_linear_grad* p = &op->op.u.grad_color.u.ling; +UNSUPPORTED("82vevzieh8c8a5vw0c3537ysr"); // clr0 = p->stops[0].color; +UNSUPPORTED("25x3dhc524e69l7m63fm0botd"); // clr1 = p->stops[1].color; +UNSUPPORTED("2yubqrr4rmb6wyok8zz3d4l4b"); // frac = p->stops[1].frac; +UNSUPPORTED("3w9y8g31d63rmvl7ccv0624ye"); // angle = (int)(180.0*atan2(p->y1-p->y0,p->x1-p->x0)/M_PI); +UNSUPPORTED("34ytjoiyf9fnxnng5a51xtnj9"); // gvrender_set_fillcolor(job, clr0); +UNSUPPORTED("7ynfnu592qnwkfm90qrka6a4n"); // gvrender_set_gradient_vals(job, clr1, angle, frac); +UNSUPPORTED("7bikp52v1ey2yil3rybx6nris"); // filled = 2; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("6qu5ytxcjfat0eg64bep0kksy"); // case xd_grad_pen_color : +UNSUPPORTED("as7jx69a7p4gq2bo9ij43797s"); // agerr (AGWARN, "gradient pen colors not yet supported.\n"); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("56n5nfs2z21zo7ac9z2ehf12l"); // case xd_font : +UNSUPPORTED("94uhdsl49d2gyeyqzafatdww3"); // /* fontsize and fontname already encoded via xdotBB */ +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("60cspx7wpewmlz0ykd29ul27c"); // case xd_style : +UNSUPPORTED("2du13zy7ki13r60g7zvb6kuz1"); // styles = parse_style (op->op.u.style); +UNSUPPORTED("a5m3xgb63z0xz7nf5eez363f2"); // gvrender_set_style (job, styles); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2kiqf0asbojt8x24lr5eykca1"); // case xd_fontchar : +UNSUPPORTED("37zacnm7f82nfay9tbqkaay4d"); // /* font characteristics already encoded via xdotBB */ +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("91w60vqrbkqvk3q82pdoxz0y"); // case xd_image : +UNSUPPORTED("6f7cw2kz0kg3lxhd6cgr661hm"); // if (image_warn) { +UNSUPPORTED("euk5nzqu0sjv93t5ys3lhhx1q"); // agerr(AGWARN, "Images unsupported in \"background\" attribute\n"); +UNSUPPORTED("6omlto7p0ejzb4vi9rt3vyuck"); // image_warn = 0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("42f106i435avz0oneb0fhe81f"); // op++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7jkrbr4tf42xe3tv9gb8ao7iu"); // if (styles) +UNSUPPORTED("aw7zhlkbn1bg9h9hrlr9by8ty"); // gvrender_set_style(job, job->gvc->defaultlinestyle); +UNSUPPORTED("1yomvtf3njcprecdmp7eq33o7"); // free (pts); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3adhe426gweys0vj89xk7l5qs +// static void emit_background(GVJ_t * job, graph_t *g) +public static Object emit_background(Object... arg) { +UNSUPPORTED("4gpum3t892n8i9y337zhppgqh"); // static void emit_background(GVJ_t * job, graph_t *g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5f36lqh4hk3q6qlni9dobv8ye"); // xdot* xd; +UNSUPPORTED("76nok3eiyr33qf4ecv69ujxn6"); // char *str; +UNSUPPORTED("4qfeabztp0a8uifsz5h2qj0xm"); // int dfltColor; +UNSUPPORTED("5c5y7z63yavk2nbvb55um8ob0"); // /* if no bgcolor specified - first assume default of "white" */ +UNSUPPORTED("eupo0q6569myn401db6vre9x9"); // if (! ((str = agget(g, "bgcolor")) && str[0])) { +UNSUPPORTED("aje4jzb3skm6bryubgu0u8aoo"); // str = "white"; +UNSUPPORTED("3myfxeslr7cfs3cawa74sviw2"); // dfltColor = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c3z9eq4yq4ibi29ne1aux9u1a"); // dfltColor = 0; +UNSUPPORTED("72j9cwumrsza4qx1rwsxe0rxg"); // /* if device has no truecolor support, change "transparent" to "white" */ +UNSUPPORTED("ati9yt7rkd3v77g6nvlpbc3wa"); // if (! (job->flags & (1<<8)) && ((*(str)==*("transparent")&&!strcmp(str,"transparent")))) { +UNSUPPORTED("aje4jzb3skm6bryubgu0u8aoo"); // str = "white"; +UNSUPPORTED("3myfxeslr7cfs3cawa74sviw2"); // dfltColor = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bvjta4pe1bd0an3zb3gm4m9ug"); // /* except for "transparent" on truecolor, or default "white" on (assumed) white paper, paint background */ +UNSUPPORTED("aj6etszuv7t3orniarovw9oui"); // if (!( ((job->flags & (1<<8)) && (*(str)==*("transparent")&&!strcmp(str,"transparent"))) +UNSUPPORTED("ysgvhk2xw5my7hpp0pyhsyhv"); // || ((job->flags & (1<<25)) && dfltColor))) { +UNSUPPORTED("qsl046aw7731cpj2cdrs5l2u"); // char* clrs[2]; +UNSUPPORTED("4xv0cmpfa4sol0pqmfumr0rnm"); // float frac; +UNSUPPORTED("3oqdtywao9635lj8pbh00gww9"); // if ((findStopColor (str, clrs, &frac))) { +UNSUPPORTED("3vfwc36a7qaby9xcub7abdnrw"); // int filled, istyle = 0; +UNSUPPORTED("5m1l4f0yk2x1r9n00p7xoarhk"); // gvrender_set_fillcolor(job, clrs[0]); +UNSUPPORTED("ca8n6otn7zx4kgpo3p43opznn"); // gvrender_set_pencolor(job, "transparent"); +UNSUPPORTED("4xxqxkr63rp33ynfp8093ce5j"); // checkClusterStyle(g, &istyle); +UNSUPPORTED("850qgpdnne96gxnh244hf2rh2"); // if (clrs[1]) +UNSUPPORTED("2i2pjytalbtpm2nu5e4l391tt"); // gvrender_set_gradient_vals(job,clrs[1],late_int(g,G_gradientangle,0,0), frac); +UNSUPPORTED("f3qa0cv737ikcre1vpqlkukio"); // else +UNSUPPORTED("cqldfd2kxstrxcsu8vov72204"); // gvrender_set_gradient_vals(job,"black",late_int(g,G_gradientangle,0,0), frac); +UNSUPPORTED("4z7nxcqujj30hxs47niv7ng5z"); // if (istyle & (1 << 1)) +UNSUPPORTED("s4xfcz4il9k9jw0w0dh9lzpj"); // filled = 3; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("1ijl60mqfpjns1tss115yw4zp"); // filled = 2; +UNSUPPORTED("shtvpixd4zg9junin51ss0n6"); // gvrender_box(job, job->clip, filled); +UNSUPPORTED("tddizbp6oh1hmfmmbyetc39q"); // free (clrs[0]); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("75elz449frogpglpfecpb7n35"); // gvrender_set_fillcolor(job, str); +UNSUPPORTED("aa64pbbtgdbmq07oeeb6b6xd6"); // gvrender_set_pencolor(job, "transparent"); +UNSUPPORTED("em1ymq2htxwlplauvapkn96jg"); // gvrender_box(job, job->clip, 1); /* filled */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b3w7cbaupdjkjv8mlqprw6bgy"); // if ((xd = (xdot*)GD_drawing(g)->xdots)) +UNSUPPORTED("91v0ozby5hp08jwxac38nv9eq"); // emit_xdot (job, xd); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 500xb8otehz86mqouvbmd0ri4 +// static void setup_page(GVJ_t * job, graph_t * g) +public static Object setup_page(Object... arg) { +UNSUPPORTED("eie6fiea6odhb16j5p69i17ps"); // static void setup_page(GVJ_t * job, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e8udyft1fkl49dzp8kuvsscja"); // point pagesArrayElem = job->pagesArrayElem, pagesArraySize = job->pagesArraySize; +UNSUPPORTED("3h1yo631e2fq69mxwoggya716"); // if (job->rotation) { +UNSUPPORTED("4m3552gi4z6716erhvg0mybdi"); // pagesArrayElem = exch_xy(pagesArrayElem); +UNSUPPORTED("5n79xja43o2fzgv2jpwlowx9e"); // pagesArraySize = exch_xy(pagesArraySize); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3ezjo786mtpn6j3zv1sixv5yx"); // /* establish current box in graph units */ +UNSUPPORTED("2wdi0jzr6koh59dq2o5wm7rdk"); // job->pageBox.LL.x = pagesArrayElem.x * job->pageSize.x - job->pad.x; +UNSUPPORTED("8tjzkjxgopydb6bnmjxzwrdza"); // job->pageBox.LL.y = pagesArrayElem.y * job->pageSize.y - job->pad.y; +UNSUPPORTED("su2b0thzhhuzkggkmn3o5olo"); // job->pageBox.UR.x = job->pageBox.LL.x + job->pageSize.x; +UNSUPPORTED("3lljoqtt3qxcnasqtqf3ibj8v"); // job->pageBox.UR.y = job->pageBox.LL.y + job->pageSize.y; +UNSUPPORTED("6i1o1mvszl64iabuc4wxhwwsz"); // /* maximum boundingBox in device units and page orientation */ +UNSUPPORTED("51aihik1hbq97o8c6qesdchi2"); // if (job->common->viewNum == 0) +UNSUPPORTED("1hl3w4ojiqaffaut1cbitfui3"); // job->boundingBox = job->pageBoundingBox; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("67qpim1lm8zwmdptcomxyx9zh"); // EXPANDBB(job->boundingBox, job->pageBoundingBox); +UNSUPPORTED("dutcpy0okvnjgc0dspbfidfls"); // if (job->flags & (1<<7)) { +UNSUPPORTED("2xekg55ov733mt60q1dwo2uau"); // job->clip.LL.x = job->focus.x - job->view.x / 2.; +UNSUPPORTED("elawyto1cl29eu55o90i97mwe"); // job->clip.LL.y = job->focus.y - job->view.y / 2.; +UNSUPPORTED("cvsh3xbateu7iuus29faim1ib"); // job->clip.UR.x = job->focus.x + job->view.x / 2.; +UNSUPPORTED("2dms1ogbgw3r7bq8cz5sikfnm"); // job->clip.UR.y = job->focus.y + job->view.y / 2.; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("axdbapte9nha7r33skc7m9qp8"); // job->clip.LL.x = job->focus.x + job->pageSize.x * (pagesArrayElem.x - pagesArraySize.x / 2.); +UNSUPPORTED("9y9ky161dftrmlq4zybikd3wo"); // job->clip.LL.y = job->focus.y + job->pageSize.y * (pagesArrayElem.y - pagesArraySize.y / 2.); +UNSUPPORTED("28rqxotpw4u5xyb8k5ntx5sv3"); // job->clip.UR.x = job->clip.LL.x + job->pageSize.x; +UNSUPPORTED("1yvnjmifai53mslfxbm113t6z"); // job->clip.UR.y = job->clip.LL.y + job->pageSize.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6dd6oqrwhbhk7mqj8blieol8a"); // /* CAUTION - job->translation was difficult to get right. */ +UNSUPPORTED("ati7mqxwmn8u4o5lrx82875b7"); // /* Test with and without assymetric margins, e.g: -Gmargin="1,0" */ +UNSUPPORTED("3h1yo631e2fq69mxwoggya716"); // if (job->rotation) { +UNSUPPORTED("64qd8daar2r794nip6jt8u6r1"); // job->translation.y = - job->clip.UR.y - job->canvasBox.LL.y / job->zoom; +UNSUPPORTED("4356s4xto6awx7cij60pg6lvm"); // if ((job->flags & (1<<12)) || (Y_invert)) +UNSUPPORTED("9rso607ag8rokfb0keaj3dw8i"); // job->translation.x = - job->clip.UR.x - job->canvasBox.LL.x / job->zoom; +UNSUPPORTED("35nw1pbiz2p3s6qwlam5eoo3m"); // else +UNSUPPORTED("6nzlh7e28djtn3tuh7wyazl0f"); // job->translation.x = - job->clip.LL.x + job->canvasBox.LL.x / job->zoom; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("9ndd3yrf6pi0yzyq6qhvwvkmb"); // /* pre unscale margins to keep them constant under scaling */ +UNSUPPORTED("71450l3ur3gaikd8hf09vaisy"); // job->translation.x = - job->clip.LL.x + job->canvasBox.LL.x / job->zoom; +UNSUPPORTED("4356s4xto6awx7cij60pg6lvm"); // if ((job->flags & (1<<12)) || (Y_invert)) +UNSUPPORTED("e3i6pyd8cgpyxqdji6ikxfolc"); // job->translation.y = - job->clip.UR.y - job->canvasBox.LL.y / job->zoom; +UNSUPPORTED("35nw1pbiz2p3s6qwlam5eoo3m"); // else +UNSUPPORTED("8bfteitivddvt9tazhk9smelv"); // job->translation.y = - job->clip.LL.y + job->canvasBox.LL.y / job->zoom; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 as589o2efx45izm3wp7enyaht +// static boolean node_in_layer(GVJ_t *job, graph_t * g, node_t * n) +public static Object node_in_layer(Object... arg) { +UNSUPPORTED("9qfpqdz7l9i14k8tt5niso9hr"); // static boolean node_in_layer(GVJ_t *job, graph_t * g, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4np0l1afjcabfu4lj2slo7u1h"); // char *pn, *pe; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("br25a8xf14d9pszeecj99a422"); // if (job->numLayers <= 1) +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("6b110nazp4kekcjo0cggixji8"); // pn = late_string(n, N_layer, ""); +UNSUPPORTED("3jdetxpc61my2m5ouwwlafmya"); // if (selectedlayer(job, pn)) +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("1472k1aiajh8fdwws76p0peui"); // if (pn[0]) +UNSUPPORTED("974jvy6bjjit5aunmg1ofk323"); // return 0; /* Only check edges if pn = "" */ +UNSUPPORTED("6iiceie8alt1qdir25ryu1f6k"); // if ((e = agfstedge(g, n)) == NULL) +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("dcuhjbsiioawp6zspvonwd4px"); // for (e = agfstedge(g, n); e; e = agnxtedge(g, e, n)) { +UNSUPPORTED("82x79oibcq3pjyv631qc1tlg0"); // pe = late_string(e, E_layer, ""); +UNSUPPORTED("820bc3hf82s7cw6chnw5c4nbq"); // if ((pe[0] == '\0') || selectedlayer(job, pe)) +UNSUPPORTED("9qhn9m3123s8n6wwxjfo8awlm"); // return NOT(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1u0s2ppd3ul08n4e2gdaryyy8 +// static boolean edge_in_layer(GVJ_t *job, graph_t * g, edge_t * e) +public static Object edge_in_layer(Object... arg) { +UNSUPPORTED("313onxwqkhkgi36hzjkauyb42"); // static boolean edge_in_layer(GVJ_t *job, graph_t * g, edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("utbq83gb14i5eml17vr8pcid"); // char *pe, *pn; +UNSUPPORTED("6iv4xusq3ncisurzdtlt8lhe9"); // int cnt; +UNSUPPORTED("br25a8xf14d9pszeecj99a422"); // if (job->numLayers <= 1) +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("6x2v74zlvitlrgkn17942vcgh"); // pe = late_string(e, E_layer, ""); +UNSUPPORTED("3ywt8di993vozrwwnup6dpwyy"); // if (selectedlayer(job, pe)) +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("1qtr20a3naoc1fyck8og7mmrh"); // if (pe[0]) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("6b357rcrnr0ds1kjupqbpaa3e"); // for (cnt = 0; cnt < 2; cnt++) { +UNSUPPORTED("b8bas27843d09g6jaaawthl8w"); // pn = late_string(cnt < 1 ? agtail(e) : aghead(e), N_layer, ""); +UNSUPPORTED("jsx6qbuduuwph63wgsoiqgvq"); // if ((pn[0] == '\0') || selectedlayer(job, pn)) +UNSUPPORTED("9qhn9m3123s8n6wwxjfo8awlm"); // return NOT(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dyo8zdve7djszp87cuf0xuoet +// static boolean clust_in_layer(GVJ_t *job, graph_t * sg) +public static Object clust_in_layer(Object... arg) { +UNSUPPORTED("4e36i94sm4m9tfa4ajm22cim8"); // static boolean clust_in_layer(GVJ_t *job, graph_t * sg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b9rg1zyq2dr4mvb3afpkekhnt"); // char *pg; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("br25a8xf14d9pszeecj99a422"); // if (job->numLayers <= 1) +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("20qd9xj97lsoon2qf56l64qxd"); // pg = late_string(sg, agattr(sg, AGRAPH, "layer", 0), ""); +UNSUPPORTED("658zavk95iaxd3u1jryh7rbqc"); // if (selectedlayer(job, pg)) +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("82stl7dpo6yrg2w5a6umx8q9c"); // if (pg[0]) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("bjjx5k3xelkwyvbcb4gwnqq7s"); // for (n = agfstnode(sg); n; n = agnxtnode(sg, n)) +UNSUPPORTED("dl5e8i6kxe0n05x40z42vjo3g"); // if (node_in_layer(job, sg, n)) +UNSUPPORTED("9qhn9m3123s8n6wwxjfo8awlm"); // return NOT(0); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 75k6tn88w31u4ppw3q70g1jsk +// static boolean node_in_box(node_t *n, boxf b) +public static Object node_in_box(Object... arg) { +UNSUPPORTED("211j77g7ql3frkbpciwlnn9zy"); // static boolean node_in_box(node_t *n, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("46tealt6sxovbrn80ssq4sa8g"); // return boxf_overlap(ND_bb(n), b); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7j4u56kqr6m677iq36g2aih28 +// static void emit_begin_node(GVJ_t * job, node_t * n) +public static Object emit_begin_node(Object... arg) { +UNSUPPORTED("6oh0hqc0y111peee2y6h3dyp0"); // static void emit_begin_node(GVJ_t * job, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8lamppsqs7nhiu5v8k1f5jfh2"); // obj_state_t *obj; +UNSUPPORTED("12bpksga44s9sfl7x8xn2rt2k"); // int flags = job->flags; +UNSUPPORTED("ey6s6opybnefos5fozgk763tu"); // int sides, peripheries, i, j, filled = 0, rect = 0, shape, nump = 0; +UNSUPPORTED("cc2tjyw4ovc2cfzpfqu5s7xnr"); // polygon_t *poly = NULL; +UNSUPPORTED("1rh8tfsy1jwdlk7jeq8xlypar"); // pointf *vertices, *p = NULL; +UNSUPPORTED("avrrxyqlc98q6r2lvs1ku6ptd"); // pointf coord; +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("1iexddadjo0w6fdgddatfx40s"); // obj = push_obj_state(job); +UNSUPPORTED("7o8x3n4tonxrhr3uxintmcd0j"); // obj->type = NODE_OBJTYPE; +UNSUPPORTED("otsh0jqjlx2ylharf6sknjc7"); // obj->u.n = n; +UNSUPPORTED("heflz2y0siuc5a4qsd7xdy0i"); // obj->emit_state = EMIT_NDRAW; +UNSUPPORTED("984vi925q5gu9ti0dn4c6h1pu"); // if (flags & (1<<24)) { +UNSUPPORTED("8hn4rzdhnzbbm4vcj7b1o2h8s"); // /* obj->z = late_double(n, N_z, 0.0, -MAXFLOAT); */ +UNSUPPORTED("7xl25s8bmvdzfgqceezs4vbv7"); // if (GD_odim(agraphof(n)) >=3) +UNSUPPORTED("e9bowj0fth92lpwok5jw7ygmv"); // obj->z = (ROUND((ND_pos(n)[2])*72)); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("7ss0158fo4kqsce5naq3vb9di"); // obj->z = 0.0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("de51o3rsacfia37u3ekmuuyep"); // initObjMapData (job, ND_label(n), n); +UNSUPPORTED("8k7npuk2pg2np42cu63aachgc"); // if ((flags & ((1<<16) | (1<<22))) +UNSUPPORTED("ap5s8ebp9t1efc4rdd66xi8h2"); // && (obj->url || obj->explicit_tooltip)) { +UNSUPPORTED("752pv46veugd2etmozcnfiypa"); // /* checking shape of node */ +UNSUPPORTED("5zbsi1lwuz5ursdo00msuv88d"); // shape = shapeOf(n); +UNSUPPORTED("7s077dx2lcy2m2jqo0bd1qwbj"); // /* node coordinate */ +UNSUPPORTED("2qpk1rnkjskc4vssp5kqy1hob"); // coord = ND_coord(n); +UNSUPPORTED("4htxfyxz1smr3utoocizilxu4"); // /* checking if filled style has been set for node */ +UNSUPPORTED("5kcgc99yv9rp8w1dcte4rnf51"); // filled = ifFilled(n); +UNSUPPORTED("600lgxny2fkn72axw3r34cgqb"); // if (shape == SH_POLY || shape == SH_POINT) { +UNSUPPORTED("d5nksf3ih1yt0kg59sfkewlsj"); // poly = (polygon_t *) ND_shape_info(n); +UNSUPPORTED("456i8yij35bvszszfonbqz35a"); // /* checking if polygon is regular rectangle */ +UNSUPPORTED("4vyy0i6dsllcradhvl2oe51ir"); // if (isRect(poly) && (poly->peripheries || filled)) +UNSUPPORTED("3yn5fb3yxthk0g149yritkp9"); // rect = 1; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("5t5nn5iltsyof8cyz3b2gwvdf"); // /* When node has polygon shape and requested output supports polygons +UNSUPPORTED("rtnlliq5iwd307fmm56s27kf"); // * we use a polygon to map the clickable region that is a: +UNSUPPORTED("awa42ejtbglkhruoiebsfh83c"); // * circle, ellipse, polygon with n side, or point. +UNSUPPORTED("4w3ojigi9jyced2btkx1r494k"); // * For regular rectangular shape we have use node's bounding box to map clickable region +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("1qgrvitr94qu2hi2by8s1ylm1"); // if (poly && !rect && (flags & (1<<19))) { +UNSUPPORTED("91fvk4kb7gg5t610zxi308wws"); // if (poly->sides < 3) +UNSUPPORTED("f4hqnp8zargnp3vhkbcl094mr"); // sides = 1; +UNSUPPORTED("1knjyao8ci3w18zqqcnmnitir"); // else +UNSUPPORTED("csupw9r57m2dwx6i5f2tu4d86"); // sides = poly->sides; +UNSUPPORTED("5q6n2srifirg3tkf0bas934m1"); // if (poly->peripheries < 2) +UNSUPPORTED("6panx1vemgvl6wfskrd3m1mww"); // peripheries = 1; +UNSUPPORTED("1knjyao8ci3w18zqqcnmnitir"); // else +UNSUPPORTED("81q50lt0mna1wn04hztqusptn"); // peripheries = poly->peripheries; +UNSUPPORTED("2uakxkguw0fhjjx37xg11qtpp"); // vertices = poly->vertices; +UNSUPPORTED("dp132vof8gu0b6vv6svot7dp4"); // if ((s = agget(n, "samplepoints"))) +UNSUPPORTED("3ditmtyp8gocdq6i8g23oqfk3"); // nump = atoi(s); +UNSUPPORTED("9rcwqkr45gajonyf3mylgs54d"); // /* We want at least 4 points. For server-side maps, at most 100 +UNSUPPORTED("80gxq7mljih09qbykr2a77hji"); // * points are allowed. To simplify things to fit with the 120 points +UNSUPPORTED("95v6tfii1cmgyczmw9snifrz2"); // * used for skewed ellipses, we set the bound at 60. +UNSUPPORTED("29edlge3wqyp1gs0vymtr5700"); // */ +UNSUPPORTED("24rjq7ktpbelyle5ccux41fbw"); // if ((nump < 4) || (nump > 60)) +UNSUPPORTED("8f615e20vka2xve8ihx3czfgz"); // nump = 20; +UNSUPPORTED("7o7i7thssuva8pvhyrohuym9s"); // /* use bounding box of text label or node image for mapping +UNSUPPORTED("2bw9y6a24gfxnxsqoc4pzu34f"); // * when polygon has no peripheries and node is not filled +UNSUPPORTED("29edlge3wqyp1gs0vymtr5700"); // */ +UNSUPPORTED("a7oq5da9ov5iuj0nr5evgcaey"); // if (poly->peripheries == 0 && !filled) { +UNSUPPORTED("5hkjrhdwgew8q4bjy8hi39y0l"); // obj->url_map_shape = MAP_RECTANGLE; +UNSUPPORTED("6z27gxa0h15ax0y7jhl4jqw7u"); // nump = 2; +UNSUPPORTED("6y6ve2v6irttd8deh2u0tidty"); // p = (pointf*)zmalloc((nump)*sizeof(pointf)); +UNSUPPORTED("586tid4nqbu8z1d3usgwdw8jp"); // (p[0].x = coord.x - ND_lw(n), p[0].y = coord.y - ND_ht(n) / 2.0, p[1].x = coord.x + ND_lw(n), p[1].y = coord.y + ND_ht(n) / 2.0); +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("d4glybpyvbpo9bu6saa4l6bde"); // /* circle or ellipse */ +UNSUPPORTED("9d4mrdegox0b1pm5xbfep5uko"); // else if (poly->sides < 3 && poly->skew == 0.0 && poly->distortion == 0.0) { +UNSUPPORTED("cdqbx7sifcci71ypvwe0wz7yv"); // if (poly->regular) { +UNSUPPORTED("7dlfvykcyhmfeqqtnxuxpu83y"); // obj->url_map_shape = MAP_CIRCLE; +UNSUPPORTED("5um56x6io8un90j92meh20cjv"); // nump = 2; /* center of circle and top right corner of bb */ +UNSUPPORTED("yoyr2t09q9xi2y3drrvf3xad"); // p = (pointf*)zmalloc((nump)*sizeof(pointf)); +UNSUPPORTED("7p1zauucnrwblaitis0khiz1r"); // p[0].x = coord.x; +UNSUPPORTED("e6o8x1sj9om9kkeixtn7zklcs"); // p[0].y = coord.y; +UNSUPPORTED("60m7eqldm742a0adfcs7kfqcg"); // /* even vertices contain LL corner of bb */ +UNSUPPORTED("9758i1qof39xb2yzi57in7oxt"); // /* odd vertices contain UR corner of bb */ +UNSUPPORTED("854obam1okv2gd6w4k2r6m9ot"); // p[1].x = coord.x + vertices[2*peripheries - 1].x; +UNSUPPORTED("2f7rjskpdx9cpkmm1a048d0oe"); // p[1].y = coord.y + vertices[2*peripheries - 1].y; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("9amplb4x49w5htb1q19aqmixx"); // else { /* ellipse is treated as polygon */ +UNSUPPORTED("7cvkihpbuxq2fiho8en5lxlk5"); // obj->url_map_shape= MAP_POLYGON; +UNSUPPORTED("5n0o7h3635rfk8v1ofc24e5vh"); // p = pEllipse((double)(vertices[2*peripheries - 1].x), +UNSUPPORTED("68gocmgm77xvuicc7u8i05814"); // (double)(vertices[2*peripheries - 1].y), nump); +UNSUPPORTED("34bytcpuln6qgd13en0tbt49q"); // for (i = 0; i < nump; i++) { +UNSUPPORTED("7d7wspnuodlkz25ma45nsi6ag"); // p[i].x += coord.x; +UNSUPPORTED("75mj4vd1u3ik8porqjoty5tt1"); // p[i].y += coord.y; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("1b3uzl88u778jb7f869wx7xpc"); // /* all other polygonal shape */ +UNSUPPORTED("89xddhb2xugz6vr9s2y1n4iko"); // else { +UNSUPPORTED("7n9hod7wrkfif1s19ajej7dxw"); // int offset = (peripheries - 1)*(poly->sides); +UNSUPPORTED("8mmxiwtk0jn6wb1tdqa1b3w10"); // obj->url_map_shape = MAP_POLYGON; +UNSUPPORTED("9f3mabmc7lq7y42eheer04fzl"); // /* distorted or skewed ellipses and circles are polygons with 120 +UNSUPPORTED("5xz548f5h9x5kyiwplsm69qf5"); // * sides. For mapping we convert them into polygon with sample sides +UNSUPPORTED("316yclqq5365l289qzfq39l6w"); // */ +UNSUPPORTED("6tjxq9hxjynudn5fd5eb09jyb"); // if (poly->sides >= nump) { +UNSUPPORTED("bdbaovdssj5kkgpsxokx4trlm"); // int delta = poly->sides / nump; +UNSUPPORTED("yoyr2t09q9xi2y3drrvf3xad"); // p = (pointf*)zmalloc((nump)*sizeof(pointf)); +UNSUPPORTED("c046rwe9l0lp00lemr5p5fxa"); // for (i = 0, j = 0; j < nump; i += delta, j++) { +UNSUPPORTED("c1dhcvofcsymhvnczsxmmhr41"); // p[j].x = coord.x + vertices[i + offset].x; +UNSUPPORTED("ei7ntnpjxjte5mvwta7em30ll"); // p[j].y = coord.y + vertices[i + offset].y; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("esb1hqr9y2ldyt0mt0w98tg6k"); // } else { +UNSUPPORTED("ofg0e43bcmuyf7t2nedsgevg"); // nump = sides; +UNSUPPORTED("yoyr2t09q9xi2y3drrvf3xad"); // p = (pointf*)zmalloc((nump)*sizeof(pointf)); +UNSUPPORTED("34bytcpuln6qgd13en0tbt49q"); // for (i = 0; i < nump; i++) { +UNSUPPORTED("dnojnlwgkx6ddefag0zwo6ds2"); // p[i].x = coord.x + vertices[i + offset].x; +UNSUPPORTED("4dblb5sdbisslvfdhwsybgeh"); // p[i].y = coord.y + vertices[i + offset].y; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("3jir07ymknf0hmb9pv9x4dr3o"); // else { +UNSUPPORTED("98n8obslcmy8y3s7e6jf9esg2"); // /* we have to use the node's bounding box to map clickable region +UNSUPPORTED("50m9f9e7fwiwwh75wjf4clqoj"); // * when requested output format is not capable of polygons. +UNSUPPORTED("29edlge3wqyp1gs0vymtr5700"); // */ +UNSUPPORTED("dtpqdcuqa1r9h12j3i5ycrvw1"); // obj->url_map_shape = MAP_RECTANGLE; +UNSUPPORTED("64g4nd2mma198mwj1rn8lub1x"); // nump = 2; +UNSUPPORTED("cfwfzr78yzuxsg39clh917i7v"); // p = (pointf*)zmalloc((nump)*sizeof(pointf)); +UNSUPPORTED("odbnll58vskylwajptbzx1ep"); // p[0].x = coord.x - ND_lw(n); +UNSUPPORTED("nz1xqz7manrsw4hebsgnykie"); // p[0].y = coord.y - (ND_ht(n) / 2); +UNSUPPORTED("40l7iiv57pa37xyblc80nhqjv"); // p[1].x = coord.x + ND_rw(n); +UNSUPPORTED("bvo8cz7zx62rjde71khxdb3li"); // p[1].y = coord.y + (ND_ht(n) / 2); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("4lzx178ws3xixysf6d4x8jxs2"); // if (! (flags & (1<<13))) +UNSUPPORTED("6vlhqkskkzyjn8cw33u0m8dkp"); // gvrender_ptf_A(job, p, p, nump); +UNSUPPORTED("d6dtek5hzc7rtaly67ykeq98d"); // obj->url_map_p = p; +UNSUPPORTED("c1ycajl1r4i9caqbpdh9zmyx0"); // obj->url_map_n = nump; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("aemq91z7mpchiy1jqeg9gcaix"); // setColorScheme (agget (n, "colorscheme")); +UNSUPPORTED("65nxjiymni4pwghzckh64eskn"); // gvrender_begin_node(job, n); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d9mzxl9say77sxvq7p8x64arq +// static void emit_end_node(GVJ_t * job) +public static Object emit_end_node(Object... arg) { +UNSUPPORTED("2l9v7jqkrub7vxobkquy7asiq"); // static void emit_end_node(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1ibtlropykj9c7r9ibxwqb2mq"); // gvrender_end_node(job); +UNSUPPORTED("39iamwq9cd9iv3d2iyiaq8gz9"); // pop_obj_state(job); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 do63wzhzr0kzmjcdc6gjwjnj1 +// static void emit_node(GVJ_t * job, node_t * n) +public static Object emit_node(Object... arg) { +UNSUPPORTED("a610z8g79rvtm3401gis6ckc8"); // static void emit_node(GVJ_t * job, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eyew5ay5wwktz4fysz0b78ugv"); // GVC_t *gvc = job->gvc; +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("byo308l1rmve5rmx8wt32juux"); // char *style; +UNSUPPORTED("getfykrvugvlv3wxt5qm5ghl"); // char **styles = 0; +UNSUPPORTED("9q7vvjxznd6x0u1t6fgd82byj"); // char **sp; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("1ox2ru6l44s8f2m2tqkkpb60"); // if (ND_shape(n) /* node has a shape */ +UNSUPPORTED("2pbaf4f2fx6en7dizu6y1x508"); // && node_in_layer(job, agraphof(n), n) /* and is in layer */ +UNSUPPORTED("bfz19cj6ftdbt8an3chivuz6r"); // && node_in_box(n, job->clip) /* and is in page/view */ +UNSUPPORTED("7beo9zmd6okbo2j2mrhh57pg5"); // && (ND_state(n) != gvc->common.viewNum)) /* and not already drawn */ +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("5xnzubm059ragnfr4w9qppbcd"); // ND_state(n) = gvc->common.viewNum; /* mark node as drawn */ +UNSUPPORTED("d06edad4blz58hs97kcth9q6u"); // gvrender_comment(job, agnameof(n)); +UNSUPPORTED("cagpugtwz1xuxol6c2w44i117"); // s = late_string(n, N_comment, ""); +UNSUPPORTED("7oyyy6d3itm6qqhr3p5zu6ded"); // if (s[0]) +UNSUPPORTED("8gbf99sx0atz9ku0tfjv4m4o3"); // gvrender_comment(job, s); +UNSUPPORTED("9ihgp28ukdi3iied1az7rndhv"); // style = late_string(n, N_style, ""); +UNSUPPORTED("12ihr78gv09dxppuorymkgt75"); // if (style[0]) { +UNSUPPORTED("32d3t9w0x6lbw2olmibm97mqd"); // styles = parse_style(style); +UNSUPPORTED("ai2h90fa4b5ss40yyc0ehvrzd"); // sp = styles; +UNSUPPORTED("9v2c8p99l7pj3zqwvtb298adq"); // while ((p = *sp++)) { +UNSUPPORTED("xtuts27rjtqvzh4gjkw96ime"); // if ((*(p)==*("invis")&&!strcmp(p,"invis"))) return; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("58q1665qa9481hld1ioe4zwoj"); // emit_begin_node(job, n); +UNSUPPORTED("mfw9xokftdmhodm2jpp901c5"); // ND_shape(n)->fns->codefn(job, n); +UNSUPPORTED("cncg3snxi0wuz6b1dkj8gz85t"); // if (ND_xlabel(n) && ND_xlabel(n)->set) +UNSUPPORTED("67z3k2l4flib7gfhwxaekdsam"); // emit_label(job, EMIT_NLABEL, ND_xlabel(n)); +UNSUPPORTED("2jcokqlllmekcinbvegkojl7u"); // emit_end_node(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1690phewavvug1dfq83cwep5d +// static pointf computeoffset_p(pointf p, pointf q, double d) +public static Object computeoffset_p(Object... arg) { +UNSUPPORTED("63wh9kozu453znl0upnphf9mi"); // static pointf computeoffset_p(pointf p, pointf q, double d) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5uemny2bjcvw6dq2uqo1t1xl0"); // pointf res; +UNSUPPORTED("cj9v3vgjktw1o09qn9i35u6gl"); // double x = p.x - q.x, y = p.y - q.y; +UNSUPPORTED("c619zohl4d6wz9g3kekvpg7d1"); // /* keep d finite as line length approaches 0 */ +UNSUPPORTED("5c6u3xrusgxwuo66z5mvimg9m"); // d /= sqrt(x * x + y * y + .0001); +UNSUPPORTED("4lo34cbbs51klu8okkvjbbg1u"); // res.x = y * d; +UNSUPPORTED("cdsev61yjq1ezm8vyeqy9bskw"); // res.y = -x * d; +UNSUPPORTED("cezffb75elgmxmthji4vj0se9"); // return res; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dly15js1s0j0q9xlzznflvp5o +// static pointf computeoffset_qr(pointf p, pointf q, pointf r, pointf s, double d) +public static Object computeoffset_qr(Object... arg) { +UNSUPPORTED("8sdovg67zcg8hbc8uxomazvo7"); // static pointf computeoffset_qr(pointf p, pointf q, pointf r, pointf s, +UNSUPPORTED("cw59rrix8ii9c4gpgc087wzod"); // double d) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5uemny2bjcvw6dq2uqo1t1xl0"); // pointf res; +UNSUPPORTED("83zpklqoz4hkcpabg6bg1meo4"); // double len; +UNSUPPORTED("sk1w1xfer0nznuf4hm21fm98"); // double x = q.x - r.x, y = q.y - r.y; +UNSUPPORTED("2c5il9v49cdl4tr8gyt83did1"); // len = sqrt(x * x + y * y); +UNSUPPORTED("2ach8qtgjeze9t2249wcwdkat"); // if (len < .0001) { +UNSUPPORTED("6lej7y0livho67yeaclv11eqn"); // /* control points are on top of each other +UNSUPPORTED("c2tbggffhpyqvaphzbz85js2"); // use slope between endpoints instead */ +UNSUPPORTED("ld3z8wtan3gkvuzdn53c58vc"); // x = p.x - s.x, y = p.y - s.y; +UNSUPPORTED("7htvz9tvqvjgwskwcyc2urf53"); // /* keep d finite as line length approaches 0 */ +UNSUPPORTED("ealmen1ps4qroua1hv1qypt8o"); // len = sqrt(x * x + y * y + .0001); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("p5a5c43qtb7svsztnqiqbvut"); // d /= len; +UNSUPPORTED("4lo34cbbs51klu8okkvjbbg1u"); // res.x = y * d; +UNSUPPORTED("cdsev61yjq1ezm8vyeqy9bskw"); // res.y = -x * d; +UNSUPPORTED("cezffb75elgmxmthji4vj0se9"); // return res; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9jbox5ffqmnuiqxjmiewkjd7v +// static void emit_attachment(GVJ_t * job, textlabel_t * lp, splines * spl) +public static Object emit_attachment(Object... arg) { +UNSUPPORTED("cqsl6q4bc0by6b7m5fjbaz0ff"); // static void emit_attachment(GVJ_t * job, textlabel_t * lp, splines * spl) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("69bvnbgbqrcytrd76lwcg0vka"); // pointf sz, AF[3]; +UNSUPPORTED("7f6xhv1pxs09lj5ogjqiqd0jc"); // unsigned char *s; +UNSUPPORTED("3asm1mshny9o50slevb5zf6uy"); // for (s = (unsigned char *) (lp->text); *s; s++) { +UNSUPPORTED("ndpe342kdaool85s57l4ih7r"); // if (isspace(*s) == 0) +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7w2f0c8cdlaczfa4mtfux75ou"); // if (*s == 0) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("adxqzkeq9mg15dgugx9z222go"); // sz = lp->dimen; +UNSUPPORTED("8n9kjtyakr4mqv1td5vrgkb96"); // AF[0] = pointfof(lp->pos.x + sz.x / 2., lp->pos.y - sz.y / 2.); +UNSUPPORTED("6kkjo8ld87lpzum3u7wv6yv4b"); // AF[1] = pointfof(AF[0].x - sz.x, AF[0].y); +UNSUPPORTED("6ezlaa100st3k35o4mzoczre2"); // AF[2] = dotneato_closest(spl, lp->pos); +UNSUPPORTED("aigctuc4kajr8onbk5fmrvh00"); // /* Don't use edge style to draw attachment */ +UNSUPPORTED("4g8oyutwebzej18aaiz74zb9k"); // gvrender_set_style(job, job->gvc->defaultlinestyle); +UNSUPPORTED("6farm4z5p1r4wzjnb5f1kioin"); // /* Use font color to draw attachment +UNSUPPORTED("25anit6qhtt5ef1ewc1h0q577"); // - need something unambiguous in case of multicolored parallel edges +UNSUPPORTED("f115hnh0a1ezbinf75vc9r0lg"); // - defaults to black for html-like labels +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("bl5mm7hn2il0n2e623rbq8q5w"); // gvrender_set_pencolor(job, lp->fontcolor); +UNSUPPORTED("35prexehk0x6n14ojx7sihunn"); // gvrender_polyline(job, AF, 3); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4g1n8pxbh06t81obycv6rqtxv +// static char* default_pencolor(char *pencolor, char *deflt) +public static Object default_pencolor(Object... arg) { +UNSUPPORTED("4wukcoxynojzor25ps1rby9yw"); // static char* default_pencolor(char *pencolor, char *deflt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8kywmm7f51dmrjngxwvnpsd4o"); // static char *buf; +UNSUPPORTED("22dcr6aukx12do9pe4dib69c4"); // static int bufsz; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("a005u14z35hf8yjnafoaaeqg"); // int len, ncol; +UNSUPPORTED("e6y6l26pcnusy834r3jfxyd52"); // ncol = 1; +UNSUPPORTED("6zcf9gon91dymhtem9dwap4mh"); // for (p = pencolor; *p; p++) { +UNSUPPORTED("2s6gq2wmmin2ab5zt90m5xjep"); // if (*p == ':') +UNSUPPORTED("9f19jjr21zaezdxswj6tevd9n"); // ncol++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2134j62fnfo06vfq9fo45gceu"); // len = ncol * (strlen(deflt) + 1); +UNSUPPORTED("55qowwh2rcv2v2uu70hde9ct4"); // if (bufsz < len) { +UNSUPPORTED("19odu3570teiwv839flm3iezt"); // bufsz = len + 10; +UNSUPPORTED("e15ktgr11acljfi5jubpq5sba"); // buf = realloc(buf, bufsz); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3nutbraj7qprn5hvmj8fqtl63"); // strcpy(buf, deflt); +UNSUPPORTED("22y7o7tq5wsmfgkczgy0hqxmx"); // while(--ncol) { +UNSUPPORTED("9se30dn1tgkm9kisqzl2ojhic"); // strcat(buf, ":"); +UNSUPPORTED("68ovea8yallwok9w5wpk46e5m"); // strcat(buf, deflt); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4idfslavgy1wy953xlflg5ws6 +// static double approxLen (pointf* pts) +public static Object approxLen(Object... arg) { +UNSUPPORTED("6tz6ed7moergtlszt1ajl0p9v"); // static double approxLen (pointf* pts) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3s4rz758a6plk3e82llqp2gg9"); // double d = DIST(pts[0],pts[1]); +UNSUPPORTED("9v02me6trkr3y3f94cm9fyk9a"); // d += DIST(pts[1],pts[2]); +UNSUPPORTED("8r2j0wkc637k7tyzg3r6uh9iv"); // d += DIST(pts[2],pts[3]); +UNSUPPORTED("3r3o80n61nmy2jv0ezi9xg2xp"); // return d; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c24egok0eodx1gogrwwnimllw +// static void splitBSpline (bezier* bz, float t, bezier* left, bezier* right) +public static Object splitBSpline(Object... arg) { +UNSUPPORTED("bzosun8763baoenilgqapqo0v"); // static void splitBSpline (bezier* bz, float t, bezier* left, bezier* right) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dakf3h64dqiulqbamu0w9twdu"); // int i, j, k, cnt = (bz->size - 1)/3; +UNSUPPORTED("7lwfrj61cydg2xwok9ruezq5q"); // double* lens; +UNSUPPORTED("6xpvacdzhffp9veax0hnyrxsk"); // double last, len, sum; +UNSUPPORTED("48n1zwofayobr58hhiz0y5wfp"); // pointf* pts; +UNSUPPORTED("89zep3p5j2e5egc7g57ipff0g"); // float r; +UNSUPPORTED("6556o7pk7swku5m4ocatctrjt"); // if (cnt == 1) { +UNSUPPORTED("e6f8rl0x4aqawbb1f9o0iw15m"); // left->size = 4; +UNSUPPORTED("twafm7lir3aq9n2mil73iowf"); // left->list = (pointf*)zmalloc((4)*sizeof(pointf)); +UNSUPPORTED("1baicin4fqf7m9f8aohq6veca"); // right->size = 4; +UNSUPPORTED("4iwp6vrwtjet80pf2dloisel9"); // right->list = (pointf*)zmalloc((4)*sizeof(pointf)); +UNSUPPORTED("cewi4etd9db03yftetga0xkdh"); // Bezier (bz->list, 3, t, left->list, right->list); +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dd6fkzw1fpmv18pgue4xs5bqi"); // lens = (double*)zmalloc((cnt)*sizeof(double)); +UNSUPPORTED("a6vxbyim8v2mmrdcey3t2n4r0"); // sum = 0; +UNSUPPORTED("6vpzf70qotrvlbnwdne2riv0x"); // pts = bz->list; +UNSUPPORTED("1psokm6w9e7qw7fm2g1cayuk7"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("8r4arv0b9go700qz2tm3mm221"); // lens[i] = approxLen (pts); +UNSUPPORTED("eoo69513qfc7r4hl1k5c2eiwv"); // sum += lens[i]; +UNSUPPORTED("e4542wxbu4szwpfa8e0ra68f2"); // pts += 3; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4ajaxhjxm9owoq0tyl6901zpb"); // len = t*sum; +UNSUPPORTED("a6vxbyim8v2mmrdcey3t2n4r0"); // sum = 0; +UNSUPPORTED("1psokm6w9e7qw7fm2g1cayuk7"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("eoo69513qfc7r4hl1k5c2eiwv"); // sum += lens[i]; +UNSUPPORTED("5boo0t1khz74gcsiopw0n3w2z"); // if (sum >= len) +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("75pszhfxvdcbo780wsjt6bh92"); // left->size = 3*(i+1) + 1; +UNSUPPORTED("6dip2t5t8rbleilxa8lj81obn"); // left->list = (pointf*)zmalloc((left->size)*sizeof(pointf)); +UNSUPPORTED("5p4l0m9e5xsnuegq2yhv5c3d6"); // right->size = 3*(cnt-i) + 1; +UNSUPPORTED("26r2b2ifak9lziwwpho1xrj5x"); // right->list = (pointf*)zmalloc((right->size)*sizeof(pointf)); +UNSUPPORTED("3wleiy529fpgcsz1ikho2emvm"); // for (j = 0; j < left->size; j++) +UNSUPPORTED("ba9gueiwlmayc8ysz2l1cwcxj"); // left->list[j] = bz->list[j]; +UNSUPPORTED("ep0odw2vpvxzya4y8rennmr9k"); // k = j - 4; +UNSUPPORTED("e6f27aong4yxk1ijo8d8w0888"); // for (j = 0; j < right->size; j++) +UNSUPPORTED("9wqub3rjwa4mbj3s7e2szhas0"); // right->list[j] = bz->list[k++]; +UNSUPPORTED("7a9c792hfdlnnk7sj8q4whllc"); // last = lens[i]; +UNSUPPORTED("8sjlbix5lxv8ks4no35ryh1ky"); // r = (len - (sum - last))/last; +UNSUPPORTED("d2rexqliaoccgx5aaon5n8xad"); // Bezier (bz->list + 3*i, 3, r, left->list + 3*i, right->list); +UNSUPPORTED("abtwh44up8wmpmdx48y0s2mc9"); // free (lens); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 emsbbp4kdnhrbf2gca7ikthj5 +// static int multicolor (GVJ_t * job, edge_t * e, char** styles, char* colors, int num, double arrowsize, double penwidth) +public static Object multicolor(Object... arg) { +UNSUPPORTED("dvqr9ynn0c9bn4xfcpie8zyez"); // static int multicolor (GVJ_t * job, edge_t * e, char** styles, char* colors, int num, double arrowsize, double penwidth) +UNSUPPORTED("yo7buicdiu29rv5vxhas0v3s"); // { +UNSUPPORTED("37thdceezsvepe7tlyfatrbcw"); // bezier bz; +UNSUPPORTED("2g6n25q0mmfzs7lbcmb5xqnsw"); // bezier bz0, bz_l, bz_r; +UNSUPPORTED("ec8yrss5nd4ir33xtxncbfbx1"); // int i, rv; +UNSUPPORTED("8z3a2qjysx0m326m5qjy91tnu"); // colorsegs_t* segs; +UNSUPPORTED("8zv1ffgik05z2fcc41di32sn8"); // colorseg_t* s; +UNSUPPORTED("491d6vy43b2c5s364tuuj531z"); // char* endcolor; +UNSUPPORTED("23904qu3vgmgg4o78f0lbtk03"); // double left; +UNSUPPORTED("3wtewf1w0788agxoxikqp6n0a"); // int first; /* first segment with t > 0 */ +UNSUPPORTED("5vkb2ckjwqesd3277mqs5of2i"); // rv = parseSegs (colors, num, &segs); +UNSUPPORTED("2m7c7iiy39zf5k6eva7052n4u"); // if (rv > 1) { +UNSUPPORTED("cfaq63es7s358djxe08cx7kjx"); // Agraph_t* g = agraphof(agtail(e)); +UNSUPPORTED("82aqfdoa44vt6zjffu4h6i7tz"); // agerr (AGPREV, "in edge %s%s%s\n", agnameof(agtail(e)), (agisdirected(g)?" -> ":" -- "), agnameof(aghead(e))); +UNSUPPORTED("bqes0nkjkdq91khi1ouux7zfv"); // if (rv == 2) +UNSUPPORTED("btmwubugs9vkexo4yb7a5nqel"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("tqrvg9la1h2jgnwa0zql3ck5"); // else if (rv == 1) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("egp4hta3woqfkcxs9fcq2yvuy"); // for (i = 0; i < ED_spl(e)->size; i++) { +UNSUPPORTED("cgwd7hfmn0br1bm5fi4gr97b3"); // left = 1; +UNSUPPORTED("5ngoqqxxd5huppctrruhxjota"); // bz = ED_spl(e)->list[i]; +UNSUPPORTED("3vet6pylmf84jbf0ssb1sifb7"); // first = 1; +UNSUPPORTED("d2ic66tp4jlglvga1xy32sk6j"); // for (s = segs->segs; s->color; s++) { +UNSUPPORTED("78q8ibx2yffz6m8wihta0ii64"); // if ((((s->t) < 1E-5) && ((s->t) > -1E-5))) continue; +UNSUPPORTED("xa07dy2pw68wlizyfp8oymag"); // gvrender_set_pencolor(job, s->color); +UNSUPPORTED("56ofcgemtdmz0pup4itjvidtj"); // left -= s->t; +UNSUPPORTED("chr2o19f7c3h4ymbaatmy5jae"); // endcolor = s->color; +UNSUPPORTED("ay38rk7fywnv41q0742j6585x"); // if (first) { +UNSUPPORTED("7ttvwgvz7wpyo71aggs2auiau"); // first = 0; +UNSUPPORTED("9rs2pz8j0ynilgapygagbgd89"); // splitBSpline (&bz, s->t, &bz_l, &bz_r); +UNSUPPORTED("99cbkfbl5fivdra5eaj0kf8n5"); // gvrender_beziercurve(job, bz_l.list, bz_l.size, 0, 0, 0); +UNSUPPORTED("vrjjl72p0ams86w0e3fsnith"); // free (bz_l.list); +UNSUPPORTED("48xtw1gzugr4tgwurr50x6d8e"); // if ((((left) < 1E-5) && ((left) > -1E-5))) { +UNSUPPORTED("bkk1vblwk5js8005v0nk0jk15"); // free (bz_r.list); +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4mbggres28g1urrdviyjscdh0"); // else if ((((left) < 1E-5) && ((left) > -1E-5))) { +UNSUPPORTED("16m5vvsclnhu00mxtqc62jc5q"); // gvrender_beziercurve(job, bz_r.list, bz_r.size, 0, 0, 0); +UNSUPPORTED("dukn62ogiycorcn8c4esuwmu1"); // free (bz_r.list); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("2ej2iwx8roed79sbv44tte9sg"); // bz0 = bz_r; +UNSUPPORTED("82oq6xp2v59bcqu7z1dbvilyn"); // splitBSpline (&bz0, (s->t)/(left+s->t), &bz_l, &bz_r); +UNSUPPORTED("btj36obnij7vfhl4k6li7ixlh"); // free (bz0.list); +UNSUPPORTED("99cbkfbl5fivdra5eaj0kf8n5"); // gvrender_beziercurve(job, bz_l.list, bz_l.size, 0, 0, 0); +UNSUPPORTED("vrjjl72p0ams86w0e3fsnith"); // free (bz_l.list); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bjb95001z7szmwgcquyyal5ta"); // /* arrow_gen resets the job style (How? FIXME) +UNSUPPORTED("eevkw6z2fbi2d7kpx3zp0uuvc"); // * If we have more splines to do, restore the old one. +UNSUPPORTED("500s7rroyq30zj2qxhdp4jluo"); // * Use local copy of penwidth to work around reset. +UNSUPPORTED("316yclqq5365l289qzfq39l6w"); // */ +UNSUPPORTED("2qc36pchob3dha7c8jedwalcn"); // if (bz.sflag) { +UNSUPPORTED("b6y3ukuisz1mssdko3l2oa179"); // gvrender_set_pencolor(job, segs->segs->color); +UNSUPPORTED("b33lxxzdyehr8v8uwpkcgabuh"); // gvrender_set_fillcolor(job, segs->segs->color); +UNSUPPORTED("7l0hrlftphvjrn1f7whgtaofw"); // arrow_gen(job, EMIT_TDRAW, bz.sp, bz.list[0], arrowsize, penwidth, bz.sflag); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("973cbk976xio10xxw9bgkyen2"); // if (bz.eflag) { +UNSUPPORTED("7mplmupdwkpendc0q8ocljk18"); // gvrender_set_pencolor(job, endcolor); +UNSUPPORTED("ahacu4j8j9b29k2c80wyfedus"); // gvrender_set_fillcolor(job, endcolor); +UNSUPPORTED("d89bwaeqinnrhngamz9mrl01r"); // arrow_gen(job, EMIT_HDRAW, bz.ep, bz.list[bz.size - 1], arrowsize, penwidth, bz.eflag); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9zc0fxovb3sw9wibqdnoqamso"); // if ((ED_spl(e)->size>1) && (bz.sflag||bz.eflag) && styles) +UNSUPPORTED("1sadq9tjru1s6bzpcgl677k6i"); // gvrender_set_style(job, styles); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("864f5ylvxgoy5rwmwl4pstg2p"); // free (segs); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 13jatehy3n1t03488fq3ek8st +// static void free_stroke (stroke_t* sp) +public static Object free_stroke(Object... arg) { +UNSUPPORTED("ahnzha1pnhrfmdhm9uwi8iuao"); // static void free_stroke (stroke_t* sp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3h9wjmlt6pp3ti25zl9lhmigy"); // if (sp) { +UNSUPPORTED("c8uned45gp04il3dvzfnj6g5k"); // free (sp->vertices); +UNSUPPORTED("6tcxn9cesyebua29d6q299172"); // free (sp); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5b9ltl2mduk3ua0x8235o922t +// static double forfunc (double curlen, double totallen, double initwid) +public static Object forfunc(Object... arg) { +UNSUPPORTED("3t80v9xj410ss5j0pqnc1zrjp"); // static double forfunc (double curlen, double totallen, double initwid) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7w1a8rqs29lelmnia96oa58f9"); // return ((1 - (curlen/totallen))*initwid/2.0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dsgrrv9hsyak20n1h9x5jvp3f +// static double revfunc (double curlen, double totallen, double initwid) +public static Object revfunc(Object... arg) { +UNSUPPORTED("bld5nqyhkdbuxeay2ll473qr6"); // static double revfunc (double curlen, double totallen, double initwid) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("blt0wpagxakbwm5voqwfqir05"); // return (((curlen/totallen))*initwid/2.0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3evv2ec1hr5uijikij2h26w3t +// static double nonefunc (double curlen, double totallen, double initwid) +public static Object nonefunc(Object... arg) { +UNSUPPORTED("e8e1fgr1nlozsj7m2ijaws2gd"); // static double nonefunc (double curlen, double totallen, double initwid) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2zcusggl2dike7m7cwbckjltr"); // return (initwid/2.0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 333yk8u7vrjjv2pfad3z273ra +// static double bothfunc (double curlen, double totallen, double initwid) +public static Object bothfunc(Object... arg) { +UNSUPPORTED("au7dp9qva7eo751dhmuu29nq9"); // static double bothfunc (double curlen, double totallen, double initwid) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7hpykssamp5naz4fl0qzgklsq"); // double fr = curlen/totallen; +UNSUPPORTED("bixgbzdc1rbkvbqmjxn5drr4k"); // if (fr <= 0.5) return (fr*initwid); +UNSUPPORTED("1b7ckst75n0s5njx7vvi7w3jw"); // else return ((1-fr)*initwid); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 256panf42dptclohlg3aolfqv +// static radfunc_t taperfun (edge_t* e) +public static Object taperfun(Object... arg) { +UNSUPPORTED("ygkpgli37inuq18f0rtbwcs1"); // static radfunc_t +UNSUPPORTED("6r0vilajj0np6wokfkwjl7ykm"); // taperfun (edge_t* e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6ms33tgqoacyvkev0g6t87x2n"); // char* attr; +UNSUPPORTED("1un0u4nwlweclzc8w1ydozt5q"); // if (E_dir && ((attr = agxget(e, E_dir)))[0]) { +UNSUPPORTED("bslhjzz27pwavlahlu4z4vaei"); // if ((*(attr)==*("forward")&&!strcmp(attr,"forward"))) return forfunc; +UNSUPPORTED("eulgmrvzxxnnylptzfoj4ebix"); // if ((*(attr)==*("back")&&!strcmp(attr,"back"))) return revfunc; +UNSUPPORTED("7jy0p75av38y41nrehkh8eh5r"); // if ((*(attr)==*("both")&&!strcmp(attr,"both"))) return bothfunc; +UNSUPPORTED("15n6mwfm4pg2fpvr7pkllvmcs"); // if ((*(attr)==*("none")&&!strcmp(attr,"none"))) return nonefunc; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bsel6fx8wjsph743urtdg1qfv"); // return (agisdirected(agraphof(aghead(e))) ? forfunc : nonefunc); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7u6cnonl0chpkjro9quo09fyr +// static void emit_edge_graphics(GVJ_t * job, edge_t * e, char** styles) +public static Object emit_edge_graphics(Object... arg) { +UNSUPPORTED("44vrfcbqr2d1szhfncg37jn9c"); // static void emit_edge_graphics(GVJ_t * job, edge_t * e, char** styles) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dyh4es8zja669xh6w704698u1"); // int i, j, cnum, numc = 0, numsemi = 0; +UNSUPPORTED("4fd30tht9vca24rbn5qkxxm2h"); // char *color, *pencolor, *fillcolor; +UNSUPPORTED("dou14upt5u5f8go87xjj5jdtc"); // char *headcolor, *tailcolor, *lastcolor; +UNSUPPORTED("da94242ir0732sz1wjfrstzam"); // char *colors = NULL; +UNSUPPORTED("37thdceezsvepe7tlyfatrbcw"); // bezier bz; +UNSUPPORTED("3l9st5qdrh657gcmhelkkjwk3"); // splines offspl, tmpspl; +UNSUPPORTED("9sg7pim3sh38o6cyrrysxdihv"); // pointf pf0, pf1, pf2 = { 0, 0 }, pf3, *offlist, *tmplist; +UNSUPPORTED("20vx89srcsfcjhjnu7dhv2ha0"); // double arrowsize, numc2, penwidth=job->obj->penwidth; +UNSUPPORTED("a4px33i4moqe8ybwatz0g8k6"); // char* p; +UNSUPPORTED("d7s9yrspa1yd9tdzj22df8zfx"); // boolean tapered = 0; +UNSUPPORTED("d7dk8nv783iyi7g16fbyvoswy"); // setColorScheme (agget (e, "colorscheme")); +UNSUPPORTED("4pdkymy0wuxj1yn9xqqzp2x4h"); // if (ED_spl(e)) { +UNSUPPORTED("kp36oq4bt444kf967o82pd23"); // arrowsize = late_double(e, E_arrowsz, 1.0, 0.0); +UNSUPPORTED("47l2wt9sohpfh3winazhczpb4"); // color = late_string(e, E_color, ""); +UNSUPPORTED("d2n6qh5kiavdnxsfrc0fqqv4e"); // if (styles) { +UNSUPPORTED("54isti54aox6yj0vuk6j86qhs"); // char** sp = styles; +UNSUPPORTED("9v2c8p99l7pj3zqwvtb298adq"); // while ((p = *sp++)) { +UNSUPPORTED("2ku2emqwvspqz2c6481orcixb"); // if ((*(p)==*("tapered")&&!strcmp(p,"tapered"))) { +UNSUPPORTED("adyiyvvw6sowssjqqu2wojmtv"); // tapered = 1; +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1p0odq4xbiiyk9zulrtgh78p7"); // /* need to know how many colors separated by ':' */ +UNSUPPORTED("epbhl3zzqty7zxgexbqsijz3t"); // for (p = color; *p; p++) { +UNSUPPORTED("1zdp9y9tqsxdxtj8gfy3leixo"); // if (*p == ':') +UNSUPPORTED("5iqqlev08y8ukmtx3vha7s7kc"); // numc++; +UNSUPPORTED("88xgi4gcg06c70hzvrxc2pij2"); // else if (*p == ';') +UNSUPPORTED("ajossrlhthg39idzi4plrieni"); // numsemi++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("f1kfj1lvizljipxfa8m49o34e"); // if (numsemi && numc) { +UNSUPPORTED("9vi0u3wh25rzf9qx22ub742q9"); // if (multicolor (job, e, styles, color, numc+1, arrowsize, penwidth)) { +UNSUPPORTED("2hm4ng34o2djs8z7qg2ac3c1x"); // color = "black"; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1adkfqmo3ykccvljbvh44veke"); // fillcolor = pencolor = color; +UNSUPPORTED("5zjv2jq8jwy0xnngx03rvezxj"); // if (ED_gui_state(e) & (1<<0)) { +UNSUPPORTED("e1znbw6oeo9yq3u94bd736qh0"); // pencolor = late_nnstring(e, E_activepencolor, +UNSUPPORTED("1g9t8pkrtaf7lucfw4wjhwq1b"); // default_pencolor(pencolor, "#808080")); +UNSUPPORTED("2jqwe3bwxzh4ldnv9yft80lr9"); // fillcolor = late_nnstring(e, E_activefillcolor, "#fcfcfc"); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("d3olcb516sc9gnsf00xgo98dd"); // else if (ED_gui_state(e) & (1<<1)) { +UNSUPPORTED("6n83olgg54bds3atz6ocdxcgm"); // pencolor = late_nnstring(e, E_selectedpencolor, +UNSUPPORTED("bjgr6yow0b74j4um7a2sekd1t"); // default_pencolor(pencolor, "#303030")); +UNSUPPORTED("cm8kancv5dyuwquvezp6bfx54"); // fillcolor = late_nnstring(e, E_selectedfillcolor, "#e8e8e8"); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3szmncx89hltlxv3fqrn7abjs"); // else if (ED_gui_state(e) & (1<<3)) { +UNSUPPORTED("9pzm0fj2ru19falkosarggftj"); // pencolor = late_nnstring(e, E_deletedpencolor, +UNSUPPORTED("1ivzzes2dmdgnv86yk0ffaf2u"); // default_pencolor(pencolor, "#e0e0e0")); +UNSUPPORTED("8o3b6zumizq20edhwhmjjtvjf"); // fillcolor = late_nnstring(e, E_deletedfillcolor, "#f0f0f0"); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("59tkofvq26pokzebj54fxmvn"); // else if (ED_gui_state(e) & (1<<2)) { +UNSUPPORTED("9ur79rphks1cca1bf289echp6"); // pencolor = late_nnstring(e, E_visitedpencolor, +UNSUPPORTED("5c0jkjan0v1lp9rthvuo36q5e"); // default_pencolor(pencolor, "#101010")); +UNSUPPORTED("73uog35zh3g1t58z0zbwtmoxh"); // fillcolor = late_nnstring(e, E_visitedfillcolor, "#f8f8f8"); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("70e3lpuncfyeq8ow3o0twrknb"); // fillcolor = late_nnstring(e, E_fillcolor, color); +UNSUPPORTED("besdb3lw2v7ps66w9w7tit6bj"); // if (pencolor != color) +UNSUPPORTED("4s4clbt0ohbem378iomo2d67o"); // gvrender_set_pencolor(job, pencolor); +UNSUPPORTED("ajy8xtlpgl5nu72sbovqnt6fl"); // if (fillcolor != color) +UNSUPPORTED("b156qgcfm85r551m3jmzhysy7"); // gvrender_set_fillcolor(job, fillcolor); +UNSUPPORTED("eso6mj6u37z0eyzv9bnyclws9"); // color = pencolor; +UNSUPPORTED("75fa2ioc5gvzkhqk5qlljrc5k"); // if (tapered) { +UNSUPPORTED("d2fgbjxcola63obus1hikp8pg"); // stroke_t* stp; +UNSUPPORTED("4fan4tn82jocc40ifj8ouifx4"); // if (*color == '\0') color = "black"; +UNSUPPORTED("287ivnme7uzrjofjffd2b728s"); // if (*fillcolor == '\0') fillcolor = "black"; +UNSUPPORTED("aa64pbbtgdbmq07oeeb6b6xd6"); // gvrender_set_pencolor(job, "transparent"); +UNSUPPORTED("b4ftxmadx3875jpvifjzhsz4d"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("3cdfvg0cegvnb5z8rbltyba5w"); // bz = ED_spl(e)->list[0]; +UNSUPPORTED("bstcwq3pyy3ut7b2lsr32fr81"); // stp = taper (&bz, taperfun (e), penwidth, 0, 0); +UNSUPPORTED("4b4v79dvjxu6pk3cfm0u6f6ec"); // gvrender_polygon(job, stp->vertices, stp->nvertices, NOT(0)); +UNSUPPORTED("chpwwmn3mqyi2bzsp7whr9nd9"); // free_stroke (stp); +UNSUPPORTED("2dyaq1mbp4llru6ov9chn9lky"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("7tv6l7sws5ownkmdcnfh1bd70"); // if (fillcolor != color) +UNSUPPORTED("c8g4zrr9fhcg9l45gm7ut3wkl"); // gvrender_set_fillcolor(job, fillcolor); +UNSUPPORTED("4ulz6ze3ok8dfrvqvzfe163do"); // if (bz.sflag) { +UNSUPPORTED("3bsc7v0uj4ukdu3q4yku6pyc5"); // arrow_gen(job, EMIT_TDRAW, bz.sp, bz.list[0], arrowsize, penwidth, bz.sflag); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5t5bh9txkzxp6h1lozsf250ww"); // if (bz.eflag) { +UNSUPPORTED("dosyp6r5kbys1grl265mqm6d6"); // arrow_gen(job, EMIT_HDRAW, bz.ep, bz.list[bz.size - 1], arrowsize, penwidth, bz.eflag); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3rk5e1uiwm7hzn0bhxpzi5dey"); // /* if more than one color - then generate parallel beziers, one per color */ +UNSUPPORTED("arvi3zjcegh42bgtwaulg8wkn"); // else if (numc) { +UNSUPPORTED("8eaaczlv3zth4i3rc8kryne45"); // /* calculate and save offset vector spline and initialize first offset spline */ +UNSUPPORTED("8a120p6zsfs8ycbql82yqol7p"); // tmpspl.size = offspl.size = ED_spl(e)->size; +UNSUPPORTED("e3xuwliq0lpq61lr4e3efh174"); // offspl.list = malloc(sizeof(bezier) * offspl.size); +UNSUPPORTED("41o3n44hn71jtdapbdfe0y9si"); // tmpspl.list = malloc(sizeof(bezier) * tmpspl.size); +UNSUPPORTED("8pvfophsjdyrye9m6oieixnvf"); // numc2 = (2 + numc) / 2.0; +UNSUPPORTED("7wvoxnl3dqatxwcvgzbrvp8lz"); // for (i = 0; i < offspl.size; i++) { +UNSUPPORTED("6uzqmcfjwogzxlwn3gsd5jdj"); // bz = ED_spl(e)->list[i]; +UNSUPPORTED("4lo2g191z1b9knaq7l6mnn6bh"); // tmpspl.list[i].size = offspl.list[i].size = bz.size; +UNSUPPORTED("cc4js3gwy5jel80gaqbo8y129"); // offlist = offspl.list[i].list = malloc(sizeof(pointf) * bz.size); +UNSUPPORTED("vf689dmffmji3k8sgjrc525g"); // tmplist = tmpspl.list[i].list = malloc(sizeof(pointf) * bz.size); +UNSUPPORTED("6g7ruy3ae9horpmcz5nfjwyvm"); // pf3 = bz.list[0]; +UNSUPPORTED("7foyxeolsc28jypsxdwryyo6j"); // for (j = 0; j < bz.size - 1; j += 3) { +UNSUPPORTED("du9m49x179tlyjv3kpi4ajyxu"); // pf0 = pf3; +UNSUPPORTED("4kiwxmoozlkcz1l62hop75o9g"); // pf1 = bz.list[j + 1]; +UNSUPPORTED("euzly3uj0433xtqrcskytd7pi"); // /* calculate perpendicular vectors for each bezier point */ +UNSUPPORTED("8dvury325tlnhct9axnqkloml"); // if (j == 0) /* first segment, no previous pf2 */ +UNSUPPORTED("eqrlk7aad4crtsnmovu8rx5e6"); // offlist[j] = computeoffset_p(pf0, pf1, 2.0); +UNSUPPORTED("ybsy5tjwpggeq6c9pm1r0mvg"); // else /* i.e. pf2 is available from previous segment */ +UNSUPPORTED("1x7zjqoo6zzgcjg1fmrin53gg"); // offlist[j] = computeoffset_p(pf2, pf1, 2.0); +UNSUPPORTED("31nofnynnq04ixi0v38p12n9p"); // pf2 = bz.list[j + 2]; +UNSUPPORTED("w4fsbg1khv9rq1z4zqjr6buj"); // pf3 = bz.list[j + 3]; +UNSUPPORTED("5pp5m5z0j3ifb4261labxynia"); // offlist[j + 1] = offlist[j + 2] = +UNSUPPORTED("az662ecxsluy2yowrt3q6ek2p"); // computeoffset_qr(pf0, pf1, pf2, pf3, 2.0); +UNSUPPORTED("cbwbz3whkfb01jvescyn9k0sv"); // /* initialize tmpspl to outermost position */ +UNSUPPORTED("8wlvgs6gmjfrxnf217l61k9gs"); // tmplist[j].x = pf0.x - numc2 * offlist[j].x; +UNSUPPORTED("88jzucdv8idpx03j2fewuvg1x"); // tmplist[j].y = pf0.y - numc2 * offlist[j].y; +UNSUPPORTED("9xhxpretw3vq1bse37lv4cu0y"); // tmplist[j + 1].x = pf1.x - numc2 * offlist[j + 1].x; +UNSUPPORTED("e3usjnf19ii4a29t9rtdtmfqy"); // tmplist[j + 1].y = pf1.y - numc2 * offlist[j + 1].y; +UNSUPPORTED("a68d7jpzubul7pz15p6d036t0"); // tmplist[j + 2].x = pf2.x - numc2 * offlist[j + 2].x; +UNSUPPORTED("9arrexwrbyqpj4ypwfyhjrtzg"); // tmplist[j + 2].y = pf2.y - numc2 * offlist[j + 2].y; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("ed04mnw0pqbnqfyg4xzrkfzkt"); // /* last segment, no next pf1 */ +UNSUPPORTED("gwh8gl1f8r7993j5qtnjb5du"); // offlist[j] = computeoffset_p(pf2, pf3, 2.0); +UNSUPPORTED("80gkd0c5b7k80ahlygpim1gmb"); // tmplist[j].x = pf3.x - numc2 * offlist[j].x; +UNSUPPORTED("3z599nt08uc3h1yma07b04aj3"); // tmplist[j].y = pf3.y - numc2 * offlist[j].y; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4tu18v3pp0xuim6h8mg6d5acj"); // lastcolor = headcolor = tailcolor = color; +UNSUPPORTED("e898dxfr4zmw4omwcbes9a6bp"); // colors = strdup(color); +UNSUPPORTED("9c7ud1ls5bwt4gauc6v44g982"); // for (cnum = 0, color = strtok(colors, ":"); color; +UNSUPPORTED("9ekqe3cr3rsir3piy9j737nk2"); // cnum++, color = strtok(0, ":")) { +UNSUPPORTED("anr2fzsu68eq5ho25s3n57ucq"); // if (!color[0]) +UNSUPPORTED("axx7q4yy90hd2qya7l3hppd5c"); // color = "black"; +UNSUPPORTED("a2ducrn6b7qjjhh7f81totdqw"); // if (color != lastcolor) { +UNSUPPORTED("aabfth40rjblehad0r9zya7ci"); // if (! (ED_gui_state(e) & ((1<<0) | (1<<1)))) { +UNSUPPORTED("aa6xnio2sxgn1omogw6y8xyri"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("cjpgya31i8in4mlytxcux25xk"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("e9aurhv58krtw8fa2qx3bd70y"); // lastcolor = color; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("1ngzlxjzccbsg6ucsln5rvfy0"); // if (cnum == 0) +UNSUPPORTED("7hmj22ga66vzbca8w3syrk9f7"); // headcolor = tailcolor = color; +UNSUPPORTED("4wn5san08kv94kkd7i7afxjhl"); // if (cnum == 1) +UNSUPPORTED("7oxd4vlfp5a45womyvouxm6d6"); // tailcolor = color; +UNSUPPORTED("d7gdoq0jhg8b4ac0gf5kv9ivo"); // for (i = 0; i < tmpspl.size; i++) { +UNSUPPORTED("46p8d4gs7irf8q8np6w0dmvi2"); // tmplist = tmpspl.list[i].list; +UNSUPPORTED("ew31zut96cgfu6j038wbwoeuh"); // offlist = offspl.list[i].list; +UNSUPPORTED("5aahyg8gv7pvkfk4zigpruzu6"); // for (j = 0; j < tmpspl.list[i].size; j++) { +UNSUPPORTED("428mqlpmorpkmzs7314jtfgo1"); // tmplist[j].x += offlist[j].x; +UNSUPPORTED("870cggpxew62biyq2myzh1be"); // tmplist[j].y += offlist[j].y; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("1n3ez6dffthnb7zqgi0dc571b"); // gvrender_beziercurve(job, tmplist, tmpspl.list[i].size, +UNSUPPORTED("3tvyao2azw8uqezjar4gg12rj"); // 0, 0, 0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4ulz6ze3ok8dfrvqvzfe163do"); // if (bz.sflag) { +UNSUPPORTED("cnl2vgj89lj652fz58jzw5fgr"); // if (color != tailcolor) { +UNSUPPORTED("61755uq447ue5aaxqvfbryhfo"); // color = tailcolor; +UNSUPPORTED("aabfth40rjblehad0r9zya7ci"); // if (! (ED_gui_state(e) & ((1<<0) | (1<<1)))) { +UNSUPPORTED("aa6xnio2sxgn1omogw6y8xyri"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("cjpgya31i8in4mlytxcux25xk"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("ankm9epmn1d51qf5040r6fpo3"); // arrow_gen(job, EMIT_TDRAW, bz.sp, bz.list[0], +UNSUPPORTED("4o0fkltlgsxx45rvoau5pvp16"); // arrowsize, penwidth, bz.sflag); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5t5bh9txkzxp6h1lozsf250ww"); // if (bz.eflag) { +UNSUPPORTED("1bf269kx0rl5v6qpt9cbabezx"); // if (color != headcolor) { +UNSUPPORTED("91s08h9fw7wrj8oyt31cgu4or"); // color = headcolor; +UNSUPPORTED("aabfth40rjblehad0r9zya7ci"); // if (! (ED_gui_state(e) & ((1<<0) | (1<<1)))) { +UNSUPPORTED("aa6xnio2sxgn1omogw6y8xyri"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("cjpgya31i8in4mlytxcux25xk"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("77fdpd135fqcv7jprr2ac2k7b"); // arrow_gen(job, EMIT_HDRAW, bz.ep, bz.list[bz.size - 1], +UNSUPPORTED("3umh63h5q3be2s7ix5nvchvxa"); // arrowsize, penwidth, bz.eflag); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ein30zj4hern2nnkuo8pqpwqy"); // free(colors); +UNSUPPORTED("7wvoxnl3dqatxwcvgzbrvp8lz"); // for (i = 0; i < offspl.size; i++) { +UNSUPPORTED("1wjuw35ysxsboo3rdxm79nmfy"); // free(offspl.list[i].list); +UNSUPPORTED("60zkuby9v464su4bc563u74ts"); // free(tmpspl.list[i].list); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ewlz06ozbl7bfb9epkz1ox6mt"); // free(offspl.list); +UNSUPPORTED("14byj4mkdb5aaeyd48wnrxku6"); // free(tmpspl.list); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("8gqszi1k0mq14icjh1ot8vg53"); // if (! (ED_gui_state(e) & ((1<<0) | (1<<1)))) { +UNSUPPORTED("5czy66vom4jkjwpkobz0tn2kv"); // if (color[0]) { +UNSUPPORTED("bd0syu44e3lbokb2mhifc6xzx"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("sj6fn2hkr0i5p6gyntb8nbz7"); // gvrender_set_fillcolor(job, fillcolor); +UNSUPPORTED("3pv9j4qzifaa1yqzdsrv6crqk"); // } else { +UNSUPPORTED("38cb36y8b8k7nyp8ou2ci224"); // gvrender_set_pencolor(job, "black"); +UNSUPPORTED("53s7vea1n8kkq2j04kqwf7f57"); // if (fillcolor[0]) +UNSUPPORTED("b3wipvue5h9yn4mwq4jdrvbqj"); // gvrender_set_fillcolor(job, fillcolor); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("3gfs0bkmty8cyqpr1hvhleit"); // gvrender_set_fillcolor(job, "black"); +UNSUPPORTED("6o67xwzi6pf81mieipn703sxl"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ah9ldbdg46psh3ic9qv1v1w1h"); // for (i = 0; i < ED_spl(e)->size; i++) { +UNSUPPORTED("6uzqmcfjwogzxlwn3gsd5jdj"); // bz = ED_spl(e)->list[i]; +UNSUPPORTED("4vmmlrhormhci854vjzy3xfp5"); // if (job->flags & (1<<14)) { +UNSUPPORTED("3fq5qfvm5itvhminu91gbm0xl"); // gvrender_beziercurve(job, bz.list, bz.size, bz.sflag, bz.eflag, 0); +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("dpf7yejadgyhte1g6i690hdvh"); // gvrender_beziercurve(job, bz.list, bz.size, 0, 0, 0); +UNSUPPORTED("1varqft14sst3gy9wlbwfxs2h"); // if (bz.sflag) { +UNSUPPORTED("4kjbcxhhyztcuvz6tljmieqnn"); // arrow_gen(job, EMIT_TDRAW, bz.sp, bz.list[0], +UNSUPPORTED("4on3hu0dhyuvi03lazibxt3cb"); // arrowsize, penwidth, bz.sflag); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("1rw0tdjfpvfjrqqs2goiovglj"); // if (bz.eflag) { +UNSUPPORTED("308rgxf2j9o0sn6ergiflga31"); // arrow_gen(job, EMIT_HDRAW, bz.ep, bz.list[bz.size - 1], +UNSUPPORTED("dbyip7sr13mvy3tsoe4o9i19t"); // arrowsize, penwidth, bz.eflag); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6k0z6eroe598hkmkh1ynpnanu"); // if ((ED_spl(e)->size>1) && (bz.sflag||bz.eflag) && styles) +UNSUPPORTED("44yezt0mg1ptjxgfbrz8rnq3d"); // gvrender_set_style(job, styles); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8clgbd8hcgw564ispajc9fzmg +// static boolean edge_in_box(edge_t *e, boxf b) +public static Object edge_in_box(Object... arg) { +UNSUPPORTED("4ocf4su3fqdqvh06u5f0hltsn"); // static boolean edge_in_box(edge_t *e, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6tl9mepc2bett364jduh2q4mf"); // splines *spl; +UNSUPPORTED("cqwl7s9yvzr8n5v8svuuv1a1q"); // textlabel_t *lp; +UNSUPPORTED("2c3cg84bl0xam4mk6g5f31jj0"); // spl = ED_spl(e); +UNSUPPORTED("7hvxias4hzevaqzopdofxqtf7"); // if (spl && boxf_overlap(spl->bb, b)) +UNSUPPORTED("anqbm3khxs8r22akkx8kcgbbx"); // return NOT(0); +UNSUPPORTED("n9pj1f2ecz41q7q378oisbjt"); // lp = ED_label(e); +UNSUPPORTED("26tbjilm0lmi9lsxtc9qh7qr"); // if (lp && overlap_label(lp, b)) +UNSUPPORTED("anqbm3khxs8r22akkx8kcgbbx"); // return NOT(0); +UNSUPPORTED("16wq7hm2hmp8t60ogm2usvvsu"); // lp = ED_xlabel(e); +UNSUPPORTED("erykqbn6tqjiaxzh5ob60z1f1"); // if (lp && lp->set && overlap_label(lp, b)) +UNSUPPORTED("anqbm3khxs8r22akkx8kcgbbx"); // return NOT(0); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cbl8pryorx02zjsmvgy70ve3p +// static void emit_begin_edge(GVJ_t * job, edge_t * e, char** styles) +public static Object emit_begin_edge(Object... arg) { +UNSUPPORTED("2ig8s73qzrztk38xr6ky7zb11"); // static void emit_begin_edge(GVJ_t * job, edge_t * e, char** styles) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8lamppsqs7nhiu5v8k1f5jfh2"); // obj_state_t *obj; +UNSUPPORTED("12bpksga44s9sfl7x8xn2rt2k"); // int flags = job->flags; +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("161c0dnzyd7i9yp8msmk5m4uk"); // textlabel_t *lab = NULL, *tlab = NULL, *hlab = NULL; +UNSUPPORTED("5nywj0gapcfc2dmrad685bp6p"); // pointf *pbs = NULL; +UNSUPPORTED("cl4bevd50vcwmjkrgq0elpafi"); // int i, nump, *pbs_n = NULL, pbs_poly_n = 0; +UNSUPPORTED("3jo16cd9vt1kjc2upgxm9v4ro"); // char* dflt_url = NULL; +UNSUPPORTED("c1xlgxbqyzghwddjio1795bot"); // char* dflt_target = NULL; +UNSUPPORTED("75w3zx2oz7s1yf7arcxf48heo"); // double penwidth; +UNSUPPORTED("1iexddadjo0w6fdgddatfx40s"); // obj = push_obj_state(job); +UNSUPPORTED("b89ouigo5gftk9ug9cj99l2ev"); // obj->type = EDGE_OBJTYPE; +UNSUPPORTED("8uahr3ivszgqh5671v8617mjq"); // obj->u.e = e; +UNSUPPORTED("atedmjmxm7qoeolyi1wi7k1j4"); // obj->emit_state = EMIT_EDRAW; +UNSUPPORTED("1db1hibhp0ubguecujfaj8wix"); // /* We handle the edge style and penwidth here because the width +UNSUPPORTED("69ewknm6ydrnvfky1fo5ty9my"); // * is needed below for calculating polygonal image maps +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("rrp11kv0zwuznrwfe4ka8ko0"); // if (styles && ED_spl(e)) gvrender_set_style(job, styles); +UNSUPPORTED("6vy4pkkhruh7w9iykz7tfgi9g"); // if (E_penwidth && ((s=agxget(e,E_penwidth)) && s[0])) { +UNSUPPORTED("bei9v8b4qq66l2v8kmz3bnuwb"); // penwidth = late_double(e, E_penwidth, 1.0, 0.0); +UNSUPPORTED("a85jezrt5nu63vkla8bslhzcx"); // gvrender_set_penwidth(job, penwidth); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("984vi925q5gu9ti0dn4c6h1pu"); // if (flags & (1<<24)) { +UNSUPPORTED("aaozphuch8tw889utqbq1vdsl"); // /* obj->tail_z = late_double(agtail(e), N_z, 0.0, -1000.0); */ +UNSUPPORTED("1qb7gbxecops5b2y4ze6kkb3m"); // /* obj->head_z = late_double(aghead(e), N_z, 0.0, -MAXFLOAT); */ +UNSUPPORTED("d9qmjxnu6if6ms7ptj8jv1sou"); // if (GD_odim(agraphof(agtail(e))) >=3) { +UNSUPPORTED("apupbk890ov955gpnt1ywdg8x"); // obj->tail_z = (ROUND((ND_pos(agtail(e))[2])*72)); +UNSUPPORTED("7l2k0b1xoqey4kaneraonwuox"); // obj->head_z = (ROUND((ND_pos(aghead(e))[2])*72)); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("e5r0sn9g2mp9ns4hrphra5h51"); // obj->tail_z = obj->head_z = 0.0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("23wil4rzu7y2cg0oxiahdthfo"); // if (flags & (1<<15)) { +UNSUPPORTED("1vaujzmkgkvzg9r3ws72hd0sn"); // if ((lab = ED_label(e))) +UNSUPPORTED("10gcpuuqg5ziec0pp9kyhlbqb"); // obj->label = lab->text; +UNSUPPORTED("18olw94kq4sb382d1xowaqmex"); // obj->taillabel = obj->headlabel = obj->xlabel = obj->label; +UNSUPPORTED("2hqbgo1ml83utbsvik1j8i2us"); // if ((tlab = ED_xlabel(e))) +UNSUPPORTED("4lnx8sli5qlwwkc6jf7fct4rl"); // obj->xlabel = tlab->text; +UNSUPPORTED("ach6hnpzids5tf6isfd5kmv6k"); // if ((tlab = ED_tail_label(e))) +UNSUPPORTED("e7gzimwa7y8dtdogbme4beiz1"); // obj->taillabel = tlab->text; +UNSUPPORTED("9i7k1tgfaw9tmwoxsq3mqygz7"); // if ((hlab = ED_head_label(e))) +UNSUPPORTED("dp7pv3xtw76x8tv19cch23xnp"); // obj->headlabel = hlab->text; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ekhzvq8l2u2frs2tl01cuf71s"); // if (flags & (1<<16)) { +UNSUPPORTED("8moktqylyfg7421xon31c77cc"); // agxbuf xb; +UNSUPPORTED("2m3h7h7zkzx4aix1gvfd54itd"); // unsigned char xbuf[128]; +UNSUPPORTED("6dfmabcsvvsbizc4h30vlmcv0"); // agxbinit(&xb, 128, xbuf); +UNSUPPORTED("cxt18v48tfjjupb58w42yijkl"); // s = getObjId (job, e, &xb); +UNSUPPORTED("20n0stvu1ku0ueoyhntfblzwk"); // obj->id = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("52frst03mcbsuu6bmnqs962qm"); // agxbfree(&xb); +UNSUPPORTED("1671vg2ii28nl1884z9by98oj"); // if (((s = agget(e, "href")) && s[0]) || ((s = agget(e, "URL")) && s[0])) +UNSUPPORTED("d91p689ronm5sfp1t1zp8a9lg"); // dflt_url = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("14h7yzdms65e8u39cm8u9j09d"); // if (((s = agget(e, "edgehref")) && s[0]) || ((s = agget(e, "edgeURL")) && s[0])) +UNSUPPORTED("7tbdqrc1yfgnnqv43758e83ox"); // obj->url = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("95kpmzfgantzkuuqda3257e1w"); // else if (dflt_url) +UNSUPPORTED("bpb2jomy0ylc3sny2qpqs5ow0"); // obj->url = strdup(dflt_url); +UNSUPPORTED("4px9z3013lzzxp1y25an6kq60"); // if (((s = agget(e, "labelhref")) && s[0]) || ((s = agget(e, "labelURL")) && s[0])) +UNSUPPORTED("at75pf09xegtmpfpxuho1ez3a"); // obj->labelurl = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("95kpmzfgantzkuuqda3257e1w"); // else if (dflt_url) +UNSUPPORTED("97vequ01i369l44p14efuqvhm"); // obj->labelurl = strdup(dflt_url); +UNSUPPORTED("9iu3uo079ib1p40uh1yasbvqm"); // if (((s = agget(e, "tailhref")) && s[0]) || ((s = agget(e, "tailURL")) && s[0])) { +UNSUPPORTED("ytymloen95ie2kurds6mbjqg"); // obj->tailurl = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("7hm7tuu8dsjj1pui6g0tc1k6f"); // obj->explicit_tailurl = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("95kpmzfgantzkuuqda3257e1w"); // else if (dflt_url) +UNSUPPORTED("47aatd2rv5gwkpo89wjbtk0h1"); // obj->tailurl = strdup(dflt_url); +UNSUPPORTED("7nxel42t6oq08r8gct4rsxf7v"); // if (((s = agget(e, "headhref")) && s[0]) || ((s = agget(e, "headURL")) && s[0])) { +UNSUPPORTED("7gtgsooxqvcu6l1puh1h4eo7b"); // obj->headurl = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("asli1axdl9etovuah6pxmmee5"); // obj->explicit_headurl = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("95kpmzfgantzkuuqda3257e1w"); // else if (dflt_url) +UNSUPPORTED("4pmt43kqcvoumkzh5z4w2t1vf"); // obj->headurl = strdup(dflt_url); +UNSUPPORTED("3xbu5lb3fe5zgccq9vbjk3kln"); // } +UNSUPPORTED("akp8i12zqhzyti5072dctwx4z"); // if (flags & (1<<23)) { +UNSUPPORTED("6863y1q9ojbbbx8f4e3vwlen2"); // if ((s = agget(e, "target")) && s[0]) +UNSUPPORTED("6e7ucuyioknvvz9i86kctjo8f"); // dflt_target = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("9ybfu42vnta17eg18hledoxk7"); // if ((s = agget(e, "edgetarget")) && s[0]) { +UNSUPPORTED("doh5a8birowwtmsp8f8982lle"); // obj->explicit_edgetarget = NOT(0); +UNSUPPORTED("4z44bpd7qea5mlut410evqsif"); // obj->target = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ausveuroy93s2sdgviv4p0lcv"); // else if (dflt_target) +UNSUPPORTED("a1ke8xqvu9o082268ksexzgny"); // obj->target = strdup(dflt_target); +UNSUPPORTED("bpe0irgpt9end7gtltjdokxpy"); // if ((s = agget(e, "labeltarget")) && s[0]) +UNSUPPORTED("bzn9htm8cci6c7dde9k91l83s"); // obj->labeltarget = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("ausveuroy93s2sdgviv4p0lcv"); // else if (dflt_target) +UNSUPPORTED("ar607cwjyspcv574196uxzkjc"); // obj->labeltarget = strdup(dflt_target); +UNSUPPORTED("5rdzxxesadfpf6txv5t01ozuj"); // if ((s = agget(e, "tailtarget")) && s[0]) { +UNSUPPORTED("4w54a911j5thxlajsmya0lxqq"); // obj->tailtarget = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("85s8gvyt4vepi64xcje31iek8"); // obj->explicit_tailtarget = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ausveuroy93s2sdgviv4p0lcv"); // else if (dflt_target) +UNSUPPORTED("37o9c6wmbsdgi78jeu7kisvbu"); // obj->tailtarget = strdup(dflt_target); +UNSUPPORTED("9h2r9gbx0nfsnhwvo6rkbrx9i"); // if ((s = agget(e, "headtarget")) && s[0]) { +UNSUPPORTED("4zxyzeqp8h430tyb6zjdn4sd6"); // obj->explicit_headtarget = NOT(0); +UNSUPPORTED("7r8xkvzh66pda9mg5skownrld"); // obj->headtarget = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ausveuroy93s2sdgviv4p0lcv"); // else if (dflt_target) +UNSUPPORTED("dr88cbxj5srk1ojowv9swn9pr"); // obj->headtarget = strdup(dflt_target); +UNSUPPORTED("3xbu5lb3fe5zgccq9vbjk3kln"); // } +UNSUPPORTED("ep9t9tvrtouwjd7pulp378fzi"); // if (flags & (1<<22)) { +UNSUPPORTED("8b522c1xkaxbe7orhmgdpw7wo"); // if (((s = agget(e, "tooltip")) && s[0]) || +UNSUPPORTED("epyuvpbf4py1ueht2htfx9wrg"); // ((s = agget(e, "edgetooltip")) && s[0])) { +UNSUPPORTED("8mqt0zsk0c9lp05pgm5t2c6z7"); // obj->tooltip = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("diwiuhgudo706youzbhxsmajm"); // obj->explicit_tooltip = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("aqmnkkhtx4an4uhckaewhcgmp"); // else if (obj->label) +UNSUPPORTED("4s32lfe96j6y84uateu8as1g0"); // obj->tooltip = strdup(obj->label); +UNSUPPORTED("c5kcbti582hfnwvehr32n2va7"); // if ((s = agget(e, "labeltooltip")) && s[0]) { +UNSUPPORTED("bhdlgf7cc5ykmujysafzspf2m"); // obj->labeltooltip = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("npeafaiazv07hkrit692subv"); // obj->explicit_labeltooltip = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("aqmnkkhtx4an4uhckaewhcgmp"); // else if (obj->label) +UNSUPPORTED("2hl1g7eri9qv82oy9sfyzt81j"); // obj->labeltooltip = strdup(obj->label); +UNSUPPORTED("6voynh2r7ssu3ixda4lxxkair"); // if ((s = agget(e, "tailtooltip")) && s[0]) { +UNSUPPORTED("du6ndrua8ofzqrdrl93za73fy"); // obj->tailtooltip = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("c8tog5rk6xyjayycyb3lrvv1z"); // obj->explicit_tailtooltip = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2ztxqs1s2cxhj4vgiol21jz63"); // else if (obj->taillabel) +UNSUPPORTED("8oa1ltfyq9fydfsizol8ewimo"); // obj->tailtooltip = strdup(obj->taillabel); +UNSUPPORTED("cl0wrp7bp2cgxks07e64qiuqf"); // if ((s = agget(e, "headtooltip")) && s[0]) { +UNSUPPORTED("5phljruko4leqqbs5bppxgsj"); // obj->headtooltip = strdup_and_subst_obj(s, (void*)e); +UNSUPPORTED("eq1aukj58yixydy8kpfo7z1yi"); // obj->explicit_headtooltip = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9roz9l9toa612u73rurlji9l4"); // else if (obj->headlabel) +UNSUPPORTED("24l5dbncepggtecq9rngaod0d"); // obj->headtooltip = strdup(obj->headlabel); +UNSUPPORTED("3xbu5lb3fe5zgccq9vbjk3kln"); // } +UNSUPPORTED("2mg64zxg17fewxae9xmwwaa0m"); // free (dflt_url); +UNSUPPORTED("6w5fxao8mlryxwk1mz7ksvbce"); // free (dflt_target); +UNSUPPORTED("6ic0ku7wr32jsf5j0pwkrzq8j"); // if (flags & ((1<<16) | (1<<22))) { +UNSUPPORTED("5ndyf9os0xxk8bsbjd2c2scjp"); // if (ED_spl(e) && (obj->url || obj->tooltip) && (flags & (1<<19))) { +UNSUPPORTED("gq85b3oml4t5u52mslbiohm4"); // int ns; +UNSUPPORTED("bapn9032dhdk62b51i2ut3i7t"); // splines *spl; +UNSUPPORTED("3wvt6ajtp2z5ux7yhf3i1uu51"); // double w2 = MAX(job->obj->penwidth/2.0,2.0); +UNSUPPORTED("74rl229xn6mlrx2uv5gby9xoi"); // spl = ED_spl(e); +UNSUPPORTED("borrlfudm59nvnwsmvvccimug"); // ns = spl->size; /* number of splines */ +UNSUPPORTED("bwf639msooalzn11a63mrvdh0"); // for (i = 0; i < ns; i++) +UNSUPPORTED("9ta5hkbutugjx9htzj3lq1pav"); // map_output_bspline (&pbs, &pbs_n, &pbs_poly_n, spl->list+i, w2); +UNSUPPORTED("3l39oh2gmkeoyrfm0yzl8m4d4"); // obj->url_bsplinemap_poly_n = pbs_poly_n; +UNSUPPORTED("co64ewdmi3b7x6t2h8cp9hkvg"); // obj->url_bsplinemap_n = pbs_n; +UNSUPPORTED("6pz9l8cp367kjl3asc6hiwnpz"); // if (! (flags & (1<<13))) { +UNSUPPORTED("9zfwixrcbys3l8gx4ol8980op"); // for ( nump = 0, i = 0; i < pbs_poly_n; i++) +UNSUPPORTED("a4l7ie3p7q35rrj0oglmisn5t"); // nump += pbs_n[i]; +UNSUPPORTED("7v0e42759wdkgsyz70af06mms"); // gvrender_ptf_A(job, pbs, pbs, nump); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4o2ao6pcwmplab6n21deqwps9"); // obj->url_bsplinemap_p = pbs; +UNSUPPORTED("5k8t4lz63jq26u2xqeoskhen7"); // obj->url_map_shape = MAP_POLYGON; +UNSUPPORTED("1mpert8m5p683pcg0qyjgzj1"); // obj->url_map_p = pbs; +UNSUPPORTED("84gohar4j2iw17h4sy0oehdhy"); // obj->url_map_n = pbs_n[0]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("22f78nyasgzgcunmxhflea4ug"); // gvrender_begin_edge(job, e); +UNSUPPORTED("spdml5d3q3jza61kjh4zxw31"); // if (obj->url || obj->explicit_tooltip) +UNSUPPORTED("6e7g66eeo7n8h8mq556pt3xxy"); // gvrender_begin_anchor(job, +UNSUPPORTED("av1tl9edbbm94up94c6rfx2tc"); // obj->url, obj->tooltip, obj->target, obj->id); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 29djyajtv7sgp9x7yjc7qzabo +// static void emit_edge_label(GVJ_t* job, textlabel_t* lbl, emit_state_t lkind, int explicit, char* url, char* tooltip, char* target, char *id, splines* spl) +public static Object emit_edge_label(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("35xyp233i430kqmc9ujvqett4"); // emit_edge_label(GVJ_t* job, textlabel_t* lbl, emit_state_t lkind, int explicit, +UNSUPPORTED("en7wsvah9njefedha3fj9icwa"); // char* url, char* tooltip, char* target, char *id, splines* spl) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("12bpksga44s9sfl7x8xn2rt2k"); // int flags = job->flags; +UNSUPPORTED("ecr1y7qy0ikxkidkdfvwv88ir"); // emit_state_t old_emit_state; +UNSUPPORTED("6w3ygcd4u5ovgqghawjtzd4l8"); // char* newid; +UNSUPPORTED("98v0vg88ycqpkpyg1kritbah0"); // char* type; +UNSUPPORTED("3sg0pzcyo2xi4xr9utypik0di"); // if ((lbl == NULL) || !(lbl->set)) return; +UNSUPPORTED("bt2nnyzwpzxnzhhrsjv03du9j"); // if (id) { /* non-NULL if needed */ +UNSUPPORTED("6o6r1v1dpl86m94m7l5omr00u"); // newid = (char*)zmalloc((strlen(id) + sizeof("-headlabel"))*sizeof(char)); +UNSUPPORTED("9queigxdufzgkqvtlnulkij8z"); // switch (lkind) { +UNSUPPORTED("4dur34ux7rmaxikyxa4xy6mt3"); // case EMIT_ELABEL : +UNSUPPORTED("5yejllfmasus697zyh9icg23m"); // type = "label"; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("ckacb8gd8ihcl655tak5p48xx"); // case EMIT_HLABEL : +UNSUPPORTED("60jcdu5mykv7nj9c62dt74vbg"); // type = "headlabel"; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("8j00sch2b081jzzzib4soebcu"); // case EMIT_TLABEL : +UNSUPPORTED("erdib8kle1lcl2if7uf5rx8xs"); // type = "taillabel"; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5ujjs4gho9mjjupbibyqyplxp"); // default : +UNSUPPORTED("9rml26jwxfvc1i0eeqsucqrl7"); // assert (0); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("etlt5rbiatgk1pin7kk30ll2x"); // sprintf (newid, "%s-%s", id, type); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("5qoplxw5vuo9t9b18i6ee7ime"); // newid = NULL; +UNSUPPORTED("ekjwoxwz3y39zx2i2q6310l1u"); // old_emit_state = job->obj->emit_state; +UNSUPPORTED("d5oaybfzozrw1bnvrdisv5yxc"); // job->obj->emit_state = lkind; +UNSUPPORTED("c2j2m5w18gb9vht8elcpe4ce1"); // if ((url || explicit) && !(flags & (1<<2))) { +UNSUPPORTED("8as81xybsx2lbhatoq5dfka46"); // map_label(job, lbl); +UNSUPPORTED("b1r5s44l517bwmgj4kvnf5pth"); // gvrender_begin_anchor(job, url, tooltip, target, newid); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6n40fbgjky821o8xqbk4ke6js"); // emit_label(job, lkind, lbl); +UNSUPPORTED("as20j8imvr5tdwziovn1yy9w9"); // if (spl) emit_attachment(job, lbl, spl); +UNSUPPORTED("buoc16exkpqacfj0vige0c8cs"); // if (url || explicit) { +UNSUPPORTED("8z7a7lmqaytt0za0fb8kavivm"); // if (flags & (1<<2)) { +UNSUPPORTED("7jrzhi6w0txc5ge27adx7n1fg"); // map_label(job, lbl); +UNSUPPORTED("5ygb95yq4xmsdotqmdr3vj3v5"); // gvrender_begin_anchor(job, url, tooltip, target, newid); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e3o6yrnsv8lko5fql4f8a9gly"); // gvrender_end_anchor(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4ml3jp9auhgd67u12ys1dysmz"); // if (newid) free (newid); +UNSUPPORTED("e0dze8hjyg2dby274irdlx48q"); // job->obj->emit_state = old_emit_state; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 awxicbypnp5lexym1y3ymowey +// static void nodeIntersect (GVJ_t * job, pointf p, boolean explicit_iurl, char* iurl, boolean explicit_itooltip, char* itooltip, boolean explicit_itarget, char* itarget) +public static Object nodeIntersect(Object... arg) { +UNSUPPORTED("cmhcypje3hntq13rzpbnk7ors"); // static void nodeIntersect (GVJ_t * job, pointf p, +UNSUPPORTED("3oh5ubi4nhyilnxnj6o43m9jg"); // boolean explicit_iurl, char* iurl, +UNSUPPORTED("1l6n135od7wjrab69cp2rq4as"); // boolean explicit_itooltip, char* itooltip, +UNSUPPORTED("a9o31jy22twcezb78yp27lex3"); // boolean explicit_itarget, char* itarget) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("a5d87vmbdhktxeng57v2hzdid"); // char* url; +UNSUPPORTED("836sn3dd0sjadnx46ehd0ojan"); // char* tooltip; +UNSUPPORTED("9zm2viiigdykrikvq2wxotz4t"); // char* target; +UNSUPPORTED("5mdh3lx400yozcu82r1yqq8fs"); // boolean explicit; +UNSUPPORTED("70p390q4p8ly00fs0tu1ou5lc"); // if (explicit_iurl) url = iurl; +UNSUPPORTED("2qo54smwvn3zpz62uwalydr4e"); // else url = obj->url; +UNSUPPORTED("elyxsmzru5je5et9mzf7xln9e"); // if (explicit_itooltip) { +UNSUPPORTED("bih7mdnro80d1ycl5mduylzjv"); // tooltip = itooltip; +UNSUPPORTED("b8xy4j8mzbef8wy4u4f0e928z"); // explicit = NOT(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3njq6nu65dp353iz31nlymjhr"); // else if (obj->explicit_tooltip) { +UNSUPPORTED("bqwxu32cunjm0lxj3oi5zlr4s"); // tooltip = obj->tooltip; +UNSUPPORTED("b8xy4j8mzbef8wy4u4f0e928z"); // explicit = NOT(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("bj1n4exyidlxkszug92q5e8pm"); // explicit = 0; +UNSUPPORTED("bih7mdnro80d1ycl5mduylzjv"); // tooltip = itooltip; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("68e6sqdkexks56m61b36z4jam"); // if (explicit_itarget) +UNSUPPORTED("ezrw5qg1aplvs9qzwam68j5uq"); // target = itarget; +UNSUPPORTED("16b0s2q3bcb5cqp3fd3ga7wor"); // else if (obj->explicit_edgetarget) +UNSUPPORTED("e9a53dgfxmu20y35wg7ben6gm"); // target = obj->target; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("ezrw5qg1aplvs9qzwam68j5uq"); // target = itarget; +UNSUPPORTED("buoc16exkpqacfj0vige0c8cs"); // if (url || explicit) { +UNSUPPORTED("4hpmlshabmpme6e8axio0u6tm"); // map_point(job, p); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ywemz3ws8gm7t2jkezm9zl44 +// static void emit_end_edge(GVJ_t * job) +public static Object emit_end_edge(Object... arg) { +UNSUPPORTED("1dduzu2v1v5eoimgn6wl3pq1s"); // static void emit_end_edge(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("4qb9sxge2bkx34r71ezj0knk2"); // edge_t *e = obj->u.e; +UNSUPPORTED("avhbw4mqc8i7mhe1mi06nj1fv"); // int i, nump; +UNSUPPORTED("ebrzd2bubs5trqandzsfjpugj"); // if (obj->url || obj->explicit_tooltip) { +UNSUPPORTED("e3o6yrnsv8lko5fql4f8a9gly"); // gvrender_end_anchor(job); +UNSUPPORTED("dmr093y6wa3ax73y54vvo29lj"); // if (obj->url_bsplinemap_poly_n) { +UNSUPPORTED("8j5y8urq29one6yb4kfmzna3f"); // for ( nump = obj->url_bsplinemap_n[0], i = 1; i < obj->url_bsplinemap_poly_n; i++) { +UNSUPPORTED("9xsziog2rrr4vw3x27e2ndqjp"); // /* additional polygon maps around remaining bezier pieces */ +UNSUPPORTED("5w8ld66x8j20bfg4bhnrzgnno"); // obj->url_map_n = obj->url_bsplinemap_n[i]; +UNSUPPORTED("9ka5hm7zu6chhinb1q0vf2z4v"); // obj->url_map_p = &(obj->url_bsplinemap_p[nump]); +UNSUPPORTED("5xf0jq48hur62ull7qfz6hvx9"); // gvrender_begin_anchor(job, +UNSUPPORTED("blnuziy4xllrn7u5trd1fnls8"); // obj->url, obj->tooltip, obj->target, obj->id); +UNSUPPORTED("9komgvtfublw0fuwcn56n60nb"); // gvrender_end_anchor(job); +UNSUPPORTED("c9dwtox5h6ixy1w83w397g2kj"); // nump += obj->url_bsplinemap_n[i]; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9pmuzaizzoydjgbkmuor040f6"); // obj->url_map_n = 0; /* null out copy so that it doesn't get freed twice */ +UNSUPPORTED("8cqdsgr453qauw78nltd5c4tx"); // obj->url_map_p = NULL; +UNSUPPORTED("4pdkymy0wuxj1yn9xqqzp2x4h"); // if (ED_spl(e)) { +UNSUPPORTED("9wdrv4uc4c7ssn0qpmxgz5eu1"); // pointf p; +UNSUPPORTED("7jumvon0fvx7rozmib9zg46pn"); // bezier bz; +UNSUPPORTED("66ycb012574x3aksn28ibhxd5"); // /* process intersection with tail node */ +UNSUPPORTED("7waxmjg8e70tet8to37przecd"); // bz = ED_spl(e)->list[0]; +UNSUPPORTED("jksehajhc4wys677xg3wbbqp"); // if (bz.sflag) /* Arrow at start of splines */ +UNSUPPORTED("kxn3waz2mvbtl0y7qgit84qy"); // p = bz.sp; +UNSUPPORTED("7162vc0qtrox86ru0t0edndpq"); // else /* No arrow at start of splines */ +UNSUPPORTED("6vhfnfcnxq7pk1ylvgqsbhisf"); // p = bz.list[0]; +UNSUPPORTED("3he9xp2xirwwauclzoba24j8h"); // nodeIntersect (job, p, obj->explicit_tailurl, obj->tailurl, +UNSUPPORTED("digi7elarmtdncyct8hntl9k6"); // obj->explicit_tailtooltip, obj->tailtooltip, +UNSUPPORTED("bjqpxn7ux8x0z0psos6lg97at"); // obj->explicit_tailtarget, obj->tailtarget); +UNSUPPORTED("1eo0iyrg7y6hw7gaa6t4rckhw"); // /* process intersection with head node */ +UNSUPPORTED("1z1ljfme78h5hs2nhpnh0c1fi"); // bz = ED_spl(e)->list[ED_spl(e)->size - 1]; +UNSUPPORTED("eg9okxorf20k4z98ukgoxo3n7"); // if (bz.eflag) /* Arrow at end of splines */ +UNSUPPORTED("ehclpn3uuogubck9azlh1vpas"); // p = bz.ep; +UNSUPPORTED("9vqsg7ptbtw9uq9csktycrpd1"); // else /* No arrow at end of splines */ +UNSUPPORTED("a3eqfcdajd48yebxdzxtmmfoi"); // p = bz.list[bz.size - 1]; +UNSUPPORTED("90oe5mif8a78ifcvx4ihiqnap"); // nodeIntersect (job, p, obj->explicit_headurl, obj->headurl, +UNSUPPORTED("47gawnzk5qaei40hp6wyzmccl"); // obj->explicit_headtooltip, obj->headtooltip, +UNSUPPORTED("eovhrgd0p19e5n9en1fyyikgc"); // obj->explicit_headtarget, obj->headtarget); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3myme3h0w55rj1gxrei3sza4u"); // emit_edge_label(job, ED_label(e), EMIT_ELABEL, +UNSUPPORTED("3plv0n79k76me9i1hjgw53uf"); // obj->explicit_labeltooltip, +UNSUPPORTED("aaks2xubvv971c3n3lkewm11l"); // obj->labelurl, obj->labeltooltip, obj->labeltarget, obj->id, +UNSUPPORTED("agvl7gmqjq08dcsq6in3idrlh"); // ((mapbool(late_string(e, E_decorate, "false")) && ED_spl(e)) ? ED_spl(e) : 0)); +UNSUPPORTED("5s1nsti98iov2qpm95devpckw"); // emit_edge_label(job, ED_xlabel(e), EMIT_ELABEL, +UNSUPPORTED("3plv0n79k76me9i1hjgw53uf"); // obj->explicit_labeltooltip, +UNSUPPORTED("aaks2xubvv971c3n3lkewm11l"); // obj->labelurl, obj->labeltooltip, obj->labeltarget, obj->id, +UNSUPPORTED("agvl7gmqjq08dcsq6in3idrlh"); // ((mapbool(late_string(e, E_decorate, "false")) && ED_spl(e)) ? ED_spl(e) : 0)); +UNSUPPORTED("du836h1rt0jh9ud6q2syf0ym8"); // emit_edge_label(job, ED_head_label(e), EMIT_HLABEL, +UNSUPPORTED("1pdnwlknuz9w3gkir3l8o1yro"); // obj->explicit_headtooltip, +UNSUPPORTED("8bd82h05ko2pwessxq68kaxai"); // obj->headurl, obj->headtooltip, obj->headtarget, obj->id, +UNSUPPORTED("ai3ojmcrmb5sj7kn23byccggm"); // 0); +UNSUPPORTED("bh63wcy1dti8ji145r5ghesje"); // emit_edge_label(job, ED_tail_label(e), EMIT_TLABEL, +UNSUPPORTED("9y21fl5ek5f4g5ebjoixzr4gv"); // obj->explicit_tailtooltip, +UNSUPPORTED("b1470sa0rpd26d4t30nidwv8"); // obj->tailurl, obj->tailtooltip, obj->tailtarget, obj->id, +UNSUPPORTED("ai3ojmcrmb5sj7kn23byccggm"); // 0); +UNSUPPORTED("9sm494bjst3m8frvi02esqjkm"); // gvrender_end_edge(job); +UNSUPPORTED("39iamwq9cd9iv3d2iyiaq8gz9"); // pop_obj_state(job); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e552br6jk0jigqmq1c9d2x0fy +// static void emit_edge(GVJ_t * job, edge_t * e) +public static Object emit_edge(Object... arg) { +UNSUPPORTED("701wlpnv3kz0k3hxn7zqrhbqx"); // static void emit_edge(GVJ_t * job, edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("byo308l1rmve5rmx8wt32juux"); // char *style; +UNSUPPORTED("getfykrvugvlv3wxt5qm5ghl"); // char **styles = 0; +UNSUPPORTED("9q7vvjxznd6x0u1t6fgd82byj"); // char **sp; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("6govt2ekuiy0vzlv3yv2uu723"); // if (edge_in_box(e, job->clip) && edge_in_layer(job, agraphof(aghead(e)), e) ) { +UNSUPPORTED("40dvidospika9vlp9ti3h4kbk"); // s = malloc(strlen(agnameof(agtail(e))) + 2 + strlen(agnameof(aghead(e))) + 1); +UNSUPPORTED("aanr456304klecsfh7bdhjuqs"); // strcpy(s,agnameof(agtail(e))); +UNSUPPORTED("90k8dynebdy5ezb8ysfakj1bq"); // if (agisdirected(agraphof(aghead(e)))) +UNSUPPORTED("6t25g7w3win3lim8fgtsen7d0"); // strcat(s,"->"); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("8kwffycoj7ji16shumcvo0z2w"); // strcat(s,"--"); +UNSUPPORTED("9qi68sa2442hrlpp7zizf86w2"); // strcat(s,agnameof(aghead(e))); +UNSUPPORTED("9tyf9lnhx38ny94z7gx5gkioi"); // gvrender_comment(job, s); +UNSUPPORTED("d285xdylp7oj81aar06ulc7kh"); // free(s); +UNSUPPORTED("dzzea54yfhrfp3ko6rqi4h8na"); // s = late_string(e, E_comment, ""); +UNSUPPORTED("7oyyy6d3itm6qqhr3p5zu6ded"); // if (s[0]) +UNSUPPORTED("8gbf99sx0atz9ku0tfjv4m4o3"); // gvrender_comment(job, s); +UNSUPPORTED("9ue98xnv5lygucjpcp6ugmkjr"); // style = late_string(e, E_style, ""); +UNSUPPORTED("c6nyyirbpagqf6tsr8p6b3xw9"); // /* We shortcircuit drawing an invisible edge because the arrowhead +UNSUPPORTED("4oynhdibr581vvritt0c2m0zi"); // * code resets the style to solid, and most of the code generators +UNSUPPORTED("b151tzgt2xkvtkf487juwpl32"); // * (except PostScript) won't honor a previous style of invis. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("12ihr78gv09dxppuorymkgt75"); // if (style[0]) { +UNSUPPORTED("32d3t9w0x6lbw2olmibm97mqd"); // styles = parse_style(style); +UNSUPPORTED("ai2h90fa4b5ss40yyc0ehvrzd"); // sp = styles; +UNSUPPORTED("9v2c8p99l7pj3zqwvtb298adq"); // while ((p = *sp++)) { +UNSUPPORTED("xtuts27rjtqvzh4gjkw96ime"); // if ((*(p)==*("invis")&&!strcmp(p,"invis"))) return; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9hsqvthyp1sj37t7lu10n1luq"); // emit_begin_edge(job, e, styles); +UNSUPPORTED("cchqw8nozlblfh2ekimz3q7ye"); // emit_edge_graphics (job, e, styles); +UNSUPPORTED("6fu8546pxs99njakbk5cl5q31"); // emit_end_edge(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 dacilfxr6a3uba0ks0btnjoms +// static char adjust[] = + + + + +//3 crlphx0gbhlhrn2w2jq92mgxq +// static void expandBB (boxf* bb, pointf p) +public static Object expandBB(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("3lpbo3h0n97pkcx19mleg4zy3"); // expandBB (boxf* bb, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("82qwewr47nk4i4uoe835qwx7m"); // if (p.x > bb->UR.x) +UNSUPPORTED("6g9fswlylro0l373mk5r6hrf2"); // bb->UR.x = p.x; +UNSUPPORTED("42h6ln67gjb305nianf5cqtwb"); // if (p.x < bb->LL.x) +UNSUPPORTED("aecuyren82eu4q6khc57o37fm"); // bb->LL.x = p.x; +UNSUPPORTED("5sb5u1ns40tj304k0u2ab1at7"); // if (p.y > bb->UR.y) +UNSUPPORTED("759apld02jf160x6shlbl6vh0"); // bb->UR.y = p.y; +UNSUPPORTED("6kqd1pni8dvsj92cyx40pg7yq"); // if (p.y < bb->LL.y) +UNSUPPORTED("196dcdn12h9rrk3ut2ar5byra"); // bb->LL.y = p.y; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9fdfpbfftpegojteq4f4zkh3t +// static boxf ptsBB (xdot_point* inpts, int numpts, boxf* bb) +public static Object ptsBB(Object... arg) { +UNSUPPORTED("d5qt6s97burjfu5qe0oxyyrmr"); // static boxf +UNSUPPORTED("6t79m8rz3g0dlgf125e80z567"); // ptsBB (xdot_point* inpts, int numpts, boxf* bb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1sc1s00b2mxqj9p5pa0w4t375"); // boxf opbb; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("9io5mvwev5td74rtkwnm8o3s2"); // opbb.LL.x = opbb.UR.x = inpts->x; +UNSUPPORTED("4cwi4xd54tfe64lw7iegazb8u"); // opbb.LL.y = opbb.UR.y = inpts->y; +UNSUPPORTED("79on93mttov53oge4afx7vsuc"); // for (i = 1; i < numpts; i++) { +UNSUPPORTED("3ft3l1b2jpm88evrrzvlmn8e1"); // inpts++; +UNSUPPORTED("1jkw7uv3v8c3h4n5wz0vz7ug7"); // if (inpts->x < opbb.LL.x) +UNSUPPORTED("8heqoomogx0vbm9c6b353nauh"); // opbb.LL.x = inpts->x; +UNSUPPORTED("ctlx14otfvxc1g2po12swqr5"); // else if (inpts->x > opbb.UR.x) +UNSUPPORTED("cm99tuzk0ha0i27620s0ug6qm"); // opbb.UR.x = inpts->x; +UNSUPPORTED("cbdkr3fvabha45e8zix3wm0ra"); // if (inpts->y < opbb.LL.y) +UNSUPPORTED("cfi2hy5ra04w2nvwbbeif8iwu"); // opbb.LL.y = inpts->y; +UNSUPPORTED("7i89xmuxwx6aon3vbdt6v5whc"); // else if (inpts->y > opbb.UR.y) +UNSUPPORTED("7ssr5coatcfnn57zucbgjlgfc"); // opbb.UR.y = inpts->y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("vnhtdhcqg8xtzofq2hgzmd74"); // expandBB (bb, opbb.LL); +UNSUPPORTED("17t235kr79n3w5l1c3anpgwt5"); // expandBB (bb, opbb.UR); +UNSUPPORTED("cbril871fhn70vo8av8mkgt6q"); // return opbb; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9pymyll8xo6gubyh1lffjkfam +// static boxf textBB (double x, double y, textspan_t* span) +public static Object textBB(Object... arg) { +UNSUPPORTED("d5qt6s97burjfu5qe0oxyyrmr"); // static boxf +UNSUPPORTED("ay5ce8utx9ld287zwnwbctqjj"); // textBB (double x, double y, textspan_t* span) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("9uvgf08lwlxzhybxua7r75tev"); // pointf sz = span->size; +UNSUPPORTED("bpqxh9mig0sh1gasrlkg6hbph"); // switch (span->just) { +UNSUPPORTED("15tf5rbprgr65ucp24e4bba9t"); // case 'l': +UNSUPPORTED("3ehk6wetysrhmdleh0z9s6zjz"); // bb.LL.x = x; +UNSUPPORTED("c1lsp9mt50b64uby7n2an805t"); // bb.UR.x = bb.LL.x + sz.x; +UNSUPPORTED("6qvptoliwn65n1ln7eoo4j8wd"); // break; +UNSUPPORTED("37fbny64zwo23oymypyreuldc"); // case 'n': +UNSUPPORTED("690ouuxs02oivip5twcvs5b11"); // bb.LL.x = x - sz.x / 2.0; +UNSUPPORTED("2btku6pj5fxafqdz3xa85sd93"); // bb.UR.x = x + sz.x / 2.0; +UNSUPPORTED("6qvptoliwn65n1ln7eoo4j8wd"); // break; +UNSUPPORTED("8pu80wsk8me7q17ensqlviq86"); // case 'r': +UNSUPPORTED("9hg1o01u12gavwtqe9xofe38z"); // bb.UR.x = x; +UNSUPPORTED("bzx0k97ggr7q3araimvm6f1v7"); // bb.LL.x = bb.UR.x - sz.x; +UNSUPPORTED("6qvptoliwn65n1ln7eoo4j8wd"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("197tcjynsl2sn03dwf3g9y12c"); // bb.UR.y = y + span->yoffset_layout; +UNSUPPORTED("f2dg8t4khzpqdoaarum9tyuth"); // bb.LL.y = bb.UR.y - sz.y; +UNSUPPORTED("5v5hh30squmit8o2i5hs25eig"); // return bb; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 54ihxujpi40cvxm21zvc4yygl +// static void freePara (exdot_op* op) +public static Object freePara(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("6j7qjd9yj32q85k9t0i4xidev"); // freePara (exdot_op* op) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dexpmz01x7t5bwrxs2ciihvod"); // if (op->op.kind == xd_text) +UNSUPPORTED("8pgl92d45zuyooxxmo53bafei"); // free_textspan (op->span, 1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bna6lkyh9mx61k76gw3t0uflo +// boxf xdotBB (Agraph_t* g) +public static Object xdotBB(Object... arg) { +UNSUPPORTED("8wvskez9r3noz1urymuwc4hvt"); // boxf xdotBB (Agraph_t* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("de8em3aa6r4le6z9745lpxlet"); // GVC_t *gvc = GD_gvc(g); +UNSUPPORTED("6h54fnrtmztsxuhsa6imjz1a7"); // exdot_op* op; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("c5uzlkl44upygp10do07uxm0g"); // double fontsize = 0.0; +UNSUPPORTED("casv8ugezf3t2g5a7mvcr6q7i"); // char* fontname = NULL; +UNSUPPORTED("4vfngh2uewkmjri7btdwl43bs"); // pointf pts[2]; +UNSUPPORTED("3zlnn621zia9mss7z1ay24myc"); // pointf sz; +UNSUPPORTED("226wftslr130qjwxv1q4x2p4f"); // boxf bb0; +UNSUPPORTED("2eiur8hkm8tcazpq12w4ikbqo"); // boxf bb = GD_bb(g); +UNSUPPORTED("arw8znn5jqfqq2ukyt2s9kcbv"); // xdot* xd = (xdot*)GD_drawing(g)->xdots; +UNSUPPORTED("aarb87wzm7tqwo5n1l925d21x"); // textfont_t tf, null_tf = {NULL,NULL,NULL,0.0,0,0}; +UNSUPPORTED("8wytjfmy8k9op5hj7s6yf9n3z"); // int fontflags; +UNSUPPORTED("eeh0uom1nsj9lpceinvwt6gi3"); // if (!xd) return bb; +UNSUPPORTED("46up7fyvuyhtxo8wqaw9zdj3h"); // if ((bb.LL.x == bb.UR.x) && (bb.LL.y == bb.UR.y)) { +UNSUPPORTED("5jqc951ribmsybqkbienxqmso"); // bb.LL.x = bb.LL.y = MAXDOUBLE; +UNSUPPORTED("71c2mgloraxvejp5ao9v3simg"); // bb.UR.x = bb.UR.y = -MAXDOUBLE; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9go5curik6dnbejv5o2pj8ve2"); // op = (exdot_op*)(xd->ops); +UNSUPPORTED("dvwaxn9xbj2jw2hjwvvs0tj3z"); // for (i = 0; i < xd->cnt; i++) { +UNSUPPORTED("64ugcfa5jpvzxyig6y6rolvzb"); // tf = null_tf; +UNSUPPORTED("ab1ajnetstzss8ksa66rwdtze"); // switch (op->op.kind) { +UNSUPPORTED("1texeok1es39lsgo5wdppbco2"); // case xd_filled_ellipse : +UNSUPPORTED("effcskuftros0sla2ltem13mh"); // case xd_unfilled_ellipse : +UNSUPPORTED("2njikvu7tjbux5fxkdd45103i"); // pts[0].x = op->op.u.ellipse.x - op->op.u.ellipse.w; +UNSUPPORTED("9mz7byklb9m0gvc8x9d7ksnr0"); // pts[0].y = op->op.u.ellipse.y - op->op.u.ellipse.h; +UNSUPPORTED("90ewlrvkws79qrau49gy8es9l"); // pts[1].x = op->op.u.ellipse.x + op->op.u.ellipse.w; +UNSUPPORTED("55l7hlnc89dkhu16ft92xg16q"); // pts[1].y = op->op.u.ellipse.y + op->op.u.ellipse.h; +UNSUPPORTED("bneotzphmkyeas6debvmmon8u"); // op->bb.LL = pts[0]; +UNSUPPORTED("956syiyurqle8isi3w4ljs7wn"); // op->bb.UR = pts[1]; +UNSUPPORTED("7v3sk5uea7pu17t9pnjza0xk7"); // expandBB (&bb, pts[0]); +UNSUPPORTED("dqzu6l172pawxz0l88wjbsq5x"); // expandBB (&bb, pts[1]); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("40fjmoej0qk9hwneja77jlo2y"); // case xd_filled_polygon : +UNSUPPORTED("6uw61r6bh4tiicbj46yxr9t4k"); // case xd_unfilled_polygon : +UNSUPPORTED("9962qomo41y1omsipfqjr24y8"); // op->bb = ptsBB (op->op.u.polygon.pts, op->op.u.polygon.cnt, &bb); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4eu4a2drbgdgq6xb3lnl3hn9y"); // case xd_filled_bezier : +UNSUPPORTED("bn514k7swi4s6uclqqke583n8"); // case xd_unfilled_bezier : +UNSUPPORTED("9962qomo41y1omsipfqjr24y8"); // op->bb = ptsBB (op->op.u.polygon.pts, op->op.u.polygon.cnt, &bb); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1l7ha9akoh6yew2v54hvu3del"); // case xd_polyline : +UNSUPPORTED("9962qomo41y1omsipfqjr24y8"); // op->bb = ptsBB (op->op.u.polygon.pts, op->op.u.polygon.cnt, &bb); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("60mg8gze602593bf2vddicza0"); // case xd_text : +UNSUPPORTED("50t9ohqv5008mknnbuwru8tw9"); // op->span = (textspan_t*)zmalloc(sizeof(textspan_t)); +UNSUPPORTED("ctpfroyvq8upi1rvu07czeffu"); // op->span->str = strdup (op->op.u.text.text); +UNSUPPORTED("clfgmfms6909nfbpqqf7rxx5f"); // op->span->just = adjust [op->op.u.text.align]; +UNSUPPORTED("e2rt0ufps1ruahn7aijlrciss"); // tf.name = fontname; +UNSUPPORTED("dh77fvkpvbx40iely5t866d6h"); // tf.size = fontsize; +UNSUPPORTED("c1ted8bjs12be6jywuonnv0d2"); // tf.flags = fontflags; +UNSUPPORTED("73o7k5irrg046co7k0hyc8aay"); // op->span->font = (*(((Dt_t*)(gvc->textfont_dt))->searchf))((gvc->textfont_dt),(void*)(&tf),0000001); +UNSUPPORTED("6wqbzii0m490jqa70vqge95ss"); // sz = textspan_size (gvc, op->span); +UNSUPPORTED("5fi8b3ht0cjvlehytid1q9v0c"); // bb0 = textBB (op->op.u.text.x, op->op.u.text.y, op->span); +UNSUPPORTED("dzc3pvcqhus44n3qpjnche2n1"); // op->bb = bb0; +UNSUPPORTED("dqaec6oh9n34envsvaj2cws50"); // expandBB (&bb, bb0.LL); +UNSUPPORTED("4lyco5r149007xof0pltbc6yd"); // expandBB (&bb, bb0.UR); +UNSUPPORTED("4ancwi87ybxfg7nqplm66fmcb"); // if (!xd->freefunc) +UNSUPPORTED("euom952odxbs14o7zgilkcyjm"); // xd->freefunc = (freefunc_t)freePara; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("56n5nfs2z21zo7ac9z2ehf12l"); // case xd_font : +UNSUPPORTED("758yjuz5lxvy105kkk178ecqc"); // fontsize = op->op.u.font.size; +UNSUPPORTED("b47tnf0bsigh1pwzg0zn6hwmr"); // fontname = op->op.u.font.name; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2kiqf0asbojt8x24lr5eykca1"); // case xd_fontchar : +UNSUPPORTED("c1y0e85yacutsp89zjxoa7i3"); // fontflags = op->op.u.fontchar; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5ujjs4gho9mjjupbibyqyplxp"); // default : +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("42f106i435avz0oneb0fhe81f"); // op++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5v5hh30squmit8o2i5hs25eig"); // return bb; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 85uk85yiir9od6zij92agheo3 +// static void init_gvc(GVC_t * gvc, graph_t * g) +public static Object init_gvc(Object... arg) { +UNSUPPORTED("67101m7ilw6rq5kq50kqyv4jn"); // static void init_gvc(GVC_t * gvc, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1fbxoul2f22tyxwq8g4cj6bo6"); // double xf, yf; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("8zmfa30bj4y52yk4nu6fzjg4a"); // gvc->g = g; +UNSUPPORTED("ax64rv1jwwzs47pikcnl1j6vv"); // /* margins */ +UNSUPPORTED("1b600jcjwmocj6dp4hx8dcbyt"); // gvc->graph_sets_margin = 0; +UNSUPPORTED("1w3l4667jn9pi9aaxvt639rye"); // if ((p = agget(g, "margin"))) { +UNSUPPORTED("8ii1lpvqnmj77k0q2xjan2dan"); // i = sscanf(p, "%lf,%lf", &xf, &yf); +UNSUPPORTED("1e2qc8e42f9ohrllk7q5kbqh9"); // if (i > 0) { +UNSUPPORTED("qbpuuttxxcxlbp802q1a4fsu"); // gvc->margin.x = gvc->margin.y = xf * 72; +UNSUPPORTED("afqdselz7uxi22z0zlydrzlo1"); // if (i > 1) +UNSUPPORTED("7col7tgqabkqwnzsc1m4i7zz3"); // gvc->margin.y = yf * 72; +UNSUPPORTED("c3921i2dlk22b1p51jy3q34df"); // gvc->graph_sets_margin = NOT(0); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("733qr7bihsz4jlxdzv0x4v1n3"); // /* pad */ +UNSUPPORTED("c4y9dph55ilj94mj5yjbabgqu"); // gvc->graph_sets_pad = 0; +UNSUPPORTED("8vka83wlbomztn5m1dom8trfq"); // if ((p = agget(g, "pad"))) { +UNSUPPORTED("8ii1lpvqnmj77k0q2xjan2dan"); // i = sscanf(p, "%lf,%lf", &xf, &yf); +UNSUPPORTED("1e2qc8e42f9ohrllk7q5kbqh9"); // if (i > 0) { +UNSUPPORTED("8vm798xe38aiaugd3y1g2aq1t"); // gvc->pad.x = gvc->pad.y = xf * 72; +UNSUPPORTED("afqdselz7uxi22z0zlydrzlo1"); // if (i > 1) +UNSUPPORTED("5nz9wezr9fh7hfzwoqgk11zm1"); // gvc->pad.y = yf * 72; +UNSUPPORTED("d1m7j39edzq6lp1g0a8lnxyhf"); // gvc->graph_sets_pad = NOT(0); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("96riek1d0o8vwl70xmegernpv"); // /* pagesize */ +UNSUPPORTED("298vt0zyw2i76g01fnol84jux"); // gvc->graph_sets_pageSize = 0; +UNSUPPORTED("2shc43elsrp70a4k2u220ehox"); // gvc->pageSize = GD_drawing(g)->page; +UNSUPPORTED("6evkjzqolfcsrv7tpqsm58o3h"); // if ((GD_drawing(g)->page.x > 0.001) && (GD_drawing(g)->page.y > 0.001)) +UNSUPPORTED("fgxbok14dgt3z4b3nscl0p7n"); // gvc->graph_sets_pageSize = NOT(0); +UNSUPPORTED("ecjhhm3qqdov34ahw0hdmnb1g"); // /* rotation */ +UNSUPPORTED("2cxu41gtx0x2822685tf09ctd"); // if (GD_drawing(g)->landscape) +UNSUPPORTED("cva8oucw05hmnqf4l4bk4dgfh"); // gvc->rotation = 90; +UNSUPPORTED("4lti1w2qslxj3ihoatmbavsfr"); // else +UNSUPPORTED("b4f4qufgjft6e4a4p7mkitiqv"); // gvc->rotation = 0; +UNSUPPORTED("e5gxr3o07ghgvc4ucdwpjflcj"); // /* pagedir */ +UNSUPPORTED("bb3h91bcfx7by4d3fyhmzdy2b"); // gvc->pagedir = "BL"; +UNSUPPORTED("bpcvlnl6cfm6bjjupn4octi5k"); // if ((p = agget(g, "pagedir")) && p[0]) +UNSUPPORTED("ajams0xdty7a7uuekgeid69r1"); // gvc->pagedir = p; +UNSUPPORTED("e2g5l4w3c1x1gfmugldesjjqd"); // /* bounding box */ +UNSUPPORTED("7tzs0wxbqa2wkozgqx08w4bau"); // gvc->bb = GD_bb(g); +UNSUPPORTED("5hczsy1j61vmnr84wyz5bikya"); // /* clusters have peripheries */ +UNSUPPORTED("clrndk7c262q4i7auu2yxaxbe"); // G_peripheries = (agattr(g,AGRAPH,"peripheries",NULL)); +UNSUPPORTED("2kfixvhj3cpd8ixik3psbcfpe"); // G_penwidth = (agattr(g,AGRAPH,"penwidth",NULL)); +UNSUPPORTED("2cwp5x6rqs985rs765vqqygae"); // /* default font */ +UNSUPPORTED("e7ws06cub67fioowd2qb57bdq"); // gvc->defaultfontname = late_nnstring(NULL, +UNSUPPORTED("7bozarsmoudzlhh3sw6pkg1h5"); // N_fontname, "Times-Roman"); +UNSUPPORTED("58t4peku7cnyvnai2a20f5879"); // gvc->defaultfontsize = late_double(NULL, +UNSUPPORTED("bbm0e0fv8warl1ji3fdc6yt6b"); // N_fontsize, 14.0, 1.0); +UNSUPPORTED("5w09u9j3f1qfayfhrgj57ecba"); // /* default line style */ +UNSUPPORTED("7qer3idmrdf9t80kv56o3uuss"); // gvc->defaultlinestyle = defaultlinestyle; +UNSUPPORTED("4bhwcitlq1486x53gcbhloizr"); // gvc->graphname = agnameof(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9pyz8u3udm2aoyugcsto0kix5 +// static void init_job_pad(GVJ_t *job) +public static Object init_job_pad(Object... arg) { +UNSUPPORTED("agxhh3hamzm2l90mq5ojrmfkv"); // static void init_job_pad(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eyew5ay5wwktz4fysz0b78ugv"); // GVC_t *gvc = job->gvc; +UNSUPPORTED("de4elc7zm79xniuphcxgyvvk9"); // if (gvc->graph_sets_pad) { +UNSUPPORTED("aptzesoqv5uqgvgg0mc6kao5e"); // job->pad = gvc->pad; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("aj6nzz9d7a58djho9n52jx8yw"); // switch (job->output_lang) { +UNSUPPORTED("b72lffvceole2ir7mpo7p336e"); // case 300: +UNSUPPORTED("2j1zpsvat3akpjxygl2b8ttbg"); // job->pad.x = job->pad.y = job->render.features->default_pad; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("3w0qgk20xo9z7unk42folarn1"); // job->pad.x = job->pad.y = 4; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f2syfb4rj7trco59aj1v5jm7b +// static void init_job_margin(GVJ_t *job) +public static Object init_job_margin(Object... arg) { +UNSUPPORTED("a2o4lfoc2z821pg69j2xraq5h"); // static void init_job_margin(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eyew5ay5wwktz4fysz0b78ugv"); // GVC_t *gvc = job->gvc; +UNSUPPORTED("7jaj0gwqx6io2udyixmrzcc1z"); // if (gvc->graph_sets_margin) { +UNSUPPORTED("4snswj683owzbho4jjotw970l"); // job->margin = gvc->margin; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("za5jq2evnfd3fbn96g250vy9"); // /* set default margins depending on format */ +UNSUPPORTED("ampzlf94vv6frsr0uc6d017f6"); // switch (job->output_lang) { +UNSUPPORTED("aul67kwcbtvgyy4b36yxw76ou"); // case 300: +UNSUPPORTED("e4ovq7tj6z354n1fhbnxfzufe"); // job->margin = job->device.features->default_margin; +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("2jhp1005lxz99z1pc9syee424"); // case 2: case 3: case 4: case 22: case 21: case 30: +UNSUPPORTED("9mg8oo60qykyf8i35w2raa26p"); // job->margin.x = job->margin.y = 36; +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("p0mt8wznalavjdm44ot4ykl7"); // default: +UNSUPPORTED("5l3hvgkkpuhcf4cohs28abhtz"); // job->margin.x = job->margin.y = 0; +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8g64hepne35gexv6ju81tbqc3 +// static void init_job_dpi(GVJ_t *job, graph_t *g) +public static Object init_job_dpi(Object... arg) { +UNSUPPORTED("2p6nt5vob0ei8v7773p5tdecd"); // static void init_job_dpi(GVJ_t *job, graph_t *g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8m7r6h2rw1gx6dc2436egqiay"); // GVJ_t *firstjob = job->gvc->active_jobs; +UNSUPPORTED("brb2vqrp3wxbej2f8h8oo3dcq"); // if (GD_drawing(g)->dpi != 0) { +UNSUPPORTED("dt9qdoazpes90xzueapuxxspa"); // job->dpi.x = job->dpi.y = (double)(GD_drawing(g)->dpi); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6upj4lbia39c7c7hd9vsvv8b8"); // else if (firstjob && firstjob->device_sets_dpi) { +UNSUPPORTED("7mtrejna32wqb64ec8s1hvrgt"); // job->dpi = firstjob->device_dpi; /* some devices set dpi in initialize() */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("za5jq2evnfd3fbn96g250vy9"); // /* set default margins depending on format */ +UNSUPPORTED("ampzlf94vv6frsr0uc6d017f6"); // switch (job->output_lang) { +UNSUPPORTED("aul67kwcbtvgyy4b36yxw76ou"); // case 300: +UNSUPPORTED("azl3hjq4ji3la2pi9cndx1k3e"); // job->dpi = job->device.features->default_dpi; +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("p0mt8wznalavjdm44ot4ykl7"); // default: +UNSUPPORTED("7g69tkl1he21l042jkugrqp6o"); // job->dpi.x = job->dpi.y = (double)(DEFAULT_DPI); +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4q75k0eh9opws0n4g4hucx21k +// static void init_job_viewport(GVJ_t * job, graph_t * g) +public static Object init_job_viewport(Object... arg) { +UNSUPPORTED("624efhjg4wk3vw59b77itfyvo"); // static void init_job_viewport(GVJ_t * job, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eyew5ay5wwktz4fysz0b78ugv"); // GVC_t *gvc = job->gvc; +UNSUPPORTED("6i2nacyhq49omlq45m07qui2g"); // pointf LL, UR, size, sz; +UNSUPPORTED("du235xtc4birmdt1yr7ce3jpv"); // double X, Y, Z, x, y; +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("adc06gp2568j6zfk5jqvbfo2y"); // char *str, *nodename = NULL, *junk = NULL; +UNSUPPORTED("cibtljruio32e5gvrl87lh88l"); // UR = gvc->bb.UR; +UNSUPPORTED("5vjounfbnwwcy8tbj300r79r2"); // LL = gvc->bb.LL; +UNSUPPORTED("50ygg0dkfzxllsg7k6fe56huy"); // job->bb.LL.x = LL.x - job->pad.x; /* job->bb is bb of graph and padding - graph units */ +UNSUPPORTED("49aqo5a8zzjcw7blnfu1d31q4"); // job->bb.LL.y = LL.y - job->pad.y; +UNSUPPORTED("b3wmaft4mjah5tibmxgrds6eg"); // job->bb.UR.x = UR.x + job->pad.x; +UNSUPPORTED("80w280ro0p0cugy34wuqzbsh9"); // job->bb.UR.y = UR.y + job->pad.y; +UNSUPPORTED("6w6xt2yb2jn5st0s2quady6io"); // sz.x = job->bb.UR.x - job->bb.LL.x; /* size, including padding - graph units */ +UNSUPPORTED("99nzl03ckbymw5ajsxg2lxf5v"); // sz.y = job->bb.UR.y - job->bb.LL.y; +UNSUPPORTED("2mgynwyvee3ie46hpl26kqtf2"); // /* determine final drawing size and scale to apply. */ +UNSUPPORTED("753yoijk60817tp79pq00vr0m"); // /* N.B. size given by user is not rotated by landscape mode */ +UNSUPPORTED("ag04g63wularfd1fbljawhkqj"); // /* start with "natural" size of layout */ +UNSUPPORTED("637m663yod0dkbreevp6qk44p"); // Z = 1.0; +UNSUPPORTED("c8oufh828idctovprrgjdm0os"); // if (GD_drawing(g)->size.x > 0.001 && GD_drawing(g)->size.y > 0.001) { /* graph size was given by user... */ +UNSUPPORTED("bmz1dbirkeldxm62ak0co2qrb"); // size = GD_drawing(g)->size; +UNSUPPORTED("6qb7wsi1h19gy3dx25dsrf542"); // if (sz.x == 0) sz.x = size.x; +UNSUPPORTED("3o8bk5rxvc9z3ttlp9sr2qn4s"); // if (sz.y == 0) sz.y = size.y; +UNSUPPORTED("46ob9e3vmgm08hjtxp6tfvhoz"); // if ((size.x < sz.x) || (size.y < sz.y) /* drawing is too big (in either axis) ... */ +UNSUPPORTED("5auolwo9gg1phxl3qsyuubbu1"); // || ((GD_drawing(g)->filled) /* or ratio=filled requested and ... */ +UNSUPPORTED("9x8rozkks9tk12it75o6ejh9"); // && (size.x > sz.x) && (size.y > sz.y))) /* drawing is too small (in both axes) ... */ +UNSUPPORTED("745ba2myf8zykpw51eip22lxr"); // Z = MIN(size.x/sz.x, size.y/sz.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("62gog7hki8holy1wdxok8ii3s"); // /* default focus, in graph units = center of bb */ +UNSUPPORTED("eh4upvvzpvb3b2hlopix62qvx"); // x = (LL.x + UR.x) / 2.; +UNSUPPORTED("8mdsmfdv26en9t0wke5lj3yoe"); // y = (LL.y + UR.y) / 2.; +UNSUPPORTED("cb0lygghq98c5tsuyl02ecakn"); // /* rotate and scale bb to give default absolute size in points*/ +UNSUPPORTED("7y4ysg5hih6aou07wc3jxhb35"); // job->rotation = job->gvc->rotation; +UNSUPPORTED("1tcvgfcsior9vxwosbtysfoyl"); // X = sz.x * Z; +UNSUPPORTED("7rvjwv9lldh8cdbpwf2e5b4em"); // Y = sz.y * Z; +UNSUPPORTED("7mjigzchm03dvse5yty9697ik"); // /* user can override */ +UNSUPPORTED("bbb4aunqlxn7ymn473u9tfjh2"); // if ((str = agget(g, "viewport"))) { +UNSUPPORTED("70923c97qwh5i4mk8teckxbg"); // nodename = malloc(strlen(str)+1); +UNSUPPORTED("axxbey14epctt08bqmg4e4ljx"); // junk = malloc(strlen(str)+1); +UNSUPPORTED("4nbqjt16sk1g61qjzmyth3m3y"); // rv = sscanf(str, "%lf,%lf,%lf,\'%[^\']\'", &X, &Y, &Z, nodename); +UNSUPPORTED("8azqq8b6xz6pe75pwuu92bkis"); // if (rv == 4) { +UNSUPPORTED("6vgu6qnrol7hlgg01x8iopat1"); // n = (agnode(g->root,nodename,0)); +UNSUPPORTED("5m395o1mab9my7pgd1wtfpkt4"); // if (n) { +UNSUPPORTED("54io2bm3l9lajfo4g3z58eg1t"); // x = ND_coord(n).x; +UNSUPPORTED("9woodb3r1ali6shtfkh2rz8h2"); // y = ND_coord(n).y; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("s1rt11h530ot4w6oo53nl5ui"); // rv = sscanf(str, "%lf,%lf,%lf,%[^,]%s", &X, &Y, &Z, nodename, junk); +UNSUPPORTED("4kcpjq4bw60ex3z1ewxgr1mjw"); // if (rv == 4) { +UNSUPPORTED("874kb6l4r88vgo7isombaflpy"); // n = (agnode(g->root,nodename,0)); +UNSUPPORTED("a2kqxh7ugzx0wm2vq2kbx20y7"); // if (n) { +UNSUPPORTED("9qhwk8hw3vgr1m1rzg5atx1zk"); // x = ND_coord(n).x; +UNSUPPORTED("e4zoymn2c1bi9un0aj7x2plqm"); // y = ND_coord(n).y; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("2s114kzoj9bs4dyo9fxw68w0t"); // rv = sscanf(str, "%lf,%lf,%lf,%lf,%lf", &X, &Y, &Z, &x, &y); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("blr8vtykke5kreaxyos1zlb97"); // free (nodename); +UNSUPPORTED("2pd0mx508kg0shcwmffjkyxc4"); // free (junk); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7bmnorp8hdilbzb9xmgr16rs5"); // /* rv is ignored since args retain previous values if not scanned */ +UNSUPPORTED("c22q6sbjdy7erjlxyrdanr1x3"); // /* job->view gives port size in graph units, unscaled or rotated +UNSUPPORTED("eb5vhw8ufy0hgbridh6g2vao9"); // * job->zoom gives scaling factor. +UNSUPPORTED("f4zt60wq4jiuahkpno3xurcl7"); // * job->focus gives the position in the graph of the center of the port +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("asnqk2ep45wun0a0przl141qw"); // job->view.x = X; +UNSUPPORTED("98ffy6ki313rluvwb97rnvig9"); // job->view.y = Y; +UNSUPPORTED("2lcv08icuvjg8b9dwsdpqqold"); // job->zoom = Z; /* scaling factor */ +UNSUPPORTED("3pf2n1wcp8dwhgr0dom3f5c5y"); // job->focus.x = x; +UNSUPPORTED("d40e8u3927lyzr1i1eodxb5ip"); // job->focus.y = y; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cixyhqk69srhxgi3264xh8v68 +// static void emit_cluster_colors(GVJ_t * job, graph_t * g) +public static Object emit_cluster_colors(Object... arg) { +UNSUPPORTED("4do3kncw83okg157mdqb1rtct"); // static void emit_cluster_colors(GVJ_t * job, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5wyi0wasd5kecf6rhsqdjk7v2"); // graph_t *sg; +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("76nok3eiyr33qf4ecv69ujxn6"); // char *str; +UNSUPPORTED("99d9j6m0161wdv2tu4wbf3ifi"); // for (c = 1; c <= GD_n_cluster(g); c++) { +UNSUPPORTED("cuf43q4kl3kqgyuuxdqve1mqt"); // sg = GD_clust(g)[c]; +UNSUPPORTED("eior21tu8n3jvwp0uvojvs0f9"); // emit_cluster_colors(job, sg); +UNSUPPORTED("9obyty3pjddtipkl1momqv3h5"); // if (((str = agget(sg, "color")) != 0) && str[0]) +UNSUPPORTED("6095vphn778u0cj7bwv5weas7"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("497nfxb4jva1q66gyzxn4skpv"); // if (((str = agget(sg, "pencolor")) != 0) && str[0]) +UNSUPPORTED("6095vphn778u0cj7bwv5weas7"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("70ojemxfr6iv12m0fxcxdg0bp"); // if (((str = agget(sg, "bgcolor")) != 0) && str[0]) +UNSUPPORTED("6095vphn778u0cj7bwv5weas7"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("cdl50xso69xffobr8d9xfkxez"); // if (((str = agget(sg, "fillcolor")) != 0) && str[0]) +UNSUPPORTED("1a63r7ud39pu64tbombwke5j6"); // gvrender_set_fillcolor(job, str); +UNSUPPORTED("a5y2a7fa23tghirfggvztwunc"); // if (((str = agget(sg, "fontcolor")) != 0) && str[0]) +UNSUPPORTED("6095vphn778u0cj7bwv5weas7"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6z2ta8nxn4szbpjidikrdzjd2 +// static void emit_colors(GVJ_t * job, graph_t * g) +public static Object emit_colors(Object... arg) { +UNSUPPORTED("60y3484rmpjm7xlt67j7mdl4"); // static void emit_colors(GVJ_t * job, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("85i6qyzcmdaf9l7uvotaz8nlu"); // char *str, *colors; +UNSUPPORTED("c7ds3utacpnq14lyij0jurwb4"); // gvrender_set_fillcolor(job, "lightgrey"); +UNSUPPORTED("1lp6a62t425k9v01z810wrp7b"); // if (((str = agget(g, "bgcolor")) != 0) && str[0]) +UNSUPPORTED("34u8f5cr333f4sprskexyebpp"); // gvrender_set_fillcolor(job, str); +UNSUPPORTED("56twc8sam9h8hr3clpxijei6p"); // if (((str = agget(g, "fontcolor")) != 0) && str[0]) +UNSUPPORTED("6uvs8it1wts6hypu32nx4owck"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("bikc4jaduha3tdbl9ci5qcrq5"); // emit_cluster_colors(job, g); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("dnan5xu2dkpu7sl1b03ahndx"); // if (((str = agget(n, "color")) != 0) && str[0]) +UNSUPPORTED("6095vphn778u0cj7bwv5weas7"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("7zwodk0er4swr49op7lbvckmu"); // if (((str = agget(n, "pencolor")) != 0) && str[0]) +UNSUPPORTED("1a63r7ud39pu64tbombwke5j6"); // gvrender_set_fillcolor(job, str); +UNSUPPORTED("7jynqpniz3o3a1uxq7wr68b3q"); // if (((str = agget(n, "fillcolor")) != 0) && str[0]) { +UNSUPPORTED("2zkeug16gnaam15be1glq0d41"); // if (strchr(str, ':')) { +UNSUPPORTED("zgs1bnae9v7jn6nvqwuf2unh"); // colors = strdup(str); +UNSUPPORTED("65cuya3pzizp1x4mn7jdufwrd"); // for (str = strtok(colors, ":"); str; +UNSUPPORTED("3pjrrvuvl7stxcg84h491n5qg"); // str = strtok(0, ":")) { +UNSUPPORTED("bxlc2ohnhd7goi002fh9vwmuf"); // if (str[0]) +UNSUPPORTED("a83f0af7up943bqeqb4ktss9t"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("1gvispqysaotaxpswiriasys2"); // free(colors); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("97osvej5vqjmf4a6du709am4f"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("gmm6wp0dtyc0tsmtzu5if62t"); // if (((str = agget(n, "fontcolor")) != 0) && str[0]) +UNSUPPORTED("6095vphn778u0cj7bwv5weas7"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("bcwa1u39hsu389fzlp0d4l21f"); // if (((str = agget(e, "color")) != 0) && str[0]) { +UNSUPPORTED("4efctxbb4wq0ep3hzlpkaz7ue"); // if (strchr(str, ':')) { +UNSUPPORTED("5vhkpar2tw6xtzhthkurydd1f"); // colors = strdup(str); +UNSUPPORTED("aiy80oj5zipifrkb47xkmftsr"); // for (str = strtok(colors, ":"); str; +UNSUPPORTED("6krlp42os46gl8wai0xgvb6kw"); // str = strtok(0, ":")) { +UNSUPPORTED("cnbqptqtolqfv8ldin52nlvx0"); // if (str[0]) +UNSUPPORTED("cogpzraxmtn5x26pbzrmt64ow"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("9eduqn5owyzon5mdfrfajror6"); // free(colors); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("13h4fpjj7vkimtrsq5l5siic1"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("33tragnfqd9eqgqdst6rty8gp"); // if (((str = agget(e, "fontcolor")) != 0) && str[0]) +UNSUPPORTED("97osvej5vqjmf4a6du709am4f"); // gvrender_set_pencolor(job, str); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dlue7nzn2pfskq2p54b34b488 +// static void emit_view(GVJ_t * job, graph_t * g, int flags) +public static Object emit_view(Object... arg) { +UNSUPPORTED("5imanth4uju8cetckpnvqvzub"); // static void emit_view(GVJ_t * job, graph_t * g, int flags) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c00osdfe9g1arquj6clfdrh3e"); // GVC_t * gvc = job->gvc; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("csndbis67mjcboadb9c3vccda"); // gvc->common.viewNum++; +UNSUPPORTED("586npexnnd5vijp8l2yb7kv6i"); // /* when drawing, lay clusters down before nodes and edges */ +UNSUPPORTED("8rgrpr4idg5l73bbih7wy6xuh"); // if (!(flags & (1<<2))) +UNSUPPORTED("5gnlxmhx15pwjdqb1bv6lj9q1"); // emit_clusters(job, g, flags); +UNSUPPORTED("8odxjg9o1tr8v6pqudnrplweo"); // if (flags & (1<<0)) { +UNSUPPORTED("2xnyatu1c43zijt16ke1g4gg9"); // /* output all nodes, then all edges */ +UNSUPPORTED("24iil9cfhuxvvzbkepuax0fq8"); // gvrender_begin_nodes(job); +UNSUPPORTED("eg21iwn9eqyjsoisl58nl8i36"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("21cc1ilu48o079xze4a4zj021"); // emit_node(job, n); +UNSUPPORTED("bwt97v7vxmudd2nrehidk4f20"); // gvrender_end_nodes(job); +UNSUPPORTED("3vzktz5re4ifmdiynmy5l85h9"); // gvrender_begin_edges(job); +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("8wpryg13apwpccvklympyeyqu"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) +UNSUPPORTED("egbuqrd3oowt73ihe2c07hylx"); // emit_edge(job, e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7pirwyfpglg7wt4glc4zlfvz"); // gvrender_end_edges(job); +UNSUPPORTED("aj09npfwn78tl31m397v0s50r"); // } else if (flags & (1<<4)) { +UNSUPPORTED("clvp13zubjxry8l8nesv79xjl"); // /* output all edges, then all nodes */ +UNSUPPORTED("3vzktz5re4ifmdiynmy5l85h9"); // gvrender_begin_edges(job); +UNSUPPORTED("eg21iwn9eqyjsoisl58nl8i36"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("8wpryg13apwpccvklympyeyqu"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) +UNSUPPORTED("egbuqrd3oowt73ihe2c07hylx"); // emit_edge(job, e); +UNSUPPORTED("7pirwyfpglg7wt4glc4zlfvz"); // gvrender_end_edges(job); +UNSUPPORTED("24iil9cfhuxvvzbkepuax0fq8"); // gvrender_begin_nodes(job); +UNSUPPORTED("eg21iwn9eqyjsoisl58nl8i36"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("21cc1ilu48o079xze4a4zj021"); // emit_node(job, n); +UNSUPPORTED("bwt97v7vxmudd2nrehidk4f20"); // gvrender_end_nodes(job); +UNSUPPORTED("3v872xkvak5nthxntrmy679dt"); // } else if (flags & (1<<3)) { +UNSUPPORTED("24iil9cfhuxvvzbkepuax0fq8"); // gvrender_begin_nodes(job); +UNSUPPORTED("eg21iwn9eqyjsoisl58nl8i36"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("enqvgohrxvf10ccw4y4r96nkf"); // if (write_node_test(g, n)) +UNSUPPORTED("1bzj2os22s6b3tf899bpkde6t"); // emit_node(job, n); +UNSUPPORTED("bwt97v7vxmudd2nrehidk4f20"); // gvrender_end_nodes(job); +UNSUPPORTED("3vzktz5re4ifmdiynmy5l85h9"); // gvrender_begin_edges(job); +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("7yvyv13me3s32qvq3gfbyt283"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("2fgkqy3hjpj9eo76nnctdhelj"); // if (write_edge_test(g, e)) +UNSUPPORTED("auj2mo2tz3uf10zjkza14e82k"); // emit_edge(job, e); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7pirwyfpglg7wt4glc4zlfvz"); // gvrender_end_edges(job); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("2638u64adcw68h4iekta3woqj"); // /* output in breadth first graph walk order */ +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("21cc1ilu48o079xze4a4zj021"); // emit_node(job, n); +UNSUPPORTED("7yvyv13me3s32qvq3gfbyt283"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("6a94yfoszisanhlfhbgaagm7b"); // emit_node(job, aghead(e)); +UNSUPPORTED("egbuqrd3oowt73ihe2c07hylx"); // emit_edge(job, e); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1rit427sa8udvzo3k42t9iha0"); // /* when mapping, detect events on clusters after nodes and edges */ +UNSUPPORTED("1nky1gj4525b4130zqg4jg6ah"); // if (flags & (1<<2)) +UNSUPPORTED("5gnlxmhx15pwjdqb1bv6lj9q1"); // emit_clusters(job, g, flags); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dk8gj6u142q8vgup6ar9ruysc +// static void emit_begin_graph(GVJ_t * job, graph_t * g) +public static Object emit_begin_graph(Object... arg) { +UNSUPPORTED("5njsnfg1w96wtvkzxnnx79oze"); // static void emit_begin_graph(GVJ_t * job, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8lamppsqs7nhiu5v8k1f5jfh2"); // obj_state_t *obj; +UNSUPPORTED("1iexddadjo0w6fdgddatfx40s"); // obj = push_obj_state(job); +UNSUPPORTED("7ihakbkozgh3iuzyjmmhyh6k3"); // obj->type = ROOTGRAPH_OBJTYPE; +UNSUPPORTED("9ud9itr2e77p4owess7q8718d"); // obj->u.g = g; +UNSUPPORTED("5pf0fco1plw3oedj6uzq7uimr"); // obj->emit_state = EMIT_GDRAW; +UNSUPPORTED("bg4pso3sflig43odlnhxv7hak"); // initObjMapData (job, GD_label(g), g); +UNSUPPORTED("e44aso60solubotswg1yr8un"); // gvrender_begin_graph(job, g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3nhn5596nwxutoyrm6tsxwvbd +// static void emit_end_graph(GVJ_t * job, graph_t * g) +public static Object emit_end_graph(Object... arg) { +UNSUPPORTED("e5oluojkvyfuqdu97u95cqg3w"); // static void emit_end_graph(GVJ_t * job, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1n9wfd0yho4z5950kfzq1f6y5"); // gvrender_end_graph(job); +UNSUPPORTED("39iamwq9cd9iv3d2iyiaq8gz9"); // pop_obj_state(job); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9to165vrtas68afpbjdprx2vd +// static void emit_page(GVJ_t * job, graph_t * g) +public static Object emit_page(Object... arg) { +UNSUPPORTED("di1dvfa15xs9rx182756djgqg"); // static void emit_page(GVJ_t * job, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("6662g2itnb2i3tqvhvnkpfe2f"); // int nump = 0, flags = job->flags; +UNSUPPORTED("1ikkkd5pukqwffmu5mtak47js"); // textlabel_t *lab; +UNSUPPORTED("wv6e6kkgh4jw93f4dlmoozok"); // pointf *p = NULL; +UNSUPPORTED("6xn8wrm21858wn8m5cu76e7k6"); // char* saveid; +UNSUPPORTED("h0or3v13348vfl22jqz895yc"); // unsigned char buf[128]; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("c4vh2q9zpipty999dty5nvmpm"); // /* For the first page, we can use the values generated in emit_begin_graph. +UNSUPPORTED("2rctyueh35ne2pj7qe3nbgj64"); // * For multiple pages, we need to generate a new id. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("1p2sfiuz204i105cwxgsww1g7"); // if ((((job)->layerNum>1)||((job)->pagesArrayElem.x > 0)||((job)->pagesArrayElem.x > 0))) { +UNSUPPORTED("el1z2krv8hoorc5c7vjsxw7yn"); // agxbinit(&xb, 128, buf); +UNSUPPORTED("288ufw5rels1yxspvgtsyk3ve"); // saveid = obj->id; +UNSUPPORTED("dly1rpg3t74a0cgwq5m4vdfir"); // layerPagePrefix (job, &xb); +UNSUPPORTED("9vff0t827i9c1drbwcuxv66vl"); // agxbput (&xb, saveid); +UNSUPPORTED("7fsfc9wkigjp8e60ca77krp4q"); // obj->id = (((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("5cjdy9xrlft2fd3m8c4wfxvn0"); // saveid = NULL; +UNSUPPORTED("3glknrzusaw84wts2i8rbn2cq"); // setColorScheme (agget (g, "colorscheme")); +UNSUPPORTED("7n40v0iw6f6evriibhioqu7ts"); // setup_page(job, g); +UNSUPPORTED("8xm4n85i531jwobi44phtf4ir"); // gvrender_begin_page(job); +UNSUPPORTED("e7x5ptqcyrjeve73rf3hjhuhn"); // gvrender_set_pencolor(job, "black"); +UNSUPPORTED("c7ds3utacpnq14lyij0jurwb4"); // gvrender_set_fillcolor(job, "lightgrey"); +UNSUPPORTED("8k7npuk2pg2np42cu63aachgc"); // if ((flags & ((1<<16) | (1<<22))) +UNSUPPORTED("cjxb7soy84ukfc9btgpgb20qv"); // && (obj->url || obj->explicit_tooltip)) { +UNSUPPORTED("bdk6hu2yhmni45qx7umzxcygk"); // if (flags & ((1<<17) | (1<<19))) { +UNSUPPORTED("9cwsuo4ejz94kt28xa30z24o4"); // if (flags & (1<<17)) { +UNSUPPORTED("4rlzy2etw4nk635bj5t9ru8p8"); // obj->url_map_shape = MAP_RECTANGLE; +UNSUPPORTED("c4ypp4cr8076ye8m20un6b1r0"); // nump = 2; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("ei9dbrwfxqj4zzq5goyjrp35m"); // obj->url_map_shape = MAP_POLYGON; +UNSUPPORTED("bc2bgfqrx6wr17fw3ipheaxt3"); // nump = 4; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("1ubuo1fytrqcvpt7d5d82uhus"); // p = (pointf*)zmalloc((nump)*sizeof(pointf)); +UNSUPPORTED("7mbkf7uj9kru8y0p4vqwvqcuz"); // p[0] = job->pageBox.LL; +UNSUPPORTED("6r0id695rza6fkyms76whk4iv"); // p[1] = job->pageBox.UR; +UNSUPPORTED("bt5khrnbcnl2rast8s6f5hsb3"); // if (! (flags & ((1<<17)))) +UNSUPPORTED("32e1sy1ya6lb3qmnvfchmljx6"); // rect2poly(p); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cnadzqqicrskcdzko360llcg5"); // if (! (flags & (1<<13))) +UNSUPPORTED("8bpnq0a8qri3cve2qymb5tdyk"); // gvrender_ptf_A(job, p, p, nump); +UNSUPPORTED("e4cpy14h8m2l16mjqadzsk89g"); // obj->url_map_p = p; +UNSUPPORTED("evxoqe3dfgjf7bsm11ipkr8uc"); // obj->url_map_n = nump; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6le9aolkoakj39i518xz8m4mp"); // if ((flags & (1<<15)) && ((lab = GD_label(g)))) +UNSUPPORTED("ear31tm0c4wpfnpcaoecqkfs3"); // /* do graph label on every page and rely on clipping to show it on the right one(s) */ +UNSUPPORTED("1sy2sk1asrfkgl0880y6kmloo"); // obj->label = lab->text; +UNSUPPORTED("5r6tugfy15ojg2zla1xfnbmfc"); // /* If EMIT_CLUSTERS_LAST is set, we assume any URL or tooltip +UNSUPPORTED("33ajxgdgcy9ya7o2qo3545kjz"); // * attached to the root graph is emitted either in begin_page +UNSUPPORTED("8oq67ru65jsrltrbkpicoq60r"); // * or end_page of renderer. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("b465fu7r28ccnhoa0uvk6txhm"); // if (!(flags & (1<<2)) && (obj->url || obj->explicit_tooltip)) { +UNSUPPORTED("874x9mgt9apdota54iarnz9v1"); // emit_map_rect(job, job->clip); +UNSUPPORTED("5dgsg5nmc05yy1ape6ses927z"); // gvrender_begin_anchor(job, obj->url, obj->tooltip, obj->target, obj->id); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4h1kjxw1u80nnonna7i2zuoec"); // /* if (numPhysicalLayers(job) == 1) */ +UNSUPPORTED("2vh3blbhjrzadv1wr6ru210tj"); // emit_background(job, g); +UNSUPPORTED("aplr7sm051i57jygcfj6gigoh"); // if (GD_label(g)) +UNSUPPORTED("ett9sr8mbs57jfjk6eqf66ood"); // emit_label(job, EMIT_GLABEL, GD_label(g)); +UNSUPPORTED("abgvf32lk9jxduwyafzp9fn6r"); // if (!(flags & (1<<2)) && (obj->url || obj->explicit_tooltip)) +UNSUPPORTED("e3o6yrnsv8lko5fql4f8a9gly"); // gvrender_end_anchor(job); +UNSUPPORTED("ckjdhy2wwekw6raq99m9r1wwe"); // emit_view(job,g,flags); +UNSUPPORTED("90q0ssftdvmcofopllyikqw70"); // gvrender_end_page(job); +UNSUPPORTED("ba2uwvbdk3mubgsfak0882ay6"); // if (saveid) { +UNSUPPORTED("52frst03mcbsuu6bmnqs962qm"); // agxbfree(&xb); +UNSUPPORTED("9z28bgnq8rla75dmcugnyi4ql"); // obj->id = saveid; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 87nutd480deekxln7o14or4vo +// void emit_graph(GVJ_t * job, graph_t * g) +public static Object emit_graph(Object... arg) { +UNSUPPORTED("3bmd2hvgnq1fcmgpxtam9hsx0"); // void emit_graph(GVJ_t * job, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("12bpksga44s9sfl7x8xn2rt2k"); // int flags = job->flags; +UNSUPPORTED("9q16e0ya19gm18zkyq7str796"); // int* lp; +UNSUPPORTED("3aho54lnlpjyvy4ud87k3xnt1"); // /* device dpi is now known */ +UNSUPPORTED("drdz8zf1napfd9649xa2vvoui"); // job->scale.x = job->zoom * job->dpi.x / 72; +UNSUPPORTED("esbjlmqb7gaaf3pfsa89lgev"); // job->scale.y = job->zoom * job->dpi.y / 72; +UNSUPPORTED("ag4tx55kpqxgiqh97rx32q22l"); // job->devscale.x = job->dpi.x / 72; +UNSUPPORTED("7t3liq77ckb4jbxzzkuvpenqu"); // job->devscale.y = job->dpi.y / 72; +UNSUPPORTED("d3hdv8k8yieahljfu3qt853ud"); // if ((job->flags & (1<<12)) || (Y_invert)) +UNSUPPORTED("dhkndrjvudfzh9rih1bg17gz3"); // job->devscale.y *= -1; +UNSUPPORTED("7q82xx3mn6mih80ewhar8lg0g"); // /* compute current view in graph units */ +UNSUPPORTED("3h1yo631e2fq69mxwoggya716"); // if (job->rotation) { +UNSUPPORTED("b9r25eu40lq0rhgqpis89rji8"); // job->view.y = job->width / job->scale.y; +UNSUPPORTED("6a6udj0vxgy2ylquj5qgi0v5y"); // job->view.x = job->height / job->scale.x; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("6v8ftcsv837e27gwxszngvin2"); // job->view.x = job->width / job->scale.x; +UNSUPPORTED("49fsot485en3t7beaufx5qicy"); // job->view.y = job->height / job->scale.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("du7kz5k6s1p26hnk6fqj746mu"); // s = late_string(g, agattr(g, AGRAPH, "comment", 0), ""); +UNSUPPORTED("5td7tli30j1zl1fgvmy30blpa"); // gvrender_comment(job, s); +UNSUPPORTED("b6bxtnfqf846y3t3131e0p4d0"); // job->layerNum = 0; +UNSUPPORTED("7ky2s7fpgwjuqrftlhyowbq7q"); // emit_begin_graph(job, g); +UNSUPPORTED("9saz20f1su2m7mwo82xf6hqc7"); // if (flags & (1<<1)) +UNSUPPORTED("5ay1uey9mpe77501hacs5cu3c"); // emit_colors(job,g); +UNSUPPORTED("f36txx1tdgu50b4nkh20skis"); // /* reset node state */ +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("9jg6tdwrn007w9odzq2qc6zdy"); // ND_state(n) = 0; +UNSUPPORTED("1xhln25szyh2h4t7ccsprle9"); // /* iterate layers */ +UNSUPPORTED("4nvgbfw6y1185pj4e8h7daw79"); // for (firstlayer(job,&lp); validlayer(job); nextlayer(job,&lp)) { +UNSUPPORTED("bn0m6u9dix50gpbajrfezpgua"); // if (numPhysicalLayers (job) > 1) +UNSUPPORTED("35ib30gs09z3uwjvjoju5mpm2"); // gvrender_begin_layer(job); +UNSUPPORTED("3b9ro4joid217f74xv0vx23ox"); // /* iterate pages */ +UNSUPPORTED("5h2vy2qmsot0bw099k6zh72gd"); // for (firstpage(job); validpage(job); nextpage(job)) +UNSUPPORTED("f0wsoynbdz170hyw1cg27wfte"); // emit_page(job, g); +UNSUPPORTED("bn0m6u9dix50gpbajrfezpgua"); // if (numPhysicalLayers (job) > 1) +UNSUPPORTED("2v3s6ab0rugrq7jsmzwh0cop0"); // gvrender_end_layer(job); +UNSUPPORTED("3xbu5lb3fe5zgccq9vbjk3kln"); // } +UNSUPPORTED("580k35rndifpvngdh5ih6za8j"); // emit_end_graph(job, g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8drr2f8zs3soqc2sosnio8pzh +// static void free_string_entry(Dict_t * dict, char *key, Dtdisc_t * disc) +public static Object free_string_entry(Object... arg) { +UNSUPPORTED("5fw7dopfefym7l730mi9nupmb"); // static void free_string_entry(Dict_t * dict, char *key, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3a76j29jy9as91ppatk4njqfj"); // free(key); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 bh276mpp135v0h4xcw5xq7dw0 +// static Dict_t *strings + + +//1 b145hfewfupd0yod069hevlar +// static Dtdisc_t stringdict = + + + + +//3 2akcqhxfjsryfaxqftz8ogp65 +// int emit_once(char *str) +public static Object emit_once(Object... arg) { +UNSUPPORTED("av9vowc3noulfodcy4y75cigq"); // int emit_once(char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9o1ba2pupi4m7jhoaypqirzvz"); // if (strings == 0) +UNSUPPORTED("oaii1lps6xe7x781clc5iody"); // strings = dtopen(&stringdict, Dtoset); +UNSUPPORTED("a42qo364e33vq6xbaw4vwmfzy"); // if (!(*(((Dt_t*)(strings))->searchf))((strings),(void*)(str),0000004)) { +UNSUPPORTED("a012inr2a6x936i3bmmkqbemf"); // (*(((Dt_t*)(strings))->searchf))((strings),(void*)(strdup(str)),0000001); +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 13d7ot7fdy4wdgkjwthvwzm4e +// void emit_once_reset(void) +public static Object emit_once_reset(Object... arg) { +UNSUPPORTED("7ssgqzgkp5093mqxhkhuxum69"); // void emit_once_reset(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("92fsshcviqb93ohg6shu769vw"); // if (strings) { +UNSUPPORTED("czsk7hllpj8z00253zg9zwhd7"); // dtclose(strings); +UNSUPPORTED("eolwadtu14y3m949xmkvfm351"); // strings = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 elzykz6y67nj4wkw8ujszlav6 +// static void emit_begin_cluster(GVJ_t * job, Agraph_t * sg) +public static Object emit_begin_cluster(Object... arg) { +UNSUPPORTED("5hucwlu4giv8cmas625we7f9h"); // static void emit_begin_cluster(GVJ_t * job, Agraph_t * sg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8lamppsqs7nhiu5v8k1f5jfh2"); // obj_state_t *obj; +UNSUPPORTED("1iexddadjo0w6fdgddatfx40s"); // obj = push_obj_state(job); +UNSUPPORTED("n4boka8crqg5xqjpjbgcxln8"); // obj->type = CLUSTER_OBJTYPE; +UNSUPPORTED("4xukb2axnj1vamt817cyruv0g"); // obj->u.sg = sg; +UNSUPPORTED("7by2ra75cr7w394dpq9nmc5ft"); // obj->emit_state = EMIT_CDRAW; +UNSUPPORTED("bl6tgzo7jj7jcpgtgg48l2agv"); // initObjMapData (job, GD_label(sg), sg); +UNSUPPORTED("85xekl5v59s8nwopb1oyrehis"); // gvrender_begin_cluster(job, sg); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 djiumpyzkrvkc510ygwc0qw82 +// static void emit_end_cluster(GVJ_t * job, Agraph_t * g) +public static Object emit_end_cluster(Object... arg) { +UNSUPPORTED("9dxd1b11ibgf7uvh7mf5mvzye"); // static void emit_end_cluster(GVJ_t * job, Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9k80dolt6qs55o0oinc7mvk7k"); // gvrender_end_cluster(job, g); +UNSUPPORTED("39iamwq9cd9iv3d2iyiaq8gz9"); // pop_obj_state(job); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 560z6epwa1xr2jys0av7hf7e5 +// void emit_clusters(GVJ_t * job, Agraph_t * g, int flags) +public static Object emit_clusters(Object... arg) { +UNSUPPORTED("9xh1f0u1yb9m8ypftvkh8ix4c"); // void emit_clusters(GVJ_t * job, Agraph_t * g, int flags) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("18uvc5sri0zzjmzue0wwo1z3j"); // int doPerim, c, istyle, filled; +UNSUPPORTED("en6q26cyrg17g6yd6el73b3ns"); // pointf AF[4]; +UNSUPPORTED("w9bbn26rmq9dc8ihryhse3pi"); // char *color, *fillcolor, *pencolor, **style, *s; +UNSUPPORTED("5wyi0wasd5kecf6rhsqdjk7v2"); // graph_t *sg; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("8lamppsqs7nhiu5v8k1f5jfh2"); // obj_state_t *obj; +UNSUPPORTED("1ikkkd5pukqwffmu5mtak47js"); // textlabel_t *lab; +UNSUPPORTED("eqepzr79q5src0e30wgplnm07"); // int doAnchor; +UNSUPPORTED("75w3zx2oz7s1yf7arcxf48heo"); // double penwidth; +UNSUPPORTED("bhtcyodd9jiazat6sqhp9pm4x"); // char* clrs[2]; +UNSUPPORTED("99d9j6m0161wdv2tu4wbf3ifi"); // for (c = 1; c <= GD_n_cluster(g); c++) { +UNSUPPORTED("cuf43q4kl3kqgyuuxdqve1mqt"); // sg = GD_clust(g)[c]; +UNSUPPORTED("75ua4s360ejy0ad5556y7rxc6"); // if (clust_in_layer(job, sg) == 0) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("cf5aumm9peswnfjdghtniv57i"); // /* when mapping, detect events on clusters after sub_clusters */ +UNSUPPORTED("7pfc87mgoy8xnsdd8w3r44gt4"); // if (flags & (1<<2)) +UNSUPPORTED("8zezqxx7s7218o1z84t9283i1"); // emit_clusters(job, sg, flags); +UNSUPPORTED("4griuzh66dk49to2z4vg4n58t"); // emit_begin_cluster(job, sg); +UNSUPPORTED("4afw3f56zovkl91einsaznlr1"); // obj = job->obj; +UNSUPPORTED("8njvdvq4f4flv48y83eoo9guh"); // doAnchor = (obj->url || obj->explicit_tooltip); +UNSUPPORTED("88mnm1u4w0ntiz5kynm02mfri"); // setColorScheme (agget (sg, "colorscheme")); +UNSUPPORTED("eazs637wvmi4mg6rzyohl77bn"); // if (doAnchor && !(flags & (1<<2))) { +UNSUPPORTED("4brof5tmiwuq5x63jh8whfeo0"); // emit_map_rect(job, GD_bb(sg)); +UNSUPPORTED("96wz4onwo8hv1dre15npyoncl"); // gvrender_begin_anchor(job, obj->url, obj->tooltip, obj->target, obj->id); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("arpfq2ay8oyluwsz8s1wp6tp4"); // filled = 0; +UNSUPPORTED("7z8t2n0ov011yh7grn6tj8xl2"); // istyle = 0; +UNSUPPORTED("e1llbio24o8st183k6ivn3x0p"); // if ((style = checkClusterStyle(sg, &istyle))) { +UNSUPPORTED("5ijzig29e4ve6o6tmpypjijfc"); // gvrender_set_style(job, style); +UNSUPPORTED("1jumnpbkw6xmpcroil8k5o5m8"); // if (istyle & (1 << 0)) +UNSUPPORTED("6w06em6l23suofe15du0wq9hb"); // filled = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("17irg4x9jsg1ae0ueg2w7tyws"); // fillcolor = pencolor = 0; +UNSUPPORTED("5erty8ili3cu3xxgovmr7jyzp"); // if (GD_gui_state(sg) & (1<<0)) { +UNSUPPORTED("5ikpu0qi6d121h4pgoxr837nf"); // pencolor = late_nnstring(sg, G_activepencolor, "#808080"); +UNSUPPORTED("4k5huj86rwz99dqspibchklqc"); // fillcolor = late_nnstring(sg, G_activefillcolor, "#fcfcfc"); +UNSUPPORTED("5op945vn3c1cyxwov5p8rj33t"); // filled = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("76bnhukou8byzgwwws7ab8b0k"); // else if (GD_gui_state(sg) & (1<<1)) { +UNSUPPORTED("3twy3v6vi0eeadoc4u1zlxb45"); // pencolor = late_nnstring(sg, G_activepencolor, "#303030"); +UNSUPPORTED("1osuzkag4yl1jf1yqr8to7q1x"); // fillcolor = late_nnstring(sg, G_activefillcolor, "#e8e8e8"); +UNSUPPORTED("5op945vn3c1cyxwov5p8rj33t"); // filled = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("er04c856pdifd7e1lw1c2jtba"); // else if (GD_gui_state(sg) & (1<<3)) { +UNSUPPORTED("8kgp6s9d1pkgammp2cqy0lgz4"); // pencolor = late_nnstring(sg, G_deletedpencolor, "#e0e0e0"); +UNSUPPORTED("50zeczr79uvycx2cumnhd1tjx"); // fillcolor = late_nnstring(sg, G_deletedfillcolor, "#f0f0f0"); +UNSUPPORTED("5op945vn3c1cyxwov5p8rj33t"); // filled = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6ziqrkwt111lwfmj2h8pp9244"); // else if (GD_gui_state(sg) & (1<<2)) { +UNSUPPORTED("5zrylqp2iq3cuxz4lzc0545c3"); // pencolor = late_nnstring(sg, G_visitedpencolor, "#101010"); +UNSUPPORTED("2ehq3py2ixs9yy4hteia4zne7"); // fillcolor = late_nnstring(sg, G_visitedfillcolor, "#f8f8f8"); +UNSUPPORTED("5op945vn3c1cyxwov5p8rj33t"); // filled = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("8ame1huznbi4b3mfey57xdith"); // if (((color = agget(sg, "color")) != 0) && color[0]) +UNSUPPORTED("122n5atq0kvxnd5tgprr5fu8m"); // fillcolor = pencolor = color; +UNSUPPORTED("1zymwwt3solqac47a89h9z0im"); // if (((color = agget(sg, "pencolor")) != 0) && color[0]) +UNSUPPORTED("17hxm349yg7jla8miv14hwpgd"); // pencolor = color; +UNSUPPORTED("dlm2m16no4yo0v65zm3r6q273"); // if (((color = agget(sg, "fillcolor")) != 0) && color[0]) +UNSUPPORTED("4mfyuvfftu02jnxjtms8u89df"); // fillcolor = color; +UNSUPPORTED("ee02x4g8qa44xw1iktx466luf"); // /* bgcolor is supported for backward compatability +UNSUPPORTED("921qzbfipmjh6nvtnq08xm284"); // if fill is set, fillcolor trumps bgcolor, so +UNSUPPORTED("tzyfjffroigby20366m64xps"); // don't bother checking. +UNSUPPORTED("3wmft8410e1kee6p60k7wx3aa"); // if gradient is set fillcolor trumps bgcolor +UNSUPPORTED("29edlge3wqyp1gs0vymtr5700"); // */ +UNSUPPORTED("dzc0yotcol1cuthw3y39cexc6"); // if ((!filled || !fillcolor) && ((color = agget(sg, "bgcolor")) != 0) && color[0]) { +UNSUPPORTED("4mfyuvfftu02jnxjtms8u89df"); // fillcolor = color; +UNSUPPORTED("1obncd6x9bei9fl89du99yv6z"); // filled = 1; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4onosby3tz5zsis6f7400lgv0"); // if (!pencolor) pencolor = "black"; +UNSUPPORTED("5eg5vn1y14wludgfck0xaq3b9"); // if (!fillcolor) fillcolor = "lightgrey"; +UNSUPPORTED("1xf5m2okbj7owt77vc19vmf8r"); // clrs[0] = NULL; +UNSUPPORTED("2atgu691bmn6h9jvk8lve5qzc"); // if (filled) { +UNSUPPORTED("1ldzvmymblz8y4a6idvyxoj5t"); // float frac; +UNSUPPORTED("5dnga3gh00f4sv4fk1n2iqdgu"); // if (findStopColor (fillcolor, clrs, &frac)) { +UNSUPPORTED("12wjuz2zq45txyp39hhco78xu"); // gvrender_set_fillcolor(job, clrs[0]); +UNSUPPORTED("5o23oun5dlazsaicyjj530pp"); // if (clrs[1]) +UNSUPPORTED("a7gdknkeqzyql1xn5aou1tu3u"); // gvrender_set_gradient_vals(job,clrs[1],late_int(sg,G_gradientangle,0,0), frac); +UNSUPPORTED("5v31mz0fdr0su096gqov41vyn"); // else +UNSUPPORTED("bs5b6w27pwn1xz2vkqcvhvw13"); // gvrender_set_gradient_vals(job,"black",late_int(sg,G_gradientangle,0,0), frac); +UNSUPPORTED("7m5m0tkcf8zs343oe1dddsxz6"); // if (istyle & (1 << 1)) +UNSUPPORTED("5jf506rwz9snq4d6ozpjvg3yg"); // filled = 3; +UNSUPPORTED("7rknc7r0egcn3cw68mrvgow3v"); // else +UNSUPPORTED("7bikp52v1ey2yil3rybx6nris"); // filled = 2; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("es2lu1zhy5wdeml1v1kmrcix3"); // gvrender_set_fillcolor(job, fillcolor); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6j0eo47d00ez70necc0iot40d"); // if (G_penwidth && ((s=agxget(sg,G_penwidth)) && s[0])) { +UNSUPPORTED("6wycyviq3z90tulx4rjwg7sw"); // penwidth = late_double(sg, G_penwidth, 1.0, 0.0); +UNSUPPORTED("7mn8zfxwz2kendg9ewcomj2tv"); // gvrender_set_penwidth(job, penwidth); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4z3pjxp0yl5bmzgwdor3xvrv7"); // if (istyle & (1 << 2)) { +UNSUPPORTED("mp3otb18t8y3o4bchg5z2idp"); // if ((doPerim = late_int(sg, G_peripheries, 1, 0)) || filled) { +UNSUPPORTED("8si227ium48spncryy7frwynh"); // AF[0] = GD_bb(sg).LL; +UNSUPPORTED("d45bxs36if3jklht2eq00pcr3"); // AF[2] = GD_bb(sg).UR; +UNSUPPORTED("7pt3ynvpv9wcldm9uyl4hs9ud"); // AF[1].x = AF[2].x; +UNSUPPORTED("busa4gdiebsow4m6i91pei9dk"); // AF[1].y = AF[0].y; +UNSUPPORTED("6zog1wdj92i5gy18x1tgo7l8k"); // AF[3].x = AF[0].x; +UNSUPPORTED("56s58onhzgnly5ggdvt1nlqnr"); // AF[3].y = AF[2].y; +UNSUPPORTED("4jwde8ij6mapmpzufmz71uw3e"); // if (doPerim) +UNSUPPORTED("7xogzuqvqci68vd0h8mw3g3hc"); // gvrender_set_pencolor(job, pencolor); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("3eca1kfk7d0usysqe2g25s9dt"); // gvrender_set_pencolor(job, "transparent"); +UNSUPPORTED("ayr41ncx6835i1t6cvbbocmjt"); // round_corners(job, AF, 4, istyle, filled); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9yi0sfy5jinx301z6euefq1gx"); // else if (istyle & (1 << 6)) { +UNSUPPORTED("ax8y1utessq4dsj8ao6g7j2gw"); // int rv; +UNSUPPORTED("4hludau9a2am1tjk0xhlnxfwy"); // AF[0] = GD_bb(sg).LL; +UNSUPPORTED("4k77pmee44hsr6plcoi20dqdh"); // AF[2] = GD_bb(sg).UR; +UNSUPPORTED("94xw5t69k3x4bncfo418rzk41"); // AF[1].x = AF[2].x; +UNSUPPORTED("2wgbau6oi3x84fa5vbjpl4tys"); // AF[1].y = AF[0].y; +UNSUPPORTED("drztvrhevx0zqyqw37lqbywwv"); // AF[3].x = AF[0].x; +UNSUPPORTED("47fk1ddlzlenv8temw9o74dkm"); // AF[3].y = AF[2].y; +UNSUPPORTED("d53rklwtw1a8c0ucfyief5w1w"); // if (late_int(sg, G_peripheries, 1, 0) == 0) +UNSUPPORTED("63hseiu22ctgv9gdekam65t07"); // gvrender_set_pencolor(job, "transparent"); +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("1wbjeln7h70lig2gl98kt8rf5"); // gvrender_set_pencolor(job, pencolor); +UNSUPPORTED("97vrs1f2jac8rfh3rnv1du0r7"); // rv = stripedBox (job, AF, fillcolor, 0); +UNSUPPORTED("26uxy1rkzvmsisagoc5g7f9qc"); // if (rv > 1) +UNSUPPORTED("8b71lckf2t9xe9fslu15tp484"); // agerr (AGPREV, "in cluster %s\n", agnameof(sg)); +UNSUPPORTED("cahw6lsgg8xmfslugv8wqwbhc"); // gvrender_box(job, GD_bb(sg), 0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("dgmim3t3r6y21whczevrqvhn1"); // if (late_int(sg, G_peripheries, 1, 0)) { +UNSUPPORTED("1wbjeln7h70lig2gl98kt8rf5"); // gvrender_set_pencolor(job, pencolor); +UNSUPPORTED("8lraxifxzs9ffrnk8a0ckeesw"); // gvrender_box(job, GD_bb(sg), filled); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("7a977zitdpktoxwn8rbjif9ux"); // else if (filled) { +UNSUPPORTED("63hseiu22ctgv9gdekam65t07"); // gvrender_set_pencolor(job, "transparent"); +UNSUPPORTED("8lraxifxzs9ffrnk8a0ckeesw"); // gvrender_box(job, GD_bb(sg), filled); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1j4mx2l2nl1oo3makbr3eyoxc"); // free (clrs[0]); +UNSUPPORTED("ecowjd4zwo4ew6jeu9evjiij9"); // if ((lab = GD_label(sg))) +UNSUPPORTED("2rvfkljzair3c2v8un739u8j"); // emit_label(job, EMIT_CLABEL, lab); +UNSUPPORTED("7lbjljjzqr08zoe4tepd81ci0"); // if (doAnchor) { +UNSUPPORTED("33sr8o6eyia8xv39c3ax3i9lq"); // if (flags & (1<<2)) { +UNSUPPORTED("7fheoklw2kecmkg0cc6gap5f4"); // emit_map_rect(job, GD_bb(sg)); +UNSUPPORTED("b2xca1s1bd7tkr1vo1weazvq1"); // gvrender_begin_anchor(job, obj->url, obj->tooltip, obj->target, obj->id); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("dtwdqlhxsk4vpro8m02pot0co"); // gvrender_end_anchor(job); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("aayivxn33okuwnvn0iqa4066x"); // if (flags & (1<<3)) { +UNSUPPORTED("7pdiogu941nic4o67h7upbhm4"); // for (n = agfstnode(sg); n; n = agnxtnode(sg, n)) { +UNSUPPORTED("1bzj2os22s6b3tf899bpkde6t"); // emit_node(job, n); +UNSUPPORTED("cvwdbwresv9dldcthcbnyp9kk"); // for (e = agfstout(sg, n); e; e = agnxtout(sg, e)) +UNSUPPORTED("auj2mo2tz3uf10zjkza14e82k"); // emit_edge(job, e); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cv3hy45odqvlvwcjdyr6spm3h"); // emit_end_cluster(job, g); +UNSUPPORTED("40fwf06hlkuo7isg6mip8g7el"); // /* when drawing, lay down clusters before sub_clusters */ +UNSUPPORTED("3i5ezqfabmzliv96rwzf0rp37"); // if (!(flags & (1<<2))) +UNSUPPORTED("8zezqxx7s7218o1z84t9283i1"); // emit_clusters(job, sg, flags); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c4mtnyvuir2cais09r4vk4xwa +// static boolean is_style_delim(int c) +public static Object is_style_delim(Object... arg) { +UNSUPPORTED("8mez49lbay1n6ghwk9q96arp5"); // static boolean is_style_delim(int c) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8amt8fmqdipygnxirowfbawox"); // switch (c) { +UNSUPPORTED("71si918orgtw88hf3ef5zmsur"); // case '(': +UNSUPPORTED("6w345tkzwww6jqwaqdi7yww9s"); // case ')': +UNSUPPORTED("d7tc6f9496ufckp546jd19usk"); // case ',': +UNSUPPORTED("1luutzji7osg8esr8b5j2cmsr"); // case '\0': +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ciz01t6xlpxu9dny1f4zwb45n +// static int style_token(char **s, agxbuf * xb) +public static Object style_token(Object... arg) { +UNSUPPORTED("28oqkocgew358xzz1ws4vsuz4"); // static int style_token(char **s, agxbuf * xb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8m3k758dcwwz4y8dqzc62remf"); // char *p = *s; +UNSUPPORTED("eyxuxcumfs3lh2yyd55uy6v7w"); // int token, rc; +UNSUPPORTED("wrvu9u7a8j6i6y6552zncxfk"); // char c; +UNSUPPORTED("e5ufot6klnpqffix37q98elea"); // while (*p && (isspace(*p) || (*p == ','))) +UNSUPPORTED("2wdgcrx402aszs54rq2kh9txd"); // p++; +UNSUPPORTED("ajkn8nsofzadrqa5lz0j3dil2"); // switch (*p) { +UNSUPPORTED("1luutzji7osg8esr8b5j2cmsr"); // case '\0': +UNSUPPORTED("dmnwmwojsxusa7q5qt23h5zmg"); // token = 0; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("71si918orgtw88hf3ef5zmsur"); // case '(': +UNSUPPORTED("6w345tkzwww6jqwaqdi7yww9s"); // case ')': +UNSUPPORTED("eksinwup1v6a3d98byb38snby"); // token = *p++; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("4cdl2v54v6i2dni2p09haa90i"); // token = 1; +UNSUPPORTED("chgfiktm89qx6plbkcedgxntv"); // while (!is_style_delim(c = *p)) { +UNSUPPORTED("44fjmben1pin1nau1r4s4b1jc"); // rc = ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)c))); +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3kblfzc6j01qhc67wzeuk2oam"); // *s = p; +UNSUPPORTED("dzxpp1eh4dn7ckzehm8pbp5r5"); // return token; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 5rjzz2a1wogd5wh9oa5o1fofa +// static unsigned char outbuf[128] + + +//1 adi2polpq88o43a9ixp81gazu +// static agxbuf ps_xb + + + + +//3 31nqh76a91ewgfgc421tjgnxd +// char **parse_style(char *s) +public static Object parse_style(Object... arg) { +UNSUPPORTED("e5cy7r0xn364flrgake76xt8i"); // char **parse_style(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3vpphojcmf2gtvenbux84m8z9"); // static char *parse[64]; +UNSUPPORTED("3gkp456k9uixnbt0hgaw7oeep"); // static boolean is_first = NOT(0); +UNSUPPORTED("ap64a3u5ezb8lo8thseajc887"); // int fun = 0; +UNSUPPORTED("ci8semxrw11syu6su3skyfkoa"); // boolean in_parens = 0; +UNSUPPORTED("h0or3v13348vfl22jqz895yc"); // unsigned char buf[128]; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("ew6jw9dmd6hait9mgj7ouhmmr"); // if (is_first) { +UNSUPPORTED("4m5jd5elxj32gsmed58fjnfcr"); // agxbinit(&ps_xb, 128, outbuf); +UNSUPPORTED("43wu8jjb66y01a3hlgjrjryh1"); // is_first = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ci65k77x1b3nq6luu69s87oup"); // agxbinit(&xb, 128, buf); +UNSUPPORTED("7qb9c0pzh9hqyptqv00luagac"); // p = s; +UNSUPPORTED("f242flcqmvdk48iozm6utnd21"); // while ((c = style_token(&p, &xb)) != 0) { +UNSUPPORTED("7rk995hpmaqbbasmi40mqg0yw"); // switch (c) { +UNSUPPORTED("ej3xfo9vi5946bx4zdvzne2rq"); // case '(': +UNSUPPORTED("apbqdu2kbx5fo2pqipxe7a1dq"); // if (in_parens) { +UNSUPPORTED("5gru9bi76isvm0xludlszwnh1"); // agerr(AGERR, "nesting not allowed in style: %s\n", s); +UNSUPPORTED("2zjdsh2kepmo5yfkli65ofxe1"); // parse[0] = (char *) 0; +UNSUPPORTED("97nzy67m5eyfd9a6d1montbam"); // agxbfree(&xb); +UNSUPPORTED("6c4u745gvkt06ky00z0po4obm"); // return parse; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("iod77t2iafvqv6ivwpk389b4"); // in_parens = NOT(0); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("6740d5ahrznermt1b0z9i00yc"); // case ')': +UNSUPPORTED("83ahjzhawu24k7hgmo221pz3k"); // if (in_parens == 0) { +UNSUPPORTED("9ymlk0ikhvtvhj6ke4b2tooxg"); // agerr(AGERR, "unmatched ')' in style: %s\n", s); +UNSUPPORTED("2zjdsh2kepmo5yfkli65ofxe1"); // parse[0] = (char *) 0; +UNSUPPORTED("97nzy67m5eyfd9a6d1montbam"); // agxbfree(&xb); +UNSUPPORTED("6c4u745gvkt06ky00z0po4obm"); // return parse; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("9yik55atrk3v32zihswkxoepa"); // in_parens = 0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("83ahjzhawu24k7hgmo221pz3k"); // if (in_parens == 0) { +UNSUPPORTED("197h1mowju7n7bgy7wx0jpyyp"); // if (fun == 64 - 1) { +UNSUPPORTED("47cw8s3z99bcrten2c3js5q7u"); // agerr(AGWARN, "truncating style '%s'\n", s); +UNSUPPORTED("2pxlo0tqwhg51d3v8r33x5vlm"); // parse[fun] = (char *) 0; +UNSUPPORTED("pjkyn5638fsqi3xazu3sd2ce"); // agxbfree(&xb); +UNSUPPORTED("dedftzivffm91rj6yyibb1jrh"); // return parse; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("4h5li2e1ckwp4ztkl6ur4hjvr"); // ((((&ps_xb)->ptr >= (&ps_xb)->eptr) ? agxbmore(&ps_xb,1) : 0), (int)(*(&ps_xb)->ptr++ = ((unsigned char)'\0'))); /* terminate previous */ +UNSUPPORTED("czp2gx1ewvuil58eqg7muqbp3"); // parse[fun++] = ((char*)((&ps_xb)->ptr)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ex1k1y0wj1bw5fju2ynw8wztq"); // agxbput(&ps_xb, (((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf))); +UNSUPPORTED("8rvrgugqqjus18zwf0flkmyg5"); // ((((&ps_xb)->ptr >= (&ps_xb)->eptr) ? agxbmore(&ps_xb,1) : 0), (int)(*(&ps_xb)->ptr++ = ((unsigned char)'\0'))); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("eh4399dy51qz9v5k46j7u7f0b"); // if (in_parens) { +UNSUPPORTED("a9afc2y8uauucn25hpjrq0oxx"); // agerr(AGERR, "unmatched '(' in style: %s\n", s); +UNSUPPORTED("dtv4q4ijbxgbp2d77nklhf35w"); // parse[0] = (char *) 0; +UNSUPPORTED("52frst03mcbsuu6bmnqs962qm"); // agxbfree(&xb); +UNSUPPORTED("415n1ugoxgttbkl3ewfv6oqts"); // return parse; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ajac1de3cpgvymee2hqm7cqi2"); // parse[fun] = (char *) 0; +UNSUPPORTED("1at5m9ctjn3ukv5gqtfswik02"); // agxbfree(&xb); +UNSUPPORTED("9tjoh4elqwg3obcqij1u484gf"); // (void)(((((&ps_xb)->ptr >= (&ps_xb)->eptr) ? agxbmore(&ps_xb,1) : 0), (int)(*(&ps_xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&ps_xb)->ptr = (&ps_xb)->buf)); /* adds final '\0' to buffer */ +UNSUPPORTED("be22l01ejxdw3x933qiz2eaon"); // return parse; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ck3omsgy3q0zlazix8r2dmufz +// static boxf bezier_bb(bezier bz) +public static Object bezier_bb(Object... arg) { +UNSUPPORTED("4x8to7ipsnszk7hvp8b6us95m"); // static boxf bezier_bb(bezier bz) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("b4p0empvxghe2amctuezw2fj3"); // pointf p, p1, p2; +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("du76etbklizf0ujj6epooc4u3"); // assert(bz.size > 0); +UNSUPPORTED("ch7u0adkg05jhr4w0rc7h1fhk"); // assert(bz.size % 3 == 1); +UNSUPPORTED("1ecqftepbszmmeix7g8yerzho"); // bb.LL = bb.UR = bz.list[0]; +UNSUPPORTED("67q9vbylk5li7nl6u0g87ew09"); // for (i = 1; i < bz.size;) { +UNSUPPORTED("6lezptnqjziit71m8utngn9ec"); // /* take mid-point between two control points for bb calculation */ +UNSUPPORTED("bcrmrqurd18pu7bb549lkj2zm"); // p1=bz.list[i]; +UNSUPPORTED("chd2f5z6rt19lbaye25ej7q6j"); // i++; +UNSUPPORTED("f1w8uf97bnvwem92r7cka4vh2"); // p2=bz.list[i]; +UNSUPPORTED("chd2f5z6rt19lbaye25ej7q6j"); // i++; +UNSUPPORTED("djwxlpeud1dn44xcrj6ndqzur"); // p.x = ( p1.x + p2.x ) / 2; +UNSUPPORTED("626yu2abpm7sgxs2a6ojagloa"); // p.y = ( p1.y + p2.y ) / 2; +UNSUPPORTED("a7j5rlajnoe7gj2d4vp29dlq3"); // EXPANDBP(bb,p); +UNSUPPORTED("bg1txe7hn8ps3rf82tirvfik0"); // p=bz.list[i]; +UNSUPPORTED("a7j5rlajnoe7gj2d4vp29dlq3"); // EXPANDBP(bb,p); +UNSUPPORTED("chd2f5z6rt19lbaye25ej7q6j"); // i++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5v5hh30squmit8o2i5hs25eig"); // return bb; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 mmp96ytye8ub6txmw93m4vel +// static void init_splines_bb(splines *spl) +public static Object init_splines_bb(Object... arg) { +UNSUPPORTED("c3y3jo1ro3rw4jxe8wllr42wd"); // static void init_splines_bb(splines *spl) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("37thdceezsvepe7tlyfatrbcw"); // bezier bz; +UNSUPPORTED("dljqqka7giae8b01dcwrse8yc"); // boxf bb, b; +UNSUPPORTED("e0qqavuetiwg28hno3n4emxw0"); // assert(spl->size > 0); +UNSUPPORTED("2hacb9fdt2n4mkiveluxkiu2e"); // bz = spl->list[0]; +UNSUPPORTED("3dpg7yydfzt8n9mt7n873m4bx"); // bb = bezier_bb(bz); +UNSUPPORTED("4z4l1zu33m72iirxmuhdg36iw"); // for (i = 0; i < spl->size; i++) { +UNSUPPORTED("1e2qc8e42f9ohrllk7q5kbqh9"); // if (i > 0) { +UNSUPPORTED("75bvkqcdmtm8cgnu9vvehmsjq"); // bz = spl->list[i]; +UNSUPPORTED("7r4akm44y65pzpvui9670oihh"); // b = bezier_bb(bz); +UNSUPPORTED("3vlk6ne4cz4fhhm5a6o0buaiy"); // EXPANDBB(bb, b); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("5uvyqkv0zlq1pvknbc0xbocwu"); // if (bz.sflag) { +UNSUPPORTED("8ee2v0q9etbnezmd0792omuyg"); // b = arrow_bb(bz.sp, bz.list[0], 1, bz.sflag); +UNSUPPORTED("3vlk6ne4cz4fhhm5a6o0buaiy"); // EXPANDBB(bb, b); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("d2m398qqli1zbrdk57sgrhwjf"); // if (bz.eflag) { +UNSUPPORTED("w3y4iuwxuffqu27zjsr7v6zs"); // b = arrow_bb(bz.ep, bz.list[bz.size - 1], 1, bz.eflag); +UNSUPPORTED("3vlk6ne4cz4fhhm5a6o0buaiy"); // EXPANDBB(bb, b); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2mlym7h1a7wx8a5v8uwfgt2ve"); // spl->bb = bb; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 56w9yqsde88lk1salsdo9zhek +// static void init_bb_edge(edge_t *e) +public static Object init_bb_edge(Object... arg) { +UNSUPPORTED("czoe4mrvfnlkgkf9dd5gswdun"); // static void init_bb_edge(edge_t *e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6tl9mepc2bett364jduh2q4mf"); // splines *spl; +UNSUPPORTED("2c3cg84bl0xam4mk6g5f31jj0"); // spl = ED_spl(e); +UNSUPPORTED("cnmg8m65mfhsyyzyck7jhyf0v"); // if (spl) +UNSUPPORTED("5vuo8sxknwrhunmoccygtuuvr"); // init_splines_bb(spl); +UNSUPPORTED("2o9ao5unxwbngk1qd0p8whpeg"); // // lp = ED_label(e); +UNSUPPORTED("9g4o5rsb2iu810alwb470phyr"); // // if (lp) +UNSUPPORTED("3h79hsuz9ndp04mum4ile2v9k"); // // {} +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ciznhkb6ca1q6pevo943ekme0 +// static void init_bb_node(graph_t *g, node_t *n) +public static Object init_bb_node(Object... arg) { +UNSUPPORTED("9eic9chg3e24i3qt1eqh1kglr"); // static void init_bb_node(graph_t *g, node_t *n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("a20p0a7nmewnhy041mtj2osk3"); // ND_bb(n).LL.x = ND_coord(n).x - ND_lw(n); +UNSUPPORTED("c2n18y1ykeeclakw3paasxuvw"); // ND_bb(n).LL.y = ND_coord(n).y - ND_ht(n) / 2.; +UNSUPPORTED("cd1j2q3oehrg8vdh5mc2y15n3"); // ND_bb(n).UR.x = ND_coord(n).x + ND_rw(n); +UNSUPPORTED("dtlwzpd98hya2ssejmz7kfy75"); // ND_bb(n).UR.y = ND_coord(n).y + ND_ht(n) / 2.; +UNSUPPORTED("azojsmj2w5kkwset562797bbz"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) +UNSUPPORTED("7ubpqzgmjcyyknlapquyjzh46"); // init_bb_edge(e); +UNSUPPORTED("a9q4nnyheflcgogy9pvb7zhe9"); // /* IDEA - could also save in the node the bb of the node and +UNSUPPORTED("ap39xkzymz5jtyyjrlh4oh7jz"); // all of its outedges, then the scan time would be proportional +UNSUPPORTED("p6lfyicqm841ng07jzfz6erf"); // to just the number of nodes for many graphs. +UNSUPPORTED("7is89igk57j6xxcbdvbmswq98"); // Wouldn't work so well if the edges are sprawling all over the place +UNSUPPORTED("2x1b3m9zalxzp45ojidztaq43"); // because then the boxes would overlap a lot and require more tests, +UNSUPPORTED("18qw5xpzps91vgn0jsv7bjzi0"); // but perhaps that wouldn't add much to the cost before trying individual +UNSUPPORTED("43p4cwx9g5a9grh509zne19l"); // nodes and edges. */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 rpxf4np5e0zbdxhp8wqxwjru +// static void init_bb(graph_t *g) +public static Object init_bb(Object... arg) { +UNSUPPORTED("4c9b9a1jd95zvo8rew7l4rdw2"); // static void init_bb(graph_t *g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("85uc0svzwbkhdrn713tjitqh5"); // init_bb_node(g, n); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 5cwzfc0p4amr0ryx8p6dllo42 +// extern gvevent_key_binding_t gvevent_key_binding[] + + +//1 d1twtwndjbh6p8fkxukwz6gh8 +// extern int gvevent_key_binding_size + + +//1 7w0woib3eaxzhaeksz12t3814 +// extern gvdevice_callbacks_t gvdevice_callbacks + + + + +//3 31vgctm6ydke1b6e0s06x85og +// void gv_fixLocale (int set) +public static void gv_fixLocale(int set) { +ENTERING("31vgctm6ydke1b6e0s06x85og","gv_fixLocale"); +try { + // System.out.println("SKIPPING gv_fixLocale"); +} finally { +LEAVING("31vgctm6ydke1b6e0s06x85og","gv_fixLocale"); +} +} + + + + +//3 9elgfx2mwaal8mp8yu4i8x55g +// int gvRenderJobs (GVC_t * gvc, graph_t * g) +public static Object gvRenderJobs(Object... arg) { +UNSUPPORTED("al6r85bl2757m64h0be99kb2v"); // int gvRenderJobs (GVC_t * gvc, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8hzx29jh0v2eh3jdrvrguy5mn"); // static GVJ_t *prevjob; +UNSUPPORTED("88ctjz58veqptrabz1ddnfvaf"); // GVJ_t *job, *firstjob; +UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose) +UNSUPPORTED("aaarjibm8djv3koq2y6u4m044"); // start_timer(); +UNSUPPORTED("c2dyme9nsswgb9qb96oh2m08s"); // if (!(agbindrec(g, "Agraphinfo_t", 0, NOT(0)) && GD_drawing(g))) { +UNSUPPORTED("aix30bpzzydybozpwmqe2bf25"); // agerr (AGERR, "Layout was not done. Missing layout plugins? \n"); +UNSUPPORTED("881fnyqz9k0o6nu5p5pf6n7ka"); // if (Verbose) fprintf(stderr,"gvRenderJobs %s: %.2f secs.\n", agnameof(g), elapsed_sec()); +UNSUPPORTED("f3a98gxettwtewduvje9y3524"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8tzaifmwoislyhju3smc3zukv"); // init_bb(g); +UNSUPPORTED("83mub13eiupttlu3d4j5lvj5p"); // init_gvc(gvc, g); +UNSUPPORTED("1qo78wc1zt5cptfpywfwemtjj"); // init_layering(gvc, g); +UNSUPPORTED("98b2uqnwq3rgamma244bsbrt1"); // gv_fixLocale (1); +UNSUPPORTED("52t975anlz3qwnjcfxc5ok1at"); // for (job = gvjobs_first(gvc); job; job = gvjobs_next(gvc)) { +UNSUPPORTED("6hzx763hhvpbtsvjf8aud3axf"); // if (gvc->gvg) { +UNSUPPORTED("ckzfglt7a4q9ca1ek9xm04vf5"); // job->input_filename = gvc->gvg->input_filename; +UNSUPPORTED("5gsifqa9895ltjbs6fiwkoqup"); // job->graph_index = gvc->gvg->graph_index; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("bv62u1zxiszyu0z7y97u4p0sq"); // job->input_filename = NULL; +UNSUPPORTED("84w8f8lfynhieu4ce6k6q0f7o"); // job->graph_index = 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("752jskfqikhifji0h9luxjt5p"); // job->common = &(gvc->common); +UNSUPPORTED("2k3vzw6p3k1ruqmf5ckjkq8ss"); // job->layout_type = gvc->layout.type; +UNSUPPORTED("5j4wuo1sqs572ms6xud4w1vnj"); // job->keybindings = gvevent_key_binding; +UNSUPPORTED("3ev58alw9vec8e3ekuvfalsiw"); // job->numkeys = gvevent_key_binding_size; +UNSUPPORTED("5e56auki36a9c8a9jxaig2dtn"); // if (!GD_drawing(g)) { +UNSUPPORTED("7p3ojgx61zomxbqv96sv65491"); // agerr (AGERR, "layout was not done\n"); +UNSUPPORTED("1li5h7sm29md39a6rbj983auz"); // gv_fixLocale (0); +UNSUPPORTED("1i6w37q3xx7w76ft9lu49wl53"); // if (Verbose) fprintf(stderr,"gvRenderJobs %s: %.2f secs.\n", agnameof(g), elapsed_sec()); +UNSUPPORTED("aivfd7ajlfz8o8oi68d4u5s5z"); // return -1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("xa3la9zayp2j503lislwf8bw"); // job->output_lang = gvrender_select(job, job->output_langname); +UNSUPPORTED("8mhtshj21zmdehr49crz92ubk"); // if (job->output_lang == 999) { +UNSUPPORTED("74iiov8kfwdwwftrvbuhx0uar"); // agerr (AGERR, "renderer for %s is unavailable\n", job->output_langname); +UNSUPPORTED("1li5h7sm29md39a6rbj983auz"); // gv_fixLocale (0); +UNSUPPORTED("1i6w37q3xx7w76ft9lu49wl53"); // if (Verbose) fprintf(stderr,"gvRenderJobs %s: %.2f secs.\n", agnameof(g), elapsed_sec()); +UNSUPPORTED("62ko03w39aomt1h9y758mag0k"); // return -1; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("ampzlf94vv6frsr0uc6d017f6"); // switch (job->output_lang) { +UNSUPPORTED("14mysa63mq9rkffdt98zlyxsl"); // case 21: +UNSUPPORTED("apkae0nhyzfihcum8kdea13xc"); // /* output sorted, i.e. all nodes then all edges */ +UNSUPPORTED("ci29ynt7cueaf8jqpqstm7gm7"); // job->flags |= (1<<0); +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("ph1r5pdbnaj90pytg37mdsoy"); // case 24: +UNSUPPORTED("70rmrtuyb914znb7mrak6xhuk"); // /* output in preorder traversal of the graph */ +UNSUPPORTED("cc3065soln8us3k43ovq935gw"); // job->flags |= (1<<3) +UNSUPPORTED("c5oeo2n9siifh7xp8im8oy9i6"); // | (1<<9); +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("p0mt8wznalavjdm44ot4ykl7"); // default: +UNSUPPORTED("d8cu5xolc31bwzqz3dmt12i74"); // job->flags |= chkOrder(g); +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("3yuatt6c28xj5dvgsxflopn9c"); // /* if we already have an active job list and the device doesn't support mutiple output files, or we are about to write to a different output device */ +UNSUPPORTED("b6or2ku9xlp5adhzyfj6ggg74"); // firstjob = gvc->active_jobs; +UNSUPPORTED("kkqmd3s54yqyxuy9ujfd6bp8"); // if (firstjob) { +UNSUPPORTED("bkayjk7mhfk0z1prvegopn9f2"); // if (! (firstjob->flags & (1<<5)) +UNSUPPORTED("7rq6o3m7v5g2jxfc61r9529oz"); // || (strcmp(job->output_langname,firstjob->output_langname))) { +UNSUPPORTED("9ciig60i0ebtgpx2rjem515x2"); // gvrender_end_job(firstjob); +UNSUPPORTED("6qee6pctu0pao210s569zuhhx"); // gvc->active_jobs = NULL; /* clear active list */ +UNSUPPORTED("6rrb76y5gxl4tyyy39ju8vsqh"); // gvc->common.viewNum = 0; +UNSUPPORTED("237aavazed82p3dahdkyqne7v"); // prevjob = NULL; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("3jir07ymknf0hmb9pv9x4dr3o"); // else { +UNSUPPORTED("21ah75bxrqgvsk8az3ejvz9xm"); // prevjob = NULL; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("eq1quwlwab222bf12rqzylabz"); // if (prevjob) { +UNSUPPORTED("7lbeby5mwfpebpi6oat7oziry"); // prevjob->next_active = job; /* insert job in active list */ +UNSUPPORTED("92fdsdu2rxr0mo9vqr7xw6ivn"); // job->output_file = prevjob->output_file; /* FIXME - this is dumb ! */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("a3ph0rnir8dxbkuydjfk32hyf"); // if (gvrender_begin_job(job)) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("dhzmccdky20j8px8fj86coz1s"); // gvc->active_jobs = job; /* first job of new list */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ec054g5x4n09tjvekoarr5lj2"); // job->next_active = NULL; /* terminate active list */ +UNSUPPORTED("a3g0lqkbu5x3tp31mzdb9z1a1"); // job->callbacks = &gvdevice_callbacks; +UNSUPPORTED("91r9tszzf49cistgb3dx6c5cv"); // init_job_pad(job); +UNSUPPORTED("1b3piu56i8aqmewokmp76n4ov"); // init_job_margin(job); +UNSUPPORTED("c30lbf0gqt0nfgjngfkbrkh1u"); // init_job_dpi(job, g); +UNSUPPORTED("6719w8ckdbr5o57x6eoomwwqf"); // init_job_viewport(job, g); +UNSUPPORTED("12oknjh0if0kwauc10p58ooj6"); // init_job_pagination(job, g); +UNSUPPORTED("dhiros11nue53w4sfjg764f66"); // if (! (job->flags & (1<<7))) { +UNSUPPORTED("au82zdbwbf11c4dhp3j9goiuj"); // emit_graph(job, g); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7wrg45h3f9gl77k72io059dov"); // /* the last job, after all input graphs are processed, +UNSUPPORTED("b2u8zjdvgah99yawh4ppdgfxk"); // * is finalized from gvFinalize() +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("9g4mahhmb798zgagmhs69g7o5"); // prevjob = job; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bkwnwkliqxeb0zv9leq3mcdrx"); // gv_fixLocale (0); +UNSUPPORTED("et6g7m7r8rj6f8qhvpz93lqxs"); // if (Verbose) fprintf(stderr,"gvRenderJobs %s: %.2f secs.\n", agnameof(g), elapsed_sec()); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a3vxhyyu69l0qyuv5lmbs3mhh +// boolean findStopColor (char* colorlist, char* clrs[2], float* frac) +public static Object findStopColor(Object... arg) { +UNSUPPORTED("4an2je0tp9mryy4qaly9pg51w"); // boolean findStopColor (char* colorlist, char* clrs[2], float* frac) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8z3a2qjysx0m326m5qjy91tnu"); // colorsegs_t* segs; +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("5h68n5d5dxbzm77fsc9jacogv"); // rv = parseSegs (colorlist, 0, &segs); +UNSUPPORTED("dtjj3ng1i6w3ypa53dix5k2bp"); // if (rv || (segs->numc < 2) || (segs->segs[0].color == NULL)) { +UNSUPPORTED("1xf5m2okbj7owt77vc19vmf8r"); // clrs[0] = NULL; +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2y5g21fon514qpa8eaqvqil0b"); // if (segs->numc > 2) +UNSUPPORTED("8r2xfo7zhrx0y02i0g0nmmb8v"); // agerr (AGWARN, "More than 2 colors specified for a gradient - ignoring remaining\n"); +UNSUPPORTED("9qa66u5mlsn5qyltb3mz8tv6x"); // clrs[0] = (char*)gmalloc((strlen(colorlist)+1)*sizeof(char)); +UNSUPPORTED("6wkfmz13gix78yhxfl4wu387t"); // strcpy (clrs[0], segs->segs[0].color); +UNSUPPORTED("346qdfuvl40mzq9b0c1jmxrph"); // if (segs->segs[1].color) { +UNSUPPORTED("17tzhs6hjalzhgf9x6bjt9a21"); // clrs[1] = clrs[0] + (strlen(clrs[0])+1); +UNSUPPORTED("78iakjpvgfjfvohpfjme8wm3p"); // strcpy (clrs[1], segs->segs[1].color); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("8adbeboqco76ee1xfw2yotsrc"); // clrs[1] = NULL; +UNSUPPORTED("6srhlc05d53hy25ewfxz9k5zg"); // if (segs->segs[0].hasFraction) +UNSUPPORTED("6b4phzvf6fhvg9dib574qa5zl"); // *frac = segs->segs[0].t; +UNSUPPORTED("95s3rw3vuxb43fouesg4994w9"); // else if (segs->segs[1].hasFraction) +UNSUPPORTED("9vkv3aohcusc7x3qflm8ode9m"); // *frac = 1 - segs->segs[1].t; +UNSUPPORTED("4lti1w2qslxj3ihoatmbavsfr"); // else +UNSUPPORTED("dgf6ly3jfdezgto7fetu7v2nj"); // *frac = 0; +UNSUPPORTED("dwbftn5fib1yir7gshhy14cup"); // freeSegs (segs); +UNSUPPORTED("8fwlqtemsmckleh6946lyd8mw"); // return NOT(0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/geom__c.java plantuml-8039/src/gen/lib/common/geom__c.java --- plantuml-8024/src/gen/lib/common/geom__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/geom__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,932 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class geom__c { + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 an3osr8wbab08w759hwbbqhm9 +// box mkbox(point p, point q) +public static Object mkbox(Object... arg) { +UNSUPPORTED("ehmvylmllzguxcdpk8dz6hwdr"); // box mkbox(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dmq8mehh6aeppnudj702vldy4"); // box r; +UNSUPPORTED("56irj1ii7mntnpbge097ptnng"); // if (p.x < q.x) { +UNSUPPORTED("b8tp7wn90qjwecr4yhm0dif1i"); // r.LL.x = p.x; +UNSUPPORTED("2tgz3b5tfwtlyh39flhnyaipw"); // r.UR.x = q.x; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("6jbrv8d8fjois445uwa6y61uz"); // r.LL.x = q.x; +UNSUPPORTED("crijm4pj4imiocb7jzikn2xj5"); // r.UR.x = p.x; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("92wx79b4ryvutf9j0365jonq"); // if (p.y < q.y) { +UNSUPPORTED("9oisw44o8np9dsov1namsahq2"); // r.LL.y = p.y; +UNSUPPORTED("dq93klswmrh70fos28v81um3n"); // r.UR.y = q.y; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("aveby33ojiwj4tjoar3jn215s"); // r.LL.y = q.y; +UNSUPPORTED("4sjpslco78l4c28t6hrci8g8v"); // r.UR.y = p.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2c7s1wgyibdpn3cqrdci4mqwj +// boxf mkboxf(pointf p, pointf q) +public static Object mkboxf(Object... arg) { +UNSUPPORTED("6axbrwdhhyfo8coxq5s27j6ph"); // boxf mkboxf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c8ehlu3p9fgdawb34kesn3k9m"); // boxf r; +UNSUPPORTED("56irj1ii7mntnpbge097ptnng"); // if (p.x < q.x) { +UNSUPPORTED("b8tp7wn90qjwecr4yhm0dif1i"); // r.LL.x = p.x; +UNSUPPORTED("2tgz3b5tfwtlyh39flhnyaipw"); // r.UR.x = q.x; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("6jbrv8d8fjois445uwa6y61uz"); // r.LL.x = q.x; +UNSUPPORTED("crijm4pj4imiocb7jzikn2xj5"); // r.UR.x = p.x; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("92wx79b4ryvutf9j0365jonq"); // if (p.y < q.y) { +UNSUPPORTED("9oisw44o8np9dsov1namsahq2"); // r.LL.y = p.y; +UNSUPPORTED("dq93klswmrh70fos28v81um3n"); // r.UR.y = q.y; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("aveby33ojiwj4tjoar3jn215s"); // r.LL.y = q.y; +UNSUPPORTED("4sjpslco78l4c28t6hrci8g8v"); // r.UR.y = p.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 29pnbvw6n2yoezie6xudgnrrc +// int lineToBox(pointf p, pointf q, boxf b) +public static Object lineToBox(Object... arg) { +UNSUPPORTED("4yjnf6y95sbc4ugjerul6vk9m"); // int lineToBox(pointf p, pointf q, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("48cwacl32769puml63lq5tx4b"); // int inside1, inside2; +UNSUPPORTED("9gsgfs2guis9c3c3oi57mxpq2"); // /* +UNSUPPORTED("b5pw9v7zbg2sz0vvg6onzk3hw"); // * First check the two points individually to see whether they +UNSUPPORTED("caais2dj0scdtrf20ixk47dfa"); // * are inside the rectangle or not. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("cq0b826r85o6zz8ne0szl8yyk"); // inside1 = (p.x >= b.LL.x) && (p.x <= b.UR.x) +UNSUPPORTED("1gflq8j7hbpz9170ekhci7yn8"); // && (p.y >= b.LL.y) && (p.y <= b.UR.y); +UNSUPPORTED("bhzozbp5l936vg1gyqwuk4dx6"); // inside2 = (q.x >= b.LL.x) && (q.x <= b.UR.x) +UNSUPPORTED("ct5vd0ytj5rjcrp2gpt8pkonc"); // && (q.y >= b.LL.y) && (q.y <= b.UR.y); +UNSUPPORTED("ehkoqnyo9hihgs7jeo4qoysve"); // if (inside1 != inside2) { +UNSUPPORTED("egywkvzo2t847qnathqnanvcj"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bmhand7n0jwpq7eue899h1p1f"); // if (inside1 & inside2) { +UNSUPPORTED("3ywpya2w1bf4n909xcgre9wyy"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9gsgfs2guis9c3c3oi57mxpq2"); // /* +UNSUPPORTED("4nkuw4roujcsqvbd2p9xdxitb"); // * Both points are outside the rectangle, but still need to check +UNSUPPORTED("aminyyg03u6tufsuefljc9ckh"); // * for intersections between the line and the rectangle. Horizontal +UNSUPPORTED("6l0cqsf2f98o3thcqrs8isnnk"); // * and vertical lines are particularly easy, so handle them +UNSUPPORTED("7q484vtovilvh9k2g9clt86ne"); // * separately. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("2hgj2jk4zufho793ru5xo96qn"); // if (p.x == q.x) { +UNSUPPORTED("ap75hs54mf8uwlaksz3dq3q89"); // /* +UNSUPPORTED("aw25rbwlb76hcmi7i0a4hkroq"); // * Vertical line. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("5x1j3sw3kiwvrlq7iovu7p1zg"); // if (((p.y >= b.LL.y) ^ (q.y >= b.LL.y)) +UNSUPPORTED("8z5rdz2i2k4vnxh41xau7lqox"); // && (p.x >= b.LL.x) +UNSUPPORTED("8sa26clzml2fktszuyohhq96s"); // && (p.x <= b.UR.x)) { +UNSUPPORTED("7opo20y2y6rg5i89ocvk6qi3c"); // return 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("aypua15gtzlgyfgij2zgi2fy3"); // } else if (p.y == q.y) { +UNSUPPORTED("ap75hs54mf8uwlaksz3dq3q89"); // /* +UNSUPPORTED("cuvbkbznqopg3ock0vwua52e"); // * Horizontal line. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("cr98tmonigesw5kgv445eaagx"); // if (((p.x >= b.LL.x) ^ (q.x >= b.LL.x)) +UNSUPPORTED("7moqrnwj9gzn15xyb4n1h71nz"); // && (p.y >= b.LL.y) +UNSUPPORTED("adozfrtcv9rz4ut26t65aqjmp"); // && (p.y <= b.UR.y)) { +UNSUPPORTED("7opo20y2y6rg5i89ocvk6qi3c"); // return 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("3dx5qy44ca9k65rrlunknc4jr"); // double m, x, y, low, high; +UNSUPPORTED("ap75hs54mf8uwlaksz3dq3q89"); // /* +UNSUPPORTED("17rosazxzae3vpa7evezmoc18"); // * Diagonal line. Compute slope of line and use +UNSUPPORTED("38f61i9iz6jnzq3tqj3l15io"); // * for intersection checks against each of the +UNSUPPORTED("24s7erxhfmz9equ6bz65nd452"); // * sides of the rectangle: left, right, bottom, top. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("30gqvlvlxk2fyms9obiav5eld"); // m = (q.y - p.y)/(q.x - p.x); +UNSUPPORTED("bydrxw4l4bbi1q3tpzpouyb05"); // if (p.x < q.x) { +UNSUPPORTED("3vk3thjtlk0eg13l7tpn464hf"); // low = p.x; high = q.x; +UNSUPPORTED("7g575y36b78djy0o00izqx7eq"); // } else { +UNSUPPORTED("9kxzbc22yz2m5undmp2d8iv7i"); // low = q.x; high = p.x; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("ap75hs54mf8uwlaksz3dq3q89"); // /* +UNSUPPORTED("8iz5exp7hmnagqdgln48v9h3c"); // * Left edge. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("1kvmnzix9327sc1lr8oldfwfa"); // y = p.y + (b.LL.x - p.x)*m; +UNSUPPORTED("6mt68el60h3098f84p9qof9cp"); // if ((b.LL.x >= low) && (b.LL.x <= high) +UNSUPPORTED("7fuiowax7i86a2628diixw0kg"); // && (y >= b.LL.y) && (y <= b.UR.y)) { +UNSUPPORTED("7opo20y2y6rg5i89ocvk6qi3c"); // return 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("ap75hs54mf8uwlaksz3dq3q89"); // /* +UNSUPPORTED("cqsjfoaczly4orr3aoyk6a3kn"); // * Right edge. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("8ix32dk9v0hahcbsbusuf1rvs"); // y += (b.UR.x - b.LL.x)*m; +UNSUPPORTED("brui2iilj0qz4n9w80cckznor"); // if ((y >= b.LL.y) && (y <= b.UR.y) +UNSUPPORTED("9lghx6zht8yyj8oo7vd3urxb0"); // && (b.UR.x >= low) && (b.UR.x <= high)) { +UNSUPPORTED("7opo20y2y6rg5i89ocvk6qi3c"); // return 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("ap75hs54mf8uwlaksz3dq3q89"); // /* +UNSUPPORTED("9k6j1wl5s3bvhlivy6qc3xt6b"); // * Bottom edge. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("32eo9bh3jk75sopl737la1xiu"); // if (p.y < q.y) { +UNSUPPORTED("dpom6twg5z6ngi160zl4sbdfy"); // low = p.y; high = q.y; +UNSUPPORTED("7g575y36b78djy0o00izqx7eq"); // } else { +UNSUPPORTED("9n0a69t2iof5xbu1u5knw8v5e"); // low = q.y; high = p.y; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("balzrwlwsv6rnon3m0ey2ftly"); // x = p.x + (b.LL.y - p.y)/m; +UNSUPPORTED("d93289lj2vrieguknwyq7vizz"); // if ((x >= b.LL.x) && (x <= b.UR.x) +UNSUPPORTED("2pou8in6puryywhwltwlqmbvw"); // && (b.LL.y >= low) && (b.LL.y <= high)) { +UNSUPPORTED("7opo20y2y6rg5i89ocvk6qi3c"); // return 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("ap75hs54mf8uwlaksz3dq3q89"); // /* +UNSUPPORTED("95agizrp9b5p1dhdv0pxg6eh7"); // * Top edge. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("725knfzo8czrv30p686pkacn"); // x += (b.UR.y - b.LL.y)/m; +UNSUPPORTED("d93289lj2vrieguknwyq7vizz"); // if ((x >= b.LL.x) && (x <= b.UR.x) +UNSUPPORTED("6olkmrl6prxmetzy935itn4zw"); // && (b.UR.y >= low) && (b.UR.y <= high)) { +UNSUPPORTED("7opo20y2y6rg5i89ocvk6qi3c"); // return 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8azkpi8o0wzdufa90lw8hpt6q"); // return -1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1r7uvomrrc3o0z8d9ompm1ig4 +// void rect2poly(pointf *p) +public static Object rect2poly(Object... arg) { +UNSUPPORTED("4upujvzyed550abavjj8vlza1"); // void rect2poly(pointf *p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("jjuy9fch36k2y85yrqsb31r0"); // p[3].x = p[2].x = p[1].x; +UNSUPPORTED("9meelngzsr1xhvzldh1ry9iww"); // p[2].y = p[1].y; +UNSUPPORTED("adltawlh6me0hjx77x5jo35mr"); // p[3].y = p[0].y; +UNSUPPORTED("3ben3eqfn8zv3650vloyu3dk"); // p[1].x = p[0].x; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3aiyj7urv33rvps5ds204tciu +// static pointf rotatepf(pointf p, int cwrot) +public static __struct__ rotatepf(final __struct__ p, int cwrot) { +// WARNING!! STRUCT +return rotatepf_w_(p.copy(), cwrot).copy(); +} +private static __struct__ rotatepf_w_(final __struct__ p, int cwrot) { +ENTERING("3aiyj7urv33rvps5ds204tciu","rotatepf"); +try { + UNSUPPORTED("adzi0wztceimu4ni3aonznmq7"); // static pointf rotatepf(pointf p, int cwrot) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bvmbf4zjo22hbkaarrfpdlocf"); // static double sina, cosa; +UNSUPPORTED("2q61ok3mvkrnszcasq86sa47u"); // static int last_cwrot; +UNSUPPORTED("7lh87lvufqsd73q9difg0omei"); // pointf P; +UNSUPPORTED("apr20mshcgdjbln509cnpuysv"); // /* cosa is initially wrong for a cwrot of 0 +UNSUPPORTED("7chgrmqliof6d9xytud69tz1u"); // * this caching only works because we are never called for 0 rotations */ +UNSUPPORTED("bbm4jlwljjo7wmvr5ma5c3ybf"); // if (cwrot != last_cwrot) { +UNSUPPORTED("djdw08yi87cxa9gld79itcxte"); // sincos(cwrot / (2 * M_PI), &sina, &cosa); +UNSUPPORTED("1p92a46pieij11gut3g3w5c8a"); // last_cwrot = cwrot; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5ebfpnhj3mdplyf7cdm05fvqt"); // P.x = p.x * cosa - p.y * sina; +UNSUPPORTED("87v4w9w5q8h1qv8g0mktgna71"); // P.y = p.y * cosa + p.x * sina; +UNSUPPORTED("57gdhsck3pq8wsbtv00wvc7ca"); // return P; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("3aiyj7urv33rvps5ds204tciu","rotatepf"); +} +} + + + + +//3 tytryqs1gqpghjdmwwvf1klb +// static point rotatep(point p, int cwrot) +public static Object rotatep(Object... arg) { +UNSUPPORTED("5e2i6bk41qflr7y85q1osu5ts"); // static point rotatep(point p, int cwrot) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("14au2rwic77e6h8riridc0ukd"); // pointf pf; +UNSUPPORTED("5ec0bowt1l7dbrl26kdbij7m1"); // P2PF(p, pf); +UNSUPPORTED("37ova7qixpohr8qiao9sckb10"); // pf = rotatepf(pf, cwrot); +UNSUPPORTED("4z58o606xwke1d8wfsxob59px"); // PF2P(pf, p); +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 66bs8dyk14129mi4jhjnm40yf +// point cwrotatep(point p, int cwrot) +public static Object cwrotatep(Object... arg) { +UNSUPPORTED("bjpc8zmw5o75ij41axaonr91n"); // point cwrotatep(point p, int cwrot) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("do61zekb7jneykkag5k2ihoru"); // int x = p.x, y = p.y; +UNSUPPORTED("2dtbcjay37z9xis3sikr2uqvd"); // switch (cwrot) { +UNSUPPORTED("70xjc0sbkjvexfar5luzibcgf"); // case 0: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1q74ra1plwbzbg77dmxva7rl5"); // case 90: +UNSUPPORTED("volj3587rzrhhe2x9l5tcqoe"); // p.x = y; +UNSUPPORTED("duim642efpe7clezuqpyzpw5y"); // p.y = -x; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("17fu4k5xy8d72f5mch8cg6aga"); // case 180: +UNSUPPORTED("20gmg6188e8c58dfpcwshs68q"); // p.x = x; +UNSUPPORTED("c7p7spy43wsvu86ax82p9jeni"); // p.y = -y; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("cltc0ksnwf3uugjgybaifa7r7"); // case 270: +UNSUPPORTED("volj3587rzrhhe2x9l5tcqoe"); // p.x = y; +UNSUPPORTED("enc0wozuspuqe0erlieadffeb"); // p.y = x; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("o9oafab685xqeq9zr7gudl0e"); // if (cwrot < 0) +UNSUPPORTED("aaqg3ryvg9knt1q47x4gwtt5x"); // return ccwrotatep(p, -cwrot); +UNSUPPORTED("1ehwxt44pkimc4wg1udnhmlw6"); // if (cwrot > 360) +UNSUPPORTED("aq1nthhp1dp65k4mktxyqz4bq"); // return cwrotatep(p, cwrot%360); +UNSUPPORTED("56r9i8o5t3hhzow2yhfx4zilm"); // return rotatep(p, cwrot); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5q8h2tm3jifiasn423wrm0y60 +// pointf cwrotatepf(pointf p, int cwrot) +public static __struct__ cwrotatepf(final __struct__ p, int cwrot) { +// WARNING!! STRUCT +return cwrotatepf_w_(p.copy(), cwrot).copy(); +} +private static __struct__ cwrotatepf_w_(final __struct__ p, int cwrot) { +ENTERING("5q8h2tm3jifiasn423wrm0y60","cwrotatepf"); +try { + double x = p.getDouble("x"), y = p.getDouble("y"); + switch (cwrot) { + case 0: + break; + case 90: + p.setDouble("x", y); + p.setDouble("y", -x); + break; + case 180: + p.setDouble("x", x); + p.setDouble("y", -y); + break; + case 270: + p.setDouble("x", y); + p.setDouble("y", x); + break; + default: + if (cwrot < 0) + return ccwrotatepf(p, -cwrot); + if (cwrot > 360) + return cwrotatepf(p, cwrot%360); + return rotatepf(p, cwrot); + } + return p; +} finally { +LEAVING("5q8h2tm3jifiasn423wrm0y60","cwrotatepf"); +} +} + + + + +//3 8v4jp36jzoo7itgk1f2139cvz +// point ccwrotatep(point p, int ccwrot) +public static Object ccwrotatep(Object... arg) { +UNSUPPORTED("4netvfi1o450fu9936ptrychj"); // point ccwrotatep(point p, int ccwrot) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("do61zekb7jneykkag5k2ihoru"); // int x = p.x, y = p.y; +UNSUPPORTED("9hd3h63ctysf7ploj23tblup2"); // switch (ccwrot) { +UNSUPPORTED("70xjc0sbkjvexfar5luzibcgf"); // case 0: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1q74ra1plwbzbg77dmxva7rl5"); // case 90: +UNSUPPORTED("avktqxvqjaqt2xlnq4ykbvlca"); // p.x = -y; +UNSUPPORTED("enc0wozuspuqe0erlieadffeb"); // p.y = x; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("17fu4k5xy8d72f5mch8cg6aga"); // case 180: +UNSUPPORTED("20gmg6188e8c58dfpcwshs68q"); // p.x = x; +UNSUPPORTED("c7p7spy43wsvu86ax82p9jeni"); // p.y = -y; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("cltc0ksnwf3uugjgybaifa7r7"); // case 270: +UNSUPPORTED("volj3587rzrhhe2x9l5tcqoe"); // p.x = y; +UNSUPPORTED("enc0wozuspuqe0erlieadffeb"); // p.y = x; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("225zfbgifuf05a2ndoo6eqxeu"); // if (ccwrot < 0) +UNSUPPORTED("bdxv7ie6ag4u5y8py9bg2v6s2"); // return cwrotatep(p, -ccwrot); +UNSUPPORTED("2po0nwnam6kgn9hmqm0ls262w"); // if (ccwrot > 360) +UNSUPPORTED("87ycp7fzgeye35jy3hylox5it"); // return ccwrotatep(p, ccwrot%360); +UNSUPPORTED("9umyw4cv019twbecwlsnwom3k"); // return rotatep(p, 360-ccwrot); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6np74e9pfmv8uek8irqru2tma +// pointf ccwrotatepf(pointf p, int ccwrot) +public static __struct__ ccwrotatepf(final __struct__ p, int ccwrot) { +// WARNING!! STRUCT +return ccwrotatepf_w_(p.copy(), ccwrot).copy(); +} +private static __struct__ ccwrotatepf_w_(final __struct__ p, int ccwrot) { +ENTERING("6np74e9pfmv8uek8irqru2tma","ccwrotatepf"); +try { + double x = p.getDouble("x"), y = p.getDouble("y"); + switch (ccwrot) { + case 0: + break; + case 90: + p.setDouble("x", -y); + p.setDouble("y", x); + break; + case 180: + p.setDouble("x", x); + p.setDouble("y", -y); + break; + case 270: + p.setDouble("x", y); + p.setDouble("y", x); + break; + default: + if (ccwrot < 0) + return cwrotatepf(p, -ccwrot); + if (ccwrot > 360) + return ccwrotatepf(p, ccwrot%360); + return rotatepf(p, 360-ccwrot); + } + return p; +} finally { +LEAVING("6np74e9pfmv8uek8irqru2tma","ccwrotatepf"); +} +} + + + + +//3 5vf3yrj3pdre7b1b7c8sq4vnr +// inline box flip_rec_box(box b, point p) +public static Object flip_rec_box(Object... arg) { +UNSUPPORTED("azqv2nylg3fv81xe2h7obme6h"); // inline box flip_rec_box(box b, point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dmq8mehh6aeppnudj702vldy4"); // box r; +UNSUPPORTED("byo3wh0htpthg3nhm3o3s8zw"); // /* flip box */ +UNSUPPORTED("d66qgllk8bjsehblbq26efncl"); // r.UR.x = b.UR.y; +UNSUPPORTED("cd003wygnwu6zjz9ybxkxzek4"); // r.UR.y = b.UR.x; +UNSUPPORTED("2ervqmsvgmknymzl5zimfcpf9"); // r.LL.x = b.LL.y; +UNSUPPORTED("671k71gzkmwyp06lvvfh3boi"); // r.LL.y = b.LL.x; +UNSUPPORTED("39nfxvqw1vl7uhpu80ul20w83"); // /* move box */ +UNSUPPORTED("ck4g4elw7icvjii70m8950473"); // r.LL.x += p.x; +UNSUPPORTED("dy93dfzolo2ajmmszxsj5ywgb"); // r.LL.y += p.y; +UNSUPPORTED("e5m7ftc0fuuqjs4x8ubrmrw2r"); // r.UR.x += p.x; +UNSUPPORTED("7jezgbyhc86h5l890v0f8i1l9"); // r.UR.y += p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 10berg5l071upv3r6ei5ri6h6 +// boxf flip_rec_boxf(boxf b, pointf p) +public static Object flip_rec_boxf(Object... arg) { +UNSUPPORTED("7lxs02hyh7jlorkakwwex7np1"); // boxf flip_rec_boxf(boxf b, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c8ehlu3p9fgdawb34kesn3k9m"); // boxf r; +UNSUPPORTED("byo3wh0htpthg3nhm3o3s8zw"); // /* flip box */ +UNSUPPORTED("d66qgllk8bjsehblbq26efncl"); // r.UR.x = b.UR.y; +UNSUPPORTED("cd003wygnwu6zjz9ybxkxzek4"); // r.UR.y = b.UR.x; +UNSUPPORTED("2ervqmsvgmknymzl5zimfcpf9"); // r.LL.x = b.LL.y; +UNSUPPORTED("671k71gzkmwyp06lvvfh3boi"); // r.LL.y = b.LL.x; +UNSUPPORTED("39nfxvqw1vl7uhpu80ul20w83"); // /* move box */ +UNSUPPORTED("ck4g4elw7icvjii70m8950473"); // r.LL.x += p.x; +UNSUPPORTED("dy93dfzolo2ajmmszxsj5ywgb"); // r.LL.y += p.y; +UNSUPPORTED("e5m7ftc0fuuqjs4x8ubrmrw2r"); // r.UR.x += p.x; +UNSUPPORTED("7jezgbyhc86h5l890v0f8i1l9"); // r.UR.y += p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 90k9l4o3khu3dw0fzkrcd97nk +// double ptToLine2 (pointf a, pointf b, pointf p) +public static double ptToLine2(final __struct__ a, final __struct__ b, final __struct__ p) { +// WARNING!! STRUCT +return ptToLine2_w_(a.copy(), b.copy(), p.copy()); +} +private static double ptToLine2_w_(final __struct__ a, final __struct__ b, final __struct__ p) { +ENTERING("90k9l4o3khu3dw0fzkrcd97nk","ptToLine2"); +try { + double dx = b.getDouble("x")-a.getDouble("x"); + double dy = b.getDouble("y")-a.getDouble("y"); + double a2 = (p.getDouble("y")-a.getDouble("y"))*dx - (p.getDouble("x")-a.getDouble("x"))*dy; + a2 *= a2; /* square - ensures that it is positive */ + if (a2 < 0.0000000001) return 0.; /* avoid 0/0 problems */ + return a2 / (dx*dx + dy*dy); +} finally { +LEAVING("90k9l4o3khu3dw0fzkrcd97nk","ptToLine2"); +} +} + + + + +//3 7a3ftw4ubky8oz0e6sd4diag1 +// int line_intersect (pointf a, pointf b, pointf c, pointf d, pointf* p) +public static Object line_intersect(Object... arg) { +UNSUPPORTED("4owj0m9g05vi1yxcownz0rtry"); // int line_intersect (pointf a, pointf b, pointf c, pointf d, pointf* p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5kh3p8pi4ouhb71qxt1wc19p4"); // pointf mv = sub_pointf(b,a); +UNSUPPORTED("4qjn6j13besul6kp2zbryihnw"); // pointf lv = sub_pointf(d,c); +UNSUPPORTED("cp5xvl6z479t3k1iqlafo0tu5"); // pointf ln = perp (lv); +UNSUPPORTED("e6xr6qn23vmjveolqf2by1ynk"); // double lc = -(ln.x*c.x+ln.y*c.y); +UNSUPPORTED("ez3o3rbsr12u6yt8icumd4ct"); // double dt = (ln.x*mv.x+ln.y*mv.y); +UNSUPPORTED("c13p9pc06v96fokdr0tm36rec"); // if (fabs(dt) < 0.0000000001) return 0; +UNSUPPORTED("4rkov8dzjqgoc0f65iwx9dri2"); // *p = sub_pointf(a,scale(((ln.x*a.x+ln.y*a.y)+lc)/dt,mv)); +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/globals__c.java plantuml-8039/src/gen/lib/common/globals__c.java --- plantuml-8024/src/gen/lib/common/globals__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/globals__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,719 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class globals__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 6pkjavryvebqjuyjhek60afqj +// char *Version + + +//1 4drdys7bskk2cueq8s6qb7eto +// char **Files + + +//1 bhrdya4stvrxa0l8963qovxmi +// const char **Lib + + +//1 2ezgd8wkwz8fmkkw0hk2otnrz +// char *CmdName + + +//1 2v6m6l2yo7eku550m6hxli8c8 +// char *specificFlags + + +//1 awq7ni0redh6rz6ilo4t4k62o +// char *specificItems + + +//1 exkqovmg52ql69m6vncixyigy +// char *Gvfilepath + + +//1 dd9opdcegfmq3rkixwdexs90k +// char *Gvimagepath + + +//1 7cg2iv16zd5h875ayx62km2vf +// unsigned char Verbose + + +//1 zcxetd7svxzv5nmz0ncwk8mh +// unsigned char Reduce + + +//1 bn4y6ft05azakvtq0c601ga3l +// int MemTest + + +//1 22gjkfacjcojc18xwmaunw76g +// char *HTTPServerEnVar + + +//1 c9ooecge1w0qqy63jfgdhge5s +// char *Output_file_name + + +//1 ao0n1aashx9im0j6hzrwzj55u +// int graphviz_errors + + +//1 46w1bc9d9npxs3g0jd2gx6s95 +// int Nop + + +//1 36kts2p3evdros7j9k3eclgxv +// double PSinputscale + + +//1 532bzsjuqoqami999ou2pmaq6 +// int Syntax_errors + + +//1 2x2um6qmkcz7gpyoqqj2l9jwy +// int Show_cnt + + +//1 5z30otnosd5pxd6uswlcrrzi2 +// char** Show_boxes +//public static __ptr__ Show_boxes; + +//1 7kh1b1hb8sgfejwe0xa7d1378 +// int CL_type +//public static int CL_type; +//1 7imn4w8fk3s1xiy6ye90w5yol +// unsigned char Concentrate +//public static boolean Concentrate; +//1 5414a549tjctlyvuevpkj5qt1 +// double Epsilon + + +//1 q89qhgiomoxa5boua8ek4cs2 +// int MaxIter +//public static int MaxIter; + +//1 d7xxwjqfremj8rr7hsmo79v9d +// int Ndim + + +//1 88g6dq0g60jxisg0dob75bk5k +// int State +//public static int State; +//1 ch9sqslzjrwv5b12wm84h970e +// int EdgeLabelsDone +//public static int EdgeLabelsDone; +//1 455ctbozyoirantjv5xayvljb +// double Initial_dist +//public static double Initial_dist; +//1 e4d9vb6lk7u18ctg6yzkpxag5 +// double Damping + + +//1 6335tgq6qxylgetmmpc2e9bbz +// int Y_invert + + +//1 9wywn3kzko1e5mbu5ck3fc5dn +// int GvExitOnUsage + + +//1 1cu961lsbh4pljvkidn8yp3h1 +// Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin +/*public static Agsym_s + G_activepencolor, G_activefillcolor, + G_selectedpencolor, G_selectedfillcolor, + G_visitedpencolor, G_visitedfillcolor, + G_deletedpencolor, G_deletedfillcolor, + G_ordering, G_peripheries, G_penwidth, + G_gradientangle, G_margin;*/ + +//1 2ee18foi20na4ktcw3ry70rm2 +// Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle +/*public static Agsym_s + N_height, N_width, N_shape, N_color, N_fillcolor, + N_activepencolor, N_activefillcolor, + N_selectedpencolor, N_selectedfillcolor, + N_visitedpencolor, N_visitedfillcolor, + N_deletedpencolor, N_deletedfillcolor, + N_fontsize, N_fontname, N_fontcolor, N_margin, + N_label, N_xlabel, N_nojustify, N_style, N_showboxes, + N_sides, N_peripheries, N_ordering, N_orientation, + N_skew, N_distortion, N_fixed, N_imagescale, N_layer, + N_group, N_comment, N_vertices, N_z, + N_penwidth, N_gradientangle;*/ + +//1 2f3mchregmkoy4vgf28lgzewb +// Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth +/*public static Agsym_s + E_weight, E_minlen, E_color, E_fillcolor, + E_activepencolor, E_activefillcolor, + E_selectedpencolor, E_selectedfillcolor, + E_visitedpencolor, E_visitedfillcolor, + E_deletedpencolor, E_deletedfillcolor, + E_fontsize, E_fontname, E_fontcolor, + E_label, E_xlabel, E_dir, E_style, E_decorate, + E_showboxes, E_arrowsz, E_constr, E_layer, + E_comment, E_label_float, + E_samehead, E_sametail, + E_arrowhead, E_arrowtail, + E_headlabel, E_taillabel, + E_labelfontsize, E_labelfontname, E_labelfontcolor, + E_labeldistance, E_labelangle, + E_tailclip, E_headclip, + E_penwidth;*/ + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 8prhbu9fgu6m5aoh8hf6aa1qs +// static fdpParms_t fdpParms = + + +} diff -Nru plantuml-8024/src/gen/lib/common/htmllex__c.java plantuml-8039/src/gen/lib/common/htmllex__c.java --- plantuml-8024/src/gen/lib/common/htmllex__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/htmllex__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,793 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class htmllex__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 dit6nudlsu8gsbu1nk0oaxmdv +// extern YYSTYPE htmllval + + +//1 ctaad2j8j92aany1c5u31r96g +// static lexstate_t state + + + + +//3 at9wtxmnn6uekh9z0bnvaelbv +// static void error_context(void) +public static Object error_context(Object... arg) { +UNSUPPORTED("cx5zza1ddvju8vmzhht03lza6"); // static void error_context(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5f4h574c1s5z49uhju6bmx5vr"); // ((void)((state.xb)->ptr = (state.xb)->buf)); +UNSUPPORTED("4wqtvj52mff2pw11q12rin4m0"); // if (state.prevtoklen > 0) +UNSUPPORTED("4u5n5k7lgxwe2dh9ovxpm23o8"); // agxbput_n(state.xb, state.prevtok, state.prevtoklen); +UNSUPPORTED("y8xx6fpf1j1yq8h7la9wbyp8"); // agxbput_n(state.xb, state.currtok, state.currtoklen); +UNSUPPORTED("5l8je00dlv54928zapcnt9jb0"); // agerr(AGPREV, "... %s ...\n", (((((state.xb)->ptr >= (state.xb)->eptr) ? agxbmore(state.xb,1) : 0), (int)(*(state.xb)->ptr++ = ((unsigned char)'\0'))),(char*)((state.xb)->ptr = (state.xb)->buf))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4vowas5s5v4g6e7b8astgvsjs +// void htmlerror(const char *msg) +public static Object htmlerror(Object... arg) { +UNSUPPORTED("als3jhirmetfoh7i5p2cbmutv"); // void htmlerror(const char *msg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d4oil1r2n6f3x3s6g8r3xbtwe"); // if (state.error) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("d80x93emrbwlp0eqir6ima591"); // state.error = 1; +UNSUPPORTED("arzfndu6ayj2visamjxs5fqz6"); // agerr(AGERR, "%s in line %d \n", msg, htmllineno()); +UNSUPPORTED("ebdaw1lrgj2dwb8f9tcasee8x"); // error_context(); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 acp0i0e64pv3nc7z77ptqite1 +// int initHTMLlexer(char *src, agxbuf * xb, htmlenv_t *env) +public static Object initHTMLlexer(Object... arg) { +UNSUPPORTED("4i6718j9jsjffgdkpazutgd58"); // int initHTMLlexer(char *src, agxbuf * xb, htmlenv_t *env) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a9gcauqk56pv3a5jlrmhocx0a"); // static int first; +UNSUPPORTED("6jv1hndh306bllc4vtjxwv29l"); // if (!first) { +UNSUPPORTED("f4xbgk3zxynlsuq7zpu0hjwel"); // agerr(AGWARN, +UNSUPPORTED("ddcod81qjobkbp6gcngsxbwf2"); // "Not built with libexpat. Table formatting is not available.\n"); +UNSUPPORTED("ax6eds48op7ub9xodm5h3ebg5"); // first++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6j28jjnvvj3r3i0jw57pfj41t +// int clearHTMLlexer() +public static Object clearHTMLlexer(Object... arg) { +UNSUPPORTED("goib464b6rhiny54h2khc2a5"); // int clearHTMLlexer() +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aav473cirf0vmolwfs6qs5p69 +// int htmllineno() +public static Object htmllineno(Object... arg) { +UNSUPPORTED("b27iw62asjebg2b5q4idjofiz"); // int htmllineno() +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bb6thnnh2h00iqcq5duqwkcvh +// int htmllex() +public static Object htmllex(Object... arg) { +UNSUPPORTED("783uwka8img15zvofu54p0fbh"); // int htmllex() +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e2bh1okvaw9i2fmjvndb6niu9"); // return EOF; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/htmlparse__c.java plantuml-8039/src/gen/lib/common/htmlparse__c.java --- plantuml-8024/src/gen/lib/common/htmlparse__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/htmlparse__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1805 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class htmlparse__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 z596gpwi24gl7hh3seyp0gck +// static void free_ritem(Dt_t* d, pitem* p,Dtdisc_t* ds) +public static Object free_ritem(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("d1sfyoxiqpnl52w8y4ogbcpx4"); // free_ritem(Dt_t* d, pitem* p,Dtdisc_t* ds) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("79kn2ug4yy0rtx86eqx7hzfas"); // dtclose (p->u.rp); +UNSUPPORTED("9e923y5yzq38a869awae5o4pq"); // free (p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 agf3jzkrkzu95vturq4ruirl1 +// static void free_item(Dt_t* d, void* p,Dtdisc_t* ds) +public static Object free_item(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("aeylv2tqn9jclpx81wzo8jna8"); // free_item(Dt_t* d, void* p,Dtdisc_t* ds) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9e923y5yzq38a869awae5o4pq"); // free (p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 53er8pztmugi7aaoo8w6xwmtt +// static void cleanTbl (htmltbl_t* tp) +public static Object cleanTbl(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("ejt6odqhq24f0w764y6ycw02q"); // cleanTbl (htmltbl_t* tp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7krxj3oaa24is3so7hqc97yq4"); // dtclose (tp->u.p.rows); +UNSUPPORTED("dkrc2ghxhhre60fr65tyau4h"); // free_html_data (&tp->data); +UNSUPPORTED("b5ddb7yg0q1g3is7zdyamegtz"); // free (tp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5fdbv5ru77dtss1pgwxt2dviz +// static void cleanCell (htmlcell_t* cp) +public static Object cleanCell(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("a2mzu2huku49nng3e0xjq7gly"); // cleanCell (htmlcell_t* cp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("77li1v44m9m2t09yybvetr1j7"); // if (cp->child.kind == 1) cleanTbl (cp->child.u.tbl); +UNSUPPORTED("e9frm74dt3zpfwmvcjt6d7rsp"); // else if (cp->child.kind == 2) free_html_text (cp->child.u.txt); +UNSUPPORTED("8o091oqx5kx7i4vunqj2rbe3w"); // free_html_data (&cp->data); +UNSUPPORTED("4pvswhooboe78ehkkgcubcohg"); // free (cp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8ipdkk14qkzxks3qfhcg430xd +// static void free_citem(Dt_t* d, pitem* p,Dtdisc_t* ds) +public static Object free_citem(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("bixe5avd0uejldfgeyicnxgak"); // free_citem(Dt_t* d, pitem* p,Dtdisc_t* ds) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8mlg640v3o1fdr5uj9sn6po9s"); // cleanCell (p->u.cp); +UNSUPPORTED("9e923y5yzq38a869awae5o4pq"); // free (p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 8syn2cu0jbf04go8pm5edutfo +// static Dtdisc_t rowDisc = + + +//1 94uru1gihainl2dp1ajf4c2nb +// static Dtdisc_t cellDisc = + + + + +//3 4vewb2db7impvcvf47z3wia3j +// static void free_fitem(Dt_t* d, fitem* p, Dtdisc_t* ds) +public static Object free_fitem(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("26gmt3uykv7jwzz4zsuhzmh6c"); // free_fitem(Dt_t* d, fitem* p, Dtdisc_t* ds) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("arsp2i9gms37oc65b9ios89et"); // if (p->ti.str) +UNSUPPORTED("3k6lgmit4vxwd69i0exjcet4e"); // free (p->ti.str); +UNSUPPORTED("ap7e4kfupx34ac9hq9kl5x48o"); // free (p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 49a1cavr0uwsfiywr4vlx1j9a +// static void free_fspan(Dt_t* d, fspan* p, Dtdisc_t* ds) +public static Object free_fspan(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("8jhubbnlsdmf8fbpmzgat0ym2"); // free_fspan(Dt_t* d, fspan* p, Dtdisc_t* ds) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("329j7icm39s2sase5gxu6gc03"); // textspan_t* ti; +UNSUPPORTED("42eg0b6eo5j9iu80p1uw4zid7"); // if (p->lp.nitems) { +UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i; +UNSUPPORTED("f4tcwn4c6523y5ixkmiplt4hy"); // ti = p->lp.items; +UNSUPPORTED("a82cuuzhevdwszh5on4eme3j6"); // for (i = 0; i < p->lp.nitems; i++) { +UNSUPPORTED("1o53httu5a3mbs45forifv3v"); // if (ti->str) free (ti->str); +UNSUPPORTED("6f0wl1s431kpd69mmcufrgwpw"); // ti++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ck90yu0z5f11dxw03hkkrq95f"); // free (p->lp.items); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ap7e4kfupx34ac9hq9kl5x48o"); // free (p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 1np2sacxaatzjpdyuxmr0k1f1 +// static Dtdisc_t fstrDisc = + + +//1 1isgrjiedau6lket9pvwj1cxy +// static Dtdisc_t fspanDisc = + + + + +//3 5mdfgv2hdexhdfc83v70ruckg +// static void appendFItemList (agxbuf *ag) +public static Object appendFItemList(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("3bn87tz9mrrkcgn2ilvrticxw"); // appendFItemList (agxbuf *ag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("doxwot367nm4unbmqvlyra7iq"); // fitem *fi = (fitem*)zmalloc(sizeof(fitem)); +UNSUPPORTED("4lvo94ar3s2v4g4pkc1ms9lwy"); // fi->ti.str = strdup((((((ag)->ptr >= (ag)->eptr) ? agxbmore(ag,1) : 0), (int)(*(ag)->ptr++ = ((unsigned char)'\0'))),(char*)((ag)->ptr = (ag)->buf))); +UNSUPPORTED("91z0oz4x1kngfnfwxn4cltgws"); // fi->ti.font = HTMLstate.fontstack->cfont; +UNSUPPORTED("3ywp027tx29yvpgfvcnwxudxh"); // (*(((Dt_t*)(HTMLstate.fitemList))->searchf))((HTMLstate.fitemList),(void*)(fi),0000001); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4famoxxlv0pr1b2fcrf0jgu7s +// static void appendFLineList (int v) +public static Object appendFLineList(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("1azzbwypafe22124r30oc4gda"); // appendFLineList (int v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6iv4xusq3ncisurzdtlt8lhe9"); // int cnt; +UNSUPPORTED("9zu5mdi1r78uwa3vbpf61c95d"); // fspan *ln = (fspan*)zmalloc(sizeof(fspan)); +UNSUPPORTED("6k4lwsneas5kj0gght5yl0cwz"); // fitem *fi; +UNSUPPORTED("6g93m1mz5i3cvqsrtk0010zx7"); // Dt_t *ilist = HTMLstate.fitemList; +UNSUPPORTED("755rwhfp43ntyoieyof0bydox"); // cnt = dtsize(ilist); +UNSUPPORTED("egxqlj0drkytzofn16fw10t2k"); // ln->lp.just = v; +UNSUPPORTED("77njmf3w9m7xk714hk5o8hjv5"); // if (cnt) { +UNSUPPORTED("6pui6q7pmbuh77j3mwflu6dh5"); // int i = 0; +UNSUPPORTED("364dv1yyznq3ttfgmlficsnjl"); // ln->lp.nitems = cnt; +UNSUPPORTED("8svd1o5xg6z1ni5xqndfxjfoa"); // ln->lp.items = (textspan_t*)zmalloc((cnt)*sizeof(textspan_t)); +UNSUPPORTED("7jn3x6w0gczpwy9ly59swpxo0"); // fi = (fitem*)dtflatten(ilist); +UNSUPPORTED("6mm1jtagzhgt1uvafv3xsnrps"); // for (; fi; fi = (fitem*)(((Dtlink_t*)((Dtlink_t*)fi))->right)) { +UNSUPPORTED("4ubyu68yegzu2jnk1iubu6ior"); // /* NOTE: When fitemList is closed, it uses free_item, which only frees the container, +UNSUPPORTED("dhebr74wsajvoittzd8u8d2f9"); // * not the contents, so this copy is safe. +UNSUPPORTED("edw1ss2r31mqgsvca2gowi52v"); // */ +UNSUPPORTED("e9w5vyh1n133n13q9qyjy9ozt"); // ln->lp.items[i] = fi->ti; +UNSUPPORTED("1lo0ackow66iudrq1gb15y3ry"); // i++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("988zd9b8qbjkr2ruagx1lba6j"); // ln->lp.items = (textspan_t*)zmalloc(sizeof(textspan_t)); +UNSUPPORTED("7olg12o4clx3ucbt1ovdkecgj"); // ln->lp.nitems = 1; +UNSUPPORTED("9s20ql63zxmctegw4085j3fmx"); // ln->lp.items[0].str = strdup(""); +UNSUPPORTED("2p1lktdlp9q8kh7c1ujxogs61"); // ln->lp.items[0].font = HTMLstate.fontstack->cfont; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("53hyx9r3svmvy8o9fi8qr4mzm"); // (*(((Dt_t*)(ilist))->searchf))((ilist),(void*)(0),0000100); +UNSUPPORTED("8n0i45x1qnicbsjl3t906vaa8"); // (*(((Dt_t*)(HTMLstate.fspanList))->searchf))((HTMLstate.fspanList),(void*)(ln),0000001); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 az5nhw9enic3fddz8gnedxcju +// static htmltxt_t* mkText(void) +public static Object mkText(Object... arg) { +UNSUPPORTED("ey6kc3f9ltt691wqrfmypaozl"); // static htmltxt_t* +UNSUPPORTED("cjs0uzhgqb2fc7756tzv0vojf"); // mkText(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6iv4xusq3ncisurzdtlt8lhe9"); // int cnt; +UNSUPPORTED("3moicc1bb7tuz64d74jgr044"); // Dt_t * ispan = HTMLstate.fspanList; +UNSUPPORTED("243kqn4v9kdemlqwu2dhg6pdy"); // fspan *fl ; +UNSUPPORTED("e188sj25s1ko32xdk40qd877e"); // htmltxt_t *hft = (htmltxt_t*)zmalloc(sizeof(htmltxt_t)); +UNSUPPORTED("ag6dt4kjzoulw1j0mhwbokdid"); // if (dtsize (HTMLstate.fitemList)) +UNSUPPORTED("5madleux7wg2vumi9pl1bdv8s"); // appendFLineList (0); +UNSUPPORTED("ykhei8t74adzsrnktxe4u6wc"); // cnt = dtsize(ispan); +UNSUPPORTED("57eezqowalifcx3ocgmtz5gmp"); // hft->nspans = cnt; +UNSUPPORTED("77njmf3w9m7xk714hk5o8hjv5"); // if (cnt) { +UNSUPPORTED("87wlv7rom7negdjfub75atom0"); // int i = 0; +UNSUPPORTED("btg64tgzrm3tsx7w2cjgtkt5g"); // hft->spans = (htextspan_t*)zmalloc((cnt)*sizeof(htextspan_t)); +UNSUPPORTED("2yjlc0huszsbrp4p6mljwnqez"); // for(fl=(fspan *)(*(((Dt_t*)(ispan))->searchf))((ispan),(void*)(0),0000200); fl; fl=(fspan *)(*(((Dt_t*)(ispan))->searchf))((ispan),(void*)(fl),0000010)) { +UNSUPPORTED("o7nqqo5invz9fssk2z7yxvdk"); // hft->spans[i] = fl->lp; +UNSUPPORTED("5at77pazhse3utac5y67rfrpg"); // i++; +UNSUPPORTED("klxoy56t7b20wxnwqm0qoofz"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ewiox4giau2t8uc31b4m8cbos"); // (*(((Dt_t*)(ispan))->searchf))((ispan),(void*)(0),0000100); +UNSUPPORTED("dnp8w4len77c0t9hp9b2j5nye"); // return hft; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 23wdl6n60rq8jhsrdhgamjwls +// static pitem* lastRow (void) +public static Object lastRow(Object... arg) { +UNSUPPORTED("d6gug3eud9z5l6tlnca1w8use"); // static pitem* lastRow (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7yjzj8jcniwi23ahtmhu8f7cp"); // htmltbl_t* tbl = HTMLstate.tblstack; +UNSUPPORTED("f25khljxvq2epkwsa4mgzdc5v"); // pitem* sp = (*(((Dt_t*)(tbl->u.p.rows))->searchf))((tbl->u.p.rows),(void*)(0),0000400); +UNSUPPORTED("1nblb3mrq7wrxkm06v7yvyin"); // return sp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8t79v9x9xl9lbtpdi34ff3phe +// static pitem* addRow (void) +public static Object addRow(Object... arg) { +UNSUPPORTED("743f44ql6wbf8utttlgok2tms"); // static pitem* addRow (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("76ds0mb9gofz9vcw348tw74pq"); // Dt_t* dp = dtopen(&cellDisc, Dtqueue); +UNSUPPORTED("7yjzj8jcniwi23ahtmhu8f7cp"); // htmltbl_t* tbl = HTMLstate.tblstack; +UNSUPPORTED("6zaqqicaaq9xlvykkckhmxbyy"); // pitem* sp = (pitem*)zmalloc(sizeof(pitem)); +UNSUPPORTED("aqkc4euu97i25dyyrncpttmit"); // sp->u.rp = dp; +UNSUPPORTED("3fun70bheg258bgk09490w0sh"); // if (tbl->flags & 2) +UNSUPPORTED("dmgfwq598sxflnnqkc7ad1b32"); // sp->ruled = 1; +UNSUPPORTED("2g348nq1krudex6ifjgv27wyg"); // (*(((Dt_t*)(tbl->u.p.rows))->searchf))((tbl->u.p.rows),(void*)(sp),0000001); +UNSUPPORTED("1nblb3mrq7wrxkm06v7yvyin"); // return sp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bdjjvqfdlg0yrp580jpv43hw4 +// static void setCell (htmlcell_t* cp, void* obj, int kind) +public static Object setCell(Object... arg) { +UNSUPPORTED("a6ymak98eyh09432vmvpogipt"); // static void setCell (htmlcell_t* cp, void* obj, int kind) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6zaqqicaaq9xlvykkckhmxbyy"); // pitem* sp = (pitem*)zmalloc(sizeof(pitem)); +UNSUPPORTED("7yjzj8jcniwi23ahtmhu8f7cp"); // htmltbl_t* tbl = HTMLstate.tblstack; +UNSUPPORTED("qw6vdwg3yid1pdaz0qrjppaj"); // pitem* rp = (pitem*)(*(((Dt_t*)(tbl->u.p.rows))->searchf))((tbl->u.p.rows),(void*)(0),0000400); +UNSUPPORTED("d6k77mp03y46jligheanx94dg"); // Dt_t* row = rp->u.rp; +UNSUPPORTED("e9s2ni07poro3gct8f1ya0l7a"); // sp->u.cp = cp; +UNSUPPORTED("2ajp3r1vfd0xl0s07q51tgkhd"); // (*(((Dt_t*)(row))->searchf))((row),(void*)(sp),0000001); +UNSUPPORTED("73ausrcgminfktwghjhuctrdc"); // cp->child.kind = kind; +UNSUPPORTED("8ianzmahfvf64a86twwxp86jp"); // if (tbl->flags & 1) +UNSUPPORTED("dpw9bdo34u2djuw3g3a6rsn0z"); // cp->ruled = 1; +UNSUPPORTED("a2drbo5m3cl97fd4khnnp0x1x"); // if(kind == 2) +UNSUPPORTED("g98aqixq093hbgc60377v9xj"); // cp->child.u.txt = (htmltxt_t*)obj; +UNSUPPORTED("7m1dgczjy0huec6a30h9cbkf"); // else if (kind == 3) +UNSUPPORTED("6v92mg93bq298eauy1s1dn2kv"); // cp->child.u.img = (htmlimg_t*)obj; +UNSUPPORTED("8983svt6g1kt3l45bd6ju9mw6"); // else +UNSUPPORTED("5mgc55pb51xtqrskdy6lupjj9"); // cp->child.u.tbl = (htmltbl_t*)obj; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 86xg3md174m9d0hdj7lm1r8h8 +// static htmllabel_t* mkLabel (void* obj, int kind) +public static Object mkLabel(Object... arg) { +UNSUPPORTED("68olevx5qr27d1plva3kh6e5d"); // static htmllabel_t* mkLabel (void* obj, int kind) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8ke9r2q8imfs4uovjyrc0m582"); // htmllabel_t* lp = (htmllabel_t*)zmalloc(sizeof(htmllabel_t)); +UNSUPPORTED("43clk7pdhozybye425c5vxbqs"); // lp->kind = kind; +UNSUPPORTED("59s9lao6qui2fmj9eef4wmr0l"); // if (kind == 2) +UNSUPPORTED("11pai3t9lnogky3p7m0vpbty"); // lp->u.txt = (htmltxt_t*)obj; +UNSUPPORTED("8983svt6g1kt3l45bd6ju9mw6"); // else +UNSUPPORTED("8ag7q576emt2v7de68p7zi1vg"); // lp->u.tbl = (htmltbl_t*)obj; +UNSUPPORTED("75meu722lubo2wmb1bahwmv1u"); // return lp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cidlq4a037zcw1viv3yj5dm3o +// static void freeFontstack(void) +public static Object freeFontstack(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("5n6hadg2nnxbykkls8yuljrux"); // freeFontstack(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7j1n1whz7ns8m658dgt3rf7m6"); // sfont_t* s; +UNSUPPORTED("45fzuya14aqi3ydx2mx7qy7li"); // sfont_t* next; +UNSUPPORTED("820gi48ql7mjvm02zqrlrk2j0"); // for (s = HTMLstate.fontstack; (next = s->pfont); s = next) { +UNSUPPORTED("d285xdylp7oj81aar06ulc7kh"); // free(s); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ewyzfsvy1gms3jg0repa41hey +// static void cleanup (void) +public static Object cleanup(Object... arg) { +UNSUPPORTED("4udlidhjhh186l60tnwrndods"); // static void cleanup (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("61xcnqsgba2hv68f84p8whcvy"); // htmltbl_t* tp = HTMLstate.tblstack; +UNSUPPORTED("ej2qxu72gf97u4o99kg06l2bl"); // htmltbl_t* next; +UNSUPPORTED("bzbpzh7k9m3nsya6a8e0qzuns"); // if (HTMLstate.lbl) { +UNSUPPORTED("3we2rhjt0mgfjgbczne6cjhxh"); // free_html_label (HTMLstate.lbl,1); +UNSUPPORTED("7kxmztohe6skbt7owagd4nyjj"); // HTMLstate.lbl = NULL; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("d33vybg2nal9pqyqnsooy2a3e"); // cellDisc.freef = (Dtfree_f)free_citem; +UNSUPPORTED("bep9lbei2j0r4rjc1dkx7zkzd"); // while (tp) { +UNSUPPORTED("9t026l68ed6imumb8ij7yhzh5"); // next = tp->u.p.prev; +UNSUPPORTED("8f6vdwgdm8fjshmxo6ei6l4x9"); // cleanTbl (tp); +UNSUPPORTED("314eojl0ohy55hom5nx2fwyfi"); // tp = next; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("caxitvipeydnmdgworfislzhs"); // cellDisc.freef = (Dtfree_f)free_item; +UNSUPPORTED("dlpulny8fqkx25ms5nmppj3vz"); // fstrDisc.freef = (Dtfree_f)free_fitem; +UNSUPPORTED("33zrdedw85v7v1x9nbd1ckxoa"); // (*(((Dt_t*)(HTMLstate.fitemList))->searchf))((HTMLstate.fitemList),(void*)(0),0000100); +UNSUPPORTED("3869gecvlcnxgmpwhtwhrjm0d"); // fstrDisc.freef = (Dtfree_f)free_item; +UNSUPPORTED("7odzhifod2x35wc5tbi6ix4be"); // fspanDisc.freef = (Dtfree_f)free_fspan; +UNSUPPORTED("ba01mdd5f4vk5utis9ha5e30"); // (*(((Dt_t*)(HTMLstate.fspanList))->searchf))((HTMLstate.fspanList),(void*)(0),0000100); +UNSUPPORTED("eav0sd07lj1ql28b4mb7w2uaf"); // fspanDisc.freef = (Dtfree_f)free_item; +UNSUPPORTED("98nbz0do2np8v147v1gegnrbi"); // freeFontstack(); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8bl8i4l3vq6849ak8bwey6mzk +// static int nonSpace (char* s) +public static Object nonSpace(Object... arg) { +UNSUPPORTED("48jbmcx7d591k3p9ro9ty0m3g"); // static int nonSpace (char* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8jg9j6uvh89uy3p6606fh8a2w"); // char c; +UNSUPPORTED("efa7ei8mz8h7lvxh5wqq5wc33"); // while ((c = *s++)) { +UNSUPPORTED("9sludt6qrbcf6zk9hm3gysufj"); // if (c != ' ') return 1; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("bid671dovx1rdiquw5vm3fttj"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 87ios5hi5757k5miu6wlrum5w +// static void pushFont (textfont_t *fp) +public static Object pushFont(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("a9n2aesdy1bywbrbze7gmkn17"); // pushFont (textfont_t *fp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("691ytrxzc6cij5vazhtnuoy0n"); // sfont_t *ft = (sfont_t*)zmalloc(sizeof(sfont_t)); +UNSUPPORTED("31e675d7cp5uavv6vydzkii0t"); // textfont_t* curfont = HTMLstate.fontstack->cfont; +UNSUPPORTED("18b0yq7hsh4rq27jpn4mqwq34"); // textfont_t f = *fp; +UNSUPPORTED("e31ng2kblbzn273ypcnmjro76"); // if (curfont) { +UNSUPPORTED("2tpx9chys0c52v4xe4hacak69"); // if (!f.color && curfont->color) +UNSUPPORTED("1n368po1sgerkqtzfsd32203n"); // f.color = curfont->color; +UNSUPPORTED("ak5bw2q3nrfw2txz5a14sq6ha"); // if ((f.size < 0.0) && (curfont->size >= 0.0)) +UNSUPPORTED("aimplrk4u9egypl4ejx0x9b8d"); // f.size = curfont->size; +UNSUPPORTED("4660knpp4fazggl9yqsfxdr1e"); // if (!f.name && curfont->name) +UNSUPPORTED("e43b7fxbbvqjlwtsywbv167k"); // f.name = curfont->name; +UNSUPPORTED("d41lsjow2yoew5l40lj5se1wt"); // if (curfont->flags) +UNSUPPORTED("2c7fsvh63forfjfugu4grsiiq"); // f.flags |= curfont->flags; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5jm1g08zslbh1e16seen6jgis"); // ft->cfont = (*(((Dt_t*)(HTMLstate.gvc->textfont_dt))->searchf))((HTMLstate.gvc->textfont_dt),(void*)(&f),0000001); +UNSUPPORTED("3ptdxuzgcqapdr5xju6zt62cj"); // ft->pfont = HTMLstate.fontstack; +UNSUPPORTED("3mdpaak1y5sxe2o2upjzfpy1e"); // HTMLstate.fontstack = ft; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9p42c6b9fpbzacsbf6pelg18i +// static void popFont (void) +public static Object popFont(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("hvm5yavuo5ntqsxkc2wna9oi"); // popFont (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5ab6yk7kzqxbhn54ye5aovrb0"); // sfont_t* curfont = HTMLstate.fontstack; +UNSUPPORTED("3enh12gz0ie5d7arcrnm4g0ck"); // sfont_t* prevfont = curfont->pfont; +UNSUPPORTED("7lf7opedggfvxwj1hqhdb9wfr"); // free (curfont); +UNSUPPORTED("5ono575lrg0e9hs3qnjqspxg1"); // HTMLstate.fontstack = prevfont; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 dit6nudlsu8gsbu1nk0oaxmdv +// extern YYSTYPE htmllval + + +//1 x1gckyomih68oczs7yvmm3h5 +// typedef unsigned char htmltype_uint8 + + +//1 31jz3v9hejkp1rmq8mz0o5w47 +// typedef short int htmltype_int8 + + +//1 dpd60mlqyvzm22gkckal3qm7v +// typedef unsigned short int htmltype_uint16 + + +//1 dcdckw2y7pzkg53vllmegf4rq +// typedef short int htmltype_int16 + + +//1 9jdkbskvde5424jxt2dovm2rl +// static const htmltype_uint8 htmltranslate[] = + + +//1 2cl550jmnu3b16nwlqov00hw4 +// static const htmltype_uint8 htmlr1[] = + + +//1 6avpc7f6w1kv4uj7k9dc6qbvk +// static const htmltype_uint8 htmlr2[] = + + +//1 bpc8qqltftv1euiiz1zgki9nk +// static const htmltype_uint8 htmldefact[] = + + +//1 a0c9rr2ke8fawmhjvlibt4drp +// static const htmltype_int8 htmldefgoto[] = + + +//1 4ejlmzv42imv4ti54zwtoi31x +// static const htmltype_int16 htmlpact[] = + + +//1 4l47s5oz92y80p13c7zq77zvu +// static const htmltype_int16 htmlpgoto[] = + + +//1 4919zi7ri51whrqbp6bdfs056 +// static const htmltype_int8 htmltable[] = + + +//1 9jk1ohz4jxvdrwn1nsszaiu5y +// static const htmltype_int8 htmlcheck[] = + + +//1 e7nz3wy38vdelp0l9owm0wpm7 +// static const htmltype_uint8 htmlstos[] = + + + + +//3 efmks9lkxb4y34urxsqx4bs0 +// static void htmldestruct (htmlmsg, htmltype, htmlvaluep) const char *htmlmsg +public static Object htmldestruct(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("bfzx4tu82rlmwjppehpr1dqu5"); // htmldestruct (htmlmsg, htmltype, htmlvaluep) +UNSUPPORTED("3awpkepa46g6buzdmvnec62v"); // const char *htmlmsg; +UNSUPPORTED("7ihfhmwdck9c8mh20noq9z7fh"); // int htmltype; +UNSUPPORTED("7d7rrr5zwtdnq8k1a9amkko57"); // YYSTYPE *htmlvaluep; +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9yf7lyfc618lbtjkyl2j86rtw"); // ((void) (htmlvaluep)); +UNSUPPORTED("eaa8zribdcfr2vai4hp1pq1ua"); // if (!htmlmsg) +UNSUPPORTED("25hpdqk09mvipn2py35e3lrmo"); // htmlmsg = "Deleting"; +UNSUPPORTED("3nswekisilyfverb25pazm044"); // ; +UNSUPPORTED("a3t3q76da1if05y02v50rpwqp"); // switch (htmltype) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("5vhsnixpf0pg2oz10ps2valyn"); // default: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 4oas2ko3fiqnt2h6t9oqu7wis +// int htmlchar + + +//1 dlvwi3aalg35jpb4xc64zpawu +// YYSTYPE htmllval + + +//1 7unt62uxeuyzgt50yuio39e4x +// int htmlnerrs + + + + +//3 c3v0uk0nmo3q2j3wobf6794sb +// int htmlparse () +public static Object htmlparse(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("1h4o50xtpcoa3y6zlpkkxk6ib"); // htmlparse () +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("62tk7c59ipergrlj1fduk0pdq"); // int htmlstate; +UNSUPPORTED("9s1gvm4tg9jub4ua9d2z36uh"); // /* Number of tokens to shift before error messages enabled. */ +UNSUPPORTED("35ezit38p47de8cupukz8db82"); // int htmlerrstatus; +UNSUPPORTED("9ok1ifmve6y93u5i4275oxt1d"); // /* The stacks and their tools: +UNSUPPORTED("bjeksbrfz8mqrkf0xy0wey64n"); // `htmlss': related to states. +UNSUPPORTED("eld0t4ac0f0b0ic4l4rcsuiko"); // `htmlvs': related to semantic values. +UNSUPPORTED("676c5582nxmrsmksg7dbypi2c"); // Refer to the stacks through separate pointers, to allow htmloverflow +UNSUPPORTED("e8cfmvs5ozsrhl6v1u6mp3dw0"); // to reallocate them elsewhere. */ +UNSUPPORTED("e0svr3ez9dsitn8x3e0ix2b6q"); // /* The state stack. */ +UNSUPPORTED("dvsf2vaphifgcuy1elvib1zlh"); // htmltype_int16 htmlssa[200]; +UNSUPPORTED("4dkqe7g2vzqf61fnma038bjlw"); // htmltype_int16 *htmlss; +UNSUPPORTED("a1wlw53pguerjrw8d6gbuzs26"); // htmltype_int16 *htmlssp; +UNSUPPORTED("3a5u4tdfyqrq2c72j4bf9ukca"); // /* The semantic value stack. */ +UNSUPPORTED("4ufi2gs6chfc5vcrtl6p22i7w"); // YYSTYPE htmlvsa[200]; +UNSUPPORTED("8o4i7pjkbavihzu0xwqdbe5jv"); // YYSTYPE *htmlvs; +UNSUPPORTED("1k08c7vp1rk1e0fzde7qyb2yj"); // YYSTYPE *htmlvsp; +UNSUPPORTED("bmzoj1sonj419ogzmu3k755r6"); // unsigned int htmlstacksize; +UNSUPPORTED("c9d8i9an5qkgkxgokdmp3e9bz"); // int htmln; +UNSUPPORTED("dn7s6wgv7lmh8pevqv91ju2ss"); // int htmlresult; +UNSUPPORTED("15mkyt2y35y6b3kw61tcv89hz"); // /* Lookahead token as an internal (translated) token number. */ +UNSUPPORTED("dbkl61t5ab3xhpe115qrsljzb"); // int htmltoken; +UNSUPPORTED("8e8sr2gy45snswwlopuywd4"); // /* The variables used to return semantic value and location from the +UNSUPPORTED("d4q0w76h1grh0723v2ors4nxs"); // action routines. */ +UNSUPPORTED("70fy0dn2jgxihiqdid66zwr1b"); // YYSTYPE htmlval; +UNSUPPORTED("8s5ggdw8hglgk87czklidx1pl"); // /* The number of symbols on the RHS of the reduced rule. +UNSUPPORTED("d7da55fsvudhvjfgejvxp4301"); // Keep to zero when no symbol should be popped. */ +UNSUPPORTED("pby8i05gnio1tx7xl02phkkl"); // int htmllen = 0; +UNSUPPORTED("aa9z6jaxqu9w870phjets5pqw"); // htmltoken = 0; +UNSUPPORTED("4entxav72jvsoxqih63oyh85r"); // htmlss = htmlssa; +UNSUPPORTED("ey6y39100zis36iu8ek1maq16"); // htmlvs = htmlvsa; +UNSUPPORTED("ewmf53srdqssmd5l6u21dfa1c"); // htmlstacksize = 200; +UNSUPPORTED("3nswekisilyfverb25pazm044"); // ; +UNSUPPORTED("10i7gkv6rg0m7qpxuazy9xffi"); // htmlstate = 0; +UNSUPPORTED("1rk2q02feqw4cthy5e57fmf2g"); // htmlerrstatus = 0; +UNSUPPORTED("8id8dfn6laac87otcxbnhm1jn"); // htmlnerrs = 0; +UNSUPPORTED("3jqhe6ta2bm9bcf4w2963okw2"); // htmlchar = (-2); /* Cause a token to be read. */ +UNSUPPORTED("f0kbtpk40bbe7m53uwx0eezp4"); // /* Initialize stack pointers. +UNSUPPORTED("d8dtor5u60ag1mqqgil372nvk"); // Waste one element of value and location stack +UNSUPPORTED("7ev6rqep9cwoby6w6f1tx2osc"); // so that they stay on the same level as the state stack. +UNSUPPORTED("yd2jbvtitsi6j7lrxgzvchcv"); // The wasted elements are never initialized. */ +UNSUPPORTED("6epp6cmp94tukdce0ud6qfip4"); // htmlssp = htmlss; +UNSUPPORTED("c6zy9hd78gy2pq3pr04gfndcn"); // htmlvsp = htmlvs; +UNSUPPORTED("etd1ecxo5luu7rsmrk7qz72gt"); // goto htmlsetstate; +UNSUPPORTED("4flvn46w2728mhozqf9kuosm2"); // /*------------------------------------------------------------. +UNSUPPORTED("29nubdcfg783k6bp12tzf7kdf"); // | htmlnewstate -- Push a new state, which is found in htmlstate. | +UNSUPPORTED("a6znfp1d4ixngc79hwpyrw4wp"); // `------------------------------------------------------------*/ +UNSUPPORTED("2qqobrlmofilzusvouyjyss5x"); // htmlnewstate: +UNSUPPORTED("ej0agaz4g5pjpstralb0dkmdd"); // /* In all cases, when you get here, the value and location stacks +UNSUPPORTED("7wmq2lqpn4jmj4m6nxe2ndmc5"); // have just been pushed. So pushing a state here evens the stacks. */ +UNSUPPORTED("2751c39cr4rnrxg5n7m7nx7ys"); // htmlssp++; +UNSUPPORTED("c5u6emamg5qcrwzdqjnb9onrx"); // htmlsetstate: +UNSUPPORTED("d92pzu0fz5qfvyngtbuxmvd23"); // *htmlssp = htmlstate; +UNSUPPORTED("6qm7nvqgi9468k5d6roxibegt"); // if (htmlss + htmlstacksize - 1 <= htmlssp) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("548pbbpfwcnj355codzyz202a"); // /* Get the current used size of the three stacks, in elements. */ +UNSUPPORTED("dbjpb0ohfl5tqwx8j7iw7uz3m"); // unsigned int htmlsize = htmlssp - htmlss + 1; +UNSUPPORTED("74tyblyhdau9tp40uzltqv3x7"); // /* Extend the stack our own way. */ +UNSUPPORTED("26ytwmih7ma6cd4zk56mzubfl"); // if (10000 <= htmlstacksize) +UNSUPPORTED("4mlk7t4o51xr98x3ba6uvbr5q"); // goto htmlexhaustedlab; +UNSUPPORTED("87gqai73rnzhld59bjv3egqcl"); // htmlstacksize *= 2; +UNSUPPORTED("ag1eorudzykaegt7mm2znnosf"); // if (10000 < htmlstacksize) +UNSUPPORTED("c1vtabr3qz2or3uxoxp86czk9"); // htmlstacksize = 10000; +UNSUPPORTED("cdsm9962a8k19vkufzg36hzc8"); // { +UNSUPPORTED("6g01e75skxcki12flc6g01l89"); // htmltype_int16 *htmlss1 = htmlss; +UNSUPPORTED("73qjl9g5kukkejwoiw0mv9894"); // union htmlalloc *htmlptr = +UNSUPPORTED("pbab6t68kdfgwefi6c9gspq3"); // (union htmlalloc *) malloc (((htmlstacksize) * (sizeof (htmltype_int16) + sizeof (YYSTYPE)) + (sizeof (union htmlalloc) - 1))); +UNSUPPORTED("4k5xl2qqq4d9ec7ks949npzkp"); // if (! htmlptr) +UNSUPPORTED("9mqexdn4dvy83xq3gxn5hndcz"); // goto htmlexhaustedlab; +UNSUPPORTED("3olfd74fb5aw885uvogcexnem"); // do { unsigned int htmlnewbytes; do { unsigned int htmli; for (htmli = 0; htmli < (htmlsize); htmli++) (&htmlptr->htmlss_alloc)[htmli] = (htmlss)[htmli]; } while ((0)); htmlss = &htmlptr->htmlss_alloc; htmlnewbytes = htmlstacksize * sizeof (*htmlss) + (sizeof (union htmlalloc) - 1); htmlptr += htmlnewbytes / sizeof (*htmlptr); } while ((0)); +UNSUPPORTED("c0r80gc3ijlybyzvg7pxfqwmy"); // do { unsigned int htmlnewbytes; do { unsigned int htmli; for (htmli = 0; htmli < (htmlsize); htmli++) (&htmlptr->htmlvs_alloc)[htmli] = (htmlvs)[htmli]; } while ((0)); htmlvs = &htmlptr->htmlvs_alloc; htmlnewbytes = htmlstacksize * sizeof (*htmlvs) + (sizeof (union htmlalloc) - 1); htmlptr += htmlnewbytes / sizeof (*htmlptr); } while ((0)); +UNSUPPORTED("a97chludrb34tylpbf69vt7wb"); // if (htmlss1 != htmlssa) +UNSUPPORTED("7l4qx4ob4oyi2etdctrfdz2l3"); // free (htmlss1); +UNSUPPORTED("dquo3qofk56ds5xl95lhvcthf"); // } +UNSUPPORTED("es0c860ynkr022bk0tez2ise2"); // htmlssp = htmlss + htmlsize - 1; +UNSUPPORTED("as9a97car6r3cgh7bctalzygu"); // htmlvsp = htmlvs + htmlsize - 1; +UNSUPPORTED("3ejmh10g3kyn79v59obt4uwve"); // ; +UNSUPPORTED("3eh7dcvg7k912klwk1971dzea"); // if (htmlss + htmlstacksize - 1 <= htmlssp) +UNSUPPORTED("94rnqtiux3wthf9kn8utqcskz"); // goto htmlabortlab; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3nswekisilyfverb25pazm044"); // ; +UNSUPPORTED("7ozhm9yo9yzwlyprtcubuyigx"); // if (htmlstate == 31) +UNSUPPORTED("9u8ogsnknxr9ql3vkxgz8smsi"); // goto htmlacceptlab; +UNSUPPORTED("coc3qaztrdssrpqadyzkhd3gn"); // goto htmlbackup; +UNSUPPORTED("1js0t0ytcx8ywvz9tsx2kc95p"); // /*-----------. +UNSUPPORTED("94huiatz1cws1vr5blejpzj8g"); // | htmlbackup. | +UNSUPPORTED("dbmfwil8k8aqwvx0qac9r5n48"); // `-----------*/ +UNSUPPORTED("3qq8lyp9d9glw5yd7xzch9nmv"); // htmlbackup: +UNSUPPORTED("6yzm6oy5bmq3akecjcji6mxyb"); // /* Do appropriate processing given the current state. Read a +UNSUPPORTED("3plrzglhiw3koxy90giytgoee"); // lookahead token if we need one and don't already have one. */ +UNSUPPORTED("cbfd87dteogvv9rjyncz9jnkm"); // /* First try to decide what to do without reference to lookahead token. */ +UNSUPPORTED("2a8s7ntnrbmo2gis2pg6txdu2"); // htmln = htmlpact[htmlstate]; +UNSUPPORTED("clx73uhvg9uu1dy9qe0wyoqpi"); // if (((htmln) == (-82))) +UNSUPPORTED("2cusegm507dcmw0w3d9n5ob5j"); // goto htmldefault; +UNSUPPORTED("46jyau3ggxbt5nfv3rhpd6lxc"); // /* Not known => get a lookahead token if don't already have one. */ +UNSUPPORTED("bax3bsy3o04vppl5jub837tlx"); // /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ +UNSUPPORTED("aw1x1j7hwaqgxlp75kehavz9q"); // if (htmlchar == (-2)) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("3ejmh10g3kyn79v59obt4uwve"); // ; +UNSUPPORTED("90hryp89jjpc8no7mk4wb10hl"); // htmlchar = htmllex (); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6ket57yvgnkwbczbudkyb2fya"); // if (htmlchar <= 0) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("ews12pthol75novd8hp8fkl1x"); // htmlchar = htmltoken = 0; +UNSUPPORTED("3ejmh10g3kyn79v59obt4uwve"); // ; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8983svt6g1kt3l45bd6ju9mw6"); // else +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("84q66xdmm7egi73lpjcjdjc6q"); // htmltoken = ((unsigned int) (htmlchar) <= 295 ? htmltranslate[htmlchar] : 2); +UNSUPPORTED("3ejmh10g3kyn79v59obt4uwve"); // ; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7lmyp30l6y4v0glydzcrxhs2d"); // /* If the proper action on seeing token YYTOKEN is to reduce or to +UNSUPPORTED("b7crt9is4hw3fqusq1xx9sf6a"); // detect an error, take that action. */ +UNSUPPORTED("34kbd1x8w690annnj75215h09"); // htmln += htmltoken; +UNSUPPORTED("4halvyf2vhn5q7h9e0sbv873s"); // if (htmln < 0 || 271 < htmln || htmlcheck[htmln] != htmltoken) +UNSUPPORTED("2cusegm507dcmw0w3d9n5ob5j"); // goto htmldefault; +UNSUPPORTED("boi726ocp9qojc0h6nhl9vsgp"); // htmln = htmltable[htmln]; +UNSUPPORTED("b8cb3dlwkrcfxu649zxqohgvj"); // if (htmln <= 0) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("6mbeksrzh2gawgu5dkavj2est"); // if ((0)) +UNSUPPORTED("4jg5atq0i4ew7z1g0djuzcy4n"); // goto htmlerrlab; +UNSUPPORTED("88vjtb0kxfe4xg663gi8xjqth"); // htmln = -htmln; +UNSUPPORTED("2qstfr7r0p3taeabl0j0yypeg"); // goto htmlreduce; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6m1h8vs57mr1pqnti7d1p21zm"); // /* Count tokens shifted since error; after three, turn off error +UNSUPPORTED("71k349r438nfbibdaenrctckz"); // status. */ +UNSUPPORTED("1ba7u5rrozxksvv7ue2ygoh"); // if (htmlerrstatus) +UNSUPPORTED("93m3v5anc75abn6e089zd23lt"); // htmlerrstatus--; +UNSUPPORTED("bg4fkvjteodqrz0juw1viqqjp"); // /* Shift the lookahead token. */ +UNSUPPORTED("3nswekisilyfverb25pazm044"); // ; +UNSUPPORTED("vmreafe95a9c5qif2txdddol"); // /* Discard the shifted token. */ +UNSUPPORTED("c82uun4vuxwvsul28tm7jaekj"); // htmlchar = (-2); +UNSUPPORTED("c7lyo4hbtrr9qa5r64z6spufb"); // htmlstate = htmln; +UNSUPPORTED("769m6xe129uc5szy8zzxdhv2d"); // *++htmlvsp = htmllval; +UNSUPPORTED("c663h0k0l1p8coybbax2cprhf"); // goto htmlnewstate; +UNSUPPORTED("52wvjbtwrbu5hxceg6pcdel69"); // /*-----------------------------------------------------------. +UNSUPPORTED("550agztbn4434mdivyv3u31ln"); // | htmldefault -- do the default action for the current state. | +UNSUPPORTED("9hhkvyvbwlemtn3h1klxkqvhu"); // `-----------------------------------------------------------*/ +UNSUPPORTED("dzkwny6bi2obnn3s2dp222uk5"); // htmldefault: +UNSUPPORTED("b62gttk3vojz09hayw8tsgo3p"); // htmln = htmldefact[htmlstate]; +UNSUPPORTED("7c7of9tjvujfa23zjkakkk86m"); // if (htmln == 0) +UNSUPPORTED("4f3e6k654d2f7nkzlnujkv6uc"); // goto htmlerrlab; +UNSUPPORTED("27qnktnicd3ya3e45nfofxekt"); // goto htmlreduce; +UNSUPPORTED("e719ikbjilezocbt4m9kwl59z"); // /*-----------------------------. +UNSUPPORTED("3tqmfg13qgkifqble8aw065q3"); // | htmlreduce -- Do a reduction. | +UNSUPPORTED("22xw21uiel1yqgh9ekbbt357t"); // `-----------------------------*/ +UNSUPPORTED("95xespimrldho8donazj10f0z"); // htmlreduce: +UNSUPPORTED("29gq1qaploduu7kkt1k3b8m6r"); // /* htmln is the number of a rule to reduce with. */ +UNSUPPORTED("a3n0mugy5xbdrpk8ds15iciis"); // htmllen = htmlr2[htmln]; +UNSUPPORTED("1xow6gk24a2ai9mxr7uo7ja67"); // /* If YYLEN is nonzero, implement the default value of the action: +UNSUPPORTED("2hk39ofhzlvc0dwqdyy9u0vqb"); // `$$ = $1'. +UNSUPPORTED("z0dyb7fx7wbongcqyjgkdi93"); // Otherwise, the following line sets YYVAL to garbage. +UNSUPPORTED("9bj8xv378tepxxvoutf7s2jey"); // This behavior is undocumented and Bison +UNSUPPORTED("cxdh1gg9j5jy0oknt01shgx43"); // users should not rely upon it. Assigning to YYVAL +UNSUPPORTED("d2ax79vvmf62r51efz5v31h1f"); // unconditionally makes the parser a bit smaller, and it avoids a +UNSUPPORTED("jctvjfbzk1f2q35vsx7olb4"); // GCC warning that YYVAL may be used uninitialized. */ +UNSUPPORTED("4kzxdrpbfkmonox1vcw5eyja4"); // htmlval = htmlvsp[1-htmllen]; +UNSUPPORTED("3nswekisilyfverb25pazm044"); // ; +UNSUPPORTED("7lkql8chv38sgwh4qwbqrilbz"); // switch (htmln) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("7ywtj1dc9qm2wgh1sjqw8bog0"); // case 2: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("ah2zs0v0qqh6joibphexpozf2"); // { HTMLstate.lbl = mkLabel((htmlvsp[(2) - (3)].txt),2); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("4b2fuxeeiy5560zrwr84bw997"); // case 3: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("7b0edu0ae5neykrk7cf5ssskw"); // { HTMLstate.lbl = mkLabel((htmlvsp[(2) - (3)].tbl),1); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("9o9wpnyoqhlymcmbfbx4eoii3"); // case 4: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("1n3nvtp3qye71m9tv8pcveann"); // { cleanup(); goto htmlabortlab; } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("2l9i1e6ufz8i61ksw5x2douj"); // case 5: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("dhskox2sfaf7vqe01zwc52xch"); // { (htmlval.txt) = mkText(); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("aq0mcxx5aqy1tk410oeaicrz"); // case 8: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("8z66z0w2o50jn2ov9ttch7d4n"); // { appendFItemList(HTMLstate.str);} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("3fjp05wa4on3vfha31n5uf9c3"); // case 9: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("9v7p9jjwfci70d78n6ydhduyj"); // {appendFLineList((htmlvsp[(1) - (1)].i));} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("4wkftacr8qkkw7lq6winsirev"); // case 18: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("cia0qey5tfi2758qzo75k4r1a"); // { pushFont ((htmlvsp[(1) - (1)].font)); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("btnbf68hd81l8x43edgngqkn4"); // case 19: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("90nfzt90tr98p02wpfyghsiu"); // { popFont (); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("6b3z3u3dqncd4foiz9f4il304"); // case 20: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("e8qczq73ljl23tuukg4vd1swz"); // {pushFont((htmlvsp[(1) - (1)].font));} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("epqpoh4lzr1gr3b0h7lv6suoj"); // case 21: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("1f2vasoxz080ueipaaxp22ppm"); // {popFont();} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("9f8ykijwy76c3vifbbpux0n4y"); // case 22: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("e8qczq73ljl23tuukg4vd1swz"); // {pushFont((htmlvsp[(1) - (1)].font));} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("csxcbt7njg0z17ocb9bzv53w9"); // case 23: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("1f2vasoxz080ueipaaxp22ppm"); // {popFont();} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("90jn0veof2gkokrhklmj2yng4"); // case 24: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("e8qczq73ljl23tuukg4vd1swz"); // {pushFont((htmlvsp[(1) - (1)].font));} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("a1zicssxikyxg7770ja6oi1qo"); // case 25: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("1f2vasoxz080ueipaaxp22ppm"); // {popFont();} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("91777erp91zdakf2rq4nhm80d"); // case 26: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("e8qczq73ljl23tuukg4vd1swz"); // {pushFont((htmlvsp[(1) - (1)].font));} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("10s9wf75pcu4xgky3vzfov0rr"); // case 27: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("1f2vasoxz080ueipaaxp22ppm"); // {popFont();} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("1pcg7jpxjlrxymtxnqe2n0omu"); // case 28: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("e8qczq73ljl23tuukg4vd1swz"); // {pushFont((htmlvsp[(1) - (1)].font));} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("2y6jol0ugwkre8ty8azrihcw8"); // case 29: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("1f2vasoxz080ueipaaxp22ppm"); // {popFont();} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("3n69l4nxtlpullf9g4klblcml"); // case 30: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("e8qczq73ljl23tuukg4vd1swz"); // {pushFont((htmlvsp[(1) - (1)].font));} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("2z2j2xsio9grsk7azwojofq1a"); // case 31: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("1f2vasoxz080ueipaaxp22ppm"); // {popFont();} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("dgjfss93xjj8va3zpzsmwsc7s"); // case 32: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("e8qczq73ljl23tuukg4vd1swz"); // {pushFont((htmlvsp[(1) - (1)].font));} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("9y3ycu2dl1ja9jadl9mg7jk67"); // case 33: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("1f2vasoxz080ueipaaxp22ppm"); // {popFont();} +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("esz4cbak5l686zq9r9zbi7yx5"); // case 34: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("3yzzoqblzdwwpw1wlgq3f1f04"); // { (htmlval.i) = (htmlvsp[(1) - (2)].i); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("eestp885g0ixxylrl2yz4l4jk"); // case 35: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("dnna54cmdi58ik8c0goecex1s"); // { (htmlval.i) = (htmlvsp[(1) - (1)].i); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("av4z5qte05unsmsl8oy2jw5wh"); // case 38: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("37vabglvl5ih3c2yuds3fywqz"); // { +UNSUPPORTED("ewpf9i8j025kajqhi528c19ql"); // if (nonSpace((((((HTMLstate.str)->ptr >= (HTMLstate.str)->eptr) ? agxbmore(HTMLstate.str,1) : 0), (int)(*(HTMLstate.str)->ptr++ = ((unsigned char)'\0'))),(char*)((HTMLstate.str)->ptr = (HTMLstate.str)->buf)))) { +UNSUPPORTED("338qdumt8habcjmp30xbzvrkz"); // htmlerror ("Syntax error: non-space string used before "); +UNSUPPORTED("9r57lrawwpl0gg3it2vn6ob9b"); // cleanup(); goto htmlabortlab; +UNSUPPORTED("4v3ujrl58y59e7pqk0ke5t564"); // } +UNSUPPORTED("590uk3khb9z1ux8u67qoyo5pm"); // (htmlvsp[(2) - (2)].tbl)->u.p.prev = HTMLstate.tblstack; +UNSUPPORTED("9mypcdq2tul8wnq3jy3vrwzqk"); // (htmlvsp[(2) - (2)].tbl)->u.p.rows = dtopen(&rowDisc, Dtqueue); +UNSUPPORTED("4pl4jraa22oxy62260ktc2w1n"); // HTMLstate.tblstack = (htmlvsp[(2) - (2)].tbl); +UNSUPPORTED("464k8vyd8pje5qwl5tx0u9bzb"); // (htmlvsp[(2) - (2)].tbl)->font = HTMLstate.fontstack->cfont; +UNSUPPORTED("eqcw1dykacq06vtk7ccf8uozu"); // (htmlval.tbl) = (htmlvsp[(2) - (2)].tbl); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("clipffhxj206f2zoz5tskxfso"); // case 39: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("ewpf9i8j025kajqhi528c19ql"); // if (nonSpace((((((HTMLstate.str)->ptr >= (HTMLstate.str)->eptr) ? agxbmore(HTMLstate.str,1) : 0), (int)(*(HTMLstate.str)->ptr++ = ((unsigned char)'\0'))),(char*)((HTMLstate.str)->ptr = (HTMLstate.str)->buf)))) { +UNSUPPORTED("et5u9t37wg1ho6shuajarku6o"); // htmlerror ("Syntax error: non-space string used after
"); +UNSUPPORTED("9r57lrawwpl0gg3it2vn6ob9b"); // cleanup(); goto htmlabortlab; +UNSUPPORTED("4v3ujrl58y59e7pqk0ke5t564"); // } +UNSUPPORTED("cngbw12mm3b00wmxzcb5kuivk"); // (htmlval.tbl) = HTMLstate.tblstack; +UNSUPPORTED("186brzy420t3w4it4fgx6ijl8"); // HTMLstate.tblstack = HTMLstate.tblstack->u.p.prev; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("508xojiq76e68ysea7ccx0988"); // case 40: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("1961lax54v153ekh91m0fix4j"); // { (htmlval.tbl) = (htmlvsp[(1) - (1)].tbl); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("707q21176uh540icjdkmho8lp"); // case 41: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("2c7tp5g9gnd46lw9atbzj9g8l"); // { (htmlval.tbl)=(htmlvsp[(2) - (3)].tbl); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("afkusc5gt7341vg6q20kyt3r0"); // case 42: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("2c7tp5g9gnd46lw9atbzj9g8l"); // { (htmlval.tbl)=(htmlvsp[(2) - (3)].tbl); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("aw1w7mfmqa9ga8wr6x4u6nbju"); // case 43: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("2c7tp5g9gnd46lw9atbzj9g8l"); // { (htmlval.tbl)=(htmlvsp[(2) - (3)].tbl); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("alyqwgnskt6d6wilhbz1voo06"); // case 44: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("2c7tp5g9gnd46lw9atbzj9g8l"); // { (htmlval.tbl)=(htmlvsp[(2) - (3)].tbl); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("23po4ixywlwb8futv80yuc377"); // case 45: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("2c7tp5g9gnd46lw9atbzj9g8l"); // { (htmlval.tbl)=(htmlvsp[(2) - (3)].tbl); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("co51vw9d73gymlc8231s1jobg"); // case 48: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("7vnv5jx3hrknt46g99ujh9d1n"); // { (htmlval.p) = (htmlvsp[(1) - (1)].p); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("3gd6s52j3cevgz1ud9ys8mmpu"); // case 49: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("8u2opo0hv8qogogtryacsweg2"); // { (htmlval.p) = (htmlvsp[(2) - (2)].p); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("4hiji17koy9b0nvi4qcb7f0yn"); // case 50: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("bf8q1jk3octcdukgfu0ape1wu"); // { (htmlvsp[(1) - (3)].p)->ruled = 1; (htmlval.p) = (htmlvsp[(3) - (3)].p); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("605ei0ilu3nz1gtra52oi7mz3"); // case 51: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("2yogfcs5uhf5ebch8wotuiuoc"); // { addRow (); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("9qbtgt2eyxxuukc88ljehppv1"); // case 52: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("1a7rveoo2qzi2o7uoju1l5rhh"); // { (htmlval.p) = lastRow(); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("a5l2sixwhiv4x59rzexutoo1"); // case 53: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("byhxvkifsh7vwq5dl6e5h8ion"); // { (htmlval.cell) = (htmlvsp[(1) - (1)].cell); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("d9qqg2poxec5i2gk2tlzjceze"); // case 54: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("d18xjbl64b86qw7e2yoqcg1q5"); // { (htmlval.cell) = (htmlvsp[(2) - (2)].cell); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("19bjcrzc7duy98u3gs54bkn75"); // case 55: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("a3ug5yuidqw370oyrodag12om"); // { (htmlvsp[(1) - (3)].cell)->ruled |= 1; (htmlval.cell) = (htmlvsp[(3) - (3)].cell); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("67uutyij1gj1990fya85n5ky9"); // case 56: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("2mr5xhydq1atn13mwhmbrfbgw"); // { setCell((htmlvsp[(1) - (2)].cell),(htmlvsp[(2) - (2)].tbl),1); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("959w7yr2dhhobu7nk3tnemg3n"); // case 57: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("8cwbrevgxb23kwvd1ktbrj7gf"); // { (htmlval.cell) = (htmlvsp[(1) - (4)].cell); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("p7d04q56jydruu4g4mkcl0sv"); // case 58: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("5m72e6wtneamm6ebfhy92hpah"); // { setCell((htmlvsp[(1) - (2)].cell),(htmlvsp[(2) - (2)].txt),2); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("2e8vk62ndof1wckppsf3h1s08"); // case 59: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("8cwbrevgxb23kwvd1ktbrj7gf"); // { (htmlval.cell) = (htmlvsp[(1) - (4)].cell); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("datyn4rldj3j181mig7lm4p15"); // case 60: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("b3utjfd3rmn2f9h6i25w1py22"); // { setCell((htmlvsp[(1) - (2)].cell),(htmlvsp[(2) - (2)].img),3); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("arwsoeo1a8oc675m9cdqjutkj"); // case 61: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("8cwbrevgxb23kwvd1ktbrj7gf"); // { (htmlval.cell) = (htmlvsp[(1) - (4)].cell); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("dvs3metp9y50zqp24wirfa2mt"); // case 62: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("b8wwv09322ks29oox9p4ixlbf"); // { setCell((htmlvsp[(1) - (1)].cell),mkText(),2); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("bumsxvl14bzsf1d8ynzopdhvp"); // case 63: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("6orbcijshpuell53yiuig421k"); // { (htmlval.cell) = (htmlvsp[(1) - (3)].cell); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("cif7nn92zrlfslvnv5c4lpoku"); // case 64: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("c96y3n361innrbk53th9a7qkk"); // { (htmlval.img) = (htmlvsp[(1) - (2)].img); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("dxemu7derx72r4fpo6fzfantn"); // case 65: +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("97oa6k8kz5ke4v3eaknzgmh4g"); // { (htmlval.img) = (htmlvsp[(1) - (1)].img); } +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("8sch3zvqi27y4ab9h9s76ge3l"); // /* Line 1787 of yacc.c */ +UNSUPPORTED("dlej2d1ppih1bnw53vhocc61k"); // default: break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("iekbchkdfqskjw9ynyxgcn9a"); // /* User semantic actions sometimes alter htmlchar, and that requires +UNSUPPORTED("5c46um0ycteiasc0knv5w1vvj"); // that htmltoken be updated with the new translation. We take the +UNSUPPORTED("8ggwt6kwgt9e58xuflmz2mjt3"); // approach of translating immediately before every use of htmltoken. +UNSUPPORTED("5egmt4bmrda5rwmq0fxaut100"); // One alternative is translating here after every semantic action, +UNSUPPORTED("cbfgp6r4p0aww4ln7e4wjq5rg"); // but that translation would be missed if the semantic action invokes +UNSUPPORTED("88rydnmcc693ix76nkm304dsp"); // YYABORT, YYACCEPT, or YYERROR immediately after altering htmlchar or +UNSUPPORTED("c4u72wy240sife8xvhjcdf3y"); // if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an +UNSUPPORTED("9oqy8bmho7vno5ewpwljpvk7k"); // incorrect destructor might then be invoked immediately. In the +UNSUPPORTED("2dm4du9w60sge1uyx4vrwgtuv"); // case of YYERROR or YYBACKUP, subsequent parser actions might lead +UNSUPPORTED("55ajnkklldzargdu2v7xxw8jh"); // to an incorrect destructor call or verbose syntax error message +UNSUPPORTED("2w6gaiusmvs9119tusfj7wmgn"); // before the lookahead is translated. */ +UNSUPPORTED("3nswekisilyfverb25pazm044"); // ; +UNSUPPORTED("c7j4t24hd7cwzrmx18y9iqwdh"); // (htmlvsp -= (htmllen), htmlssp -= (htmllen)); +UNSUPPORTED("bz286e9y9g0xdwt8742rmztvj"); // htmllen = 0; +UNSUPPORTED("3nswekisilyfverb25pazm044"); // ; +UNSUPPORTED("5lqsu0sbtbs4inng6cq54owp8"); // *++htmlvsp = htmlval; +UNSUPPORTED("8zf4hex7pjvkzs6628u0usoop"); // /* Now `shift' the result of the reduction. Determine what state +UNSUPPORTED("9p956m8qfuj78tnsyhxtvs3t4"); // that goes to, based on the state we popped back to and the rule +UNSUPPORTED("2sr0m6m0qte5wg0zclc83vtln"); // number reduced by. */ +UNSUPPORTED("8jz2j9zmtqrogcli2jzhbbwi6"); // htmln = htmlr1[htmln]; +UNSUPPORTED("5ixiqahnqkjv8q3m3of6vehl7"); // htmlstate = htmlpgoto[htmln - 41] + *htmlssp; +UNSUPPORTED("76jgop7fzcft7svaac9elxf5b"); // if (0 <= htmlstate && htmlstate <= 271 && htmlcheck[htmlstate] == *htmlssp) +UNSUPPORTED("cyell8crufho8sj526w9dpa9r"); // htmlstate = htmltable[htmlstate]; +UNSUPPORTED("8983svt6g1kt3l45bd6ju9mw6"); // else +UNSUPPORTED("ax3i51ewdb6vli0xfxfpo74le"); // htmlstate = htmldefgoto[htmln - 41]; +UNSUPPORTED("c663h0k0l1p8coybbax2cprhf"); // goto htmlnewstate; +UNSUPPORTED("brpyacmu3j2c5b5b57c44c6xg"); // /*------------------------------------. +UNSUPPORTED("1rjyusg55pk61pcfnxvsb0040"); // | htmlerrlab -- here on detecting error | +UNSUPPORTED("46kmo9tkqrq2trhedjhrmq5iu"); // `------------------------------------*/ +UNSUPPORTED("9d517ijj31l5l3ckzxd4p2znp"); // htmlerrlab: +UNSUPPORTED("6pctfudiscetk242w9vfsytui"); // /* Make sure we have latest lookahead translation. See comments at +UNSUPPORTED("9z8lh3976ui2i6adwx4bu8xtu"); // user semantic actions for why this is necessary. */ +UNSUPPORTED("6z736i64t6r2qzs9milgcdk1g"); // htmltoken = htmlchar == (-2) ? (-2) : ((unsigned int) (htmlchar) <= 295 ? htmltranslate[htmlchar] : 2); +UNSUPPORTED("4yyok9q9sqmbmxchbquk9rz3a"); // /* If not already recovering from an error, report this error. */ +UNSUPPORTED("bm2loeytnip4ktaxldi733h6m"); // if (!htmlerrstatus) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("buq37ww7nuj62jmmib12r1mwh"); // ++htmlnerrs; +UNSUPPORTED("1bpzuhw3denyecvhx8asdu461"); // htmlerror ("syntax error"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8rogseo26ujq8xs4gggbm7cuw"); // if (htmlerrstatus == 3) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("3jyg22xuaw01ib5n6y8iv3xxr"); // /* If just tried and failed to reuse lookahead token after an +UNSUPPORTED("4zj2myg3clgam20xdvt28usk8"); // error, discard it. */ +UNSUPPORTED("882e32a616vrj74bwf7wci72l"); // if (htmlchar <= 0) +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("ps0ydhmk8cvulxq94uiebnl3"); // /* Return failure if at end of input. */ +UNSUPPORTED("5vfha8pnevahcje16j3nanluo"); // if (htmlchar == 0) +UNSUPPORTED("bexuvhp9bbor4sm4tq9c3mqvk"); // goto htmlabortlab; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("6ckiucqebiz712rdwog4hsrrz"); // htmldestruct ("Error: discarding", +UNSUPPORTED("csou9g15a99mvw0r7cibdqx9h"); // htmltoken, &htmllval); +UNSUPPORTED("ch9nagg8nbc7qnffa8prfjqye"); // htmlchar = (-2); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cngu0btwjacz5b793e8yvi9m1"); // /* Else will try to reuse lookahead token after shifting the error +UNSUPPORTED("38vbb7wijegv8on4kj8r2jh3w"); // token. */ +UNSUPPORTED("7t9hql86y7nqz2u0lmuofwnz4"); // goto htmlerrlab1; +UNSUPPORTED("6iskxmjpvgrnnac6655f5jk67"); // /*---------------------------------------------------. +UNSUPPORTED("iicgdcdwq0m5nosdiw4izj9x"); // | htmlerrorlab -- error raised explicitly by YYERROR. | +UNSUPPORTED("6a0f8547ydra66tf81ssie9pn"); // `---------------------------------------------------*/ +UNSUPPORTED("4i1l4p9hiar4ig5bquwi2jihf"); // htmlerrorlab: +UNSUPPORTED("skx5cc7fpyqelhc1lbzwq6gy"); // /* Pacify compilers like GCC when the user code never invokes +UNSUPPORTED("4s75galk93le3pveqhpirxulu"); // YYERROR and the label htmlerrorlab therefore never appears in user +UNSUPPORTED("2cx96j1h5f1sf0pyotl6w1g31"); // code. */ +UNSUPPORTED("9850ib9fy0bgpnxd1mv3rhcl0"); // if (/*CONSTCOND*/ 0) +UNSUPPORTED("6zy3m571kj87u92stfjt6opl3"); // goto htmlerrorlab; +UNSUPPORTED("2lhgt1uq3z8cnzed8w920d1og"); // /* Do not reclaim the symbols of the rule which action triggered +UNSUPPORTED("2qdujvpg7me3yjqefsbmb4nbl"); // this YYERROR. */ +UNSUPPORTED("c7j4t24hd7cwzrmx18y9iqwdh"); // (htmlvsp -= (htmllen), htmlssp -= (htmllen)); +UNSUPPORTED("bz286e9y9g0xdwt8742rmztvj"); // htmllen = 0; +UNSUPPORTED("3nswekisilyfverb25pazm044"); // ; +UNSUPPORTED("89np8b0s1ct55jyloknqnd5r6"); // htmlstate = *htmlssp; +UNSUPPORTED("7t9hql86y7nqz2u0lmuofwnz4"); // goto htmlerrlab1; +UNSUPPORTED("a9uzsnursnm07o2p12lh2sbdg"); // /*-------------------------------------------------------------. +UNSUPPORTED("c2s6c3wducdfls67fw5la9uzw"); // | htmlerrlab1 -- common code for both syntax error and YYERROR. | +UNSUPPORTED("cinw8ra05yfs6jshwnk7uer8g"); // `-------------------------------------------------------------*/ +UNSUPPORTED("4u5v2gjw6xdqaimmd8xxnmmqa"); // htmlerrlab1: +UNSUPPORTED("7tra7n5eph1rqkaplx9bx803l"); // htmlerrstatus = 3; /* Each real token shifted decrements this. */ +UNSUPPORTED("9qdgu2bhbvj6h80iki9hjhpcx"); // for (;;) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("2za6u6avash54xctdnji0f1q2"); // htmln = htmlpact[htmlstate]; +UNSUPPORTED("3yz8nkid1zwkst8vh75hu2n12"); // if (!((htmln) == (-82))) +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("bwuzd1yyx0imm45e3al50jbm2"); // htmln += 1; +UNSUPPORTED("b5yucqnz3ohmoz0ut07sm2sx0"); // if (0 <= htmln && htmln <= 271 && htmlcheck[htmln] == 1) +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("doitq6ha9cmmgsv7lbwhrs4lm"); // htmln = htmltable[htmln]; +UNSUPPORTED("dxhfg17ims4zjdry4ffy00aku"); // if (0 < htmln) +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1nekbbuf2scf8o8o56p3e2btr"); // /* Pop the current state because it cannot handle the error token. */ +UNSUPPORTED("b49suxrb4nncpcv26snr0z7pt"); // if (htmlssp == htmlss) +UNSUPPORTED("94rnqtiux3wthf9kn8utqcskz"); // goto htmlabortlab; +UNSUPPORTED("bigm8tcgr6vlffs6ikfevaeat"); // htmldestruct ("Error: popping", +UNSUPPORTED("9bvdkhmexgs1n9hkxlus6cea0"); // htmlstos[htmlstate], htmlvsp); +UNSUPPORTED("4qs0elpwd25wpw12cajvuatqb"); // (htmlvsp -= (1), htmlssp -= (1)); +UNSUPPORTED("76dfl5dad6j40axb12pf4cyti"); // htmlstate = *htmlssp; +UNSUPPORTED("3ejmh10g3kyn79v59obt4uwve"); // ; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("769m6xe129uc5szy8zzxdhv2d"); // *++htmlvsp = htmllval; +UNSUPPORTED("1bunp144fpibi7v7rbgn16l6l"); // /* Shift the error token. */ +UNSUPPORTED("3nswekisilyfverb25pazm044"); // ; +UNSUPPORTED("c7lyo4hbtrr9qa5r64z6spufb"); // htmlstate = htmln; +UNSUPPORTED("c663h0k0l1p8coybbax2cprhf"); // goto htmlnewstate; +UNSUPPORTED("179qxptpyl5068065s1ai8g3c"); // /*-------------------------------------. +UNSUPPORTED("8ml03sx2gxmgapptl0loa0yye"); // | htmlacceptlab -- YYACCEPT comes here. | +UNSUPPORTED("2bvn7c0u1oq31d3b0uk6m3tdy"); // `-------------------------------------*/ +UNSUPPORTED("atjzjvu9d92ok6w3boxja3e1s"); // htmlacceptlab: +UNSUPPORTED("3jjyvn1odcad6auhoq4bs11j3"); // htmlresult = 0; +UNSUPPORTED("9l6jd9stt5ybckzpzyis66nmb"); // goto htmlreturn; +UNSUPPORTED("8p4f508auqnz4koon32xrgqkm"); // /*-----------------------------------. +UNSUPPORTED("3loqszdjbzlidofdd2axlddqg"); // | htmlabortlab -- YYABORT comes here. | +UNSUPPORTED("6p3zuxhtllqujwb6275y1iuol"); // `-----------------------------------*/ +UNSUPPORTED("3aouexcwnytfsdj42oyaca2da"); // htmlabortlab: +UNSUPPORTED("6i8l4mmmlpggft688iduidz1m"); // htmlresult = 1; +UNSUPPORTED("9l6jd9stt5ybckzpzyis66nmb"); // goto htmlreturn; +UNSUPPORTED("1visspreqlkrsxbrmmtajzyi0"); // /*-------------------------------------------------. +UNSUPPORTED("qpcyk6y55l4vluz5g8ufy011"); // | htmlexhaustedlab -- memory exhaustion comes here. | +UNSUPPORTED("3zfwm8se9uqcr4uczanjlo4wx"); // `-------------------------------------------------*/ +UNSUPPORTED("aokx2t39kso6px6fmlx7ft34g"); // htmlexhaustedlab: +UNSUPPORTED("2rkna5fdak8uri7drj0qu3z5g"); // htmlerror ("memory exhausted"); +UNSUPPORTED("8vl21z2phgo2cog42ylxbihos"); // htmlresult = 2; +UNSUPPORTED("50117q88lfg743xhieoyg9dtb"); // /* Fall through. */ +UNSUPPORTED("dmu8m1pnyblrdchdqxgxnu8yy"); // htmlreturn: +UNSUPPORTED("3m562h7x44v05dctlef9nhmxp"); // if (htmlchar != (-2)) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("1yvk3imqcd71tq0dg520dalwv"); // /* Make sure we have latest lookahead translation. See comments at +UNSUPPORTED("8f533hh53bahoyrmc8vumq0er"); // user semantic actions for why this is necessary. */ +UNSUPPORTED("84q66xdmm7egi73lpjcjdjc6q"); // htmltoken = ((unsigned int) (htmlchar) <= 295 ? htmltranslate[htmlchar] : 2); +UNSUPPORTED("3i0moae9oscbnik305696hlos"); // htmldestruct ("Cleanup: discarding lookahead", +UNSUPPORTED("e214juwntghvieivfzd3pn7cd"); // htmltoken, &htmllval); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2lhgt1uq3z8cnzed8w920d1og"); // /* Do not reclaim the symbols of the rule which action triggered +UNSUPPORTED("brvt6wka5tijolvbute9f9vjy"); // this YYABORT or YYACCEPT. */ +UNSUPPORTED("c7j4t24hd7cwzrmx18y9iqwdh"); // (htmlvsp -= (htmllen), htmlssp -= (htmllen)); +UNSUPPORTED("3nswekisilyfverb25pazm044"); // ; +UNSUPPORTED("3g1bs2oo8txf91nhyrmaprez8"); // while (htmlssp != htmlss) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("d8meoblon1ra750w3rbqlgfje"); // htmldestruct ("Cleanup: popping", +UNSUPPORTED("4laubaxw8wx30tmj1hvzp0itg"); // htmlstos[*htmlssp], htmlvsp); +UNSUPPORTED("4qs0elpwd25wpw12cajvuatqb"); // (htmlvsp -= (1), htmlssp -= (1)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dfgvzh0l75rqigf8pgwy3u4m2"); // if (htmlss != htmlssa) +UNSUPPORTED("7z1yjgom1lw6z0yfz75xfclpw"); // free (htmlss); +UNSUPPORTED("96m641qde7y8nrj81kip0kdli"); // /* Make sure YYID is used. */ +UNSUPPORTED("4c04yxhxjxnejng4nlpmarh0c"); // return (htmlresult); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dagfnuu2rb04nuow8simrvqdg +// htmllabel_t* parseHTML (char* txt, int* warn, htmlenv_t *env) +public static Object parseHTML(Object... arg) { +UNSUPPORTED("226x3zxbn3f7kzhqucskm0uoq"); // htmllabel_t* +UNSUPPORTED("8cvtnulc9n3wdvcnyz42lwhzy"); // parseHTML (char* txt, int* warn, htmlenv_t *env) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("63meyud67rookn7jurut0266j"); // unsigned char buf[128]; +UNSUPPORTED("5kki2fqr7sc6h70wuy48nmwoz"); // agxbuf str; +UNSUPPORTED("151zh677cirxjroyz07ylg4qu"); // htmllabel_t* l; +UNSUPPORTED("ip3d7wcpkp2cvqvcytoydu0c"); // sfont_t dfltf; +UNSUPPORTED("bnowsob1rpic47r9qahesp5z9"); // dfltf.cfont = NULL; +UNSUPPORTED("1qchcbo1e5aphcn9agydjwpur"); // dfltf.pfont = NULL; +UNSUPPORTED("bf7yeekp5lae3g14li808nkom"); // HTMLstate.fontstack = &dfltf; +UNSUPPORTED("97wdd3n2my59w2bi1alxtx7gl"); // HTMLstate.tblstack = 0; +UNSUPPORTED("5942cc6lkx6yzhwmdaojw2kg4"); // HTMLstate.lbl = 0; +UNSUPPORTED("3fpf8hxu4jf37tofuik9m4l1i"); // HTMLstate.gvc = GD_gvc(env->g); +UNSUPPORTED("avdl29glu77okugd20p4ev32l"); // HTMLstate.fitemList = dtopen(&fstrDisc, Dtqueue); +UNSUPPORTED("e2bulyqtlb1ygl39ntnk15fgp"); // HTMLstate.fspanList = dtopen(&fspanDisc, Dtqueue); +UNSUPPORTED("67g016u4kj6rhoy4ltearmu5f"); // agxbinit (&str, 128, buf); +UNSUPPORTED("6qe9sv6fwllra61m6ze3qcdml"); // HTMLstate.str = &str; +UNSUPPORTED("79h006ssg3lcsf0nzr3jmeear"); // if (initHTMLlexer (txt, &str, env)) {/* failed: no libexpat - give up */ +UNSUPPORTED("cf2n9mlnm2nlhfvofhkylf8lu"); // *warn = 2; +UNSUPPORTED("8vl68pdd939xriomclc4lhjbd"); // l = NULL; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("e3wc96h4r8zbmwy1sdt30ax31"); // else { +UNSUPPORTED("21cpjvbw10v3tqxxuaw7ebs17"); // htmlparse(); +UNSUPPORTED("1ts3x58vf766fgbehwhtqjre6"); // *warn = clearHTMLlexer (); +UNSUPPORTED("41cqw8kpgh69hd6d7ljh2vi8x"); // l = HTMLstate.lbl; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("4slkyw4zzk5uohd8pvfbzzogm"); // dtclose (HTMLstate.fitemList); +UNSUPPORTED("79tfoea2y63wx0wpq88o2sgx1"); // dtclose (HTMLstate.fspanList); +UNSUPPORTED("9w2nanryjis49dz84vnpnvcdb"); // HTMLstate.fitemList = NULL; +UNSUPPORTED("83u1p988zjx0anlxa62ac2704"); // HTMLstate.fspanList = NULL; +UNSUPPORTED("2z66fvlnqunk5hsw63l7pvdb0"); // HTMLstate.fontstack = NULL; +UNSUPPORTED("3pycv6y7tnm4uu44fp7ut5yma"); // agxbfree (&str); +UNSUPPORTED("29x14oexykxrkgq9s3x6kssi1"); // return l; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/htmltable__c.java plantuml-8039/src/gen/lib/common/htmltable__c.java --- plantuml-8024/src/gen/lib/common/htmltable__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/htmltable__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,2761 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import h.textlabel_t; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class htmltable__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 6ddu6mrp88g3kun2w1gg8ck8t +// typedef Dict_t PointSet + + +//1 6t1gwljnc5qkhgkp9oc8y7lhm +// typedef Dict_t PointMap + + + + +//3 4ch470ajf5jjpt0x06pdydd7h +// static void pushFontInfo(htmlenv_t * env, textfont_t * fp, textfont_t * savp) +public static Object pushFontInfo(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("ayvhpxjw4xcz87pueo2oq06m6"); // pushFontInfo(htmlenv_t * env, textfont_t * fp, textfont_t * savp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9sjgc0h79snkoxdl6iqyjo8u9"); // if (env->finfo.name) { +UNSUPPORTED("dk15v13kyf3r8nmxnm74hvp8i"); // if (fp->name) { +UNSUPPORTED("ehqqe914nrvdph3vl9gj2ncex"); // savp->name = env->finfo.name; +UNSUPPORTED("bt7cngsy9d4toqz7dp31pfqxt"); // env->finfo.name = fp->name; +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("8peszenokq4ldq1kavowttnkf"); // savp->name = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6w9j6oix2xgb9a97st9tghy29"); // if (env->finfo.color) { +UNSUPPORTED("9vra7mcop0lkhg45mujqtnwrg"); // if (fp->color) { +UNSUPPORTED("c1py0t0pe23z6aehfyftvxsv0"); // savp->color = env->finfo.color; +UNSUPPORTED("ccv0cwzt7o51dys55krsirwia"); // env->finfo.color = fp->color; +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("6xl4fcz83qtp4etoqtkq51emh"); // savp->color = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e14wtviiw2ahsqfas8e848746"); // if (env->finfo.size >= 0) { +UNSUPPORTED("45vo5n3q0mqya54l2s79pgvj6"); // if (fp->size >= 0) { +UNSUPPORTED("22vfedi6d9vlihfa03jjob4h4"); // savp->size = env->finfo.size; +UNSUPPORTED("bmbq750lqsmtv7a8fj890v9y7"); // env->finfo.size = fp->size; +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("cchc0ryp37ojo1vgumfsd3abt"); // savp->size = -1.0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eiqsenv0wvs25ylb29oq7hypz +// static void popFontInfo(htmlenv_t * env, textfont_t * savp) +public static Object popFontInfo(Object... arg) { +UNSUPPORTED("1cgn1czuwy1nx4ugy78281irz"); // static void popFontInfo(htmlenv_t * env, textfont_t * savp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6jxnyv4xgyxo0tbyynuv0i6cl"); // if (savp->name) +UNSUPPORTED("bu9rkh2xzcxhe9iq28iwvbrkf"); // env->finfo.name = savp->name; +UNSUPPORTED("e8o69ol1utirumjuxd1xbcege"); // if (savp->color) +UNSUPPORTED("81p6dbb5wa9nwy3nva46jh89f"); // env->finfo.color = savp->color; +UNSUPPORTED("8bhlu8bun66gqt3rurt7enkg3"); // if (savp->size >= 0.0) +UNSUPPORTED("b1us0jzw6cgn6mrvtl9dkugsy"); // env->finfo.size = savp->size; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2fq7cq3v0wodc2zkdz2nrycbr +// static void emit_htextspans(GVJ_t * job, int nspans, htextspan_t * spans, pointf p, double halfwidth_x, textfont_t finfo, boxf b, int simple) +public static Object emit_htextspans(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("1wdbin7u1ntostduoa76bdjzz"); // emit_htextspans(GVJ_t * job, int nspans, htextspan_t * spans, pointf p, +UNSUPPORTED("crmamnha0rqm8otefy73aptor"); // double halfwidth_x, textfont_t finfo, boxf b, int simple) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j; +UNSUPPORTED("cx9j6xm3jqky3tevy8fneodbe"); // double center_x, left_x, right_x; +UNSUPPORTED("7mkw69p8oqa8nlbwb8ud7usiw"); // textspan_t tl; +UNSUPPORTED("bj8z0bc2axhhlncbixwp8jh0k"); // textfont_t tf; +UNSUPPORTED("3j24sqlnqeaub8hy7zt3lb0b1"); // pointf p_ = { 0.0, 0.0 }; +UNSUPPORTED("4r4excvnla9rwlduw55712ow7"); // textspan_t *ti; +UNSUPPORTED("45fuq5dh6hs7iztxl5d5wx37f"); // center_x = p.x; +UNSUPPORTED("awdpbxohoxsjwiqbanelrauu5"); // left_x = center_x - halfwidth_x; +UNSUPPORTED("2hdxhi7odrzpzo04esbm37v42"); // right_x = center_x + halfwidth_x; +UNSUPPORTED("d4ev395hthktbjl2ahd7e2wg3"); // /* Initial p is in center of text block; set initial baseline +UNSUPPORTED("c67x0nb4cdc1jd4lei5i6nkpx"); // * to top of text block. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("36qa3yr9jm38tawq7w7cx38f9"); // p_.y = p.y + (b.UR.y - b.LL.y) / 2.0; +UNSUPPORTED("e1k5mxxhf85gb4u78i302a3ob"); // gvrender_begin_label(job, LABEL_HTML); +UNSUPPORTED("c0fuxrmn5hd32tpvw3tpbfy1j"); // for (i = 0; i < nspans; i++) { +UNSUPPORTED("8e1nf4mptpu0w5h0f0pzslp6i"); // /* set p.x to leftmost point where the line of text begins */ +UNSUPPORTED("19cjwh3w8uwxkcc1xewxtlrop"); // switch (spans[i].just) { +UNSUPPORTED("bwy7mh2nb7lz950r20rfilwa4"); // case 'l': +UNSUPPORTED("cneergejdojt6gzdoaegxje2p"); // p.x = left_x; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("43ds1cyu29ex66kcjszrcu3mp"); // case 'r': +UNSUPPORTED("5x1x2my0jb267e130r4g3kxkq"); // p.x = right_x - spans[i].size; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("f187wptsr73liavtlyoyfovp3"); // case 'n': +UNSUPPORTED("66i0a4cbpiqi767bvpzxbjug8"); // p.x = center_x - spans[i].size / 2.0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("aoauejhf6amiurl8cnxru1ruw"); // p_.y -= spans[i].lfsize; /* move to current base line */ +UNSUPPORTED("bboaqj628pafi3a0id11gblz"); // ti = spans[i].items; +UNSUPPORTED("89pj2bp7x59kxmu9db5k5r9ak"); // for (j = 0; j < spans[i].nitems; j++) { +UNSUPPORTED("79pjoi9gupgh1xxtw8ad2gqbv"); // if (ti->font && (ti->font->size > 0)) +UNSUPPORTED("6m5sswirwqdnz21zquuj5zemo"); // tf.size = ti->font->size; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("b6lew4k4yh0wfhu7awnjagl63"); // tf.size = finfo.size; +UNSUPPORTED("euz91acve0hfy7vofqzv9x881"); // if (ti->font && ti->font->name) +UNSUPPORTED("4rfi5an335hkjocd9qof6om2i"); // tf.name = ti->font->name; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("5jcfm7sme1hrdhi04daitbjn9"); // tf.name = finfo.name; +UNSUPPORTED("93rk4z6u29nrjzs6j59cs9g4c"); // if (ti->font && ti->font->color) +UNSUPPORTED("4w5su152lwqcs6pqj0vph6yhb"); // tf.color = ti->font->color; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("4chspc128mj9l48k9izj3jj6k"); // tf.color = finfo.color; +UNSUPPORTED("b9upj0j4iwn0hc005x57k9lxv"); // if (ti->font && ti->font->flags) +UNSUPPORTED("b1kz7cxn462c0p6uh8wqj5h8q"); // tf.flags = ti->font->flags; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("c4jea3ke17m0h4331njj2k2wx"); // tf.flags = 0; +UNSUPPORTED("8bthw263veuty3iyu3crlyw1m"); // gvrender_set_pencolor(job, tf.color); +UNSUPPORTED("e01avz1xuoq9qiajo0anysuq8"); // tl.str = ti->str; +UNSUPPORTED("5auykppls49tqnslmibzvq4bs"); // tl.font = &tf; +UNSUPPORTED("6csphn5s1ekloz0qqs37knb2"); // tl.yoffset_layout = ti->yoffset_layout; +UNSUPPORTED("dsssg5z0nhgclrz1kmcwg84yo"); // if (simple) +UNSUPPORTED("660bhxe4zz7qsewdrxxxq9rpg"); // tl.yoffset_centerline = ti->yoffset_centerline; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("bnkdcy6ld9idfpsv8xxvcjdcp"); // tl.yoffset_centerline = 1; +UNSUPPORTED("5bj0vlsotfzhyheox1fswybcf"); // tl.font->postscript_alias = ti->font->postscript_alias; +UNSUPPORTED("7u3pwcreicp16w0et8ov8ve9v"); // tl.layout = ti->layout; +UNSUPPORTED("7dv9mw75h7jmg0f6nhr971okd"); // tl.size.x = ti->size.x; +UNSUPPORTED("3vrfk5tpus8rwo5ielpg386bu"); // tl.size.y = spans[i].lfsize; +UNSUPPORTED("5014ra1gvrg8ufbmgeym1519n"); // tl.just = 'l'; +UNSUPPORTED("bgdzyuoc4xuqzp85ndg7nqmz7"); // p_.x = p.x; +UNSUPPORTED("ej1ntvnalv2xauqnm54xcud3m"); // gvrender_textspan(job, p_, &tl); +UNSUPPORTED("akh89iduqao9ewsextmw0j1k5"); // p.x += ti->size.x; +UNSUPPORTED("6f0wl1s431kpd69mmcufrgwpw"); // ti++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8bm7lzosnhuf0od7i4hkgzovo"); // gvrender_end_label(job); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dpcnkhm24fk5jwfpzzhm5fgn3 +// static void emit_html_txt(GVJ_t * job, htmltxt_t * tp, htmlenv_t * env) +public static Object emit_html_txt(Object... arg) { +UNSUPPORTED("e9atbpbtc2d7k8q5qw64ovfdm"); // static void emit_html_txt(GVJ_t * job, htmltxt_t * tp, htmlenv_t * env) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5grmy02do060obsxdgtm2158r"); // double halfwidth_x; +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("71u0rnrd0pn6urf5ttv39ec5d"); // /* make sure that there is something to do */ +UNSUPPORTED("45pxfl6xss9na9vadmromym7f"); // if (tp->nspans < 1) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("990xn02syyupmtffblgyodfu"); // halfwidth_x = ((double) (tp->box.UR.x - tp->box.LL.x)) / 2.0; +UNSUPPORTED("dzen0zgkt4ajf73ku622dzt75"); // p.x = env->pos.x + ((double) (tp->box.UR.x + tp->box.LL.x)) / 2.0; +UNSUPPORTED("cqd2avduya271k8nsgqe31wzb"); // p.y = env->pos.y + ((double) (tp->box.UR.y + tp->box.LL.y)) / 2.0; +UNSUPPORTED("cmb209051thdhuw14z92t5pg2"); // emit_htextspans(job, tp->nspans, tp->spans, p, halfwidth_x, env->finfo, +UNSUPPORTED("aagcz98jjnjahy9q5q1j8btyu"); // tp->box, tp->simple); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8aivux1hsy4ynfzwf908d9425 +// static void doSide(GVJ_t * job, pointf p, double wd, double ht) +public static Object doSide(Object... arg) { +UNSUPPORTED("9hbmtms12cm5dzi4mtc03tbex"); // static void doSide(GVJ_t * job, pointf p, double wd, double ht) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bzz7vodjegzgwxp8jzgkq3uti"); // boxf BF; +UNSUPPORTED("d9jvfh9fdslw1hjnuw45s09in"); // BF.LL = p; +UNSUPPORTED("cyabosmx7t8bqjgd2wmiqsstl"); // BF.UR.x = p.x + wd; +UNSUPPORTED("e4tvmn1m0pjoxcl392rrve02d"); // BF.UR.y = p.y + ht; +UNSUPPORTED("4gyhh56ucxddr3vef8kyw6f6k"); // gvrender_box(job, BF, 1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3ae4al308do9z1u91clqx27yk +// static pointf *mkPts(pointf * AF, boxf b, int border) +public static Object mkPts(Object... arg) { +UNSUPPORTED("3dw1rz353bav9gjp9j2wnqzwx"); // static pointf *mkPts(pointf * AF, boxf b, int border) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d4edkjzgg44rvd8pp5xjyhzai"); // AF[0] = b.LL; +UNSUPPORTED("68ikexa38d2r5rd9uca10xt4m"); // AF[2] = b.UR; +UNSUPPORTED("9u0prsjt76stjycb217a8o1bj"); // if (border > 1) { +UNSUPPORTED("9k2v9nw55xh01tivgsr2kmmte"); // double delta = ((double) border) / 2.0; +UNSUPPORTED("bdf6c01tajuh0h91fiwbb0k1j"); // AF[0].x += delta; +UNSUPPORTED("dogdijfoxebrp2s2qalb4p7ed"); // AF[0].y += delta; +UNSUPPORTED("2bmhwj6sof1gc51bp2hc32gue"); // AF[2].x -= delta; +UNSUPPORTED("6qwuc8i7npd5lvjk1bj6ntobh"); // AF[2].y -= delta; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("etsgw4ns6exvyfrm7lykdb8pt"); // AF[1].x = AF[2].x; +UNSUPPORTED("a2250pkc00wvt8bx8azxq1ug0"); // AF[1].y = AF[0].y; +UNSUPPORTED("46of2qdtkfe90ju4owrlotmla"); // AF[3].x = AF[0].x; +UNSUPPORTED("ag7v00g9v99sbihn90o3uf6k8"); // AF[3].y = AF[2].y; +UNSUPPORTED("1mnc0qamisdd62ud5dfotjxss"); // return AF; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dce0frvo5rjv19prf2almjrsc +// static void doBorder(GVJ_t * job, htmldata_t * dp, boxf b) +public static Object doBorder(Object... arg) { +UNSUPPORTED("52hc3ya0fz8yu9photik0cqpq"); // static void doBorder(GVJ_t * job, htmldata_t * dp, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bka1u02qeykfmysbaty8fagdo"); // pointf AF[6]; +UNSUPPORTED("eaoui6hnrqm4zv0hyd8ch71l2"); // char *sptr[2]; +UNSUPPORTED("bivhiv8d8rddwv3gp5ojwoe17"); // char *color = (dp->pencolor ? dp->pencolor : "black"); +UNSUPPORTED("brrv66ebgw3j8alwdo84y5j91"); // unsigned short sides; +UNSUPPORTED("47mxcz4gh3xivg50vcji1zkle"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("9gil9x2la7lnb1r6x47w6z1dn"); // if ((dp->style & ((1 << 8) | (1 << 7)))) { +UNSUPPORTED("18t2lq7oi0ioc076pwveiyylm"); // sptr[0] = sptr[1] = NULL; +UNSUPPORTED("c7j90iecewfaj3ikxvkgxqntq"); // if (dp->style & (1 << 8)) +UNSUPPORTED("1arimccfm8dfvo8sn3uqaei56"); // sptr[0] = "dashed"; +UNSUPPORTED("cvdetmxt01f8k7qfrpr09ucb0"); // else if (dp->style & (1 << 7)) +UNSUPPORTED("etfi1fkvua8koyo0oeczvr5pv"); // sptr[0] = "dotted"; +UNSUPPORTED("3gjhmgbb1mgyvfg9i5tk9yqk9"); // gvrender_set_style(job, sptr); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("aw7zhlkbn1bg9h9hrlr9by8ty"); // gvrender_set_style(job, job->gvc->defaultlinestyle); +UNSUPPORTED("4syhycpnromleuxorrgr402ue"); // gvrender_set_penwidth(job, dp->border); +UNSUPPORTED("binjmuc3gaivlw02tzkhqurz4"); // if (dp->style & (1 << 2)) +UNSUPPORTED("cr5wvmcp1hcrciq849nro6bau"); // round_corners(job, mkPts(AF, b, dp->border), 4, (1 << 2), 0); +UNSUPPORTED("a5bzyy70j86zl3d51aomliw7t"); // else if ((sides = (dp->flags & ((1 << 10)|(1 << 11)|(1 << 12)|(1 << 13))))) { +UNSUPPORTED("elvrl0ugvmy5wdaudhp8q0x1f"); // mkPts (AF+1, b, dp->border); /* AF[1-4] has LL=SW,SW,UR=NE,NW */ +UNSUPPORTED("dv871y4rc4uesm2yj93050e04"); // switch (sides) { +UNSUPPORTED("b418lqrq8nhtc8fmj08z0uhjc"); // case (1 << 13) : +UNSUPPORTED("f0j6147rgvvdq9babhvzkx3v3"); // gvrender_polyline(job, AF+1, 2); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("adguwi89t3xlfadiq7zxmc0fr"); // case (1 << 12) : +UNSUPPORTED("fft8g5x7554aunjp9t27mqx6"); // gvrender_polyline(job, AF+2, 2); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("vodid4dz4eaok1lar4yr7hmu"); // case (1 << 11) : +UNSUPPORTED("ciwgc00o3ddbgflc4wx7zikl8"); // gvrender_polyline(job, AF+3, 2); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("ca75h85p6k2ude0ubwr1a58zj"); // case (1 << 10) : +UNSUPPORTED("akfl3n1qd20stpahy8hxjgljy"); // AF[0] = AF[4]; +UNSUPPORTED("9nhrbbkzn6ygl91paz8e19asp"); // gvrender_polyline(job, AF, 2); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("3w9wsi8bbk6288yv6b4pfspvc"); // case (1 << 13)|(1 << 12) : +UNSUPPORTED("a47r7oga8tq4em0kognbm6qx9"); // gvrender_polyline(job, AF+1, 3); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("d1dja30kjmmxufddn0l47b4mc"); // case (1 << 12)|(1 << 11) : +UNSUPPORTED("1hy7xzwfjhch0o3gvki6nvzo5"); // gvrender_polyline(job, AF+2, 3); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5hmsp6qllnohzdwzocnmtyhfy"); // case (1 << 11)|(1 << 10) : +UNSUPPORTED("bsi9lo2bt8tmx13kqphteuvyv"); // AF[5] = AF[1]; +UNSUPPORTED("d75yfdk8rhx81oojmrlj4thq9"); // gvrender_polyline(job, AF+3, 3); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("tqroh08i78z3756on4h6kwbm"); // case (1 << 10)|(1 << 13) : +UNSUPPORTED("akfl3n1qd20stpahy8hxjgljy"); // AF[0] = AF[4]; +UNSUPPORTED("dlx7644q57yvur2sse9b5gbwi"); // gvrender_polyline(job, AF, 3); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("7qtekc57ncwbe0ibfc28oyh24"); // case (1 << 13)|(1 << 12)|(1 << 11) : +UNSUPPORTED("dga4asln6akuwoc9lmy1jdeuw"); // gvrender_polyline(job, AF+1, 4); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5vr6eapb6fws5d0o0q1246sg6"); // case (1 << 12)|(1 << 11)|(1 << 10) : +UNSUPPORTED("bsi9lo2bt8tmx13kqphteuvyv"); // AF[5] = AF[1]; +UNSUPPORTED("6u5k821gfdh25a6rtw7r9o98b"); // gvrender_polyline(job, AF+2, 4); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("3ujcup82mwhoml2883i0ql8p9"); // case (1 << 11)|(1 << 10)|(1 << 13) : +UNSUPPORTED("bsi9lo2bt8tmx13kqphteuvyv"); // AF[5] = AF[1]; +UNSUPPORTED("1vmvdrs0ui0vizmb4k9klzyqh"); // AF[6] = AF[2]; +UNSUPPORTED("8rtorgtkayhnqu9yhdpwuomr7"); // gvrender_polyline(job, AF+3, 4); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("epx02rqvb1inqo2wug164vihk"); // case (1 << 10)|(1 << 13)|(1 << 12) : +UNSUPPORTED("akfl3n1qd20stpahy8hxjgljy"); // AF[0] = AF[4]; +UNSUPPORTED("14xhaf4bz1keg87bpnoalfth2"); // gvrender_polyline(job, AF, 4); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("6cxzwe83jxubrfavr8bjd6jqd"); // case (1 << 11)|(1 << 13) : +UNSUPPORTED("f0j6147rgvvdq9babhvzkx3v3"); // gvrender_polyline(job, AF+1, 2); +UNSUPPORTED("ciwgc00o3ddbgflc4wx7zikl8"); // gvrender_polyline(job, AF+3, 2); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("20222itint1dfutqfthxmy0fu"); // case (1 << 10)|(1 << 12) : +UNSUPPORTED("akfl3n1qd20stpahy8hxjgljy"); // AF[0] = AF[4]; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("ea0o8v6n00qqc2pf2da8mfehy"); // if (dp->border > 1) { +UNSUPPORTED("8c46gz8xuuenxi35l0effpt7"); // double delta = ((double) dp->border) / 2.0; +UNSUPPORTED("9hlzluzk9kn86vrozs2sasmnn"); // b.LL.x += delta; +UNSUPPORTED("4ytgf1a0tyaylau0eeisj8rm8"); // b.LL.y += delta; +UNSUPPORTED("557s3yvdqlk7j0fd392ho7vbm"); // b.UR.x -= delta; +UNSUPPORTED("nio7shto4xl0i52cv1e7l3ro"); // b.UR.y -= delta; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3oyvs93iyanf46imnfq2ris4r"); // gvrender_box(job, b, 0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3sn3xxwciwsnysgpxkk25bbu3 +// static int setFill(GVJ_t * job, char *color, int angle, int style, char *clrs[2]) +public static Object setFill(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("arvrzi4iwxk807sj8rrhzk9hn"); // setFill(GVJ_t * job, char *color, int angle, int style, char *clrs[2]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3ml0gugucwlbwt5mbcdlymm8b"); // int filled; +UNSUPPORTED("c1fbv1vbw987h17be6s51zft4"); // float frac; +UNSUPPORTED("45rrefspa8b28sxxgm2is02kq"); // if (findStopColor(color, clrs, &frac)) { +UNSUPPORTED("btot0jrrd4byob85hrpdvj41t"); // gvrender_set_fillcolor(job, clrs[0]); +UNSUPPORTED("1jiuua6jebyguapuvhefyhdji"); // if (clrs[1]) +UNSUPPORTED("4io9gt2degxn4spb11kpchiaw"); // gvrender_set_gradient_vals(job, clrs[1], angle, frac); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("5mogvfll6q8umk9i37mhlkt7m"); // gvrender_set_gradient_vals(job, "black", angle, frac); +UNSUPPORTED("ebsxmacu2gext8rz06fbgojnb"); // if (style & (1 << 1)) +UNSUPPORTED("ajo4gtldjfin7wqcfsueasd6u"); // filled = 3; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("92j6l6cj3uzbc2rojubnolpiq"); // filled = 2; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("8jkw84z9v2sgxja8neagg70yn"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("wgi1jlomdsgec9gfae0fj8md"); // filled = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("buetng4l8583m1m13dhcxke3g"); // gvrender_set_pencolor(job, "transparent"); +UNSUPPORTED("6p2dbpbafmtoar1mvn7fsavoy"); // return filled; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 27rny3qpw3j6r42b1s34uyl25 +// static int initAnchor(GVJ_t * job, htmlenv_t * env, htmldata_t * data, boxf b, htmlmap_data_t * save, int closePrev) +public static Object initAnchor(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("8oquq7zad174i5s01j6hzxatt"); // initAnchor(GVJ_t * job, htmlenv_t * env, htmldata_t * data, boxf b, +UNSUPPORTED("88g72cs505wdz4y6qimsa8y1c"); // htmlmap_data_t * save, int closePrev) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("500ymf94p2papk2ytrz9nj5x7"); // int changed; +UNSUPPORTED("dronm56qc8dhvagqi0x0khih8"); // char *id; +UNSUPPORTED("8rujt60yyvytjyfto1qa8z94p"); // static int anchorId; +UNSUPPORTED("4bzwqkmomkxfmljrfhduzmtrs"); // int internalId = 0; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("4gk0vs9kob345ti7s9pxhm3f5"); // char intbuf[30]; /* hold 64-bit decimal integer */ +UNSUPPORTED("h0or3v13348vfl22jqz895yc"); // unsigned char buf[128]; +UNSUPPORTED("2wl17wf6lpprwq14nqkl3j1k7"); // save->url = obj->url; +UNSUPPORTED("emcdtw6askrkn9t86vapt5rr8"); // save->tooltip = obj->tooltip; +UNSUPPORTED("1rt6accl7yg1ie6kat68ejvfm"); // save->target = obj->target; +UNSUPPORTED("6hbk4r0d0ri01g9pzilu6gltl"); // save->id = obj->id; +UNSUPPORTED("a33136jt3dxu76pyfkgpxa7kv"); // save->explicit_tooltip = obj->explicit_tooltip; +UNSUPPORTED("actqp0zv95dft5dthjbvnwc7b"); // id = data->id; +UNSUPPORTED("7pvpn352cuq3v9r0633som3w7"); // if (!id || !*id) { /* no external id, so use the internal one */ +UNSUPPORTED("el1z2krv8hoorc5c7vjsxw7yn"); // agxbinit(&xb, 128, buf); +UNSUPPORTED("6cf0b0m48l6jloznb9lpt032g"); // if (!env->objid) { +UNSUPPORTED("5akl6s47a4zv2waqo5py31ybb"); // env->objid = strdup(getObjId(job, obj->u.n, &xb)); +UNSUPPORTED("57it9hg0sjcy1n7658baw0dw"); // env->objid_set = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dxdwkcwuosj9fmhjxlh8k6117"); // agxbput(&xb, env->objid); +UNSUPPORTED("altkpafun07s08rrvi0axy8w2"); // sprintf(intbuf, "_%d", anchorId++); +UNSUPPORTED("8fxx4xfv51pqm8opelh5kviyy"); // agxbput(&xb, intbuf); +UNSUPPORTED("2yaeafkratzyu6wvhwzdafnle"); // id = (((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf)); +UNSUPPORTED("9xzpefvqd6cn68r0em10mnlaf"); // internalId = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bny3kvzd21zrb2fv51dh6vp57"); // changed = +UNSUPPORTED("3qgg5qoivh60416otam1l29ni"); // initMapData(job, NULL, data->href, data->title, data->target, id, +UNSUPPORTED("5wtoz6nfrxfpi8rko85wbjpdg"); // obj->u.g); +UNSUPPORTED("57q03cer71cgr283csvafhpmi"); // if (internalId) +UNSUPPORTED("52frst03mcbsuu6bmnqs962qm"); // agxbfree(&xb); +UNSUPPORTED("20w7d59r1l0c34y8izq32fd0e"); // if (changed) { +UNSUPPORTED("40u2h01cve93h09wdngc9v2xr"); // if (closePrev && (save->url || save->explicit_tooltip)) +UNSUPPORTED("dtwdqlhxsk4vpro8m02pot0co"); // gvrender_end_anchor(job); +UNSUPPORTED("5kiy870zrsfdm18u60b2qdstn"); // if (obj->url || obj->explicit_tooltip) { +UNSUPPORTED("965ahzs7vr7qs12j0s1m4eev5"); // emit_map_rect(job, b); +UNSUPPORTED("12436nj34of615tb94t3cw2h0"); // gvrender_begin_anchor(job, +UNSUPPORTED("2rwb38hipr5rxkwxfdzzwkdmy"); // obj->url, obj->tooltip, obj->target, +UNSUPPORTED("4x188hxybttaubn1tt4tf710k"); // obj->id); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d7ura79gme5dbnqgva7yvjtmk"); // return changed; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ah2sn0gm8xfyu3faoljt1whui +// static void endAnchor(GVJ_t * job, htmlmap_data_t * save, int openPrev) +public static Object endAnchor(Object... arg) { +UNSUPPORTED("eiujc2cdqb4ubx9bzhrbgkr0d"); // static void endAnchor(GVJ_t * job, htmlmap_data_t * save, int openPrev) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("spdml5d3q3jza61kjh4zxw31"); // if (obj->url || obj->explicit_tooltip) +UNSUPPORTED("e3o6yrnsv8lko5fql4f8a9gly"); // gvrender_end_anchor(job); +UNSUPPORTED("8fzstdzz2sjbbmabm5yv8lm6f"); // if(obj->url != save->url) {free(obj->url); obj->url = save->url;}; +UNSUPPORTED("equg7aq6w951t0g9hyjm03cfx"); // if(obj->tooltip != save->tooltip) {free(obj->tooltip); obj->tooltip = save->tooltip;}; +UNSUPPORTED("2y9evx2wu20y4zezgwj96ekck"); // if(obj->target != save->target) {free(obj->target); obj->target = save->target;}; +UNSUPPORTED("79i4o9yiwyvti1rpmqbhnuk4h"); // if(obj->id != save->id) {free(obj->id); obj->id = save->id;}; +UNSUPPORTED("2zkwjxipgs1w6encwrwypxhqn"); // obj->explicit_tooltip = save->explicit_tooltip; +UNSUPPORTED("497o6k3vv69n2kyxjrzbjoges"); // if (openPrev && (obj->url || obj->explicit_tooltip)) +UNSUPPORTED("6e7g66eeo7n8h8mq556pt3xxy"); // gvrender_begin_anchor(job, +UNSUPPORTED("8g7o4dsbwgp9ggtiktgt2m41t"); // obj->url, obj->tooltip, obj->target, +UNSUPPORTED("c8tk2e711ojwsnar0y39a73cf"); // obj->id); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 75if0l45ti15rgx7p5f0f1xy1 +// static void emit_html_rules(GVJ_t * job, htmlcell_t * cp, htmlenv_t * env, char *color, htmlcell_t* nextc) +public static Object emit_html_rules(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("7k8576uq5xrhmrpgtayxldmst"); // emit_html_rules(GVJ_t * job, htmlcell_t * cp, htmlenv_t * env, char *color, htmlcell_t* nextc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dsaekwh74gtjixmtzev2nsp4l"); // pointf rule_pt; +UNSUPPORTED("c7vrup19iax6yjbwasb982a16"); // double rule_length; +UNSUPPORTED("2uhttu43wce24zfysxl83fxv"); // unsigned char base; +UNSUPPORTED("96jja5vo8t36z1sflrj0x8vi4"); // boxf pts = cp->data.box; +UNSUPPORTED("1inwrhhir5qtddjy60bnbfaft"); // pointf pos = env->pos; +UNSUPPORTED("safdto74hbmxy1bx51npyt80"); // if (!color) +UNSUPPORTED("ehe6g5s4foni0psldwx2ikwnq"); // color = "black"; +UNSUPPORTED("ba58kdrkh9glwbjy7j4i2b1ot"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("47mxcz4gh3xivg50vcji1zkle"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("25x16taqru10db3c03lv2frmd"); // pts = cp->data.box; +UNSUPPORTED("970xro1x23dmefkex4vsgzo87"); // pts.LL.x += pos.x; +UNSUPPORTED("b2fjdw9a9zxpb6bex19mnsi7p"); // pts.UR.x += pos.x; +UNSUPPORTED("4psuod2tpmculqarprgy08klq"); // pts.LL.y += pos.y; +UNSUPPORTED("7ritccw0fl1mnkt7zcus4wc3t"); // pts.UR.y += pos.y; +UNSUPPORTED("7byu0ep15pzlkbdmg8vxvnhwz"); // //Determine vertical line coordinate and length +UNSUPPORTED("8wvxs6dnzjzzky8qrtdrc8yak"); // if ((cp->ruled & 1) && (cp->col + cp->cspan < cp->parent->cc)) { +UNSUPPORTED("brzkv0bcmu5apwj6lrdrvdx6f"); // if (cp->row == 0) { // first row +UNSUPPORTED("5ygh915zztqud2g0j0qtuxim6"); // // extend to center of table border and add half cell spacing +UNSUPPORTED("eh9k3fhettdy9qynvsyhrhjnc"); // base = cp->parent->data.border + cp->parent->data.space / 2; +UNSUPPORTED("7nke4g7i0aytgilfgl7ct3mt1"); // rule_pt.y = pts.LL.y - cp->parent->data.space / 2; +UNSUPPORTED("1dttgmxu2mzw1rc8nq0myyag6"); // } else if (cp->row + cp->rspan == cp->parent->rc) { // bottom row +UNSUPPORTED("5ygh915zztqud2g0j0qtuxim6"); // // extend to center of table border and add half cell spacing +UNSUPPORTED("eh9k3fhettdy9qynvsyhrhjnc"); // base = cp->parent->data.border + cp->parent->data.space / 2; +UNSUPPORTED("6bo6v2q3t7x2l6lukf9ztb982"); // rule_pt.y = pts.LL.y - cp->parent->data.space / 2 - base; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("8o30az75fgnltomih0tsaedht"); // base = 0; +UNSUPPORTED("7nke4g7i0aytgilfgl7ct3mt1"); // rule_pt.y = pts.LL.y - cp->parent->data.space / 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3by23fc6milbzv6mf6yp2h6ua"); // rule_pt.x = pts.UR.x + cp->parent->data.space / 2; +UNSUPPORTED("alyqi5ei1m1qmdmj1g8vg6n8q"); // rule_length = base + pts.UR.y - pts.LL.y + cp->parent->data.space; +UNSUPPORTED("78sk2ct6bk7jwj2mmpuwarmvw"); // doSide(job, rule_pt, 0, rule_length); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e0g5sglrgymots3xetcoiq4cv"); // //Determine the horizontal coordinate and length +UNSUPPORTED("cudao13pgjtpyth3sik1bfwxn"); // if ((cp->ruled & 2) && (cp->row + cp->rspan < cp->parent->rc)) { +UNSUPPORTED("7b0ks1nwek4bq76npdbwp0qlx"); // if (cp->col == 0) { // first column +UNSUPPORTED("5ygh915zztqud2g0j0qtuxim6"); // // extend to center of table border and add half cell spacing +UNSUPPORTED("eh9k3fhettdy9qynvsyhrhjnc"); // base = cp->parent->data.border + cp->parent->data.space / 2; +UNSUPPORTED("7s5fmlmnp3ro8rplc48up32jh"); // rule_pt.x = pts.LL.x - base - cp->parent->data.space / 2; +UNSUPPORTED("d84du087kda0rvywg60dgylyg"); // if (cp->col + cp->cspan == cp->parent->cc) // also last column +UNSUPPORTED("44yz3hcq70udyoyffhkq7ldpi"); // base *= 2; +UNSUPPORTED("2iq4jft6fpdkskyapkzpio00c"); // /* incomplete row of cells; extend line to end */ +UNSUPPORTED("kptimmjzk2nl60rrdxqh5t1b"); // else if (nextc && (nextc->row != cp->row)) { +UNSUPPORTED("c62o1jotsnbk8sjzrgfg7q35s"); // base += (cp->parent->data.box.UR.x + pos.x) - (pts.UR.x + cp->parent->data.space / 2); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6vgh1uythbalqd5m71q3gr1il"); // } else if (cp->col + cp->cspan == cp->parent->cc) { // last column +UNSUPPORTED("5ygh915zztqud2g0j0qtuxim6"); // // extend to center of table border and add half cell spacing +UNSUPPORTED("eh9k3fhettdy9qynvsyhrhjnc"); // base = cp->parent->data.border + cp->parent->data.space / 2; +UNSUPPORTED("24kcyntk7yf6w7bfuni8lrl4"); // rule_pt.x = pts.LL.x - cp->parent->data.space / 2; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("8o30az75fgnltomih0tsaedht"); // base = 0; +UNSUPPORTED("24kcyntk7yf6w7bfuni8lrl4"); // rule_pt.x = pts.LL.x - cp->parent->data.space / 2; +UNSUPPORTED("2iq4jft6fpdkskyapkzpio00c"); // /* incomplete row of cells; extend line to end */ +UNSUPPORTED("bl8g0enq4c0odtx7h2pxbhq7l"); // if (nextc && (nextc->row != cp->row)) { +UNSUPPORTED("c62o1jotsnbk8sjzrgfg7q35s"); // base += (cp->parent->data.box.UR.x + pos.x) - (pts.UR.x + cp->parent->data.space / 2); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("a16drwk9w8puysojv02wjyy70"); // rule_pt.y = pts.LL.y - cp->parent->data.space / 2; +UNSUPPORTED("6e7yz3gbd8pyzk8ajd6n0uyze"); // rule_length = base + pts.UR.x - pts.LL.x + cp->parent->data.space; +UNSUPPORTED("7na99jxymwc946gqpz6cisv7w"); // doSide(job, rule_pt, rule_length, 0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 26zfaec64xs5h6zhbfqva70tp +// static void emit_html_tbl(GVJ_t * job, htmltbl_t * tbl, htmlenv_t * env) +public static Object emit_html_tbl(Object... arg) { +UNSUPPORTED("ni0mji8xwi6vyoc0i92fspkz"); // static void emit_html_tbl(GVJ_t * job, htmltbl_t * tbl, htmlenv_t * env) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eh0o4a2mhf75hmedici0y7vjm"); // boxf pts = tbl->data.box; +UNSUPPORTED("1inwrhhir5qtddjy60bnbfaft"); // pointf pos = env->pos; +UNSUPPORTED("f5l5qsm1xxo2fnsp38chcf009"); // htmlcell_t **cells = tbl->u.n.cells; +UNSUPPORTED("7hxwbqi0ato9k2b4nzpp7uw3a"); // htmlcell_t *cp; +UNSUPPORTED("c8p7i7oozhr11poil2ax0mjdh"); // static textfont_t savef; +UNSUPPORTED("bq5er65wlottydwze8xwtg1h8"); // htmlmap_data_t saved; +UNSUPPORTED("9vo2dpf5d55fy577acu1mj2tl"); // int anchor; /* if true, we need to undo anchor settings. */ +UNSUPPORTED("a6neawb1l9iwhlxyqeylmtibj"); // int doAnchor = (tbl->data.href || tbl->data.target); +UNSUPPORTED("en6q26cyrg17g6yd6el73b3ns"); // pointf AF[4]; +UNSUPPORTED("acdkiuky8vkjaqqynxn9e052i"); // if (tbl->font) +UNSUPPORTED("84z3c9pimg6qaq5qubuumky79"); // pushFontInfo(env, tbl->font, &savef); +UNSUPPORTED("970xro1x23dmefkex4vsgzo87"); // pts.LL.x += pos.x; +UNSUPPORTED("b2fjdw9a9zxpb6bex19mnsi7p"); // pts.UR.x += pos.x; +UNSUPPORTED("4psuod2tpmculqarprgy08klq"); // pts.LL.y += pos.y; +UNSUPPORTED("7ritccw0fl1mnkt7zcus4wc3t"); // pts.UR.y += pos.y; +UNSUPPORTED("f3x83tha6dbjv8et188fbkgv0"); // if (doAnchor && !(job->flags & (1<<2))) +UNSUPPORTED("eu3jff1gbyq1xntsjrbfjonso"); // anchor = initAnchor(job, env, &tbl->data, pts, &saved, 1); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("xon7ajllko0vvswhzsgmednw"); // anchor = 0; +UNSUPPORTED("dvrnei7g4il5it0wohet6xnf6"); // if (!(tbl->data.style & (1 << 5))) { +UNSUPPORTED("ecfz3q6oeloqz1k3bt4anr2so"); // /* Fill first */ +UNSUPPORTED("49uj7uuo9i7yhd6t4dvf0gdpu"); // if (tbl->data.bgcolor) { +UNSUPPORTED("b0tr7jsjw3kgi4yn1hhyfobdl"); // char *clrs[2]; +UNSUPPORTED("a153tdlqtl2xw7njhvpt043g0"); // int filled = +UNSUPPORTED("cm0x1gxytxrgtzsh3ge94uinf"); // setFill(job, tbl->data.bgcolor, tbl->data.gradientangle, +UNSUPPORTED("4d69xnxzol7epr6mdsj8zysu0"); // tbl->data.style, clrs); +UNSUPPORTED("c2iwbxo1co1ewyyccihrcfvmx"); // if (tbl->data.style & (1 << 2)) { +UNSUPPORTED("1w38undy36it7wj8962by2l6f"); // round_corners(job, mkPts(AF, pts, tbl->data.border), 4, +UNSUPPORTED("696pg1sjw1u5lbale66nm3vbk"); // (1 << 2), filled); +UNSUPPORTED("afk9bpom7x393euamnvwwkx6b"); // } else +UNSUPPORTED("78v3zjdcsy6x51hs6krs94y97"); // gvrender_box(job, pts, filled); +UNSUPPORTED("9b960wuid1g0sjsnq1ssdlupg"); // free(clrs[0]); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1mmt73zvtvn2nghxnfnxtc0kz"); // while (*cells) { +UNSUPPORTED("44aes03vbpouog4dgqqltikcg"); // emit_html_cell(job, *cells, env); +UNSUPPORTED("dmjx9beoeijjbajf48o2tid3"); // cells++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7cx9d9bes58uqm95nr7dv7i3o"); // /* Draw table rules and border. +UNSUPPORTED("657qfjgczf11baij6c45ccza1"); // * Draw after cells so we can draw over any fill. +UNSUPPORTED("5xszoc3r0xxyklzrzy04teljz"); // * At present, we set the penwidth to 1 for rules until we provide the calculations to take +UNSUPPORTED("5qj39gsiwu4famovm3ia6z93"); // * into account wider rules. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("q289jp9oo0zjlhjdsrgtzcza"); // cells = tbl->u.n.cells; +UNSUPPORTED("b7dznfykmm4m5amplksw2hugq"); // gvrender_set_penwidth(job, 1.0); +UNSUPPORTED("4dy3q3g9m3eng3vpzdn1x7zm0"); // while ((cp = *cells++)) { +UNSUPPORTED("ee52kdy81klqq7cmjmjinz2h8"); // if (cp->ruled) +UNSUPPORTED("4y97t5dc09eyhzjbaj4skq10t"); // emit_html_rules(job, cp, env, tbl->data.pencolor, *cells); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("94klyg9yeplgiz4vceng5lz4l"); // if (tbl->data.border) +UNSUPPORTED("d8qeuyglru3eejyrmh48uuvhw"); // doBorder(job, &tbl->data, pts); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2wq341pf2s0q76y7y29dpvhyv"); // if (anchor) +UNSUPPORTED("d5c2xq1sacfxrx17n6tmzv0su"); // endAnchor(job, &saved, 1); +UNSUPPORTED("8t96ufc0yimks592h7dgt7fgc"); // if (doAnchor && (job->flags & (1<<2))) { +UNSUPPORTED("6tyc47helx3fqyuqe3kiiqg1v"); // if (initAnchor(job, env, &tbl->data, pts, &saved, 0)) +UNSUPPORTED("96ubcu0fxunhzdlteep62gaqn"); // endAnchor(job, &saved, 0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("acdkiuky8vkjaqqynxn9e052i"); // if (tbl->font) +UNSUPPORTED("aqz3bhc3ot0j0okxcmu0ic2r"); // popFontInfo(env, &savef); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 92q18yuuh3uq9twxcmz0wqvwv +// static void emit_html_img(GVJ_t * job, htmlimg_t * cp, htmlenv_t * env) +public static Object emit_html_img(Object... arg) { +UNSUPPORTED("6mdos47goc2mvm0icpzihjr9p"); // static void emit_html_img(GVJ_t * job, htmlimg_t * cp, htmlenv_t * env) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ctvmenh2xwttzvzv2mrj2pizl"); // pointf A[4]; +UNSUPPORTED("95f2fzk7cq8awu76ojroabjlp"); // boxf bb = cp->box; +UNSUPPORTED("b0zlo29j4cz4islrycyp9yh5t"); // char *scale; +UNSUPPORTED("dshffz34w11b0wa4g9flan4v8"); // bb.LL.x += env->pos.x; +UNSUPPORTED("92entkh719bz8q8w8bngwhriq"); // bb.LL.y += env->pos.y; +UNSUPPORTED("1b2f3qtk4yp6vuk0c9heken47"); // bb.UR.x += env->pos.x; +UNSUPPORTED("6ceef7urui4dup1053b74emoq"); // bb.UR.y += env->pos.y; +UNSUPPORTED("bs113h0iq49pk03iqb8k3335s"); // A[0] = bb.UR; +UNSUPPORTED("85ic0v7v8u5fxw4u3alxwioql"); // A[2] = bb.LL; +UNSUPPORTED("ey5qp8hbyjjhg367b72imurix"); // A[1].x = A[2].x; +UNSUPPORTED("3z9cu0j5nm76l5yv8u7hy57r4"); // A[1].y = A[0].y; +UNSUPPORTED("2dgs8ab0mnywmi602emidh5fb"); // A[3].x = A[0].x; +UNSUPPORTED("34wjmru8jm4j6bnmr0zpacz05"); // A[3].y = A[2].y; +UNSUPPORTED("cvvp26byccjdjur8vyj2na0gg"); // if (cp->scale) +UNSUPPORTED("70nzi2ugyepaipmmqyrb9e7z6"); // scale = cp->scale; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("3pgplheeamhfaf1nrope24u0j"); // scale = env->imgscale; +UNSUPPORTED("a3l15kztb6svcikvleaqkcd5"); // assert(cp->src); +UNSUPPORTED("xegpl263i0dts5vximsivicf"); // assert(cp->src[0]); +UNSUPPORTED("41m8g0lte7tdgb8n0lp2n93xh"); // gvrender_usershape(job, cp->src, A, 4, NOT(0), scale); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2yyg33cwscbca36c9p9ls9gmb +// static void emit_html_cell(GVJ_t * job, htmlcell_t * cp, htmlenv_t * env) +public static Object emit_html_cell(Object... arg) { +UNSUPPORTED("czikvsl8tr4dfiv0ulisikbe7"); // static void emit_html_cell(GVJ_t * job, htmlcell_t * cp, htmlenv_t * env) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bq5er65wlottydwze8xwtg1h8"); // htmlmap_data_t saved; +UNSUPPORTED("96jja5vo8t36z1sflrj0x8vi4"); // boxf pts = cp->data.box; +UNSUPPORTED("1inwrhhir5qtddjy60bnbfaft"); // pointf pos = env->pos; +UNSUPPORTED("3wt0qjlqdo7dj9y9mkgqmzcl7"); // int inAnchor, doAnchor = (cp->data.href || cp->data.target); +UNSUPPORTED("en6q26cyrg17g6yd6el73b3ns"); // pointf AF[4]; +UNSUPPORTED("970xro1x23dmefkex4vsgzo87"); // pts.LL.x += pos.x; +UNSUPPORTED("b2fjdw9a9zxpb6bex19mnsi7p"); // pts.UR.x += pos.x; +UNSUPPORTED("4psuod2tpmculqarprgy08klq"); // pts.LL.y += pos.y; +UNSUPPORTED("7ritccw0fl1mnkt7zcus4wc3t"); // pts.UR.y += pos.y; +UNSUPPORTED("f3x83tha6dbjv8et188fbkgv0"); // if (doAnchor && !(job->flags & (1<<2))) +UNSUPPORTED("1kdpibhzgmx8gpycns42won0r"); // inAnchor = initAnchor(job, env, &cp->data, pts, &saved, 1); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("f045ekukc7ij51txyyak08m68"); // inAnchor = 0; +UNSUPPORTED("33scttptilyx6theysesc9hip"); // if (!(cp->data.style & (1 << 5))) { +UNSUPPORTED("6ml4s15hyx0kjl4ttsgulxmsu"); // if (cp->data.bgcolor) { +UNSUPPORTED("b0tr7jsjw3kgi4yn1hhyfobdl"); // char *clrs[2]; +UNSUPPORTED("a153tdlqtl2xw7njhvpt043g0"); // int filled = +UNSUPPORTED("bggyewy5jsq8xs6p6uqmwz8yo"); // setFill(job, cp->data.bgcolor, cp->data.gradientangle, +UNSUPPORTED("le3x5plb2e92puqisbimymik"); // cp->data.style, clrs); +UNSUPPORTED("wor7z65hono519ti6np00g10"); // if (cp->data.style & (1 << 2)) { +UNSUPPORTED("1pv247t0tpabjh2167wkpeki9"); // round_corners(job, mkPts(AF, pts, cp->data.border), 4, +UNSUPPORTED("696pg1sjw1u5lbale66nm3vbk"); // (1 << 2), filled); +UNSUPPORTED("afk9bpom7x393euamnvwwkx6b"); // } else +UNSUPPORTED("78v3zjdcsy6x51hs6krs94y97"); // gvrender_box(job, pts, filled); +UNSUPPORTED("9b960wuid1g0sjsnq1ssdlupg"); // free(clrs[0]); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cnstcgxihlyyk8wmy1qbr98iy"); // if (cp->data.border) +UNSUPPORTED("5ykjzrgfwm9e7lzqomfwnkscl"); // doBorder(job, &cp->data, pts); +UNSUPPORTED("3juggmzxcmifv5024m0f0qxqg"); // if (cp->child.kind == 1) +UNSUPPORTED("agfo0e6jmuvx19adgs0pvpefw"); // emit_html_tbl(job, cp->child.u.tbl, env); +UNSUPPORTED("bo3wy073jgs1e3sue7tnvsotj"); // else if (cp->child.kind == 3) +UNSUPPORTED("7q20ab255li6w6fnfu54yjdlh"); // emit_html_img(job, cp->child.u.img, env); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("7cmlz1ub801m6gzdyohkkjoy2"); // emit_html_txt(job, cp->child.u.txt, env); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("75xsmmeykk7ez8sw11jbre3zy"); // if (inAnchor) +UNSUPPORTED("d5c2xq1sacfxrx17n6tmzv0su"); // endAnchor(job, &saved, 1); +UNSUPPORTED("8t96ufc0yimks592h7dgt7fgc"); // if (doAnchor && (job->flags & (1<<2))) { +UNSUPPORTED("anfrwbjdhelhkcp08dbui2mu0"); // if (initAnchor(job, env, &cp->data, pts, &saved, 0)) +UNSUPPORTED("96ubcu0fxunhzdlteep62gaqn"); // endAnchor(job, &saved, 0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wy0mqtzrkhcvbguv66mv2zrn +// static void allocObj(GVJ_t * job) +public static Object allocObj(Object... arg) { +UNSUPPORTED("bn0p5no9j7nwlzitfiys1fijz"); // static void allocObj(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8lamppsqs7nhiu5v8k1f5jfh2"); // obj_state_t *obj; +UNSUPPORTED("nhwvta7sb3wcvdnmw01rma9o"); // obj_state_t *parent; +UNSUPPORTED("1iexddadjo0w6fdgddatfx40s"); // obj = push_obj_state(job); +UNSUPPORTED("1ewmspxangaopf94n1rw1y14i"); // parent = obj->parent; +UNSUPPORTED("dhamf5corzrp7m86t9hfp30yj"); // obj->type = parent->type; +UNSUPPORTED("404l3gn9kccmjaza33x5h3fzz"); // obj->emit_state = parent->emit_state; +UNSUPPORTED("4yzc1zw17q6yo4xboi9z52as8"); // switch (obj->type) { +UNSUPPORTED("6p9myrtihahet32sl09ru0heu"); // case NODE_OBJTYPE: +UNSUPPORTED("dbd51k17w8t0ddwpy5bg5vp42"); // obj->u.n = parent->u.n; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7smigc57825a1zb9xuxq3ql18"); // case ROOTGRAPH_OBJTYPE: +UNSUPPORTED("my43ctqu2yizbfvanbbsradk"); // obj->u.g = parent->u.g; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3lga3h3kjrn75p6p4giv4q2yv"); // case CLUSTER_OBJTYPE: +UNSUPPORTED("8jbc50a4r8xfcwi2db156a1xu"); // obj->u.sg = parent->u.sg; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4vi5wvx6iqb199sct0s663mpj"); // case EDGE_OBJTYPE: +UNSUPPORTED("8jz6uzkwckygawqhoixwcsusc"); // obj->u.e = parent->u.e; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5yci1onvhmtz0gdj686x4qhkw"); // obj->url = parent->url; +UNSUPPORTED("4pc3bnqpmihfqis6v1sqaqva9"); // obj->tooltip = parent->tooltip; +UNSUPPORTED("6n4o3yegj2vn63hl72840caz7"); // obj->target = parent->target; +UNSUPPORTED("5t9m8zfnmlz9az08312o1zk30"); // obj->explicit_tooltip = parent->explicit_tooltip; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3mabixy4ji5v1l1l5q9om0x4y +// static void freeObj(GVJ_t * job) +public static Object freeObj(Object... arg) { +UNSUPPORTED("9xbg7byr2iikj3spqxioe890s"); // static void freeObj(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("cid25b1n5mughekwf1rgz4sdl"); // obj->url = NULL; +UNSUPPORTED("37fra7odhf1aaqmgt6u3jkocg"); // obj->tooltip = NULL; +UNSUPPORTED("55gjprw91c8dy1u8h7a2n56dt"); // obj->target = NULL; +UNSUPPORTED("6jzimjzizo9d0rqik05zn9ux8"); // obj->id = NULL; +UNSUPPORTED("39iamwq9cd9iv3d2iyiaq8gz9"); // pop_obj_state(job); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ddm4xxn8hy635ldbmntgizzkh +// static double heightOfLbl (htmllabel_t * lp) +public static Object heightOfLbl(Object... arg) { +UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("3cec4m7dvd9a2d7cmauwa0wl3"); // heightOfLbl (htmllabel_t * lp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5uxlck4fsq9eog3czplkal9tn"); // double sz = 0.0; +UNSUPPORTED("em9mokioy59mljk7qnevn287u"); // switch (lp->kind) { +UNSUPPORTED("d0gk15gzj4wz8nv54zbr285hm"); // case 1: +UNSUPPORTED("58kb2v4y1iig58dpphr8kp1kp"); // sz = lp->u.tbl->data.box.UR.y - lp->u.tbl->data.box.LL.y; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("33l7a58zp8vj6fuliwdkk2nkn"); // case 3: +UNSUPPORTED("69uxpw91jshir9eiltd7y4vzb"); // sz = lp->u.img->box.UR.y - lp->u.img->box.LL.y; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4u5xz2u3urj13y0aw30fdyup5"); // case 2: +UNSUPPORTED("8fvcxjngtixii4s32tymkerbc"); // sz = lp->u.txt->box.UR.y - lp->u.txt->box.LL.y; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ban3s2canux7qwxava1n2e4v2"); // return sz; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9kxusredw550222rw4tuvj6tw +// void emit_html_label(GVJ_t * job, htmllabel_t * lp, textlabel_t * tp) +public static Object emit_html_label(Object... arg) { +UNSUPPORTED("827ar9bsah6y44hkc2l0x2yyj"); // void emit_html_label(GVJ_t * job, htmllabel_t * lp, textlabel_t * tp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3safvfkd3g1jswoj457mw482u"); // htmlenv_t env; +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("7oqkrsdoq858mhdu3qru3k7q5"); // allocObj(job); +UNSUPPORTED("93ubxlhijuwcy92rptpniqoj2"); // p = tp->pos; +UNSUPPORTED("ebm5wrhicnk2k8g6idvbvr6x8"); // switch (tp->valign) { +UNSUPPORTED("c66d69vmpko3goomc3npvjhy3"); // case 't': +UNSUPPORTED("2zsr5cioxxui011zsf2jrxla5"); // p.y = tp->pos.y + (tp->space.y - heightOfLbl(lp))/ 2.0 - 1; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5coaag9ev3fzc0jtpkjkfvhd2"); // case 'b': +UNSUPPORTED("b7lduijv2mnk1hrx74v3wsi8y"); // p.y = tp->pos.y - (tp->space.y - heightOfLbl(lp))/ 2.0 - 1; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("8jmef3sfg06sme4q6t23ms8i7"); // default: +UNSUPPORTED("3rnvr25kgs8f2wgve2amfmo22"); // /* no-op */ +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("19gcxobv20tvbfloknhb6uv0t"); // env.pos = p; +UNSUPPORTED("6ldhuqhlhimfvexg4vyan5brp"); // env.finfo.color = tp->fontcolor; +UNSUPPORTED("1ntqemdt0h1gim0fvyt92xnkf"); // env.finfo.name = tp->fontname; +UNSUPPORTED("czy6ynncgdz7e32r0wn409mjh"); // env.finfo.size = tp->fontsize; +UNSUPPORTED("bvrkxii1nme9b46mvoq9pr24w"); // env.imgscale = agget(job->obj->u.n, "imagescale"); +UNSUPPORTED("5was42a52ej882alb3wh25b3g"); // env.objid = job->obj->id; +UNSUPPORTED("lz4ny06l3w8df6ndpeertex"); // env.objid_set = 0; +UNSUPPORTED("b9ewr9ofzes5k2n2ej3dxjxm3"); // if ((env.imgscale == NULL) || (env.imgscale[0] == '\0')) +UNSUPPORTED("dfkmgn7rcfrfhimdh301afmip"); // env.imgscale = "false"; +UNSUPPORTED("a7snh64jgwowaf459e8c4yo2a"); // if (lp->kind == 1) { +UNSUPPORTED("2lg29o5disaqe0730aa70fsdg"); // htmltbl_t *tbl = lp->u.tbl; +UNSUPPORTED("ddp6q4j4nc83pmloaupfxvl7"); // /* set basic graphics context */ +UNSUPPORTED("2bejqzroco2e9apsokolfefxd"); // /* Need to override line style set by node. */ +UNSUPPORTED("aw7zhlkbn1bg9h9hrlr9by8ty"); // gvrender_set_style(job, job->gvc->defaultlinestyle); +UNSUPPORTED("ez6y0qhrd59suvmeebxxapgmw"); // if (tbl->data.pencolor) +UNSUPPORTED("1fd3huwog3ibg9g5x5dvq1pre"); // gvrender_set_pencolor(job, tbl->data.pencolor); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("51nbay7blmakvnciy2wquowf1"); // gvrender_set_pencolor(job, "black"); +UNSUPPORTED("cdb6g3vx7n1tb1g8upgk63v1x"); // emit_html_tbl(job, tbl, &env); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("aizb92w6okzokdzxdvwem5fjg"); // emit_html_txt(job, lp->u.txt, &env); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("atvr5zqtoe1gvgjfl08vqvanb"); // if (env.objid_set) +UNSUPPORTED("22aw68k0gw59cu3vfvu7qk30h"); // free(env.objid); +UNSUPPORTED("ecsopdkgrrlklu3ztuzi0m6tx"); // freeObj(job); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bzoc2l4jkwpjnu8uhijkh7jqn +// void free_html_data(htmldata_t * dp) +public static Object free_html_data(Object... arg) { +UNSUPPORTED("dqo3q5rjr3xogz5zf2ttohimm"); // void free_html_data(htmldata_t * dp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8y5nvjzidhbl04fcvvosnh2cq"); // free(dp->href); +UNSUPPORTED("z3n0xp5izrwm47idnam7jblz"); // free(dp->port); +UNSUPPORTED("67vccrz53cuxcv9z9e22223h8"); // free(dp->target); +UNSUPPORTED("6tnzfvbp1p6j44w1dl24ran0q"); // free(dp->id); +UNSUPPORTED("1ip1vyptthz69upq114tljq62"); // free(dp->title); +UNSUPPORTED("a6ugsu920ej21e6itf84tu9cb"); // free(dp->bgcolor); +UNSUPPORTED("9f39dxcdfgaz57ugym4ad8gsr"); // free(dp->pencolor); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4250mxcggii14uzmucxqskd4h +// void free_html_text(htmltxt_t * t) +public static Object free_html_text(Object... arg) { +UNSUPPORTED("a32qj5cyojlxov1ntqwnextyt"); // void free_html_text(htmltxt_t * t) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("54t9ueqlp5jhflgur5q1rnvcy"); // htextspan_t *tl; +UNSUPPORTED("4r4excvnla9rwlduw55712ow7"); // textspan_t *ti; +UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j; +UNSUPPORTED("5argi21if75rbjrs1eyhsuhnz"); // if (!t) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("6ydq8nzmraitjy5yz749x91cs"); // tl = t->spans; +UNSUPPORTED("6npcr5e7p97tnnlypb9oqrms2"); // for (i = 0; i < t->nspans; i++) { +UNSUPPORTED("1vhu3rza67dase6bsxrym4uin"); // ti = tl->items; +UNSUPPORTED("56cjtbt7j7pf7kp3q6wau7u3h"); // for (j = 0; j < tl->nitems; j++) { +UNSUPPORTED("2deo2tc186a4sb3pu417hmd3a"); // if (ti->str) +UNSUPPORTED("72bxoexh2wbe3czgn40mzmfuk"); // free(ti->str); +UNSUPPORTED("77cx2m775gkfqsmyx3neyu6g"); // if (ti->layout && ti->free_layout) +UNSUPPORTED("204a53a6qznb93ud39narh2om"); // ti->free_layout(ti->layout); +UNSUPPORTED("6f0wl1s431kpd69mmcufrgwpw"); // ti++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("p4j973vosg77way5mbvo1ehp"); // tl++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("aelvrrzvf2kj5t8l44djt9spw"); // if (t->spans) +UNSUPPORTED("7kcx5fl3gf4dbufoz3qi141x5"); // free(t->spans); +UNSUPPORTED("21sb47r4zqvovwo1ttkh8ql49"); // free(t); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1ag0y1j2z1j2lll9sqzo80ds5 +// void free_html_img(htmlimg_t * ip) +public static Object free_html_img(Object... arg) { +UNSUPPORTED("ct5oxr3idkvuopfdine5us5pk"); // void free_html_img(htmlimg_t * ip) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8jcxwqtd2up96dxw0yrcql1ii"); // free(ip->src); +UNSUPPORTED("8c4j24iy781tlk3vbgkeh7b0v"); // free(ip); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8zewpo49ed6tnn0j5hunzms6n +// static void free_html_cell(htmlcell_t * cp) +public static Object free_html_cell(Object... arg) { +UNSUPPORTED("3lsa1e19d2sb3u7wxcf0q6drn"); // static void free_html_cell(htmlcell_t * cp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2anyxy6xbkv0nhv1oijffmuj8"); // free_html_label(&cp->child, 0); +UNSUPPORTED("1yict2c0zx2hlabmjbwq0595w"); // free_html_data(&cp->data); +UNSUPPORTED("b92mco4tx3q32bgicibdv7yjn"); // free(cp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4ajotfuuo16w4bnu75faio9aw +// static void free_html_tbl(htmltbl_t * tbl) +public static Object free_html_tbl(Object... arg) { +UNSUPPORTED("b80jiab9bv3an4keu3a1itd63"); // static void free_html_tbl(htmltbl_t * tbl) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dvv43a5s6gakrufdzk2xbsdh1"); // htmlcell_t **cells; +UNSUPPORTED("8v942or5ma3j9izbbfa3v9jcw"); // if (tbl->rc == -1) { +UNSUPPORTED("7cvujz50mnqwdoqey7bjcgvl4"); // dtclose(tbl->u.p.rows); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("q289jp9oo0zjlhjdsrgtzcza"); // cells = tbl->u.n.cells; +UNSUPPORTED("cysh14mq0hcnng0iruek7l81d"); // free(tbl->heights); +UNSUPPORTED("3bg8e6k3pauiwm4tsze59f04o"); // free(tbl->widths); +UNSUPPORTED("1mmt73zvtvn2nghxnfnxtc0kz"); // while (*cells) { +UNSUPPORTED("ahv3jghkwzkq1o8sjrm9x0u"); // free_html_cell(*cells); +UNSUPPORTED("dmjx9beoeijjbajf48o2tid3"); // cells++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1nklfe6js9jl7wyg0evhvyxfn"); // free(tbl->u.n.cells); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5snkzektoabkm8psx5i1zwj1a"); // free_html_data(&tbl->data); +UNSUPPORTED("1vdg4wr4ao9szbdo7awvbthnv"); // free(tbl); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4jhvo7ir2kbb8ephhue06iewo +// void free_html_label(htmllabel_t * lp, int root) +public static Object free_html_label(Object... arg) { +UNSUPPORTED("px6brhgrrpzjieaugbuctqyk"); // void free_html_label(htmllabel_t * lp, int root) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f2d8uwg4ovq9ypi8u1ko3kav6"); // if (lp->kind == 1) +UNSUPPORTED("4njkoolh4hwk3tjfhhl4u311n"); // free_html_tbl(lp->u.tbl); +UNSUPPORTED("qsuubfg7ephplydfaondbf7e"); // else if (lp->kind == 3) +UNSUPPORTED("8lpcn9ohbxfqha73u52buzrbv"); // free_html_img(lp->u.img); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("nvah0tt1wc9cs5qosxj9m760"); // free_html_text(lp->u.txt); +UNSUPPORTED("dqseu01ng2nnpewmpp95sm688"); // if (root) +UNSUPPORTED("b8jdnilib79yb0fpw3xckwmi2"); // free(lp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5c34vls2f3ixvg8t5410ax0db +// static htmldata_t *portToCell(htmlcell_t * cp, char *id) +public static Object portToCell(Object... arg) { +UNSUPPORTED("9jvs5orxfd5qdafa6ji4ui0xq"); // static htmldata_t *portToCell(htmlcell_t * cp, char *id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bgibs5jyhxno9axl91okrdtmp"); // htmldata_t *rv; +UNSUPPORTED("6wwtj22p5d8kf1vxm6kz89sa0"); // if (cp->data.port && (strcasecmp(cp->data.port, id) == 0)) +UNSUPPORTED("91xw2foc7qhxl5qtetg92darg"); // rv = &cp->data; +UNSUPPORTED("532so049m9rwv6q34gbsn5922"); // else if (cp->child.kind == 1) +UNSUPPORTED("81xv65uhrgyuos0h75imdpnw6"); // rv = portToTbl(cp->child.u.tbl, id); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("52b2tnzwipbuygdvyeyxg1lij"); // rv = NULL; +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6xsutw08hlknw0tpar5xs0i21 +// static htmldata_t *portToTbl(htmltbl_t * tp, char *id) +public static Object portToTbl(Object... arg) { +UNSUPPORTED("e551f60lz4x2wuvcjjin4gw93"); // static htmldata_t *portToTbl(htmltbl_t * tp, char *id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bgibs5jyhxno9axl91okrdtmp"); // htmldata_t *rv; +UNSUPPORTED("dvv43a5s6gakrufdzk2xbsdh1"); // htmlcell_t **cells; +UNSUPPORTED("7hxwbqi0ato9k2b4nzpp7uw3a"); // htmlcell_t *cp; +UNSUPPORTED("73gxyfkn146pw3twnpimo98gx"); // if (tp->data.port && (strcasecmp(tp->data.port, id) == 0)) +UNSUPPORTED("dpbyxk6ui3u1kx64lm556ay6j"); // rv = &tp->data; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("52b2tnzwipbuygdvyeyxg1lij"); // rv = NULL; +UNSUPPORTED("38b5jofj445wn2c558bpt1075"); // cells = tp->u.n.cells; +UNSUPPORTED("4dy3q3g9m3eng3vpzdn1x7zm0"); // while ((cp = *cells++)) { +UNSUPPORTED("1om5sn0zpyk7ajkfcripgaueb"); // if ((rv = portToCell(cp, id))) +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9uxvepjmnfsmf2vy6czz4hgkq +// boxf *html_port(node_t * n, char *pname, int *sides) +public static Object html_port(Object... arg) { +UNSUPPORTED("b42ganybwd4banjp31wuq2juv"); // boxf *html_port(node_t * n, char *pname, int *sides) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjoetrcwy2ns2t1sx1w9nlyiw"); // htmldata_t *tp; +UNSUPPORTED("7w3zjklk3hfz7iikzn0ljroxx"); // htmllabel_t *lbl = ND_label(n)->u.html; +UNSUPPORTED("aydqqzhyziv7lgf18ih236m1d"); // boxf *rv = NULL; +UNSUPPORTED("bxxfl0a5dpbgktosi79rwsvee"); // if (lbl->kind == 2) +UNSUPPORTED("11hwqop4xebvtcskop4uhpp01"); // return NULL; +UNSUPPORTED("avhthu8guhst319hhy3gzojcv"); // tp = portToTbl(lbl->u.tbl, pname); +UNSUPPORTED("7hdtys3akqmtbw7kbkm786zc"); // if (tp) { +UNSUPPORTED("bu515ksy06cwdblsq7802i1ex"); // rv = &tp->box; +UNSUPPORTED("1ah6txqnf2ldpui2wwgjncilp"); // *sides = tp->sides; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 73uo7f1blvl7rkz3l1k3z9l6g +// int html_path(node_t * n, port * p, int side, boxf * rv, int *k) +public static Object html_path(Object... arg) { +UNSUPPORTED("f3mv81w2m6lobd446eh7pz18h"); // int html_path(node_t * n, port * p, int side, boxf * rv, int *k) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9ipfcmt80ki80d60bv5414jkq +// static int size_html_txt(GVC_t *gvc, htmltxt_t * ftxt, htmlenv_t * env) +public static Object size_html_txt(Object... arg) { +UNSUPPORTED("d2km41hnc3ukssi3t1z0xv6mk"); // static int size_html_txt(GVC_t *gvc, htmltxt_t * ftxt, htmlenv_t * env) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("enucywxrrro23vyn8ydzoliy6"); // double xsize = 0.0; /* width of text block */ +UNSUPPORTED("7dg32psdksxmt8fd0gorumk1h"); // double ysize = 0.0; /* height of text block */ +UNSUPPORTED("9l6vfw13niud6alhiqi4uhwin"); // double lsize; /* height of current line */ +UNSUPPORTED("dkipd1a21c1fzqdf1csy7okss"); // double mxfsize = 0.0; /* max. font size for the current line */ +UNSUPPORTED("7mc3jifq4fjkreg0m7pi96tdf"); // double curbline = 0.0; /* dist. of current base line from top */ +UNSUPPORTED("3zlnn621zia9mss7z1ay24myc"); // pointf sz; +UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j; +UNSUPPORTED("3v9r060xsqi6l9jiy85s1s7x4"); // double width; +UNSUPPORTED("afpbxgz63hnj24xiizysaql1x"); // textspan_t lp; +UNSUPPORTED("5abu3maiexjxxoig1g2wyd31a"); // textfont_t tf = {NULL,NULL,NULL,0.0,0,0}; +UNSUPPORTED("5talng91mi09bja09a1tv4dxl"); // double maxoffset, mxysize; +UNSUPPORTED("c0qbc8ly0mwekyzvw96ckqgpt"); // int simple = 1; /* one item per span, same font size/face, no flags */ +UNSUPPORTED("9103ua5swh6vaeuhaogzkqtk6"); // double prev_fsize = -1; +UNSUPPORTED("b8rr6ma0a6r840xw8og46ayow"); // char* prev_fname = NULL; +UNSUPPORTED("7roi5t8l55rt8fze3i4uwenso"); // for (i = 0; i < ftxt->nspans; i++) { +UNSUPPORTED("3b11n95lmlcps125gzrpuhd60"); // if (ftxt->spans[i].nitems > 1) { +UNSUPPORTED("2ufhyole2xrujdr0y5f3dapya"); // simple = 0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cm9qwoqfamvcyfvlr30d1nr1s"); // if (ftxt->spans[i].items[0].font) { +UNSUPPORTED("ecmjgaovdkhit3tnckxg4v0y"); // if (ftxt->spans[i].items[0].font->flags) { +UNSUPPORTED("aecxhqz0c4vwc078325h5ljrt"); // simple = 0; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("49gocrv6srqo4yv635dma1shh"); // if (ftxt->spans[i].items[0].font->size > 0) +UNSUPPORTED("91yvqdmg0u2smgfzakc1p9dnk"); // tf.size = ftxt->spans[i].items[0].font->size; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("awkvukgqu0eammzy2rura0l1y"); // tf.size = env->finfo.size; +UNSUPPORTED("rbvih6otx8lotsuu944eju4q"); // if (ftxt->spans[i].items[0].font->name) +UNSUPPORTED("5cqcm2kyaa5urbz64j71aqq7o"); // tf.name = ftxt->spans[i].items[0].font->name; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("34123u1eshd6obe9mldzjt1r"); // tf.name = env->finfo.name; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("eiweww00wuhewrvjrctiiqmiu"); // tf.size = env->finfo.size; +UNSUPPORTED("847ge9b9nnqjog5lqgkml19aw"); // tf.name = env->finfo.name; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3xpqh1q6f1vll4kmk1gukc63b"); // if (prev_fsize == -1) +UNSUPPORTED("ena1833cax4c34kotbdwvak1w"); // prev_fsize = tf.size; +UNSUPPORTED("9gjeg14gc64m5qqla00fmz25m"); // else if (tf.size != prev_fsize) { +UNSUPPORTED("2ufhyole2xrujdr0y5f3dapya"); // simple = 0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("by2xnz0o3ry8q2v9nbzg6hwyp"); // if (prev_fname == NULL) +UNSUPPORTED("dnep357finkc976a48n5pwi87"); // prev_fname = tf.name; +UNSUPPORTED("3psnb2eu2dg8uhj5w0870elb9"); // else if (strcmp(tf.name,prev_fname)) { +UNSUPPORTED("2ufhyole2xrujdr0y5f3dapya"); // simple = 0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("adewtwe2se314ad82rrfbxesn"); // ftxt->simple = simple; +UNSUPPORTED("7roi5t8l55rt8fze3i4uwenso"); // for (i = 0; i < ftxt->nspans; i++) { +UNSUPPORTED("9a0avbfjwenvg2d47qtbuweua"); // width = 0; +UNSUPPORTED("ef1hr3ewvs5nmkhfvc1gzb601"); // mxysize = maxoffset = mxfsize = 0; +UNSUPPORTED("a8mqt4e5j3hdjdhews2hyprzx"); // for (j = 0; j < ftxt->spans[i].nitems; j++) { +UNSUPPORTED("2q7qg0luja620dal3icll3y1u"); // lp.str = +UNSUPPORTED("7wkvclr4amgbwidu7am4n4e9"); // strdup_and_subst_obj(ftxt->spans[i].items[j].str, +UNSUPPORTED("7gc1i4xy06rr13mkrm064alwg"); // env->obj); +UNSUPPORTED("es1uhegi53zlginv3fn377ttk"); // if (ftxt->spans[i].items[j].font) { +UNSUPPORTED("17j1uniuegk5u051dn25pw3gq"); // if (ftxt->spans[i].items[j].font->flags) +UNSUPPORTED("efpnh435bdcd1n2kezs5ktvzy"); // tf.flags = ftxt->spans[i].items[j].font->flags; +UNSUPPORTED("6j7143szr4h1b06ypdvgtzej8"); // else if (env->finfo.flags > 0) +UNSUPPORTED("6c0bi1u8w68y8po1xfwuza6zj"); // tf.flags = env->finfo.flags; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("36yrkbq7bp25lf1dz2mplj4cr"); // tf.flags = 0; +UNSUPPORTED("391164cwoz9v397x9u8rkjhk9"); // if (ftxt->spans[i].items[j].font->size > 0) +UNSUPPORTED("85ubstqj5l4yw6iqfb5u9q59k"); // tf.size = ftxt->spans[i].items[j].font->size; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("89nphq4w74dlj3z8c7bthttp6"); // tf.size = env->finfo.size; +UNSUPPORTED("3qtgtzijdke73w4qdtw1vodsc"); // if (ftxt->spans[i].items[j].font->name) +UNSUPPORTED("d1kpg0d61zktgy8fllqpl6r04"); // tf.name = ftxt->spans[i].items[j].font->name; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("8equhc9vu57xbon3reu2t9s9d"); // tf.name = env->finfo.name; +UNSUPPORTED("5rlflpehqczriol571hddwbft"); // if (ftxt->spans[i].items[j].font->color) +UNSUPPORTED("ld97oa2r4mvkqigz9a2d4glz"); // tf.color = ftxt->spans[i].items[j].font->color; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("dtu7lsz1utlh40uq649hvgf4c"); // tf.color = env->finfo.color; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("awkvukgqu0eammzy2rura0l1y"); // tf.size = env->finfo.size; +UNSUPPORTED("34123u1eshd6obe9mldzjt1r"); // tf.name = env->finfo.name; +UNSUPPORTED("8n92kg5u3m10wsr6jm62eg61h"); // tf.color = env->finfo.color; +UNSUPPORTED("b8gve1m5o0h09srrlc52qno68"); // tf.flags = env->finfo.flags; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6pujfv7mkl0ts8acvvhf7j68l"); // lp.font = (*(((Dt_t*)(gvc->textfont_dt))->searchf))((gvc->textfont_dt),(void*)(&tf),0000001); +UNSUPPORTED("8i186h7avjprd8q600uev4dk1"); // sz = textspan_size(gvc, &lp); +UNSUPPORTED("7sve52bt0sg994yujeqnj1ee7"); // free(ftxt->spans[i].items[j].str); +UNSUPPORTED("7n5xxqc7bf785b3vg6wkyq0jv"); // ftxt->spans[i].items[j].str = lp.str; +UNSUPPORTED("45hl6as36hx999jz2k9g10ydj"); // ftxt->spans[i].items[j].size.x = sz.x; +UNSUPPORTED("1abxhbvjvo1u1ttvi1p342jus"); // ftxt->spans[i].items[j].yoffset_layout = lp.yoffset_layout; +UNSUPPORTED("6g3vck94x70rwugsm0aoabrqb"); // ftxt->spans[i].items[j].yoffset_centerline = lp.yoffset_centerline; +UNSUPPORTED("54axi70lqceno3tc3rz1ehng2"); // ftxt->spans[i].items[j].font = lp.font; +UNSUPPORTED("7jhou5j13sjleso6feiatoaoc"); // ftxt->spans[i].items[j].layout = lp.layout; +UNSUPPORTED("3pw936hxlpcr69shtp6sgowsa"); // ftxt->spans[i].items[j].free_layout = lp.free_layout; +UNSUPPORTED("9oopx30hvgm8ftp8r0nn4e8bj"); // width += sz.x; +UNSUPPORTED("518m1khvmder7vqvp0hldjgbh"); // mxfsize = MAX(tf.size, mxfsize); +UNSUPPORTED("exovf1xn9ctmplyx33mja1vrz"); // mxysize = MAX(sz.y, mxysize); +UNSUPPORTED("7f5yprewzsb1w8754ep93fkas"); // maxoffset = MAX(lp.yoffset_centerline, maxoffset); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ezt62wz8fz2o3ynaz4cj9e2zi"); // /* lsize = mxfsize * LINESPACING; */ +UNSUPPORTED("30psssu8agnd1086emgoq0j0b"); // ftxt->spans[i].size = width; +UNSUPPORTED("2pdquaaidownb36jtsp0198oi"); // /* ysize - curbline is the distance from the previous +UNSUPPORTED("d2q7magpdfwbuals4dhm82b59"); // * baseline to the bottom of the previous line. +UNSUPPORTED("3wys2nt4su7dijofyuoxp9pmy"); // * Then, in the current line, we set the baseline to +UNSUPPORTED("axlmhbsh0mbomfxq2r02eaesx"); // * be 5/6 of the max. font size. Thus, lfsize gives the +UNSUPPORTED("c57kku7dcto56eurjfru5mcfl"); // * distance from the previous baseline to the new one. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("8b6b6ts1hmhvfeducque2k20f"); // /* ftxt->spans[i].lfsize = 5*mxfsize/6 + ysize - curbline; */ +UNSUPPORTED("8e7c80dt5illziz5bnck5nft"); // if (simple) { +UNSUPPORTED("1lgfxabhycl91meyft2sugowo"); // lsize = mxysize; +UNSUPPORTED("50npm85hpqd4x3w4xtik1u0u5"); // if (i == 0) +UNSUPPORTED("b6293djsci1slar86ugvgwtkr"); // ftxt->spans[i].lfsize = mxfsize; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("1exk3htppob7dv9g9hc0l1pzv"); // ftxt->spans[i].lfsize = mxysize; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("avcy589gnqhgyyp2tux4tls9s"); // lsize = mxfsize; +UNSUPPORTED("50npm85hpqd4x3w4xtik1u0u5"); // if (i == 0) +UNSUPPORTED("5bq15etm4r7y0cnxjp7qvi3cw"); // ftxt->spans[i].lfsize = mxfsize - maxoffset; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("1afl0nxukpasbalw1t7k9kxsg"); // ftxt->spans[i].lfsize = mxfsize + ysize - curbline - maxoffset; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c88f3q21nlbmz7y64utrma2z"); // curbline += ftxt->spans[i].lfsize; +UNSUPPORTED("2ga6jsghpcuynpdx3txf2nqhe"); // xsize = MAX(width, xsize); +UNSUPPORTED("73jrgxmapbnlleqehfcmycu3s"); // ysize += lsize; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3fj51aqjdetus99zq60mg1ypb"); // ftxt->box.UR.x = xsize; +UNSUPPORTED("8cfp3ggtw6g1e0uqqcx26jefm"); // if (ftxt->nspans == 1) +UNSUPPORTED("7tvnz7crdx3mw7m6vcs6oxgva"); // ftxt->box.UR.y = mxysize; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("bcedf5nxsnwkift6t9h41s2ui"); // ftxt->box.UR.y = ysize; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 du4alvh2eyanoeurjmm7ne2s4 +// static int size_html_img(htmlimg_t * img, htmlenv_t * env) +public static Object size_html_img(Object... arg) { +UNSUPPORTED("6r0cp3mjbmapso0uy6kf5q4ec"); // static int size_html_img(htmlimg_t * img, htmlenv_t * env) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("akqyk09dlbng8gurbyg17dnc1"); // b.LL.x = b.LL.y = 0; +UNSUPPORTED("2k247zgqlchbw2dvvvh6zzimq"); // b.UR = gvusershape_size(env->g, img->src); +UNSUPPORTED("d94e3v5u12wnsanl2dvvtj03y"); // if ((b.UR.x == -1) && (b.UR.y == -1)) { +UNSUPPORTED("885b2fn5ijjlk16dudzm5udhi"); // rv = 1; +UNSUPPORTED("7750x6ix0c448pufsv2h39l23"); // b.UR.x = b.UR.y = 0; +UNSUPPORTED("7j1wmlsuz5bc945ul66p0h5vd"); // agerr(AGERR, "No or improper image file=\"%s\"\n", img->src); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("40zoypg37zonwb7nuewxdti29"); // rv = 0; +UNSUPPORTED("4fgus4ctyrpzvzutk2t3sbnjz"); // GD_has_images(env->g) = NOT(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d21fe9xn70gegafov7uebg3qb"); // B2BF(b, img->box); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9orvnos51tdgi1w930vz5ilu1 +// static int size_html_cell(graph_t * g, htmlcell_t * cp, htmltbl_t * parent, htmlenv_t * env) +public static Object size_html_cell(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("et2mfady8pt9b8i3f4edn6s70"); // size_html_cell(graph_t * g, htmlcell_t * cp, htmltbl_t * parent, +UNSUPPORTED("7rsvpji8pk71yfh6vlnrcw0gr"); // htmlenv_t * env) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("52iqo1icikig1r6cfl67l4jdi"); // pointf sz, child_sz; +UNSUPPORTED("15vcjwivk85sj24txzc1mf1gj"); // int margin; +UNSUPPORTED("etselr2dt8ar5gvmwaoxy6y5l"); // cp->parent = parent; +UNSUPPORTED("50dv6t5z0wyku6dllqff1iv27"); // if (!(cp->data.flags & (1 << 6))) { +UNSUPPORTED("97fl9muv1jfeao4gxqpymm13j"); // if (parent->data.flags & (1 << 6)) +UNSUPPORTED("5u116ukt7yjaroekwqs54hjrk"); // cp->data.pad = parent->data.pad; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("41ktgcwfypets5u32iewdvbeb"); // cp->data.pad = 2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("699bf6m7xqdahtsehkvxitqyt"); // if (!(cp->data.flags & (1 << 5))) { +UNSUPPORTED("5xc4uyj2wyxyxasjffnwwva8t"); // if (parent->cb >= 0) +UNSUPPORTED("c5vnaur3t856lfk08as21f2du"); // cp->data.border = parent->cb; +UNSUPPORTED("ezmlqin03d78ffwtn6wcl8jgz"); // else if (parent->data.flags & (1 << 5)) +UNSUPPORTED("3vpuhzaojqfvz1oqrfjpcdal5"); // cp->data.border = parent->data.border; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("8crqygmgfeul39h4ks24fgbl4"); // cp->data.border = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6vkx3zam2bwthfmvig3p2y9ec"); // if (cp->child.kind == 1) { +UNSUPPORTED("cmmw9z4fxqb6lsmxh9enkp17a"); // rv = size_html_tbl(g, cp->child.u.tbl, cp, env); +UNSUPPORTED("ao9dinb2mbsuqheodockffton"); // child_sz = cp->child.u.tbl->data.box.UR; +UNSUPPORTED("1gp8mj8w7s5i6ye7jneczpoai"); // } else if (cp->child.kind == 3) { +UNSUPPORTED("3wrpfz7xtwqio3b0z1g3v5o8n"); // rv = size_html_img(cp->child.u.img, env); +UNSUPPORTED("ao7i7b9oc9kp6hmh3zjj58lnt"); // child_sz = cp->child.u.img->box.UR; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("dqcevwpj4uv0dm7et9vvi4981"); // rv = size_html_txt(GD_gvc(g), cp->child.u.txt, env); +UNSUPPORTED("e0lg9mfl5jfnx6zq8wzjhjug3"); // child_sz = cp->child.u.txt->box.UR; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("78xu81zxcltf94ml0dgxdv0ct"); // margin = 2 * (cp->data.pad + cp->data.border); +UNSUPPORTED("axd51bzv8hdpm5cqsmdqchgwm"); // sz.x = child_sz.x + margin; +UNSUPPORTED("8tle7dmp7rihl4xa46c1vsytu"); // sz.y = child_sz.y + margin; +UNSUPPORTED("rt15k2ok7a3v6ib8d9ajshvb"); // if (cp->data.flags & 1) { +UNSUPPORTED("d3zk61sb768arhaezyareldiy"); // if (cp->data.width && cp->data.height) { +UNSUPPORTED("ei7d0i8pzwjupmet76ttu9k3y"); // if (((cp->data.width < sz.x) || (cp->data.height < sz.y)) && (cp->child.kind != 3)) { +UNSUPPORTED("2v16k5fx5lxcwu61pv8f5xjc6"); // agerr(AGWARN, "cell size too small for content\n"); +UNSUPPORTED("en0rarvkx5srsxnlqpf6ja1us"); // rv = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("2e7vq0c1ngiofwke5k8mpm586"); // sz.x = sz.y = 0; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("cw5grwj6gbj94jcztvnp2ooyj"); // agerr(AGWARN, +UNSUPPORTED("1sn048qvhhtpv5ruvi1ek7cu9"); // "fixed cell size with unspecified width or height\n"); +UNSUPPORTED("eldwzm3uyfs9zu1roub5a2uqi"); // rv = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5r8hvlq4fuk8vn3yje9c0m0uu"); // cp->data.box.UR.x = MAX(sz.x, cp->data.width); +UNSUPPORTED("d9o6hnda0ppqxexsj3b2jf56k"); // cp->data.box.UR.y = MAX(sz.y, cp->data.height); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2srxlzkxe960nczu4z5nrauej +// static int findCol(PointSet * ps, int row, int col, htmlcell_t * cellp) +public static Object findCol(Object... arg) { +UNSUPPORTED("vy7n771o40h01dyj8qyye2he"); // static int findCol(PointSet * ps, int row, int col, htmlcell_t * cellp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("atyysowmqcj69416bvut6yxfq"); // int notFound = 1; +UNSUPPORTED("1rqrfmkus9ne1c7zkm53hh6iw"); // int lastc; +UNSUPPORTED("3pkra937htjqd1n85qf314kwy"); // int i, j, c; +UNSUPPORTED("akx52eziuhdorahyk116rhftc"); // int end = cellp->cspan - 1; +UNSUPPORTED("e36dcwthblpabui3v722ntlke"); // while (notFound) { +UNSUPPORTED("4derp9qd9dg8zrdjzsg8bi2xv"); // lastc = col + end; +UNSUPPORTED("4fmilhappg4ntixu8kj2rc6nz"); // for (c = lastc; c >= col; c--) { +UNSUPPORTED("92vp8hruf9vv0l1khyphftjg3"); // if (isInPS(ps, c, row)) +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("156e8skr86gdus2rqg2tdz9yf"); // if (c >= col) /* conflict : try column after */ +UNSUPPORTED("c9hnrokfu25736l6eoik4urbr"); // col = c + 1; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("ba024nbnjj22rx1iicy8uxxkt"); // notFound = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("38eo2dncsprcse2x4i75p3yjy"); // for (j = col; j < col + cellp->cspan; j++) { +UNSUPPORTED("6rk7stb6bm4hsbl9zhf1oswa6"); // for (i = row; i < row + cellp->rspan; i++) { +UNSUPPORTED("69i3bt6zrjdg92p2f8yk762bz"); // addPS(ps, j, i); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("eyeu27jykzh29hth7lx38hgxm"); // return col; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1apchhkdbk0wgxmptldlqordv +// static int processTbl(graph_t * g, htmltbl_t * tbl, htmlenv_t * env) +public static Object processTbl(Object... arg) { +UNSUPPORTED("bcwb87d1whfft3xydpjn96tqy"); // static int processTbl(graph_t * g, htmltbl_t * tbl, htmlenv_t * env) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("128n741ndr3z3b941iiig8vm7"); // pitem *rp; +UNSUPPORTED("1lyxohypr7xtypbox8n2liqkw"); // pitem *cp; +UNSUPPORTED("8zh8zqcxqo5o3m6nfh4qqjtqd"); // Dt_t *cdict; +UNSUPPORTED("ak7qc3htpxsunavl58wf3ykp7"); // int r, c, cnt; +UNSUPPORTED("bvyiajn0xy1nahb1h31ol0aum"); // htmlcell_t *cellp; +UNSUPPORTED("dvv43a5s6gakrufdzk2xbsdh1"); // htmlcell_t **cells; +UNSUPPORTED("msjtkjhws4l03dje06ts0ej2"); // Dt_t *rows = tbl->u.p.rows; +UNSUPPORTED("en7ch189nkys76f42mlo1s5zz"); // int rv = 0; +UNSUPPORTED("1h87ik53wg9l6htch3tj9mdpk"); // int n_rows = 0; +UNSUPPORTED("aqunzhkejhxkiklw6o7tpj5an"); // int n_cols = 0; +UNSUPPORTED("41peclvejrri7877ir3zgwcxj"); // PointSet *ps = newPS(); +UNSUPPORTED("7xz7xonr4rynms8yk9dka1c1c"); // Dt_t *is = openIntSet(); +UNSUPPORTED("62kokzledbm3nvmfhsjw06ngh"); // rp = (pitem *) dtflatten(rows); +UNSUPPORTED("3wtn792c3ql5yhn77alu6r5d8"); // cnt = 0; +UNSUPPORTED("dfy198s0balu93ez4di7muow9"); // r = 0; +UNSUPPORTED("as2bzplymgjxm7ebvzv9qlluc"); // while (rp) { +UNSUPPORTED("6alsowu6a5tm4rvox9kha1gce"); // cdict = rp->u.rp; +UNSUPPORTED("cjjz9vegbwfwp7vphaszleumu"); // cp = (pitem *) dtflatten(cdict); +UNSUPPORTED("4dkgvugqegweb72s3vindd7mm"); // while (cp) { +UNSUPPORTED("jtct9ua5y8186svpuv23kp7p"); // cellp = cp->u.cp; +UNSUPPORTED("7hl03wjg5yryhvbe4ar0i0b8g"); // cnt++; +UNSUPPORTED("dqg1emepjmbtjkxtwpgir4aog"); // cp = (pitem *) (((Dtlink_t*)((Dtlink_t *) cp))->right); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("68wat35fq8rxh3ahmgb0osdrf"); // if (rp->ruled) { +UNSUPPORTED("da9vcofurrebillaayamdrvld"); // addIntSet(is, r + 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2v1rjsx8pivqutio6f2cyr2wy"); // rp = (pitem *) (((Dtlink_t*)((Dtlink_t *) rp))->right); +UNSUPPORTED("4termxikckg62elr2s0j5gur5"); // r++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7zm6t55676a2m6csol3hxgep5"); // cells = tbl->u.n.cells = (htmlcell_t **)zmalloc((cnt + 1)*sizeof(htmlcell_t *)); +UNSUPPORTED("62kokzledbm3nvmfhsjw06ngh"); // rp = (pitem *) dtflatten(rows); +UNSUPPORTED("dfy198s0balu93ez4di7muow9"); // r = 0; +UNSUPPORTED("as2bzplymgjxm7ebvzv9qlluc"); // while (rp) { +UNSUPPORTED("6alsowu6a5tm4rvox9kha1gce"); // cdict = rp->u.rp; +UNSUPPORTED("cjjz9vegbwfwp7vphaszleumu"); // cp = (pitem *) dtflatten(cdict); +UNSUPPORTED("1k960hbt4mxjx2nga87rqvluh"); // c = 0; +UNSUPPORTED("4dkgvugqegweb72s3vindd7mm"); // while (cp) { +UNSUPPORTED("jtct9ua5y8186svpuv23kp7p"); // cellp = cp->u.cp; +UNSUPPORTED("dfp4lwqkqwtwqravyevqkitl1"); // *cells++ = cellp; +UNSUPPORTED("9ugieksnm2bl2n9cwne2e38ox"); // rv |= size_html_cell(g, cellp, tbl, env); +UNSUPPORTED("c03wghmv71v8fgtr029ddiyvb"); // c = findCol(ps, r, c, cellp); +UNSUPPORTED("9jr1vjqqownfst01hpmblabwd"); // cellp->row = r; +UNSUPPORTED("6v3t8u08fnrim0j9p1m1sps2m"); // cellp->col = c; +UNSUPPORTED("6peyajy1b4ou6csrom7hvx3k"); // c += cellp->cspan; +UNSUPPORTED("5vkigdl3r09507utmar6214g2"); // n_cols = MAX(c, n_cols); +UNSUPPORTED("32x1t87vbkfkmabhkgz9976m5"); // n_rows = MAX(r + cellp->rspan, n_rows); +UNSUPPORTED("57xvc7zjof6trsl5gj1y6yxve"); // if (inIntSet(is, r + cellp->rspan)) +UNSUPPORTED("6rfn2x9963tk19dqchzngwyd"); // cellp->ruled |= 2; +UNSUPPORTED("dqg1emepjmbtjkxtwpgir4aog"); // cp = (pitem *) (((Dtlink_t*)((Dtlink_t *) cp))->right); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2v1rjsx8pivqutio6f2cyr2wy"); // rp = (pitem *) (((Dtlink_t*)((Dtlink_t *) rp))->right); +UNSUPPORTED("4termxikckg62elr2s0j5gur5"); // r++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9gx68fjgz9ifzyvg8ai41r2c7"); // tbl->rc = n_rows; +UNSUPPORTED("5wmtjbrsn5w7d9mfonxxl5rex"); // tbl->cc = n_cols; +UNSUPPORTED("5rgp5ftqrficnrim8srbzbcda"); // dtclose(rows); +UNSUPPORTED("2hhzg76es68ebqvfzxjp27o2a"); // dtclose(is); +UNSUPPORTED("dg5ijmmysdxc2qm5j58u0zr8i"); // freePS(ps); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bftk6pbrbqkhwivjh0o2e4xmn +// void sizeLinearArray(htmltbl_t * tbl) +public static Object sizeLinearArray(Object... arg) { +UNSUPPORTED("wzpmfhhszovxq93ydvsztetp"); // void sizeLinearArray(htmltbl_t * tbl) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7hxwbqi0ato9k2b4nzpp7uw3a"); // htmlcell_t *cp; +UNSUPPORTED("dvv43a5s6gakrufdzk2xbsdh1"); // htmlcell_t **cells; +UNSUPPORTED("a5e2rpf4z46wl32fel7sngtht"); // int wd, ht, i, x, y; +UNSUPPORTED("bekwtc6rvpxxj0nw9htqo33xq"); // tbl->heights = (int*)zmalloc((tbl->rc + 1)*sizeof(int)); +UNSUPPORTED("4nsdljbbmltaxyxhbkgez5juv"); // tbl->widths = (int*)zmalloc((tbl->cc + 1)*sizeof(int)); +UNSUPPORTED("4yfdx4j85y1bzrkfrbeq3rnj6"); // for (cells = tbl->u.n.cells; *cells; cells++) { +UNSUPPORTED("bf3l7aqwurk08ip8lin8au4oe"); // cp = *cells; +UNSUPPORTED("dmn24k5ytrxxuntvcr8vns6tt"); // if (cp->rspan == 1) +UNSUPPORTED("9k4vh2dstnvhzcg67gnc2u0hc"); // ht = cp->data.box.UR.y; +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("6rutzpzliee7qswgmtnii20jt"); // ht = (((cp->data.box.UR.y) - ((tbl->data.space)-1)*((cp->rspan)-1)) / (cp->rspan)); +UNSUPPORTED("9tyo1nx8qfdmx87ivzhetk171"); // ht = MAX(ht, 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7b6n5ydweyv46ezj3frs3lfg8"); // if (cp->cspan == 1) +UNSUPPORTED("1cw4kfk6l8gvrnkuc1q6j2f6w"); // wd = cp->data.box.UR.x; +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("ctj4xice3u59j761qz48su8d2"); // wd = (((cp->data.box.UR.x) - ((tbl->data.space)-1)*((cp->cspan)-1)) / (cp->cspan)); +UNSUPPORTED("bis5z8qaes014qjil2z9bc3yt"); // wd = MAX(wd, 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cj4rszdnftxulj5j4ofvc86uq"); // for (i = cp->row; i < cp->row + cp->rspan; i++) { +UNSUPPORTED("9ha3mpnu8g0xi2pqwnvqhlzsq"); // y = tbl->heights[i]; +UNSUPPORTED("4hz0jj81f7ed1qmvkhq81jqs1"); // tbl->heights[i] = MAX(y, ht); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5zv1xp0ve74t81kdl39w242c0"); // for (i = cp->col; i < cp->col + cp->cspan; i++) { +UNSUPPORTED("ex7pzeip1t4jvbqqy0rx9esqq"); // x = tbl->widths[i]; +UNSUPPORTED("29fd6hhyg0mnezt3mgdi6ezvx"); // tbl->widths[i] = MAX(x, wd); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 9u21vrho83xozf1mugcyz8al8 +// static char *nnames[] = + + + + +//3 4i4kof2mbmyuy7554t99luv2d +// char *nToName(int c) +public static Object nToName(Object... arg) { +UNSUPPORTED("152ni25tykk6b46aztxh05dt0"); // char *nToName(int c) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("escxhdgvfkgvry6gz920y3v60"); // static char name[100]; +UNSUPPORTED("a6nlvtzc7976215aud08npjv6"); // if (c < sizeof(nnames) / sizeof(char *)) +UNSUPPORTED("240zhg319p6154exv92iyohag"); // return nnames[c]; +UNSUPPORTED("2chdmawkug9stfqe4qstajlgf"); // sprintf(name, "%d", c); +UNSUPPORTED("d8c692wl5ut9pklgbb0o4igud"); // return name; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1bmoyklwxydje1kcgu3nwsnvl +// static void closeGraphs(graph_t * rowg, graph_t * colg) +public static Object closeGraphs(Object... arg) { +UNSUPPORTED("5bqv0gm8rycgunk4roh5kfd71"); // static void closeGraphs(graph_t * rowg, graph_t * colg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("16whpdxt4g151a019tn55jeo1"); // for (n = GD_nlist(colg); n; n = ND_next(n)) { +UNSUPPORTED("6uowedfybay0zqxujx4izx5eb"); // free_list(ND_in(n)); +UNSUPPORTED("9ma0k3ktcua915egahxrgo1f"); // free_list(ND_out(n)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ewsu4butq0z77lshmz2vye0ij"); // agclose(rowg); +UNSUPPORTED("18xxbtcxgsqom0dvtu2y9osv5"); // agclose(colg); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a1pb8vo051kce2vw0blclqlh7 +// static void checkChain(graph_t * g) +public static Object checkChain(Object... arg) { +UNSUPPORTED("7b9ue77v0ds2jxp1wmflsxiqi"); // static void checkChain(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1sul2kifdj17kxdwdagt5uhx0"); // node_t *t; +UNSUPPORTED("35dj5rc61rye1ulocvhco6987"); // node_t *h; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("6i65dyohrxfpnbw3znq9e4hxi"); // t = GD_nlist(g); +UNSUPPORTED("6jgcyxjliiep5hu0src4icwsh"); // for (h = ND_next(t); h; h = ND_next(h)) { +UNSUPPORTED("1kq1nqm0i5t35dko9cviktd9e"); // if (!(agedge(g,t,h,NULL,0))) { +UNSUPPORTED("28qblrynck0phu482ss4sftwy"); // e = agedge(g, t, h, NULL, 1); +UNSUPPORTED("bk18w1br4j7n3sw0vx7z7dho0"); // agbindrec(e, "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); +UNSUPPORTED("dpbzsnqt42s889q1m7w0zurwg"); // ED_minlen(e) = 0; +UNSUPPORTED("12z7onvdo58ujwat9vwz7pu68"); // elist_append(e, ND_out(t)); +UNSUPPORTED("er5zn9v0t89u2bvp152gkcdub"); // elist_append(e, ND_in(h)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("xo3px3hijp17toszrxjhzc30"); // t = h; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5t5lovn25afcqbdxm2c69199o +// static void checkEdge (graph_t* g, node_t* t, node_t* h, int sz) +public static Object checkEdge(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("36q9ktek22tbigm7zmxlp9p7l"); // checkEdge (graph_t* g, node_t* t, node_t* h, int sz) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("81kodm2cts9uf9w37cp7qzp6p"); // edge_t* e; +UNSUPPORTED("8qkxrsrb72iksyrj5au48hgr"); // e = (agedge(g,t,h,NULL,0)); +UNSUPPORTED("eveunyp9nozvcp5ktz2kz6zyq"); // if (e) +UNSUPPORTED("ef61cpvlu3fjobunnte2wliht"); // ED_minlen(e) = MAX(ED_minlen(e), sz); +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("da8fjridlwi8lgf9bv6mifuwm"); // e = agedge(g, t, h, NULL, 1); +UNSUPPORTED("406k6e0j28h0czhe1mdish7vy"); // agbindrec(e, "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); +UNSUPPORTED("dcfkl6td76thzb0wdxafrukj5"); // ED_minlen(e) = sz; +UNSUPPORTED("5evqa618mv70sukx6s3ahhq75"); // elist_append(e, ND_out(t)); +UNSUPPORTED("cvd7i7492o2yve3svqc40ltot"); // elist_append(e, ND_in(h)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ae7dclkuh27vau8tjkxw8clhl +// void makeGraphs(htmltbl_t * tbl, graph_t * rowg, graph_t * colg) +public static Object makeGraphs(Object... arg) { +UNSUPPORTED("4cuju09ekofovn0fc2bbo50uw"); // void makeGraphs(htmltbl_t * tbl, graph_t * rowg, graph_t * colg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7hxwbqi0ato9k2b4nzpp7uw3a"); // htmlcell_t *cp; +UNSUPPORTED("dvv43a5s6gakrufdzk2xbsdh1"); // htmlcell_t **cells; +UNSUPPORTED("1sul2kifdj17kxdwdagt5uhx0"); // node_t *t; +UNSUPPORTED("b55eoe9gg0u440hnl6vuw0g3s"); // node_t *lastn; +UNSUPPORTED("35dj5rc61rye1ulocvhco6987"); // node_t *h; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("58o4wu841vkglm3tl8mc9urvu"); // lastn = NULL; +UNSUPPORTED("2agp2sozteqj056j34uh5gz6h"); // for (i = 0; i <= tbl->cc; i++) { +UNSUPPORTED("4nm4kztncxgnqxvbaebfbbqak"); // t = agnode(colg, nToName(i), 1); +UNSUPPORTED("9l63nm03ta49n83wax0vthiof"); // agbindrec(t, "Agnodeinfo_t", sizeof(Agnodeinfo_t), NOT(0)); +UNSUPPORTED("94oupz5r7tj8hnhras7jssnay"); // alloc_elist(tbl->rc, ND_in(t)); +UNSUPPORTED("57yrln8a69t0p1dzxk3rha53k"); // alloc_elist(tbl->rc, ND_out(t)); +UNSUPPORTED("d60g65zb8jbubbmomitpsgzpr"); // if (lastn) { +UNSUPPORTED("cowtfloqsbrmejpce7x6ulj5k"); // ND_next(lastn) = t; +UNSUPPORTED("18byrlv6ie9y9nm16dl41cxdb"); // lastn = t; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("rgfby4l7dq8t8nwonk6eqvjc"); // lastn = GD_nlist(colg) = t; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("58o4wu841vkglm3tl8mc9urvu"); // lastn = NULL; +UNSUPPORTED("de5kizyloe4kak5mszz3l0xcc"); // for (i = 0; i <= tbl->rc; i++) { +UNSUPPORTED("el8vcb38542oa4q3m86rx8r4x"); // t = agnode(rowg, nToName(i), 1); +UNSUPPORTED("9l63nm03ta49n83wax0vthiof"); // agbindrec(t, "Agnodeinfo_t", sizeof(Agnodeinfo_t), NOT(0)); +UNSUPPORTED("as7afux025j9za91lkpbdhlh5"); // alloc_elist(tbl->cc, ND_in(t)); +UNSUPPORTED("45owhrvnuizmz3gn6jhwt9r56"); // alloc_elist(tbl->cc, ND_out(t)); +UNSUPPORTED("d60g65zb8jbubbmomitpsgzpr"); // if (lastn) { +UNSUPPORTED("cowtfloqsbrmejpce7x6ulj5k"); // ND_next(lastn) = t; +UNSUPPORTED("18byrlv6ie9y9nm16dl41cxdb"); // lastn = t; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("9j9ll3uhnqlomsgvhwsft59wk"); // lastn = GD_nlist(rowg) = t; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4yfdx4j85y1bzrkfrbeq3rnj6"); // for (cells = tbl->u.n.cells; *cells; cells++) { +UNSUPPORTED("bf3l7aqwurk08ip8lin8au4oe"); // cp = *cells; +UNSUPPORTED("83k3qjf3v9w5l7hot4gvvs5tg"); // t = (agnode(colg,nToName(cp->col),0)); +UNSUPPORTED("8msa1ozfck8y5yhzco44z0t57"); // h = (agnode(colg,nToName(cp->col + cp->cspan),0)); +UNSUPPORTED("d2ar26j7okhoc8twhebaivofx"); // checkEdge (colg, t, h, cp->data.box.UR.x); +UNSUPPORTED("2fjen8suku1q3xxa0wpl7qsum"); // t = (agnode(rowg,nToName(cp->row),0)); +UNSUPPORTED("ab72awoppza0d4tajke9xm71i"); // h = (agnode(rowg,nToName(cp->row + cp->rspan),0)); +UNSUPPORTED("bk0s0xc8k56b9bngk7g2fka0h"); // checkEdge (rowg, t, h, cp->data.box.UR.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ewn6zn4glhuedc96496ald1le"); // /* Make sure that 0 <= 1 <= 2 ...k. This implies graph connected. */ +UNSUPPORTED("f3o274adxf294p08bi4ou6m88"); // checkChain(colg); +UNSUPPORTED("f0anhfqyvokbtq82twub44rfd"); // checkChain(rowg); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a9vkjdktfvq94s8grq0awt8ub +// void setSizes(htmltbl_t * tbl, graph_t * rowg, graph_t * colg) +public static Object setSizes(Object... arg) { +UNSUPPORTED("bc7wgvmmd3yu8683xxfd3rr22"); // void setSizes(htmltbl_t * tbl, graph_t * rowg, graph_t * colg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("cxeyepn0z8rncl6hiyrwynbyx"); // int prev; +UNSUPPORTED("487cx7jg9iu9612dcxp78o34u"); // prev = 0; +UNSUPPORTED("18rgdpari4z097h1tz4p819fw"); // n = GD_nlist(rowg); +UNSUPPORTED("eh1qj3mz402dapyyftetof05a"); // for (i = 0, n = ND_next(n); n; i++, n = ND_next(n)) { +UNSUPPORTED("6sv14u0krll6ugupjjwvlhq4i"); // tbl->heights[i] = ND_rank(n) - prev; +UNSUPPORTED("bop9lix1a74ulob2lpqj26zbk"); // prev = ND_rank(n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("487cx7jg9iu9612dcxp78o34u"); // prev = 0; +UNSUPPORTED("215usl8ir632272pnexw4dw4a"); // n = GD_nlist(colg); +UNSUPPORTED("eh1qj3mz402dapyyftetof05a"); // for (i = 0, n = ND_next(n); n; i++, n = ND_next(n)) { +UNSUPPORTED("34z16bayffb7l3v3fp9cinerm"); // tbl->widths[i] = ND_rank(n) - prev; +UNSUPPORTED("bop9lix1a74ulob2lpqj26zbk"); // prev = ND_rank(n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 36o03axw6h4de6jf7hlsg2grd +// void sizeArray(htmltbl_t * tbl) +public static Object sizeArray(Object... arg) { +UNSUPPORTED("6x0xk9xg9vpp8xksw96k56u1"); // void sizeArray(htmltbl_t * tbl) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cn62n4eqyzjttfj22n5lrfl94"); // graph_t *rowg; +UNSUPPORTED("d25ssxgycdgg1h0reqweu0635"); // graph_t *colg; +UNSUPPORTED("15ufobi6lqylcwgadhiinn2rz"); // Agdesc_t dir = Agstrictdirected; +UNSUPPORTED("6icqhfpwgw7mwn7angx2lbml1"); // /* Do the 1D cases by hand */ +UNSUPPORTED("e1201jpt70fpsisqjq01rqu7n"); // if ((tbl->rc == 1) || (tbl->cc == 1)) { +UNSUPPORTED("5pno6zbafoxa39p36kwwp4lmk"); // sizeLinearArray(tbl); +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bekwtc6rvpxxj0nw9htqo33xq"); // tbl->heights = (int*)zmalloc((tbl->rc + 1)*sizeof(int)); +UNSUPPORTED("4nsdljbbmltaxyxhbkgez5juv"); // tbl->widths = (int*)zmalloc((tbl->cc + 1)*sizeof(int)); +UNSUPPORTED("b9tkqx6gz53htzewwyyunp4xv"); // rowg = agopen("rowg", dir, ((Agdisc_t *)0)); +UNSUPPORTED("dxt1otd0tqcp5injzpanxfax9"); // colg = agopen("colg", dir, ((Agdisc_t *)0)); +UNSUPPORTED("8y0btg7sstprwcixsvlq2u7pp"); // /* Only need GD_nlist */ +UNSUPPORTED("4uxsihlxll09wgjvybxovj9ow"); // agbindrec(rowg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); // graph custom data +UNSUPPORTED("594rtgd3ghu2cgzys2c4to6gc"); // agbindrec(colg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); // graph custom data +UNSUPPORTED("19x1bc8oad4optcepeckwzlka"); // makeGraphs(tbl, rowg, colg); +UNSUPPORTED("cm8coej8iti64rim71s3j4tci"); // rank(rowg, 2, INT_MAX); +UNSUPPORTED("dy7erzggbu109z2phnbysu6rx"); // rank(colg, 2, INT_MAX); +UNSUPPORTED("be3iwtvdfxp4lpy85s26mqx99"); // setSizes(tbl, rowg, colg); +UNSUPPORTED("e8ruqi1ny26tfctbxq1drpu93"); // closeGraphs(rowg, colg); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7mf9slzi6j1xx8znqkck81ojd +// static void pos_html_img(htmlimg_t * cp, boxf pos) +public static Object pos_html_img(Object... arg) { +UNSUPPORTED("42a4fvfkhhzdh65t6v4i6n43b"); // static void pos_html_img(htmlimg_t * cp, boxf pos) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eyv24evuojy17nni8sbxg9yjh"); // cp->box = pos; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dcraeyvk2uoj97sgfptvvusa +// static void pos_html_txt(htmltxt_t * ftxt, char c) +public static Object pos_html_txt(Object... arg) { +UNSUPPORTED("d7eeur03fxeyzb04yunpr831c"); // static void pos_html_txt(htmltxt_t * ftxt, char c) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("7roi5t8l55rt8fze3i4uwenso"); // for (i = 0; i < ftxt->nspans; i++) { +UNSUPPORTED("6md8m4m6htfbyunk0q6nq2ho0"); // if (ftxt->spans[i].just == 0) /* unset */ +UNSUPPORTED("3fqcf49h3ukywkyt02l4oplgw"); // ftxt->spans[i].just = c; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d1yiur9m8nrpdphq90db17c2b +// static void pos_html_cell(htmlcell_t * cp, boxf pos, int sides) +public static Object pos_html_cell(Object... arg) { +UNSUPPORTED("cuis36gztoi76fhtvhwcv6uws"); // static void pos_html_cell(htmlcell_t * cp, boxf pos, int sides) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4t6qmhslpzsy9xw7kwpjf6jjo"); // double delx, dely; +UNSUPPORTED("7ta9u8m4r7uq9owgmallfkj99"); // pointf oldsz; +UNSUPPORTED("ev57csu787p48tg5f6m2j68su"); // boxf cbox; +UNSUPPORTED("dqt4eshfaosfj7fb420g7lgy9"); // if (!cp->data.pencolor && cp->parent->data.pencolor) +UNSUPPORTED("2yqmgdi5dxbbo8fqhbtpgme67"); // cp->data.pencolor = strdup(cp->parent->data.pencolor); +UNSUPPORTED("6sseaydo6trvcsx0fbgjviv8v"); // /* If fixed, align cell */ +UNSUPPORTED("rt15k2ok7a3v6ib8d9ajshvb"); // if (cp->data.flags & 1) { +UNSUPPORTED("a32hmns6yj0aa2v1i19x5eqtt"); // oldsz = cp->data.box.UR; +UNSUPPORTED("egdv4monwtqnbi06p6drygg4z"); // delx = (pos.UR.x - pos.LL.x) - oldsz.x; +UNSUPPORTED("9gp0eb13t5b03zxfm7jonlmdx"); // if (delx > 0) { +UNSUPPORTED("3r69mn1s8ji4l2u8uhm0cxr6t"); // switch (cp->data.flags & ((1 << 1) | (1 << 2))) { +UNSUPPORTED("ah0nq9sdtr8muczczi3af7qvz"); // case (1 << 2): +UNSUPPORTED("83i011ns40yww4lbpzice4qdg"); // pos.UR.x = pos.LL.x + oldsz.x; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("747eovbx269l26fe7h49mrryq"); // case (1 << 1): +UNSUPPORTED("4jpvmjllp38cvz2lghv1jeh7g"); // pos.UR.x += delx; +UNSUPPORTED("x3gt3vyam3oix3tzq7wdjj1w"); // pos.LL.x += delx; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bt2g0yhsy3c7keqyftf3c98ut"); // default: +UNSUPPORTED("8vlipw77fzji9xypyn2xql291"); // pos.LL.x += delx / 2; +UNSUPPORTED("4izjifozyt8d031p91havf8j7"); // pos.UR.x -= delx / 2; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("63zme66vlc7atntu89wou5ww3"); // dely = (pos.UR.y - pos.LL.y) - oldsz.y; +UNSUPPORTED("csdkkh6bxwsn8205tirhbvcpe"); // if (dely > 0) { +UNSUPPORTED("dw4mvc0k0we5bzttm13ekyak4"); // switch (cp->data.flags & ((1 << 3) | (1 << 4))) { +UNSUPPORTED("6jzmehpko1ipx7h1trdpk0p30"); // case (1 << 4): +UNSUPPORTED("4np4td12i62sxy6mxtzoee6vk"); // pos.UR.y = pos.LL.y + oldsz.y; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("cambocbzqpbhx0e06nxo1mg7f"); // case (1 << 3): +UNSUPPORTED("71lpvi5k10xkuwslbh5f2m1oo"); // pos.UR.y += dely; +UNSUPPORTED("3n7t5wynk9p0hsnkp28tq5doy"); // pos.LL.y += dely; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bt2g0yhsy3c7keqyftf3c98ut"); // default: +UNSUPPORTED("68mslo2af2kz87uf4ymb6mndu"); // pos.LL.y += dely / 2; +UNSUPPORTED("et4apglclz3ejdqt6gum16gwo"); // pos.UR.y -= dely / 2; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bcuhn7spylvj4zlz2wnqy6kfn"); // cp->data.box = pos; +UNSUPPORTED("4kypvfdtl6j3y635aa3lfbmx7"); // cp->data.sides = sides; +UNSUPPORTED("6sg1893zgnf1mlxm40ambwc00"); // /* set up child's position */ +UNSUPPORTED("3zenzqy8fsqyj0zxt9d6qx1mp"); // cbox.LL.x = pos.LL.x + cp->data.border + cp->data.pad; +UNSUPPORTED("10zcbjdvv4pdzlcgw07sjisno"); // cbox.LL.y = pos.LL.y + cp->data.border + cp->data.pad; +UNSUPPORTED("4ucwlwg94jvv26o6yfn7lbkg8"); // cbox.UR.x = pos.UR.x - cp->data.border - cp->data.pad; +UNSUPPORTED("ba3o9fhq7mz6gml28ulxwfs05"); // cbox.UR.y = pos.UR.y - cp->data.border - cp->data.pad; +UNSUPPORTED("6vkx3zam2bwthfmvig3p2y9ec"); // if (cp->child.kind == 1) { +UNSUPPORTED("8z1yl25z03ecz8t2asagt5z3s"); // pos_html_tbl(cp->child.u.tbl, cbox, sides); +UNSUPPORTED("1gp8mj8w7s5i6ye7jneczpoai"); // } else if (cp->child.kind == 3) { +UNSUPPORTED("6qnl14334tx10x6pxokuy076z"); // /* Note that alignment trumps scaling */ +UNSUPPORTED("8d7v007kipxh9v68s46nbcdv1"); // oldsz = cp->child.u.img->box.UR; +UNSUPPORTED("cz5nuauq57ebdd8zqrhce67wo"); // delx = (cbox.UR.x - cbox.LL.x) - oldsz.x; +UNSUPPORTED("9gp0eb13t5b03zxfm7jonlmdx"); // if (delx > 0) { +UNSUPPORTED("3r69mn1s8ji4l2u8uhm0cxr6t"); // switch (cp->data.flags & ((1 << 1) | (1 << 2))) { +UNSUPPORTED("ah0nq9sdtr8muczczi3af7qvz"); // case (1 << 2): +UNSUPPORTED("eatno2hf9cwb72ksr51x04r17"); // cbox.UR.x -= delx; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("747eovbx269l26fe7h49mrryq"); // case (1 << 1): +UNSUPPORTED("6vnpw6y824ljczdg04lurdyrm"); // cbox.LL.x += delx; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2jhqhx6imw3gaobpzssepu61q"); // dely = (cbox.UR.y - cbox.LL.y) - oldsz.y; +UNSUPPORTED("csdkkh6bxwsn8205tirhbvcpe"); // if (dely > 0) { +UNSUPPORTED("dw4mvc0k0we5bzttm13ekyak4"); // switch (cp->data.flags & ((1 << 3) | (1 << 4))) { +UNSUPPORTED("6jzmehpko1ipx7h1trdpk0p30"); // case (1 << 4): +UNSUPPORTED("5jgoh3mgbu69dug17ua5isxoi"); // cbox.UR.y -= dely; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("cambocbzqpbhx0e06nxo1mg7f"); // case (1 << 3): +UNSUPPORTED("57wn9a7501luud0umd9n9whoh"); // cbox.LL.y += dely; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3q6pd6cdpl6kixk14otk5vcf7"); // pos_html_img(cp->child.u.img, cbox); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("vswlsa4ve8nrp47dvksveahx"); // char dfltalign; +UNSUPPORTED("dpza5c1mjk4tmba251ti6ysol"); // int af; +UNSUPPORTED("7qzrnbja04lm9p3qsyxgc6g5j"); // oldsz = cp->child.u.txt->box.UR; +UNSUPPORTED("cz5nuauq57ebdd8zqrhce67wo"); // delx = (cbox.UR.x - cbox.LL.x) - oldsz.x; +UNSUPPORTED("knv2w2aryy2x77uf3yn2sv3j"); // /* If the cell is larger than the text block and alignment is +UNSUPPORTED("eisx3o6ofwn34uxbpdqcjyney"); // * done at textblock level, the text box is shrunk accordingly. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("6byh14oe2h4qfjl9hz4tugk6r"); // if ((delx > 0) +UNSUPPORTED("34g3b2a63ruwu7osizmpbjsp0"); // && ((af = (cp->data.flags & ((1 << 1) | (1 << 2)))) != ((1 << 1) | (1 << 2)))) { +UNSUPPORTED("9aru1lheqv2fxnmx880bgla59"); // switch (af) { +UNSUPPORTED("ah0nq9sdtr8muczczi3af7qvz"); // case (1 << 2): +UNSUPPORTED("eatno2hf9cwb72ksr51x04r17"); // cbox.UR.x -= delx; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("747eovbx269l26fe7h49mrryq"); // case (1 << 1): +UNSUPPORTED("6vnpw6y824ljczdg04lurdyrm"); // cbox.LL.x += delx; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bt2g0yhsy3c7keqyftf3c98ut"); // default: +UNSUPPORTED("f00tr0gmqqbmhz7kx3uh7ousg"); // cbox.LL.x += delx / 2; +UNSUPPORTED("4gfwxxvuf3cx1weq1d1frc2wl"); // cbox.UR.x -= delx / 2; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2jhqhx6imw3gaobpzssepu61q"); // dely = (cbox.UR.y - cbox.LL.y) - oldsz.y; +UNSUPPORTED("csdkkh6bxwsn8205tirhbvcpe"); // if (dely > 0) { +UNSUPPORTED("dw4mvc0k0we5bzttm13ekyak4"); // switch (cp->data.flags & ((1 << 3) | (1 << 4))) { +UNSUPPORTED("6jzmehpko1ipx7h1trdpk0p30"); // case (1 << 4): +UNSUPPORTED("5jgoh3mgbu69dug17ua5isxoi"); // cbox.UR.y -= dely; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("cambocbzqpbhx0e06nxo1mg7f"); // case (1 << 3): +UNSUPPORTED("57wn9a7501luud0umd9n9whoh"); // cbox.LL.y += dely; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bt2g0yhsy3c7keqyftf3c98ut"); // default: +UNSUPPORTED("559886ixmsxdovurzx7ufouxh"); // cbox.LL.y += dely / 2; +UNSUPPORTED("b7j9nu9h7q7ojpdvc7jgs7jea"); // cbox.UR.y -= dely / 2; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8ffppec21dum3vzx3hfbt7lym"); // cp->child.u.txt->box = cbox; +UNSUPPORTED("f09i8w6xb3kiyteft7pwk1xzb"); // /* Set default text alignment +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("a2xny99nsqrutrygrab6nqs31"); // switch (cp->data.flags & ((1 << 8) | (1 << 9))) { +UNSUPPORTED("2fnkb2fn4fw82h0p8wfth2m7v"); // case (1 << 9): +UNSUPPORTED("4mfmqenjdv6zp3zcq403u25u9"); // dfltalign = 'l'; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("517hwzab4532op6cula0gwpm8"); // case (1 << 8): +UNSUPPORTED("9vpxaqao79gblr14g02sgam28"); // dfltalign = 'r'; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("ah7zjs7j3dr5o24wj8uwo17le"); // dfltalign = 'n'; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("61v88smrsyhegr9t51l74hs8a"); // pos_html_txt(cp->child.u.txt, dfltalign); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 56p5uk86725l2wvm0o2ai4e0c +// static void pos_html_tbl(htmltbl_t * tbl, boxf pos, int sides) +public static Object pos_html_tbl(Object... arg) { +UNSUPPORTED("4zsl8ii4walezca0spg3jkpml"); // static void pos_html_tbl(htmltbl_t * tbl, boxf pos, int sides) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("yc43os1rqvk4w7h7u8r7xz7h"); // int x, y, delx, dely, oldsz; +UNSUPPORTED("991fd779czwvhnsmgq2pvm7ke"); // int i, extra, plus; +UNSUPPORTED("f5l5qsm1xxo2fnsp38chcf009"); // htmlcell_t **cells = tbl->u.n.cells; +UNSUPPORTED("7hxwbqi0ato9k2b4nzpp7uw3a"); // htmlcell_t *cp; +UNSUPPORTED("ev57csu787p48tg5f6m2j68su"); // boxf cbox; +UNSUPPORTED("6wnsz74zxajfmm5w7fhshr5pm"); // if (tbl->u.n.parent && tbl->u.n.parent->data.pencolor +UNSUPPORTED("6om051bhvm5bnya5dhsn8703l"); // && !tbl->data.pencolor) +UNSUPPORTED("5t6k39jm45y79fncj958p0bi8"); // tbl->data.pencolor = strdup(tbl->u.n.parent->data.pencolor); +UNSUPPORTED("64r2e0x9tjiqy4dwte0s2na53"); // oldsz = tbl->data.box.UR.x; +UNSUPPORTED("b16keoeaghlhrly1fj1hcg66v"); // delx = (pos.UR.x - pos.LL.x) - oldsz; +UNSUPPORTED("72mwrduegc6kyaovkpxmb3kla"); // assert(delx >= 0); +UNSUPPORTED("b7vyqk2h86e5papeolvznvgur"); // oldsz = tbl->data.box.UR.y; +UNSUPPORTED("7es5w7nkeut9imevty43zebi7"); // dely = (pos.UR.y - pos.LL.y) - oldsz; +UNSUPPORTED("64mp20lb1sxfzoo97aplsdqpe"); // assert(dely >= 0); +UNSUPPORTED("1di54gxfw70161ro4warptkj0"); // /* If fixed, align box */ +UNSUPPORTED("h8silx20zxdo590p0rov9ilq"); // if (tbl->data.flags & 1) { +UNSUPPORTED("9gp0eb13t5b03zxfm7jonlmdx"); // if (delx > 0) { +UNSUPPORTED("enbwpz97yg5uci0y2vk50vsrq"); // switch (tbl->data.flags & ((1 << 1) | (1 << 2))) { +UNSUPPORTED("ah0nq9sdtr8muczczi3af7qvz"); // case (1 << 2): +UNSUPPORTED("epvqni6app7v9oeo39v7x6cs3"); // pos.UR.x = pos.LL.x + oldsz; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("747eovbx269l26fe7h49mrryq"); // case (1 << 1): +UNSUPPORTED("4jpvmjllp38cvz2lghv1jeh7g"); // pos.UR.x += delx; +UNSUPPORTED("x3gt3vyam3oix3tzq7wdjj1w"); // pos.LL.x += delx; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bt2g0yhsy3c7keqyftf3c98ut"); // default: +UNSUPPORTED("8vlipw77fzji9xypyn2xql291"); // pos.LL.x += delx / 2; +UNSUPPORTED("4izjifozyt8d031p91havf8j7"); // pos.UR.x -= delx / 2; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("3bdvthk8h2crnn2jh7zusg9ce"); // delx = 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("csdkkh6bxwsn8205tirhbvcpe"); // if (dely > 0) { +UNSUPPORTED("5h05tgdwuuueg6humeamv2m4i"); // switch (tbl->data.flags & ((1 << 3) | (1 << 4))) { +UNSUPPORTED("6jzmehpko1ipx7h1trdpk0p30"); // case (1 << 4): +UNSUPPORTED("eqhk1t2beqs3e09mbczosx9yu"); // pos.UR.y = pos.LL.y + oldsz; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("cambocbzqpbhx0e06nxo1mg7f"); // case (1 << 3): +UNSUPPORTED("71lpvi5k10xkuwslbh5f2m1oo"); // pos.UR.y += dely; +UNSUPPORTED("3n7t5wynk9p0hsnkp28tq5doy"); // pos.LL.y += dely; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bt2g0yhsy3c7keqyftf3c98ut"); // default: +UNSUPPORTED("68mslo2af2kz87uf4ymb6mndu"); // pos.LL.y += dely / 2; +UNSUPPORTED("et4apglclz3ejdqt6gum16gwo"); // pos.UR.y -= dely / 2; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("bt8navfmhl654g1jvozod782j"); // dely = 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7u5b2kpz91rbkr413ch2km1qt"); // /* change sizes to start positions and distribute extra space */ +UNSUPPORTED("e880xjt0fjapp1i3em12vo6ab"); // x = pos.LL.x + tbl->data.border + tbl->data.space; +UNSUPPORTED("eqmnnkt14mzvhoo12hvofnpd5"); // extra = delx / (tbl->cc); +UNSUPPORTED("3npyn5xhrv2h2rxdgixocbn58"); // plus = ROUND(delx - extra * (tbl->cc)); +UNSUPPORTED("2agp2sozteqj056j34uh5gz6h"); // for (i = 0; i <= tbl->cc; i++) { +UNSUPPORTED("6fyimcy0tdwoyn7j7pb684c72"); // delx = tbl->widths[i] + extra + (i < plus ? 1 : 0); +UNSUPPORTED("97y6durgj4r30emmb9d2yx1cw"); // tbl->widths[i] = x; +UNSUPPORTED("dvorntmdq8f156td307w9egcy"); // x += delx + tbl->data.space; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d3ntu3z75c4yumuw66kr4hxlh"); // y = pos.UR.y - tbl->data.border - tbl->data.space; +UNSUPPORTED("76tlpyfponp3ivujktbgvryaa"); // extra = dely / (tbl->rc); +UNSUPPORTED("3rcirxo66iwzw7ljilqek9e0q"); // plus = ROUND(dely - extra * (tbl->rc)); +UNSUPPORTED("de5kizyloe4kak5mszz3l0xcc"); // for (i = 0; i <= tbl->rc; i++) { +UNSUPPORTED("97fi1o2q93uolzwjy5s06qfet"); // dely = tbl->heights[i] + extra + (i < plus ? 1 : 0); +UNSUPPORTED("a481x2l1z3awwfj3yjtlgo88g"); // tbl->heights[i] = y; +UNSUPPORTED("i2i2disny8527o3tlqgm1kn9"); // y -= dely + tbl->data.space; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ofnf2f1u94pvf4hj17rsqy8d"); // while ((cp = *cells++)) { +UNSUPPORTED("c6mp42cwufjo544kh1xqg3ww9"); // int mask = 0; +UNSUPPORTED("6s6izyatmponzopy22eomuw6h"); // if (sides) { +UNSUPPORTED("ci2mmci593huj1u1l8312bdxg"); // if (cp->col == 0) +UNSUPPORTED("180z92dzsuptolgccbq2ebbm6"); // mask |= (1<<3); +UNSUPPORTED("3pn8116p5yexg0iuscpp22kg7"); // if (cp->row == 0) +UNSUPPORTED("600kbwzj1j1m8zj0j1bsqz8aa"); // mask |= (1<<2); +UNSUPPORTED("1ocnx9dbreuq1v9sb7rlnyekt"); // if (cp->col + cp->cspan == tbl->cc) +UNSUPPORTED("ab5f180dbgmvm86u6ej0a0jfu"); // mask |= (1<<1); +UNSUPPORTED("9o38jdsg3hkisw2im16ocf8ej"); // if (cp->row + cp->rspan == tbl->rc) +UNSUPPORTED("emscnh9p0d93pn26zla3grib6"); // mask |= (1<<0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("50z4y0q2sjuqyus2lgqe83g4l"); // cbox.LL.x = tbl->widths[cp->col]; +UNSUPPORTED("1oxnl88grlnsav4w1261c886s"); // cbox.UR.x = tbl->widths[cp->col + cp->cspan] - tbl->data.space; +UNSUPPORTED("5e7tlmesz6ywa1ov91ebohlax"); // cbox.UR.y = tbl->heights[cp->row]; +UNSUPPORTED("dgxtr9iempeg8h3l9v1fxopmp"); // cbox.LL.y = tbl->heights[cp->row + cp->rspan] + tbl->data.space; +UNSUPPORTED("24owfprr6bd2njcyxgx4n1l4n"); // pos_html_cell(cp, cbox, sides & mask); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c1h7iwd75xplbhdyaewh93lxg"); // tbl->data.sides = sides; +UNSUPPORTED("5fiqu8vepruovlpc2s45hcbu6"); // tbl->data.box = pos; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ja3w9brzk1n88r7xtda60x5j +// static int size_html_tbl(graph_t * g, htmltbl_t * tbl, htmlcell_t * parent, htmlenv_t * env) +public static Object size_html_tbl(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("c04xwvrthgk497pc2tqnlr7ox"); // size_html_tbl(graph_t * g, htmltbl_t * tbl, htmlcell_t * parent, +UNSUPPORTED("cvqu4srmmyhyi1msstywhtscs"); // htmlenv_t * env) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("efb2u4spxejn7tmmpds8w5bmt"); // int i, wd, ht; +UNSUPPORTED("en7ch189nkys76f42mlo1s5zz"); // int rv = 0; +UNSUPPORTED("c8p7i7oozhr11poil2ax0mjdh"); // static textfont_t savef; +UNSUPPORTED("acdkiuky8vkjaqqynxn9e052i"); // if (tbl->font) +UNSUPPORTED("84z3c9pimg6qaq5qubuumky79"); // pushFontInfo(env, tbl->font, &savef); +UNSUPPORTED("dozw5sbnv2526rxmb4d7no3mc"); // tbl->u.n.parent = parent; +UNSUPPORTED("bzaspovipgb81zg0rn2hg9ws6"); // rv = processTbl(g, tbl, env); +UNSUPPORTED("gb2gnkhq9ukpb04d2xn5yp57"); // /* Set up border and spacing */ +UNSUPPORTED("bb6uw1cmb2eiw4w2nge4ktccr"); // if (!(tbl->data.flags & (1 << 7))) { +UNSUPPORTED("692iudqfxxx63vzwd6b5jic1t"); // tbl->data.space = 2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8uvipaj8smh3qtdjva5dwzj3n"); // if (!(tbl->data.flags & (1 << 5))) { +UNSUPPORTED("5atgjs0l2cpz8rdfpnufzi70j"); // tbl->data.border = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cc10jfcra7z436uyielyuazm5"); // sizeArray(tbl); +UNSUPPORTED("d4ybybc32onajd96ca1mn638f"); // wd = (tbl->cc + 1) * tbl->data.space + 2 * tbl->data.border; +UNSUPPORTED("8f66i2di95mrekp3i2a073p3k"); // ht = (tbl->rc + 1) * tbl->data.space + 2 * tbl->data.border; +UNSUPPORTED("6zsxjcsdyiqzx29iho3kvce3b"); // for (i = 0; i < tbl->cc; i++) +UNSUPPORTED("3cc98nrmqfil716ohn18oza3c"); // wd += tbl->widths[i]; +UNSUPPORTED("10mwat8ui5nidzzhlgg5yty7r"); // for (i = 0; i < tbl->rc; i++) +UNSUPPORTED("6yoveejihcnddlhvh5p4tq23h"); // ht += tbl->heights[i]; +UNSUPPORTED("h8silx20zxdo590p0rov9ilq"); // if (tbl->data.flags & 1) { +UNSUPPORTED("eh0xx08g3zcuo0cuk6dhpz9hz"); // if (tbl->data.width && tbl->data.height) { +UNSUPPORTED("qc19pzjtzrlwlr2z5mlazlw3"); // if ((tbl->data.width < wd) || (tbl->data.height < ht)) { +UNSUPPORTED("auq0b1s64wg6gf5s6wd4zv6s6"); // agerr(AGWARN, "table size too small for content\n"); +UNSUPPORTED("en0rarvkx5srsxnlqpf6ja1us"); // rv = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6s22a7y0lgf1nt0wz0g1ysrzb"); // wd = ht = 0; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("cw5grwj6gbj94jcztvnp2ooyj"); // agerr(AGWARN, +UNSUPPORTED("ef1ic85u7lira3uhp5mbc1v84"); // "fixed table size with unspecified width or height\n"); +UNSUPPORTED("eldwzm3uyfs9zu1roub5a2uqi"); // rv = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("caz4xnmfghxiwpo8wk2zeu3a4"); // tbl->data.box.UR.x = MAX(wd, tbl->data.width); +UNSUPPORTED("9acb4ze4b4pn33aevyxfyqozw"); // tbl->data.box.UR.y = MAX(ht, tbl->data.height); +UNSUPPORTED("acdkiuky8vkjaqqynxn9e052i"); // if (tbl->font) +UNSUPPORTED("aqz3bhc3ot0j0okxcmu0ic2r"); // popFontInfo(env, &savef); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7sxjij9pnf0bhnnb7wl4nofo1 +// static char *nameOf(void *obj, agxbuf * xb) +public static Object nameOf(Object... arg) { +UNSUPPORTED("btnlhy87chzxs16mxvfpsif78"); // static char *nameOf(void *obj, agxbuf * xb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1bl759aws53yjk3xg9shiogx5"); // Agedge_t *ep; +UNSUPPORTED("91broiy562bqiwualvjbh1l0s"); // switch (agobjkind(obj)) { +UNSUPPORTED("eyna33dobiebmtd0nihpgura4"); // case AGRAPH: +UNSUPPORTED("8cgnhfyyaj25ten1tobjzy3cj"); // agxbput(xb, agnameof(((Agraph_t *) obj))); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6x7ztvlgv763oeop84udp1egg"); // case AGNODE: +UNSUPPORTED("cctji3p8t7zmokmktgqtbprtn"); // agxbput(xb, agnameof(((Agnode_t *) obj))); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("2dqikmmb6ag0anvbzo5tybf1r"); // case AGEDGE: +UNSUPPORTED("2ad512bjuifndlyd0zp0no4as"); // ep = (Agedge_t *) obj; +UNSUPPORTED("awux6oj7dq7r586y9rfsec5pl"); // agxbput(xb, agnameof(agtail(ep))); +UNSUPPORTED("3klfzjun0e36uku5f8mijrupz"); // agxbput(xb, agnameof(aghead(ep))); +UNSUPPORTED("abmgbuhki8erjgnnm5jbld3u0"); // if (agisdirected(agraphof(aghead(ep)))) +UNSUPPORTED("c83vr6d2i396r9l0hibwix946"); // agxbput(xb, "->"); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("4dvlp54lhuqxiob0e9rb75y78"); // agxbput(xb, "--"); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ersrvcvo8qkfouomz222hiih7"); // return (((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)'\0'))),(char*)((xb)->ptr = (xb)->buf)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eu0n8w5rlasw0veo8k5b77529 +// static char *getPenColor(void *obj) +public static Object getPenColor(Object... arg) { +UNSUPPORTED("cfi7ftrhnkn3lm0wv2x0r18rz"); // static char *getPenColor(void *obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("76nok3eiyr33qf4ecv69ujxn6"); // char *str; +UNSUPPORTED("29hppwsf0dbsgg7vod6zm63bi"); // if (((str = agget(obj, "pencolor")) != 0) && str[0]) +UNSUPPORTED("dep483bycw0fobgm198jw5423"); // return str; +UNSUPPORTED("edcd5eo1mutwxn0thhhi6st3g"); // else if (((str = agget(obj, "color")) != 0) && str[0]) +UNSUPPORTED("dep483bycw0fobgm198jw5423"); // return str; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("11hwqop4xebvtcskop4uhpp01"); // return NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 39z2hrj2uwkezxobreqxpgb10 +// int make_html_label(void *obj, textlabel_t * lp) +public static int make_html_label(__ptr__ obj, textlabel_t lp) { +ENTERING("39z2hrj2uwkezxobreqxpgb10","make_html_label"); +try { + UNSUPPORTED("3s2xr5n4swgcjctfsv6qg00p1"); // int make_html_label(void *obj, textlabel_t * lp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("eilnlejf229enq1lj62vjv9co"); // double wd2, ht2; +UNSUPPORTED("5t3pges1wg6mfbkjboi2joxvz"); // boxf box; +UNSUPPORTED("djl3ek9tn11htu3vj4zglczzz"); // graph_t *g; +UNSUPPORTED("1u1794803wctqmezrle9e40fh"); // htmllabel_t *lbl; +UNSUPPORTED("3safvfkd3g1jswoj457mw482u"); // htmlenv_t env; +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("1czan75f1vggpdp24d7zdiuk3"); // env.obj = obj; +UNSUPPORTED("91broiy562bqiwualvjbh1l0s"); // switch (agobjkind(obj)) { +UNSUPPORTED("eyna33dobiebmtd0nihpgura4"); // case AGRAPH: +UNSUPPORTED("e6ugdl34d8yqtquk3xq8g5njr"); // env.g = ((Agraph_t *) obj)->root; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6x7ztvlgv763oeop84udp1egg"); // case AGNODE: +UNSUPPORTED("9ldb5ezpi13ytd46d7a2jfsjt"); // env.g = agraphof(((Agnode_t *) obj)); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("2dqikmmb6ag0anvbzo5tybf1r"); // case AGEDGE: +UNSUPPORTED("b3fnj3g5kryrunurhwtu14s58"); // env.g = agraphof(aghead(((Agedge_t *) obj))); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b3ml4dxxt48s1jb4tjmh3kcl"); // g = env.g->root; +UNSUPPORTED("a849v049i9w8qoy93ki11k5uu"); // env.finfo.size = lp->fontsize; +UNSUPPORTED("a1hmvx29drpq62yc0z1hnt94v"); // env.finfo.name = lp->fontname; +UNSUPPORTED("bp1xlac8f55plurlc7r8zlhe1"); // env.finfo.color = lp->fontcolor; +UNSUPPORTED("1zhbcd4p01yiidkt2nre243ud"); // env.finfo.flags = 0; +UNSUPPORTED("59lntj5hyamn5m48dx76egibr"); // lbl = parseHTML(lp->text, &rv, &env); +UNSUPPORTED("5x7tz7hiemlbixjq7oneb217t"); // if (!lbl) { +UNSUPPORTED("40w3xqmz5l9wriaza3oix426k"); // /* Parse of label failed; revert to simple text label */ +UNSUPPORTED("8moktqylyfg7421xon31c77cc"); // agxbuf xb; +UNSUPPORTED("ej6qvho3zo1ppee5osn05sznr"); // unsigned char buf[128]; +UNSUPPORTED("el1z2krv8hoorc5c7vjsxw7yn"); // agxbinit(&xb, 128, buf); +UNSUPPORTED("ex7p8f1fzbxmluxcv7b1klvqj"); // lp->html = 0; +UNSUPPORTED("bw17wplsvct5mo251vy3dsdnd"); // lp->text = strdup(nameOf(obj, &xb)); +UNSUPPORTED("84zi029i2je3v9lclasqbzzz6"); // switch (lp->charset) { +UNSUPPORTED("2o83im06dulx11wjpy469gkoa"); // case 1: +UNSUPPORTED("2x8axrtn44h0bxv8taty1g4um"); // s = latin1ToUTF8(lp->text); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("6s5lm4gzged3go962bmlj7ali"); // default: /* UTF8 */ +UNSUPPORTED("ae0fj5kvhvwo125n05075dey0"); // s = htmlEntityUTF8(lp->text, env.g); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8o33n1cjfbc5pomhjq05mf70g"); // free(lp->text); +UNSUPPORTED("dggo2tcwybfitlkszeokmmkif"); // lp->text = s; +UNSUPPORTED("6kbijqcef4n75vn0elzyhlp1s"); // make_simple_label(GD_gvc(g), lp); +UNSUPPORTED("52frst03mcbsuu6bmnqs962qm"); // agxbfree(&xb); +UNSUPPORTED("cs1ejkx9cw658cl8cagdzqrzm"); // return rv; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5iviolw5wpvd60kgvpshry9yr"); // if (lbl->kind == 1) { +UNSUPPORTED("bngn7k03zqxfuyqrg5jrn8bey"); // if (!lbl->u.tbl->data.pencolor && getPenColor(obj)) +UNSUPPORTED("dotxa79u2y19du2t3cy26ikyr"); // lbl->u.tbl->data.pencolor = strdup(getPenColor(obj)); +UNSUPPORTED("4f3k9n37gn0t77n0n8w2jri95"); // rv |= size_html_tbl(g, lbl->u.tbl, NULL, &env); +UNSUPPORTED("9uru4l1xhqaont8awi4p0sjkj"); // wd2 = (lbl->u.tbl->data.box.UR.x) / 2; +UNSUPPORTED("47cjxxvben4j3g6i0n57razql"); // ht2 = (lbl->u.tbl->data.box.UR.y) / 2; +UNSUPPORTED("dbeae1e9945z3x32hpr57lcsy"); // box = boxfof(-wd2, -ht2, wd2, ht2); +UNSUPPORTED("esx73kvkhml43ids93kjyxtjl"); // pos_html_tbl(lbl->u.tbl, box, (1<<0) | (1<<1) | (1<<2) | (1<<3)); +UNSUPPORTED("1pymoi8bdocpvglitsvkl1ht0"); // lp->dimen.x = box.UR.x - box.LL.x; +UNSUPPORTED("37qvpfma16f9jhg8vmapgqes9"); // lp->dimen.y = box.UR.y - box.LL.y; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("4c4f4evqzm79omegn0iiwh0xm"); // rv |= size_html_txt(GD_gvc(g), lbl->u.txt, &env); +UNSUPPORTED("5p7gjzkkk108kyqqi0dcaub03"); // wd2 = lbl->u.txt->box.UR.x / 2; +UNSUPPORTED("2h33453c8784yvjdqab9rhpnb"); // ht2 = lbl->u.txt->box.UR.y / 2; +UNSUPPORTED("dbeae1e9945z3x32hpr57lcsy"); // box = boxfof(-wd2, -ht2, wd2, ht2); +UNSUPPORTED("bm3p3ihso4c60iy15wod75c9c"); // lbl->u.txt->box = box; +UNSUPPORTED("1pymoi8bdocpvglitsvkl1ht0"); // lp->dimen.x = box.UR.x - box.LL.x; +UNSUPPORTED("37qvpfma16f9jhg8vmapgqes9"); // lp->dimen.y = box.UR.y - box.LL.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5a4597d2vy3oenspwdojc7p42"); // lp->u.html = lbl; +UNSUPPORTED("75khj23dwtyoqpo3pddh0y5lm"); // /* If the label is a table, replace label text because this may +UNSUPPORTED("r04wjcozjf8bj9wdy4arsdy1"); // * be used for the title and alt fields in image maps. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("5iviolw5wpvd60kgvpshry9yr"); // if (lbl->kind == 1) { +UNSUPPORTED("8o33n1cjfbc5pomhjq05mf70g"); // free(lp->text); +UNSUPPORTED("40luql1elu7ug4ne43b0l4bh4"); // lp->text = strdup(""); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("39z2hrj2uwkezxobreqxpgb10","make_html_label"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/input__c.java plantuml-8039/src/gen/lib/common/input__c.java --- plantuml-8024/src/gen/lib/common/input__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/input__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1619 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static gen.lib.cgraph.attr__c.agattr; +import static gen.lib.cgraph.attr__c.agget; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.cgraph.refstr__c.aghtmlstr; +import static gen.lib.common.emit__c.init_xdot; +import static gen.lib.common.labels__c.make_label; +import static gen.lib.common.labels__c.strdup_and_subst_obj; +import static gen.lib.common.memory__c.zmalloc; +import static gen.lib.common.utils__c.late_double; +import static gen.lib.common.utils__c.late_int; +import static gen.lib.common.utils__c.late_nnstring; +import static gen.lib.common.utils__c.late_string; +import static gen.lib.common.utils__c.mapbool; +import static gen.lib.common.utils__c.maptoken; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.atof; +import static smetana.core.JUtils.atoi; +import static smetana.core.JUtils.enumAsInt; +import static smetana.core.JUtils.getenv; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtils.strstr; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGEDGE; +import static smetana.core.Macro.AGNODE; +import static smetana.core.Macro.AGRAPH; +import static smetana.core.Macro.GD_border; +import static smetana.core.Macro.GD_charset; +import static smetana.core.Macro.GD_drawing; +import static smetana.core.Macro.GD_exact_ranksep; +import static smetana.core.Macro.GD_flip; +import static smetana.core.Macro.GD_fontnames; +import static smetana.core.Macro.GD_has_labels; +import static smetana.core.Macro.GD_label; +import static smetana.core.Macro.GD_label_pos; +import static smetana.core.Macro.GD_nodesep; +import static smetana.core.Macro.GD_rankdir2; +import static smetana.core.Macro.GD_ranksep; +import static smetana.core.Macro.GD_showboxes; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ROUND; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agraph_s; +import h.boxf; +import h.fontname_kind; +import h.layout_t; +import h.pointf; +import smetana.core.CString; +import smetana.core.Z; +import smetana.core.__struct__; + +public class input__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 1fi3wib3hc7ibek0vfrpx9k3i +// static char *usageFmt = + + +//1 cpzagrot2j4620xbm08g3qbaz +// static char *genericItems = + + +//1 ej8f5pc6itbjzywbvv9r7pgog +// static char *neatoFlags = + + +//1 6zygu4f39vz4q5m4oiz64om5v +// static char *neatoItems = + + +//1 a5i7jzdqfacw4bequdriv6cb9 +// static char *fdpFlags = + + +//1 9hrf5y45qp9kii44glcd4nx6e +// static char *fdpItems = + + +//1 bw7swzrd97c859k69vhbo6xui +// static char *memtestFlags = + + +//1 dlf2hcbhlyk0xi7y4hhyxdjlg +// static char *memtestItems = + + +//1 bfkjkg4j8ncjq3fbcfon7ce1a +// static char *configFlags = + + +//1 cwsgle0ax1dh0i4rb6c4n90s8 +// static char *configItems = + + + + +//3 18dk9rr2jwvw2k0pwd01u1rp +// int dotneato_usage(int exval) +public static Object dotneato_usage(Object... arg) { +UNSUPPORTED("cjfxortgnqo3ho8cb4mse3bjk"); // int dotneato_usage(int exval) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9qo38fqtykhj9o5wf9n2mmvf9"); // FILE *outs; +UNSUPPORTED("6p2t5f6k16pthcnlxnvr8fxp2"); // if (exval > 0) +UNSUPPORTED("ajsyw6vt4yc7jws9my3dfqw55"); // outs = stderr; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("9ymsocy1jyvql8lvl7z9v3x1d"); // outs = stdout; +UNSUPPORTED("eo2ztyy17mz06ptqvcj5azpza"); // fprintf(outs, usageFmt, CmdName); +UNSUPPORTED("1nhpls9sffy8jo9sa7638u515"); // fputs(neatoFlags, outs); +UNSUPPORTED("578fe6racfp402cmjp3xuomor"); // fputs(fdpFlags, outs); +UNSUPPORTED("a3xdyyuyrv70igk8e8z4415gn"); // fputs(memtestFlags, outs); +UNSUPPORTED("59cqs6545cogaa8zbv9x1fep0"); // fputs(configFlags, outs); +UNSUPPORTED("9qmx2r5uawon9q2snigjcita"); // fputs(genericItems, outs); +UNSUPPORTED("18sodiqes6jpcc8fj1vlkj6bd"); // fputs(neatoItems, outs); +UNSUPPORTED("boxkj32094gcugdk6u9p1hppc"); // fputs(fdpItems, outs); +UNSUPPORTED("4yygtzneqsdphtbnhfta2lge0"); // fputs(memtestItems, outs); +UNSUPPORTED("8ywutcqn5x3zpugo58b72ualq"); // fputs(configItems, outs); +UNSUPPORTED("3rabv7gfkqu0ag8x2rjiyrjbr"); // if (GvExitOnUsage && (exval >= 0)) +UNSUPPORTED("1swto2i8s568mypddkno5wez1"); // exit(exval); +UNSUPPORTED("3jphahsl7jw3c1c1u71vs8dj3"); // return (exval+1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9s68av3h3ph5gjla9e2d3220t +// static char *getFlagOpt(int argc, char **argv, int *idx) +public static Object getFlagOpt(Object... arg) { +UNSUPPORTED("7i2co2mk6i4v2e5zed6cohfi0"); // static char *getFlagOpt(int argc, char **argv, int *idx) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0vo8zzyjurgsxynujp3wbwn3"); // int i = *idx; +UNSUPPORTED("9ldayvulqiau72gm4iigedbe"); // char *arg = argv[i]; +UNSUPPORTED("1ii197c2ypmbtq6b4c6xrmqre"); // if (arg[2]) +UNSUPPORTED("85bk7kest90gpgv6qhqqam6od"); // return arg + 2; +UNSUPPORTED("62vtkmbmceearvwa1gge24udl"); // if (i < argc - 1) { +UNSUPPORTED("chd2f5z6rt19lbaye25ej7q6j"); // i++; +UNSUPPORTED("dbe1l1xge33op9cemtc13bsld"); // arg = argv[i]; +UNSUPPORTED("e7t6j4nall86kdxxvxopr6hl7"); // if (*arg && (*arg != '-')) { +UNSUPPORTED("a1qi3k2o6tudikh6zg6qxb32v"); // *idx = i; +UNSUPPORTED("aegbvj6xoqbt16mud86st36ex"); // return arg; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2dx6lb6fkeqxispmv7w0bgsat +// static char* dotneato_basename (char* path) +public static Object dotneato_basename(Object... arg) { +UNSUPPORTED("58z62a4pwz8fb1fqzgemmk2v"); // static char* dotneato_basename (char* path) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("60anbhq8j280g1jvxqcu76t4v"); // char* ret; +UNSUPPORTED("cmcyg2bmd7exlb7oegpilnua8"); // char* s = path; +UNSUPPORTED("7oz55r1w75doc5wm9wdr5ud7c"); // if (*s == '\0') return path; /* empty string */ +UNSUPPORTED("48at50ffoqbw40aae7qlp0vus"); // while (*s) s++; s--; +UNSUPPORTED("tbim4ak38lvnw1gb72gj4hnh"); // /* skip over trailing slashes, nulling out as we go */ +UNSUPPORTED("clj6wpwuuq0wl5g7f67hqvvfc"); // while ((s > path) && ((*s == '/') || (*s == '\\'))) +UNSUPPORTED("f59muao0hgreza561qmmnlzum"); // *s-- = '\0'; +UNSUPPORTED("18c1lv0flxz0ts64xlwuviv33"); // if (s == path) ret = path; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("4x9t5rl1kdp5nac9tewdf9x2n"); // while ((s > path) && ((*s != '/') && (*s != '\\'))) s--; +UNSUPPORTED("953u2wmr3tzfpiq8m06fdvhn5"); // if ((*s == '/') || (*s == '\\')) ret = s+1; +UNSUPPORTED("5dwayhic40dcurqedqxv1q7mj"); // else ret = path; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f3b7mj138albdr4lodyomke0z"); // return ret; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ez0qfar6yuf01ivvqrnev06fv +// static void use_library(GVC_t *gvc, const char *name) +public static Object use_library(Object... arg) { +UNSUPPORTED("cjicty7s03euuxnpum74nrt6f"); // static void use_library(GVC_t *gvc, const char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8h89r8rhn7udjmeo8y259899y"); // static int cnt = 0; +UNSUPPORTED("30nxp5k7c6mdth5ymcpz1oxob"); // if (name) { +UNSUPPORTED("dwg0l3nktjnwky7m5lipngiot"); // Lib = ALLOC(cnt + 2, Lib, const char *); +UNSUPPORTED("axgfffz8lebk44oe1y1djiu6p"); // Lib[cnt++] = name; +UNSUPPORTED("3c388gk5lojcaen61m94i3x0w"); // Lib[cnt] = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("comriuhmiu8kq7sayutlxoqbq"); // gvc->common.lib = Lib; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dlfidqx2agrk43ikmxgzw9kgp +// static void global_def(agxbuf* xb, char *dcl, int kind, attrsym_t * ((*dclfun) (Agraph_t *, int kind, char *, char *)) ) +public static Object global_def(Object... arg) { +UNSUPPORTED("zydu58d3g8obsevu9l8zo05i"); // static void global_def(agxbuf* xb, char *dcl, int kind, +UNSUPPORTED("zj9p9fdfpp3hwme7atl3cug3"); // attrsym_t * ((*dclfun) (Agraph_t *, int kind, char *, char *)) ) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("c6ykztqlvb01grrqat3q7f8hg"); // char *rhs = "true"; +UNSUPPORTED("7c3pfnvbbbnijw9cg9xkyyatm"); // attrsym_t *sym; +UNSUPPORTED("1qmhad0yyiddc207b8z5rm70x"); // if ((p = strchr(dcl, '='))) { +UNSUPPORTED("5s96z976xk7iglr5vvuad1dsb"); // agxbput_n (xb, dcl, p-dcl); +UNSUPPORTED("dbw9pn8xmpdqi11uffv4r6gxq"); // rhs = p+1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("dv0ywo1nopy8xc9d9kfbn0hgz"); // agxbput (xb, dcl); +UNSUPPORTED("dhedzhv3dnzrq7ytgiqff11ku"); // sym = dclfun(NULL, kind, (((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)'\0'))),(char*)((xb)->ptr = (xb)->buf)), rhs); +UNSUPPORTED("6o4s3a3c3rae5ltba8nvab5px"); // sym->fixed = 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5qvhl3c476hpwnik5r2ee5pin +// static int gvg_init(GVC_t *gvc, graph_t *g, char *fn, int gidx) +public static Object gvg_init(Object... arg) { +UNSUPPORTED("69zdfufo90wdjvfvsw59lz5n3"); // static int gvg_init(GVC_t *gvc, graph_t *g, char *fn, int gidx) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c55ofvf49idlhjsnnxfqjpi9s"); // GVG_t *gvg; +UNSUPPORTED("1nqr81udw639pz7enx2hfhtn5"); // gvg = zmalloc(sizeof(GVG_t)); +UNSUPPORTED("wpylwsmjyiuxs9f8x3srqmfs"); // if (!gvc->gvgs) +UNSUPPORTED("9y22l2dxq6artoaqqeeczdq1x"); // gvc->gvgs = gvg; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("2nndq73tw0aaltr2i1ajvsspn"); // gvc->gvg->next = gvg; +UNSUPPORTED("e9w6optlcophkwjmfin7kyi1i"); // gvc->gvg = gvg; +UNSUPPORTED("eish9dbcdxs6v4dh4sgg6uzjj"); // gvg->gvc = gvc; +UNSUPPORTED("27sxrps4axrp5fbl0qnenmif3"); // gvg->g = g; +UNSUPPORTED("5q4sypoeu8fbwv3a2p6qsnq73"); // gvg->input_filename = fn; +UNSUPPORTED("1wh5jhwi3fb70nrl37aoz6lhj"); // gvg->graph_index = gidx; +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 6k1gxkaeteh3v4108asx0nu9q +// static graph_t *P_graph + + + + +//3 2zkpt5r5hmvqy31vbxai8aoww +// graph_t *gvPluginsGraph(GVC_t *gvc) +public static Object gvPluginsGraph(Object... arg) { +UNSUPPORTED("aq8xsrhhkbt250zdmff189jej"); // graph_t *gvPluginsGraph(GVC_t *gvc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eoghsuji192if07hz2zmt1geg"); // gvg_init(gvc, P_graph, "", 0); +UNSUPPORTED("5qryvsjfdmb52s891tbejpwi3"); // return P_graph; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a4vyp310q1ezn1wiiqbhjazfi +// int dotneato_args_initialize(GVC_t * gvc, int argc, char **argv) +public static Object dotneato_args_initialize(Object... arg) { +UNSUPPORTED("3an9kpb8l897hglulndwlyhmk"); // int dotneato_args_initialize(GVC_t * gvc, int argc, char **argv) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("exs7yxl18noutslfdhd65grcd"); // char c, *rest, *layout; +UNSUPPORTED("d28hrwkttitp7p3zkyur6josm"); // const char *val; +UNSUPPORTED("e4nq5nxc3t4f7sn9hms693ro5"); // int i, v, nfiles; +UNSUPPORTED("h0or3v13348vfl22jqz895yc"); // unsigned char buf[128]; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("djkz3f3ke85c3ihtck61wzehd"); // int Kflag = 0; +UNSUPPORTED("e36z5l2h47e3sm6az444bpmte"); // /* establish if we are running in a CGI environment */ +UNSUPPORTED("39kpbo7t3xw42psbqxwyosbtg"); // HTTPServerEnVar = getenv("SERVER_NAME"); +UNSUPPORTED("bjgrdu955j26h6boths39zysy"); // /* establish Gvfilepath, if any */ +UNSUPPORTED("9u1u08bh9yk3m8qjesa9h35o3"); // Gvfilepath = getenv("GV_FILE_PATH"); +UNSUPPORTED("byzhjcmd87bu2q2ifs8d2zqmx"); // gvc->common.cmdname = dotneato_basename(argv[0]); +UNSUPPORTED("6t7yoiijwsc45jhh2ycc1zvqn"); // if (gvc->common.verbose) { +UNSUPPORTED("5jlgk53d79be5z8yrpqk31i41"); // fprintf(stderr, "%s - %s version %s (%s)\n", +UNSUPPORTED("a3fdnva5eaynygwl01w4i14vu"); // gvc->common.cmdname, gvc->common.info[0], +UNSUPPORTED("4cr6o6cpwligpzuiy9go86dtk"); // gvc->common.info[1], gvc->common.info[2]); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ebjtmwuwx6vwhxaswhb2j4mfm"); // /* configure for available plugins */ +UNSUPPORTED("7y1a5ferpdpuzp8lj2nreef7e"); // /* needs to know if "dot -c" is set (gvc->common.config) */ +UNSUPPORTED("1915n665xv0fno6lfzaikw5ml"); // /* must happen before trying to select any plugins */ +UNSUPPORTED("b2umkw2rzz1ig1cngfiht4fmx"); // if (gvc->common.config) { +UNSUPPORTED("d3di2hukfdei22j9nlhb4lr4i"); // gvconfig(gvc, gvc->common.config); +UNSUPPORTED("ew35v5jfro4z9mn5cwzl5e0ha"); // exit (0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9gg8gbp3jei0upfnr0b5i6fur"); // /* feed the globals */ +UNSUPPORTED("36hh3435f786qyybpu0o87zjv"); // Verbose = gvc->common.verbose; +UNSUPPORTED("es2j9l0phjktwgdz1y2435lnm"); // CmdName = gvc->common.cmdname; +UNSUPPORTED("dhvbz69j0rmligcrm9974041x"); // nfiles = 0; +UNSUPPORTED("d1jh4myxvrwmm9xcl79yh24g1"); // for (i = 1; i < argc; i++) +UNSUPPORTED("32x1kvhg66oubz0hakj6dvxg1"); // if (argv[i] && argv[i][0] != '-') +UNSUPPORTED("5pk2vvpyoy1qbkfwm0d3cqpip"); // nfiles++; +UNSUPPORTED("d4gb5xxnp2a9dqmzsisy3d2x5"); // gvc->input_filenames = (char **)zmalloc((nfiles + 1)*sizeof(char *)); +UNSUPPORTED("dhvbz69j0rmligcrm9974041x"); // nfiles = 0; +UNSUPPORTED("ci65k77x1b3nq6luu69s87oup"); // agxbinit(&xb, 128, buf); +UNSUPPORTED("9fp588sbdt939tsh4lldsi78p"); // for (i = 1; i < argc; i++) { +UNSUPPORTED("71ydjmz8tdkhga4y130hpfzd7"); // if (argv[i] && argv[i][0] == '-') { +UNSUPPORTED("a2i31gh8f8d1uzwvazthtdjhl"); // rest = &(argv[i][2]); +UNSUPPORTED("akiijvdhiis6rte3uan48lkio"); // switch (c = argv[i][1]) { +UNSUPPORTED("cnw3cn0y6fyfmhrj9i6zrj7yt"); // case 'G': +UNSUPPORTED("cyapeoqsbt759mwufn37a0j3w"); // if (*rest) +UNSUPPORTED("37iemzdcou8tf7mb850gmys6k"); // global_def(&xb, rest, AGRAPH, agattr); +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("d10434bczuxvbju6r580xu4i3"); // fprintf(stderr, "Missing argument for -G flag\n"); +UNSUPPORTED("3j6l9hq73a342kljq6expow6m"); // return (dotneato_usage(1)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("3za1kdrr0abcgx59eek9sst25"); // case 'N': +UNSUPPORTED("cyapeoqsbt759mwufn37a0j3w"); // if (*rest) +UNSUPPORTED("22su7vu663f22bni5gx0jkxq9"); // global_def(&xb, rest, AGNODE,agattr); +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("14g4xc09ropngbhfr31tffeii"); // fprintf(stderr, "Missing argument for -N flag\n"); +UNSUPPORTED("3j6l9hq73a342kljq6expow6m"); // return (dotneato_usage(1)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("30903uov1ouylqet6qkn3k0rw"); // case 'E': +UNSUPPORTED("cyapeoqsbt759mwufn37a0j3w"); // if (*rest) +UNSUPPORTED("b73i9nd8mv1m5tjqoqs0xawyw"); // global_def(&xb, rest, AGEDGE,agattr); +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("6utrckluwkoaluhpksl5aa52s"); // fprintf(stderr, "Missing argument for -E flag\n"); +UNSUPPORTED("3j6l9hq73a342kljq6expow6m"); // return (dotneato_usage(1)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("1ve8bjgk9dfpf0eremg7h6xzz"); // case 'T': +UNSUPPORTED("8xdr8a6r0v0ddt027euqcwvue"); // val = getFlagOpt(argc, argv, &i); +UNSUPPORTED("3w8hn108291bjaa11z3v4j97d"); // if (!val) { +UNSUPPORTED("cd45xgksaxjl5u63gikj5qcyu"); // fprintf(stderr, "Missing argument for -T flag\n"); +UNSUPPORTED("3j6l9hq73a342kljq6expow6m"); // return (dotneato_usage(1)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("72i7z40rqqngolv7pgnr45kl3"); // v = gvjobs_output_langname(gvc, val); +UNSUPPORTED("9cs6zbfun0bg9dhunbu1dwnox"); // if (!v) { +UNSUPPORTED("7ohbl1a39cg7xkg3hactpw7w3"); // fprintf(stderr, "Format: \"%s\" not recognized. Use one of:%s\n", +UNSUPPORTED("f2p3vxh49izcvsl9jvtkf6q3o"); // val, gvplugin_list(gvc, API_device, val)); +UNSUPPORTED("910dtu59610pevhvj5yhrqcm4"); // if (GvExitOnUsage) exit(1); +UNSUPPORTED("7uqiarbyt9mx4hwdla4nbhj8p"); // return(2); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("8e0kz1b9axy6hx29fg32k1asu"); // case 'K': +UNSUPPORTED("8xdr8a6r0v0ddt027euqcwvue"); // val = getFlagOpt(argc, argv, &i); +UNSUPPORTED("3w8hn108291bjaa11z3v4j97d"); // if (!val) { +UNSUPPORTED("4387cb0sfakxesew55rctdheb"); // fprintf(stderr, "Missing argument for -K flag\n"); +UNSUPPORTED("2ns70sizijh2h7z83rt81fqfk"); // return (dotneato_usage(1)); +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("13d5md8v926ivibrbmgaktksx"); // v = gvlayout_select(gvc, val); +UNSUPPORTED("4pu52xhc37cufgh16nc8pjoa2"); // if (v == 999) { +UNSUPPORTED("8uoslbuyiw8828cnsd28ys8oh"); // fprintf(stderr, "There is no layout engine support for \"%s\"\n", val); +UNSUPPORTED("em4qxiev3phf1bnbh6vx4zjp9"); // if ((*(val)==*("dot")&&!strcmp(val,"dot"))) { +UNSUPPORTED("e46yvd7c19nfgratz9j0sg9d0"); // fprintf(stderr, "Perhaps \"dot -c\" needs to be run (with installer's privileges) to register the plugins?\n"); +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("cphaexi33y32dnefwtu3jsom4"); // else { +UNSUPPORTED("d3cg95zim5q97685u5v0sxrhv"); // fprintf(stderr, "Use one of:%s\n", +UNSUPPORTED("7ced84fhzz8sv21ptj4yf5b3p"); // gvplugin_list(gvc, API_layout, val)); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("910dtu59610pevhvj5yhrqcm4"); // if (GvExitOnUsage) exit(1); +UNSUPPORTED("7uqiarbyt9mx4hwdla4nbhj8p"); // return(2); +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("8c0wmxuda35p1as4i2fh9yoti"); // Kflag = 1; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("5gsxsxc1w5fdmgnphelmjuqql"); // case 'P': +UNSUPPORTED("91ohbqvqagns01k8geznhjm7k"); // P_graph = gvplugin_graph(gvc); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("cxe7ytf67rip7dewog9rnbqqq"); // case 'V': +UNSUPPORTED("61p8yjtqxyg8jhsx9xyqa39my"); // fprintf(stderr, "%s - %s version %s (%s)\n", +UNSUPPORTED("chg3zu0nmmc2hpkc8a0cx08er"); // gvc->common.cmdname, gvc->common.info[0], +UNSUPPORTED("b9v3iookta64ex67ies4j4zva"); // gvc->common.info[1], gvc->common.info[2]); +UNSUPPORTED("2hk3eyce9u1ys3e3ycfmrtq9n"); // if (GvExitOnUsage) exit(0); +UNSUPPORTED("b9uibzxx0tu796r6pqyspuc8u"); // return (1); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("8et213nsqt44k6e0d06mh32mg"); // case 'l': +UNSUPPORTED("8xdr8a6r0v0ddt027euqcwvue"); // val = getFlagOpt(argc, argv, &i); +UNSUPPORTED("3w8hn108291bjaa11z3v4j97d"); // if (!val) { +UNSUPPORTED("3l9adyncbqlq4cr0dn291j8ms"); // fprintf(stderr, "Missing argument for -l flag\n"); +UNSUPPORTED("3j6l9hq73a342kljq6expow6m"); // return (dotneato_usage(1)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("a3ei53c2mnxhfpt33rezp6ll1"); // use_library(gvc, val); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t4c4wqag0c9inoine0vc6rzh"); // case 'o': +UNSUPPORTED("8xdr8a6r0v0ddt027euqcwvue"); // val = getFlagOpt(argc, argv, &i); +UNSUPPORTED("cgclbrsy2pcq9nt94cnmi4l1n"); // if (! gvc->common.auto_outfile_names) +UNSUPPORTED("6l1o8s3lihedxdhlhkt8bacw5"); // gvjobs_output_filename(gvc, val); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("3gzpswryl53n5xaxcbut8piyh"); // case 'q': +UNSUPPORTED("55tn4eqemjloic8o06vd4n3nc"); // if (*rest) { +UNSUPPORTED("5j8v456fg3eazoh4x59s440ph"); // v = atoi(rest); +UNSUPPORTED("ee277mlx9bo22lecmdsnie12n"); // if (v <= 0) { +UNSUPPORTED("3iwc3dzplzj2jkbze5cd6zfh9"); // fprintf(stderr, +UNSUPPORTED("6w3cyan5p5sb01pzz7n8i45h6"); // "Invalid parameter \"%s\" for -q flag - ignored\n", +UNSUPPORTED("77gwizewn0zj87535pi2g735m"); // rest); +UNSUPPORTED("2ndpjzfiv49aqobcgbi5tftoi"); // } else if (v == 1) +UNSUPPORTED("b4xb9n0clcaf5h0njzxmd6t8u"); // agseterr(AGERR); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("eb2xug8syn6gd6cd1ms784rt0"); // agseterr(AGMAX); +UNSUPPORTED("738mi6h8ef0itznt34ngxe25o"); // } else +UNSUPPORTED("cyu314astki71lyhi8jonkon1"); // agseterr(AGERR); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("9laca56e8dr2klwt5asm5s92v"); // case 's': +UNSUPPORTED("55tn4eqemjloic8o06vd4n3nc"); // if (*rest) { +UNSUPPORTED("7p5xijseyywlgq947on87fbfy"); // PSinputscale = atof(rest); +UNSUPPORTED("te6xrfczv0b2rmmfw7n419bj"); // if (PSinputscale < 0) { +UNSUPPORTED("3iwc3dzplzj2jkbze5cd6zfh9"); // fprintf(stderr, +UNSUPPORTED("298zr2x6bn7osz168zt1qsgbn"); // "Invalid parameter \"%s\" for -s flag\n", +UNSUPPORTED("77gwizewn0zj87535pi2g735m"); // rest); +UNSUPPORTED("788fqd2nm2s7cyhjye34lwaho"); // return (dotneato_usage(1)); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("e99bugzc8p62vi8asjsx3jnat"); // else if (PSinputscale == 0) +UNSUPPORTED("ca5magegib4z3wn2wbj91xdz5"); // PSinputscale = 72; +UNSUPPORTED("738mi6h8ef0itznt34ngxe25o"); // } else +UNSUPPORTED("cdz7sxlinpy8lsv4kjrrzvmlb"); // PSinputscale = 72; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("551eo7ey20lfrotadzc8xx636"); // case 'x': +UNSUPPORTED("ciou2ugu3ekwr7d8dtcmo8bqd"); // Reduce = NOT(0); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6hwwmvxwrrrsv7qs0y53et76n"); // case 'y': +UNSUPPORTED("71s7bg2w58aqtjmpwed4525kz"); // Y_invert = NOT(0); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("eqbveikc3czxh4drpev1uzhla"); // case '?': +UNSUPPORTED("5tdq5fsx232bmgvcnkjmwox6c"); // return (dotneato_usage(0)); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bt2g0yhsy3c7keqyftf3c98ut"); // default: +UNSUPPORTED("ex8ddsq0de4n302ieh93s4nrw"); // agerr(AGERR, "%s: option -%c unrecognized\n\n", gvc->common.cmdname, +UNSUPPORTED("4fgwtijdvmyysu4tcsnigf36q"); // c); +UNSUPPORTED("5mxnk6d8u3qj69z7yzqkphjgw"); // return (dotneato_usage(1)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ezl09f02n0cfigsaeyqsejcm0"); // } else if (argv[i]) +UNSUPPORTED("ez69zldbihwem8y9yr9rmi9gt"); // gvc->input_filenames[nfiles++] = argv[i]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9ocnzhe59r19odwgtedwnydm"); // agxbfree (&xb); +UNSUPPORTED("56kll2bx8jbmqba2kk0pxvefe"); // /* if no -K, use cmd name to set layout type */ +UNSUPPORTED("dy5okspyylmag8l3ke6of2fps"); // if (!Kflag) { +UNSUPPORTED("18vaoqlkvxjkxccqkm1cxljuo"); // layout = gvc->common.cmdname; +UNSUPPORTED("bshj1mtaoepm94oi9afocf8ou"); // if ((*(layout)==*("dot_static")&&!strcmp(layout,"dot_static")) +UNSUPPORTED("64dtzt25t15e7uoo50r0rsefx"); // || (*(layout)==*("dot_builtins")&&!strcmp(layout,"dot_builtins")) +UNSUPPORTED("klg5jjw0m71w4m5shlxzhfjy"); // || (*(layout)==*("lt-dot")&&!strcmp(layout,"lt-dot")) +UNSUPPORTED("42tigt1aywc44r9j37x5jq0ib"); // || (*(layout)==*("lt-dot_builtins")&&!strcmp(layout,"lt-dot_builtins")) +UNSUPPORTED("56pxlfwd1wodkyuswmf36lmwr"); // || (*(layout)==*("")&&!strcmp(layout,"")) /* when run as a process from Gvedit on Windows */ +UNSUPPORTED("awdmf39ch8hkgicc7jwv9s67r"); // ) +UNSUPPORTED("80rf3qgk59flt06kvnzepp9kt"); // layout = "dot"; +UNSUPPORTED("e3pxmvk611turzkqpddzqql3e"); // i = gvlayout_select(gvc, layout); +UNSUPPORTED("cbslslfvt4zqfxukzdqeu902c"); // if (i == 999) { +UNSUPPORTED("2h041d156jcuzdn0h3t1kxz6b"); // fprintf(stderr, "There is no layout engine support for \"%s\"\n", layout); +UNSUPPORTED("6xr0y24n28bl6fmb7hwi2d6yh"); // if ((*(layout)==*("dot")&&!strcmp(layout,"dot"))) +UNSUPPORTED("a9b0u4vno2ovyayhgdz2qi2l0"); // fprintf(stderr, "Perhaps \"dot -c\" needs to be run (with installer's privileges) to register the plugins?\n"); +UNSUPPORTED("f3qa0cv737ikcre1vpqlkukio"); // else +UNSUPPORTED("3oqrxaejbit2ag4yv1f8std7v"); // fprintf(stderr, "Use one of:%s\n", gvplugin_list(gvc, API_layout, "")); +UNSUPPORTED("cziimyez7l7opmyxtz7i258x"); // if (GvExitOnUsage) exit(1); +UNSUPPORTED("8u2416o82oso1w72bexmapn9v"); // return(2); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e8n0c84rizzjhmsff49m2fynz"); // /* if no -Txxx, then set default format */ +UNSUPPORTED("5atdq1nn8pklea2e61l8ekie"); // if (!gvc->jobs || !gvc->jobs->output_langname) { +UNSUPPORTED("ejs6fyeynpj73y8zhc2xjcvrc"); // v = gvjobs_output_langname(gvc, "dot"); +UNSUPPORTED("6lpp7llfms4w364wz03qdlrnl"); // if (!v) { +UNSUPPORTED("5di5qeuntrt4eii2azt25l076"); // // assert(v); /* "dot" should always be available as an output format */ +UNSUPPORTED("18zn34qcs4vsdhhh831gn9vc9"); // fprintf(stderr, +UNSUPPORTED("5rhyltg4walgso272exe4gdqz"); // "Unable to find even the default \"-Tdot\" renderer. Has the config\nfile been generated by running \"dot -c\" with installer's priviledges?\n"); +UNSUPPORTED("3r5dyo5vxrzten0rhlmlmhe8v"); // return(2); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1i3ejmrslphirq6u7onu2i3cr"); // /* set persistent attributes here (if not already set from command line options) */ +UNSUPPORTED("et68lvyh6row6cmvnxmw4nuvj"); // if (!agattr(NULL, AGNODE, "label", 0)) +UNSUPPORTED("74v5uwoisv6m2lnnjv33219om"); // agattr(NULL, AGNODE, "label", "\\N"); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 72no6ayfvjinlnupyn5jlmayg +// static boolean getdoubles2ptf(graph_t * g, char *name, pointf * result) +public static boolean getdoubles2ptf(Agraph_s g, CString name, pointf result) { +ENTERING("72no6ayfvjinlnupyn5jlmayg","getdoubles2ptf"); +try { + CString p; + int i; + double xf, yf; + char c = '\0'; + boolean rv = false; + if ((p = agget(g, name))!=null) { +UNSUPPORTED("21b2kes0vrizyai71yj9e2os3"); // i = sscanf(p, "%lf,%lf%c", &xf, &yf, &c); +UNSUPPORTED("9wua6uiybfvqd70huuo0yatcf"); // if ((i > 1) && (xf > 0) && (yf > 0)) { +UNSUPPORTED("8z2huopqt4m1rvfcd7vqatka4"); // result->x = ((((xf)*72>=0)?(int)((xf)*72 + .5):(int)((xf)*72 - .5))); +UNSUPPORTED("cil4j0n3iq35gr2pfewi2qawz"); // result->y = ((((yf)*72>=0)?(int)((yf)*72 + .5):(int)((yf)*72 - .5))); +UNSUPPORTED("9qnr8qmbz7pf3mmpebux0p08m"); // if (c == '!') +UNSUPPORTED("dqyb6drzg8ig5ecb31fq5c1d4"); // rv = (!(0)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("8wtaqjit9awt7xd08vuifknry"); // c = '\0'; +UNSUPPORTED("705372l4htjtcvnq97l7i54g8"); // i = sscanf(p, "%lf%c", &xf, &c); +UNSUPPORTED("4n9k1twwfmxyet8tokr7xnktj"); // if ((i > 0) && (xf > 0)) { +UNSUPPORTED("8ui53rmpq7ao1p4yin0xqzszj"); // result->y = result->x = ((((xf)*72>=0)?(int)((xf)*72 + .5):(int)((xf)*72 - .5))); +UNSUPPORTED("1rflva1x66uhyqxr5zbpcsgnh"); // if (c == '!') rv = (!(0)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } + return rv; +} finally { +LEAVING("72no6ayfvjinlnupyn5jlmayg","getdoubles2ptf"); +} +} + + + + +//3 1xg46gdvtsko1yrtm6mg4tsxy +// void getdouble(graph_t * g, char *name, double *result) +public static Object getdouble(Object... arg) { +UNSUPPORTED("5gfb0pnjet6us7l51d48x25aq"); // void getdouble(graph_t * g, char *name, double *result) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("jnku6gn089m43hq5hndzrxzn"); // double f; +UNSUPPORTED("bifb8kht3vkytb74qbof9vpob"); // if ((p = agget(g, name))) { +UNSUPPORTED("4r30fz6hpqhfj44lip5cndh1m"); // if (sscanf(p, "%lf", &f) >= 1) +UNSUPPORTED("jepdvpsjq4757gzwaplghh4j"); // *result = f; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7c1tanyo6vwej9cqo0rkiv6sv +// graph_t *gvNextInputGraph(GVC_t *gvc) +public static Object gvNextInputGraph(Object... arg) { +UNSUPPORTED("a6jdteesa5ifdtthxxsohrlh2"); // graph_t *gvNextInputGraph(GVC_t *gvc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ccvkc7reh332l10k91bjvksnm"); // graph_t *g = NULL; +UNSUPPORTED("5dpauyujvamkm0ay3pfh999y3"); // static char *fn; +UNSUPPORTED("46orciiuryyogkvndndbawo06"); // static FILE *fp; +UNSUPPORTED("82yfc13etao3sz5hqypnt56oq"); // static FILE *oldfp; +UNSUPPORTED("1c51f3lle32l3xcfnkzig5ett"); // static int fidx, gidx; +UNSUPPORTED("6i509d0s1nqxjr873r5dz7gv5"); // while (!g) { +UNSUPPORTED("56tws2uz7mqhxwswpbpf94b5c"); // if (!fp) { +UNSUPPORTED("6d4ms2m7wzcyf2eofwsoz7jzu"); // if (!(fn = gvc->input_filenames[0])) { +UNSUPPORTED("eec7y1e55sjjkrx06jmtoyrz1"); // if (fidx++ == 0) +UNSUPPORTED("sln8j5e1981v4p6fvxyy4jjq"); // fp = stdin; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("btttznywgnyh5niqc16ebuucw"); // while ((fn = gvc->input_filenames[fidx++]) && !(fp = fopen(fn, "r"))) { +UNSUPPORTED("4futxtc5kgl4i6bw6j1xhws4s"); // agerr(AGERR, "%s: can't open %s\n", gvc->common.cmdname, fn); +UNSUPPORTED("o7u2b38bnefhf1l58zkel4i3"); // graphviz_errors++; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("74qpksqxqa1hxoxfw5ugamyww"); // if (fp == NULL) +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2euu5u83dzpauthvjfy4vlcxg"); // if (oldfp != fp) { +UNSUPPORTED("cdwz1axrp68a13bwv1la3a736"); // agsetfile(fn ? fn : ""); +UNSUPPORTED("36hhlg0nbd0exjvtbe0fc5gj6"); // oldfp = fp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("b1s6sspge1n2c2b0yukawa8jw"); // g = agread(fp,((Agdisc_t*)0)); +UNSUPPORTED("wx1q1tyb5r9oziojtpc4vd1n"); // if (g) { +UNSUPPORTED("8r806yndx1ticudcknc3r1sp2"); // gvg_init(gvc, g, fn, gidx++); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7oaqgqiffegej6sz73ow4cwtw"); // if (fp != stdin) +UNSUPPORTED("caiflnlhuyqft76qr8gx91bf3"); // fclose (fp); +UNSUPPORTED("7y7knbs9950t3udidyrln8lmp"); // fp = NULL; +UNSUPPORTED("ecnsdkjxzhqh68kkz6fpbez04"); // gidx = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2syri7q5tc0jyvwq8ecyfo3vr"); // return g; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9t08dr2ks9qz1pyfz99awla6x +// static int findCharset (graph_t * g) +public static int findCharset(Agraph_s g) { +ENTERING("9t08dr2ks9qz1pyfz99awla6x","findCharset"); +try { + return 0; +} finally { +LEAVING("9t08dr2ks9qz1pyfz99awla6x","findCharset"); +} +} + + + + +//3 3bnmjpvynh1j9oh2p2vi0vh2m +// static void setRatio(graph_t * g) +public static void setRatio(Agraph_s g) { +ENTERING("3bnmjpvynh1j9oh2p2vi0vh2m","setRatio"); +try { + CString p; + char c; + double ratio; + if ((p = agget(g, new CString("ratio")))!=null && ((c = p.charAt(0))!='\0')) { +UNSUPPORTED("7rk995hpmaqbbasmi40mqg0yw"); // switch (c) { +UNSUPPORTED("2v5u3irq50r1n2ccuna0y09lk"); // case 'a': +UNSUPPORTED("3jv8xrrloj92axkpkgolzwgo6"); // if ((*(p)==*("auto")&&!strcmp(p,"auto"))) +UNSUPPORTED("8bdbsrt9sk4hnj3wm6z100qm"); // (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->drawing)->ratio_kind = R_AUTO; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("f3lyz2cejs6yn5fyckhn7ba1"); // case 'c': +UNSUPPORTED("1v3jyjziibgnha1glbymorwg1"); // if ((*(p)==*("compress")&&!strcmp(p,"compress"))) +UNSUPPORTED("coprfqf41n6byzz3nfneke6a"); // (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->drawing)->ratio_kind = R_COMPRESS; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2fzjr952o6hmcz3ad5arl2n8d"); // case 'e': +UNSUPPORTED("5s06nikh994hgncpwni2p4rwq"); // if ((*(p)==*("expand")&&!strcmp(p,"expand"))) +UNSUPPORTED("eanijnkdjj1f6q7su4gmmijpj"); // (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->drawing)->ratio_kind = R_EXPAND; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("8jntw084f69528np3kisw5ioc"); // case 'f': +UNSUPPORTED("105p0jwfnsptmrweig5mhpkn9"); // if ((*(p)==*("fill")&&!strcmp(p,"fill"))) +UNSUPPORTED("eknfh3axjhorf2rfb914hdgbd"); // (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->drawing)->ratio_kind = R_FILL; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("e4fr8djxwn615yr0rj46vtdbd"); // ratio = atof(p); +UNSUPPORTED("43a0ik2dkpg3y58orisgkn32q"); // if (ratio > 0.0) { +UNSUPPORTED("azv56xi8njootl2n9l5bm1udc"); // (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->drawing)->ratio_kind = R_VALUE; +UNSUPPORTED("ch5o67mezsw0v6iwxylb98myn"); // (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->drawing)->ratio = ratio; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } + } +} finally { +LEAVING("3bnmjpvynh1j9oh2p2vi0vh2m","setRatio"); +} +} + + + + +//3 8gzdr3oil2d0e2o7m84wsszfg +// void graph_init(graph_t * g, boolean use_rankdir) +static CString rankname[] = new CString[] { new CString("local"), new CString("global"), new CString("none"), null }; +static int rankcode[] = { 100, 101, 102, 100 }; +static CString fontnamenames[] = new CString[] {new CString("gd"),new CString("ps"),new CString("svg"), null}; +static int fontnamecodes[] = {enumAsInt(fontname_kind.class, "NATIVEFONTS"),enumAsInt(fontname_kind.class, "PSFONTS"), +enumAsInt(fontname_kind.class, "SVGFONTS"),-1}; +public static void graph_init(Agraph_s g, boolean use_rankdir) { +ENTERING("8gzdr3oil2d0e2o7m84wsszfg","graph_init"); +try { + CString p; + double xf; + int rankdir; + GD_drawing(g, zmalloc(sizeof(layout_t.class))); + /* set this up fairly early in case any string sizes are needed */ + if ((p = agget(g, new CString("fontpath")))!=null || (p = getenv(new CString("DOTFONTPATH")))!=null) { +UNSUPPORTED("81bz3jcukzyotxiqgrlhn9cbq"); // /* overide GDFONTPATH in local environment if dot +UNSUPPORTED("6jgl7atk1m9yeam4auh127azw"); // * wants its own */ +UNSUPPORTED("dyk0vc64gdzy1uwvsc2jqnjdw"); // static char *buf = 0; +UNSUPPORTED("8dywgree8jdjmj2ll2whbekhe"); // buf = grealloc(buf, strlen("GDFONTPATH=") + strlen(p) + 1); +UNSUPPORTED("d9ej6bo2s49vpstu3pql6tkrx"); // strcpy(buf, "GDFONTPATH="); +UNSUPPORTED("1s2jcd2h3eok7j6pclv20gyi2"); // strcat(buf, p); +UNSUPPORTED("abkxekvux4nramryfw2e8vcru"); // putenv(buf); + } + GD_charset(g, findCharset (g)); + /*if (!HTTPServerEnVar) { + Gvimagepath = agget (g, "imagepath"); + if (!Gvimagepath) + Gvimagepath = Gvfilepath; + }*/ + GD_drawing(g).setDouble("quantum", + late_double(g, (agattr(g,AGRAPH,new CString("quantum"),null)), 0.0, 0.0)); + /* setting rankdir=LR is only defined in dot, + * but having it set causes shape code and others to use it. + * The result is confused output, so we turn it off unless requested. + * This effective rankdir is stored in the bottom 2 bits of g->u.rankdir. + * Sometimes, the code really needs the graph's rankdir, e.g., neato -n + * with record shapes, so we store the real rankdir in the next 2 bits. + */ + rankdir = 0; + if ((p = agget(g, new CString("rankdir")))!=null) { +UNSUPPORTED("sp7zcza7w0dn7t66aj8rf4wn"); // if ((*(p)==*("LR")&&!strcmp(p,"LR"))) +UNSUPPORTED("bjd2vk1jssqehllmgnqv601qd"); // rankdir = 1; +UNSUPPORTED("ry8itlrmblmuegdwk1iu1t0x"); // else if ((*(p)==*("BT")&&!strcmp(p,"BT"))) +UNSUPPORTED("5hno0xn18yt443qg815w3c2s2"); // rankdir = 2; +UNSUPPORTED("aal39mi047mhafrsrxoutcffk"); // else if ((*(p)==*("RL")&&!strcmp(p,"RL"))) +UNSUPPORTED("7vlda224wrgcdhr0ts3mndh5q"); // rankdir = 3; + } + if (use_rankdir) + GD_rankdir2(g, (rankdir << 2) | rankdir); + else + GD_rankdir2(g, (rankdir << 2)); + xf = late_double(g, (agattr(g,AGRAPH,new CString("nodesep"),null)), + 0.25, 0.02); + GD_nodesep(g, (ROUND((xf)*72))); + p = late_string(g, (agattr(g,AGRAPH,new CString("ranksep"),null)), null); + if (p!=null) { +UNSUPPORTED("c3p25g4289dxlei062z4eflss"); // if (sscanf(p, "%lf", &xf) == 0) +UNSUPPORTED("570vljex12zx5dkwi7mqa9knw"); // xf = 0.5; +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("p882lodfwy5v48rwbxvg5s9i"); // if (xf < 0.02) +UNSUPPORTED("dhhbmqv6n01j1eeyy7fpus1xw"); // xf = 0.02; + if (strstr(p, new CString("equally"))!=null) + GD_exact_ranksep(g, 1); + } else + xf = 0.5; + GD_ranksep(g, (ROUND((xf)*72))); + GD_showboxes(g, late_int(g, (agattr(g,AGRAPH,new CString("showboxes"),null)), 0, 0)); + p = late_string(g, (agattr(g,AGRAPH,new CString("fontnames"),null)), null); + GD_fontnames(g, maptoken(p, fontnamenames, fontnamecodes)); + setRatio(g); + GD_drawing(g).setBoolean("filled", + getdoubles2ptf(g, new CString("size"), (pointf) GD_drawing(g).getStruct("size").amp())); + getdoubles2ptf(g, new CString("page"), GD_drawing(g).getStruct("page").amp()); + GD_drawing(g).setBoolean("centered", mapbool(agget(g, new CString("center")))); + if ((p = agget(g, new CString("rotate")))!=null) + GD_drawing(g).setBoolean("landscape", (atoi(p) == 90)); + else if ((p = agget(g, new CString("orientation")))!=null) + GD_drawing(g).setBoolean("landscape", ((p.charAt(0) == 'l') || (p.charAt(0) == 'L'))); + else if ((p = agget(g, new CString("landscape")))!=null) + GD_drawing(g).setBoolean("landscape", mapbool(p)); + p = agget(g, new CString("clusterrank")); + Z._().CL_type = maptoken(p, rankname, rankcode); + p = agget(g, new CString("concentrate")); + Z._().Concentrate = mapbool(p); + Z._().State = 0; + Z._().EdgeLabelsDone = 0; + GD_drawing(g).setDouble("dpi", 0.0); + if (((p = agget(g, new CString("dpi")))!=null && p.charAt(0)!='\0') + || ((p = agget(g, new CString("resolution")))!=null && p.charAt(0)!='\0')) + GD_drawing(g).setDouble("dpi", atof(p)); + do_graph_label(g); + Z._().Initial_dist = (1.0e+37); + Z._().G_ordering = (agattr(g,AGRAPH,new CString("ordering"),null)); + Z._().G_gradientangle = (agattr(g,AGRAPH,new CString("gradientangle"),null)); + Z._().G_margin = (agattr(g,AGRAPH,new CString("margin"),null)); + /* initialize nodes */ + Z._().N_height = (agattr(g,AGNODE,new CString("height"),null)); + Z._().N_width = (agattr(g,AGNODE,new CString("width"),null)); + Z._().N_shape = (agattr(g,AGNODE,new CString("shape"),null)); + Z._().N_color = (agattr(g,AGNODE,new CString("color"),null)); + Z._().N_fillcolor = (agattr(g,AGNODE,new CString("fillcolor"),null)); + Z._().N_style = (agattr(g,AGNODE,new CString("style"),null)); + Z._().N_fontsize = (agattr(g,AGNODE,new CString("fontsize"),null)); + Z._().N_fontname = (agattr(g,AGNODE,new CString("fontname"),null)); + Z._().N_fontcolor = (agattr(g,AGNODE,new CString("fontcolor"),null)); + Z._().N_label = (agattr(g,AGNODE,new CString("label"),null)); + if (N(Z._().N_label)) + Z._().N_label = agattr(g, AGNODE, new CString("label"), new CString("\\N")); + Z._().N_xlabel = (agattr(g,AGNODE,new CString("xlabel"),null)); + Z._().N_showboxes = (agattr(g,AGNODE,new CString("showboxes"),null)); + Z._().N_penwidth = (agattr(g,AGNODE,new CString("penwidth"),null)); + Z._().N_ordering = (agattr(g,AGNODE,new CString("ordering"),null)); + Z._().N_margin = (agattr(g,AGNODE,new CString("margin"),null)); + /* attribs for polygon shapes */ + Z._().N_sides = (agattr(g,AGNODE,new CString("sides"),null)); + Z._().N_peripheries = (agattr(g,AGNODE,new CString("peripheries"),null)); + Z._().N_skew = (agattr(g,AGNODE,new CString("skew"),null)); + Z._().N_orientation = (agattr(g,AGNODE,new CString("orientation"),null)); + Z._().N_distortion = (agattr(g,AGNODE,new CString("distortion"),null)); + Z._().N_fixed = (agattr(g,AGNODE,new CString("fixedsize"),null)); + Z._().N_imagescale = (agattr(g,AGNODE,new CString("imagescale"),null)); + Z._().N_nojustify = (agattr(g,AGNODE,new CString("nojustify"),null)); + Z._().N_layer = (agattr(g,AGNODE,new CString("layer"),null)); + Z._().N_group = (agattr(g,AGNODE,new CString("group"),null)); + Z._().N_comment = (agattr(g,AGNODE,new CString("comment"),null)); + Z._().N_vertices = (agattr(g,AGNODE,new CString("vertices"),null)); + Z._().N_z = (agattr(g,AGNODE,new CString("z"),null)); + Z._().N_gradientangle = (agattr(g,AGNODE,new CString("gradientangle"),null)); + /* initialize edges */ + Z._().E_weight = (agattr(g,AGEDGE,new CString("weight"),null)); + Z._().E_color = (agattr(g,AGEDGE,new CString("color"),null)); + Z._().E_fillcolor = (agattr(g,AGEDGE,new CString("fillcolor"),null)); + Z._().E_fontsize = (agattr(g,AGEDGE,new CString("fontsize"),null)); + Z._().E_fontname = (agattr(g,AGEDGE,new CString("fontname"),null)); + Z._().E_fontcolor = (agattr(g,AGEDGE,new CString("fontcolor"),null)); + Z._().E_label = (agattr(g,AGEDGE,new CString("label"),null)); + Z._().E_xlabel = (agattr(g,AGEDGE,new CString("xlabel"),null)); + Z._().E_label_float = (agattr(g,AGEDGE,new CString("labelfloat"),null)); + /* vladimir */ + Z._().E_dir = (agattr(g,AGEDGE,new CString("dir"),null)); + Z._().E_arrowhead = (agattr(g,AGEDGE,new CString("arrowhead"),null)); + Z._().E_arrowtail = (agattr(g,AGEDGE,new CString("arrowtail"),null)); + Z._().E_headlabel = (agattr(g,AGEDGE,new CString("headlabel"),null)); + Z._().E_taillabel = (agattr(g,AGEDGE,new CString("taillabel"),null)); + Z._().E_labelfontsize = (agattr(g,AGEDGE,new CString("labelfontsize"),null)); + Z._().E_labelfontname = (agattr(g,AGEDGE,new CString("labelfontname"),null)); + Z._().E_labelfontcolor = (agattr(g,AGEDGE,new CString("labelfontcolor"),null)); + Z._().E_labeldistance = (agattr(g,AGEDGE,new CString("labeldistance"),null)); + Z._().E_labelangle = (agattr(g,AGEDGE,new CString("labelangle"),null)); + /* end vladimir */ + Z._().E_minlen = (agattr(g,AGEDGE,new CString("minlen"),null)); + Z._().E_showboxes = (agattr(g,AGEDGE,new CString("showboxes"),null)); + Z._().E_style = (agattr(g,AGEDGE,new CString("style"),null)); + Z._().E_decorate = (agattr(g,AGEDGE,new CString("decorate"),null)); + Z._().E_arrowsz = (agattr(g,AGEDGE,new CString("arrowsize"),null)); + Z._().E_constr = (agattr(g,AGEDGE,new CString("constraint"),null)); + Z._().E_layer = (agattr(g,AGEDGE,new CString("layer"),null)); + Z._().E_comment = (agattr(g,AGEDGE,new CString("comment"),null)); + Z._().E_tailclip = (agattr(g,AGEDGE,new CString("tailclip"),null)); + Z._().E_headclip = (agattr(g,AGEDGE,new CString("headclip"),null)); + Z._().E_penwidth = (agattr(g,AGEDGE,new CString("penwidth"),null)); + /* background */ + GD_drawing(g).setPtr("xdots", init_xdot (g)); + /* initialize id, if any */ + if ((p = agget(g, new CString("id")))!=null && p.charAt(0)!='\0') + GD_drawing(g).setPtr("id", strdup_and_subst_obj(p, g)); +} finally { +LEAVING("8gzdr3oil2d0e2o7m84wsszfg","graph_init"); +} +} + + + + +//3 46ypwxxdurpwoq7ee0nagnyuw +// void graph_cleanup(graph_t *g) +public static Object graph_cleanup(Object... arg) { +UNSUPPORTED("30nwbe5cpmxhh80h8xa9akr9z"); // void graph_cleanup(graph_t *g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dnom8brm7mdyz49mlyew1yfx4"); // if (GD_drawing(g) && GD_drawing(g)->xdots) +UNSUPPORTED("cbn0kehrijve4p68esddyi4cm"); // freeXDot ((xdot*)GD_drawing(g)->xdots); +UNSUPPORTED("4wfyhel6dchugc6m03gzcaqqx"); // if (GD_drawing(g) && GD_drawing(g)->id) +UNSUPPORTED("3uhbrv39ml1lee2b5i24tnmp2"); // free (GD_drawing(g)->id); +UNSUPPORTED("vcg73wzydblsuguqzall9cv4"); // free(GD_drawing(g)); +UNSUPPORTED("1ia1a125sivdblphtrgblo6nr"); // GD_drawing(g) = NULL; +UNSUPPORTED("amdwcc4txs1rjdj436t6qt2k4"); // free_label(GD_label(g)); +UNSUPPORTED("8jf0pz51pmyvkml9d1jqhncju"); // //FIX HERE , STILL SHALLOW +UNSUPPORTED("32tijapsyiumwfmjqrf8j6d41"); // //memset(&(g->u), 0, sizeof(Agraphinfo_t)); +UNSUPPORTED("7e4eo7ldxaf48s2v3paft8j2c"); // agclean(g, AGRAPH,"Agraphinfo_t"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7rzv30lub416sffko0du3o6sx +// char* charsetToStr (int c) +public static Object charsetToStr(Object... arg) { +UNSUPPORTED("cqm25rponse4rsi686sbn1lo0"); // char* +UNSUPPORTED("b1ttom615vlztws5drinv8k4i"); // charsetToStr (int c) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cypok90bpbt6z74ak3nu63g1m"); // char* s; +UNSUPPORTED("239qe3atroys6jen2eufic7ex"); // switch (c) { +UNSUPPORTED("1nhgtydm95uz0oftevo3oly8e"); // case 0 : +UNSUPPORTED("2nidjssyf3n7w7cygka1k20t7"); // s = "UTF-8"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6152devym3begeqtwle6okwtn"); // case 1 : +UNSUPPORTED("ct1k13idag6941hvbi9y2bzt3"); // s = "ISO-8859-1"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("brmutjgcyjq57ggmjk11na8lu"); // case 2 : +UNSUPPORTED("5irze7y061rfoysvsbc01net8"); // s = "BIG-5"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("cjimoqzt0qz3wos8m9h7g3hmh"); // default : +UNSUPPORTED("816pcwbgdg9rau7jfcj6xpoel"); // agerr(AGERR, "Unsupported charset value %d\n", c); +UNSUPPORTED("2nidjssyf3n7w7cygka1k20t7"); // s = "UTF-8"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("67k63k77j3kjabivb0i8hxrwd"); // } +UNSUPPORTED("dyq366cow9q7c8bh5jns3dlqo"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5vks1zdadu5vjinaivs0j2bkb +// void do_graph_label(graph_t * sg) +public static void do_graph_label(Agraph_s sg) { +ENTERING("5vks1zdadu5vjinaivs0j2bkb","do_graph_label"); +try { + CString str, pos, just; + int pos_ix; + /* it would be nice to allow multiple graph labels in the future */ + if ((str = agget(sg, new CString("label")))!=null && (str.charAt(0) != '\0')) { + char pos_flag=0; + final __struct__ dimen = __struct__.from(pointf.class); + GD_has_labels(sg.getPtr("root"), GD_has_labels(sg.getPtr("root")) | (1 << 3)); + GD_label(sg, make_label(sg, str, (aghtmlstr(str)!=0 ? (1 << 1) : (0 << 1)), + late_double(sg, (agattr(sg,AGRAPH,new CString("fontsize"),null)), + 14.0, 1.0), + late_nnstring(sg, (agattr(sg,AGRAPH,new CString("fontname"),null)), + new CString("Times-Roman")), + late_nnstring(sg, (agattr(sg,AGRAPH,new CString("fontcolor"),null)), + new CString("black")))); + /* set label position */ + pos = agget(sg, new CString("labelloc")); + if (NEQ(sg, agroot(sg))) { + if (pos!=null && (pos.charAt(0) == 'b')) + pos_flag = 0; + else + pos_flag = 1; + } else { +UNSUPPORTED("601b6yrqr391vnfpa74d7fec7"); // if (pos && (pos[0] == 't')) +UNSUPPORTED("bxai2kktsidvda3696ctyk63c"); // pos_flag = 1; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("6m5sy5ew8izdy8i10zb5o2dvu"); // pos_flag = 0; + } + just = agget(sg, new CString("labeljust")); + if (just!=null) { +UNSUPPORTED("3gxohpfqzahytaf7f9apn58az"); // if (just[0] == 'l') +UNSUPPORTED("ch7sydr4cg29o8ky9fbk5vnlg"); // pos_flag |= 2; +UNSUPPORTED("336to8kpmovx00pexhhenz74b"); // else if (just[0] == 'r') +UNSUPPORTED("evu9w6pw3kkh7z8w7t4rx4qxc"); // pos_flag |= 4; + } + GD_label_pos(sg, pos_flag); + if (EQ(sg, agroot(sg))) + return; + /* Set border information for cluster labels to allow space + */ + dimen.____(GD_label(sg).getStruct("dimen")); + dimen.setDouble("x", dimen.getDouble("x") + 4*4); + dimen.setDouble("y", dimen.getDouble("y") + 2*4); + if (N(GD_flip(agroot(sg)))) { + if ((GD_label_pos(sg) & 1)!=0) + pos_ix = 2; + else + pos_ix = 0; + GD_border(sg).plus(pos_ix).setStruct(dimen); + } else { + /* when rotated, the labels will be restored to TOP or BOTTOM */ +UNSUPPORTED("cabz6xbjdvz5vmjulzrhlxh48"); // if ((((Agraphinfo_t*)(((Agobj_t*)(sg))->data))->label_pos) & 1) +UNSUPPORTED("dx7v6663o9o0x1j5r8z4wumxb"); // pos_ix = 1; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("97dtv6k7yw1qvfzgs65cj2v0l"); // pos_ix = 3; +UNSUPPORTED("21iuie8b11x65je8vampstgt6"); // (((Agraphinfo_t*)(((Agobj_t*)(sg))->data))->border)[pos_ix].x = dimen.y; +UNSUPPORTED("8cawl3kik853hkvgm39y34urs"); // (((Agraphinfo_t*)(((Agobj_t*)(sg))->data))->border)[pos_ix].y = dimen.x; + } + } +} finally { +LEAVING("5vks1zdadu5vjinaivs0j2bkb","do_graph_label"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/intset__c.java plantuml-8039/src/gen/lib/common/intset__c.java --- plantuml-8024/src/gen/lib/common/intset__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/intset__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,209 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.Macro.UNSUPPORTED; + +public class intset__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + + + +//3 8qgr88nich230f7xchwdzz29a +// static void* mkIntItem(Dt_t* d,intitem* obj,Dtdisc_t* disc) +public static Object mkIntItem(Object... arg) { +UNSUPPORTED("8fbx43f8g4rod2yqfdymsxdnx"); // static void* +UNSUPPORTED("a10lzkc4r102m2qlk5imsvovv"); // mkIntItem(Dt_t* d,intitem* obj,Dtdisc_t* disc) +UNSUPPORTED("yo7buicdiu29rv5vxhas0v3s"); // { +UNSUPPORTED("ekjuvztgs19rbqj0v3lmfo01q"); // intitem* np = (intitem*)zmalloc(sizeof(intitem)); +UNSUPPORTED("506xq20ierdh2vdh0oxwa7m8v"); // np->id = obj->id; +UNSUPPORTED("184diuw6jvuoeak7fkbqm6fr6"); // return (void*)np; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bh6e5ln10dj2wbs1o7bpt00i8 +// static void freeIntItem(Dt_t* d,intitem* obj,Dtdisc_t* disc) +public static Object freeIntItem(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("criv4pqv4650sbunujgt3rbya"); // freeIntItem(Dt_t* d,intitem* obj,Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4neq75mnpa0cym29pxiizrkz3"); // free (obj); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 47m5dtm8t3vpv956ejy5w6th9 +// static int cmpid(Dt_t* d, int* key1, int* key2, Dtdisc_t* disc) +public static Object cmpid(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("1si01iycmvt6w5p4npvowvekx"); // cmpid(Dt_t* d, int* key1, int* key2, Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1cu94gjng90rrt7xtp42ifr1"); // if (*key1 > *key2) return 1; +UNSUPPORTED("3h1tdtwyfqaqhne2o7pz8yq9h"); // else if (*key1 < *key2) return -1; +UNSUPPORTED("7lrkjjj5lce2uf86c1y9o9yoa"); // else return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 8lrju563ta1xqsy4xixotjo3l +// static Dtdisc_t intSetDisc = + + + + +//3 2xsz5eza9h7l039872rv37hsv +// Dt_t* openIntSet (void) +public static Object openIntSet(Object... arg) { +UNSUPPORTED("96gezykql110n8xkno0gtdrmq"); // Dt_t* +UNSUPPORTED("68yvszwdppo58pmasvi3gqm0a"); // openIntSet (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bjd7jaxyhis3c4zl58948rs5w"); // return dtopen(&intSetDisc,Dtoset); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 djjwoeky7tlyxdg2zx3x4pdib +// void addIntSet (Dt_t* is, int v) +public static Object addIntSet(Object... arg) { +UNSUPPORTED("347dderd02mvlozoheqo4ejwo"); // void +UNSUPPORTED("uq3ewaypmpqc0nyc6mp0osz6"); // addIntSet (Dt_t* is, int v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2rjvy9cij6zo2nowb4w37hnjt"); // intitem obj; +UNSUPPORTED("5ne3fj3dr6iouu1y3bnx3lcd7"); // obj.id = v; +UNSUPPORTED("2ugf3ujkfn9ofv5ykvcsvr6m5"); // (*(((Dt_t*)(is))->searchf))((is),(void*)(&obj),0000001); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7w5km9pct0qd0skzhgxezhr2x +// int inIntSet (Dt_t* is, int v) +public static Object inIntSet(Object... arg) { +UNSUPPORTED("7zkpme13g8rxxwloxvpvvnbcw"); // int +UNSUPPORTED("cg6pm0yggmopx83usksgtt395"); // inIntSet (Dt_t* is, int v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eckrym421t3ug9lj77hzalv1a"); // return ((*(((Dt_t*)(is))->searchf))((is),(void*)(&v),0001000) != 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/labels__c.java plantuml-8039/src/gen/lib/common/labels__c.java --- plantuml-8024/src/gen/lib/common/labels__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/labels__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1412 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.graph__c.agisdirected; +import static gen.lib.cgraph.id__c.agnameof; +import static gen.lib.cgraph.obj__c.agobjkind; +import static gen.lib.cgraph.obj__c.agraphof; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.common.htmltable__c.make_html_label; +import static gen.lib.common.memory__c.gmalloc; +import static gen.lib.common.utils__c.htmlEntityUTF8; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.strlen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGEDGE; +import static smetana.core.Macro.AGNODE; +import static smetana.core.Macro.AGRAPH; +import static smetana.core.Macro.ED_head_port; +import static smetana.core.Macro.ED_label; +import static smetana.core.Macro.ED_tail_port; +import static smetana.core.Macro.GD_label; +import static smetana.core.Macro.MAX; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import static smetana.core.Macro.ZALLOC; +import static smetana.core.Macro.agtail; +import static smetana.core.Macro.hackInitDimensionFromLabel; +import h.Agedge_s; +import h.Agnode_s; +import h.Agnodeinfo_t; +import h.Agobj_s; +import h.Agraph_s; +import h.Agraphinfo_t; +import h.GVC_s; +import h.boxf; +import h.pointf; +import h.port; +import h.textlabel_t; +import h.textspan_t; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class labels__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wkeqik2dt7ecr64ej6ltbnvb +// static void storeline(GVC_t *gvc, textlabel_t *lp, char *line, char terminator) +//private static __struct__ tf = __struct__.from(textfont_t.class); +public static void storeline(GVC_s gvc, textlabel_t lp, CString line, char terminator) { +ENTERING("4wkeqik2dt7ecr64ej6ltbnvb","storeline"); +try { + final __struct__ size = __struct__.from(pointf.class); + __ptr__ span = null; + int oldsz = lp.getInt("u.txt.nspans") + 1; + lp.setPtr("u.txt.span", ZALLOC(oldsz + 1, lp.getPtr("u.txt.span"), textspan_t.class, oldsz)); + span = lp.getPtr("u.txt.span").plus(lp.getInt("u.txt.nspans")); + span.setPtr("str", line); + span.setInt("just", terminator); + if (line!=null && line.charAt(0)!='\0') { + Z._().tf.setPtr("name", lp.getPtr("fontname")); + Z._().tf.setDouble("size", lp.getDouble("fontsize")); + // WE CHEAT + size.setDouble("x", 0.0); + size.setDouble("y", (int)(lp.getDouble("fontsize") * 1.20)); + hackInitDimensionFromLabel(size, line.getContent()); + span.getStruct("size").setDouble("y", (int)size.getDouble("y")); + } + else { + System.err.println("YOU SHOULD NOT SEE THAT"); + size.setDouble("x", 0.0); + size.setDouble("y", (int)(lp.getDouble("fontsize") * 1.20)); + span.getStruct("size").setDouble("y", (int)(lp.getDouble("fontsize") * 1.20)); + } + lp.setInt("u.txt.nspans", lp.getInt("u.txt.nspans") + 1); + /* width = max line width */ + lp.getStruct("dimen").setDouble("x", MAX(lp.getStruct("dimen").getDouble("x"), size.getDouble("x"))); + /* accumulate height */ + lp.getStruct("dimen").setDouble("y", lp.getStruct("dimen").getDouble("y") + size.getDouble("y")); +} finally { +LEAVING("4wkeqik2dt7ecr64ej6ltbnvb","storeline"); +} +} + + + + +//3 22ar72ye93a8ntj8pagnt5b5k +// void make_simple_label(GVC_t * gvc, textlabel_t * lp) +public static void make_simple_label(GVC_s gvc, textlabel_t lp) { +ENTERING("22ar72ye93a8ntj8pagnt5b5k","make_simple_label"); +try { + char c; + CString p, line, lineptr, str = lp.getCString("text"); + char bytee = 0x00; + lp.getStruct("dimen").setDouble("x", 0.0); + lp.getStruct("dimen").setDouble("y", 0.0); + if (str.charAt(0) == '\0') + return; + line = lineptr = null; + p = str; + line = lineptr = gmalloc((strlen(p) + 1)); + line.setCharAt(0, '\0'); + while ((c = p.charAt(0))!='\0') { + p = p.plus(1); + bytee = c; + /* wingraphviz allows a combination of ascii and big-5. The latter + * is a two-byte encoding, with the first byte in 0xA1-0xFE, and + * the second in 0x40-0x7e or 0xa1-0xfe. We assume that the input + * is well-formed, but check that we don't go past the ending '\0'. + */ + if ((lp.getInt("charset") == 2) && 0xA1 <= bytee && bytee <= 0xFE) { +UNSUPPORTED("6la63t1mnqv30shyyp3yfroxb"); // *lineptr++ = c; +UNSUPPORTED("ebmmarxykvf76hmfmjuk0ssjz"); // c = *p++; +UNSUPPORTED("6la63t1mnqv30shyyp3yfroxb"); // *lineptr++ = c; +UNSUPPORTED("1kri3b36twfj4t7bvjbrt6dhs"); // if (!c) /* NB. Protect against unexpected string end here */ +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; + } else { + if (c == '\\') { + switch (p.charAt(0)) { + case 'n': + case 'l': + case 'r': + lineptr.setCharAt(0, '\0'); + lineptr = lineptr.plus(1); + storeline(gvc, lp, line, p.charAt(0)); + line = lineptr; + break; + default: + lineptr.setCharAt(0, p.charAt(0)); + lineptr = lineptr.plus(1); + } + if (p.charAt(0)!='\0') + p = p.plus(1); + /* tcldot can enter real linend characters */ + } else if (c == '\n') { + lineptr.setCharAt(0, '\0'); + lineptr = lineptr.plus(1); + storeline(gvc, lp, line, 'n'); + line = lineptr; + } else { + lineptr.setCharAt(0, c); + lineptr = lineptr.plus(1); + } + } + } + if (NEQ(line, lineptr)) { + lineptr.setCharAt(0, '\0'); + lineptr = lineptr.plus(1); + storeline(gvc, lp, line, 'n'); + } + lp.setStruct("space", lp.getStruct("dimen")); +} finally { +LEAVING("22ar72ye93a8ntj8pagnt5b5k","make_simple_label"); +} +} + + + + +//3 ecq5lydlrjrlaz8o6vm6svc8i +// textlabel_t *make_label(void *obj, char *str, int kind, double fontsize, char *fontname, char *fontcolor) +public static textlabel_t make_label(__ptr__ obj, CString str, int kind, double fontsize, CString fontname, CString fontcolor) { +ENTERING("ecq5lydlrjrlaz8o6vm6svc8i","make_label"); +try { + textlabel_t rv = (textlabel_t) Memory.malloc(textlabel_t.class); + Agraph_s g = null, sg = null; + Agnode_s n = null; + Agedge_s e = null; + CString s = null; + switch (agobjkind(obj)) { + case AGRAPH: + sg = (Agraph_s)obj; + g = (Agraph_s) sg.getPtr("root"); + break; + case AGNODE: + n = (Agnode_s)obj.castTo(Agnode_s.class); + g = agroot(agraphof(n)); + break; + case AGEDGE: + e = (Agedge_s)obj.castTo(Agedge_s.class); + g = agroot(agraphof(aghead(e))); + break; + } + rv.setPtr("fontname", fontname); + rv.setPtr("fontcolor", fontcolor); + rv.setDouble("fontsize", fontsize); + rv.setInt("charset", g.castTo(Agobj_s.class).getPtr("data").castTo(Agraphinfo_t.class).getInt("charset")); + if ((kind & (2 << 1))!=0) { + rv.setPtr("text", str.strdup()); + if ((kind & (1 << 1))!=0) { + rv.setBoolean("html", (N(0))); + } + } + else if (kind == (1 << 1)) { + rv.setPtr("text", str.strdup()); + rv.setBoolean("html", N(0)); + if (make_html_label(obj, rv)!=0) { + switch (agobjkind(obj)) { + case AGRAPH: + UNSUPPORTED("agerr(AGPREV, in label of graph %s\n,agnameof(sg));"); + break; + case AGNODE: + UNSUPPORTED("agerr(AGPREV, in label of node %s\n, agnameof(n));"); + break; + case AGEDGE: + UNSUPPORTED("agerr(AGPREV, in label of edge %s %s %s\n,"); +// agnameof(((((((Agobj_t*)(e))->tag).objtype) == 3? (e): ((e)+1))->node)), agisdirected(g)?"->":"--", agnameof(((((((Agobj_t*)(e))->tag).objtype) == 2? (e): ((e)-1))->node))); + break; + } + } + } + else { + //assert(kind == (0 << 1)); + /* This call just processes the graph object based escape sequences. The formatting escape + * sequences (\n, \l, \r) are processed in make_simple_label. That call also replaces \\ with \. + */ + rv.setPtr("text", strdup_and_subst_obj0(str, obj, 0)); + switch (rv.getInt("charset")) { + case 1: + UNSUPPORTED("s = latin1ToUTF8(rv->text);"); + break; + default: /* UTF8 */ + s = htmlEntityUTF8(rv.getCString("text"), g); + break; + } + Memory.free(rv.getPtr("text")); + rv.setPtr("text", s); + make_simple_label((GVC_s) g.castTo(Agobj_s.class).getPtr("data").castTo(Agraphinfo_t.class).getPtr("gvc"), rv); + } + return rv; +} finally { +LEAVING("ecq5lydlrjrlaz8o6vm6svc8i","make_label"); +} +} + + + + +//3 1qv9kl0wi0snf1xtrb6vo2yiu +// void free_textspan(textspan_t * tl, int cnt) +public static Object free_textspan(Object... arg) { +UNSUPPORTED("eh9j8hhtolluyaegv937nnpys"); // void free_textspan(textspan_t * tl, int cnt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("4iuvdwfqjfqyk7dpy1s8mgw2o"); // textspan_t* tlp = tl; +UNSUPPORTED("1f70128zxfm2jtz3ebwavc3nc"); // if (!tl) return; +UNSUPPORTED("3r70mdmcurt4csiwolv9n6mmh"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("anxpl4mk65alvdjja9pn97kro"); // if ((i == 0) && tlp->str) +UNSUPPORTED("1fhpzk3z0aliuuzuovdmsmp7d"); // free(tlp->str); +UNSUPPORTED("b0d4wly929yfs331ilovdcqjo"); // if (tlp->layout && tlp->free_layout) +UNSUPPORTED("40xyvfopujwdcztwx5vs27p5d"); // tlp->free_layout (tlp->layout); +UNSUPPORTED("72ldhje939sa8dg5ttywkmwa6"); // tlp++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4pi9nz7hlvy0eo98r6tzd0oy"); // free(tl); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2palqnlr5u0ssnag1bp5tq510 +// void free_label(textlabel_t * p) +public static Object free_label(Object... arg) { +UNSUPPORTED("7fgqv20ow9mktpealn2ueqf9i"); // void free_label(textlabel_t * p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3cvmixd2u1g2d9l03kuxyyxxw"); // if (p) { +UNSUPPORTED("26ktwrszmdk4inac0pxe7mudg"); // free(p->text); +UNSUPPORTED("6sxnt2ovvq1ihlz4odqepnnln"); // if (p->html) { +UNSUPPORTED("8p452npbufapts0rm8ff82xfu"); // if (p->u.html) free_html_label(p->u.html, 1); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("ghxtimeg851hu16krg2dnb14"); // free_textspan(p->u.txt.span, p->u.txt.nspans); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cy5x5dma0v4hiepir7lrfuo17"); // free(p); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a0gse5mgpw0xhsmu4lwellfdq +// void emit_label(GVJ_t * job, emit_state_t emit_state, textlabel_t * lp) +public static Object emit_label(Object... arg) { +UNSUPPORTED("2bspalmq4q86q66b0sehcnui"); // void emit_label(GVJ_t * job, emit_state_t emit_state, textlabel_t * lp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("ecr1y7qy0ikxkidkdfvwv88ir"); // emit_state_t old_emit_state; +UNSUPPORTED("c3lqudp40feg72zp97ngqkww9"); // old_emit_state = obj->emit_state; +UNSUPPORTED("3ook7gsw0rr7b6uwm9f5a5dtx"); // obj->emit_state = emit_state; +UNSUPPORTED("17ejiipjo2ljqtqe4rkpx6b15"); // if (lp->html) { +UNSUPPORTED("8jyhluz8a51w5y5qalhlrpgnp"); // emit_html_label(job, lp->u.html, lp); +UNSUPPORTED("2rghcn1n5g9f29wxd8nqhub0p"); // obj->emit_state = old_emit_state; +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("71u0rnrd0pn6urf5ttv39ec5d"); // /* make sure that there is something to do */ +UNSUPPORTED("c4lzcn6qndbrx4u9kybwfk11l"); // if (lp->u.txt.nspans < 1) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("2qj4sjf5amdyhvqsi47mei07v"); // gvrender_begin_label(job, LABEL_PLAIN); +UNSUPPORTED("bl5mm7hn2il0n2e623rbq8q5w"); // gvrender_set_pencolor(job, lp->fontcolor); +UNSUPPORTED("8a1fbspdbpecd6k8uj7bse1cx"); // /* position for first span */ +UNSUPPORTED("f433l06cgmbaiibsv9a9tjun8"); // switch (lp->valign) { +UNSUPPORTED("c66d69vmpko3goomc3npvjhy3"); // case 't': +UNSUPPORTED("63ukdafw48pf9seqbe8vedft9"); // p.y = lp->pos.y + lp->space.y / 2.0 - lp->fontsize; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5coaag9ev3fzc0jtpkjkfvhd2"); // case 'b': +UNSUPPORTED("eodoiejpigubj8in93lnnc05d"); // p.y = lp->pos.y - lp->space.y / 2.0 + lp->dimen.y - lp->fontsize; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("f3lyz2cejs6yn5fyckhn7ba1"); // case 'c': +UNSUPPORTED("8jmef3sfg06sme4q6t23ms8i7"); // default: +UNSUPPORTED("bicy4u16zheftiukscavoqq3c"); // p.y = lp->pos.y + lp->dimen.y / 2.0 - lp->fontsize; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8mg9hiit60q1ve98yormydem5"); // for (i = 0; i < lp->u.txt.nspans; i++) { +UNSUPPORTED("aq0sxux77sg7whxt7hslkske3"); // switch (lp->u.txt.span[i].just) { +UNSUPPORTED("bwy7mh2nb7lz950r20rfilwa4"); // case 'l': +UNSUPPORTED("ds60aoxxlta1y3r5wuo09mzzp"); // p.x = lp->pos.x - lp->space.x / 2.0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("43ds1cyu29ex66kcjszrcu3mp"); // case 'r': +UNSUPPORTED("1103h1zfvqia1xelrw919hw2p"); // p.x = lp->pos.x + lp->space.x / 2.0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("f187wptsr73liavtlyoyfovp3"); // case 'n': +UNSUPPORTED("7tkhws043t1k3ra1n1191ld2m"); // p.x = lp->pos.x; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("a00q6gh3dlg3gdt95e6rt129n"); // gvrender_textspan(job, p, &(lp->u.txt.span[i])); +UNSUPPORTED("dczp8jeltzgwb21pyxgxyrasy"); // /* UL position for next span */ +UNSUPPORTED("33byiwlc3a1j2oeyyqf04jpoo"); // p.y -= lp->u.txt.span[i].size.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8bm7lzosnhuf0od7i4hkgzovo"); // gvrender_end_label(job); +UNSUPPORTED("b1bkq4eyrmepbxyb3qiuhi8b8"); // obj->emit_state = old_emit_state; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ajohywvjbrvkc7zca2uew6ghm +// static char *strdup_and_subst_obj0 (char *str, void *obj, int escBackslash) +public static CString strdup_and_subst_obj0(CString str, __ptr__ obj, int escBackslash) { +ENTERING("ajohywvjbrvkc7zca2uew6ghm","strdup_and_subst_obj0"); +try { + char c; CString s, p, t, newstr; + CString tp_str = new CString(""), hp_str = new CString(""); + CString g_str = new CString("\\G"), n_str = new CString("\\N"), e_str = new CString("\\E"), + h_str = new CString("\\H"), t_str = new CString("\\T"), l_str = new CString("\\L"); + int g_len = 2, n_len = 2, e_len = 2, + h_len = 2, t_len = 2, l_len = 2, + tp_len = 0, hp_len = 0; + int newlen = 0; + int isEdge = 0; + textlabel_t tl; + final __struct__ pt = __struct__.from(port.class); + /* prepare substitution strings */ + switch (agobjkind(obj)) { + case AGRAPH: + g_str = agnameof((Agraph_s)obj); + g_len = strlen(g_str); + tl = GD_label((Agraph_s)obj); + if (tl!=null) { + l_str = tl.getCString("text"); + if (str!=null) l_len = strlen(l_str); + } + break; + case AGNODE: + g_str = agnameof(agraphof(obj.castTo(Agnode_s.class))); + g_len = strlen(g_str); + n_str = agnameof(obj.castTo(Agnode_s.class)); + n_len = strlen(n_str); + tl = (textlabel_t) obj.castTo(Agnode_s.class).castTo(Agobj_s.class).getPtr("data").castTo(Agnodeinfo_t.class).getPtr("label"); + if (tl!=null) { + l_str = tl.getCString("text"); + if (str!=null) l_len = strlen(l_str); + } + break; + case AGEDGE: + isEdge = 1; + g_str = agnameof(agroot(agraphof(agtail((obj.castTo(Agedge_s.class)))))); + g_len = strlen(g_str); + t_str = agnameof(agtail((obj.castTo(Agedge_s.class)))); + t_len = strlen(t_str); + pt.____(ED_tail_port(obj.castTo(Agedge_s.class))); + if ((tp_str = pt.getCString("name"))!=null) + tp_len = strlen(tp_str); + h_str = agnameof(aghead((obj.castTo(Agedge_s.class)))); + h_len = strlen(h_str); + pt.____(ED_head_port(obj.castTo(Agedge_s.class))); + if ((hp_str = pt.getCString("name"))!=null) + hp_len = strlen(hp_str); + h_len = strlen(h_str); + tl = ED_label(obj.castTo(Agedge_s.class)); + if (tl!=null) { +UNSUPPORTED("88b430s6vk0irhr2k7x9crz9l"); // l_str = tl->text; +UNSUPPORTED("5hjl5oveu3muui5b0fffh0dz2"); // if (str) l_len = strlen(l_str); + } + if (agisdirected(agroot(agraphof(agtail((obj.castTo(Agedge_s.class))))))) + e_str = new CString("->"); + else + e_str = new CString("--"); + e_len = t_len + (tp_len!=0?tp_len+1:0) + 2 + h_len + (hp_len!=0?hp_len+1:0); + break; + } + /* two passes over str. + * + * first pass prepares substitution strings and computes + * total length for newstring required from malloc. + */ + for (s = str; ;) { + c = s.charAt(0); + s = s.plus(1); + if (c=='\0') break; + if (c == '\\') { + c = s.charAt(0); + s = s.plus(1); + switch (c) { + case 'G': + newlen += g_len; + break; + case 'N': + newlen += n_len; + break; + case 'E': + newlen += e_len; + break; + case 'H': + newlen += h_len; + break; + case 'T': + newlen += t_len; + break; + case 'L': + newlen += l_len; + break; + case '\\': + if (escBackslash!=0) { + newlen += 1; + break; + } + /* Fall through */ + default: /* leave other escape sequences unmodified, e.g. \n \l \r */ + newlen += 2; + } + } else { + newlen++; + } + } + /* allocate new string */ + newstr = gmalloc(newlen + 1); + /* second pass over str assembles new string */ + p = newstr; + for (s = str; ;) { + c = s.charAt(0); + s = s.plus(1); + if (c=='\0') break; + if (c == '\\') { + c = s.charAt(0); + s = s.plus(1); + switch (c) { + case 'G': + UNSUPPORTED("for (t = g_str; (*p = *t++); p++);"); + break; + case 'N': + for (t = n_str; ; ) { + p.setCharAt(0, t.charAt(0)); + t = t.plus(1); + if (p.charAt(0)=='\0') break; + p = p.plus(1); + } + break; + case 'E': + UNSUPPORTED("if (isEdge) {"); +/* for (t = t_str; (*p = *t++); p++); + if (tp_len) { + *p++ = ':'; + for (t = tp_str; (*p = *t++); p++); + } + for (t = e_str; (*p = *t++); p++); + for (t = h_str; (*p = *t++); p++); + if (hp_len) { + *p++ = ':'; + for (t = hp_str; (*p = *t++); p++); + } + }*/ + break; + case 'T': + UNSUPPORTED("for (t = t_str; (*p = *t++); p++);"); + break; + case 'H': + UNSUPPORTED("for (t = h_str; (*p = *t++); p++);"); + break; + case 'L': + UNSUPPORTED("for (t = l_str; (*p = *t++); p++);"); + break; + case '\\': + UNSUPPORTED("if (escBackslash) {"); +/* *p++ = '\\'; + break; + }*/ + /* Fall through */ + default: /* leave other escape sequences unmodified, e.g. \n \l \r */ + p.setCharAt(0, '\\'); + p = p.plus(1); + p.setCharAt(0, c); + p = p.plus(1); + break; + } + } else { + p.setCharAt(0, c); + p = p.plus(1); + } + } + p.setCharAt(0, '\0'); + p = p.plus(1); + return newstr; +} finally { +LEAVING("ajohywvjbrvkc7zca2uew6ghm","strdup_and_subst_obj0"); +} +} + + + + +//3 af2a0cdl8ld7bbq0qu0rt1d8z +// char *strdup_and_subst_obj(char *str, void *obj) +public static CString strdup_and_subst_obj(CString str, __ptr__ obj) { +ENTERING("af2a0cdl8ld7bbq0qu0rt1d8z","strdup_and_subst_obj"); +try { + UNSUPPORTED("7eeocxzl6qhtvcv7gnh73o7d1"); // char *strdup_and_subst_obj(char *str, void *obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("67419rdrhawe7vudn882sohkd"); // return strdup_and_subst_obj0 (str, obj, 1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("af2a0cdl8ld7bbq0qu0rt1d8z","strdup_and_subst_obj"); +} +} + + + + +//3 bevzgi4opmmgxwksl1lssepxc +// static int xml_isentity(char *s) +public static Object xml_isentity(Object... arg) { +UNSUPPORTED("ddxpdim5n11qvep9b61kpijae"); // static int xml_isentity(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7309b02hjekdyss2l1jlfa3o5"); // s++; /* already known to be '&' */ +UNSUPPORTED("ee1xg58k0yj6mgak36f7bqx4z"); // if (*s == '#') { +UNSUPPORTED("1fe0kohehgdxhenrepo7ymdcw"); // s++; +UNSUPPORTED("autyof60ysqv0zxvcovs8ol1o"); // if (*s == 'x' || *s == 'X') { +UNSUPPORTED("8dqpp2f04tbhgnmk4gjjb8dga"); // s++; +UNSUPPORTED("7z8kjrmcms9gfhq10a65dbjog"); // while ((*s >= '0' && *s <= '9') +UNSUPPORTED("cvyao8709l4lhttkvu9hcnvne"); // || (*s >= 'a' && *s <= 'f') +UNSUPPORTED("5q6n6p2xf3gohuffw81ur8vhb"); // || (*s >= 'A' && *s <= 'F')) +UNSUPPORTED("zybbca41b450wccgr0kkur00"); // s++; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("1hg41j8n8b0uz0lmqlqcy30so"); // while (*s >= '0' && *s <= '9') +UNSUPPORTED("zybbca41b450wccgr0kkur00"); // s++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("8h0cru3h3jveaqc5sgyq4rk71"); // while ((*s >= 'a' && *s <= 'z') +UNSUPPORTED("31bir978ftxj7zjleb3mr1bei"); // || (*s >= 'A' && *s <= 'Z')) +UNSUPPORTED("8dqpp2f04tbhgnmk4gjjb8dga"); // s++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9hcbv4ydnt8trlfaz870sjsyh"); // if (*s == ';') +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 57faqt3qjliznr0tkqn1ebjgk +// char *xml_string(char *s) +public static Object xml_string(Object... arg) { +UNSUPPORTED("bnxc0qd7mqxuf0ayp7tmgh9i0"); // char *xml_string(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1ufug0n20nuue5zidl5g8283p"); // return xml_string0 (s, 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2ukbjx5sti6tulvxdrftanx4p +// char *xml_string0(char *s, boolean raw) +public static Object xml_string0(Object... arg) { +UNSUPPORTED("c15krv3c4yexqimy1thaiy4zm"); // char *xml_string0(char *s, boolean raw) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("210phh7av8ei8ajjmpptx96m6"); // static char *buf = NULL; +UNSUPPORTED("6fpm1wk8mz0hofn15361g6nzn"); // static int bufsize = 0; +UNSUPPORTED("1q9p9mppsiolvz4xyp1xfe8s2"); // char *p, *sub, *prev = NULL; +UNSUPPORTED("9ee5mdh9hsw491mz8n88ey33d"); // int len, pos = 0; +UNSUPPORTED("cjyiejw67ffjjsk60tgeebvif"); // if (!buf) { +UNSUPPORTED("4xkxdnucjd4ldoikgelnsa7c9"); // bufsize = 64; +UNSUPPORTED("9pvgystp8nwvblycum3rps3tz"); // buf = gmalloc(bufsize); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dpfzdhkfq6u86uv5f9lnqfbpq"); // p = buf; +UNSUPPORTED("e8ng575h9ts71v7d04mtpxyr5"); // while (s && *s) { +UNSUPPORTED("85svsyrkaau2681m7ya7tygx6"); // if (pos > (bufsize - 8)) { +UNSUPPORTED("aa09fjtytqkag416h6457rmkr"); // bufsize *= 2; +UNSUPPORTED("3vu2n3g10rrkdmia0oyndfj4s"); // buf = grealloc(buf, bufsize); +UNSUPPORTED("cz6j3s7zlvrbs83g3e42o83z7"); // p = buf + pos; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("97iud4axotxlk7ywlijb75m3d"); // /* escape '&' only if not part of a legal entity sequence */ +UNSUPPORTED("4x9tn37kkejgziq8i1mkuzm2l"); // if (*s == '&' && (raw || !(xml_isentity(s)))) { +UNSUPPORTED("cac1jzftgtiz1fvztpxrb5pzr"); // sub = "&"; +UNSUPPORTED("17g0bn2jwfuvdxn93z9lsronr"); // len = 5; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7e1vaedh6l0yfegrgw9donb9e"); // /* '<' '>' are safe to substitute even if string is already UTF-8 coded +UNSUPPORTED("2hspzajrej6p5fmxtp3xo33mw"); // * since UTF-8 strings won't contain '<' or '>' */ +UNSUPPORTED("3xg4wo6utmvnlgyvg8ciz4tey"); // else if (*s == '<') { +UNSUPPORTED("13qv1mf2mabbasi5mgrjsqs3n"); // sub = "<"; +UNSUPPORTED("cn6mu8yh8covbdy1zkhq7256"); // len = 4; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("art2agkl4px2ncm5gmygaoi4v"); // else if (*s == '>') { +UNSUPPORTED("dbkjqbduusn4tza1p3ng8iuyi"); // sub = ">"; +UNSUPPORTED("cn6mu8yh8covbdy1zkhq7256"); // len = 4; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("aundz2f5ze9pcxo1dksgg0zxi"); // else if (*s == '-') { /* can't be used in xml comment strings */ +UNSUPPORTED("37g3n162xpdox7os6l6tphpwc"); // sub = "-"; +UNSUPPORTED("17g0bn2jwfuvdxn93z9lsronr"); // len = 5; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1lvkv9camdmveih40gwylsnw6"); // else if (*s == ' ' && prev && *prev == ' ') { +UNSUPPORTED("b0atdb6d1uzal5s04csjvyq30"); // /* substitute 2nd and subsequent spaces with required_spaces */ +UNSUPPORTED("72g8c8ott8fvqjni8tir0plf7"); // sub = " "; /* inkscape doesn't recognise   */ +UNSUPPORTED("axaethtisavqkan2dx7laigpw"); // len = 6; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9e32cag083iuoabhlvpcldsa8"); // else if (*s == '"') { +UNSUPPORTED("4w7kby1vesehrcs7zpowfb0q6"); // sub = """; +UNSUPPORTED("axaethtisavqkan2dx7laigpw"); // len = 6; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("akz9vs5rt6crj61e0batgdi09"); // else if (*s == '\'') { +UNSUPPORTED("6ohptq6v6vjhjivmjf7d5auoz"); // sub = "'"; +UNSUPPORTED("17g0bn2jwfuvdxn93z9lsronr"); // len = 5; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("adxr80w3fzxvf4gxvbuo78rm5"); // sub = s; +UNSUPPORTED("ct414lk8my1pywj7ypk05e6d"); // len = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("25ryz7f7izh8r6792860c1d0y"); // while (len--) { +UNSUPPORTED("byu93mjyl867v3xyy1fb9pw9"); // *p++ = *sub++; +UNSUPPORTED("27349aw1zezm0lpez1jn3pcw4"); // pos++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5j7yubj14qnrajv5mpkfylpk3"); // prev = s; +UNSUPPORTED("1fe0kohehgdxhenrepo7ymdcw"); // s++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2t1d66kwn86kqh0i665hqw6cl"); // *p = '\0'; +UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d3mybo5t72cpoks3gfdfynkjw +// char *xml_url_string(char *s) +public static Object xml_url_string(Object... arg) { +UNSUPPORTED("9u7qpiphyo8n8zc8n1071b67e"); // char *xml_url_string(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("210phh7av8ei8ajjmpptx96m6"); // static char *buf = NULL; +UNSUPPORTED("6fpm1wk8mz0hofn15361g6nzn"); // static int bufsize = 0; +UNSUPPORTED("47g093jarn346ptid7u4d7e7m"); // char *p, *sub; +UNSUPPORTED("9ee5mdh9hsw491mz8n88ey33d"); // int len, pos = 0; +UNSUPPORTED("cjyiejw67ffjjsk60tgeebvif"); // if (!buf) { +UNSUPPORTED("4xkxdnucjd4ldoikgelnsa7c9"); // bufsize = 64; +UNSUPPORTED("9pvgystp8nwvblycum3rps3tz"); // buf = gmalloc(bufsize); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dpfzdhkfq6u86uv5f9lnqfbpq"); // p = buf; +UNSUPPORTED("e8ng575h9ts71v7d04mtpxyr5"); // while (s && *s) { +UNSUPPORTED("85svsyrkaau2681m7ya7tygx6"); // if (pos > (bufsize - 8)) { +UNSUPPORTED("aa09fjtytqkag416h6457rmkr"); // bufsize *= 2; +UNSUPPORTED("3vu2n3g10rrkdmia0oyndfj4s"); // buf = grealloc(buf, bufsize); +UNSUPPORTED("cz6j3s7zlvrbs83g3e42o83z7"); // p = buf + pos; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("97iud4axotxlk7ywlijb75m3d"); // /* escape '&' only if not part of a legal entity sequence */ +UNSUPPORTED("2ulqzjhkp81o1cpur4y62jck9"); // if (*s == '&' && !(xml_isentity(s))) { +UNSUPPORTED("cac1jzftgtiz1fvztpxrb5pzr"); // sub = "&"; +UNSUPPORTED("17g0bn2jwfuvdxn93z9lsronr"); // len = 5; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7e1vaedh6l0yfegrgw9donb9e"); // /* '<' '>' are safe to substitute even if string is already UTF-8 coded +UNSUPPORTED("2hspzajrej6p5fmxtp3xo33mw"); // * since UTF-8 strings won't contain '<' or '>' */ +UNSUPPORTED("3xg4wo6utmvnlgyvg8ciz4tey"); // else if (*s == '<') { +UNSUPPORTED("13qv1mf2mabbasi5mgrjsqs3n"); // sub = "<"; +UNSUPPORTED("cn6mu8yh8covbdy1zkhq7256"); // len = 4; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("art2agkl4px2ncm5gmygaoi4v"); // else if (*s == '>') { +UNSUPPORTED("dbkjqbduusn4tza1p3ng8iuyi"); // sub = ">"; +UNSUPPORTED("cn6mu8yh8covbdy1zkhq7256"); // len = 4; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9e32cag083iuoabhlvpcldsa8"); // else if (*s == '"') { +UNSUPPORTED("4w7kby1vesehrcs7zpowfb0q6"); // sub = """; +UNSUPPORTED("axaethtisavqkan2dx7laigpw"); // len = 6; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("akz9vs5rt6crj61e0batgdi09"); // else if (*s == '\'') { +UNSUPPORTED("6ohptq6v6vjhjivmjf7d5auoz"); // sub = "'"; +UNSUPPORTED("17g0bn2jwfuvdxn93z9lsronr"); // len = 5; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("adxr80w3fzxvf4gxvbuo78rm5"); // sub = s; +UNSUPPORTED("ct414lk8my1pywj7ypk05e6d"); // len = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("25ryz7f7izh8r6792860c1d0y"); // while (len--) { +UNSUPPORTED("byu93mjyl867v3xyy1fb9pw9"); // *p++ = *sub++; +UNSUPPORTED("27349aw1zezm0lpez1jn3pcw4"); // pos++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1fe0kohehgdxhenrepo7ymdcw"); // s++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2t1d66kwn86kqh0i665hqw6cl"); // *p = '\0'; +UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/memory__c.java plantuml-8039/src/gen/lib/common/memory__c.java --- plantuml-8024/src/gen/lib/common/memory__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/memory__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,130 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtils.memset; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import smetana.core.CString; +import smetana.core.__ptr__; +import smetana.core.size_t; + +public class memory__c { + + +//3 6hfkgng9qf75cucpojc4r8x6w +// void *zmalloc(size_t nbytes) +public static __ptr__ zmalloc(size_t nbytes) { +ENTERING("6hfkgng9qf75cucpojc4r8x6w","zmalloc"); +try { + __ptr__ rv; + if (nbytes.isZero()) + return null; + rv = gmalloc(nbytes); + memset(rv, 0, nbytes); + return rv; +} finally { +LEAVING("6hfkgng9qf75cucpojc4r8x6w","zmalloc"); +} +} + + + + +//3 dn6c3bthm7yuhtrxx3o2je19z +// void *zrealloc(void *ptr, size_t size, size_t elt, size_t osize) +public static Object zrealloc(Object... arg) { +UNSUPPORTED("50do65rl7k8poomk5tdkjw6k2"); // void *zrealloc(void *ptr, size_t size, size_t elt, size_t osize) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2esc94j9py77lfd4f23nk7w5x"); // void *p = realloc(ptr, size * elt); +UNSUPPORTED("e13q5hvkbkekp23xt0oxo1nsb"); // if (p == NULL && size) { +UNSUPPORTED("4t1y5iinm4310lkpvbal1spve"); // fprintf(stderr, "out of memory\n"); +UNSUPPORTED("68kasxgknec72r19lohbk6n3q"); // return p; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2wr2qtb30ktteuohi1vgzxugz"); // if (osize < size) +UNSUPPORTED("egt7kitgze0mw7g867jd7p6cq"); // memset((char *) p + (osize * elt), '\0', (size - osize) * elt); +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4mfikqpmxyxrke46i5xakatmc +// void *gmalloc(size_t nbytes) +public static CString gmalloc(int nbytes) { +return new CString(nbytes); +} +public static __ptr__ gmalloc(size_t nbytes) { +ENTERING("4mfikqpmxyxrke46i5xakatmc","gmalloc"); +try { + __ptr__ rv; + if (nbytes.isZero()) + return null; + rv = (__ptr__) nbytes.malloc(); + if (rv == null) { + System.err.println("out of memory"); + } + return rv; +} finally { +LEAVING("4mfikqpmxyxrke46i5xakatmc","gmalloc"); +} +} + + + + +//3 1ed55yig6d18nhtbyqlf37jik +// void *grealloc(void *ptr, size_t size) +public static __ptr__ grealloc(__ptr__ ptr, size_t size) { +ENTERING("1ed55yig6d18nhtbyqlf37jik","grealloc"); +try { + __ptr__ p = (__ptr__) size.realloc(ptr); + return p; +} finally { +LEAVING("1ed55yig6d18nhtbyqlf37jik","grealloc"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/ns__c.java plantuml-8039/src/gen/lib/common/ns__c.java --- plantuml-8024/src/gen/lib/common/ns__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/ns__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1710 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static gen.lib.cgraph.attr__c.agget; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.common.memory__c.zmalloc; +import static gen.lib.common.utils__c.dequeue; +import static gen.lib.common.utils__c.enqueue; +import static gen.lib.common.utils__c.free_queue; +import static gen.lib.common.utils__c.new_queue; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.atoi; +import static smetana.core.JUtils.setjmp; +import static smetana.core.JUtils.size_t_array_of_integer; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ALLOC_empty; +import static smetana.core.Macro.ED_cutvalue; +import static smetana.core.Macro.ED_minlen; +import static smetana.core.Macro.ED_tree_index; +import static smetana.core.Macro.ED_weight; +import static smetana.core.Macro.GD_nlist; +import static smetana.core.Macro.INT_MAX; +import static smetana.core.Macro.MAX; +import static smetana.core.Macro.MIN; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_in; +import static smetana.core.Macro.ND_lim; +import static smetana.core.Macro.ND_low; +import static smetana.core.Macro.ND_mark; +import static smetana.core.Macro.ND_next; +import static smetana.core.Macro.ND_node_type; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.ND_par; +import static smetana.core.Macro.ND_priority; +import static smetana.core.Macro.ND_rank; +import static smetana.core.Macro.ND_tree_in; +import static smetana.core.Macro.ND_tree_out; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.SEQ; +import static smetana.core.Macro.SLACK; +import static smetana.core.Macro.TREE_EDGE; +import static smetana.core.Macro.UNSUPPORTED; +import static smetana.core.Macro.free_list; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.boxf; +import h.nodequeue; +import h.pointf; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__ptr__; +import smetana.core.__struct__; +import smetana.core.jmp_buf; + +public class ns__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 540u5gu9i0x1wzoxqqx5n2vwp +// static jmp_buf jbuf +private static jmp_buf jbuf = new jmp_buf(); + +//1 5kbimjtsi4ulxiyk2w1brj6py +// static graph_t *G +//private static Agraph_s G; +//1 608xz3ruk6qq4bs1sagl9fuav +// static int N_nodes, N_edges +//private static int N_nodes, N_edges; + +//1 cfz1upsuq7ct75nfqmyg925bo +// static int Minrank, Maxrank +//static private int Minrank, Maxrank; + +//1 1xxb2cip20ls1938be1sgpc8s +// static int S_i +//private static int S_i; + +//1 2ahnzxrqoz8eoicu88g9jzic7 +// static int Search_size +//private static int Search_size; + +//1 3t9aql1n1eclyvy7p2nwyacor +// static nlist_t Tree_node +//private static final __struct__ Tree_node = __struct__.from(nlist_t.class); + +//1 11b7xeg0x1f09v305mxwvgbhs +// static elist Tree_edge +//private static final __struct__ Tree_edge = __struct__.from(elist.class); + + + +//3 6au5htcaxhw0blmx5c48v03u0 +// static void add_tree_edge(edge_t * e) +public static void add_tree_edge(Agedge_s e) { +ENTERING("6au5htcaxhw0blmx5c48v03u0","add_tree_edge"); +try { + Agnode_s n; + if (TREE_EDGE(e)) { +UNSUPPORTED("cq4nqjjxvb0dtdfy4c7pwpqai"); // agerr(AGERR, "add_tree_edge: missing tree edge\n"); +UNSUPPORTED("6fzmgjpkhmnx0a2cnt0q0rceg"); // longjmp (jbuf, 1); + } + ED_tree_index(e, Z._().Tree_edge.getInt("size")); + + Z._().Tree_edge.getArrayOfPtr("list").plus(Z._().Tree_edge.getInt("size")).setPtr(e); + Z._().Tree_edge.setInt("size", 1+ Z._().Tree_edge.getInt("size")); + + if (ND_mark(agtail(e)) == 0) { + Z._().Tree_node.getArrayOfPtr("list").plus(Z._().Tree_node.getInt("size")).setPtr(agtail(e)); + Z._().Tree_node.setInt("size", 1+ Z._().Tree_node.getInt("size")); + } + + if (ND_mark(aghead(e)) == 0) { + Z._().Tree_node.getArrayOfPtr("list").plus(Z._().Tree_node.getInt("size")).setPtr(aghead(e)); + Z._().Tree_node.setInt("size", 1+ Z._().Tree_node.getInt("size")); + } + n = agtail(e); + ND_mark(n, 1); + + ND_tree_out(n).getArrayOfPtr("list").plus(ND_tree_out(n).getInt("size")).setPtr(e); + ND_tree_out(n).setInt("size", 1+ND_tree_out(n).getInt("size")); + ND_tree_out(n).getArrayOfPtr("list").plus(ND_tree_out(n).getInt("size")).setPtr(null); + + if (ND_out(n).getArrayOfPtr("list").plus(ND_tree_out(n).getInt("size") - 1).getPtr() == null) { +UNSUPPORTED("9src34zgmgy8yvdzfs1ozlh0w"); // agerr(AGERR, "add_tree_edge: empty outedge list\n"); +UNSUPPORTED("6fzmgjpkhmnx0a2cnt0q0rceg"); // longjmp (jbuf, 1); + } + n = aghead(e); + ND_mark(n, 1); + + ND_tree_in(n).getArrayOfPtr("list").plus(ND_tree_in(n).getInt("size")).setPtr(e); + ND_tree_in(n).setInt("size", 1+ND_tree_in(n).getInt("size")); + ND_tree_in(n).getArrayOfPtr("list").plus(ND_tree_in(n).getInt("size")).setPtr(null); + + if (ND_in(n).getArrayOfPtr("list").plus(ND_tree_in(n).getInt("size") - 1).getPtr() == null) { +UNSUPPORTED("f0uri98pv606g2qjpy9k385cy"); // agerr(AGERR, "add_tree_edge: empty inedge list\n"); +UNSUPPORTED("6fzmgjpkhmnx0a2cnt0q0rceg"); // longjmp (jbuf, 1); + } +} finally { +LEAVING("6au5htcaxhw0blmx5c48v03u0","add_tree_edge"); +} +} + + + + +//3 9b7b78pmafynmvffztrqnlxtn +// static void exchange_tree_edges(edge_t * e, edge_t * f) +public static void exchange_tree_edges(Agedge_s e, Agedge_s f) { +ENTERING("9b7b78pmafynmvffztrqnlxtn","exchange_tree_edges"); +try { + int i, j; + Agnode_s n; + ED_tree_index(f, ED_tree_index(e)); + Z._().Tree_edge.getArrayOfPtr("list").plus(ED_tree_index(e)).setPtr(f); + ED_tree_index(e, -1); + n = agtail(e); + ND_tree_out(n).setInt("size", ND_tree_out(n).getInt("size") -1); + i = ND_tree_out(n).getInt("size"); + for (j = 0; j <= i; j++) + if (EQ(ND_tree_out(n).getArrayOfPtr("list").plus(j).getPtr(), e)) + break; + ND_tree_out(n).getArrayOfPtr("list").plus(j).setPtr(ND_tree_out(n).getArrayOfPtr("list").plus(i).getPtr()); + ND_tree_out(n).getArrayOfPtr("list").plus(i).setPtr(null); + n = aghead(e); + ND_tree_in(n).setInt("size", ND_tree_in(n).getInt("size") -1); + i = ND_tree_in(n).getInt("size"); + for (j = 0; j <= i; j++) + if (EQ(ND_tree_in(n).getArrayOfPtr("list").plus(j).getPtr(), e)) + break; + ND_tree_in(n).getArrayOfPtr("list").plus(j).setPtr(ND_tree_in(n).getArrayOfPtr("list").plus(i).getPtr()); + ND_tree_in(n).getArrayOfPtr("list").plus(i).setPtr(null); + n = agtail(f); + ND_tree_out(n).getArrayOfPtr("list").plus(ND_tree_out(n).getInt("size")).setPtr(f); + ND_tree_out(n).setInt("size", ND_tree_out(n).getInt("size") +1); + ND_tree_out(n).getArrayOfPtr("list").plus(ND_tree_out(n).getInt("size")).setPtr(null); + n = aghead(f); + ND_tree_in(n).getArrayOfPtr("list").plus(ND_tree_in(n).getInt("size")).setPtr(f); + ND_tree_in(n).setInt("size", ND_tree_in(n).getInt("size") +1); + ND_tree_in(n).getArrayOfPtr("list").plus(ND_tree_in(n).getInt("size")).setPtr(null); +} finally { +LEAVING("9b7b78pmafynmvffztrqnlxtn","exchange_tree_edges"); +} +} + + + + +//3 dbxco6m0mabzhsqfo3pb8nctk +// static void init_rank(void) +public static void init_rank() { +ENTERING("dbxco6m0mabzhsqfo3pb8nctk","init_rank"); +try { + int i, ctr; + nodequeue Q; + Agnode_s v; + Agedge_s e; + Q = new_queue(Z._().N_nodes); + ctr = 0; + for (v = GD_nlist(Z._().G_ns); v!=null; v = ND_next(v)) { + if (ND_priority(v) == 0) + enqueue(Q, v); + } + while ((v = dequeue(Q))!=null) { + ND_rank(v, 0); + ctr++; + for (i = 0; (e = (Agedge_s) ND_in(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + ND_rank(v, MAX(ND_rank(v), ND_rank(agtail(e)) + ED_minlen(e))); + for (i = 0; (e = (Agedge_s) ND_out(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + ND_priority(aghead(e), ND_priority(aghead(e)) -1 ); + if ((ND_priority(aghead(e))) <= 0) + enqueue(Q, aghead(e)); + } + } + if (ctr != Z._().N_nodes) { +UNSUPPORTED("7sgp99x1l3hzfks5wykxa87gf"); // agerr(AGERR, "trouble in init_rank\n"); +UNSUPPORTED("bwwunxmw4kgz6qntbn6xp0cur"); // for (v = (((Agraphinfo_t*)(((Agobj_t*)(G))->data))->nlist); v; v = (((Agnodeinfo_t*)(((Agobj_t*)(v))->data))->next)) +UNSUPPORTED("3dk132mz1u2pf0tla64kl6hv0"); // if ((((Agnodeinfo_t*)(((Agobj_t*)(v))->data))->priority)) +UNSUPPORTED("916bi45h6sjvte1rgig12b1v2"); // agerr(AGPREV, "\t%s %d\n", agnameof(v), (((Agnodeinfo_t*)(((Agobj_t*)(v))->data))->priority)); + } + free_queue(Q); +} finally { +LEAVING("dbxco6m0mabzhsqfo3pb8nctk","init_rank"); +} +} + + + + +//3 bj7ux5kz8ls2lnfh0ix6i00b9 +// static node_t *incident(edge_t * e) +public static Agnode_s incident(Agedge_s e) { +ENTERING("bj7ux5kz8ls2lnfh0ix6i00b9","incident"); +try { + if (ND_mark(agtail(e))!=0) { + if (ND_mark(aghead(e)) == 0) + return agtail(e); + } else { + if (ND_mark(aghead(e))!=0) + return aghead(e); + } + return null; +} finally { +LEAVING("bj7ux5kz8ls2lnfh0ix6i00b9","incident"); +} +} + + + + +//3 4i9tcvid2iql874c6k70s9aqm +// static edge_t *leave_edge(void) +public static Agedge_s leave_edge() { +ENTERING("4i9tcvid2iql874c6k70s9aqm","leave_edge"); +try { + Agedge_s f, rv = null; + int j, cnt = 0; + j = Z._().S_i; + while (Z._().S_i < Z._().Tree_edge.getInt("size")) { + if (ED_cutvalue(f = (Agedge_s) Z._().Tree_edge.getArrayOfPtr("list").plus(Z._().S_i).getPtr()) < 0) { + if (rv!=null) { + if (ED_cutvalue(rv) > ED_cutvalue(f)) + rv = f; + } else + rv = (Agedge_s) Z._().Tree_edge.getArrayOfPtr("list").plus(Z._().S_i).getPtr(); + if (++cnt >= Z._().Search_size) + return rv; + } + Z._().S_i++; + } + if (j > 0) { + Z._().S_i = 0; + while (Z._().S_i < j) { + if (ED_cutvalue(f = (Agedge_s) Z._().Tree_edge.getArrayOfPtr("list").plus(Z._().S_i).getPtr()) < 0) { + if (rv!=null) { + if (ED_cutvalue(rv) > ED_cutvalue(f)) + rv = f; + } else + rv = (Agedge_s) Z._().Tree_edge.getArrayOfPtr("list").plus(Z._().S_i).getPtr(); + if (++cnt >= Z._().Search_size) + return rv; + } + Z._().S_i++; + } + } + return rv; +} finally { +LEAVING("4i9tcvid2iql874c6k70s9aqm","leave_edge"); +} +} + + +//1 3wm7ej298st1xk7rbhbtnbk64 +// static edge_t *Enter +//private static Agedge_s Enter; + +//1 dx9f0e947f5kjhc2eftn43t90 +// static int Low, Lim, Slack +//private static int Low, Lim, Slack; + + + +//3 10lkpr4y40luvy2idlozfiva3 +// static void dfs_enter_outedge(node_t * v) +public static void dfs_enter_outedge(Agnode_s v) { +ENTERING("10lkpr4y40luvy2idlozfiva3","dfs_enter_outedge"); +try { + int i, slack; + Agedge_s e; + for (i = 0; (e = (Agedge_s) ND_out(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if (TREE_EDGE(e) == false) { + if (N(SEQ(Z._().Low, ND_lim(aghead(e)), Z._().Lim))) { + slack = SLACK(e); + if ((slack < Z._().Slack) || (Z._().Enter == null)) { + Z._().Enter = e; + Z._().Slack = slack; + } + } + } else if (ND_lim(aghead(e)) < ND_lim(v)) + dfs_enter_outedge(aghead(e)); + } + for (i = 0; (e = (Agedge_s) ND_tree_in(v).getArrayOfPtr("list").plus(i).getPtr())!=null && (Z._().Slack > 0); i++) + if (ND_lim(agtail(e)) < ND_lim(v)) + dfs_enter_outedge(agtail(e)); +} finally { +LEAVING("10lkpr4y40luvy2idlozfiva3","dfs_enter_outedge"); +} +} + + + + +//3 2z9nii6380p8qlql8nznzgvof +// static void dfs_enter_inedge(node_t * v) +public static void dfs_enter_inedge(Agnode_s v) { +ENTERING("2z9nii6380p8qlql8nznzgvof","dfs_enter_inedge"); +try { + int i, slack; + Agedge_s e; + for (i = 0; (e = (Agedge_s) ND_in(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if (TREE_EDGE(e) == false) { + if (N(SEQ(Z._().Low, ND_lim(agtail(e)), Z._().Lim))) { + slack = SLACK(e); + if ((slack < Z._().Slack) || (Z._().Enter == null)) { + Z._().Enter = e; + Z._().Slack = slack; + } + } + } else if (ND_lim(agtail(e)) < ND_lim(v)) + dfs_enter_inedge(agtail(e)); + } + for (i = 0; (e = (Agedge_s) ND_tree_out(v).getArrayOfPtr("list").plus(i).getPtr())!=null && (Z._().Slack > 0); i++) + if (ND_lim(aghead(e)) < ND_lim(v)) + dfs_enter_inedge(aghead(e)); +} finally { +LEAVING("2z9nii6380p8qlql8nznzgvof","dfs_enter_inedge"); +} +} + + + + +//3 aeu2po1o1rvibmafk0k8dw0fh +// static edge_t *enter_edge(edge_t * e) +public static Agedge_s enter_edge(Agedge_s e) { +ENTERING("aeu2po1o1rvibmafk0k8dw0fh","enter_edge"); +try { + Agnode_s v; + int outsearch; + /* v is the down node */ + if (ND_lim(agtail(e)) < ND_lim(aghead(e))) { + v = agtail(e); + outsearch = 0; + } else { + v = aghead(e); + outsearch = 1; + } + Z._().Enter = null; + Z._().Slack = INT_MAX; + Z._().Low = ND_low(v); + Z._().Lim = ND_lim(v); + if (outsearch!=0) + dfs_enter_outedge(v); + else + dfs_enter_inedge(v); + return Z._().Enter; +} finally { +LEAVING("aeu2po1o1rvibmafk0k8dw0fh","enter_edge"); +} +} + + + + +//3 1gvyafmercq92v3lg6gb33cbt +// static int treesearch(node_t * v) +public static boolean treesearch(Agnode_s v) { +ENTERING("1gvyafmercq92v3lg6gb33cbt","treesearch"); +try { + int i; + Agedge_s e; + for (i = 0; (e = (Agedge_s) ND_out(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if ((ND_mark(aghead(e)) == 0) && (SLACK(e) == 0)) { + add_tree_edge(e); + if ((Z._().Tree_edge.getInt("size") == Z._().N_nodes - 1) || treesearch(aghead(e))) + return NOT(0); + } + } + for (i = 0; (e = (Agedge_s) ND_in(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if ((ND_mark(agtail(e)) == 0) && (SLACK(e) == 0)) { + add_tree_edge(e); + if ((Z._().Tree_edge.getInt("size") == Z._().N_nodes - 1) || treesearch(agtail(e))) + return NOT(0); + } + } + return false; +} finally { +LEAVING("1gvyafmercq92v3lg6gb33cbt","treesearch"); +} +} + + + + +//3 c98bj1u8j43cdezeczn33mec0 +// static int tight_tree(void) +public static int tight_tree() { +ENTERING("c98bj1u8j43cdezeczn33mec0","tight_tree"); +try { + int i; + Agnode_s n; + for (n = GD_nlist(Z._().G_ns); n!=null; n = ND_next(n)) { + ND_mark(n, 0); + ND_tree_in(n).getArrayOfPtr("list").plus(0).setPtr(null); + ND_tree_out(n).getArrayOfPtr("list").plus(0).setPtr(null); + ND_tree_in(n).setInt("size", 0); + ND_tree_out(n).setInt("size", 0); + } + for (i = 0; i < Z._().Tree_edge.getInt("size"); i++) + ED_tree_index(Z._().Tree_edge.getArrayOfPtr("list").plus(i).getPtr(), -1); + Z._().Tree_node.setInt("size", 0); + Z._().Tree_edge.setInt("size", 0); + for (n = GD_nlist(Z._().G_ns); n!=null && (Z._().Tree_edge.getInt("size") == 0); n = ND_next(n)) + treesearch(n); + return Z._().Tree_node.getInt("size"); +} finally { +LEAVING("c98bj1u8j43cdezeczn33mec0","tight_tree"); +} +} + + + + +//3 10o7oe8d097fx7swmpqd4tf0h +// static void init_cutvalues(void) +public static void init_cutvalues() { +ENTERING("10o7oe8d097fx7swmpqd4tf0h","init_cutvalues"); +try { + dfs_range(GD_nlist(Z._().G_ns), null, 1); + dfs_cutval(GD_nlist(Z._().G_ns), null); +} finally { +LEAVING("10o7oe8d097fx7swmpqd4tf0h","init_cutvalues"); +} +} + + + + +//3 756raqohoxdeiddqbyr37h7ig +// static int feasible_tree(void) +public static int feasible_tree() { +ENTERING("756raqohoxdeiddqbyr37h7ig","feasible_tree"); +try { + int i, delta; + Agnode_s n; + Agedge_s e, f; + if (Z._().N_nodes <= 1) + return 0; + while (tight_tree() < Z._().N_nodes) { + e = null; + for (n = GD_nlist(Z._().G_ns); n!=null; n = ND_next(n)) { + for (i = 0; (f = (Agedge_s) ND_out(n).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if ((TREE_EDGE(f) == false) && incident(f)!=null && ((e == null) + || (SLACK(f) + < + SLACK + (e)))) + e = f; + } + } + if (e!=null) { + delta = SLACK(e); + if (delta!=0) { + if (EQ(incident(e), aghead(e))) + delta = -delta; + for (i = 0; i < Z._().Tree_node.getInt("size"); i++) + ND_rank(Z._().Tree_node.getArrayOfPtr("list").plus(i).getPtr(), ND_rank(Z._().Tree_node.getArrayOfPtr("list").plus(i).getPtr()) + delta); + } + } else { + return 1; + } + } + init_cutvalues(); + return 0; +} finally { +LEAVING("756raqohoxdeiddqbyr37h7ig","feasible_tree"); +} +} + + + + +//3 49un8m43odrf89cedvin3wz3r +// static node_t *treeupdate(node_t * v, node_t * w, int cutvalue, int dir) +public static Agnode_s treeupdate(Agnode_s v, Agnode_s w, int cutvalue, boolean dir) { +ENTERING("49un8m43odrf89cedvin3wz3r","treeupdate"); +try { + Agedge_s e; + boolean d; + while (N(SEQ(ND_low(v), ND_lim(w), ND_lim(v)))) { + e = (Agedge_s) ND_par(v); + if (EQ(v, agtail(e))) + d = dir; + else + d = NOT(dir); + if (d) + ED_cutvalue(e, ED_cutvalue(e) + cutvalue); + else + ED_cutvalue(e, ED_cutvalue(e) - cutvalue); + if (ND_lim(agtail(e)) > ND_lim(aghead(e))) + v = agtail(e); + else + v = aghead(e); + } + return v; +} finally { +LEAVING("49un8m43odrf89cedvin3wz3r","treeupdate"); +} +} + + + + +//3 e66n8gern1fejjsn8nefypo0g +// static void rerank(node_t * v, int delta) +public static void rerank(Agnode_s v, int delta) { +ENTERING("e66n8gern1fejjsn8nefypo0g","rerank"); +try { + int i; + Agedge_s e; + ND_rank(v, ND_rank(v) - delta); + for (i = 0; (e = (Agedge_s) ND_tree_out(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + if (NEQ(e, ND_par(v))) + rerank(aghead(e), delta); + for (i = 0; (e = (Agedge_s) ND_tree_in(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + if (NEQ(e, ND_par(v))) + rerank(agtail(e), delta); +} finally { +LEAVING("e66n8gern1fejjsn8nefypo0g","rerank"); +} +} + + + + +//3 xww1p8bentf1qk7mgfhi1q6m +// static void update(edge_t * e, edge_t * f) +public static void update(Agedge_s e, Agedge_s f) { +ENTERING("xww1p8bentf1qk7mgfhi1q6m","update"); +try { + int cutvalue, delta; + Agnode_s lca; + delta = SLACK(f); + /* "for (v = in nodes in tail side of e) do ND_rank(v) -= delta;" */ + if (delta > 0) { + int s; + s = ND_tree_in(agtail(e)).getInt("size") + ND_tree_out(agtail(e)).getInt("size"); + if (s == 1) + rerank(agtail(e), delta); + else { + s = ND_tree_in(aghead(e)).getInt("size") + ND_tree_out(aghead(e)).getInt("size"); + if (s == 1) + rerank(aghead(e), -delta); + else { + if (ND_lim(agtail(e)) < ND_lim(aghead(e))) + rerank(agtail(e), delta); + else + rerank(aghead(e), -delta); + } + } + } + cutvalue = ED_cutvalue(e); + lca = treeupdate(agtail(f), aghead(f), cutvalue, true); + if (NEQ(treeupdate(aghead(f), agtail(f), cutvalue, false), lca)) { +UNSUPPORTED("f2l4c6yhnwnfer3vrasf55fio"); // agerr(AGERR, "update: mismatched lca in treeupdates\n"); +UNSUPPORTED("6fzmgjpkhmnx0a2cnt0q0rceg"); // longjmp (jbuf, 1); + } + ED_cutvalue(f, -cutvalue); + ED_cutvalue(e, 0); + exchange_tree_edges(e, f); + dfs_range(lca, ND_par(lca), ND_low(lca)); +} finally { +LEAVING("xww1p8bentf1qk7mgfhi1q6m","update"); +} +} + + + + +//3 3yw7w42hz7af67d6qse3b2172 +// static void scan_and_normalize(void) +public static void scan_and_normalize() { +ENTERING("3yw7w42hz7af67d6qse3b2172","scan_and_normalize"); +try { + Agnode_s n; + Z._().Minrank = Integer.MAX_VALUE; + Z._().Maxrank = -Integer.MAX_VALUE; + for (n = GD_nlist(Z._().G_ns); n!=null; n = ND_next(n)) { + if (ND_node_type(n) == 0) { + Z._().Minrank = MIN(Z._().Minrank, ND_rank(n)); + Z._().Maxrank = MAX(Z._().Maxrank, ND_rank(n)); + } + } + if (Z._().Minrank != 0) { + for (n = GD_nlist(Z._().G_ns); n!=null; n = ND_next(n)) + ND_rank(n, ND_rank(n) - Z._().Minrank); + Z._().Maxrank -= Z._().Minrank; + Z._().Minrank = 0; + } +} finally { +LEAVING("3yw7w42hz7af67d6qse3b2172","scan_and_normalize"); +} +} + + + + +//3 7eg6zti36nbg4tqyo8yunh86r +// static void freeTreeList (graph_t* g) +public static void freeTreeList(Agraph_s g) { +ENTERING("7eg6zti36nbg4tqyo8yunh86r","freeTreeList"); +try { + Agnode_s n; + for (n = GD_nlist(Z._().G_ns); n!=null; n = ND_next(n)) { + free_list(ND_tree_in(n)); + free_list(ND_tree_out(n)); + ND_mark(n, 0); + } +} finally { +LEAVING("7eg6zti36nbg4tqyo8yunh86r","freeTreeList"); +} +} + + + + +//3 9gx8p7md3v3mzp640xdjj814a +// static void LR_balance(void) +public static void LR_balance() { +ENTERING("9gx8p7md3v3mzp640xdjj814a","LR_balance"); +try { + int i, delta; + Agedge_s e, f; + for (i = 0; i < Z._().Tree_edge.getInt("size"); i++) { + e = (Agedge_s) Z._().Tree_edge.getArrayOfPtr("list").plus(i).getPtr(); + if (ED_cutvalue(e) == 0) { + f = enter_edge(e); + if (f == null) + continue; + delta = SLACK(f); + if (delta <= 1) + continue; + if (ND_lim(agtail(e)) < ND_lim(aghead(e))) + rerank(agtail(e), delta / 2); + else + rerank(aghead(e), -delta / 2); + } + } + freeTreeList (Z._().G_ns); +} finally { +LEAVING("9gx8p7md3v3mzp640xdjj814a","LR_balance"); +} +} + + + + +//3 5c01jnao2ubmy4l0vi5jol0jz +// static void TB_balance(void) +public static void TB_balance() { +ENTERING("5c01jnao2ubmy4l0vi5jol0jz","TB_balance"); +try { + Agnode_s n; + Agedge_s e; + int i, low, high, choice; + __ptr__ nrank; + int inweight, outweight; + scan_and_normalize(); + /* find nodes that are not tight and move to less populated ranks */ + nrank = zmalloc(size_t_array_of_integer(Z._().Maxrank + 1)); + for (i = 0; i <= Z._().Maxrank; i++) + nrank.plus(i).setInt(0); + for (n = GD_nlist(Z._().G_ns); n!=null; n = ND_next(n)) + if (ND_node_type(n) == 0) + nrank.plus(ND_rank(n)).setInt(1+nrank.plus(ND_rank(n)).getInt()); + for (n = GD_nlist(Z._().G_ns); n!=null; n = ND_next(n)) { + if (ND_node_type(n) != 0) + continue; + inweight = outweight = 0; + low = 0; + high = Z._().Maxrank; + for (i = 0; (e = (Agedge_s) ND_in(n).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + inweight += ED_weight(e); + low = MAX(low, ND_rank(agtail(e)) + ED_minlen(e)); + } + for (i = 0; (e = (Agedge_s) ND_out(n).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + outweight += ED_weight(e); + high = MIN(high, ND_rank(aghead(e)) - ED_minlen(e)); + } + if (low < 0) + low = 0; /* vnodes can have ranks < 0 */ + if (inweight == outweight) { + choice = low; + for (i = low + 1; i <= high; i++) + if (nrank.plus(i).getInt() < nrank.plus(choice).getInt()) + choice = i; + nrank.plus(ND_rank(n)).setInt(nrank.plus(ND_rank(n)).getInt()-1); + nrank.plus(choice).setInt(nrank.plus(choice).getInt()+1); + ND_rank(n, choice); + } + free_list(ND_tree_in(n)); + free_list(ND_tree_out(n)); + ND_mark(n, 0); + } + Memory.free(nrank); +} finally { +LEAVING("5c01jnao2ubmy4l0vi5jol0jz","TB_balance"); +} +} + + + + +//3 37hg5w7ywmyljdiebgp5ltl22 +// static int init_graph(graph_t * g) +public static int init_graph(Agraph_s g) { +ENTERING("37hg5w7ywmyljdiebgp5ltl22","init_graph"); +try { + int i, feasible; + Agnode_s n; + Agedge_s e; + Z._().G_ns = g; + Z._().N_nodes = Z._().N_edges = Z._().S_i = 0; + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + ND_mark(n, 0); + Z._().N_nodes++; + for (i = 0; (e = (Agedge_s) ND_out(n).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + Z._().N_edges++; + } + Z._().Tree_node.setPtr("list", ALLOC_empty(Z._().N_nodes, Z._().Tree_node.getPtr("list"), Agnode_s.class)); + Z._().Tree_node.setInt("size", 0); + Z._().Tree_edge.setPtr("list", ALLOC_empty(Z._().N_nodes, Z._().Tree_edge.getPtr("list"), Agedge_s.class)); + Z._().Tree_edge.setInt("size", 0); + feasible = 1; + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + ND_priority(n, 0); + for (i = 0; (e = (Agedge_s) ND_in(n).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + ND_priority(n, 1+ND_priority(n)); + ED_cutvalue(e, 0); + ED_tree_index(e, -1); + if (feasible!=0 + && (ND_rank(aghead(e)) - ND_rank(agtail(e)) < ED_minlen(e))) + feasible = 0; + } + ND_tree_in(n).setPtr("list", zmalloc(sizeof(Agedge_s.class, i+1)));; + ND_tree_in(n).setInt("size", 0); + for (i = 0; (e = (Agedge_s) ND_out(n).getArrayOfPtr("list").plus(i).getPtr())!=null; i++); + ND_tree_out(n).setPtr("list", zmalloc(sizeof(Agedge_s.class, i+1))); + ND_tree_out(n).setInt("size", 0); + } + return feasible; +} finally { +LEAVING("37hg5w7ywmyljdiebgp5ltl22","init_graph"); +} +} + + + + +//3 4jv545ixndzfz0hmy2ck1kvre +// static void graphSize (graph_t * g, int* nn, int* ne) +public static Object graphSize(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("d95292hibn08mh6rbguy3zeib"); // graphSize (graph_t * g, int* nn, int* ne) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4i46dhl8eqbh29vq1vn3ipo70"); // int i, nnodes, nedges; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("359m8vuzzte7zl5lru7vf4bga"); // nnodes = nedges = 0; +UNSUPPORTED("8g62mxpap4eeua2lkn9a1iosi"); // for (n = GD_nlist(g); n; n = ND_next(n)) { +UNSUPPORTED("a5hcy2vbfyq09svspfdvsreu1"); // nnodes++; +UNSUPPORTED("az80xiplaqv1i8gmq2feyyrea"); // for (i = 0; (e = ND_out(n).list[i]); i++) { +UNSUPPORTED("1sy3rnb8qjw3nmyka290izgi2"); // nedges++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("h7rj9k6bm1iatjqeqmhlinoi"); // *nn = nnodes; +UNSUPPORTED("7whkfg1zlimqk163vbj7cgxmt"); // *ne = nedges; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5n0ipwzhr8urlx0fsdzr02gwq +// int rank2(graph_t * g, int balance, int maxiter, int search_size) +public static int rank2(Agraph_s g, int balance, int maxiter, int search_size) { +ENTERING("5n0ipwzhr8urlx0fsdzr02gwq","rank2"); +try { + int iter = 0, feasible; + CString ns = new CString("network simplex: "); + Agedge_s e, f; + /*if (Verbose) { + int nn, ne; + graphSize (g, &nn, &ne); + fprintf(stderr, "%s %d nodes %d edges maxiter=%d balance=%d\n", ns, + nn, ne, maxiter, balance); + start_timer(); + }*/ + feasible = init_graph(g); + if (N(feasible)) + init_rank(); + if (maxiter <= 0) { + freeTreeList (g); + return 1; + } + if (search_size >= 0) + Z._().Search_size = search_size; + else + Z._().Search_size = 30; + if (setjmp (jbuf)!=0) { + return 2; + } + if (feasible_tree()!=0) { + freeTreeList (g); + return 1; + } + while ((e = leave_edge())!=null) { + f = enter_edge(e); + update(e, f); + iter++; + /*if (Verbose && (iter % 100 == 0)) { + if (iter % 1000 == 100) + fputs(ns, stderr); + fprintf(stderr, "%d ", iter); + if (iter % 1000 == 0) + fputc('\n', stderr); + }*/ + if (iter >= maxiter) + break; + } + switch (balance) { + case 1: + TB_balance(); + break; + case 2: + LR_balance(); + break; + default: + scan_and_normalize(); + freeTreeList (Z._().G_ns); + break; + } + /*if (Verbose) { + if (iter >= 100) + fputc('\n', stderr); + fprintf(stderr, "%s%d nodes %d edges %d iter %.2f sec\n", + ns, N_nodes, N_edges, iter, elapsed_sec()); + }*/ + return 0; +} finally { +LEAVING("5n0ipwzhr8urlx0fsdzr02gwq","rank2"); +} +} + + + + +//3 aqly8eniwjr5bmh4hzwc7ftdr +// int rank(graph_t * g, int balance, int maxiter) +public static int rank(Agraph_s g, int balance, int maxiter) { +ENTERING("aqly8eniwjr5bmh4hzwc7ftdr","rank"); +try { + CString s; + int search_size; + if ((s = agget(g, new CString("searchsize")))!=null) + search_size = atoi(s); + else + search_size = 30; + return rank2 (g, balance, maxiter, search_size); +} finally { +LEAVING("aqly8eniwjr5bmh4hzwc7ftdr","rank"); +} +} + + + + +//3 2q59mz8qtn0biifbezb8uxz17 +// static void x_cutval(edge_t * f) +public static void x_cutval(Agedge_s f) { +ENTERING("2q59mz8qtn0biifbezb8uxz17","x_cutval"); +try { + Agnode_s v=null; + Agedge_s e; + int i, sum, dir=0; + /* set v to the node on the side of the edge already searched */ + if (EQ(ND_par(agtail(f)), f)) { + v = agtail(f); + dir = 1; + } else { + v = aghead(f); + dir = -1; + } + sum = 0; + for (i = 0; (e = (Agedge_s) ND_out(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + sum += x_val(e, v, dir); + for (i = 0; (e = (Agedge_s) ND_in(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + sum += x_val(e, v, dir); + ED_cutvalue(f, sum); +} finally { +LEAVING("2q59mz8qtn0biifbezb8uxz17","x_cutval"); +} +} + + + + +//3 bfeafmsmmnblgizs37qj03dy4 +// static int x_val(edge_t * e, node_t * v, int dir) +public static int x_val(Agedge_s e, Agnode_s v, int dir) { +ENTERING("bfeafmsmmnblgizs37qj03dy4","x_val"); +try { + Agnode_s other; + int d=0, rv=0, f=0; + if (EQ(agtail(e), v)) + other = aghead(e); + else + other = agtail(e); + if (N(SEQ(ND_low(v), ND_lim(other), ND_lim(v)))) { + f = 1; + rv = ED_weight(e); + } else { + f = 0; + if (TREE_EDGE(e)) + rv = ED_cutvalue(e); + else + rv = 0; + rv -= ED_weight(e); + } + if (dir > 0) { + if (EQ(aghead(e), v)) + d = 1; + else + d = -1; + } else { + if (EQ(agtail(e), v)) + d = 1; + else + d = -1; + } + if (f!=0) + d = -d; + if (d < 0) + rv = -rv; + return rv; +} finally { +LEAVING("bfeafmsmmnblgizs37qj03dy4","x_val"); +} +} + + + + +//3 ah65iqmwa5j0qwotm6amhijlg +// static void dfs_cutval(node_t * v, edge_t * par) +public static void dfs_cutval(Agnode_s v, Agedge_s par) { +ENTERING("ah65iqmwa5j0qwotm6amhijlg","dfs_cutval"); +try { + int i; + Agedge_s e; + for (i = 0; (e = (Agedge_s) ND_tree_out(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + if (NEQ(e, par)) + dfs_cutval(aghead(e), e); + for (i = 0; (e = (Agedge_s) ND_tree_in(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + if (NEQ(e, par)) + dfs_cutval(agtail(e), e); + if (par!=null) + x_cutval(par); +} finally { +LEAVING("ah65iqmwa5j0qwotm6amhijlg","dfs_cutval"); +} +} + + + + +//3 cgqr48qol9p8bsqjnryo5z5x9 +// static int dfs_range(node_t * v, edge_t * par, int low) +public static int dfs_range(Agnode_s v, Agedge_s par, int low) { +ENTERING("cgqr48qol9p8bsqjnryo5z5x9","dfs_range"); +try { + Agedge_s e; + int i, lim; + lim = low; + ND_par(v, par); + ND_low(v, low); + for (i = 0; (e = (Agedge_s) ND_tree_out(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + if (NEQ(e, par)) + lim = dfs_range(aghead(e), e, lim); + for (i = 0; (e = (Agedge_s) ND_tree_in(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + if (NEQ(e, par)) + lim = dfs_range(agtail(e), e, lim); + ND_lim(v, lim); + return lim + 1; +} finally { +LEAVING("cgqr48qol9p8bsqjnryo5z5x9","dfs_range"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/output__c.java plantuml-8039/src/gen/lib/common/output__c.java --- plantuml-8024/src/gen/lib/common/output__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/output__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1187 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class output__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 6fht53r5vzphmiooo5i9tvna9 +// static double Y_off + + +//1 6zlbkxk2nq08jt795gq9ylw7b +// static double YF_off + + + + +//3 6h1oa4cqlakv57l757pixrllu +// double yDir (double y) +public static Object yDir(Object... arg) { +UNSUPPORTED("6yqj3kh80kduseti1t125vxuc"); // double yDir (double y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8dqz2vehx0qw9ow1q34nm29nb"); // return (Y_invert ? (Y_off - (y)) : (y)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8glhmjpf7wu0b4bp6y2morhz +// static void agputs (const char* s, FILE* fp) +public static Object agputs(Object... arg) { +UNSUPPORTED("2a91abhqe9wp7lrhw42vdaf1t"); // static void agputs (const char* s, FILE* fp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3mvbsdv6kemosmi4kus10991w"); // putstr ((void*)fp, s); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 50ytxsn25x33pshc5fn6ndouu +// static void agputc (int c, FILE* fp) +public static Object agputc(Object... arg) { +UNSUPPORTED("8t0e702psmmmcu9eumim4z6nv"); // static void agputc (int c, FILE* fp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("elhrx0tw5ggrn0s926ez829fp"); // static char buf[2] = {'\0','\0'}; +UNSUPPORTED("5q4ts22itevk0jgej86bk287q"); // buf[0] = c; +UNSUPPORTED("1p712omj2u85bemanjlhqmp39"); // putstr ((void*)fp, buf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5lwr96qxai3q3ibx4jq2zaup4 +// static void printstring(FILE * f, char *prefix, char *s) +public static Object printstring(Object... arg) { +UNSUPPORTED("cik5crknq1i3soa6udpuqs2jj"); // static void printstring(FILE * f, char *prefix, char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bx340tmzxfvnhjtjm8jcaxmo0"); // if (prefix) agputs(prefix, f); +UNSUPPORTED("4dll3tdy69cqavyx6p1b4l9ax"); // agputs(s, f); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2bf9grhepqg3zfznzubbvqbeo +// static void printint(FILE * f, char *prefix, int i) +public static Object printint(Object... arg) { +UNSUPPORTED("2j78a77iawzomftkz5vfkk99i"); // static void printint(FILE * f, char *prefix, int i) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("bx340tmzxfvnhjtjm8jcaxmo0"); // if (prefix) agputs(prefix, f); +UNSUPPORTED("b4yrjxb6cecjl46x4jru1w1fi"); // sprintf(buf, "%d", i); +UNSUPPORTED("a5120ceak9qt7h6sb0i9w5vj6"); // agputs(buf, f); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5z9gdq5h2uz6ip7nfhbyyjr47 +// static void printdouble(FILE * f, char *prefix, double v) +public static Object printdouble(Object... arg) { +UNSUPPORTED("eigy0k9sb1hxjty7q0c09assn"); // static void printdouble(FILE * f, char *prefix, double v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("bx340tmzxfvnhjtjm8jcaxmo0"); // if (prefix) agputs(prefix, f); +UNSUPPORTED("d38ey896kq41o4hdfsq730yyd"); // sprintf(buf, "%.5g", v); +UNSUPPORTED("a5120ceak9qt7h6sb0i9w5vj6"); // agputs(buf, f); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dp0rs7pmn008udrkxxzndzajl +// static void printpoint(FILE * f, pointf p) +public static Object printpoint(Object... arg) { +UNSUPPORTED("awvsuil2ah983t3h0v8en269i"); // static void printpoint(FILE * f, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7xc1oqq7npbfq2b1fzdokzikx"); // printdouble(f, " ", ((p.x)/(double)72)); +UNSUPPORTED("6m59r4dotfk08t504y9tsmn5l"); // printdouble(f, " ", (((Y_invert ? (Y_off - (p.y)) : (p.y)))/(double)72)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1kbb9mmakvku7oedntokmdkdi +// static void setYInvert(graph_t * g) +public static Object setYInvert(Object... arg) { +UNSUPPORTED("9qgrdiddkaomo4blvr5n4nffz"); // static void setYInvert(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3vpqrdc1a9x0cpu6f285x2tt3"); // if (Y_invert) { +UNSUPPORTED("63lwvwdop4l87voa68fhlmdjq"); // Y_off = GD_bb(g).UR.y + GD_bb(g).LL.y; +UNSUPPORTED("3z0tyi45vfaknot68fqyh82n"); // YF_off = ((Y_off)/(double)72); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 96and4g1ndnop0onysx5zohv8 +// static char* canon (graph_t *g, char* s) +public static Object canon(Object... arg) { +UNSUPPORTED("b2eljuhn8sztgwuvk8cdgra33"); // static char* canon (graph_t *g, char* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6grmh3i7q3dnveytjypxz660c"); // char* ns = agstrdup (g, s); +UNSUPPORTED("1g4ujy6wgffnvmdyjrxe9w16n"); // char* cs = agcanonStr (ns); +UNSUPPORTED("7146wdsszjqtusr3eogc94t1k"); // agstrfree (g, ns); +UNSUPPORTED("cretu2n9zumqk83qpefveu0xm"); // return cs; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 erttiiytj1tj82ue7ewps4owz +// static void writenodeandport(FILE * f, node_t * node, char *port) +public static Object writenodeandport(Object... arg) { +UNSUPPORTED("19qgj5kq0g1bujwdmxqlqtdlf"); // static void writenodeandport(FILE * f, node_t * node, char *port) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8i0d7frxcvvmzhidle0zin9i0"); // char *name; +UNSUPPORTED("bmexy4wyucb3s61unxu1dv3rn"); // if ((ND_clustnode(node))) +UNSUPPORTED("ebfq6fe0pwr0nbcw74qy0bsss"); // name = canon (agraphof(node), strchr(agnameof(node), ':') + 1); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("3umgsilmw23rwau73f3rlsjib"); // name = agcanonStr (agnameof(node)); +UNSUPPORTED("d7ho98n42axo4lwhbros9kdm4"); // printstring(f, " ", name); /* slimey i know */ +UNSUPPORTED("aobyifp8chh1zjvcfesub92n2"); // if (port && *port) +UNSUPPORTED("9mjure2a47p3h1hulg3wn472r"); // printstring(f, ":", agcanonStr(port)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 548gbl5wlu8wpv6qrjjup6ti8 +// void write_plain(GVJ_t * job, graph_t * g, FILE * f, boolean extend) +public static Object write_plain(Object... arg) { +UNSUPPORTED("3yohfo4t24sd4qgzv5o9jkjm4"); // void write_plain(GVJ_t * job, graph_t * g, FILE * f, boolean extend) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3que9ebpwn6xzziq2r9kq8ej9"); // int i, j, splinePoints; +UNSUPPORTED("9spwl0nkgvqarpeweybacgonl"); // char *tport, *hport; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("37thdceezsvepe7tlyfatrbcw"); // bezier bz; +UNSUPPORTED("2e0v7u9pfngzg11mt4kn3oudg"); // pointf pt; +UNSUPPORTED("53spxurt3zrnwf6pj327788fv"); // char *lbl; +UNSUPPORTED("3o5wtshjp5pfng25jcteup81j"); // char* fillcolor; +UNSUPPORTED("130ux09wwwjsdsw49ki9wtf3n"); // putstr = g->clos->disc.io->putstr; +UNSUPPORTED("d11pm6hxnfq5bb4nemjm82p43"); // // setup_graph(job, g); +UNSUPPORTED("5k2g8l6h3qnzvhvq2dv1vn9sp"); // setYInvert(g); +UNSUPPORTED("8oq1mul1uckavj0ybvoq2z7qi"); // pt = GD_bb(g).UR; +UNSUPPORTED("5uqef2ramb4yi5rrnnaj4nmt"); // printdouble(f, "graph ", job->zoom); +UNSUPPORTED("406shi1bpvi8ou1c1xwbdr884"); // printdouble(f, " ", ((pt.x)/(double)72)); +UNSUPPORTED("5w5k71mnu6g98coxywamcfa8w"); // printdouble(f, " ", ((pt.y)/(double)72)); +UNSUPPORTED("86ub4gpyej70m2eadepsbjm4t"); // agputc('\n', f); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("asncxe57lbdnm0wz55z5gsfyj"); // if ((ND_clustnode(n))) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("6ozgckb41ca6in9yzfq0crm2n"); // printstring(f, "node ", agcanonStr(agnameof(n))); +UNSUPPORTED("ak0dknblcmy335eejoys3sed4"); // printpoint(f, ND_coord(n)); +UNSUPPORTED("24wnni5tzo854h07k5nvx5gol"); // if (ND_label(n)->html) /* if html, get original text */ +UNSUPPORTED("5v7xkqxikaisplm5ikh8r3nqt"); // lbl = agcanonStr (agxget(n, N_label)); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("4lp7ulk03cbfd74fntdhnjhwg"); // lbl = canon(agraphof(n),ND_label(n)->text); +UNSUPPORTED("3qq8s43vgjtmmqm2nhgw8ckkh"); // printdouble(f, " ", ND_width(n)); +UNSUPPORTED("1svrzqjfltl2z2zvq408sgp5i"); // printdouble(f, " ", ND_height(n)); +UNSUPPORTED("dh1tm9c3mtoa85b2jswjy232b"); // printstring(f, " ", lbl); +UNSUPPORTED("bbu711e99pf0awdc7walk1ash"); // printstring(f, " ", late_nnstring(n, N_style, "solid")); +UNSUPPORTED("juoayk4fo9jnav4twks4lvdq"); // printstring(f, " ", ND_shape(n)->name); +UNSUPPORTED("6vys4r600tnxruabjtc9ip8zc"); // printstring(f, " ", late_nnstring(n, N_color, "black")); +UNSUPPORTED("9tfl41t0hcme4402ao005o4iw"); // fillcolor = late_nnstring(n, N_fillcolor, ""); +UNSUPPORTED("8v7mu8czvxvalrzjt7rxk5wqt"); // if (fillcolor[0] == '\0') +UNSUPPORTED("18cs50exnxhaoxg4rcq419d97"); // fillcolor = late_nnstring(n, N_color, "lightgrey"); +UNSUPPORTED("1h3b7zm1rxpldq3b8yqiqymxm"); // printstring(f, " ", fillcolor); +UNSUPPORTED("542qodky9o008e1zwnwm02oqu"); // agputc('\n', f); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("58nzhwg3jqygtpq3rebmvyc74"); // if (extend) { //assuming these two attrs have already been created by cgraph +UNSUPPORTED("bdavy44dbcv1nyx41nbekylxj"); // if (!(tport = agget(e,"tailport"))) +UNSUPPORTED("5340j92gan9stk3ve1c8tyffl"); // tport = ""; +UNSUPPORTED("dui85dciz396tx1nm2tcenn8"); // if (!(hport = agget(e,"headport"))) +UNSUPPORTED("66s3ixxwgu8j8jwtftmlmibsz"); // hport = ""; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("6lz4jsb3wjydmerovhij4cm45"); // tport = hport = ""; +UNSUPPORTED("ciwbgm5llkn8yvebgo9ajni15"); // if (ED_spl(e)) { +UNSUPPORTED("1ym7rnjyps0joztbpork4cmr0"); // splinePoints = 0; +UNSUPPORTED("4ztb8xx60n4c30nzfp9xvzmi7"); // for (i = 0; i < ED_spl(e)->size; i++) { +UNSUPPORTED("5r589l7f0762txb9jmcsnc4jh"); // bz = ED_spl(e)->list[i]; +UNSUPPORTED("18zoydx6d28ahubjejtbowoay"); // splinePoints += bz.size; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("90igxdd8rew6udb0eyy1v09s4"); // printstring(f, NULL, "edge"); +UNSUPPORTED("arznc8bj79lvgeb1ia4cex1dx"); // writenodeandport(f, agtail(e), tport); +UNSUPPORTED("ddt8ixkkxnk5qtpv5quwjfn51"); // writenodeandport(f, aghead(e), hport); +UNSUPPORTED("1joybg6h6uyx9yt6bxl9x93t0"); // printint(f, " ", splinePoints); +UNSUPPORTED("4ztb8xx60n4c30nzfp9xvzmi7"); // for (i = 0; i < ED_spl(e)->size; i++) { +UNSUPPORTED("5r589l7f0762txb9jmcsnc4jh"); // bz = ED_spl(e)->list[i]; +UNSUPPORTED("a7ii1okn4acj9rrk02w1rtb5z"); // for (j = 0; j < bz.size; j++) +UNSUPPORTED("dpc36d8cbwevs4a5kq50i1lc5"); // printpoint(f, bz.list[j]); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8riu8zwrbqd66hl5vmy38w8wg"); // if (ED_label(e)) { +UNSUPPORTED("co3kc4ees6plaqoyba4tib1ip"); // printstring(f, " ", canon(agraphof(agtail(e)),ED_label(e)->text)); +UNSUPPORTED("5kqr2febrlj5731izptqm18dw"); // printpoint(f, ED_label(e)->pos); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6uv06ib11o1ih20o8ysxbxfi2"); // printstring(f, " ", late_nnstring(e, E_style, "solid")); +UNSUPPORTED("p1ltgy42ln94e7td5cvqrzx"); // printstring(f, " ", late_nnstring(e, E_color, "black")); +UNSUPPORTED("c0e150hwkub1iizmy6t6nhudh"); // agputc('\n', f); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c0wakh4sbgim9485buwdo1tl7"); // agputs("stop\n", f); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bd30kzlzww40ie6bgv51u6rk2 +// static void set_record_rects(node_t * n, field_t * f, agxbuf * xb) +public static Object set_record_rects(Object... arg) { +UNSUPPORTED("4fmlf7jouscb1i4dw9b8fjypg"); // static void set_record_rects(node_t * n, field_t * f, agxbuf * xb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("ke8k3zlei9bz4cmrgv0t1ehz"); // if (f->n_flds == 0) { +UNSUPPORTED("4qqwiqivbgrdzykqks6ne39uw"); // sprintf(buf, "%.5g,%.5g,%.5g,%.5g ", +UNSUPPORTED("efsdpymwdfstqkzpg0uig902a"); // f->b.LL.x + ND_coord(n).x, +UNSUPPORTED("6nvqcxczj7xtk46jnheoe3ugv"); // (Y_invert ? (Y_off - (f->b.LL.y + ND_coord(n).y)) : (f->b.LL.y + ND_coord(n).y)), +UNSUPPORTED("2tgp65u179umpruiu4k20wo19"); // f->b.UR.x + ND_coord(n).x, +UNSUPPORTED("34hwm9aoefcnkiey7t9s8x49g"); // (Y_invert ? (Y_off - (f->b.UR.y + ND_coord(n).y)) : (f->b.UR.y + ND_coord(n).y))); +UNSUPPORTED("9ydwa2m63t3zy7qefxyronhnl"); // agxbput(xb, buf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dnmh8bux7478sxj4ohw363vu8"); // for (i = 0; i < f->n_flds; i++) +UNSUPPORTED("e2ys5uqyitl4018cltkyggevy"); // set_record_rects(n, f->fld[i], xb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6y17ntp4jpt8vwwnlnjk268c3 +// static void rec_attach_bb(graph_t * g, Agsym_t* bbsym, Agsym_t* lpsym, Agsym_t* lwsym, Agsym_t* lhsym) +public static Object rec_attach_bb(Object... arg) { +UNSUPPORTED("bivwdl6eiggv4njxg1280ro7s"); // static void rec_attach_bb(graph_t * g, Agsym_t* bbsym, Agsym_t* lpsym, Agsym_t* lwsym, Agsym_t* lhsym) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("2e0v7u9pfngzg11mt4kn3oudg"); // pointf pt; +UNSUPPORTED("24lsaiss5p2l0eirgj2ai7xov"); // sprintf(buf, "%.5g,%.5g,%.5g,%.5g", GD_bb(g).LL.x, (Y_invert ? (Y_off - (GD_bb(g).LL.y)) : (GD_bb(g).LL.y)), +UNSUPPORTED("8lsgjczd21sic1jbmzpui8cli"); // GD_bb(g).UR.x, (Y_invert ? (Y_off - (GD_bb(g).UR.y)) : (GD_bb(g).UR.y))); +UNSUPPORTED("eny81csz71xjufztxhsg5a6vx"); // agxset(g, bbsym, buf); +UNSUPPORTED("2wg259ve9d8rmxrgc6a8qd062"); // if (GD_label(g) && GD_label(g)->text[0]) { +UNSUPPORTED("1m6bzr76atb9qs06n0g0bh7uc"); // pt = GD_label(g)->pos; +UNSUPPORTED("6ajni604em6ax0fnds16ut28y"); // sprintf(buf, "%.5g,%.5g", pt.x, (Y_invert ? (Y_off - (pt.y)) : (pt.y))); +UNSUPPORTED("5v5526f3x4jluohwqosaju0n7"); // agxset(g, lpsym, buf); +UNSUPPORTED("5d2mg3o3jiz34mw8gf7ghjtud"); // pt = GD_label(g)->dimen; +UNSUPPORTED("ebphmma02ajsj8c8y56220tc4"); // sprintf(buf, "%.2f", ((pt.x)/(double)72)); +UNSUPPORTED("7153in9qcbkx5yvss4ovz899p"); // agxset (g, lwsym, buf); +UNSUPPORTED("7xdpkqi3qd6pzfrxfpijuknae"); // sprintf(buf, "%.2f", ((pt.y)/(double)72)); +UNSUPPORTED("aljvhjz27jmi14eg7l9p5af9u"); // agxset (g, lhsym, buf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++) +UNSUPPORTED("dj0tj5vp5j7qurrz1bz75onyn"); // rec_attach_bb(GD_clust(g)[c], bbsym, lpsym, lwsym, lhsym); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9ja9vrwgmu7gq2ibxrroufg0i +// void attach_attrs_and_arrows(graph_t* g, int* sp, int* ep) +public static Object attach_attrs_and_arrows(Object... arg) { +UNSUPPORTED("dnwn7idv047g47auyd9t9tvuu"); // void attach_attrs_and_arrows(graph_t* g, int* sp, int* ep) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ejbijsranjcsnebzqxgyniqmz"); // int e_arrows; /* graph has edges with end arrows */ +UNSUPPORTED("d0xvc0uxedqt1upohbmcb1rxs"); // int s_arrows; /* graph has edges with start arrows */ +UNSUPPORTED("dur3qp0989unhastq7adb67mm"); // int i, j, sides; +UNSUPPORTED("8eqangdf1cya20k8l0pp5w6su"); // char buf[BUFSIZ]; /* Used only for small strings */ +UNSUPPORTED("budqh0fjozcvw16kcfx9sau4o"); // unsigned char xbuffer[BUFSIZ]; /* Initial buffer for xb */ +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("bz0wmxtnzgka3zfovkbr7eozh"); // pointf ptf; +UNSUPPORTED("bybp83bn7n2u6zbmxear1cz69"); // int dim3 = (GD_odim(g) >= 3); +UNSUPPORTED("5k8cu60h53vpsotqw8cw6umck"); // Agsym_t* bbsym; +UNSUPPORTED("bkbrhs9zyg2w478q8lbw7f0of"); // Agsym_t* lpsym; +UNSUPPORTED("eai0rzppsmlzofk8gj75egcsx"); // Agsym_t* lwsym; +UNSUPPORTED("c49j8t4h9n74p2h3imevghwgn"); // Agsym_t* lhsym; +UNSUPPORTED("98b2uqnwq3rgamma244bsbrt1"); // gv_fixLocale (1); +UNSUPPORTED("egwk53dbwqu1xswckndghrarj"); // e_arrows = s_arrows = 0; +UNSUPPORTED("5k2g8l6h3qnzvhvq2dv1vn9sp"); // setYInvert(g); +UNSUPPORTED("adti9zonvsoivju16of3xz2q1"); // agxbinit(&xb, BUFSIZ, xbuffer); +UNSUPPORTED("4ikmwcydxd882urz65fh3odpf"); // safe_dcl(g, AGNODE, "pos", ""); +UNSUPPORTED("1iwfu26cywaj02j8z5bso1glz"); // safe_dcl(g, AGNODE, "rects", ""); +UNSUPPORTED("78np9dkmdvqba2olja9z7q52s"); // N_width = safe_dcl(g, AGNODE, "width", ""); +UNSUPPORTED("781nwp1bndg5p2l0xhwogf1kv"); // N_height = safe_dcl(g, AGNODE, "height", ""); +UNSUPPORTED("1grqx09xno74g0wdhra79ri49"); // safe_dcl(g, AGEDGE, "pos", ""); +UNSUPPORTED("1z88oj214hkmshhtbjm9xb42b"); // if (GD_has_labels(g) & (1 << 4)) +UNSUPPORTED("dftebq916itbaiobbsm7in3b3"); // safe_dcl(g, AGNODE, "xlp", ""); +UNSUPPORTED("7d2dbjegkxavs980oua02l4ah"); // if (GD_has_labels(g) & (1 << 0)) +UNSUPPORTED("9y62hmnfjg8pzstf8cf4fakp0"); // safe_dcl(g, AGEDGE, "lp", ""); +UNSUPPORTED("aze047ifm9owcmyx71hsysdbc"); // if (GD_has_labels(g) & (1 << 5)) +UNSUPPORTED("1zxunscbrzj8wm46zil76zlwp"); // safe_dcl(g, AGEDGE, "xlp", ""); +UNSUPPORTED("9o41hpfnkkzxiqf6wmsulmacd"); // if (GD_has_labels(g) & (1 << 1)) +UNSUPPORTED("akcqnrmeblk7fqxx6s2kz8adq"); // safe_dcl(g, AGEDGE, "head_lp", ""); +UNSUPPORTED("cpnv97fkn07xq4zk0ujfs1ae5"); // if (GD_has_labels(g) & (1 << 2)) +UNSUPPORTED("e3ddjafxmc4ecqmfz1c1h8pv3"); // safe_dcl(g, AGEDGE, "tail_lp", ""); +UNSUPPORTED("3us71eou09pz1u9rz5m97f67t"); // if (GD_has_labels(g) & (1 << 3)) { +UNSUPPORTED("50y83cd8joo9jld4oec1oglt0"); // lpsym = safe_dcl(g, AGRAPH, "lp", ""); +UNSUPPORTED("bgud8t0dyysjpbmkgyi94zxec"); // lwsym = safe_dcl(g, AGRAPH, "lwidth", ""); +UNSUPPORTED("20crancrkqhzwdqrmfab94oqs"); // lhsym = safe_dcl(g, AGRAPH, "lheight", ""); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6jbkl41xrfn9w5ev89lpfg1pf"); // bbsym = safe_dcl(g, AGRAPH, "bb", ""); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("3rf6ovz8idsnou2upedl0ugl4"); // if (dim3) { +UNSUPPORTED("bgir6fgzucxltcpf123wxwa16"); // int k; +UNSUPPORTED("5xf6shry4shqq37eqql1o7w0j"); // sprintf(buf, "%.5g,%.5g,%.5g", ND_coord(n).x, (Y_invert ? (Y_off - (ND_coord(n).y)) : (ND_coord(n).y)), 72*(ND_pos(n)[2])); +UNSUPPORTED("6yihpqct3gh8dwu4mgetlg4hf"); // agxbput (&xb, buf); +UNSUPPORTED("1imggzivuz8js4ab1wrwl598j"); // for (k = 3; k < GD_odim(g); k++) { +UNSUPPORTED("5xfk3smfs37332xzr4zfie36z"); // sprintf(buf, ",%.5g", 72*(ND_pos(n)[k])); +UNSUPPORTED("4w8zs2s0ndr19sged28fehnw"); // agxbput (&xb, buf); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8nz5m2e5luayh47sthdw4jq7j"); // agset(n, "pos", (((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf))); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("brk9q6earum14zd1ygm3dqfyw"); // sprintf(buf, "%.5g,%.5g", ND_coord(n).x, (Y_invert ? (Y_off - (ND_coord(n).y)) : (ND_coord(n).y))); +UNSUPPORTED("bbvxas0gcanqusf356ij0hdvv"); // agset(n, "pos", buf); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6vtdv0hwpck48rye7jgri3tey"); // sprintf(buf, "%.5g", ((ND_ht(n))/(double)72)); +UNSUPPORTED("4xnatleaw6b1v9rrhz7k2s0x1"); // agxset(n, N_height, buf); +UNSUPPORTED("77f3vv1tid826v62dudsmsee3"); // sprintf(buf, "%.5g", ((ND_lw(n) + ND_rw(n))/(double)72)); +UNSUPPORTED("eyn81ub2dd36w000iwjiyrzrm"); // agxset(n, N_width, buf); +UNSUPPORTED("1nfehzcu9dg4m0zqniggw0myh"); // if (ND_xlabel(n) && ND_xlabel(n)->set) { +UNSUPPORTED("7ipswwekn8d70bxb6rug5y4hp"); // ptf = ND_xlabel(n)->pos; +UNSUPPORTED("exegykphdodrspivicojucpbx"); // sprintf(buf, "%.5g,%.5g", ptf.x, (Y_invert ? (Y_off - (ptf.y)) : (ptf.y))); +UNSUPPORTED("6zn9qfmyz9e7jg5cufudayxsc"); // agset(n, "xlp", buf); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("89kxkqxo5vgsnfp6dko6p6pog"); // if (strcmp(ND_shape(n)->name, "record") == 0) { +UNSUPPORTED("ejjebp83rjnqais1mqq9v944o"); // set_record_rects(n, ND_shape_info(n), &xb); +UNSUPPORTED("327ru6n1g104bv1jnlnil773m"); // agxbpop(&xb); /* get rid of last space */ +UNSUPPORTED("22w4oia21mibvk38zr3dfutl"); // agset(n, "rects", (((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf))); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("hxnnyu0oel8vd9mag9h7xmqr"); // polygon_t *poly; +UNSUPPORTED("a8amhiqvlp5s6vz8p4u2amapy"); // int i; +UNSUPPORTED("di0sjpsaryzeog9lls9lo103j"); // if (N_vertices && isPolygon(n)) { +UNSUPPORTED("1v0bedqdwts4r8i95bff8tjiw"); // poly = (polygon_t *) ND_shape_info(n); +UNSUPPORTED("78f4jae5n959qkejff8eqbt10"); // sides = poly->sides; +UNSUPPORTED("1ze2rhuc1ziuqtevmv36n7vg9"); // if (sides < 3) { +UNSUPPORTED("b2wk16e1kkfimvcygieesvsi4"); // char *p = agget(n, "samplepoints"); +UNSUPPORTED("7b41u5yplmu71fqi9va5filc3"); // if (p) +UNSUPPORTED("9h2cka87unr4odf1v9m3riq9v"); // sides = atoi(p); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("159b2xvx2h490z3tb5r4kje9y"); // sides = 8; +UNSUPPORTED("1nfexxm8zy4evpai9tvs8c29l"); // if (sides < 3) +UNSUPPORTED("159b2xvx2h490z3tb5r4kje9y"); // sides = 8; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d0kx8fo90t25wy56mlmoj0upk"); // for (i = 0; i < sides; i++) { +UNSUPPORTED("cb2w7wn5flzqkjy48yvxhf4i5"); // if (i > 0) +UNSUPPORTED("ewzkk0b8qrzmah4ugls1nfqc4"); // ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)' '))); +UNSUPPORTED("5zto6w00vkhhrctnf1e12kxzn"); // if (poly->sides >= 3) +UNSUPPORTED("c5pttvar58bq9ozx95isk3zun"); // sprintf(buf, "%.5g %.5g", +UNSUPPORTED("7nrde57g93yxd1fodhhr5dsa9"); // ((poly->vertices[i].x)/(double)72), +UNSUPPORTED("ezyj9fkj618u9xhabzvtqwnme"); // (Y_invert ? (YF_off - (((poly->vertices[i].y)/(double)72))) : (((poly->vertices[i].y)/(double)72)))); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("c5pttvar58bq9ozx95isk3zun"); // sprintf(buf, "%.5g %.5g", +UNSUPPORTED("92k6jkwawod7323cznpljnpr3"); // ND_width(n) / 2.0 * cos(i / (double) sides * M_PI * 2.0), +UNSUPPORTED("adbjbhrbctg9kcmql1lnvxs7x"); // (Y_invert ? (YF_off - (ND_height(n) / 2.0 * sin(i /(double) sides * M_PI * 2.0))) : (ND_height(n) / 2.0 * sin(i /(double) sides * M_PI * 2.0)))); +UNSUPPORTED("847q0ijh2jwoemzpqx3klzxya"); // agxbput(&xb, buf); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d0a4ljicq1ojcw1wkomut8ra3"); // agxset(n, N_vertices, (((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf))); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dq5fyvh8jd3qwgkppctvawmyz"); // if (State >= 1) { +UNSUPPORTED("7yvyv13me3s32qvq3gfbyt283"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("84ix82wd8yx6m7f33pv0dvvie"); // if (ED_edge_type(e) == 6) +UNSUPPORTED("2yi9az7ibt7j9bwztjilyo0v2"); // continue; +UNSUPPORTED("76eoblp6hmutlj66fdb7b2es5"); // if (ED_spl(e) == NULL) +UNSUPPORTED("8jvroo3mv0ny58gw5bxk345tu"); // continue; /* reported in postproc */ +UNSUPPORTED("4ztb8xx60n4c30nzfp9xvzmi7"); // for (i = 0; i < ED_spl(e)->size; i++) { +UNSUPPORTED("cb2w7wn5flzqkjy48yvxhf4i5"); // if (i > 0) +UNSUPPORTED("f4jr2zjbfcrfi2i7m4klvpw19"); // ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)';'))); +UNSUPPORTED("a4zikpd9ktj3rhtfgg7ur40h0"); // if (ED_spl(e)->list[i].sflag) { +UNSUPPORTED("70hchi65xabvumigsszopretx"); // s_arrows = 1; +UNSUPPORTED("7gl3coqupwm4eqee125qyj8ms"); // sprintf(buf, "s,%.5g,%.5g ", +UNSUPPORTED("5vd53qn2sgcgm7igurohj8dpb"); // ED_spl(e)->list[i].sp.x, +UNSUPPORTED("eyjso0d41ic749scoinp7q07f"); // (Y_invert ? (Y_off - (ED_spl(e)->list[i].sp.y)) : (ED_spl(e)->list[i].sp.y))); +UNSUPPORTED("cnxo8k6a1zwn0s8ej64ag7gqb"); // agxbput(&xb, buf); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("525ym2s1yq555hhu8ig5jifbt"); // if (ED_spl(e)->list[i].eflag) { +UNSUPPORTED("71ej0gajnah1tyqgc0ki81ef9"); // e_arrows = 1; +UNSUPPORTED("9ad3jmqcigh7o1fgcmnsl60xz"); // sprintf(buf, "e,%.5g,%.5g ", +UNSUPPORTED("107equizdxqqcykrel89pwnq7"); // ED_spl(e)->list[i].ep.x, +UNSUPPORTED("6d2ixeiy3c29vamcc7tacvs3q"); // (Y_invert ? (Y_off - (ED_spl(e)->list[i].ep.y)) : (ED_spl(e)->list[i].ep.y))); +UNSUPPORTED("cnxo8k6a1zwn0s8ej64ag7gqb"); // agxbput(&xb, buf); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("8apmnssx9axhnduv4rn7s925z"); // for (j = 0; j < ED_spl(e)->list[i].size; j++) { +UNSUPPORTED("ecu1j70aegy6iur2yzsftmopq"); // if (j > 0) +UNSUPPORTED("2r8deh8peb8qp7sbtrayoe9q6"); // ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)' '))); +UNSUPPORTED("mpf9z7gpsd10qo0ays0lnghj"); // ptf = ED_spl(e)->list[i].list[j]; +UNSUPPORTED("860g9wpq0occds1fws2qlhyf4"); // sprintf(buf, "%.5g,%.5g", ptf.x, (Y_invert ? (Y_off - (ptf.y)) : (ptf.y))); +UNSUPPORTED("cnxo8k6a1zwn0s8ej64ag7gqb"); // agxbput(&xb, buf); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("96y4g6ydvjlmvi0265z8mdcav"); // agset(e, "pos", (((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf))); +UNSUPPORTED("4s9k2d3zuxs0dor6s8h3gd6sj"); // if (ED_label(e)) { +UNSUPPORTED("cjay1b2t98rmvjxrg50ofzaux"); // ptf = ED_label(e)->pos; +UNSUPPORTED("2siw49n03h4pngznho2rjguds"); // sprintf(buf, "%.5g,%.5g", ptf.x, (Y_invert ? (Y_off - (ptf.y)) : (ptf.y))); +UNSUPPORTED("apqtb2u056i3lf8ej7kmn3pis"); // agset(e, "lp", buf); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("b5ek5jn2c08qdmj3g8ed1wlvt"); // if (ED_xlabel(e) && ED_xlabel(e)->set) { +UNSUPPORTED("32q9vbxljv1m2bcqs6hj2chos"); // ptf = ED_xlabel(e)->pos; +UNSUPPORTED("2siw49n03h4pngznho2rjguds"); // sprintf(buf, "%.5g,%.5g", ptf.x, (Y_invert ? (Y_off - (ptf.y)) : (ptf.y))); +UNSUPPORTED("5t3wfvr67hjnnnl7av3ydzfph"); // agset(e, "xlp", buf); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("8wb1kqodj9fqeq551yk3u8p09"); // if (ED_head_label(e)) { +UNSUPPORTED("ayetvnkbpknd8tbnnxn8epqyr"); // ptf = ED_head_label(e)->pos; +UNSUPPORTED("2siw49n03h4pngznho2rjguds"); // sprintf(buf, "%.5g,%.5g", ptf.x, (Y_invert ? (Y_off - (ptf.y)) : (ptf.y))); +UNSUPPORTED("5679klilm2npeej7dtn4dxnfs"); // agset(e, "head_lp", buf); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7uo1i3pejmbd3fy8lytwyn8ub"); // if (ED_tail_label(e)) { +UNSUPPORTED("9va9jaogd0l19cackxua13pob"); // ptf = ED_tail_label(e)->pos; +UNSUPPORTED("2siw49n03h4pngznho2rjguds"); // sprintf(buf, "%.5g,%.5g", ptf.x, (Y_invert ? (Y_off - (ptf.y)) : (ptf.y))); +UNSUPPORTED("2w6oh9jygs6jvv2vdda2jehpv"); // agset(e, "tail_lp", buf); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("apxmgxxwi65xd0ekyq3uq8jm7"); // rec_attach_bb(g, bbsym, lpsym, lwsym, lhsym); +UNSUPPORTED("1at5m9ctjn3ukv5gqtfswik02"); // agxbfree(&xb); +UNSUPPORTED("83ij4r5fzyhegi7bmu2gr8zut"); // if ((GD_flags(g) & 1)) +UNSUPPORTED("c0oytwtlqucfw4t4mx524912"); // undoClusterEdges(g); +UNSUPPORTED("a3kuneojcjx19vx76ucm594d1"); // *sp = s_arrows; +UNSUPPORTED("5hf7szhpgvj1w0auvkgf3v1c3"); // *ep = e_arrows; +UNSUPPORTED("bkwnwkliqxeb0zv9leq3mcdrx"); // gv_fixLocale (0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8vpe9ri22zhcgg6000ndr6ax2 +// void attach_attrs(graph_t * g) +public static Object attach_attrs(Object... arg) { +UNSUPPORTED("51i23bz4lg6vdwfy1gfo3i8ui"); // void attach_attrs(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5hko5pg9q9xxal26qceow3e3r"); // int e, s; +UNSUPPORTED("e0m1rbhl4fbpkkat4thb7fh3e"); // attach_attrs_and_arrows (g, &s, &e); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/pointset__c.java plantuml-8039/src/gen/lib/common/pointset__c.java --- plantuml-8024/src/gen/lib/common/pointset__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/pointset__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1018 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class pointset__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 6ddu6mrp88g3kun2w1gg8ck8t +// typedef Dict_t PointSet + + +//1 6t1gwljnc5qkhgkp9oc8y7lhm +// typedef Dict_t PointMap + + + + +//3 5u1whw7d6cpovx8f4xjmn3q6t +// static pair *mkPair(point p) +public static Object mkPair(Object... arg) { +UNSUPPORTED("8774qe16oxygrbtltm1w8cupy"); // static pair *mkPair(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("949qczzi45w42hb4lf3jx1dac"); // pair *pp; +UNSUPPORTED("1ijxfz8npazi18v9qr3bmsi26"); // pp = (pair*)zmalloc(sizeof(pair)); +UNSUPPORTED("c6161ivk5k6aom7cjh0vxhilw"); // pp->id = p; +UNSUPPORTED("7etsvryh248syh0l6ag8lcsi2"); // return pp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d62tsa65whwfps52l2x4w0gcb +// static void freePair(Dt_t * d, pair* pp, Dtdisc_t * disc) +public static Object freePair(Object... arg) { +UNSUPPORTED("eqa1cxq331w4xa024fugqiivr"); // static void freePair(Dt_t * d, pair* pp, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c67zoo5sy2bsk6yv6ge8pkiqd"); // free (pp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6yfilil8pl8qgowenug9tjamy +// static int cmppair(Dt_t * d, point * key1, point * key2, Dtdisc_t * disc) +public static Object cmppair(Object... arg) { +UNSUPPORTED("271uorrb28yvn44o8bok8s67k"); // static int cmppair(Dt_t * d, point * key1, point * key2, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("abkab041775ecn23z9ztbxe8"); // if (key1->x > key2->x) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("1od3mcl1r6qkz58queqlqsqpf"); // else if (key1->x < key2->x) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("9t8b67k30mtg92rtfjppxdiqp"); // else if (key1->y > key2->y) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("ez745dtgncmak5md2emlylbyf"); // else if (key1->y < key2->y) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 243qu49nd4znemfi9dovzqnnf +// static Dtdisc_t intPairDisc = + + + + +//3 9ocn9xjre9dbuxzr4rimpmdyu +// PointSet *newPS(void) +public static Object newPS(Object... arg) { +UNSUPPORTED("2ml9ujrnhdzca443cb0fyqi3a"); // PointSet *newPS(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4qfk5483zwj8sh8bd61gnkw90"); // return (dtopen(&intPairDisc, Dtoset)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 29w0qfptg5fcqe7pa9ysxxf24 +// void freePS(PointSet * ps) +public static Object freePS(Object... arg) { +UNSUPPORTED("71shzndr8ybq7rfcz3bynfzeo"); // void freePS(PointSet * ps) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2n41ueuz6jf5hzwovomkvnu9e"); // dtclose(ps); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 26czecxd19r4jts5801e0p3yc +// void insertPS(PointSet * ps, point pt) +public static Object insertPS(Object... arg) { +UNSUPPORTED("4kpo3ahry423trlfw0gnl85ci"); // void insertPS(PointSet * ps, point pt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5nz7va2hisdu765559aff39g1"); // (*(((Dt_t*)(ps))->searchf))((ps),(void*)(mkPair(pt)),0000001); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 51pe8vz30p5qyolmqe83g2qp4 +// void addPS(PointSet * ps, int x, int y) +public static Object addPS(Object... arg) { +UNSUPPORTED("22800higm8gm7pzqh3d7l1e2x"); // void addPS(PointSet * ps, int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("tkw5izt69wl0695g5qfi9sug"); // point pt; +UNSUPPORTED("4x5drjd0ygppv2k94igpp68s2"); // pt.x = x; +UNSUPPORTED("e8848u2pml7agv3q6uepcvysp"); // pt.y = y; +UNSUPPORTED("5nz7va2hisdu765559aff39g1"); // (*(((Dt_t*)(ps))->searchf))((ps),(void*)(mkPair(pt)),0000001); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9wqik179vnp2mvf748gomlz2e +// int inPS(PointSet * ps, point pt) +public static Object inPS(Object... arg) { +UNSUPPORTED("5hbcg2znnaj54e6noysf3bjkd"); // int inPS(PointSet * ps, point pt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1fnwnz6zqrixdpfmd5wf4hbj"); // pair p; +UNSUPPORTED("cfcpmjsvjh9kkbol5hagtik3w"); // p.id = pt; +UNSUPPORTED("5le2jlc1ullqn6yncxrgtjuzn"); // return (((*(((Dt_t*)(ps))->searchf))((ps),(void*)(&p),0000004)) ? 1 : 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 evzua6crsnsens9sqn79g9870 +// int isInPS(PointSet * ps, int x, int y) +public static Object isInPS(Object... arg) { +UNSUPPORTED("9y52o7s1azdpjw0ir8bdiwrbi"); // int isInPS(PointSet * ps, int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1fnwnz6zqrixdpfmd5wf4hbj"); // pair p; +UNSUPPORTED("52ncbg9utggt2faggxp64yv9b"); // p.id.x = x; +UNSUPPORTED("toamtyw5y1n24o6f8bhjebdy"); // p.id.y = y; +UNSUPPORTED("5le2jlc1ullqn6yncxrgtjuzn"); // return (((*(((Dt_t*)(ps))->searchf))((ps),(void*)(&p),0000004)) ? 1 : 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3ge6wmj43n8wltcu9mvdgbi8e +// int sizeOf(PointSet * ps) +public static Object sizeOf(Object... arg) { +UNSUPPORTED("2hufnw5gxr78twqy79iwbk5qi"); // int sizeOf(PointSet * ps) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("fud5wl6c5377lz88jk8tl6df"); // return dtsize(ps); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aeabbplwi8b2jltr3hvo2u8fb +// point *pointsOf(PointSet * ps) +public static Object pointsOf(Object... arg) { +UNSUPPORTED("5j2nt4yoll5o04ukqeothfm7e"); // point *pointsOf(PointSet * ps) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("xvfbbvpdrw2pj8y5iunrhdpx"); // int n = dtsize(ps); +UNSUPPORTED("66nhf1xm3n33tb1a1afyoiz72"); // point *pts = (point*)zmalloc((n)*sizeof(point)); +UNSUPPORTED("1mayx1pkq8tvo6q1tohbs7h0g"); // pair *p; +UNSUPPORTED("dgxbjvgw9qxehkxtda1tet15c"); // point *pp = pts; +UNSUPPORTED("bopn0x0e9kwopvngvt1ggj0bj"); // for (p = (pair *) dtflatten(ps); p; +UNSUPPORTED("cltw13cfus3lhfrqbub1nj9ww"); // p = (pair *) (((Dtlink_t*)((Dtlink_t *) p))->right)) { +UNSUPPORTED("es42e0byxv0h2addzvnno11dr"); // *pp++ = p->id; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b7gk8q1reftzri269holggnig"); // return pts; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2zdq8hmprgvlbkb09tw060z4j +// static mpair *mkMPair(Dt_t * d, mpair * obj, MPairDisc * disc) +public static Object mkMPair(Object... arg) { +UNSUPPORTED("8od4qepxjbrd0npy2p4n525sz"); // static mpair *mkMPair(Dt_t * d, mpair * obj, MPairDisc * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a7ax19rlpmk0gq5o135ekyj2v"); // mpair *ap; +UNSUPPORTED("8i0h2wv8nzchq7me2yzoi2rr5"); // if (disc->flist) { +UNSUPPORTED("871yli6br2bisjn57hntpk5yv"); // ap = disc->flist; +UNSUPPORTED("e0e4d714en0fts1w9blmyus01"); // disc->flist = (mpair *) (ap->link.right); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("8bghtazkctx5rd8x5dq7ct6kh"); // ap = (mpair*)gmalloc(sizeof(mpair)); +UNSUPPORTED("awhqwbhvta5lu28gdja4ksrif"); // ap->id = obj->id; +UNSUPPORTED("8yz7tznfa5mz9e10s49okhrqq"); // ap->v = obj->v; +UNSUPPORTED("b8cimfvcp1vea97hyfr4m9nix"); // return ap; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4acokeswbf1tb04pl4x0e7a2 +// static void freeMPair(Dt_t * d, mpair * ap, MPairDisc * disc) +public static Object freeMPair(Object... arg) { +UNSUPPORTED("234rcu0vknevmhn0uh86si0tf"); // static void freeMPair(Dt_t * d, mpair * ap, MPairDisc * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8f3y7fxkt4aacm3xtya6wj1qr"); // ap->link.right = (Dtlink_t *) (disc->flist); +UNSUPPORTED("8kjj5z628cqd2mpt0nfjhua8i"); // disc->flist = ap; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 clfs1fabh7ggsvjwcvqnajr0u +// static Dtdisc_t intMPairDisc = + + + + +//3 5j9qyf3v639puci6eatfrwzbf +// PointMap *newPM(void) +public static Object newPM(Object... arg) { +UNSUPPORTED("55sisdyi5acf47jzlgf66tpl3"); // PointMap *newPM(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ph32cws293ik0oys5o4ueitl"); // MPairDisc *dp = (MPairDisc*)gmalloc(sizeof(MPairDisc)); +UNSUPPORTED("cfbg00sb8qjccviqalrgp0k65"); // dp->disc = intMPairDisc; +UNSUPPORTED("90um1p64u4fyns1gneihfsdq2"); // dp->flist = 0; +UNSUPPORTED("7uvu2bzpmwxljh7nt92ruvcol"); // return (dtopen(&(dp->disc), Dtoset)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dv0ah723569ocd3e8mnooplao +// void clearPM(PointMap * ps) +public static Object clearPM(Object... arg) { +UNSUPPORTED("2r2uzvpk2gdjomc1z43diai2d"); // void clearPM(PointMap * ps) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dllfzfavloye8gtk0xaf8dkeo"); // (*(((Dt_t*)(ps))->searchf))((ps),(void*)(0),0000100); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5yylsqhjsyk8492nxg8eobgti +// void freePM(PointMap * ps) +public static Object freePM(Object... arg) { +UNSUPPORTED("3d86luffldotezrdyszgzw3l7"); // void freePM(PointMap * ps) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6oeyeh6rkvtb5yfmicbm755jy"); // MPairDisc *dp = (MPairDisc *) (ps->disc); +UNSUPPORTED("176wj0v35v3l53swpcwby8zuu"); // mpair *p; +UNSUPPORTED("9u5hxm3hr0dfus7fhehuqdp2f"); // mpair *next; +UNSUPPORTED("2n41ueuz6jf5hzwovomkvnu9e"); // dtclose(ps); +UNSUPPORTED("dsb15bo7g6d9d1e8fhj2mur10"); // for (p = dp->flist; p; p = next) { +UNSUPPORTED("df45pyg1n8tee551mx3v6677q"); // next = (mpair *) (p->link.right); +UNSUPPORTED("cy5x5dma0v4hiepir7lrfuo17"); // free(p); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("78g8evdxoh4d3gncvp2jcafxm"); // free(dp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6g6s614i42e0o2y63uuxg1eti +// int updatePM(PointMap * pm, int x, int y, int v) +public static Object updatePM(Object... arg) { +UNSUPPORTED("wqd0pwasc8h44kp424gjsy0l"); // int updatePM(PointMap * pm, int x, int y, int v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("176wj0v35v3l53swpcwby8zuu"); // mpair *p; +UNSUPPORTED("1p95im01jnitld3s790sv5fnx"); // mpair dummy; +UNSUPPORTED("aqvur770zqpckwsqkcelmntsw"); // int old; +UNSUPPORTED("12hvr7ilrqa35kjntuwgshfnx"); // dummy.id.x = x; +UNSUPPORTED("1nursujxr7qsg0kgumb48rv91"); // dummy.id.y = y; +UNSUPPORTED("lrm57wmjqy47ubrh2aaj8zyj"); // dummy.v = v; +UNSUPPORTED("2v0q67ylfpp0lz69ee8po35uh"); // p = (*(((Dt_t*)(pm))->searchf))((pm),(void*)(&dummy),0000001); +UNSUPPORTED("2cvqyi58pru3tbg96x36qrw6u"); // old = p->v; +UNSUPPORTED("5eou6l5nll8srjedmdlpnyxk6"); // p->v = v; +UNSUPPORTED("1h4i0djjoipq1eaw0s2g163jp"); // return old; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 edyucrjzf4bhg6ob6rbj6omrk +// int insertPM(PointMap * pm, int x, int y, int v) +public static Object insertPM(Object... arg) { +UNSUPPORTED("27rtedlaes5upd9o92eg8lsx6"); // int insertPM(PointMap * pm, int x, int y, int v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("176wj0v35v3l53swpcwby8zuu"); // mpair *p; +UNSUPPORTED("1p95im01jnitld3s790sv5fnx"); // mpair dummy; +UNSUPPORTED("12hvr7ilrqa35kjntuwgshfnx"); // dummy.id.x = x; +UNSUPPORTED("1nursujxr7qsg0kgumb48rv91"); // dummy.id.y = y; +UNSUPPORTED("lrm57wmjqy47ubrh2aaj8zyj"); // dummy.v = v; +UNSUPPORTED("2v0q67ylfpp0lz69ee8po35uh"); // p = (*(((Dt_t*)(pm))->searchf))((pm),(void*)(&dummy),0000001); +UNSUPPORTED("1qvo8bdep1ocakhfxstvnkdmy"); // return p->v; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/postproc__c.java plantuml-8039/src/gen/lib/common/postproc__c.java --- plantuml-8024/src/gen/lib/common/postproc__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/postproc__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1508 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static gen.lib.cgraph.edge__c.agfstout; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agnxtout; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.id__c.agnameof; +import static gen.lib.cgraph.node__c.agfstnode; +import static gen.lib.cgraph.node__c.agnxtnode; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.common.geom__c.ccwrotatepf; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ED_edge_type; +import static smetana.core.Macro.ED_head_label; +import static smetana.core.Macro.ED_label; +import static smetana.core.Macro.ED_spl; +import static smetana.core.Macro.ED_tail_label; +import static smetana.core.Macro.ED_xlabel; +import static smetana.core.Macro.GD_bb; +import static smetana.core.Macro.GD_border; +import static smetana.core.Macro.GD_clust; +import static smetana.core.Macro.GD_flags; +import static smetana.core.Macro.GD_flip; +import static smetana.core.Macro.GD_has_labels; +import static smetana.core.Macro.GD_label; +import static smetana.core.Macro.GD_label_pos; +import static smetana.core.Macro.GD_n_cluster; +import static smetana.core.Macro.GD_rankdir; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_coord; +import static smetana.core.Macro.ND_xlabel; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.Agsym_s; +import h.bezier; +import h.boxf; +import h.label_params_t; +import h.object_t; +import h.pointf; +import h.textlabel_t; +import h.xlabel_t; +import smetana.core.Z; +import smetana.core.__struct__; + +public class postproc__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 1b0s7t28jl5ftrxccb8fsopp4 +// static int Rankdir +//private static int Rankdir; + +//1 3oo1lt5jtd6kuqjr6qqlnkutt +// static boolean Flip +//private static boolean Flip; + +//1 ejooa1m5uoq0ue852wtuerpy +// static pointf Offset +//private final static __struct__ Offset = __struct__.from(pointf.class); + + + +//3 dajapw16wus3rwimkrk5ihi2b +// static pointf map_point(pointf p) +public static __struct__ map_point(final __struct__ p) { +// WARNING!! STRUCT +return map_point_w_(p.copy()).copy(); +} +private static __struct__ map_point_w_(final __struct__ p) { +ENTERING("dajapw16wus3rwimkrk5ihi2b","map_point"); +try { + p.____(ccwrotatepf(p, Z._().Rankdir * 90)); + p.setDouble("x", p.getDouble("x") - Z._().Offset.getDouble("x")); + p.setDouble("y", p.getDouble("y") - Z._().Offset.getDouble("y")); + return p; +} finally { +LEAVING("dajapw16wus3rwimkrk5ihi2b","map_point"); +} +} + + + + +//3 bvq3vvonvotn47mfe5zsvchie +// static void map_edge(edge_t * e) +public static void map_edge(Agedge_s e) { +ENTERING("bvq3vvonvotn47mfe5zsvchie","map_edge"); +try { + int j, k; + final __struct__ bz = __struct__.from(bezier.class); + if (ED_spl(e) == null) { + if ((Z._().Concentrate == false) && (ED_edge_type(e) != 6)) + System.err.println("lost %s %s edge\n"+ agnameof(agtail(e))+ + agnameof(aghead(e))); + return; + } + for (j = 0; j < ED_spl(e).getInt("size"); j++) { + bz.____(ED_spl(e).getArrayOfPtr("list").plus(j).getStruct()); + for (k = 0; k < bz.getInt("size"); k++) { + bz.getArrayOfPtr("list").plus(k).setStruct(map_point(bz.getArrayOfPtr("list").plus(k).getStruct())); + } + if (bz.getBoolean("sflag")) +UNSUPPORTED("7894dgzvk2um2w1a5ph2r0bcc"); // ED_spl(e)->list[j].sp = map_point(ED_spl(e)->list[j].sp); + if (bz.getBoolean("eflag")) { + ED_spl(e).getArrayOfPtr("list").plus(j).getStruct("ep").____(map_point(ED_spl(e).getArrayOfPtr("list").plus(j).getStruct("ep"))); + } + } + if (ED_label(e)!=null) + ED_label(e).getStruct("pos").____(map_point(ED_label(e).getStruct("pos"))); + if (ED_xlabel(e)!=null) +UNSUPPORTED("al3tnq9zjjqeq1ll7qdxyu3ja"); // ED_xlabel(e)->pos = map_point(ED_xlabel(e)->pos); + /* vladimir */ + if (ED_head_label(e)!=null) +UNSUPPORTED("6ntujaf13k6emf6cuf7ox8ath"); // ED_head_label(e)->pos = map_point(ED_head_label(e)->pos); + if (ED_tail_label(e)!=null) +UNSUPPORTED("2is3ug7jbugrkl9bu6nfnz2lt"); // ED_tail_label(e)->pos = map_point(ED_tail_label(e)->pos); +} finally { +LEAVING("bvq3vvonvotn47mfe5zsvchie","map_edge"); +} +} + + + + +//3 a3hf82rxsojxbunj6p8a6bkse +// void translate_bb(graph_t * g, int rankdir) +public static void translate_bb(Agraph_s g, int rankdir) { +ENTERING("a3hf82rxsojxbunj6p8a6bkse","translate_bb"); +try { + int c; + final __struct__ bb = __struct__.from(boxf.class), new_bb = __struct__.from(boxf.class); + bb.____(GD_bb(g)); + if (rankdir == 1 || rankdir == 2) { +UNSUPPORTED("d4wrtj0h7lkb0e0vernd9czq9"); // new_bb.LL = map_point(pointfof(bb.LL.x, bb.UR.y)); +UNSUPPORTED("crysiae5zxc69cj3v2ygfs8xn"); // new_bb.UR = map_point(pointfof(bb.UR.x, bb.LL.y)); + } else { + new_bb.getStruct("LL").____(map_point(pointfof(bb.getStruct("LL").getDouble("x"), bb.getStruct("LL").getDouble("y")))); + new_bb.getStruct("UR").____(map_point(pointfof(bb.getStruct("UR").getDouble("x"), bb.getStruct("UR").getDouble("y")))); + } + GD_bb(g).____(new_bb); + if (GD_label(g)!=null) { + GD_label(g).setStruct("pos", map_point(GD_label(g).getStruct("pos"))); + } + for (c = 1; c <= GD_n_cluster(g); c++) + translate_bb((Agraph_s) GD_clust(g).plus(c).getPtr(), rankdir); +} finally { +LEAVING("a3hf82rxsojxbunj6p8a6bkse","translate_bb"); +} +} + + + + +//3 h4i5qxnd7hlrew919abswd13 +// static void translate_drawing(graph_t * g) +public static void translate_drawing(Agraph_s g) { +ENTERING("h4i5qxnd7hlrew919abswd13","translate_drawing"); +try { + Agnode_s v; + Agedge_s e; + boolean shift = (Z._().Offset.getDouble("x")!=0.0 || Z._().Offset.getDouble("y")!=0.0); + if (N(shift) && N(Z._().Rankdir)) + return; + for (v = agfstnode(g); v!=null; v = agnxtnode(g, v)) { + if (Z._().Rankdir!=0) +UNSUPPORTED("e0j848r4j1j7sojfht5gwikvi"); // gv_nodesize(v, 0); + ND_coord(v).____(map_point(ND_coord(v))); + if (ND_xlabel(v)!=null) +UNSUPPORTED("3fy0l7w2v24hzrvlpstpknwl7"); // ND_xlabel(v)->pos = map_point(ND_xlabel(v)->pos); + if (Z._().State == 1) + for (e = agfstout(g, v); e!=null; e = agnxtout(g, e)) + map_edge(e); + } + translate_bb(g, GD_rankdir(g)); +} finally { +LEAVING("h4i5qxnd7hlrew919abswd13","translate_drawing"); +} +} + + + + +//3 52s5qfdn5zxeyuodfq8tgxwaa +// static void place_root_label(graph_t * g, pointf d) +public static Object place_root_label(Object... arg) { +UNSUPPORTED("8m0j9ogp2h20aphxjuxn7copg"); // static void place_root_label(graph_t * g, pointf d) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("2gqofhemdqlul2pxjvuyly8gr"); // if (GD_label_pos(g) & 4) { +UNSUPPORTED("5y20n2wgxe7hnzxnkg9144bhl"); // p.x = GD_bb(g).UR.x - d.x / 2; +UNSUPPORTED("2892hrfudeikl7o70w4nofhny"); // } else if (GD_label_pos(g) & 2) { +UNSUPPORTED("2wafl9f5ytdr13m270aknhkub"); // p.x = GD_bb(g).LL.x + d.x / 2; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("aktxwmc3uefegw0cs334i9dw8"); // p.x = (GD_bb(g).LL.x + GD_bb(g).UR.x) / 2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dpev8t1rdycpdnwjscmowsvaf"); // if (GD_label_pos(g) & 1) { +UNSUPPORTED("1d6n5uhjoy1y3mfj3ddrdt6rc"); // p.y = GD_bb(g).UR.y - d.y / 2; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("d6z40q4ju0vq45te2z2prcsua"); // p.y = GD_bb(g).LL.y + d.y / 2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dgs75zvkk4komxfg61cia1t82"); // GD_label(g)->pos = p; +UNSUPPORTED("8dkewv20cdne73egfv2tn37lb"); // GD_label(g)->set = NOT(0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2i713kmewjct2igf3lwm80462 +// static pointf centerPt (xlabel_t* xlp) +public static Object centerPt(Object... arg) { +UNSUPPORTED("2zzd7mrm2u540dwuyzehozffj"); // static pointf +UNSUPPORTED("1pd2hqj3zbktacr9dt2vdvkgr"); // centerPt (xlabel_t* xlp) { +UNSUPPORTED("3f7r93jimpwvyc6atnkppttgl"); // pointf p; +UNSUPPORTED("6jtpe3khjpc9oogxx6kerapem"); // p = xlp->pos; +UNSUPPORTED("7rsewd63gsf3h9d5aj5v7x66c"); // p.x += (xlp->sz.x)/2.0; +UNSUPPORTED("3c70xgshcb3nvyi64kr041yjz"); // p.y += (xlp->sz.y)/2.0; +UNSUPPORTED("bft6601q2uop0mu5y59jg4c81"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2ozwtuocg4cz5ghqemmche3vt +// static int printData (object_t* objs, int n_objs, xlabel_t* lbls, int n_lbls, label_params_t* params) +public static Object printData(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("ckiu0galpa1852h3cty8ba6r7"); // printData (object_t* objs, int n_objs, xlabel_t* lbls, int n_lbls, +UNSUPPORTED("dzs60ka6anviw625w47fdcq2z"); // label_params_t* params) { +UNSUPPORTED("327a0i7b6rqjqj8wdl0h29mnc"); // int i; +UNSUPPORTED("2v2z0ng0lije7nd5xnnwpvhsk"); // xlabel_t* xp; +UNSUPPORTED("8b4vu28i0jzto8xj8y5xidmfi"); // fprintf (stderr, "%d objs %d xlabels force=%d bb=(%.02f,%.02f) (%.02f,%.02f)\n", +UNSUPPORTED("4brfvoc74eb0wrjbv0jim84br"); // n_objs, n_lbls, params->force, params->bb.LL.x, params->bb.LL.y, +UNSUPPORTED("bg9iybxqjpzhrq7ake4qd022a"); // params->bb.UR.x, params->bb.UR.y); +UNSUPPORTED("cqr6z8w761iogdatyx6tujxrj"); // if (Verbose < 2) return 0; +UNSUPPORTED("3k661zowi8f52at88thx4gq3c"); // fprintf(stderr, "objects\n"); +UNSUPPORTED("a0du2scf7lcyviw12x1mpntj5"); // for (i = 0; i < n_objs; i++) { +UNSUPPORTED("7ljpm4lk7dhgz8jneyiurqcqj"); // xp = objs->lbl; +UNSUPPORTED("6synbitl0b8qre39c8hfx9ji7"); // fprintf (stderr, " [%d] (%.02f,%.02f) (%.02f,%.02f) %p \"%s\"\n", +UNSUPPORTED("5fncs0x8f05ep5nr4lds4lyfi"); // i, objs->pos.x,objs->pos.y,objs->sz.x,objs->sz.y, objs->lbl, +UNSUPPORTED("csy4r7zdyqrnbp3yvfpm66w59"); // (xp?((textlabel_t*)(xp->lbl))->text:"")); +UNSUPPORTED("bd3gftycfqozopsoe1ptqueov"); // objs++; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("2kq3xkqpgi5kr4141ab3bukkd"); // fprintf(stderr, "xlabels\n"); +UNSUPPORTED("9dzxzlqrz9th6wohjjvd93rtd"); // for (i = 0; i < n_lbls; i++) { +UNSUPPORTED("6e093u52b50denwzlx0m7a36a"); // fprintf (stderr, " [%d] %p set %d (%.02f,%.02f) (%.02f,%.02f) %s\n", +UNSUPPORTED("bb908gbwccyotc72hfeopef2e"); // i, lbls, lbls->set, lbls->pos.x,lbls->pos.y, lbls->sz.x,lbls->sz.y, ((textlabel_t*)lbls->lbl)->text); +UNSUPPORTED("30hn2ulrrh2sxlt3rd89e1nja"); // lbls++; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("bid671dovx1rdiquw5vm3fttj"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 95pnpuiq4khinrz2bqkci9nfg +// static pointf edgeTailpoint (Agedge_t* e) +public static Object edgeTailpoint(Object... arg) { +UNSUPPORTED("2zzd7mrm2u540dwuyzehozffj"); // static pointf +UNSUPPORTED("b5i1gh69zn27sn9j8kpmvtbeb"); // edgeTailpoint (Agedge_t* e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6tl9mepc2bett364jduh2q4mf"); // splines *spl; +UNSUPPORTED("3hs99atzl1l857khumt6ycmbh"); // bezier *bez; +UNSUPPORTED("26m18ntdxgq9wp5vlh2x7auh5"); // if ((spl = getsplinepoints(e)) == NULL) { +UNSUPPORTED("9wdrv4uc4c7ssn0qpmxgz5eu1"); // pointf p; +UNSUPPORTED("ezy0ey6dn5uqp6peuorn615x6"); // p.x = p.y = 0; +UNSUPPORTED("68kasxgknec72r19lohbk6n3q"); // return p; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4djdvk87infum4r43tuhnm5mp"); // bez = &spl->list[0]; +UNSUPPORTED("45rq0m21hutb3z6f4npw7ke9f"); // if (bez->sflag) { +UNSUPPORTED("9ttezx014gi1oy9xopnihsnac"); // return bez->sp; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("c00cyqleu301qclgim7szyf7"); // return bez->list[0]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 av67wf2xi70ncgl90j1ttrjjs +// static pointf edgeHeadpoint (Agedge_t* e) +public static Object edgeHeadpoint(Object... arg) { +UNSUPPORTED("2zzd7mrm2u540dwuyzehozffj"); // static pointf +UNSUPPORTED("ckf4uk77aptax4a60w2nhrdzl"); // edgeHeadpoint (Agedge_t* e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6tl9mepc2bett364jduh2q4mf"); // splines *spl; +UNSUPPORTED("3hs99atzl1l857khumt6ycmbh"); // bezier *bez; +UNSUPPORTED("26m18ntdxgq9wp5vlh2x7auh5"); // if ((spl = getsplinepoints(e)) == NULL) { +UNSUPPORTED("9wdrv4uc4c7ssn0qpmxgz5eu1"); // pointf p; +UNSUPPORTED("ezy0ey6dn5uqp6peuorn615x6"); // p.x = p.y = 0; +UNSUPPORTED("68kasxgknec72r19lohbk6n3q"); // return p; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("mjw3aaq1rghmemky1iymklp4"); // bez = &spl->list[spl->size - 1]; +UNSUPPORTED("5g1i4pbq9il9iba3urs6bxfa0"); // if (bez->eflag) { +UNSUPPORTED("5vt6gwb8d8689fuwqbt5uhb12"); // return bez->ep; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("6qzm0hh4pxrspfbvxearcz9z8"); // return bez->list[bez->size - 1]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1ca6fh8ns5bgzfzcz8al4eh4k +// static boxf adjustBB (object_t* objp, boxf bb) +public static Object adjustBB(Object... arg) { +UNSUPPORTED("d5qt6s97burjfu5qe0oxyyrmr"); // static boxf +UNSUPPORTED("2gtud943baz3kfj1vqqhjeaj4"); // adjustBB (object_t* objp, boxf bb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1ilrhzyqh05f2u3j3vzg0ys8u"); // pointf ur; +UNSUPPORTED("a4qac74i3mtrli231q9zmy8pn"); // /* Adjust bounding box */ +UNSUPPORTED("cgmwicrpoafwh8qt3zob8r2ye"); // bb.LL.x = MIN(bb.LL.x, objp->pos.x); +UNSUPPORTED("dqb32jehkpiyfzbiwusv0ex1n"); // bb.LL.y = MIN(bb.LL.y, objp->pos.y); +UNSUPPORTED("coywjj9bhu737b59inwiumkbc"); // ur.x = objp->pos.x + objp->sz.x; +UNSUPPORTED("4zg7x4gv3ox92n323b2vzaq32"); // ur.y = objp->pos.y + objp->sz.y; +UNSUPPORTED("p351si3o2tnvdcb1o5i8et1b"); // bb.UR.x = MAX(bb.UR.x, ur.x); +UNSUPPORTED("4a11bd6b7vdmcwc7r71y9k37z"); // bb.UR.y = MAX(bb.UR.y, ur.y); +UNSUPPORTED("5v5hh30squmit8o2i5hs25eig"); // return bb; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3mefe722uemyoa0czmkkw6hjb +// static void addXLabel (textlabel_t* lp, object_t* objp, xlabel_t* xlp, int initObj, pointf pos) +public static Object addXLabel(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("as13cbda9pe3uxi34emdcyw49"); // addXLabel (textlabel_t* lp, object_t* objp, xlabel_t* xlp, int initObj, pointf pos) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("47i4tbdfy05npmfnxoa2ljezv"); // if (initObj) { +UNSUPPORTED("4brnnjtxt9czl9vlvf1hi62hq"); // objp->sz.x = 0; +UNSUPPORTED("8vps14u07wyyud2ryypqvjgog"); // objp->sz.y = 0; +UNSUPPORTED("eiw9ykn654ml54rs1bw0lf55b"); // objp->pos = pos; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7e3xcf5dxjm2knry7yygcx3zv"); // if (Flip) { +UNSUPPORTED("99tzt7erbvtfsbo0jbdz0lc8m"); // xlp->sz.x = lp->dimen.y; +UNSUPPORTED("6v5t3ysaisj27bwc0r9zg3rpd"); // xlp->sz.y = lp->dimen.x; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("3fr3ccpgshd8wywufcfat4rf5"); // xlp->sz = lp->dimen; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("jd8wxj8hvqwupmayd743a386"); // xlp->lbl = lp; +UNSUPPORTED("1z3b8kb1emm8lvcqvu8sm8r7j"); // xlp->set = 0; +UNSUPPORTED("a1r2pwxgnrpltol41p04axtld"); // objp->lbl = xlp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dwxd5kvlanbcxqfuncjg0ea54 +// static boxf addLabelObj (textlabel_t* lp, object_t* objp, boxf bb) +public static Object addLabelObj(Object... arg) { +UNSUPPORTED("d5qt6s97burjfu5qe0oxyyrmr"); // static boxf +UNSUPPORTED("9yg6tco97jfdkxvya77inw8xx"); // addLabelObj (textlabel_t* lp, object_t* objp, boxf bb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7e3xcf5dxjm2knry7yygcx3zv"); // if (Flip) { +UNSUPPORTED("6z2yrwq81gtsk3q9c5pofow1x"); // objp->sz.x = lp->dimen.y; +UNSUPPORTED("8xsm9kavrekjrsydqe1wh1pu"); // objp->sz.y = lp->dimen.x; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("40zw1ce6j4iw8dzvp9musrk6g"); // objp->sz.x = lp->dimen.x; +UNSUPPORTED("3kmv74u3ihq63ptaixci1tlt5"); // objp->sz.y = lp->dimen.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ekb3vmkpcdegpnlbuvebyijm8"); // objp->pos = lp->pos; +UNSUPPORTED("6c49iw60twquhten0558iva1c"); // objp->pos.x -= (objp->sz.x) / 2.0; +UNSUPPORTED("alrfakfz0nqemd3xl3m9q2gm4"); // objp->pos.y -= (objp->sz.y) / 2.0; +UNSUPPORTED("5r3oym45e21gwxn3nsjucxlbi"); // return adjustBB(objp, bb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b8tjygxnwny5qoiir1mha1d62 +// static boxf addNodeObj (node_t* np, object_t* objp, boxf bb) +public static Object addNodeObj(Object... arg) { +UNSUPPORTED("d5qt6s97burjfu5qe0oxyyrmr"); // static boxf +UNSUPPORTED("cdh6qqtv45t605q7je7xomi2j"); // addNodeObj (node_t* np, object_t* objp, boxf bb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7e3xcf5dxjm2knry7yygcx3zv"); // if (Flip) { +UNSUPPORTED("1ri5uimcd1z58iix8tp528l1m"); // objp->sz.x = ((ND_height(np))*(double)72); +UNSUPPORTED("6r5gwwhz3sjxrssh8yo3v5c3v"); // objp->sz.y = ((ND_width(np))*(double)72); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("6cuxjl9g4nxwyz58c201qdb94"); // objp->sz.x = ((ND_width(np))*(double)72); +UNSUPPORTED("e3zk2j9kbexxv2xbsgu3pser6"); // objp->sz.y = ((ND_height(np))*(double)72); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d6gkdf4gkfagwtb6mkhxxvqrc"); // objp->pos = ND_coord(np); +UNSUPPORTED("6c49iw60twquhten0558iva1c"); // objp->pos.x -= (objp->sz.x) / 2.0; +UNSUPPORTED("alrfakfz0nqemd3xl3m9q2gm4"); // objp->pos.y -= (objp->sz.y) / 2.0; +UNSUPPORTED("5r3oym45e21gwxn3nsjucxlbi"); // return adjustBB(objp, bb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6kx3lin2ig9o2otk2bqzdvd4t +// static cinfo_t addClusterObj (Agraph_t* g, cinfo_t info) +public static Object addClusterObj(Object... arg) { +UNSUPPORTED("91ncv8p43nko0ygysclvv77j"); // static cinfo_t +UNSUPPORTED("bmfjbc1td1mizemu2aa81cyli"); // addClusterObj (Agraph_t* g, cinfo_t info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++) +UNSUPPORTED("6o81thi0rqvkah0s4zkn2fcg4"); // info = addClusterObj (GD_clust(g)[c], info); +UNSUPPORTED("1ke0hve63v76yb4shi7jfrp6x"); // if ((g != agroot(g)) && (GD_label(g)) && GD_label(g)->set) { +UNSUPPORTED("dcgq2zlh4t0m1gno12t6h7ouy"); // object_t* objp = info.objp; +UNSUPPORTED("ddz79zm5235krd6smukq1gza0"); // info.bb = addLabelObj (GD_label(g), objp, info.bb); +UNSUPPORTED("be25qc3x3muxo4l87ji01t3kd"); // info.objp++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9kt6o7m6t7fgdh41zfez84fmv"); // return info; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2tdbzvdtkwxp75kj0iufsynm5 +// static int countClusterLabels (Agraph_t* g) +public static Object countClusterLabels(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("6o4fsu24jc0ezulf31fsi9bce"); // countClusterLabels (Agraph_t* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2q4dlnxpy4lj011whzcbyq3xj"); // int c, i = 0; +UNSUPPORTED("68odyos1g0n4tbs7c77r0f9wn"); // if ((g != agroot(g)) && (GD_label(g)) && GD_label(g)->set) +UNSUPPORTED("chd2f5z6rt19lbaye25ej7q6j"); // i++; +UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++) +UNSUPPORTED("adgz5sd2oklf51or5uq3wduuz"); // i += countClusterLabels (GD_clust(g)[c]); +UNSUPPORTED("ahwo5hst5k1gyq20ve63ahe81"); // return i; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d4215jd9wukfn6t0iknwzjcof +// static void addXLabels(Agraph_t * gp) +public static void addXLabels(Agraph_s gp) { +ENTERING("d4215jd9wukfn6t0iknwzjcof","addXLabels"); +try { + Agnode_s np; + Agedge_s ep; + int cnt, i, n_objs, n_lbls; + int n_nlbls = 0; /* # of unset node xlabels */ + int n_elbls = 0; /* # of unset edge labels or xlabels */ + int n_set_lbls = 0; /* # of set xlabels and edge labels */ + int n_clbls = 0; /* # of set cluster labels */ + final __struct__ bb = __struct__.from(boxf.class); + final __struct__ ur = __struct__.from(pointf.class); + textlabel_t lp; + final __struct__ params = __struct__.from(label_params_t.class); + object_t objs; + xlabel_t lbls; + object_t objp; + xlabel_t xlp; + Agsym_s force; + int et = (GD_flags(gp) & (7 << 1)); + if (N(GD_has_labels(gp) & (1 << 4)) && + N(GD_has_labels(gp) & (1 << 5)) && + N(GD_has_labels(gp) & (1 << 2)) && + N(GD_has_labels(gp) & (1 << 1)) && + (N(GD_has_labels(gp) & (1 << 0)) || Z._().EdgeLabelsDone!=0)) + return; +UNSUPPORTED("27ppdplfezcqw6rdrkzyrr8yg"); // for (np = agfstnode(gp); np; np = agnxtnode(gp, np)) { +UNSUPPORTED("eezvruvdh9ueqsgad8k5xzbqi"); // if (ND_xlabel(np)) { +UNSUPPORTED("6oje33bnpp4jv5mclsrrhl005"); // if (ND_xlabel(np)->set) +UNSUPPORTED("cfkrw6t4lrs7dfgx86sgrz26"); // n_set_lbls++; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("26eewzzknvqt2nbcrqds5fmti"); // n_nlbls++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("41dpbku41lh3gpb30ds9ex6aa"); // for (ep = agfstout(gp, np); ep; ep = agnxtout(gp, ep)) { +UNSUPPORTED("9c5vwy3kfweqsgk827cpj3d6q"); // if (ED_xlabel(ep)) { +UNSUPPORTED("appkettxihy2o612jk6fahbnh"); // if (ED_xlabel(ep)->set) +UNSUPPORTED("8k2rclvg6eaoph9r2pz4620xq"); // n_set_lbls++; +UNSUPPORTED("14y6caappoxe17mogr979qf75"); // else if (((et != (0 << 1)) && (ED_spl(ep) != NULL))) +UNSUPPORTED("q3t8uxncrxc4n8rtuabtzxya"); // n_elbls++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("1mk50yh8pbs8jzn7h8otaonfd"); // if (ED_head_label(ep)) { +UNSUPPORTED("4xstfnjw4gi0ja4inv8o0n8z"); // if (ED_head_label(ep)->set) +UNSUPPORTED("8k2rclvg6eaoph9r2pz4620xq"); // n_set_lbls++; +UNSUPPORTED("14y6caappoxe17mogr979qf75"); // else if (((et != (0 << 1)) && (ED_spl(ep) != NULL))) +UNSUPPORTED("q3t8uxncrxc4n8rtuabtzxya"); // n_elbls++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4micw28bcx68bfiqihi9ruani"); // if (ED_tail_label(ep)) { +UNSUPPORTED("abwl715n01quq34u2qs1kn9xn"); // if (ED_tail_label(ep)->set) +UNSUPPORTED("8k2rclvg6eaoph9r2pz4620xq"); // n_set_lbls++; +UNSUPPORTED("14y6caappoxe17mogr979qf75"); // else if (((et != (0 << 1)) && (ED_spl(ep) != NULL))) +UNSUPPORTED("q3t8uxncrxc4n8rtuabtzxya"); // n_elbls++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("92f340ohb0u21xl6jgpc2hieo"); // if (ED_label(ep)) { +UNSUPPORTED("5skvrpmqqjq5cj6a8uiylmjsw"); // if (ED_label(ep)->set) +UNSUPPORTED("8k2rclvg6eaoph9r2pz4620xq"); // n_set_lbls++; +UNSUPPORTED("14y6caappoxe17mogr979qf75"); // else if (((et != (0 << 1)) && (ED_spl(ep) != NULL))) +UNSUPPORTED("q3t8uxncrxc4n8rtuabtzxya"); // n_elbls++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2uqg2vrduqxs9hk9hmamj7wlu"); // if (GD_has_labels(gp) & (1 << 3)) +UNSUPPORTED("4z3bgexjlrmdrfgpdaajems8q"); // n_clbls = countClusterLabels (gp); +UNSUPPORTED("19labxj7f93ljlhkpmrde0zgt"); // /* A label for each unpositioned external label */ +UNSUPPORTED("5kla6rwar4q1ig2olguocajn6"); // n_lbls = n_nlbls + n_elbls; +UNSUPPORTED("apjqar4agmf5jlfd88kbn4f4d"); // if (n_lbls == 0) return; +UNSUPPORTED("4j54hc42lgojcuorb9p42tlr"); // /* An object for each node, each positioned external label, any cluster label, +UNSUPPORTED("adxf9gd6tasafb302px9vqgum"); // * and all unset edge labels and xlabels. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("6id92o3db6qu5zuuj8q40n3zn"); // n_objs = agnnodes(gp) + n_set_lbls + n_clbls + n_elbls; +UNSUPPORTED("3e10kvi719e134x675xgwi1tj"); // objp = objs = (object_t*)zmalloc((n_objs)*sizeof(object_t)); +UNSUPPORTED("6z86cmeenod2nx8ej72n0qotk"); // xlp = lbls = (xlabel_t*)zmalloc((n_lbls)*sizeof(xlabel_t)); +UNSUPPORTED("f2nzvg1xnr11v28w2feg923cs"); // bb.LL = pointfof(INT_MAX, INT_MAX); +UNSUPPORTED("7tttoj8cnxfqgnq2aagnnav48"); // bb.UR = pointfof(-INT_MAX, -INT_MAX); +UNSUPPORTED("27ppdplfezcqw6rdrkzyrr8yg"); // for (np = agfstnode(gp); np; np = agnxtnode(gp, np)) { +UNSUPPORTED("38hh82sue091x6ybm9e34wy61"); // bb = addNodeObj (np, objp, bb); +UNSUPPORTED("ex5hwora23t1cl8hpjo4uvphm"); // if ((lp = ND_xlabel(np))) { +UNSUPPORTED("d5pjy3dwui27jfdz550cy0cln"); // if (lp->set) { +UNSUPPORTED("cls7z8l7wi371a4wrec0viqil"); // objp++; +UNSUPPORTED("3zy3jhlqyioeyh9mlrspjjgc6"); // bb = addLabelObj (lp, objp, bb); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("2msn58w2dse7pbq2esv7awk4r"); // addXLabel (lp, objp, xlp, 0, ur); +UNSUPPORTED("1zpq9rd3nn9kjrmun8ivs9zx5"); // xlp++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bhbvoj12subdn6905juhiubo2"); // objp++; +UNSUPPORTED("41dpbku41lh3gpb30ds9ex6aa"); // for (ep = agfstout(gp, np); ep; ep = agnxtout(gp, ep)) { +UNSUPPORTED("9zaprre819fwswan5wvid0h6g"); // if ((lp = ED_label(ep))) { +UNSUPPORTED("5dapykbxjvnhw0dpi7jfpcazk"); // if (lp->set) { +UNSUPPORTED("7rwrlod7lkgin3rnnzy3iw2rw"); // bb = addLabelObj (lp, objp, bb); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("dfnmpe0hri6ksye0gnxssi4zz"); // else if (((et != (0 << 1)) && (ED_spl(ep) != NULL))) { +UNSUPPORTED("9ffmrymv8cg4h4b3ea97t9qbp"); // addXLabel (lp, objp, xlp, 1, edgeMidpoint(gp, ep)); +UNSUPPORTED("808184nt3k6cxj5dsg27yvpvg"); // xlp++; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("3ia66n3hqrwmh3hybkoh6f8wa"); // agerr(AGWARN, "no position for edge with label %s", +UNSUPPORTED("9npeksy1st7v005znerttzzzv"); // ED_label(ep)->text); +UNSUPPORTED("2yi9az7ibt7j9bwztjilyo0v2"); // continue; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d23ocobgp22a33eopdnqe9o4u"); // objp++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("a5mn7dpum21w95ku1l27m9rpk"); // if ((lp = ED_tail_label(ep))) { +UNSUPPORTED("5dapykbxjvnhw0dpi7jfpcazk"); // if (lp->set) { +UNSUPPORTED("7rwrlod7lkgin3rnnzy3iw2rw"); // bb = addLabelObj (lp, objp, bb); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("dfnmpe0hri6ksye0gnxssi4zz"); // else if (((et != (0 << 1)) && (ED_spl(ep) != NULL))) { +UNSUPPORTED("bqc6ukxlmt6l3osbpsmqbzutc"); // addXLabel (lp, objp, xlp, 1, edgeTailpoint(ep)); +UNSUPPORTED("808184nt3k6cxj5dsg27yvpvg"); // xlp++; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("5ixexxcbcix5hrfl43td7pj4s"); // agerr(AGWARN, "no position for edge with tail label %s", +UNSUPPORTED("cf9qaysecgkvv4165la4uu6cb"); // ED_tail_label(ep)->text); +UNSUPPORTED("2yi9az7ibt7j9bwztjilyo0v2"); // continue; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("cls7z8l7wi371a4wrec0viqil"); // objp++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6rvkuvq5nj7p2za2zqxf74l3c"); // if ((lp = ED_head_label(ep))) { +UNSUPPORTED("5dapykbxjvnhw0dpi7jfpcazk"); // if (lp->set) { +UNSUPPORTED("7rwrlod7lkgin3rnnzy3iw2rw"); // bb = addLabelObj (lp, objp, bb); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("dfnmpe0hri6ksye0gnxssi4zz"); // else if (((et != (0 << 1)) && (ED_spl(ep) != NULL))) { +UNSUPPORTED("7gewvtwwzj3unxzrtbqpwduzg"); // addXLabel (lp, objp, xlp, 1, edgeHeadpoint(ep)); +UNSUPPORTED("808184nt3k6cxj5dsg27yvpvg"); // xlp++; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("8nrkavpg9ifts9yylhfijn9rp"); // agerr(AGWARN, "no position for edge with head label %s", +UNSUPPORTED("a5omwtwd411hsfrc37d8t6m8b"); // ED_head_label(ep)->text); +UNSUPPORTED("2yi9az7ibt7j9bwztjilyo0v2"); // continue; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("cls7z8l7wi371a4wrec0viqil"); // objp++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("1pb88fhz51khiwboqgii8qayw"); // if ((lp = ED_xlabel(ep))) { +UNSUPPORTED("5dapykbxjvnhw0dpi7jfpcazk"); // if (lp->set) { +UNSUPPORTED("7rwrlod7lkgin3rnnzy3iw2rw"); // bb = addLabelObj (lp, objp, bb); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("dfnmpe0hri6ksye0gnxssi4zz"); // else if (((et != (0 << 1)) && (ED_spl(ep) != NULL))) { +UNSUPPORTED("9ffmrymv8cg4h4b3ea97t9qbp"); // addXLabel (lp, objp, xlp, 1, edgeMidpoint(gp, ep)); +UNSUPPORTED("808184nt3k6cxj5dsg27yvpvg"); // xlp++; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("dbskad3xgu5oqqhwl1cr9f88g"); // agerr(AGWARN, "no position for edge with xlabel %s", +UNSUPPORTED("dtpynjioyrbt2xfca2o46eb0j"); // ED_xlabel(ep)->text); +UNSUPPORTED("2yi9az7ibt7j9bwztjilyo0v2"); // continue; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("cls7z8l7wi371a4wrec0viqil"); // objp++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5zntyu3vcfnjveucnumrmbjig"); // if (n_clbls) { +UNSUPPORTED("48ipxdlv7xlti99g0yhi5zuai"); // cinfo_t info; +UNSUPPORTED("7c5iohb8t706p273ae1lxal8r"); // info.bb = bb; +UNSUPPORTED("b1474fakrbyw7p5ja42jgv90c"); // info.objp = objp; +UNSUPPORTED("6ygw8idplugc5u6w7ro3gakmb"); // info = addClusterObj (gp, info); +UNSUPPORTED("1l2cwgzediv4hztjhtm052rl3"); // bb = info.bb; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("79ifzl4zpx3wbd5szboa2x2vb"); // force = (agattr(gp,AGRAPH,"forcelabels",NULL)); +UNSUPPORTED("1if7tdbcs4rwvb0polsdlbfh4"); // params.force = late_bool(gp, force, NOT(0)); +UNSUPPORTED("2ol916ffwy0e2vxinxn4v4sgt"); // params.bb = bb; +UNSUPPORTED("25rb35acbkepp55u3bkjxb1gc"); // placeLabels(objs, n_objs, lbls, n_lbls, ¶ms); +UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose) +UNSUPPORTED("4iypau1fdov37qnq2ub6iq5ra"); // printData(objs, n_objs, lbls, n_lbls, ¶ms); +UNSUPPORTED("52mefujap7scy273ud7nyj9hn"); // xlp = lbls; +UNSUPPORTED("3wtn792c3ql5yhn77alu6r5d8"); // cnt = 0; +UNSUPPORTED("30yvif5t111f94y1fs2gd8crq"); // for (i = 0; i < n_lbls; i++) { +UNSUPPORTED("w0kpfap6pb5scjkqkgsfira0"); // if (xlp->set) { +UNSUPPORTED("7hl03wjg5yryhvbe4ar0i0b8g"); // cnt++; +UNSUPPORTED("8xqwhcveb6ivragr1ebkp4pfh"); // lp = (textlabel_t *) (xlp->lbl); +UNSUPPORTED("a5h8ktnl3raui7zo5kcjzd2e0"); // lp->set = 1; +UNSUPPORTED("4lub8ddx8vt0gove63lajjr4s"); // lp->pos = centerPt(xlp); +UNSUPPORTED("d613i6370zjpynl7n5caiorig"); // updateBB (gp, lp); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1966qdxqc520zc0itk8al0xus"); // xlp++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose) +UNSUPPORTED("dy42jv2urndusl1b1jrir300t"); // fprintf (stderr, "%d out of %d labels positioned.\n", cnt, n_lbls); +UNSUPPORTED("1jtgut2015ohnwt6qfisxgbs5"); // else if (cnt != n_lbls) +UNSUPPORTED("9hqu9h8q1a2xl4ty48ct0fdyp"); // agerr(AGWARN, "%d out of %d exterior labels positioned.\n", cnt, n_lbls); +UNSUPPORTED("baez6nmarx9nht65vulvjojic"); // free(objs); +UNSUPPORTED("ayak2o9js1lmsa5vuzul2sdxs"); // free(lbls); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("d4215jd9wukfn6t0iknwzjcof","addXLabels"); +} +} + + + + +//3 8fc0zxg8y7hec3n4evx3jw6cq +// void gv_postprocess(Agraph_t * g, int allowTranslation) +public static void gv_postprocess(Agraph_s g, int allowTranslation) { +ENTERING("8fc0zxg8y7hec3n4evx3jw6cq","gv_postprocess"); +try { + double diff; + final __struct__ dimen = __struct__.from(pointf.class); + Z._().Rankdir = GD_rankdir(g); + Z._().Flip = GD_flip(g)!=0; + /* Handle cluster labels */ + if (Z._().Flip) +UNSUPPORTED("4hxky2sp978rmy6018sfmts6m"); // place_flip_graph_label(g); + else + place_graph_label(g); + /* Everything has been placed except the root graph label, if any. + * The graph positions have not yet been rotated back if necessary. + */ + addXLabels(g); + /* Add space for graph label if necessary */ + if (GD_label(g)!=null && N(GD_label(g).getPtr("set"))) { +UNSUPPORTED("crj0py2wme4b5l8apvbxqcmqa"); // dimen = GD_label(g)->dimen; +UNSUPPORTED("22jhn709g4c5wh0gb6v40rh19"); // {((dimen).x += 4*4); ((dimen).y += 2*4);}; +UNSUPPORTED("9k69y89jybam5elefg45va3ey"); // if (Flip) { +UNSUPPORTED("andsvpqa42ef9h5dkn3uyv6tj"); // if (GD_label_pos(g) & 1) { +UNSUPPORTED("65ggem18g4zgz2yx552vi2n4v"); // GD_bb(g).UR.x += dimen.y; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("9dm14vohn1tuwqrwprpdywylr"); // GD_bb(g).LL.x -= dimen.y; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("94nnj9ien92542qanqtyo8qzq"); // if (dimen.x > (GD_bb(g).UR.y - GD_bb(g).LL.y)) { +UNSUPPORTED("awekuk9gokwsbb49j41hvhqt4"); // diff = dimen.x - (GD_bb(g).UR.y - GD_bb(g).LL.y); +UNSUPPORTED("5856jxlve8fb2pennnazjjkij"); // diff = diff / 2.; +UNSUPPORTED("3t8m6fustsc50cpggxiadcjax"); // GD_bb(g).LL.y -= diff; +UNSUPPORTED("7c25kl7mn9jd5x5x2uflcql86"); // GD_bb(g).UR.y += diff; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("andsvpqa42ef9h5dkn3uyv6tj"); // if (GD_label_pos(g) & 1) { +UNSUPPORTED("7x8evhhttjy9mwgcpfpb3l7lm"); // if (Rankdir == 0) +UNSUPPORTED("45a42yl5qj83sj5mzdd6k6wcj"); // GD_bb(g).UR.y += dimen.y; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("6i55hrio04eg5ilg5i01jw8vv"); // GD_bb(g).LL.y -= dimen.y; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("7x8evhhttjy9mwgcpfpb3l7lm"); // if (Rankdir == 0) +UNSUPPORTED("6i55hrio04eg5ilg5i01jw8vv"); // GD_bb(g).LL.y -= dimen.y; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("45a42yl5qj83sj5mzdd6k6wcj"); // GD_bb(g).UR.y += dimen.y; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("p1mrpzvl0adzwcw3lialn8v3"); // if (dimen.x > (GD_bb(g).UR.x - GD_bb(g).LL.x)) { +UNSUPPORTED("3ie0x59qavcqpnvy7kci31lgc"); // diff = dimen.x - (GD_bb(g).UR.x - GD_bb(g).LL.x); +UNSUPPORTED("5856jxlve8fb2pennnazjjkij"); // diff = diff / 2.; +UNSUPPORTED("anqdsrkl2qs1pqbuivrdz6fnt"); // GD_bb(g).LL.x -= diff; +UNSUPPORTED("c0ah0pvnkczqdg5jt0u955wns"); // GD_bb(g).UR.x += diff; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } + if (allowTranslation!=0) { + switch (Z._().Rankdir) { + case 0: + Z._().Offset.____(GD_bb(g).getStruct("LL")); + break; + case 1: +UNSUPPORTED("5t3j9lrc86kd5ouaqgzvz3qcm"); // Offset = pointfof(-GD_bb(g).UR.y, GD_bb(g).LL.x); + break; + case 2: +UNSUPPORTED("96ajwnh79ja9g57xmut6dmh9d"); // Offset = pointfof(GD_bb(g).LL.x, -GD_bb(g).UR.y); + break; + case 3: +UNSUPPORTED("3xtu7zkpqq7nsx9oe68oi6ebt"); // Offset = pointfof(GD_bb(g).LL.y, GD_bb(g).LL.x); + break; + } + translate_drawing(g); + } + if (GD_label(g)!=null && N(GD_label(g).getPtr("set"))) +UNSUPPORTED("6dds0zsvqw48u510zcy954fh1"); // place_root_label(g, dimen); + if (Z._().Show_boxes!=null) { +UNSUPPORTED("8c7x8di5w36ib05qan9z4sl9"); // char buf[BUFSIZ]; +UNSUPPORTED("83qqprhiseoxlwtwi991aag0c"); // if (Flip) +UNSUPPORTED("86tova7pv19alt02nlk0d17oj"); // sprintf(buf, "/pathbox {\n /X exch neg %.5g sub def\n /Y exch %.5g sub def\n /x exch neg %.5g sub def\n /y exch %.5g sub def\n newpath x y moveto\n X y lineto\n X Y lineto\n x Y lineto\n closepath stroke\n} def\n", Offset.x, Offset.y, Offset.x, Offset.y); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("79tu9xkxv4v48uko4cxz7v04t"); // sprintf(buf, "/pathbox {\n /Y exch %.5g sub def\n /X exch %.5g sub def\n /y exch %.5g sub def\n /x exch %.5g sub def\n newpath x y moveto\n X y lineto\n X Y lineto\n x Y lineto\n closepath stroke\n } def\n/dbgstart { gsave %.5g %.5g translate } def\n/arrowlength 10 def\n/arrowwidth arrowlength 2 div def\n/arrowhead {\n gsave\n rotate\n currentpoint\n newpath\n moveto\n arrowlength arrowwidth 2 div rlineto\n 0 arrowwidth neg rlineto\n closepath fill\n grestore\n} bind def\n/makearrow {\n currentpoint exch pop sub exch currentpoint pop sub atan\n arrowhead\n} bind def\n/point { newpath 2 0 360 arc fill} def/makevec {\n /Y exch def\n /X exch def\n /y exch def\n /x exch def\n newpath x y moveto\n X Y lineto stroke\n X Y moveto\n x y makearrow\n} def\n", Offset.y, Offset.x, Offset.y, Offset.x, +UNSUPPORTED("aow79vde4xjqtwexymr5ocjl6"); // -Offset.x, -Offset.y); +UNSUPPORTED("6g3g36v7l0tyfootyy8mzv3t8"); // Show_boxes[0] = strdup(buf); + } +} finally { +LEAVING("8fc0zxg8y7hec3n4evx3jw6cq","gv_postprocess"); +} +} + + + + +//3 3qbbvlnq1b06ylgr0yj2slbhm +// void dotneato_postprocess(Agraph_t * g) +public static void dotneato_postprocess(Agraph_s g) { +ENTERING("3qbbvlnq1b06ylgr0yj2slbhm","dotneato_postprocess"); +try { + gv_postprocess(g, 1); +} finally { +LEAVING("3qbbvlnq1b06ylgr0yj2slbhm","dotneato_postprocess"); +} +} + + + + +//3 ehe7n8wkl4thn86tisjzdotpq +// static void place_flip_graph_label(graph_t * g) +public static Object place_flip_graph_label(Object... arg) { +UNSUPPORTED("3zsjtcmcfxhkmaagi0on4dy20"); // static void place_flip_graph_label(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("1wiyv8zjadpaaw6l7rs3o7g1w"); // pointf p, d; +UNSUPPORTED("3aye33sd5gwxvun5g9nvgb2py"); // if ((g != agroot(g)) && (GD_label(g)) && !GD_label(g)->set) { +UNSUPPORTED("bb9kbz7bijh4xjt97fdn2q90k"); // if (GD_label_pos(g) & 1) { +UNSUPPORTED("9fqnrxwwa66oa8qe31y1gf37u"); // d = GD_border(g)[1]; +UNSUPPORTED("cgv3bcg9c274cdwxi1y0sja3p"); // p.x = GD_bb(g).UR.x - d.x / 2; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("16roor3488xb2g2wr6oh8dqpx"); // d = GD_border(g)[3]; +UNSUPPORTED("7ictv9eqmjvxjii5lqlyw8nu"); // p.x = GD_bb(g).LL.x + d.x / 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2qpji9cqj2p2czgcug3wvnqpl"); // if (GD_label_pos(g) & 4) { +UNSUPPORTED("2xa4n9ca16xpf1kahaycmkl4r"); // p.y = GD_bb(g).LL.y + d.y / 2; +UNSUPPORTED("blrmgi2c43f98h1nso1k757hi"); // } else if (GD_label_pos(g) & 2) { +UNSUPPORTED("a7anlx7s8s2pqd73q59ep0kpf"); // p.y = GD_bb(g).UR.y - d.y / 2; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("378pj84d79yuezjebpqcchyut"); // p.y = (GD_bb(g).LL.y + GD_bb(g).UR.y) / 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ptjqgn3loi94u957cup0fi1"); // GD_label(g)->pos = p; +UNSUPPORTED("5ezl5j9dxa3ewoj8hxw72wn4n"); // GD_label(g)->set = NOT(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++) +UNSUPPORTED("d388zyk4c9le0jg4fcfx0b2"); // place_flip_graph_label(GD_clust(g)[c]); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 72zw1alhd5vd0g6mhum507rvx +// void place_graph_label(graph_t * g) +public static void place_graph_label(Agraph_s g) { +ENTERING("72zw1alhd5vd0g6mhum507rvx","place_graph_label"); +try { + int c; + final __struct__ p = __struct__.from(pointf.class), d = __struct__.from(pointf.class); + if (NEQ(g, agroot(g)) && (GD_label(g)!=null) && N(GD_label(g).getInt("set"))) { + if ((GD_label_pos(g) & 1)!=0) { + d.____(GD_border(g).plus(2).getStruct()); + p.setDouble("y", GD_bb(g).getStruct("UR").getDouble("y") - d.getDouble("y") / 2); + } else { +UNSUPPORTED("1w38no4welthbwa0i10hei16b"); // d = GD_border(g)[0]; +UNSUPPORTED("2xa4n9ca16xpf1kahaycmkl4r"); // p.y = GD_bb(g).LL.y + d.y / 2; + } + if ((GD_label_pos(g) & 4)!=0) { +UNSUPPORTED("cgv3bcg9c274cdwxi1y0sja3p"); // p.x = GD_bb(g).UR.x - d.x / 2; + } else if ((GD_label_pos(g) & 2)!=0) { +UNSUPPORTED("7ictv9eqmjvxjii5lqlyw8nu"); // p.x = GD_bb(g).LL.x + d.x / 2; + } else { + p.setDouble("x", (GD_bb(g).getStruct("LL").getDouble("x") + GD_bb(g).getStruct("UR").getDouble("x")) / 2); + } + GD_label(g).setStruct("pos", p); + GD_label(g).setBoolean("set", NOT(false)); + } + for (c = 1; c <= GD_n_cluster(g); c++) + place_graph_label((Agraph_s) GD_clust(g).plus(c).getPtr()); +} finally { +LEAVING("72zw1alhd5vd0g6mhum507rvx","place_graph_label"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/psusershape__c.java plantuml-8039/src/gen/lib/common/psusershape__c.java --- plantuml-8024/src/gen/lib/common/psusershape__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/psusershape__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1013 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class psusershape__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 eryi0zdvu1vdj4z91oqjowr7s +// static int N_EPSF_files + + +//1 exwjj9od9856wjk4etv0hx2as +// static Dict_t *EPSF_contents + + + + +//3 29n1xng5iw7sfvv70eq9vuxu8 +// static void ps_image_free(Dict_t * dict, usershape_t * p, Dtdisc_t * disc) +public static Object ps_image_free(Object... arg) { +UNSUPPORTED("5rj4kigk1748pyl3msx43jfns"); // static void ps_image_free(Dict_t * dict, usershape_t * p, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cmkwmwk1rz1nafnyaky92rbn2"); // free(p->data); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 au4inx0gk5hoa20orx5lvhth4 +// static Dtdisc_t ImageDictDisc = + + + + +//3 1uc9lbl2k8ptz750obaoq4owa +// static usershape_t *user_init(const char *str) +public static Object user_init(Object... arg) { +UNSUPPORTED("btjk6ghnhhhpxqzthns1035sv"); // static usershape_t *user_init(const char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7yx4ibv9esrr2z6ts6eh3p9kc"); // char *contents; +UNSUPPORTED("18vi5vqd0r4k0kxsl3h3rwa4y"); // char line[BUFSIZ]; +UNSUPPORTED("dn2hi0km4q5ldibguffbger1c"); // FILE *fp; +UNSUPPORTED("betw6ruf6fq3p0lck4gnts0kj"); // struct stat statbuf; +UNSUPPORTED("d2qyre5sgbxena5i9pu0h2xam"); // int saw_bb, must_inline, rc; +UNSUPPORTED("5rcgzsa5rlhtyjz964tcthts2"); // int lx, ly, ux, uy; +UNSUPPORTED("exneoozy5g8al0a8y6fxb88zv"); // usershape_t *us; +UNSUPPORTED("8g3a4ltfhciggja7iwey2aqcl"); // if (!EPSF_contents) +UNSUPPORTED("e6hd21gm9apd4gmmy01z57zgf"); // EPSF_contents = dtopen(&ImageDictDisc, Dtoset); +UNSUPPORTED("erlko2ce22rjvf7uoy0h8u0v8"); // us = (*(((Dt_t*)(EPSF_contents))->searchf))((EPSF_contents),(void*)(str),0001000); +UNSUPPORTED("91avho72bkiuf772dc2a5ix6e"); // if (us) +UNSUPPORTED("cw85r4wtmkbzxtvhwpamie4v6"); // return us; +UNSUPPORTED("77brc54aeox9dylmsw9nrc9lh"); // if (!(fp = fopen(str, "r"))) { +UNSUPPORTED("bksyqnyoym7zpn3ga1d0g0tyf"); // agerr(AGWARN, "couldn't open epsf file %s\n", str); +UNSUPPORTED("11hwqop4xebvtcskop4uhpp01"); // return NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5yfoc02nltmsi4pxppdmtqaxe"); // /* try to find size */ +UNSUPPORTED("5efqa07nxd5jzvtbp8ow6ak81"); // saw_bb = must_inline = 0; +UNSUPPORTED("5zpyz8rwwni5vzipcoh9h5j1s"); // while (fgets(line, sizeof(line), fp)) { +UNSUPPORTED("84ei9xnflwzrsv8mcoxyax2jg"); // if (sscanf +UNSUPPORTED("wj64hfw12hp6blditicrusxg"); // (line, "%%%%BoundingBox: %d %d %d %d", &lx, &ly, &ux, &uy) == 4) { +UNSUPPORTED("d9bzgs0bw96je3fnzudy957xp"); // saw_bb = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4toi4f2ci00kw02glf22xjylj"); // if ((line[0] != '%') && strstr(line,"read")) must_inline = NOT(0); +UNSUPPORTED("2eb5k0vpbigkfqqzv1t6iu11t"); // if (saw_bb && must_inline) break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8p3jjm43yrzygpor71hdkfs1g"); // if (saw_bb) { +UNSUPPORTED("4eocsemdgmodxdzjhlhubun1"); // us = (usershape_t*)gmalloc(sizeof(usershape_t)); +UNSUPPORTED("5dym7sjpxsgdgav57jvyuohe8"); // us->x = lx; +UNSUPPORTED("da04q03gf0w4upkkrsn74w1dc"); // us->y = ly; +UNSUPPORTED("2ii7hvliw02uqnhr23i7argb2"); // us->w = ux - lx; +UNSUPPORTED("191g18ggraral9b3r928yx2ow"); // us->y = uy - ly; +UNSUPPORTED("dop1va2g3wkq8qbie2jsg2l5v"); // us->name = str; +UNSUPPORTED("bnlt8sbqy5nvjanbynnzxfgat"); // us->macro_id = N_EPSF_files++; +UNSUPPORTED("7c7n8wrq5m5e8eatfo94u2pu9"); // fstat(fileno(fp), &statbuf); +UNSUPPORTED("56jn6f4g97pzyo432xeqpcx5d"); // contents = us->data = (char*)gmalloc((statbuf.st_size + 1)*sizeof(char)); +UNSUPPORTED("6ppmne13xb7f5x8gvqumpmyiq"); // fseek(fp, 0, SEEK_SET); +UNSUPPORTED("21uxu15vxgywtd0a3igl6p80t"); // rc = fread(contents, statbuf.st_size, 1, fp); +UNSUPPORTED("6t9w56kgnl604tbbuy1lqdndx"); // contents[statbuf.st_size] = '\0'; +UNSUPPORTED("dywmx93gyg3hytqtt3l8d5z2p"); // (*(((Dt_t*)(EPSF_contents))->searchf))((EPSF_contents),(void*)(us),0000001); +UNSUPPORTED("d1520lv1wzdo42xmawn5xxkrw"); // us->must_inline = must_inline; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("39sdmjtt29d7vsalbnmv8qv4z"); // agerr(AGWARN, "BoundingBox not found in epsf file %s\n", str); +UNSUPPORTED("5kcrfk94jgjyac8443js6gz3j"); // us = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("64ohktjo8rl0tbgujwt2zhips"); // fclose(fp); +UNSUPPORTED("2iqrgjc97xskxvw6791yf0sl7"); // return us; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4jtxldcmdfn1er82zhtd5wlri +// void epsf_init(node_t * n) +public static Object epsf_init(Object... arg) { +UNSUPPORTED("7em8y1zyx1snxc7xca5n5th5o"); // void epsf_init(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("31b47kcwg6z2ds4cugdfq5hft"); // epsf_t *desc; +UNSUPPORTED("3khvuud3f5gatnp6mor2iup7b"); // const char *str; +UNSUPPORTED("exneoozy5g8al0a8y6fxb88zv"); // usershape_t *us; +UNSUPPORTED("bftz89757hgmx7ivuna8lc4z6"); // int dx, dy; +UNSUPPORTED("678wz7kwotz1a6i79id3poi7x"); // if ((str = safefile(agget(n, "shapefile")))) { +UNSUPPORTED("4o6c82f5unsr24rvl75p7p5ek"); // us = user_init(str); +UNSUPPORTED("b5eehxrs3a1afyurga0m7yg5z"); // if (!us) +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("1llk4yzmxomxce2uecvbxt922"); // dx = us->w; +UNSUPPORTED("7xizqe3g4592mv98u21qsg12y"); // dy = us->h; +UNSUPPORTED("36n9s8hc2y0ggb7ed2kxv65vd"); // ND_width(n) = ((dx)/(double)72); +UNSUPPORTED("9px3qggrf4lv7iustz7y59w1w"); // ND_height(n) = ((dy)/(double)72); +UNSUPPORTED("ebl6c4mrti14npk9mjj1qazca"); // ND_shape_info(n) = desc = (epsf_t*)zmalloc(sizeof(epsf_t)); +UNSUPPORTED("a9wg4pmg1rx2n6b2s84l80obj"); // desc->macro_id = us->macro_id; +UNSUPPORTED("afw8uhw0ehdxj1a69rz0ybq4r"); // desc->offset.x = -us->x - (dx) / 2; +UNSUPPORTED("9nm3fw2qmg65tbqome5kujtsz"); // desc->offset.y = -us->y - (dy) / 2; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("8mplvqa6xkatre0c6wwuh61lk"); // agerr(AGWARN, "shapefile not set or not found for epsf node %s\n", agnameof(n)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5dl04g1rrjvf8547fcq7xwqzt +// void epsf_free(node_t * n) +public static Object epsf_free(Object... arg) { +UNSUPPORTED("5rxuq2v3mq5yi8hvoggnvosw5"); // void epsf_free(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("63ge8bmq3laisshvh9shex6rf"); // if (ND_shape_info(n)) +UNSUPPORTED("4tqz4t9dpzad2deeqfzrkmkfw"); // free(ND_shape_info(n)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3k8bgogm645fta5beqiqlgb91 +// void cat_libfile(GVJ_t * job, const char **arglib, const char **stdlib) +public static Object cat_libfile(Object... arg) { +UNSUPPORTED("f2ebumtuigxeossbmwcw7sauq"); // void cat_libfile(GVJ_t * job, const char **arglib, const char **stdlib) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dn2hi0km4q5ldibguffbger1c"); // FILE *fp; +UNSUPPORTED("5py5d30vifgyqkijs4037nlps"); // const char **s, *bp, *p, *path; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("bamb0j1bzualb8qewx4zt5dph"); // boolean use_stdlib = NOT(0); +UNSUPPORTED("4j7ud7jy9tm90khvzcx3dzkse"); // /* check for empty string to turn off stdlib */ +UNSUPPORTED("3j11d6cpp08lgcnsl7g86bdq7"); // if (arglib) { +UNSUPPORTED("c52r2tlvayllcewxs8k15s05w"); // for (i = 0; use_stdlib && ((p = arglib[i])); i++) { +UNSUPPORTED("927bwpabhr93r5m1t31uoko5y"); // if (*p == '\0') +UNSUPPORTED("8gxs50v7w64gzo5zglu3ojguv"); // use_stdlib = 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e8ewhnemro5nober1fa75a77b"); // if (use_stdlib) +UNSUPPORTED("9osn5uouzsj18nqzp3gaief29"); // for (s = stdlib; *s; s++) { +UNSUPPORTED("30lfe4kxbvbtghur73wrl2dav"); // gvputs(job, *s); +UNSUPPORTED("5uq09elejy2ot3s8x5d13dxs9"); // gvputs(job, "\n"); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("3j11d6cpp08lgcnsl7g86bdq7"); // if (arglib) { +UNSUPPORTED("evqlr64pfisalhednuxyi8se0"); // for (i = 0; (p = arglib[i]) != 0; i++) { +UNSUPPORTED("927bwpabhr93r5m1t31uoko5y"); // if (*p == '\0') +UNSUPPORTED("ae84fvt6djsw3pvp7g15ypmw7"); // continue; /* ignore empty string */ +UNSUPPORTED("7rcba80v613dy9q1k10xxe78v"); // path = safefile(p); /* make sure filename is okay */ +UNSUPPORTED("7tatqi6et1nsfzfr542t4r5i8"); // if (!path) { +UNSUPPORTED("7y7cgdemfr8h5e077czq19s0p"); // agerr(AGWARN, "can't find library file %s\n", p); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("e100j39k1vq90fggjnce67zd1"); // else if ((fp = fopen(path, "r"))) { +UNSUPPORTED("25rk7l5monea7crssvaemqymw"); // while ((bp = Fgets(fp))) +UNSUPPORTED("csp26n5hr6bygjv2orlm6xh0s"); // gvputs(job, bp); +UNSUPPORTED("ca5a791njn2so4a7dtvrjmcol"); // gvputs(job, "\n"); /* append a newline just in case */ +UNSUPPORTED("vg8cxxpc2olmxqemlfw98yhx"); // fclose (fp); +UNSUPPORTED("8983k01wuaibmqpm7x4605bp7"); // } else +UNSUPPORTED("4ii3y4fdc0rtv5sdyvnq3r19x"); // agerr(AGWARN, "can't open library file %s\n", path); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c8mk88p0edzfsgqm13hpubkxw +// void epsf_emit_body(GVJ_t *job, usershape_t *us) +public static Object epsf_emit_body(Object... arg) { +UNSUPPORTED("8glrt6xt7v3ywzysyvx97glwt"); // void epsf_emit_body(GVJ_t *job, usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("wrvu9u7a8j6i6y6552zncxfk"); // char c; +UNSUPPORTED("d7ketofh63tjf8eb5ztge4c31"); // p = us->data; +UNSUPPORTED("9oyx3ukhip4n1koefwntplgmx"); // while (*p) { +UNSUPPORTED("9qifncqcc9fx15rxu1muizz0o"); // /* skip %%EOF lines */ +UNSUPPORTED("9g4rchc1chbqitmc8bminq7v"); // if ((p[0] == '%') && (p[1] == '%') +UNSUPPORTED("bba83ay6zg8fvrsgqrrrcuy8i"); // && (!strncasecmp(&p[2], "EOF", 3) +UNSUPPORTED("6chobjvni909a13o053pxk2p0"); // || !strncasecmp(&p[2], "BEGIN", 5) +UNSUPPORTED("bzsdn21uu7jb8tzc4tbom7sw5"); // || !strncasecmp(&p[2], "END", 3) +UNSUPPORTED("a2ti475ble1zqs3dlsmntwv74"); // || !strncasecmp(&p[2], "TRAILER", 7) +UNSUPPORTED("c1tth0cl8ygadmbgsvzkapnoe"); // )) { +UNSUPPORTED("9k6m8vuyp3pzjw1gxyk3o58wp"); // /* check for *p since last line might not end in '\n' */ +UNSUPPORTED("5be7pghqp1llzh7fl9vgv7pal"); // while ((c = *p) && (c != '\r') && (c != '\n')) p++; +UNSUPPORTED("3cka3lnpeg06gmtc079gxlxrv"); // if ((*p == '\r') && (*(p+1) == '\n')) p += 2; +UNSUPPORTED("3w319yo1w73iab195sxwuf5e7"); // else if (*p) p++; +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3ynl0b83d0xrdpt5dzpjat21p"); // /* output line */ +UNSUPPORTED("47nu285gh2jm87occ1dd24ore"); // while ((c = *p) && (c != '\r') && (c != '\n')) { +UNSUPPORTED("exn5b6l9v272pe3lg7iopebqu"); // gvputc(job, c); +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("451qyj2kv55zeowl3tn3wbt5"); // if ((*p == '\r') && (*(p+1) == '\n')) p += 2; +UNSUPPORTED("4ula5fp4ciaxwkk14htcc2chb"); // else if (*p) p++; +UNSUPPORTED("3w0oergh6hreff0gxv1dt2v6e"); // gvputc(job, '\n'); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8y6ghoi95l19nfvv9bb79pg17 +// void epsf_define(GVJ_t *job) +public static Object epsf_define(Object... arg) { +UNSUPPORTED("2jk8j9j4tqkxfac24cs1wm4xs"); // void epsf_define(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("exneoozy5g8al0a8y6fxb88zv"); // usershape_t *us; +UNSUPPORTED("8g3a4ltfhciggja7iwey2aqcl"); // if (!EPSF_contents) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("8nth7emjhetau8szgigivkiwa"); // for (us = (*(((Dt_t*)(EPSF_contents))->searchf))((EPSF_contents),(void*)(0),0000200); us; us = (*(((Dt_t*)(EPSF_contents))->searchf))((EPSF_contents),(void*)(us),0000010)) { +UNSUPPORTED("e38lq5b2sg26x3edlqnpmenjf"); // if (us->must_inline) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("74qu08bzz2w50fm1rxcd3nb1t"); // gvprintf(job, "/user_shape_%d {\n", us->macro_id); +UNSUPPORTED("bq7b88oc2llin4wuspb9y2k0z"); // gvputs(job, "%%BeginDocument:\n"); +UNSUPPORTED("11ii4m89jltj0dk9f2nl812na"); // epsf_emit_body(job, us); +UNSUPPORTED("b6zvkgtf4i48itua2znxykfv4"); // gvputs(job, "%%EndDocument\n"); +UNSUPPORTED("dys3bmzsjlng5wufay121n4wd"); // gvputs(job, "} bind def\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 egj5vrbfagce8lh8wcotr50p8 +// static int charsetOf (char* s) +public static Object charsetOf(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("14toksq7jmazxy7jf8hdlx5b3"); // charsetOf (char* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8mngi3m5lqbt7c8rk7l3o7zpc"); // int r = ASCII; +UNSUPPORTED("10sir32iwi5l2jyfgp65pihto"); // unsigned char c; +UNSUPPORTED("11zj3p308ttro04hrzowx0vrh"); // while ((c = *(unsigned char*)s++)) { +UNSUPPORTED("1efx7dnx6p2hru4jp6nmn5kp1"); // if (c < 0x7F) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("cjeai7vjetgqlhigjsxcurv5u"); // else if ((c & 0xFC) == 0xC0) { +UNSUPPORTED("7v9ez1gvzvyjl1ehstexhlqra"); // r = LATIN1; +UNSUPPORTED("eqg09536v8dzlzdsxjyjb79qo"); // s++; /* eat second byte */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2ckvuq6gku7vtnk1i5az5fy60"); // else return NONLATIN; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6ov4fplgnlc2vo7ilyz88l8w8 +// char *ps_string(char *ins, int chset) +public static Object ps_string(Object... arg) { +UNSUPPORTED("2z1t9y3faapozbla3ue5fy1r3"); // char *ps_string(char *ins, int chset) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("ejkl9z7itgy7zzscudx1yzdk7"); // char *base; +UNSUPPORTED("4hzo4dkkcq5f8wru82rpqmp17"); // static agxbuf xb; +UNSUPPORTED("723xhlz03y7lwymzvejjrb04"); // static int warned; +UNSUPPORTED("1bh3yj957he6yv2dkeg4pzwdk"); // int rc; +UNSUPPORTED("cavaompypndyi1f6hl7z9ye12"); // switch (chset) { +UNSUPPORTED("dvojp3uwecylbruvszvkskjbd"); // case 0 : +UNSUPPORTED("7hfajxzdnwjbtmf22mtovza97"); // base = ins; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("27pm3a0bv1708o8ux4ss8bqqc"); // case 1 : +UNSUPPORTED("5p9v7zj5kv7344gooya44jgcy"); // base = utf8ToLatin1 (ins); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("29hi90x8rlo9f7q3mhj5dg71d"); // default : +UNSUPPORTED("3iavam6mfccgfsp7391gt9vsc"); // switch (charsetOf (ins)) { +UNSUPPORTED("1ljaophh8mbc5fj06dhv6aksx"); // case ASCII : +UNSUPPORTED("cmb43luoxsf5hnzalzy32ksai"); // base = ins; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4ykmujahzvaqa6i24edc4b2v6"); // case LATIN1 : +UNSUPPORTED("5w84rks28yw6kxmv2l0zlpjy7"); // base = utf8ToLatin1 (ins); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5l9jao5dunsm59cttffi5i6ch"); // case NONLATIN : +UNSUPPORTED("7w3i31pvmof25luqw5a3u9mbt"); // if (!warned) { +UNSUPPORTED("2llaay3iauy5ooo60c1u8w9cd"); // agerr (AGWARN, "UTF-8 input uses non-Latin1 characters which cannot be handled by this PostScript driver\n"); +UNSUPPORTED("18z1ryrdclcr3megv9497iy3d"); // warned = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("cmb43luoxsf5hnzalzy32ksai"); // base = ins; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("cmb43luoxsf5hnzalzy32ksai"); // base = ins; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2ots84hgp26w0o36krtn5sxgy"); // if (xb.buf == NULL) +UNSUPPORTED("d25jylh17nodyfod42udvo34l"); // agxbinit (&xb, 0, NULL); +UNSUPPORTED("3a8heyybo9l33vt2jyuah4sbg"); // rc = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'('))); +UNSUPPORTED("2ldg889rgl2rsu9pf2qjc5fi2"); // s = base; +UNSUPPORTED("f387esbkeildkayz3s6urngtw"); // while (*s) { +UNSUPPORTED("b9orhgtvsuli8mn7x7lgs093v"); // if ((*s == '(') || (*s == ')') || (*s == '\\')) +UNSUPPORTED("pcnzeru18grzobxc0w6l7egr"); // rc = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\\'))); +UNSUPPORTED("3753vc4lhmsqbohl9szk717z"); // rc = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)*s++))); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("djzbkthk4ygy41r5ruh1iu8v"); // ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)')'))); +UNSUPPORTED("c1g8fk8duz6f3rxq2rhjvyyij"); // if (base != ins) free (base); +UNSUPPORTED("8phdgdnv0mzh2zr358vnxae4m"); // s = (((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf)); +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/routespl__c.java plantuml-8039/src/gen/lib/common/routespl__c.java --- plantuml-8024/src/gen/lib/common/routespl__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/routespl__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1570 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.common.memory__c.gmalloc; +import static gen.lib.pathplan.route__c.Proutespline; +import static gen.lib.pathplan.shortest__c.Pshortestpath; +import static gen.lib.pathplan.util__c.make_polyline; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.cos; +import static smetana.core.JUtils.sin; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ABS; +import static smetana.core.Macro.ALLOC; +import static smetana.core.Macro.ALLOC_allocated2; +import static smetana.core.Macro.ED_edge_type; +import static smetana.core.Macro.ED_to_orig; +import static smetana.core.Macro.INT_MAX; +import static smetana.core.Macro.INT_MIN; +import static smetana.core.Macro.MIN; +import static smetana.core.Macro.N; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.RALLOC; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Pedge_t; +import h.Ppoly_t; +import h.boxf; +import h.path; +import h.pointf; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__array_of_ptr__; +import smetana.core.__array_of_struct__; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class routespl__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 6fn146yunkq3g30gummlety1l +// static int nedges, nboxes +//private static int nedges, nboxes; + +//1 651u86vwr4psbjmrzsbg6zgi5 +// static int routeinit +//private static int routeinit; + +//1 bitbif2zv0lxox45wigfzbqcp +// static pointf *ps +//private static __ptr__ ps; + +//1 5m31ig8bxuefkdin279ih13kc +// static int maxpn +//private static int maxpn; + +//1 4u04uog28vlnmx0azm4y9qvj1 +// static Ppoint_t *polypoints +//private static __ptr__ polypoints; + +//1 eoo5tej8soeqa10cqz02mpetw +// static int polypointn +//private static int polypointn; + +//1 dr2m01yvkuh5brtywxzvn5tal +// static Pedge_t *edges +//private static __ptr__ edges; + +//1 cxjqaauevyqicged5zki42yg7 +// static int edgen +//private static int edgen; + + + +//3 7ebl6qohcfpf1b9ucih5r9qgp +// pointf* simpleSplineRoute (pointf tp, pointf hp, Ppoly_t poly, int* n_spl_pts, int polyline) +public static pointf simpleSplineRoute(final __struct__ tp, final __struct__ hp, final __struct__ poly, int[] n_spl_pts, boolean polyline) { +// WARNING!! STRUCT +return simpleSplineRoute_w_(tp.copy(), hp.copy(), poly.copy(), n_spl_pts, polyline); +} +private static pointf simpleSplineRoute_w_(final __struct__ tp, final __struct__ hp, final __struct__ poly, int[] n_spl_pts, boolean polyline) { +ENTERING("7ebl6qohcfpf1b9ucih5r9qgp","simpleSplineRoute"); +try { + final __struct__ pl = __struct__.from(Ppoly_t.class), spl = __struct__.from(Ppoly_t.class); + final __array_of_struct__ eps = __array_of_struct__.malloc(pointf.class, 2); + final __array_of_struct__ evs = __array_of_struct__.malloc(pointf.class, 2); + int i; + eps.plus(0).setDouble("x", tp.getDouble("x")); + eps.plus(0).setDouble("y", tp.getDouble("y")); + eps.plus(1).setDouble("x", hp.getDouble("x")); + eps.plus(1).setDouble("y", hp.getDouble("y")); + if (Pshortestpath(poly.amp(), eps, pl.amp()) < 0) + return null; + if (polyline) + make_polyline (pl, spl.amp()); + else { + if (poly.getInt("pn") > Z._().edgen) { + Z._().edges = ALLOC(poly.getInt("pn"), Z._().edges, Pedge_t.class); + Z._().edgen = poly.getInt("pn"); + } + for (i = 0; i < poly.getInt("pn"); i++) { + Z._().edges.plus(i).setStruct("a", poly.getArrayOfStruct("ps").plus(i).getStruct()); + Z._().edges.plus(i).setStruct("b", poly.getArrayOfStruct("ps").plus((i + 1) % poly.getInt("pn")).getStruct()); + } + evs.plus(0).setDouble("x", 0); + evs.plus(0).setDouble("y", 0); + evs.plus(1).setDouble("x", 0); + evs.plus(1).setDouble("y", 0); + if (Proutespline(Z._().edges, poly.getInt("pn"), pl, evs.asPtr(), spl.amp()) < 0) + return null; + } + if (mkspacep(spl.getInt("pn"))) + return null; + for (i = 0; i < spl.getInt("pn"); i++) { + Z._().ps.plus(i).setStruct(spl.getArrayOfPtr("ps").plus(i).getStruct()); + } + n_spl_pts[0] = spl.getInt("pn"); + return (pointf) Z._().ps; +} finally { +LEAVING("7ebl6qohcfpf1b9ucih5r9qgp","simpleSplineRoute"); +} +} + + + + +//3 bfsrazjf3vkf12stnke48vc8t +// int routesplinesinit() +public static int routesplinesinit() { +ENTERING("bfsrazjf3vkf12stnke48vc8t","routesplinesinit"); +try { + if (++Z._().routeinit > 1) return 0; + if (N(Z._().ps = gmalloc(sizeof(pointf.class, 300)))) { +UNSUPPORTED("2qoo3na2ur9oh7hmvt6xv1txd"); // agerr(AGERR, "routesplinesinit: cannot allocate ps\n"); +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; + } + Z._().maxpn = 300; + Z._().nedges = 0; + Z._().nboxes = 0; + /*if (Verbose) + start_timer();*/ + return 0; +} finally { +LEAVING("bfsrazjf3vkf12stnke48vc8t","routesplinesinit"); +} +} + + + + +//3 55j3tny5cxemrsvrt3m21jxg8 +// void routesplinesterm() +public static void routesplinesterm() { +ENTERING("55j3tny5cxemrsvrt3m21jxg8","routesplinesterm"); +try { + if (--Z._().routeinit > 0) return; + Memory.free(Z._().ps); + /*if (Verbose) + fprintf(stderr, + "routesplines: %d edges, %d boxes %.2f sec\n", + nedges, nboxes, elapsed_sec());*/ +} finally { +LEAVING("55j3tny5cxemrsvrt3m21jxg8","routesplinesterm"); +} +} + + + + +//3 cu8ssjizw7ileqe9u7tcclq7k +// static void limitBoxes (boxf* boxes, int boxn, pointf *pps, int pn, int delta) +public static void limitBoxes(__array_of_ptr__ boxes, int boxn, __ptr__ pps, int pn, int delta) { +ENTERING("cu8ssjizw7ileqe9u7tcclq7k","limitBoxes"); +try { + int bi, si, splinepi; + double t; + final __array_of_struct__ sp = __array_of_struct__.malloc(pointf.class, 4); + int num_div = delta * boxn; + for (splinepi = 0; splinepi + 3 < pn; splinepi += 3) { + for (si = 0; si <= num_div; si++) { + t = si / (double)num_div; + sp.plus(0).getStruct().____(pps.plus(splinepi).getStruct()); + sp.plus(1).getStruct().____(pps.plus(splinepi+1).getStruct()); + sp.plus(2).getStruct().____(pps.plus(splinepi+2).getStruct()); + sp.plus(3).getStruct().____(pps.plus(splinepi+3).getStruct()); + sp.plus(0).setDouble("x", sp.plus(0).getDouble("x") + t * (sp.plus(1).getDouble("x") - sp.plus(0).getDouble("x"))); + sp.plus(0).setDouble("y", sp.plus(0).getDouble("y") + t * (sp.plus(1).getDouble("y") - sp.plus(0).getDouble("y"))); + sp.plus(1).setDouble("x", sp.plus(1).getDouble("x") + t * (sp.plus(2).getDouble("x") - sp.plus(1).getDouble("x"))); + sp.plus(1).setDouble("y", sp.plus(1).getDouble("y") + t * (sp.plus(2).getDouble("y") - sp.plus(1).getDouble("y"))); + sp.plus(2).setDouble("x", sp.plus(2).getDouble("x") + t * (sp.plus(3).getDouble("x") - sp.plus(2).getDouble("x"))); + sp.plus(2).setDouble("y", sp.plus(2).getDouble("y") + t * (sp.plus(3).getDouble("y") - sp.plus(2).getDouble("y"))); + sp.plus(0).setDouble("x", sp.plus(0).getDouble("x") + t * (sp.plus(1).getDouble("x") - sp.plus(0).getDouble("x"))); + sp.plus(0).setDouble("y", sp.plus(0).getDouble("y") + t * (sp.plus(1).getDouble("y") - sp.plus(0).getDouble("y"))); + sp.plus(1).setDouble("x", sp.plus(1).getDouble("x") + t * (sp.plus(2).getDouble("x") - sp.plus(1).getDouble("x"))); + sp.plus(1).setDouble("y", sp.plus(1).getDouble("y") + t * (sp.plus(2).getDouble("y") - sp.plus(1).getDouble("y"))); + sp.plus(0).setDouble("x", sp.plus(0).getDouble("x") + t * (sp.plus(1).getDouble("x") - sp.plus(0).getDouble("x"))); + sp.plus(0).setDouble("y", sp.plus(0).getDouble("y") + t * (sp.plus(1).getDouble("y") - sp.plus(0).getDouble("y"))); + for (bi = 0; bi < boxn; bi++) { +/* this tested ok on 64bit machines, but on 32bit we need this FUDGE + * or graphs/directed/records.gv fails */ + if (sp.plus(0).getDouble("y") <= boxes.plus(bi).getStruct("UR").getDouble("y")+.0001 && sp.plus(0).getDouble("y") >= boxes.plus(bi).getStruct("LL").getDouble("y")-.0001) { + if (boxes.plus(bi).getStruct("LL").getDouble("x") > sp.plus(0).getDouble("x")) + boxes.plus(bi).getStruct("LL").setDouble("x", sp.plus(0).getDouble("x")); + if (boxes.plus(bi).getStruct("UR").getDouble("x") < sp.plus(0).getDouble("x")) + boxes.plus(bi).getStruct("UR").setDouble("x", sp.plus(0).getDouble("x")); + } + } + } + } +} finally { +LEAVING("cu8ssjizw7ileqe9u7tcclq7k","limitBoxes"); +} +} + + + + +//3 3mcnemqisisnqtd4mr72ej76y +// static pointf *_routesplines(path * pp, int *npoints, int polyline) +public static __ptr__ _routesplines(path pp, int npoints[], int polyline) { +ENTERING("3mcnemqisisnqtd4mr72ej76y","_routesplines"); +try { + final __struct__ poly = __struct__.from(Ppoly_t.class); + final __struct__ pl = __struct__.from(Ppoly_t.class), spl = __struct__.from(Ppoly_t.class); + int splinepi; + final __array_of_struct__ eps = __array_of_struct__.malloc(pointf.class, 2); + final __array_of_struct__ evs = __array_of_struct__.malloc(pointf.class, 2); + int edgei, prev, next; + int pi=0, bi; + __array_of_ptr__ boxes; + int boxn; + Agedge_s realedge; + int flip; + int loopcnt, delta = 10; + boolean unbounded; + Z._().nedges++; + Z._().nboxes += pp.getInt("nbox"); + for (realedge = (Agedge_s) pp.getPtr("data").castTo(Agedge_s.class); + realedge!=null && ED_edge_type(realedge) != 0; + realedge = ED_to_orig(realedge)); + if (N(realedge)) { + UNSUPPORTED("agerr(AGERR, _in routesplines, cannot find NORMAL edge"); + return null; + } + boxes = pp.getArrayOfPtr("boxes"); + boxn = pp.getInt("nbox"); + if (checkpath(boxn, boxes, pp)!=0) + return null; + if (boxn * 8 > Z._().polypointn) { + Z._().polypoints = ALLOC_allocated2(boxn * 8, Z._().polypoints, pointf.class); + Z._().polypointn = boxn * 8; + } + if ((boxn > 1) && (boxes.plus(0).getStruct().getStruct("LL").getDouble("y") > boxes.plus(1).getStruct().getStruct("LL").getDouble("y"))) { + flip = 1; + for (bi = 0; bi < boxn; bi++) { + double v = boxes.plus(bi).getStruct().getStruct("UR").getDouble("y"); + boxes.plus(bi).getStruct().getStruct("UR").setDouble("y",-1*boxes.plus(bi).getStruct().getStruct("LL").getDouble("y")); + boxes.plus(bi).getStruct().getStruct("LL").setDouble("y", -v); + } + } + else flip = 0; + if (NEQ(agtail(realedge), aghead(realedge))) { + /* I assume that the path goes either down only or + up - right - down */ + for (bi = 0, pi = 0; bi < boxn; bi++) { + next = prev = 0; + if (bi > 0) + prev = (boxes.plus(bi).getStruct().getStruct("LL").getDouble("y") > boxes.plus(bi-1).getStruct().getStruct("LL").getDouble("y")) ? -1 : 1; + if (bi < boxn - 1) + next = (boxes.plus(bi+1).getStruct().getStruct("LL").getDouble("y") > boxes.plus(bi).getStruct().getStruct("LL").getDouble("y")) ? 1 : -1; + if (prev != next) { + if (next == -1 || prev == 1) { + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("LL").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("UR").getDouble("y")); + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("LL").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("LL").getDouble("y")); + } else { + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("UR").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("LL").getDouble("y")); + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("UR").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("UR").getDouble("y")); + } + } + else if (prev == 0) { /* single box */ +UNSUPPORTED("2bfai79qe7cec0rljrn56jg2f"); // polypoints[pi].x = boxes[bi].LL.x; +UNSUPPORTED("cjppvcr7k9pknjrjugccsky56"); // polypoints[pi++].y = boxes[bi].UR.y; +UNSUPPORTED("2bfai79qe7cec0rljrn56jg2f"); // polypoints[pi].x = boxes[bi].LL.x; +UNSUPPORTED("99xeozpks5v0iza4sv2occuuq"); // polypoints[pi++].y = boxes[bi].LL.y; + } + else { + if (N(prev == -1 && next == -1)) { +UNSUPPORTED("cgpvvfb9phbipyhij0cjh1nmi"); // agerr(AGERR, "in routesplines, illegal values of prev %d and next %d, line %d\n", prev, next, 444); +UNSUPPORTED("9idk92zg2ysz316lfwzvvvde6"); // return NULL; + } + } + } + for (bi = boxn - 1; bi >= 0; bi--) { + next = prev = 0; + if (bi < boxn - 1) + prev = (boxes.plus(bi).getStruct().getStruct("LL").getDouble("y") > boxes.plus(bi+1).getStruct().getStruct("LL").getDouble("y")) ? -1 : 1; + if (bi > 0) + next = (boxes.plus(bi-1).getStruct().getStruct("LL").getDouble("y") > boxes.plus(bi).getStruct().getStruct("LL").getDouble("y")) ? 1 : -1; + if (prev != next) { + if (next == -1 || prev == 1 ) { + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("LL").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("UR").getDouble("y")); + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("LL").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("LL").getDouble("y")); + } else { + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("UR").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("LL").getDouble("y")); + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("UR").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("UR").getDouble("y")); + } + } + else if (prev == 0) { /* single box */ +UNSUPPORTED("ya84m81ogarx28l99om39lba"); // polypoints[pi].x = boxes[bi].UR.x; +UNSUPPORTED("99xeozpks5v0iza4sv2occuuq"); // polypoints[pi++].y = boxes[bi].LL.y; +UNSUPPORTED("ya84m81ogarx28l99om39lba"); // polypoints[pi].x = boxes[bi].UR.x; +UNSUPPORTED("cjppvcr7k9pknjrjugccsky56"); // polypoints[pi++].y = boxes[bi].UR.y; + } + else { + if (N(prev == -1 && next == -1)) { +UNSUPPORTED("87y5d0ts6xdjyx905bha50f3s"); // /* it went badly, e.g. degenerate box in boxlist */ +UNSUPPORTED("1qt7hixteu3pt64wk1sqw352a"); // agerr(AGERR, "in routesplines, illegal values of prev %d and next %d, line %d\n", prev, next, 476); +UNSUPPORTED("35untdbpd42pt4c74gjbxqx7q"); // return NULL; /* for correctness sake, it's best to just stop */ + } + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("UR").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("LL").getDouble("y")); + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("UR").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("UR").getDouble("y")); + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("LL").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("UR").getDouble("y")); + Z._().polypoints.plus(pi).setDouble("x", boxes.plus(bi).getStruct().getStruct("LL").getDouble("x")); + Z._().polypoints.plus(pi++).setDouble("y", boxes.plus(bi).getStruct().getStruct("LL").getDouble("y")); + } + } + } + else { +UNSUPPORTED("1izvmtfwbnl5xq4u2x5fdraxp"); // agerr(AGERR, "in routesplines, edge is a loop at %s\n", agnameof(aghead(realedge))); +UNSUPPORTED("11hwqop4xebvtcskop4uhpp01"); // return NULL; + } + if (flip!=0) { + int i; + for (bi = 0; bi < boxn; bi++) { + int v = (int) boxes.plus(bi).getStruct().getStruct("UR").getDouble("y"); + boxes.plus(bi).getStruct().getStruct("UR").setDouble("y", -1*boxes.plus(bi).getStruct().getStruct("LL").getDouble("y")); + boxes.plus(bi).getStruct().getStruct("LL").setDouble("y", -v); + } + for (i = 0; i < pi; i++) + Z._().polypoints.plus(i).setDouble("y", -1 * Z._().polypoints.plus(i).getDouble("y")); + } + for (bi = 0; bi < boxn; bi++) { + boxes.plus(bi).getStruct().getStruct("LL").setDouble("x", INT_MAX); + boxes.plus(bi).getStruct().getStruct("UR").setDouble("x", INT_MIN); + } + poly.setPtr("ps", Z._().polypoints); + poly.setInt("pn", pi); + eps.plus(0).getStruct().setDouble("x", pp.getStruct("start").getStruct("p").getDouble("x")); + eps.plus(0).getStruct().setDouble("y", pp.getStruct("start").getStruct("p").getDouble("y")); + eps.plus(1).getStruct().setDouble("x", pp.getStruct("end").getStruct("p").getDouble("x")); + eps.plus(1).getStruct().setDouble("y", pp.getStruct("end").getStruct("p").getDouble("y")); + if (Pshortestpath((Ppoly_t) poly.amp(), eps, (Ppoly_t) pl.amp()) < 0) { +UNSUPPORTED("5wo4uqzvxd2gjq9bz036zhavp"); // agerr(AGERR, "in routesplines, Pshortestpath failed\n"); +UNSUPPORTED("11hwqop4xebvtcskop4uhpp01"); // return NULL; + } + if (polyline!=0) { +UNSUPPORTED("48veztc3k9dfw8tqolu7jsktk"); // make_polyline (pl, &spl); + } + else { + if (poly.getInt("pn") > Z._().edgen) { + Z._().edges = ALLOC_allocated2(poly.getInt("pn"), Z._().edges, Pedge_t.class); + Z._().edgen = poly.getInt("pn"); + } + for (edgei = 0; edgei < poly.getInt("pn"); edgei++) { + Z._().edges.plus(edgei).setStruct("a", Z._().polypoints.plus(edgei).getStruct()); + Z._().edges.plus(edgei).setStruct("b", Z._().polypoints.plus((edgei + 1) % poly.getInt("pn")).getStruct()); + } + if (pp.getStruct("start").getBoolean("constrained")) { + evs.plus(0).getStruct().setDouble("x", cos(pp.getStruct("start").getDouble("theta"))); + evs.plus(0).getStruct().setDouble("y", sin(pp.getStruct("start").getDouble("theta"))); + } else + { + evs.plus(0).getStruct().setDouble("x", 0); + evs.plus(0).getStruct().setDouble("y", 0); + } + if (pp.getStruct("end").getBoolean("constrained")) { + evs.plus(1).getStruct().setDouble("x", -cos(pp.getStruct("end").getDouble("theta"))); + evs.plus(1).getStruct().setDouble("y", -sin(pp.getStruct("end").getDouble("theta"))); + } else + { + evs.plus(1).getStruct().setDouble("x", 0); + evs.plus(1).getStruct().setDouble("y", 0); + } + if (Proutespline(Z._().edges, poly.getInt("pn"), pl, evs.asPtr(), spl.amp()) < 0) { +UNSUPPORTED("elkeyywrfd4hq75w7toc94rzs"); // agerr(AGERR, "in routesplines, Proutespline failed\n"); +UNSUPPORTED("7t3fvwp9cv90qu5bdjdglcgtk"); // return NULL; + } + } + if (mkspacep(spl.getInt("pn"))) +UNSUPPORTED("7x5kpcbvg4va887hky7ufm45y"); // return NULL; /* Bailout if no memory left */ + for (bi = 0; bi < boxn; bi++) { + boxes.plus(bi).getStruct("LL").setDouble("x", INT_MAX); + boxes.plus(bi).getStruct("UR").setDouble("x", INT_MIN); + } + unbounded = NOT(false); + for (splinepi = 0; splinepi < spl.getInt("pn"); splinepi++) { + Z._().ps.plus(splinepi).setStruct(spl.getArrayOfPtr("ps").plus(splinepi).getStruct()); + } + for (loopcnt = 0; unbounded && (loopcnt < 15); loopcnt++) { + limitBoxes (boxes, boxn, Z._().ps, spl.getInt("pn"), delta); + /* The following check is necessary because if a box is not very + * high, it is possible that the sampling above might miss it. + * Therefore, we make the sample finer until all boxes have + * valid values. cf. bug 456. Would making sp[] pointfs help? + */ + for (bi = 0; bi < boxn; bi++) { + /* these fp equality tests are used only to detect if the + * values have been changed since initialization - ok */ + if ((boxes.plus(bi).getStruct("LL").getDouble("x") == INT_MAX) || (boxes.plus(bi).getStruct("UR").getDouble("x") == INT_MIN)) { + delta *= 2; /* try again with a finer interval */ + if (delta > INT_MAX/boxn) /* in limitBoxes, boxn*delta must fit in an int, so give up */ + loopcnt = 15; + break; + } + } + if (bi == boxn) + unbounded = false; + } + if (unbounded) { + /* Either an extremely short, even degenerate, box, or some failure with the path + * planner causing the spline to miss some boxes. In any case, use the shortest path + * to bound the boxes. This will probably mean a bad edge, but we avoid an infinite + * loop and we can see the bad edge, and even use the showboxes scaffolding. + */ + final __struct__ polyspl = __struct__.from(Ppoly_t.class); + System.err.println("Unable to reclaim box space in spline routing for edge \"%s\" -> \"%s\". Something is probably seriously wrong.\n"); + make_polyline (pl, polyspl.amp()); + limitBoxes (boxes, boxn, polyspl.getPtr("ps"), polyspl.getInt("pn"), 10); + Memory.free (polyspl.getPtr("ps")); + } + npoints[0] = spl.getInt("pn"); + return Z._().ps; +} finally { +LEAVING("3mcnemqisisnqtd4mr72ej76y","_routesplines"); +} +} + + + + +//3 axqoytp2rpr8crajhkuvns6q9 +// pointf *routesplines(path * pp, int *npoints) +public static pointf routesplines(path pp, int npoints[]) { +ENTERING("axqoytp2rpr8crajhkuvns6q9","routesplines"); +try { + return (pointf) _routesplines (pp, npoints, 0); +} finally { +LEAVING("axqoytp2rpr8crajhkuvns6q9","routesplines"); +} +} + + + + +//3 2v22s41xitwnnsljk9n01nrcy +// pointf *routepolylines(path * pp, int *npoints) +public static pointf routepolylines(path pp, int npoints[]) { +ENTERING("2v22s41xitwnnsljk9n01nrcy","routepolylines"); +try { + UNSUPPORTED("1kjkc6bl8zpf8zjcwgbyni9p3"); // pointf *routepolylines(path * pp, int *npoints) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6wf7p4npeom96y0l1v39essmx"); // return _routesplines (pp, npoints, 1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("2v22s41xitwnnsljk9n01nrcy","routepolylines"); +} +} + + + + +//3 65qv6x7ghwyt6hey5qd8cgizn +// static int overlap(int i0, int i1, int j0, int j1) +public static int overlap(double i0, double i1, double j0, double j1) {return overlap((int) i0, (int) i1, (int) j0, (int) j1);} +public static int overlap(int i0, int i1, int j0, int j1) { +ENTERING("65qv6x7ghwyt6hey5qd8cgizn","overlap"); +try { + /* i'll bet there's an elegant way to do this */ + if (i1 <= j0) + return 0; + if (i0 >= j1) + return 0; + if ((j0 <= i0) && (i0 <= j1)) + return (j1 - i0); + if ((j0 <= i1) && (i1 <= j1)) + return (i1 - j0); + return MIN(i1 - i0, j1 - j0); +} finally { +LEAVING("65qv6x7ghwyt6hey5qd8cgizn","overlap"); +} +} + + + + +//3 dxqjhiid5f58b9gjxp0v3j97b +// static int checkpath(int boxn, boxf* boxes, path* thepath) +public static int checkpath(int boxn, __array_of_ptr__ boxes, path thepath) { +ENTERING("dxqjhiid5f58b9gjxp0v3j97b","checkpath"); +try { + boxf ba, bb; + int bi, i, errs, l, r, d, u; + int xoverlap, yoverlap; + /* remove degenerate boxes. */ + i = 0; + for (bi = 0; bi < boxn; bi++) { + if (ABS(boxes.plus(bi).getStruct().getStruct("LL").getDouble("y") - boxes.plus(bi).getStruct().getStruct("UR").getDouble("y")) < .01) + continue; + if (ABS(boxes.plus(bi).getStruct().getStruct("LL").getDouble("x") - boxes.plus(bi).getStruct().getStruct("UR").getDouble("x")) < .01) + continue; + if (i != bi) + boxes.plus(i).setStruct(boxes.plus(bi).getStruct()); + i++; + } + boxn = i; + ba = boxes.plus(0).getStruct().amp(); + if (ba.getStruct("LL").getDouble("x") > ba.getStruct("UR").getDouble("x") || ba.getStruct("LL").getDouble("y") > ba.getStruct("UR").getDouble("y")) { +UNSUPPORTED("39tznwvf6k5lgj78jp32p0kfl"); // agerr(AGERR, "in checkpath, box 0 has LL coord > UR coord\n"); +UNSUPPORTED("evdvb9esh16y8zeoczxhcz7xm"); // printpath(thepath); +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; + } + for (bi = 0; bi < boxn - 1; bi++) { + ba = boxes.plus(bi).getStruct().amp(); + bb = boxes.plus(bi + 1).getStruct().amp(); + if (bb.getStruct("LL").getDouble("x") > bb.getStruct("UR").getDouble("x") || bb.getStruct("LL").getDouble("y") > bb.getStruct("UR").getDouble("y")) { +UNSUPPORTED("c8oodo0ge4n4dglb28fvf610v"); // agerr(AGERR, "in checkpath, box %d has LL coord > UR coord\n", +UNSUPPORTED("929pkk2ob1lh7hfe4scuoo5pn"); // bi + 1); +UNSUPPORTED("2m9o6g4nneiul4gt8xb9yb9zi"); // printpath(thepath); +UNSUPPORTED("btmwubugs9vkexo4yb7a5nqel"); // return 1; + } + l = (ba.getStruct("UR").getDouble("x") < bb.getStruct("LL").getDouble("x")) ? 1 : 0; + r = (ba.getStruct("LL").getDouble("x") > bb.getStruct("UR").getDouble("x")) ? 1 : 0; + d = (ba.getStruct("UR").getDouble("y") < bb.getStruct("LL").getDouble("y")) ? 1 : 0; + u = (ba.getStruct("LL").getDouble("y") > bb.getStruct("UR").getDouble("y")) ? 1 : 0; + errs = l + r + d + u; + /*if (errs > 0 && Verbose) { + fprintf(stderr, "in checkpath, boxes %d and %d don't touch\n", + bi, bi + 1); + printpath(thepath); + }*/ + if (errs > 0) { + int xy; + if (l == 1) + { + xy = (int) ba.getStruct("UR").getDouble("x"); + ba.getStruct("UR").setDouble("x", bb.getStruct("LL").getDouble("x")); + bb.getStruct("LL").setDouble("x", xy); + l = 0; + } + else if (r == 1) +UNSUPPORTED("3naapn9c6ymy8kj291147k4z4"); // xy = ba.getStruct("LL").getDouble("x"), ba.getStruct("LL").getDouble("x") = bb.getStruct("UR").getDouble("x"), bb.getStruct("UR").getDouble("x") = xy, r = 0; + else if (d == 1) +UNSUPPORTED("eg1w87s0blk4i583rqumhmv6n"); // xy = ba.getStruct("UR").getDouble("y"), ba.getStruct("UR").getDouble("y") = bb.getStruct("LL").getDouble("y"), bb.getStruct("LL").getDouble("y") = xy, d = 0; + else if (u == 1) +UNSUPPORTED("5kcd52bwvbxxs0md0enfs100u"); // xy = ba.getStruct("LL").getDouble("y"), ba.getStruct("LL").getDouble("y") = bb.getStruct("UR").getDouble("y"), bb.getStruct("UR").getDouble("y") = xy, u = 0; + for (i = 0; i < errs - 1; i++) { +UNSUPPORTED("as3p2ldwbg3rbgy64oxx5phar"); // if (l == 1) +UNSUPPORTED("efz1z5cfywki1k6q6avldku9z"); // xy = (ba.getStruct("UR").getDouble("x") + bb.getStruct("LL").getDouble("x")) / 2.0 + 0.5, ba.getStruct("UR").getDouble("x") = +UNSUPPORTED("6dfh7cf1xptapqd1mcqtxjrxa"); // bb.getStruct("LL").getDouble("x") = xy, l = 0; +UNSUPPORTED("ang3qytu77fd5owijwbnmkdav"); // else if (r == 1) +UNSUPPORTED("67ehof0qqlk339zgl0sqwfu5r"); // xy = (ba.getStruct("LL").getDouble("x") + bb.getStruct("UR").getDouble("x")) / 2.0 + 0.5, ba.getStruct("LL").getDouble("x") = +UNSUPPORTED("llmwvndoq1ne9c62ohtstkwa"); // bb.getStruct("UR").getDouble("x") = xy, r = 0; +UNSUPPORTED("3ce9i9asrqbuog7v1tdurqo6e"); // else if (d == 1) +UNSUPPORTED("3mibjrb2jtfextkg9ac5k9spl"); // xy = (ba.getStruct("UR").getDouble("y") + bb.getStruct("LL").getDouble("y")) / 2.0 + 0.5, ba.getStruct("UR").getDouble("y") = +UNSUPPORTED("bccpbv2n38c5utkfh7msoc2y"); // bb.getStruct("LL").getDouble("y") = xy, d = 0; +UNSUPPORTED("7302rnmwdji9n7txquk8k36to"); // else if (u == 1) +UNSUPPORTED("9oqpoodvpheztihe63p40guof"); // xy = (ba.getStruct("LL").getDouble("y") + bb.getStruct("UR").getDouble("y")) / 2.0 + 0.5, ba.getStruct("LL").getDouble("y") = +UNSUPPORTED("2cnb1bdjh6y26f98vonla73qa"); // bb.getStruct("UR").getDouble("y") = xy, u = 0; + } + } + /* check for overlapping boxes */ + xoverlap = overlap(ba.getStruct("LL").getDouble("x"), ba.getStruct("UR").getDouble("x"), bb.getStruct("LL").getDouble("x"), bb.getStruct("UR").getDouble("x")); + yoverlap = overlap(ba.getStruct("LL").getDouble("y"), ba.getStruct("UR").getDouble("y"), bb.getStruct("LL").getDouble("y"), bb.getStruct("UR").getDouble("y")); + if (xoverlap!=0 && yoverlap!=0) { +UNSUPPORTED("d2y9tmfuv1tsgkmmjchguto8b"); // if (xoverlap < yoverlap) { +UNSUPPORTED("1wqz597xk17qe9z6tjsf0c3cy"); // if (ba.getStruct("UR").getDouble("x") - ba.getStruct("LL").getDouble("x") > bb.getStruct("UR").getDouble("x") - bb.getStruct("LL").getDouble("x")) { +UNSUPPORTED("c9abicea7ozw5xtcem9pfdfh1"); // /* take space from ba */ +UNSUPPORTED("5dqxf3gq05pjtobtnru1g2tuj"); // if (ba.getStruct("UR").getDouble("x") < bb.getStruct("UR").getDouble("x")) +UNSUPPORTED("8gz6k803qp9zyw9s459cpp039"); // ba.getStruct("UR").getDouble("x") = bb.getStruct("LL").getDouble("x"); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("5r6ck8hfb1cxywn9go61se9kx"); // ba.getStruct("LL").getDouble("x") = bb.getStruct("UR").getDouble("x"); +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("6f5ihsq4qpci45h8av0c9wdi4"); // /* take space from bb */ +UNSUPPORTED("5dqxf3gq05pjtobtnru1g2tuj"); // if (ba.getStruct("UR").getDouble("x") < bb.getStruct("UR").getDouble("x")) +UNSUPPORTED("aojz6tby78spomt80sc91qedn"); // bb.getStruct("LL").getDouble("x") = ba.getStruct("UR").getDouble("x"); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("cdx834oywc193yujb6sgnv8m7"); // bb.getStruct("UR").getDouble("x") = ba.getStruct("LL").getDouble("x"); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6mdyr1xpycmbl0dew79oujjj4"); // } else { /* symmetric for y coords */ +UNSUPPORTED("18cdu0l0poruy7djzfr7vazf3"); // if (ba.getStruct("UR").getDouble("y") - ba.getStruct("LL").getDouble("y") > bb.getStruct("UR").getDouble("y") - bb.getStruct("LL").getDouble("y")) { +UNSUPPORTED("c9abicea7ozw5xtcem9pfdfh1"); // /* take space from ba */ +UNSUPPORTED("ahgq8sh8si0vwzdw93diqa9e"); // if (ba.getStruct("UR").getDouble("y") < bb.getStruct("UR").getDouble("y")) +UNSUPPORTED("n1xvon1d7b8odl1mhbw8fsc2"); // ba.getStruct("UR").getDouble("y") = bb.getStruct("LL").getDouble("y"); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("3h281jzhb4w3dt2115b900130"); // ba.getStruct("LL").getDouble("y") = bb.getStruct("UR").getDouble("y"); +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("6f5ihsq4qpci45h8av0c9wdi4"); // /* take space from bb */ +UNSUPPORTED("ahgq8sh8si0vwzdw93diqa9e"); // if (ba.getStruct("UR").getDouble("y") < bb.getStruct("UR").getDouble("y")) +UNSUPPORTED("5ws4vr52jf28wejgwepvdf82g"); // bb.getStruct("LL").getDouble("y") = ba.getStruct("UR").getDouble("y"); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("cityroxzrcmi8458m7ynqkew9"); // bb.getStruct("UR").getDouble("y") = ba.getStruct("LL").getDouble("y"); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } + } + } + if (thepath.getStruct("start").getStruct("p").getDouble("x") < boxes.plus(0).getStruct().getStruct("LL").getDouble("x") + || thepath.getStruct("start").getStruct("p").getDouble("x") > boxes.plus(0).getStruct().getStruct("UR").getDouble("x") + || thepath.getStruct("start").getStruct("p").getDouble("y") < boxes.plus(0).getStruct().getStruct("LL").getDouble("y") + || thepath.getStruct("start").getStruct("p").getDouble("y") > boxes.plus(0).getStruct().getStruct("UR").getDouble("y")) { + /*if (Verbose) { + fprintf(stderr, "in checkpath, start port not in first box\n"); + printpath(thepath); + }*/ + if (thepath.getStruct("start").getStruct("p").getDouble("x") < boxes.plus(0).getStruct().getStruct("LL").getDouble("x")) + thepath.getStruct("start").getStruct("p").setDouble("x", boxes.plus(0).getStruct().getStruct("LL").getDouble("x")); + if (thepath.getStruct("start").getStruct("p").getDouble("x") > boxes.plus(0).getStruct().getStruct("UR").getDouble("x")) + thepath.getStruct("start").getStruct("p").setDouble("x", boxes.plus(0).getStruct().getStruct("UR").getDouble("x")); + if (thepath.getStruct("start").getStruct("p").getDouble("y") < boxes.plus(0).getStruct().getStruct("LL").getDouble("y")) + thepath.getStruct("start").getStruct("p").setDouble("y", boxes.plus(0).getStruct().getStruct("LL").getDouble("y")); + if (thepath.getStruct("start").getStruct("p").getDouble("y") > boxes.plus(0).getStruct().getStruct("UR").getDouble("y")) + thepath.getStruct("start").getStruct("p").setDouble("y", boxes.plus(0).getStruct().getStruct("UR").getDouble("y")); + } + if (thepath.getStruct("end").getStruct("p").getDouble("x") < boxes.plus(boxn - 1).getStruct().getStruct("LL").getDouble("x") + || thepath.getStruct("end").getStruct("p").getDouble("x") > boxes.plus(boxn - 1).getStruct().getStruct("UR").getDouble("x") + || thepath.getStruct("end").getStruct("p").getDouble("y") < boxes.plus(boxn - 1).getStruct().getStruct("LL").getDouble("y") + || thepath.getStruct("end").getStruct("p").getDouble("y") > boxes.plus(boxn - 1).getStruct().getStruct("UR").getDouble("y")) { + /*if (Verbose) { + fprintf(stderr, "in checkpath, end port not in last box\n"); + printpath(thepath); + }*/ + if (thepath.getStruct("end").getStruct("p").getDouble("x") < boxes.plus(boxn - 1).getStruct().getStruct("LL").getDouble("x")) + thepath.getStruct("end").getStruct("p").setDouble("x", boxes.plus(boxn - 1).getStruct().getStruct("LL").getDouble("x")); + if (thepath.getStruct("end").getStruct("p").getDouble("x") > boxes.plus(boxn - 1).getStruct().getStruct("UR").getDouble("x")) + thepath.getStruct("end").getStruct("p").setDouble("x", boxes.plus(boxn - 1).getStruct().getStruct("UR").getDouble("x")); + if (thepath.getStruct("end").getStruct("p").getDouble("y") < boxes.plus(boxn - 1).getStruct().getStruct("LL").getDouble("y")) + thepath.getStruct("end").getStruct("p").setDouble("y", boxes.plus(boxn - 1).getStruct().getStruct("LL").getDouble("y")); + if (thepath.getStruct("end").getStruct("p").getDouble("y") > boxes.plus(boxn - 1).getStruct().getStruct("UR").getDouble("y")) + thepath.getStruct("end").getStruct("p").setDouble("y", boxes.plus(boxn - 1).getStruct().getStruct("UR").getDouble("y")); + } + return 0; +} finally { +LEAVING("dxqjhiid5f58b9gjxp0v3j97b","checkpath"); +} +} + + + + +//3 de6jvvw786rx88318tuuqywgq +// static int mkspacep(int size) +public static boolean mkspacep(int size) { +ENTERING("de6jvvw786rx88318tuuqywgq","mkspacep"); +try { + if (size > Z._().maxpn) { + int newmax = Z._().maxpn + (size / 300 + 1) * 300; + Z._().ps = RALLOC(newmax, Z._().ps, pointf.class); + if (N(Z._().ps)) { +UNSUPPORTED("ds2v91aohji00tc7zmjuc3v6q"); // agerr(AGERR, "cannot re-allocate ps\n"); +UNSUPPORTED("btmwubugs9vkexo4yb7a5nqel"); // return 1; + } + Z._().maxpn = newmax; + } + return false; +} finally { +LEAVING("de6jvvw786rx88318tuuqywgq","mkspacep"); +} +} + + + + +//3 eoba7h2vv4nbevb7t3uj8xdxd +// static void printpath(path * pp) +public static Object printpath(Object... arg) { +UNSUPPORTED("baqhg7gu97aw2vlb1lexu7ocs"); // static void printpath(path * pp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8k9loe0uz6grwq8fq5iqfih2c"); // int bi; +UNSUPPORTED("hop7xuggqoec7e0p0gpzb5ys"); // fprintf(stderr, "%d boxes:\n", pp->nbox); +UNSUPPORTED("fqxwgt6brxm5novm8sey6vp3"); // for (bi = 0; bi < pp->nbox; bi++) +UNSUPPORTED("2n85v7ex13a1rhnx63lam2yth"); // fprintf(stderr, "%d (%.5g, %.5g), (%.5g, %.5g)\n", bi, +UNSUPPORTED("86zhcjpiy229kbbomcqmj1bvn"); // pp->boxes[bi].LL.x, pp->boxes[bi].LL.y, +UNSUPPORTED("dbddokl6i6319f232oqnbecmv"); // pp->boxes[bi].UR.x, pp->boxes[bi].UR.y); +UNSUPPORTED("867y6166h7x6yibezm0cb0cf1"); // fprintf(stderr, "start port: (%.5g, %.5g), tangent angle: %.5g, %s\n", +UNSUPPORTED("8nze219nhghn1a0uewjfq30xr"); // pp->start.p.x, pp->start.p.y, pp->start.theta, +UNSUPPORTED("1apwqgz53812wo2ejjdn8zz3h"); // pp->start.constrained ? "constrained" : "not constrained"); +UNSUPPORTED("4i8p7ha6i9bkydbg3i04ssmqj"); // fprintf(stderr, "end port: (%.5g, %.5g), tangent angle: %.5g, %s\n", +UNSUPPORTED("32nx4386ouvodf09v0u4emfkv"); // pp->end.p.x, pp->end.p.y, pp->end.theta, +UNSUPPORTED("d7cxrqy42haay280fzr1e81ts"); // pp->end.constrained ? "constrained" : "not constrained"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6u7mpvz8gz08jacc16azxm31t +// static pointf get_centroid(Agraph_t *g) +public static Object get_centroid(Object... arg) { +UNSUPPORTED("2zo1gwkn1bj1agy4g8dxcfmh"); // static pointf get_centroid(Agraph_t *g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6reqgncjwgiuo3fb8rkhmtjv1"); // int cnt = 0; +UNSUPPORTED("e1s7ys0dbvp12r1vo9cdl7sp0"); // static pointf sum = {0.0, 0.0}; +UNSUPPORTED("4nx1l2ustbo0ptupk2ja9ekds"); // static Agraph_t *save; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("f17csexi07fwmif5pkxj2wgr1"); // sum.x = (GD_bb(g).LL.x + GD_bb(g).UR.x) / 2.0; +UNSUPPORTED("8hoglhn0m8txbvp8w9fvo5cwt"); // sum.y = (GD_bb(g).LL.y + GD_bb(g).UR.y) / 2.0; +UNSUPPORTED("e8d6re0f7zq6d14zby6lxtm85"); // return sum; +UNSUPPORTED("5xw9py1u6p24f7e8fju2hsmw0"); // if (save == g) return sum; +UNSUPPORTED("a1cvki7btccn0pv2gpusya4pt"); // save = g; +UNSUPPORTED("7wq24g054kmx3aw25vk5ksj4"); // for (n = agfstnode(g); n; n = agnxtnode(g,n)) { +UNSUPPORTED("7mgmah70c4cze5ed5zlcjfnpj"); // sum.x += ND_pos(n)[0]; +UNSUPPORTED("3pk32i8trbg5r4tjfzi0xepsa"); // sum.y += ND_pos(n)[1]; +UNSUPPORTED("77mslev6fngkh87g2jkd6j87j"); // cnt++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ci5ydgm2xpqvgw8qn5sz0317w"); // sum.x = sum.x / cnt; +UNSUPPORTED("f1ofwhoh52tmotz2jx74ji4h5"); // sum.y = sum.y / cnt; +UNSUPPORTED("e8d6re0f7zq6d14zby6lxtm85"); // return sum; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7l11iqopuq2ovl93rxmwkobas +// static void bend(pointf spl[4], pointf centroid) +public static Object bend(Object... arg) { +UNSUPPORTED("4ftn2rr6n4c36dbi9as8t8g5h"); // static void bend(pointf spl[4], pointf centroid) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1xm6245yjmk93iuvvm93e1rci"); // pointf midpt,a; +UNSUPPORTED("6zgogm7cuuy7co8hhompfoo5"); // double r; +UNSUPPORTED("9lxjpyaeeeq2agdn7fik6kzhs"); // double dist,dx,dy; +UNSUPPORTED("5bkk1q959a76y20xt0228j9d7"); // midpt.x = (spl[0].x + spl[3].x)/2.0; +UNSUPPORTED("bfx7hrazv0khewy4e1ejp2kyb"); // midpt.y = (spl[0].y + spl[3].y)/2.0; +UNSUPPORTED("9ydjah76t018eukiay40izzko"); // dx = (spl[3].x - spl[0].x); +UNSUPPORTED("ap0c81vlb8rsjnpumymlnvzrl"); // dy = (spl[3].y - spl[0].y); +UNSUPPORTED("dfs4ufukqaz9pf7ey54fbuaco"); // dist = sqrt(dx*dx + dy*dy); +UNSUPPORTED("97su53ievky8nzohnw0en0a6e"); // r = dist/5.0; +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("cltgduzxyw56ktxuoeoqt4bkm"); // double vX = centroid.x - midpt.x; +UNSUPPORTED("h4thwscp36mqboiugjkim5um"); // double vY = centroid.y - midpt.y; +UNSUPPORTED("5q6wpyh72kf9xggy2oc929uc3"); // double magV = sqrt(vX*vX + vY*vY); +UNSUPPORTED("1w5d961mnlte15ap13tdi5sv2"); // a.x = midpt.x - vX / magV * r; /* + would be closest point */ +UNSUPPORTED("2oxj7hzixzdciej9f8u7xe49o"); // a.y = midpt.y - vY / magV * r; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("645kbqr5zpbe6vj9z3o2x5yrb"); // /* this can be improved */ +UNSUPPORTED("72i64plp6g9odwle7ly7wgn4a"); // spl[1].x = spl[2].x = a.x; +UNSUPPORTED("at1u1jcu4ulhd191p0rfc9e8j"); // spl[1].y = spl[2].y = a.y; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2erpr561ggowmq2m9465p5kqd +// void makeStraightEdge(graph_t * g, edge_t * e, int et, splineInfo* sinfo) +public static Object makeStraightEdge(Object... arg) { +UNSUPPORTED("347dderd02mvlozoheqo4ejwo"); // void +UNSUPPORTED("89t1p0jilkexnvk5i1vv1arc0"); // makeStraightEdge(graph_t * g, edge_t * e, int et, splineInfo* sinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7pmvaj5a5w3pee9zkh22s4jt5"); // edge_t *e0; +UNSUPPORTED("821nfzu5iwd6ayryeggj37hj2"); // edge_t** edges; +UNSUPPORTED("19s88cb2xh6yjpqg0ip3ovi08"); // edge_t* elist[20]; +UNSUPPORTED("5dd4r3fk1fwybt8tvqt4z4ta3"); // int i, e_cnt; +UNSUPPORTED("310og4kvqsrlm4vs26zqw8c8p"); // e_cnt = 1; +UNSUPPORTED("63kfcznl8sc62h1pj6k83cjn3"); // e0 = e; +UNSUPPORTED("1451mr2njzp5m6mj64k6m36tf"); // while ((e0 = ED_to_virt(e0))) e_cnt++; +UNSUPPORTED("1qovtxs3b3fa6ztj4wx1ahkf2"); // if (e_cnt <= 20) +UNSUPPORTED("bp3rco5i77vkqs7wua0k7dbfo"); // edges = elist; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("8zwb4z35iwpyfy9d9n4b51yvh"); // edges = (edge_t**)zmalloc((e_cnt)*sizeof(edge_t*)); +UNSUPPORTED("63kfcznl8sc62h1pj6k83cjn3"); // e0 = e; +UNSUPPORTED("tf4qi3e2hsjxi603z57w6hx6"); // for (i = 0; i < e_cnt; i++) { +UNSUPPORTED("106t1hs57atf24mgepcp9wwjw"); // edges[i] = e0; +UNSUPPORTED("dfdtts0ddwzo6ffy5m1pso8t6"); // e0 = ED_to_virt(e0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("db2lohkib2plgiw7i90nxgkjk"); // makeStraightEdges (g, edges, e_cnt, et, sinfo); +UNSUPPORTED("b1xlizpp11lvumjyajfk6mxky"); // if (e_cnt > 20) free (edges); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5ztzq4z6l8uj7cn0d1ke7n87p +// void makeStraightEdges(graph_t * g, edge_t** edges, int e_cnt, int et, splineInfo* sinfo) +public static Object makeStraightEdges(Object... arg) { +UNSUPPORTED("347dderd02mvlozoheqo4ejwo"); // void +UNSUPPORTED("ayvyrhydt6lt2z6uvpxyh2nxn"); // makeStraightEdges(graph_t * g, edge_t** edges, int e_cnt, int et, splineInfo* sinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5u4oz0rrd9yradyuzr6qniald"); // pointf dumb[4]; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("8i0kwb8r6a2sj6nuvcy3bg9rx"); // node_t *head; +UNSUPPORTED("b6jt41a0u7si76m5i0lookv4x"); // int curved = (et == (2 << 1)); +UNSUPPORTED("2qrm9sibdk45g8miaadnlmf0z"); // pointf perp; +UNSUPPORTED("e88o7l9ftcoq7m3q7njvm0hjb"); // pointf del; +UNSUPPORTED("7pmvaj5a5w3pee9zkh22s4jt5"); // edge_t *e0; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("39f8qp0sf99n5kz67fe1sjnao"); // int i, j, xstep, dx; +UNSUPPORTED("5qf9bfxinlwybt6vckmul8n5c"); // double l_perp; +UNSUPPORTED("biqd62eqps6szrtk8p8sci92q"); // pointf dumber[4]; +UNSUPPORTED("3ircl7kohy2qt6yrj3lysuhor"); // pointf p, q; +UNSUPPORTED("b0ek9vxrdn6l0aponkc0ezxof"); // e = edges[0]; +UNSUPPORTED("dul1axf6kjslblufm4omk5k32"); // n = agtail(e); +UNSUPPORTED("9vcgvjkna4elv9mw682bcl1ry"); // head = aghead(e); +UNSUPPORTED("b7iaxy7swt1knhamnyh2kvzlj"); // p = dumb[1] = dumb[0] = add_pointf(ND_coord(n), ED_tail_port(e).p); +UNSUPPORTED("di45fpacl09sotabtbtbrk4bw"); // q = dumb[2] = dumb[3] = add_pointf(ND_coord(head), ED_head_port(e).p); +UNSUPPORTED("9yh32i6luwgciwhvrfvt8aw1a"); // if ((e_cnt == 1) || Concentrate) { +UNSUPPORTED("coqqvdvknesi3rdbg68qcc6vn"); // if (curved) bend(dumb,get_centroid(g)); +UNSUPPORTED("ejd1q887zolcoupzctycvs5cv"); // clip_and_install(e, aghead(e), dumb, 4, sinfo); +UNSUPPORTED("11s5bteac4942mtfiiy4qbq5t"); // addEdgeLabels(g, e, p, q); +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("63kfcznl8sc62h1pj6k83cjn3"); // e0 = e; +UNSUPPORTED("6qz2idcg1avhf5caqig9ewcxv"); // if (APPROXEQPT(dumb[0], dumb[3], MILLIPOINT)) { +UNSUPPORTED("738uip25tpsxuc3qvsye90wm7"); // /* degenerate case */ +UNSUPPORTED("bq580fqcdybbomvpm4qmh5jtq"); // dumb[1] = dumb[0]; +UNSUPPORTED("8u36zhoh7cpf1dv8ky0ngt667"); // dumb[2] = dumb[3]; +UNSUPPORTED("bgjd2ldhnogj885m52k0nxe0d"); // del.x = 0; +UNSUPPORTED("b1x914d40c33xvbmrjx82p563"); // del.y = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("3ksfb9uz6ssvxevjyvfdhcx15"); // perp.x = dumb[0].y - dumb[3].y; +UNSUPPORTED("5qy02hcm7w3srhbws1saebqfk"); // perp.y = dumb[3].x - dumb[0].x; +UNSUPPORTED("dkis85cdygy51zdkxp4m6zrfn"); // l_perp = LEN(perp.x, perp.y); +UNSUPPORTED("60ix8gm4odvpl4njysex8efr4"); // xstep = GD_nodesep(g->root); +UNSUPPORTED("9lo8r2t8xlvkucmcxj6r7zcjc"); // dx = xstep * (e_cnt - 1) / 2; +UNSUPPORTED("29kynt0cc7vrimccs1typen4c"); // dumb[1].x = dumb[0].x + (dx * perp.x) / l_perp; +UNSUPPORTED("8ffy5d6eokrgqxbbzlr3oeo7w"); // dumb[1].y = dumb[0].y + (dx * perp.y) / l_perp; +UNSUPPORTED("5ss1wkhlrlbzhjmgex5g5td0j"); // dumb[2].x = dumb[3].x + (dx * perp.x) / l_perp; +UNSUPPORTED("78hu4vl7uqaa2xjxh966lsl2z"); // dumb[2].y = dumb[3].y + (dx * perp.y) / l_perp; +UNSUPPORTED("czezd6edgg6prqa40qn4cjk99"); // del.x = -xstep * perp.x / l_perp; +UNSUPPORTED("brlhwaq7o7jlirlmbgsluegqc"); // del.y = -xstep * perp.y / l_perp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("tf4qi3e2hsjxi603z57w6hx6"); // for (i = 0; i < e_cnt; i++) { +UNSUPPORTED("ezgc9yof65sv59h9bc3xaarqc"); // e0 = edges[i]; +UNSUPPORTED("cdinc4vpag193dvamw97pjop"); // if (aghead(e0) == head) { +UNSUPPORTED("70bzwaan8xb1eymztyzg8db4z"); // p = dumb[0]; +UNSUPPORTED("7s7bzu6vkika1vowxe90pn8jl"); // q = dumb[3]; +UNSUPPORTED("xt68cvhca5ecivsf28r6480k"); // for (j = 0; j < 4; j++) { +UNSUPPORTED("euip77qbbydsz8d5amnoqz2wp"); // dumber[j] = dumb[j]; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("65qac2gqwej8ehvl0kr0azgoc"); // p = dumb[3]; +UNSUPPORTED("1p3ys1kne72eu96ymhhd08ki9"); // q = dumb[0]; +UNSUPPORTED("xt68cvhca5ecivsf28r6480k"); // for (j = 0; j < 4; j++) { +UNSUPPORTED("cl6iic4z87ms6sxw112uwa8iq"); // dumber[3 - j] = dumb[j]; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("duxo2x55p2xtgyt3bec5dikrr"); // if (et == (3 << 1)) { +UNSUPPORTED("3cuaxa5hpxf783bmxnedboxcr"); // Ppoint_t pts[4]; +UNSUPPORTED("ey5aedx85s5fe7o31ioqdfot3"); // Ppolyline_t spl, line; +UNSUPPORTED("8h359s121i98xp9zlr35vrgo9"); // line.pn = 4; +UNSUPPORTED("57e37c2h1b5chgu6si6xi0cp4"); // line.ps = pts; +UNSUPPORTED("phcktpjx2242lnn14blec2nu"); // for (j=0; j < 4; j++) { +UNSUPPORTED("5tjkl4ul3rus6dd6xt7wfhv9a"); // pts[j] = dumber[j]; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5uszm2xlyusuekyfgopt358b8"); // make_polyline (line, &spl); +UNSUPPORTED("4g67nliqr55eodkgwfdxbw87k"); // clip_and_install(e0, aghead(e0), spl.ps, spl.pn, sinfo); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("cs4gj80s0cjsf32zlavo9gg0q"); // clip_and_install(e0, aghead(e0), dumber, 4, sinfo); +UNSUPPORTED("9g4169ket42x6bl41jrpu9vvm"); // addEdgeLabels(g, e0, p, q); +UNSUPPORTED("8yg135oq3whkc9jbibbmn6v6a"); // dumb[1].x += del.x; +UNSUPPORTED("9sw7189ksprjtdn4dlniux8z4"); // dumb[1].y += del.y; +UNSUPPORTED("81xmo1my3dst3f72w8v2o3xb6"); // dumb[2].x += del.x; +UNSUPPORTED("bba6iln00idzhk4wan9c8n5ja"); // dumb[2].y += del.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/shapes__c.java plantuml-8039/src/gen/lib/common/shapes__c.java --- plantuml-8024/src/gen/lib/common/shapes__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/shapes__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,4931 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static gen.lib.cgraph.attr__c.agget; +import static gen.lib.cgraph.obj__c.agraphof; +import static gen.lib.common.geom__c.ccwrotatepf; +import static gen.lib.common.memory__c.zmalloc; +import static gen.lib.common.utils__c.late_double; +import static gen.lib.common.utils__c.late_int; +import static gen.lib.common.utils__c.late_string; +import static gen.lib.common.utils__c.mapbool; +import static gen.lib.common.utils__c.safefile; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.abs; +import static smetana.core.JUtils.atan2; +import static smetana.core.JUtils.cos; +import static smetana.core.JUtils.enumAsInt; +import static smetana.core.JUtils.sin; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtils.sqrt; +import static smetana.core.JUtils.strcmp; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.GD_flip; +import static smetana.core.Macro.GD_rankdir; +import static smetana.core.Macro.INSIDE; +import static smetana.core.Macro.MAX; +import static smetana.core.Macro.M_PI; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_has_port; +import static smetana.core.Macro.ND_height; +import static smetana.core.Macro.ND_ht; +import static smetana.core.Macro.ND_label; +import static smetana.core.Macro.ND_lw; +import static smetana.core.Macro.ND_rw; +import static smetana.core.Macro.ND_shape; +import static smetana.core.Macro.ND_shape_info; +import static smetana.core.Macro.ND_width; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.RADIANS; +import static smetana.core.Macro.ROUND; +import static smetana.core.Macro.SQR; +import static smetana.core.Macro.SQRT2; +import static smetana.core.Macro.UNSUPPORTED; +import static smetana.core.Macro.fabs; +import static smetana.core.Macro.hypot; +import h.Agnode_s; +import h.Agnodeinfo_t; +import h.Agobj_s; +import h.Agraphinfo_t; +import h.boxf; +import h.inside_t; +import h.point; +import h.pointf; +import h.polygon_t; +import h.port; +import h.shape_desc; +import h.shape_kind; +import smetana.core.CFunctionImpl; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class shapes__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 8h06z4a8bluhfqji3ysnlr3q8 +// static port Center = +/*private final static __struct__ Center = __struct__.from(port.class); +static { +Center.getStruct("p").setDouble("x", 0); +Center.getStruct("p").setDouble("y", 0); +Center.setDouble("theta", -1); +Center.setPtr("bp", null); +Center.setInt("defined", 0); +Center.setInt("constrained", 0); +Center.setInt("clip", 1); +Center.setInt("dyna", 0); +Center.setInt("order", 0); +Center.setInt("side", 0); +}*/ + +//1 ankops6rt7vi2sp8uptwl13x8 +// static char *point_style[3] = + + +//1 bdp4y4mfwmo49z2gqqtn77uhl +// static poly_desc_t star_gen = + + +//1 wr8d5qdzgrixltx1i3jol1p +// static polygon_t p_polygon = + + +//1 606ee1uued1p0d2o7h96efu9d +// static polygon_t p_ellipse = +/*public static final __struct__ p_ellipse = __struct__.from(polygon_t.class); +static { +p_ellipse.setInt("regular", 0); +p_ellipse.setInt("peripheries", 1); +p_ellipse.setInt("sides", 1); +p_ellipse.setDouble("orientation", 0.); +p_ellipse.setDouble("distortion", 0.); +p_ellipse.setDouble("skew", 0.); +}*/ + +//1 7tbw5besp7yern6vgsh7q9kop +// static polygon_t p_circle = + + +//1 ugo4ltv5o559q27tqn3r5bkl +// static polygon_t p_egg = + + +//1 9ftn1ffly0e6ffwzth9q47uz1 +// static polygon_t p_triangle = + + +//1 bw9fxu2ppyosdc0fayd10ik29 +// static polygon_t p_box = +/*public final static __struct__ p_box = __struct__.from(polygon_t.class); +static { +p_box.setInt("regular", 0); +p_box.setInt("peripheries", 1); +p_box.setInt("sides", 4); +p_box.setDouble("orientation", 0.); +p_box.setDouble("distortion", 0.); +p_box.setDouble("skew", 0.); +}*/ + +//1 8y2jx4eiuwgzz2taa1yvgkxrr +// static polygon_t p_square = + + +//1 cd8ymd9cpth6be42bx9hneg3k +// static polygon_t p_plaintext = + + +//1 3rr68w4p4ndvjnd8v8t8kyvof +// static polygon_t p_diamond = + + +//1 2vq6zitonpglah4otrj51bc +// static polygon_t p_trapezium = + + +//1 1cmprhux7ohd0kvyuccronajx +// static polygon_t p_parallelogram = + + +//1 cviu1ws3i3zudpmfyw9qde1g +// static polygon_t p_house = + + +//1 a2801adj9tjun8kavpqhec32e +// static polygon_t p_pentagon = + + +//1 bqxkc5i7w4qux0yj6fcvk6i3j +// static polygon_t p_hexagon = + + +//1 9dfxrmf5irbiyglpnjva9shjs +// static polygon_t p_septagon = + + +//1 8dintdmurw1k99hvel0eylkx +// static polygon_t p_octagon = + + +//1 u1t73h3kmbe3dl3nesrd3lli +// static polygon_t p_note = + + +//1 7rueooxoen3szgjos715fhyug +// static polygon_t p_tab = + + +//1 96p5brfwqh960bh90nko57q5y +// static polygon_t p_folder = + + +//1 asszwikv8vsd8r82g9g2dpib0 +// static polygon_t p_box3d = + + +//1 6svqv9h6e8w1upvle3kvqalpz +// static polygon_t p_component = + + +//1 eupkzejle0xh3lxkum31v0cym +// static polygon_t p_underline = + + +//1 dhsf0ibx3e26whwyfd0b6vwxe +// static polygon_t p_doublecircle = + + +//1 bnqceu0ie276qgntzbxk8rasy +// static polygon_t p_invtriangle = + + +//1 b4qh6rkxlk3dhq3za50nz70g9 +// static polygon_t p_invtrapezium = + + +//1 6975h7vqnuq4k5wgxu223q48a +// static polygon_t p_invhouse = + + +//1 1y504l91pfltem8lf4b9yugmh +// static polygon_t p_doubleoctagon = + + +//1 dejwm44vd6au8zngxmnsctb6h +// static polygon_t p_tripleoctagon = + + +//1 cm0diez4xczfsq1e49z5xyx9l +// static polygon_t p_Mdiamond = + + +//1 apcunukhbaji0umf6h2rajwjk +// static polygon_t p_Msquare = + + +//1 4aby821sp86fcw8lihjx1u1t5 +// static polygon_t p_Mcircle = + + +//1 8w3de46truvv9a11sqxbzi3gd +// static polygon_t p_star = + + +//1 2q69w7roanbt7ldossjvr2zpp +// static polygon_t p_promoter = + + +//1 8lsvyuy90dk6sxfcfd1g751u5 +// static polygon_t p_cds = + + +//1 73gtceras7h3x5rqur5zh20pm +// static polygon_t p_terminator = + + +//1 1ggglfhw5mb7uo3xo8fjy78ly +// static polygon_t p_utr = + + +//1 88ze1f92hnc02v5rtzevj6laf +// static polygon_t p_insulator = + + +//1 4gnk4h7twwbbkfsm2v2z5kpm3 +// static polygon_t p_ribosite = + + +//1 9p4ragp400660i10e7kw35j6h +// static polygon_t p_rnastab = + + +//1 cj4q7wai5wonk0e937ggwye7a +// static polygon_t p_proteasesite = + + +//1 cyxbjzhf18t5oktxygjnjdzvr +// static polygon_t p_proteinstab = + + +//1 9ddzvwdbr4wdohmir5y8a0fvd +// static polygon_t p_primersite = + + +//1 9istclblyhg67yp72g9xs9bwg +// static polygon_t p_restrictionsite = + + +//1 11kgrzyf2g5uc9sq4sbrd2smb +// static polygon_t p_fivepoverhang = + + +//1 6wf3da8bdlf8f8mo2u6czpmh0 +// static polygon_t p_threepoverhang = + + +//1 97vug445f04zvds36aoa0xylg +// static polygon_t p_noverhang = + + +//1 86ma4kod9amw5w024mnxyhfkj +// static polygon_t p_assembly = + + +//1 23k9m2gdw1fj7q7pdlrcsawl2 +// static polygon_t p_signature = + + +//1 ab97s73vl8iehclhx49x8wby5 +// static polygon_t p_rpromoter = + + +//1 1vm63ixobrd8mt967caec1jb +// static polygon_t p_rarrow = + + +//1 7k1qamsg50xfpik4fmzl26vs1 +// static polygon_t p_larrow = + + +//1 659vs9ww96a1ojqko4w4ezt71 +// static polygon_t p_lpromoter = + + +//1 dkgul6r2xulzqk2twms3pswmy +// static shape_functions poly_fns = +/*public final static __struct__ poly_fns = __struct__.from(shape_functions.class); +static { +poly_fns.setPtr("initfn", function(shapes__c.class, "poly_init")); +poly_fns.setPtr("freefn", function(shapes__c.class, "poly_free")); +poly_fns.setPtr("portfn", function(shapes__c.class, "poly_port")); +poly_fns.setPtr("insidefn", function(shapes__c.class, "poly_inside")); +poly_fns.setPtr("pboxfn", function(shapes__c.class, "poly_path")); +poly_fns.setPtr("codefn", function(shapes__c.class, "poly_gencode")); +}*/ + +//1 10ii4j68l49hzbm38qspv8azn +// static shape_functions point_fns = + + +//1 dkmcmdu75stv4q1ti875sba5e +// static shape_functions record_fns = + + +//1 4im5kxw9mpwlfxnlet8fn1lbb +// static shape_functions epsf_fns = + + +//1 6hffa4ola6av0i6ls8q0b11fp +// static shape_functions star_fns = + + +//1 dkylqbkoarh3lf3lwhnbg2k6n +// static shape_desc Shapes[] = +/*public static shape_desc Shapes[] = { +__Shapes__("box", poly_fns.amp(), p_box.amp()), +__Shapes__("ellipse", poly_fns.amp(), p_ellipse.amp()), +__Shapes__(null, null, null) +}; +private static shape_desc __Shapes__(String s, shape_functions shape_functions, polygon_t polygon) { + shape_desc result = (shape_desc) Memory.malloc(shape_desc.class); + result.setPtr("name", s==null?null:new CString(s)); + result.setPtr("fns", shape_functions); + result.setPtr("polygon", polygon); + return result; +}*/ + + + +//3 a7copj498to9ai2kxtg728mex +// static void unrecognized(node_t * n, char *p) +public static Object unrecognized(Object... arg) { +UNSUPPORTED("b1ov3x4b2q0ypsqw7wt22050l"); // static void unrecognized(node_t * n, char *p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5otcb2ylyazlaj74cmk4zgv4b"); // agerr(AGWARN, "node %s, port %s unrecognized\n", agnameof(n), p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1nifps8w2xj8fe3s0e934h9oo +// static double quant(double val, double q) +public static Object quant(Object... arg) { +UNSUPPORTED("d05378246jv81jc6hotxpmh7r"); // static double quant(double val, double q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("c1slbwawuf9uwqrj6g1sbwrg8"); // i = val / q; +UNSUPPORTED("7erjq82ff3yxvdt20sqrud101"); // if (i * q + .00001 < val) +UNSUPPORTED("chd2f5z6rt19lbaye25ej7q6j"); // i++; +UNSUPPORTED("8wst82emkqjm2k0x2velpv3yg"); // return i * q; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eb4jyrh981apg1fy13fczexdl +// static int same_side(pointf p0, pointf p1, pointf L0, pointf L1) +public static boolean same_side(final __struct__ p0, final __struct__ p1, final __struct__ L0, final __struct__ L1) { +// WARNING!! STRUCT +return same_side_w_(p0.copy(), p1.copy(), L0.copy(), L1.copy()); +} +private static boolean same_side_w_(final __struct__ p0, final __struct__ p1, final __struct__ L0, final __struct__ L1) { +ENTERING("eb4jyrh981apg1fy13fczexdl","same_side"); +try { + boolean s0, s1; + double a, b, c; + /* a x + b y = c */ + a = -(L1.getDouble("y") - L0.getDouble("y")); + b = (L1.getDouble("x") - L0.getDouble("x")); + c = a * L0.getDouble("x") + b * L0.getDouble("y"); + s0 = (a * p0.getDouble("x") + b * p0.getDouble("y") - c >= 0); + s1 = (a * p1.getDouble("x") + b * p1.getDouble("y") - c >= 0); + return (s0 == s1); +} finally { +LEAVING("eb4jyrh981apg1fy13fczexdl","same_side"); +} +} + + + + +//3 52h7f4vpu1pj6fqh78wme87uk +// static char* penColor(GVJ_t * job, node_t * n) +public static Object penColor(Object... arg) { +UNSUPPORTED("9y7ivrr4l5s7wx7hbbkjpd2fr"); // static +UNSUPPORTED("eghunof84ahzb2mfw01ut6dd0"); // char* penColor(GVJ_t * job, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5zltq70xm6o2q24ddyqe6noyn"); // char *color; +UNSUPPORTED("bxrfaqnhsarmdux9xb7mmda3s"); // color = late_nnstring(n, N_color, ""); +UNSUPPORTED("2fh160md1qjnnrenoofa70yeb"); // if (!color[0]) +UNSUPPORTED("ehe6g5s4foni0psldwx2ikwnq"); // color = "black"; +UNSUPPORTED("47mxcz4gh3xivg50vcji1zkle"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("alz5uk378ys9cjg2kl4rkoa4b"); // return color; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7nofo7jo7hj6ehl6tswgfwzif +// static char *findFillDflt(node_t * n, char *dflt) +public static Object findFillDflt(Object... arg) { +UNSUPPORTED("9y7ivrr4l5s7wx7hbbkjpd2fr"); // static +UNSUPPORTED("1nwxf9hr4zzdjisa91w1o50qu"); // char *findFillDflt(node_t * n, char *dflt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5zltq70xm6o2q24ddyqe6noyn"); // char *color; +UNSUPPORTED("ccgrxng9qnylk5i99hjlnht74"); // color = late_nnstring(n, N_fillcolor, ""); +UNSUPPORTED("7c0tonis6b4g7x5vn96sh0eyj"); // if (!color[0]) { +UNSUPPORTED("bsd93fqmnbkaqhs33r2qn4gwf"); // /* for backward compatibilty, default fill is same as pen */ +UNSUPPORTED("25wuessppk24dv6psp4kvxhr"); // color = late_nnstring(n, N_color, ""); +UNSUPPORTED("9bxthpzdy9nuxnf8yj7gaypx6"); // if (!color[0]) { +UNSUPPORTED("f32mf5kh8wtwe3dkjadu7hhm8"); // color = dflt; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("alz5uk378ys9cjg2kl4rkoa4b"); // return color; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dkh0fr3loytegfs1lz9qi1sd6 +// static char *findFill(node_t * n) +public static Object findFill(Object... arg) { +UNSUPPORTED("9y7ivrr4l5s7wx7hbbkjpd2fr"); // static +UNSUPPORTED("999wldpj7kbc3jf5qrtjs3kac"); // char *findFill(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2s92vukfnygadoexil3zao2b"); // return (findFillDflt(n, "lightgrey")); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b6vz4rofh7tr27tzdul6mqinz +// char *findAttrColor(void *obj, attrsym_t *colorattr, char *dflt) +public static Object findAttrColor(Object... arg) { +UNSUPPORTED("5v9kutabxqrex87ezkjge03mz"); // char *findAttrColor(void *obj, attrsym_t *colorattr, char *dflt){ +UNSUPPORTED("5zltq70xm6o2q24ddyqe6noyn"); // char *color; +UNSUPPORTED("ec2uw9vki5v50hgtkdhn7xx5a"); // if(colorattr != NULL) +UNSUPPORTED("3mxnhdjc8yzcnelc8jqfu1vp9"); // color = late_nnstring(obj, colorattr, dflt); +UNSUPPORTED("14ipy30gtp782xdiwpi735st"); // else if(dflt != NULL && dflt[0]) +UNSUPPORTED("2xj2lztryr9os0vo3pmwf6f6p"); // color = dflt; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("1s8rhhkx6hn7y21eh14g1douw"); // color = "lightgrey"; +UNSUPPORTED("alz5uk378ys9cjg2kl4rkoa4b"); // return color; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arypshfdif4tg03g6bv68e74s +// static int isBox (node_t* n) +public static Object isBox(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("1fh5whcpicn37jal4or4fzmhe"); // isBox (node_t* n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("599v2ggusx2npjbgg129z2mwn"); // polygon_t *p; +UNSUPPORTED("euj05ebp04ciftzza0knizzej"); // if ((p = ND_shape(n)->polygon)) { +UNSUPPORTED("6brfvvb4tyn70jzd3jn6c1gwo"); // return (p->sides == 4 && (ROUND(p->orientation) % 90) == 0 && p->distortion == 0. && p->skew == 0.); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ddsagt9m8yt7n8h3nk19jnk2p +// static int isEllipse(node_t* n) +public static Object isEllipse(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("dj5on95sulam3ulc2tw8duoeq"); // isEllipse(node_t* n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("599v2ggusx2npjbgg129z2mwn"); // polygon_t *p; +UNSUPPORTED("euj05ebp04ciftzza0knizzej"); // if ((p = ND_shape(n)->polygon)) { +UNSUPPORTED("advye1fx4h5jqr6x6lq6qsjnb"); // return (p->sides <= 2); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e6hjh17xf1s408w7nmf95mnvn +// static char **checkStyle(node_t * n, int *flagp) +public static Object checkStyle(Object... arg) { +UNSUPPORTED("ez47sxvuvz2y431fczf0ih52b"); // static char **checkStyle(node_t * n, int *flagp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("byo308l1rmve5rmx8wt32juux"); // char *style; +UNSUPPORTED("1m69eum6fcxl62kbxksis88or"); // char **pstyle = 0; +UNSUPPORTED("1y4qclfm9xrlqe6oi5k512dih"); // int istyle = 0; +UNSUPPORTED("7b0667dpeiekddi69gpywx92t"); // polygon_t *poly; +UNSUPPORTED("8pjk3xuss8ew2p7e7t0djo8qp"); // style = late_nnstring(n, N_style, ""); +UNSUPPORTED("4ouo3ttcnk1yyzsz5wrt88zw"); // if (style[0]) { +UNSUPPORTED("h7xdp8l98vgmu8dkibee5kcm"); // char **pp; +UNSUPPORTED("9uleufnyvtzwmq2wbcnmeyp3a"); // char **qp; +UNSUPPORTED("1ys4x1uj0hoyf2yuvrmddwh9i"); // char *p; +UNSUPPORTED("6akvfrhnmmgier60pl8bkt42r"); // pp = pstyle = parse_style(style); +UNSUPPORTED("9vj0v0tutidnb2hxprdosjm39"); // while ((p = *pp)) { +UNSUPPORTED("9e8iza5oo9qnprgvfs80p1cmq"); // if ((*(p)==*("filled")&&!strcmp(p,"filled"))) { +UNSUPPORTED("5uu1d9grveb0bmsov10mqrtj3"); // istyle |= (1 << 0); +UNSUPPORTED("5lcmi10wuwp3fyn36cloc29y3"); // pp++; +UNSUPPORTED("3uvy87owpxhpcjijxbeue7ml9"); // } else if ((*(p)==*("rounded")&&!strcmp(p,"rounded"))) { +UNSUPPORTED("dtj2r1tvn8fuoefvhmbg7k8es"); // istyle |= (1 << 2); +UNSUPPORTED("8dbdrjhappnkp11tqkg67i250"); // qp = pp; /* remove rounded from list passed to renderer */ +UNSUPPORTED("21y8hlxutle9votbe86f2hfpl"); // do { +UNSUPPORTED("7ca407ksqxmxkuny8m7gr1rzj"); // qp++; +UNSUPPORTED("2dnl06ux4flpusn9o6uoauj6f"); // *(qp - 1) = *qp; +UNSUPPORTED("1ujv3j8mb7i0c6nzdfgy27w4s"); // } while (*qp); +UNSUPPORTED("3c5cnairumxqyot9agywkupmf"); // } else if ((*(p)==*("diagonals")&&!strcmp(p,"diagonals"))) { +UNSUPPORTED("esqbhmned54nx3htomtcxqdvl"); // istyle |= (1 << 3); +UNSUPPORTED("36pjs10mstioxkt5rmh4iask6"); // qp = pp; /* remove diagonals from list passed to renderer */ +UNSUPPORTED("21y8hlxutle9votbe86f2hfpl"); // do { +UNSUPPORTED("7ca407ksqxmxkuny8m7gr1rzj"); // qp++; +UNSUPPORTED("2dnl06ux4flpusn9o6uoauj6f"); // *(qp - 1) = *qp; +UNSUPPORTED("1ujv3j8mb7i0c6nzdfgy27w4s"); // } while (*qp); +UNSUPPORTED("st5o1gk88otja1grsb6lfacw"); // } else if ((*(p)==*("invis")&&!strcmp(p,"invis"))) { +UNSUPPORTED("9r65ku75by3pt573pvd9je65n"); // istyle |= (1 << 5); +UNSUPPORTED("5lcmi10wuwp3fyn36cloc29y3"); // pp++; +UNSUPPORTED("e2fhjqum3y3u10hfayo9loxxn"); // } else if ((*(p)==*("radial")&&!strcmp(p,"radial"))) { +UNSUPPORTED("9gjvnf8gjbb6f0zv7dyeerzjy"); // istyle |= ((1 << 1)|(1 << 0)); +UNSUPPORTED("cumhwwp133cqb8wq8izofb58h"); // qp = pp; /* remove radial from list passed to renderer */ +UNSUPPORTED("21y8hlxutle9votbe86f2hfpl"); // do { +UNSUPPORTED("7ca407ksqxmxkuny8m7gr1rzj"); // qp++; +UNSUPPORTED("2dnl06ux4flpusn9o6uoauj6f"); // *(qp - 1) = *qp; +UNSUPPORTED("1ujv3j8mb7i0c6nzdfgy27w4s"); // } while (*qp); +UNSUPPORTED("dnu7ns5prehtumzxvv0s4smtc"); // } else if ((*(p)==*("striped")&&!strcmp(p,"striped")) && isBox(n)) { +UNSUPPORTED("2u98nt7rt9sd9aapq55s8ew7h"); // istyle |= (1 << 6); +UNSUPPORTED("24ciiasyae2z41bjr8zmt7b2o"); // qp = pp; /* remove striped from list passed to renderer */ +UNSUPPORTED("21y8hlxutle9votbe86f2hfpl"); // do { +UNSUPPORTED("7ca407ksqxmxkuny8m7gr1rzj"); // qp++; +UNSUPPORTED("2dnl06ux4flpusn9o6uoauj6f"); // *(qp - 1) = *qp; +UNSUPPORTED("1ujv3j8mb7i0c6nzdfgy27w4s"); // } while (*qp); +UNSUPPORTED("eqw80tpippiilbiit1pnwqkdk"); // } else if ((*(p)==*("wedged")&&!strcmp(p,"wedged")) && isEllipse(n)) { +UNSUPPORTED("bszmjhb5tngdseiirkqdspwzj"); // istyle |= (1 << 9); +UNSUPPORTED("11bhw5dod5c1mltace9v23vvq"); // qp = pp; /* remove wedged from list passed to renderer */ +UNSUPPORTED("21y8hlxutle9votbe86f2hfpl"); // do { +UNSUPPORTED("7ca407ksqxmxkuny8m7gr1rzj"); // qp++; +UNSUPPORTED("2dnl06ux4flpusn9o6uoauj6f"); // *(qp - 1) = *qp; +UNSUPPORTED("1ujv3j8mb7i0c6nzdfgy27w4s"); // } while (*qp); +UNSUPPORTED("afk9bpom7x393euamnvwwkx6b"); // } else +UNSUPPORTED("5lcmi10wuwp3fyn36cloc29y3"); // pp++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a951gj8apiferiznswhme5q28"); // if ((poly = ND_shape(n)->polygon)) +UNSUPPORTED("enpv6kdyy99zkq0pgqfvhe4c1"); // istyle |= poly->option; +UNSUPPORTED("8wc6gkmat3lo0h81wd7xv879k"); // *flagp = istyle; +UNSUPPORTED("iuoxnbeo1cwfgz97k92ylegx"); // return pstyle; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cmfha87baduerx07enpoxpl0i +// static int stylenode(GVJ_t * job, node_t * n) +public static Object stylenode(Object... arg) { +UNSUPPORTED("2zooek35a9pjrcqa212ed7d4d"); // static int stylenode(GVJ_t * job, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1lh27pielrns99pzh9yww5tc3"); // char **pstyle, *s; +UNSUPPORTED("at5a8doos9xnvfmdynzdnj22m"); // int istyle; +UNSUPPORTED("75w3zx2oz7s1yf7arcxf48heo"); // double penwidth; +UNSUPPORTED("45vqmqwfbzihkp69fkdmro84u"); // if ((pstyle = checkStyle(n, &istyle))) +UNSUPPORTED("5ewqs6gfz9r9n25gcsbn054ej"); // gvrender_set_style(job, pstyle); +UNSUPPORTED("aajxt23i7arb7fnkpedw53kj3"); // if (N_penwidth && ((s = agxget(n, N_penwidth)) && s[0])) { +UNSUPPORTED("9ahr3ul831dw5ggnbkxpjttyu"); // penwidth = late_double(n, N_penwidth, 1.0, 0.0); +UNSUPPORTED("a85jezrt5nu63vkla8bslhzcx"); // gvrender_set_penwidth(job, penwidth); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8jt5dmpnjjn7vbyh8jm3z92dd"); // return istyle; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 484y5dade0mh0rhmlpq9sbgyj +// static void Mcircle_hack(GVJ_t * job, node_t * n) +public static Object Mcircle_hack(Object... arg) { +UNSUPPORTED("14yetc0y5dql9a1m4hjimwery"); // static void Mcircle_hack(GVJ_t * job, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4g01jt8p980itgxzog49s8ur3"); // double x, y; +UNSUPPORTED("73immmni8bd7nbea87pqqtsss"); // pointf AF[2], p; +UNSUPPORTED("91olkqdwuv079mwgafkjm2pvm"); // y = .7500; +UNSUPPORTED("1ij13nw7td2w3yobqltvugja4"); // x = .6614; /* x^2 + y^2 = 1.0 */ +UNSUPPORTED("idkjly9lhs1takhai4jmwuyq"); // p.y = y * ND_ht(n) / 2.0; +UNSUPPORTED("751pbavi8681zqnswp9rwue5o"); // p.x = ND_rw(n) * x; /* assume node is symmetric */ +UNSUPPORTED("7mid2xd4xh4xgdhe907o6g6l4"); // AF[0] = add_pointf(p, ND_coord(n)); +UNSUPPORTED("a2250pkc00wvt8bx8azxq1ug0"); // AF[1].y = AF[0].y; +UNSUPPORTED("cqt3b70row8txs0n26fb4un7u"); // AF[1].x = AF[0].x - 2 * p.x; +UNSUPPORTED("9lgjyllrdl3lrvuyrlz3hkakl"); // gvrender_polyline(job, AF, 2); +UNSUPPORTED("fim2su3akeazbrjzelz70baa"); // AF[0].y -= 2 * p.y; +UNSUPPORTED("a2250pkc00wvt8bx8azxq1ug0"); // AF[1].y = AF[0].y; +UNSUPPORTED("9lgjyllrdl3lrvuyrlz3hkakl"); // gvrender_polyline(job, AF, 2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ei77gihju88eavrphjd4217d0 +// void round_corners(GVJ_t * job, pointf * AF, int sides, int style, int filled) +public static Object round_corners(Object... arg) { +UNSUPPORTED("4zly0db3w4vfht908qlfjvgr1"); // void round_corners(GVJ_t * job, pointf * AF, int sides, int style, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3z10hnxy3lvnkbnaai7c7ccl"); // pointf *B, C[5], *D, p0, p1; +UNSUPPORTED("81yo6al7e3nxtf9ekuqa4n6xc"); // double rbconst, d, dx, dy, t; +UNSUPPORTED("b9m8kb2lfopred94uilevubat"); // int i, seg, mode, shape; +UNSUPPORTED("48n1zwofayobr58hhiz0y5wfp"); // pointf* pts; +UNSUPPORTED("erycpwhkizj18xsodfbapugg"); // shape = style & (127 << 24); +UNSUPPORTED("17t8enyxf5yj5x4qmggz27rpj"); // if (style & (1 << 3)) +UNSUPPORTED("209ali7eb7s6xpcplnxc1n105"); // mode = (1 << 3); +UNSUPPORTED("2jjd9xuwi3k89b2qz48p9qiij"); // else if (style & (127 << 24)) +UNSUPPORTED("69pqj1vo4pr13r0r02kyk8rtq"); // mode = shape; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("b3q1yyf621vvgphjqrr5ryare"); // mode = (1 << 2); +UNSUPPORTED("6ssyjdjxo2ulqor8iwagn9d2f"); // B = (pointf*)zmalloc((4 * sides + 4)*sizeof(pointf)); +UNSUPPORTED("9z3er49pc4h2rxja5r9grdo0h"); // i = 0; +UNSUPPORTED("8r6c7fd8ovc5djxlr8ewm50r2"); // /* rbconst is distance offset from a corner of the polygon. +UNSUPPORTED("2gs01cac7peva58o5tfygbktx"); // * It should be the same for every corner, and also never +UNSUPPORTED("7jv69y6bs582woz54uifrosyf"); // * bigger than one-third the length of a side. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("3y9cq08hyl44nlpgdz8bq9x5y"); // rbconst = 12; +UNSUPPORTED("a194n3zgdgtwg7jus6dt8zt8m"); // for (seg = 0; seg < sides; seg++) { +UNSUPPORTED("8u84gg4ehm9gt01gwlriapp7p"); // p0 = AF[seg]; +UNSUPPORTED("jrhdb2qs0vcycqv19gjkoxpb"); // if (seg < sides - 1) +UNSUPPORTED("3a621ve4bfuqz53sahxjnie0n"); // p1 = AF[seg + 1]; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("a2k7gegucha0lsv4ojjyg8bry"); // p1 = AF[0]; +UNSUPPORTED("5wygoyf2uskp90f77rq77i4sl"); // dx = p1.x - p0.x; +UNSUPPORTED("crmaptew4roh76io36shmz912"); // dy = p1.y - p0.y; +UNSUPPORTED("4tigxgedxe60aamdjuhhrwsx4"); // d = sqrt(dx * dx + dy * dy); +UNSUPPORTED("corgbpn6r0vxd6q04wn8gq4gq"); // rbconst = MIN(rbconst, d / 3.0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a194n3zgdgtwg7jus6dt8zt8m"); // for (seg = 0; seg < sides; seg++) { +UNSUPPORTED("8u84gg4ehm9gt01gwlriapp7p"); // p0 = AF[seg]; +UNSUPPORTED("jrhdb2qs0vcycqv19gjkoxpb"); // if (seg < sides - 1) +UNSUPPORTED("3a621ve4bfuqz53sahxjnie0n"); // p1 = AF[seg + 1]; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("a2k7gegucha0lsv4ojjyg8bry"); // p1 = AF[0]; +UNSUPPORTED("5wygoyf2uskp90f77rq77i4sl"); // dx = p1.x - p0.x; +UNSUPPORTED("crmaptew4roh76io36shmz912"); // dy = p1.y - p0.y; +UNSUPPORTED("4tigxgedxe60aamdjuhhrwsx4"); // d = sqrt(dx * dx + dy * dy); +UNSUPPORTED("4ohox9viufh5hz01z2sjq8eo6"); // t = rbconst / d; +UNSUPPORTED("7w7drxi1wvf81230kfb4tx9sf"); // if (shape == (4 << 24) || shape == (5 << 24)) +UNSUPPORTED("5xzdqgzfi0wjoiatowdjh64gy"); // t /= 3; +UNSUPPORTED("a67ot847ab7bmt4df22rcjqjh"); // else if (shape == (1 << 24)) +UNSUPPORTED("7crlw5k29pn4silm51hmqn309"); // t /= 2; +UNSUPPORTED("tt3u4mg8fwhys49ftrmyhoo8"); // if (mode != (1 << 2)) +UNSUPPORTED("8z8165i54px2guqyp4r3iivm"); // B[i++] = p0; +UNSUPPORTED("df5svfeo1imlc8qm6azeqkkmh"); // else +UNSUPPORTED("1c0c66imkoa2k4geseydtrlks"); // B[i++] = interpolate_pointf(.5 * t, p0, p1); +UNSUPPORTED("3tiws3vikebhgs3g79mlh5s0a"); // B[i++] = interpolate_pointf(t, p0, p1); +UNSUPPORTED("ck1de7cjc9kz82t8n4b3kaply"); // B[i++] = interpolate_pointf(1.0 - t, p0, p1); +UNSUPPORTED("5ecb0sv32aezfln59kwr7n54j"); // if (mode == (1 << 2)) +UNSUPPORTED("4yqnq3vzqlqucce76lf2i48sh"); // B[i++] = interpolate_pointf(1.0 - .5 * t, p0, p1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("456xy9zxbdvxkgw63cphz32yv"); // B[i++] = B[0]; +UNSUPPORTED("a3zl8b5gohcvf0aamq9zy3r2z"); // B[i++] = B[1]; +UNSUPPORTED("1rw55m45llp1oiu1b664bdtt7"); // B[i++] = B[2]; +UNSUPPORTED("1n2j212wuyr8t1oi45d91ta7r"); // switch (mode) { +UNSUPPORTED("2buge9zhgso34sq694br4vpn6"); // case (1 << 2): +UNSUPPORTED("4zyg1qcp15ft55bhiug326st9"); // pts = (pointf*)gmalloc((6 * sides + 2)*sizeof(pointf)); +UNSUPPORTED("5or0zebpgtvozlmal8j2q1ymh"); // i = 0; +UNSUPPORTED("2b4hmqn28jyawsresopw3imez"); // for (seg = 0; seg < sides; seg++) { +UNSUPPORTED("4dwf576bgn14ur203rpzfmvcj"); // pts[i++] = B[4 * seg]; +UNSUPPORTED("bal6cvz4s8gwpl3au15cp6gut"); // pts[i++] = B[4 * seg+1]; +UNSUPPORTED("bal6cvz4s8gwpl3au15cp6gut"); // pts[i++] = B[4 * seg+1]; +UNSUPPORTED("9qw0jg5a0jzxhnoz56auikdah"); // pts[i++] = B[4 * seg+2]; +UNSUPPORTED("9qw0jg5a0jzxhnoz56auikdah"); // pts[i++] = B[4 * seg+2]; +UNSUPPORTED("7u491erkgkpheh23pmb7ay6tm"); // pts[i++] = B[4 * seg+3]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bmzoxzu4zo3s8tlzc1m3x4e1v"); // pts[i++] = pts[0]; +UNSUPPORTED("3e5hosajkvxgm8usnlbhxcuir"); // pts[i++] = pts[1]; +UNSUPPORTED("93i0re7fzom2m1gwn8dnxcylj"); // gvrender_beziercurve(job, pts+1, i-1, 0, 0, filled); +UNSUPPORTED("dgq0qjac3ho7gugxw0mqbv96"); // free (pts); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("14wf8f4gfb2l2ihvry7d2x38l"); // case (1 << 3): +UNSUPPORTED("azp5izjs4eyq3uy0ah00hm8n4"); // /* diagonals are weird. rewrite someday. */ +UNSUPPORTED("5j9owdiqcj7bt8mcr301dht8q"); // gvrender_polygon(job, AF, sides, filled); +UNSUPPORTED("2b4hmqn28jyawsresopw3imez"); // for (seg = 0; seg < sides; seg++) { +UNSUPPORTED("9ryfluah120xc0oke5t971wtf"); // C[0] = B[3 * seg + 2]; +UNSUPPORTED("cqr6f1xlnm7nng28pnfor5h9b"); // C[1] = B[3 * seg + 4]; +UNSUPPORTED("b0gt3f20500y9ckfsqr07bwn9"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9fjpgho6bfz7z8s29gy8e6uoc"); // case (1 << 24): +UNSUPPORTED("8wy6a8izye4sz73njhv8j9znc"); // /* Add the cutoff edge. */ +UNSUPPORTED("b5f90htb83l32kamg97jm1sux"); // D = (pointf*)zmalloc((sides + 1)*sizeof(pointf)); +UNSUPPORTED("aofwnlg1s6y08lf7550rpgt6b"); // for (seg = 1; seg < sides; seg++) +UNSUPPORTED("6sqx87841cn900qusanuebotn"); // D[seg] = AF[seg]; +UNSUPPORTED("aoly4odhqt3ydqpni1b56wx0a"); // D[0] = B[3 * (sides - 1) + 4]; +UNSUPPORTED("dike7lk77zy9w7gw1blk27kjr"); // D[sides] = B[3 * (sides - 1) + 2]; +UNSUPPORTED("6u1z6h8gfy4ofbsa9gidwp2v9"); // gvrender_polygon(job, D, sides + 1, filled); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("eoq3dhyls1a02czm0kv7mk15"); // /* Draw the inner edge. */ +UNSUPPORTED("b0pvjrkdu25er5c08tx04ycvn"); // seg = sides - 1; +UNSUPPORTED("aojv0k5pq5qdtvzl90n7o2z4a"); // C[0] = B[3 * seg + 2]; +UNSUPPORTED("ak39zpyk8ew0qkrfdq4o6vulb"); // C[1] = B[3 * seg + 4]; +UNSUPPORTED("zasq52jvz91zaqrusqeppioc"); // C[2].x = C[1].x + (C[0].x - B[3 * seg + 3].x); +UNSUPPORTED("183xcjzzdjqiylg3dyj2bm9p0"); // C[2].y = C[1].y + (C[0].y - B[3 * seg + 3].y); +UNSUPPORTED("1f9f75c5ajnw72fk4rhidjvk9"); // gvrender_polyline(job, C + 1, 2); +UNSUPPORTED("frux7sbbz1c07p68288k7bjt"); // C[1] = C[2]; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("10iw0jyewk2q2w6qy33amd83c"); // case (2 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("11hn7suih6n97ek5ack6vv7ni"); // * Adjust the perimeter for the protrusions. +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("2ke5cay4uy9rpguirhm4wa6h"); // * D[3] +--+ D[2] +UNSUPPORTED("4zc493k26lywwhtoilkgc1l7x"); // * | | B[1] +UNSUPPORTED("2m2wzvksfyug1w1bxq51fnx8t"); // * B[3] + +----------+--+ AF[0]=B[0]=D[0] +UNSUPPORTED("5n95z8suw2ujdfytdrngbd1an"); // * | B[2]=D[1] | +UNSUPPORTED("bxixf1yy90einvhfmisdbksm8"); // * B[4] + | +UNSUPPORTED("5at9s03omerhkkh28ytchzp8p"); // * | | +UNSUPPORTED("9hfhbws20bnfssgim1z95d6c"); // * B[5] + | +UNSUPPORTED("at59m33r1w0mw5cp7ympbfal6"); // * +----------------+ +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("5kvv3jvgrdk38xmgwem87tcf9"); // /* Add the tab edges. */ +UNSUPPORTED("70701yzl3gbwgttd66404h5y0"); // D = (pointf*)zmalloc((sides + 2)*sizeof(pointf)); +UNSUPPORTED("bf9oppknir8tl1n0mty1c2mou"); // D[0] = AF[0]; +UNSUPPORTED("c66e72qch46j50w8wi2ex9igr"); // D[1] = B[2]; +UNSUPPORTED("500mpct3i9wgs3px8hsgnd7m"); // D[2].x = B[2].x + (B[3].x - B[4].x) / 3; +UNSUPPORTED("4mbi2yyoztsb8r3tezo2a6bdn"); // D[2].y = B[2].y + (B[3].y - B[4].y) / 3; +UNSUPPORTED("ciue6jcuvx8w3rhusaybjn0js"); // D[3].x = B[3].x + (B[3].x - B[4].x) / 3; +UNSUPPORTED("ewjqnbklefpknisen36ov0eor"); // D[3].y = B[3].y + (B[3].y - B[4].y) / 3; +UNSUPPORTED("97qpn7goedd7t1yn8vv7l2wta"); // for (seg = 4; seg < sides + 2; seg++) +UNSUPPORTED("37s6t8j0ylr7pgcyrb42nnzru"); // D[seg] = AF[seg - 2]; +UNSUPPORTED("d4ps5t7sfp45tctsjawfhtbnx"); // gvrender_polygon(job, D, sides + 2, filled); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("eoq3dhyls1a02czm0kv7mk15"); // /* Draw the inner edge. */ +UNSUPPORTED("du4dccw5ec6jy7zfkw1ke8w5o"); // C[0] = B[3]; +UNSUPPORTED("66sh6zqifln1cd8fag6neksct"); // C[1] = B[2]; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3ylqzc8858ud3k78im7cnmmcy"); // case (3 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("11hn7suih6n97ek5ack6vv7ni"); // * Adjust the perimeter for the protrusions. +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("8f9cn4lj1t7xhfy5h96toa6z7"); // * D[2] +----+ D[1] +UNSUPPORTED("3jbilbyrjvqxazi6ya1u20wl"); // * B[3]= / * D[4] +--+----+ + + AF[0]=B[0]=D[0] +UNSUPPORTED("9ef8paf9orf5t71eo10jr5730"); // * | B[2] D[3] B[1]| +UNSUPPORTED("bxixf1yy90einvhfmisdbksm8"); // * B[4] + | +UNSUPPORTED("5at9s03omerhkkh28ytchzp8p"); // * | | +UNSUPPORTED("9hfhbws20bnfssgim1z95d6c"); // * B[5] + | +UNSUPPORTED("at59m33r1w0mw5cp7ympbfal6"); // * +----------------+ +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("1eenvw2caym3k7merjrt3657j"); // /* Add the folder edges. */ +UNSUPPORTED("exmy2ulb6j7va8q6lm6tnworf"); // D = (pointf*)zmalloc((sides + 3)*sizeof(pointf)); +UNSUPPORTED("bf9oppknir8tl1n0mty1c2mou"); // D[0] = AF[0]; +UNSUPPORTED("dtt4p6jk6p6dp18x3u65bzmpw"); // D[1].x = AF[0].x - (AF[0].x - B[1].x) / 4; +UNSUPPORTED("1md1kmylraqzyaczi97hwwslr"); // D[1].y = AF[0].y + (B[3].y - B[4].y) / 3; +UNSUPPORTED("9yn6qa7smu43hw0zjjaqtdtud"); // D[2].x = AF[0].x - 2 * (AF[0].x - B[1].x); +UNSUPPORTED("dmuv0ci8g28j2wpq47bkjo7p6"); // D[2].y = D[1].y; +UNSUPPORTED("3w8e9xzd5au6dbo2ceoce7ecd"); // D[3].x = AF[0].x - 2.25 * (AF[0].x - B[1].x); +UNSUPPORTED("2z54uncfysm85pzpofpflla2n"); // D[3].y = B[3].y; +UNSUPPORTED("bppsqpbzfnhxthbppwlvtxlmq"); // D[4].x = B[3].x; +UNSUPPORTED("blpuc391svsq7x2xbrue0e7q9"); // D[4].y = B[3].y; +UNSUPPORTED("53hurg1p6mqqqgokwg5t04k5u"); // for (seg = 4; seg < sides + 3; seg++) +UNSUPPORTED("1v8cof9jpvwyuadpsdaqvu9f6"); // D[seg] = AF[seg - 3]; +UNSUPPORTED("66hq5hkfg6ixw5enzwwhsontq"); // gvrender_polygon(job, D, sides + 3, filled); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9zpoxalkfa99z3f69jfqdwd33"); // case (4 << 24): +UNSUPPORTED("10wchrvt3c3lld3qfda19dzc2"); // assert(sides == 4); +UNSUPPORTED("5jncdktfe0besyw426v5gyk97"); // /* Adjust for the cutoff edges. */ +UNSUPPORTED("70701yzl3gbwgttd66404h5y0"); // D = (pointf*)zmalloc((sides + 2)*sizeof(pointf)); +UNSUPPORTED("bf9oppknir8tl1n0mty1c2mou"); // D[0] = AF[0]; +UNSUPPORTED("c66e72qch46j50w8wi2ex9igr"); // D[1] = B[2]; +UNSUPPORTED("34xwb19muwsw7nh47ifxqeinh"); // D[2] = B[4]; +UNSUPPORTED("m2dcvmgpwt6s3w1ik1eo8wtz"); // D[3] = AF[2]; +UNSUPPORTED("87b41ff5btb6uyil4uwshlxm"); // D[4] = B[8]; +UNSUPPORTED("dus787h2fbafocu5jw9x5tvry"); // D[5] = B[10]; +UNSUPPORTED("d4ps5t7sfp45tctsjawfhtbnx"); // gvrender_polygon(job, D, sides + 2, filled); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("cbntf28jgu8mfc1hfsmxmxd0a"); // /* Draw the inner vertices. */ +UNSUPPORTED("cue3s8g57y8c0yaa1lf26dj0m"); // C[0].x = B[1].x + (B[11].x - B[0].x); +UNSUPPORTED("2cmi2wfte2qh9gijl68bakhsb"); // C[0].y = B[1].y + (B[11].y - B[0].y); +UNSUPPORTED("dxiovj41sjesdzgvqycs8n69d"); // C[1] = B[4]; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("9pl28lk4wdwe76r2auimzv3uh"); // C[1] = B[8]; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("86prrkb6o2eadx8wt21jmkhbv"); // C[1] = B[0]; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("5kno8ta0hm2ddpbudyyjtro1m"); // case (5 << 24): +UNSUPPORTED("10wchrvt3c3lld3qfda19dzc2"); // assert(sides == 4); +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("11hn7suih6n97ek5ack6vv7ni"); // * Adjust the perimeter for the protrusions. +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("buae5rybq9lw4j80le921um4r"); // * D[1] +----------------+ D[0] +UNSUPPORTED("5at9s03omerhkkh28ytchzp8p"); // * | | +UNSUPPORTED("czyzy0uakecldzx0ct8ivruuq"); // * 3+---+2 | +UNSUPPORTED("2xugwq0paym82tfnux69txz9i"); // * | | +UNSUPPORTED("4ol1bofwhi5div9o31p9wjtj4"); // * 4+---+5 | +UNSUPPORTED("5at9s03omerhkkh28ytchzp8p"); // * | | +UNSUPPORTED("5u2sqowe8zkdk3y4bln5j5zhp"); // * 7+---+6 | +UNSUPPORTED("2xugwq0paym82tfnux69txz9i"); // * | | +UNSUPPORTED("4oztb9whw0lnxt2i3c0fve4bg"); // * 8+---+9 | +UNSUPPORTED("5at9s03omerhkkh28ytchzp8p"); // * | | +UNSUPPORTED("awyck47phrgtt6emr4jcnw7v8"); // * 10+----------------+ D[11] +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("24ixpw0s6fz9ly7ogkwntlkc5"); // D = (pointf*)zmalloc((sides + 8)*sizeof(pointf)); +UNSUPPORTED("bf9oppknir8tl1n0mty1c2mou"); // D[0] = AF[0]; +UNSUPPORTED("65vl8eczvd624e78x152zuae8"); // D[1] = AF[1]; +UNSUPPORTED("809tuda28xqouetq11u936beb"); // D[2].x = B[3].x + (B[4].x - B[3].x); +UNSUPPORTED("cm9zr706ma61pgcr1xawvkeu8"); // D[2].y = B[3].y + (B[4].y - B[3].y); +UNSUPPORTED("cwrn6kyomgttqmgbjkzbsfdb6"); // D[3].x = D[2].x + (B[3].x - B[2].x); +UNSUPPORTED("2btthvnyzi5zr69hcdxsmzy6b"); // D[3].y = D[2].y + (B[3].y - B[2].y); +UNSUPPORTED("j05ovjq3e57jkpjgbgn2a93n"); // D[4].x = D[3].x + (B[4].x - B[3].x); +UNSUPPORTED("kp5e1lgz2klpjavxggb5uxtx"); // D[4].y = D[3].y + (B[4].y - B[3].y); +UNSUPPORTED("9xz12l85tya02764n9dek9tsj"); // D[5].x = D[4].x + (D[2].x - D[3].x); +UNSUPPORTED("3mjb8ks0do270kur1velhlfhg"); // D[5].y = D[4].y + (D[2].y - D[3].y); +UNSUPPORTED("amtvzdzubjy4pclq29xzao8nz"); // D[9].x = B[6].x + (B[5].x - B[6].x); +UNSUPPORTED("62igzc0qeet9vup11kzlaoi9b"); // D[9].y = B[6].y + (B[5].y - B[6].y); +UNSUPPORTED("5ya7ec3f9qo5kmci76122v75u"); // D[8].x = D[9].x + (B[6].x - B[7].x); +UNSUPPORTED("eld0yh2bct5ke7mg09giyed8n"); // D[8].y = D[9].y + (B[6].y - B[7].y); +UNSUPPORTED("cg32k9flso7918lk33auqxwva"); // D[7].x = D[8].x + (B[5].x - B[6].x); +UNSUPPORTED("8dugkdcnkq8sp07se4h7s8cfv"); // D[7].y = D[8].y + (B[5].y - B[6].y); +UNSUPPORTED("2e85hrv7fq481gbwdw9hllum1"); // D[6].x = D[7].x + (D[9].x - D[8].x); +UNSUPPORTED("7ov0p9nbyd0ax3sgivwszaqv7"); // D[6].y = D[7].y + (D[9].y - D[8].y); +UNSUPPORTED("5aoma5n0p035f1aanu4wtjtxs"); // D[10] = AF[2]; +UNSUPPORTED("evru57wt3y6nkqeeb7pcra08r"); // D[11] = AF[3]; +UNSUPPORTED("ex1blattp3opv6e82reqp2xg3"); // gvrender_polygon(job, D, sides + 8, filled); +UNSUPPORTED("2qqdd1xd8qq7chyfugqx34cfn"); // /* Draw the internal vertices. */ +UNSUPPORTED("3pw0en5rkazex1cmysfqudqev"); // C[0] = D[2]; +UNSUPPORTED("ddq28zei7j5vvk0razqli8xd9"); // C[1].x = D[2].x - (D[3].x - D[2].x); +UNSUPPORTED("bahi2ks1geofx4oonmrkc71q3"); // C[1].y = D[2].y - (D[3].y - D[2].y); +UNSUPPORTED("1gc8dsojnchx8ehnj224y08tj"); // C[2].x = C[1].x + (D[4].x - D[3].x); +UNSUPPORTED("8a1l8vtinne40c8bmzgmpco5d"); // C[2].y = C[1].y + (D[4].y - D[3].y); +UNSUPPORTED("ah24wzf48tz9bax9stnbxw3jg"); // C[3] = D[5]; +UNSUPPORTED("4vmc7riub70iswxlzm4mg5xlh"); // gvrender_polyline(job, C, 4); +UNSUPPORTED("57xyz6r1s5isw5botqrkasfk1"); // C[0] = D[6]; +UNSUPPORTED("9e9zf6fuxc8ovfj3jsryqlylv"); // C[1].x = D[6].x - (D[7].x - D[6].x); +UNSUPPORTED("bsnau3s4c5hnmmj1shw8ouokg"); // C[1].y = D[6].y - (D[7].y - D[6].y); +UNSUPPORTED("ewm5xz38hsb9hh3wxf6j214dp"); // C[2].x = C[1].x + (D[8].x - D[7].x); +UNSUPPORTED("bv41aedgjg4w0zc4ccxrl657z"); // C[2].y = C[1].y + (D[8].y - D[7].y); +UNSUPPORTED("77p9f8uavqa0bo2uzwrgul8fo"); // C[3] = D[9]; +UNSUPPORTED("4vmc7riub70iswxlzm4mg5xlh"); // gvrender_polyline(job, C, 4); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("beokd0nvtuwlde2ahiaxzmwo0"); // case (6 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("ixqwyi3z0ndmfrpmbx8hb747"); // * L-shaped arrow on a center line, scales in the x direction +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("4bfue86t6gftlcgwzff6qshk7"); // * +UNSUPPORTED("8udetwc0o6gakybvc61qq6kjd"); // * D[1] | * +----------------+ * | D[0] * | * | / +UNSUPPORTED("cp87959b34no4267o38ifrckk"); // * | D[5] / +UNSUPPORTED("722lri4xki5u0btwl5flr6qxu"); // * | +-------+ / +UNSUPPORTED("8kn1gxbxamlotuexrxky3o76q"); // * | | |/ +UNSUPPORTED("dscqqxbpov7i3z8kvqhzn45ew"); // * +--------+ +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("5kvv3jvgrdk38xmgwem87tcf9"); // /* Add the tab edges. */ +UNSUPPORTED("dbi6282o67zdvjpioemev8l1g"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2 +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("9f16ni612qewna0ipjhg14bai"); // //the arrow's thickness is (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("azjvg240odj44iv9ekoxye94d"); // //the thickness is subituted with (AF[0].x - AF[1].x)/8 to make it scalable in the y with label length +UNSUPPORTED("8y1urr2asyrlu62q42pgcsmhp"); // D = (pointf*)zmalloc((sides + 5)*sizeof(pointf)); +UNSUPPORTED("b70z64iz7ervr0w25bypaar6w"); // D[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 + (AF[0].x - AF[1].x)/8; //x_center + width +UNSUPPORTED("cflv5tiys03frg7ni6wrlnf54"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)*3/2; //D[4].y + width +UNSUPPORTED("8mk9mjo89wwb2k197bo1oci28"); // D[1].x = AF[1].x + (AF[0].x - AF[1].x)/2 - (AF[0].x - AF[1].x)/4; //x_center - 2*width +UNSUPPORTED("377dvf6krrmq87z68ekoyk1nr"); // D[1].y = D[0].y; +UNSUPPORTED("cnpipkg905bpnnnnoa0lopvzy"); // D[2].x = D[1].x; +UNSUPPORTED("301q7fj403dfv6ubg9vwg4ise"); // D[2].y = AF[2].y + (AF[1].y - AF[2].y)/2; //y_center +UNSUPPORTED("3zldfbr9i1rzlmv4z7y0pfsui"); // D[3].x = D[2].x + (B[2].x - B[3].x)/2; //D[2].x + width +UNSUPPORTED("1c9pkdgt2yqgbrfhtob6o1anm"); // D[3].y = AF[2].y + (AF[1].y - AF[2].y)/2; //y_center +UNSUPPORTED("dm1gyw5qetggvcc8zstksyyg2"); // D[4].x = D[3].x; +UNSUPPORTED("5om1l6r4v0k3wqbmirwpiyqba"); // D[4].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y); //highest cds point +UNSUPPORTED("5452plq9tg8pl7nqgqe17wfok"); // D[5].x = D[0].x; +UNSUPPORTED("4nf8s53n53wddx4yf7audzxu1"); // D[5].y = D[4].y; //highest cds point +UNSUPPORTED("a6zbxb7jxf9qdy8dvdmo9bql6"); // D[6].x = D[0].x; +UNSUPPORTED("5cl1c2plgkvkq7g0rvwvdg7vt"); // D[6].y = D[4].y - (B[3].y-B[4].y)/4; //D[4].y - width/2 +UNSUPPORTED("gi12lyfrur4z2lxxndbbbifq"); // D[7].x = D[6].x + (B[2].x - B[3].x); //D[6].x + 2*width +UNSUPPORTED("5pkfhqy0ycejkkhrrm5hggks4"); // D[7].y = D[6].y + (B[3].y - B[4].y)/2; //D[6].y + width +UNSUPPORTED("cvcvatp3h1huxwxo27xm89hir"); // D[8].x = D[0].x; +UNSUPPORTED("61oo13fi0rf1r3bzy45p7mzr"); // D[8].y = D[0].y + (B[3].y - B[4].y)/4;//D[0].y + width/2 +UNSUPPORTED("9v8e5z6hrq6fr5p16pg80kc21"); // gvrender_polygon(job, D, sides + 5, filled); +UNSUPPORTED("hjs1b12h76k9zk31lumwwf9f"); // /*dsDNA line*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("7vyejosjncamgazhav0j15x5q"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("e5j165s4lbb8e75y1ejspv7up"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3pfp7u39hqhl9b4pzx94kdmtp"); // case (7 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("8colhcg9wmqo1rtyzhmaa4ek6"); // * arrow without the protrusions, scales normally +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("4bfue86t6gftlcgwzff6qshk7"); // * +UNSUPPORTED("d9imuj2p14rbbmjs7wvofspna"); // * D[1] = AF[1] +UNSUPPORTED("4z7qsayd2i6g803t3ab2q4cnr"); // * +----------------+ * | D[0] * | * | / +UNSUPPORTED("csz54pl4jc7c08mjs4ll2ud72"); // * | / +UNSUPPORTED("c0psno66sh97gcrf8bvy26xm7"); // * +----------------+/ +UNSUPPORTED("8zy5cfbfoig4ao910eycpxx1x"); // * D[3] +UNSUPPORTED("79f8fxsn2gta6r8d9x9n38rzy"); // * +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("b5f90htb83l32kamg97jm1sux"); // D = (pointf*)zmalloc((sides + 1)*sizeof(pointf)); +UNSUPPORTED("3iplasxynfhfozy7oqwqkceet"); // D[0].x = B[1].x; +UNSUPPORTED("d1eg8u95ffvpn8cj0t175qe8"); // D[0].y = B[1].y - (B[3].y - B[4].y)/2; +UNSUPPORTED("45vton2uqw835epqg2o0j1qee"); // D[1].x = B[3].x; +UNSUPPORTED("2so1ozst5cwd02o33408hxi1n"); // D[1].y = B[3].y - (B[3].y - B[4].y)/2; +UNSUPPORTED("2y7ipfj9drc5mfgjluf5y6k6p"); // D[2].x = AF[2].x; +UNSUPPORTED("bopqgv9t3o6ppbojdunc5qjfl"); // D[2].y = AF[2].y + (B[3].y - B[4].y)/2; +UNSUPPORTED("8xoigox3do4ruwo7d6ew3o7af"); // D[3].x = B[1].x; +UNSUPPORTED("94cxjx74gts01u98ngcns0j0o"); // D[3].y = AF[2].y + (B[3].y - B[4].y)/2; +UNSUPPORTED("dv68lnnw5js80t8w4vzw3er4z"); // D[4].y = AF[0].y - (AF[0].y - AF[3].y)/2; +UNSUPPORTED("b5nri6sa2qx33fqvp8xfgckb0"); // D[4].x = AF[0].x; +UNSUPPORTED("6u1z6h8gfy4ofbsa9gidwp2v9"); // gvrender_polygon(job, D, sides + 1, filled); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3thdjaa2jp4igqqd3un2gwo6r"); // case (8 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("q99ojp3xn0cfe2yzxdzb5y6l"); // * T-shape, does not scale, always in the center +UNSUPPORTED("11dzfjbtxkn4alvdn9s9waab8"); // * +UNSUPPORTED("dhhao73bupb3qih7po05x8qcs"); // * +UNSUPPORTED("6z84agdr458on26oqsta195b2"); // * D[4] +UNSUPPORTED("1w6ol3zmeqn5mywt6a4z6qo41"); // * +----------------+ +UNSUPPORTED("9onfqvue4pbpmccmodd1mtx7g"); // * | D[3] +UNSUPPORTED("c45nqrjd35z7gq6ei63b1c7yg"); // * | | +UNSUPPORTED("4de8jijppluyewmllch44bu23"); // * | | +UNSUPPORTED("a3ks7z4s5ja7lvrmq3silkmjl"); // * | D[6] D[1] | +UNSUPPORTED("31k91o6maa0q4udou617gn5p5"); // * D[5]+---+ +----+ D[2] +UNSUPPORTED("dkhq92412a9i5utfrnc2dhnz"); // * | | +UNSUPPORTED("4cml58ti5mwtjgtzmwgiw6900"); // * +-------+ D[0] +UNSUPPORTED("4gn10s3n3ms2z2jz5zpxmp5ay"); // */ +UNSUPPORTED("dbi6282o67zdvjpioemev8l1g"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2 +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("7uqzacf8x5tg89bgh6rziw1s3"); // D = (pointf*)zmalloc((sides + 4)*sizeof(pointf)); +UNSUPPORTED("5810col2r6hfkxov4ipmdth4n"); // D[0].x = AF[1].x + (AF[0].x-AF[1].x)/2 + (B[2].x-B[3].x)/4; //x_center + width/2 +UNSUPPORTED("db5a23r3dbv1lvqcjuh4j9hwi"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; //y_center +UNSUPPORTED("34tp01hd6y8buifqu81fp7kah"); // D[1].x = D[0].x; +UNSUPPORTED("53lzmbxoyk9sss54apowy1jcj"); // D[1].y = D[0].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("3lc8br5sy3j31bj2kq0vy78xd"); // D[2].x = D[1].x + (B[2].x-B[3].x)/2; +UNSUPPORTED("dmuv0ci8g28j2wpq47bkjo7p6"); // D[2].y = D[1].y; +UNSUPPORTED("5ihipbue45drjma9vxlpgy615"); // D[3].x = D[2].x; +UNSUPPORTED("21mj1uiiddzjovkjk6zsb88pe"); // D[3].y = D[2].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("6xkr5j9ysazz1yh6zkpfshldm"); // D[4].x = AF[1].x + (AF[0].x-AF[1].x)/2 - (B[2].x-B[3].x)*3/4; //D[3].y mirrowed across the center +UNSUPPORTED("40nf0bg6glqtx5viwakfdv7dw"); // D[4].y = D[3].y; +UNSUPPORTED("4ihzpkh7w4ranwnvy0w5gcgnf"); // D[5].x = D[4].x; +UNSUPPORTED("d78lk5o8y51l9z7neypp202ok"); // D[5].y = D[2].y; +UNSUPPORTED("bu70m5u8xmzjlg97y4dzx2qvn"); // D[6].x = AF[1].x + (AF[0].x-AF[1].x)/2 - (B[2].x-B[3].x)/4; //D[1].x mirrowed across the center +UNSUPPORTED("8y0iwlff2lpkouqnvi8duicdw"); // D[6].y = D[1].y; +UNSUPPORTED("1dhue1c5y4ho0ct8ks14zgh2q"); // D[7].x = D[6].x; +UNSUPPORTED("bmnuosohj6kpaougdrcg1l2ut"); // D[7].y = D[0].y; +UNSUPPORTED("519fp4pixwl2w7d4ssm51lram"); // gvrender_polygon(job, D, sides + 4, filled); +UNSUPPORTED("hjs1b12h76k9zk31lumwwf9f"); // /*dsDNA line*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("7vyejosjncamgazhav0j15x5q"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3s9ef7jzymofqi316ojrcjxzd"); // case (9 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("dhbze4ofczxyy7yamogd6ti3a"); // * half-octagon with line, does not scale, always in center +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("2q9d6wex3idlomfcu4pkk398x"); // * D[3] +UNSUPPORTED("4xh336uvfc358ms133bm0s52b"); // * _____ D[2] +UNSUPPORTED("bfk0n04f7r4qzjubnfyu2xh1k"); // * / * / \ D[1] +UNSUPPORTED("5psrhywjfkorktkmgorilauv5"); // * | | +UNSUPPORTED("3lg9sq0fw542uhjrpospx6jy2"); // * ----------- +UNSUPPORTED("3hbh5rz6pydqncnacff0j6bck"); // * D[0] +UNSUPPORTED("dfamfnhl22etjpal7hadbncq"); // * +UNSUPPORTED("18xb6dplfcolp2jrg1kn8kys7"); // * +UNSUPPORTED("6b0g1rzk4g1o9c2we59or2tun"); // * +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("dbi6282o67zdvjpioemev8l1g"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2 +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("70701yzl3gbwgttd66404h5y0"); // D = (pointf*)zmalloc((sides + 2)*sizeof(pointf)); +UNSUPPORTED("7m6kkbjz3yjj1zf1qc45ktcv7"); // D[0].x = AF[1].x + (AF[0].x-AF[1].x)/2 + (B[2].x-B[3].x)*3/4; //x_center+width +UNSUPPORTED("db5a23r3dbv1lvqcjuh4j9hwi"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; //y_center +UNSUPPORTED("34tp01hd6y8buifqu81fp7kah"); // D[1].x = D[0].x; +UNSUPPORTED("1r3hx6z8u8r8abljwwm9aeskf"); // D[1].y = D[0].y + (B[3].y-B[4].y)/4; //D[0].y+width/2 +UNSUPPORTED("4fcwgyabif5z28bihmxf7x4tb"); // D[2].x = AF[1].x + (AF[0].x-AF[1].x)/2 + (B[2].x-B[3].x)/4; //x_center+width/2 +UNSUPPORTED("54amw68beuf1he27cp7569llg"); // D[2].y = D[1].y + (B[3].y-B[4].y)/2; //D[1].y+width +UNSUPPORTED("54ovwnsyt9kbwtqf47f7c2ch3"); // D[3].x = AF[1].x + (AF[0].x-AF[1].x)/2 - (B[2].x-B[3].x)/4; //D[2].x mirrowed across the center +UNSUPPORTED("esx26fefr0mrz7t4p720sf58a"); // D[3].y = D[2].y; +UNSUPPORTED("6rpcfql0js4c3hg279dfw3na0"); // D[4].x = AF[1].x + (AF[0].x-AF[1].x)/2 - (B[2].x-B[3].x)*3/4; +UNSUPPORTED("2q1cxgb3rckor7bxppmobumh0"); // D[4].y = D[1].y; +UNSUPPORTED("4ihzpkh7w4ranwnvy0w5gcgnf"); // D[5].x = D[4].x; +UNSUPPORTED("bgu3mbmk36rgraaak3oxce0r8"); // D[5].y = D[0].y; +UNSUPPORTED("d4ps5t7sfp45tctsjawfhtbnx"); // gvrender_polygon(job, D, sides + 2, filled); +UNSUPPORTED("hjs1b12h76k9zk31lumwwf9f"); // /*dsDNA line*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("7vyejosjncamgazhav0j15x5q"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("api2h9s3b85sv9rd97y8rgtud"); // case (10 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("28rdr11lzywp8e0rmvk2kob5x"); // * half arrow shape, scales in the x-direction +UNSUPPORTED("qqfabopc9ur04mms6juzgp3x"); // * D[1] +UNSUPPORTED("e46ybyktily44t0b7fyholuq2"); // * | * | * | * ------------ * | * ------------------\ D[0] +UNSUPPORTED("c1eovxh5oerfbxr449dk7o87u"); // * +UNSUPPORTED("30zs4hbrokoqtcgihv0hj9b3o"); // * -------------------------------- +UNSUPPORTED("dhhao73bupb3qih7po05x8qcs"); // * +UNSUPPORTED("4gn10s3n3ms2z2jz5zpxmp5ay"); // */ +UNSUPPORTED("31z12vlharu09ldqvmirdvp2n"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2; +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("azjvg240odj44iv9ekoxye94d"); // //the thickness is subituted with (AF[0].x - AF[1].x)/8 to make it scalable in the y with label length +UNSUPPORTED("b5f90htb83l32kamg97jm1sux"); // D = (pointf*)zmalloc((sides + 1)*sizeof(pointf)); +UNSUPPORTED("7f72fcloe1t7qscdonrjz8qii"); // D[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 + (B[2].x-B[3].x);//x_center + width*2 +UNSUPPORTED("aojkb4cjtphbwmuxkdt5y13al"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/4;//y_center + 1/2 width +UNSUPPORTED("6esajn79a3aj38f6eb3xf9wfj"); // D[1].x = D[0].x - (B[2].x-B[3].x); //x_center +UNSUPPORTED("9t3k5f7xx5vksm96d80h9fxwx"); // D[1].y = D[0].y + (B[3].y-B[4].y); +UNSUPPORTED("cnpipkg905bpnnnnoa0lopvzy"); // D[2].x = D[1].x; +UNSUPPORTED("1ewf0yhdjldw3pxdsfgzwkuuq"); // D[2].y = D[0].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("ch7qqmpmawmffg66esm43wmvl"); // D[3].x = AF[1].x + (AF[0].x - AF[1].x)/2 - (AF[0].x - AF[1].x)/4;//x_center - 2*(scalable width) +UNSUPPORTED("esx26fefr0mrz7t4p720sf58a"); // D[3].y = D[2].y; +UNSUPPORTED("dm1gyw5qetggvcc8zstksyyg2"); // D[4].x = D[3].x; +UNSUPPORTED("1fs3e43f2oljbqgl2gtjqo4xn"); // D[4].y = D[0].y; +UNSUPPORTED("6u1z6h8gfy4ofbsa9gidwp2v9"); // gvrender_polygon(job, D, sides + 1, filled); +UNSUPPORTED("hjs1b12h76k9zk31lumwwf9f"); // /*dsDNA line*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("7vyejosjncamgazhav0j15x5q"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("d3qtw2cyrswp62e4psl3ww6qy"); // case (11 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("asi2pc1274ap2839mbipmof4"); // * zigzag shape, scales in the x-direction (only the middle section) +UNSUPPORTED("11dzfjbtxkn4alvdn9s9waab8"); // * +UNSUPPORTED("6ng5df4tnn838bpcedbdkwgik"); // * +UNSUPPORTED("ebmsq3svyy5vfr02vuesdb7om"); // * ----D[2] +UNSUPPORTED("474tiy3ppnarbx3tem6pex5wl"); // * | |________ D[0] +UNSUPPORTED("br8aj42mw70mad09j8u79ty50"); // * | |____ +UNSUPPORTED("435gbgj841wxffxgc43eficn0"); // * ---------- | +UNSUPPORTED("72xs5i64zgn8illkas18bwl77"); // * D[4] --- D[7] +UNSUPPORTED("c1eovxh5oerfbxr449dk7o87u"); // * +UNSUPPORTED("7ltzne5zulu744fj39ucj4ohf"); // * +UNSUPPORTED("dhhao73bupb3qih7po05x8qcs"); // * +UNSUPPORTED("4gn10s3n3ms2z2jz5zpxmp5ay"); // */ +UNSUPPORTED("31z12vlharu09ldqvmirdvp2n"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2; +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("azjvg240odj44iv9ekoxye94d"); // //the thickness is subituted with (AF[0].x - AF[1].x)/8 to make it scalable in the y with label length +UNSUPPORTED("7uqzacf8x5tg89bgh6rziw1s3"); // D = (pointf*)zmalloc((sides + 4)*sizeof(pointf)); +UNSUPPORTED("8puozbi1qbdhenklno39sad43"); // D[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 + (AF[0].x - AF[1].x)/8 + (B[2].x-B[3].x)/2;//x_center + scalable_width + width +UNSUPPORTED("aojkb4cjtphbwmuxkdt5y13al"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/4;//y_center + 1/2 width +UNSUPPORTED("d4aju7h8k010npgrrxffdkebj"); // D[1].x = AF[1].x + (AF[0].x - AF[1].x)/2 - (AF[0].x - AF[1].x)/8; //x_center - width +UNSUPPORTED("377dvf6krrmq87z68ekoyk1nr"); // D[1].y = D[0].y; +UNSUPPORTED("cnpipkg905bpnnnnoa0lopvzy"); // D[2].x = D[1].x; +UNSUPPORTED("crefk31pbp2yilanj44au7qbe"); // D[2].y = D[1].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("1gxksvxg269nccy3ki80smka3"); // D[3].x = D[2].x - (B[2].x-B[3].x)/2; //D[2].x - width +UNSUPPORTED("esx26fefr0mrz7t4p720sf58a"); // D[3].y = D[2].y; +UNSUPPORTED("dm1gyw5qetggvcc8zstksyyg2"); // D[4].x = D[3].x; +UNSUPPORTED("7lfc7py2ka8mdt2ptx9nm6vrb"); // D[4].y = AF[2].y + (AF[1].y - AF[2].y)/2 - (B[3].y-B[4].y)/4; //y_center - 1/2(width) +UNSUPPORTED("2jcyrcu5t9kbekchzlvw8g996"); // D[5].x = D[0].x - (B[2].x-B[3].x)/2; +UNSUPPORTED("9h546osr54mx5910v00kmvmo3"); // D[5].y = D[4].y; +UNSUPPORTED("a2qj96305wxo9gce1tujcuecz"); // D[6].x = D[5].x; +UNSUPPORTED("4orb58bnb2ascibwd7xd0y4hf"); // D[6].y = D[5].y - (B[3].y-B[4].y)/2; +UNSUPPORTED("5hppmiblaazms70xhasaspb22"); // D[7].x = D[0].x; +UNSUPPORTED("afqmp4euhvvfkjpszw9u76l4r"); // D[7].y = D[6].y; +UNSUPPORTED("519fp4pixwl2w7d4ssm51lram"); // gvrender_polygon(job, D, sides + 4, filled); +UNSUPPORTED("2r3im7kh170rpplkwcoi8l6jp"); // /*dsDNA line left half*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("7eokez2yp2825neik2f0yb69s"); // C[1].x = D[4].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("eum17d4kc12w09ka3gn4xnjkl"); // /*dsDNA line right half*/ +UNSUPPORTED("3mga7r2ky1w3m12hajx82ljg6"); // C[0].x = D[7].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("bpepkqrqcoslkcywz6fwjoemb"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("303w43enaucmyhixkc1xhs652"); // break; +UNSUPPORTED("8xtw70fmxvc3slz5c6ct4iqq"); // case (12 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("bynfyyael4om2fd0roolnhg11"); // * does not scale, on the left side +UNSUPPORTED("11dzfjbtxkn4alvdn9s9waab8"); // * +UNSUPPORTED("9jluf518ja9nhvnco2qeyyukh"); // * D[3]------D[2] +UNSUPPORTED("796ehiftmwg66mguye5i6gdl9"); // * | | +UNSUPPORTED("anbjdqkop5jdxo0pqszbmsil0"); // * D[0]------D[1] +UNSUPPORTED("3b7cclindb323xc5dyldebt79"); // * ----- ------------ +UNSUPPORTED("ekoc25w3kdsjlqotz5zserik"); // * | | +UNSUPPORTED("d246t2abb3qcdptpl7t388cet"); // * D[0]--D[1] +UNSUPPORTED("c1eovxh5oerfbxr449dk7o87u"); // * +UNSUPPORTED("7ltzne5zulu744fj39ucj4ohf"); // * +UNSUPPORTED("dhhao73bupb3qih7po05x8qcs"); // * +UNSUPPORTED("4gn10s3n3ms2z2jz5zpxmp5ay"); // */ +UNSUPPORTED("31z12vlharu09ldqvmirdvp2n"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2; +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("azjvg240odj44iv9ekoxye94d"); // //the thickness is subituted with (AF[0].x - AF[1].x)/8 to make it scalable in the y with label length +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("o7xplnda870crsqrrtxoeovw"); // D[0].x = AF[1].x;//the very left edge +UNSUPPORTED("97g2igromxtixmscljv7c9wu6"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/8;//y_center + 1/4 width +UNSUPPORTED("5vjhczya0wmraeexdugfakfz8"); // D[1].x = D[0].x + 2*(B[2].x-B[3].x); +UNSUPPORTED("377dvf6krrmq87z68ekoyk1nr"); // D[1].y = D[0].y; +UNSUPPORTED("cnpipkg905bpnnnnoa0lopvzy"); // D[2].x = D[1].x; +UNSUPPORTED("crefk31pbp2yilanj44au7qbe"); // D[2].y = D[1].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("esx26fefr0mrz7t4p720sf58a"); // D[3].y = D[2].y; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("ekpqju1yk89s6h95eac20r1gq"); // /*second, lower shape*/ +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("bbttbv2k8ll2jqajk92f8cjw5"); // D[0].x = AF[1].x + (B[2].x-B[3].x); +UNSUPPORTED("8t3rx5v8pl369i9s1bav2htbd"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 - (B[3].y-B[4].y)*5/8; //y_center - 5/4 width +UNSUPPORTED("9pkvrpz0i5eo220nag6ovrbfn"); // D[1].x = D[0].x + (B[2].x-B[3].x); +UNSUPPORTED("377dvf6krrmq87z68ekoyk1nr"); // D[1].y = D[0].y; +UNSUPPORTED("cnpipkg905bpnnnnoa0lopvzy"); // D[2].x = D[1].x; +UNSUPPORTED("crefk31pbp2yilanj44au7qbe"); // D[2].y = D[1].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("esx26fefr0mrz7t4p720sf58a"); // D[3].y = D[2].y; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("eum17d4kc12w09ka3gn4xnjkl"); // /*dsDNA line right half*/ +UNSUPPORTED("8uxhxokvb62d8vqgpxrqqprm7"); // C[0].x = D[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("bpepkqrqcoslkcywz6fwjoemb"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("303w43enaucmyhixkc1xhs652"); // break; +UNSUPPORTED("5jt28oeq5aqdeuwsfmezn51lt"); // case (13 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("b68kolhfp5nwayr9aru8m8e5c"); // * does not scale, on the right side +UNSUPPORTED("11dzfjbtxkn4alvdn9s9waab8"); // * +UNSUPPORTED("b3es50hturnmkxnq7e5ol9ain"); // * D[2]------D[1] +UNSUPPORTED("f3ui2tnmq3tyd5y0zaxgalibr"); // * | | +UNSUPPORTED("8da12absy3kplnjgp306ow2r1"); // *----------D[3]------D[0] +UNSUPPORTED("8al119ctyx2l5odyoc6w4up0r"); // * ----- D[1] +UNSUPPORTED("ec20mvh529jwauxvcvvcv9hjb"); // * | | +UNSUPPORTED("d0q7vfsuc2e3fts98jrfkk3on"); // * D[3]--D[0] +UNSUPPORTED("c1eovxh5oerfbxr449dk7o87u"); // * +UNSUPPORTED("7ltzne5zulu744fj39ucj4ohf"); // * +UNSUPPORTED("dhhao73bupb3qih7po05x8qcs"); // * +UNSUPPORTED("4gn10s3n3ms2z2jz5zpxmp5ay"); // */ +UNSUPPORTED("31z12vlharu09ldqvmirdvp2n"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2; +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("azjvg240odj44iv9ekoxye94d"); // //the thickness is subituted with (AF[0].x - AF[1].x)/8 to make it scalable in the y with label length +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("7a5jojmk4vack2tnjyo1dnv5c"); // D[0].x = AF[0].x;//the very right edge +UNSUPPORTED("97g2igromxtixmscljv7c9wu6"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/8;//y_center + 1/4 width +UNSUPPORTED("34tp01hd6y8buifqu81fp7kah"); // D[1].x = D[0].x; +UNSUPPORTED("53lzmbxoyk9sss54apowy1jcj"); // D[1].y = D[0].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("5ggtybq4huk2l27co2brcnn7a"); // D[2].x = D[1].x - 2*(B[3].y-B[4].y); +UNSUPPORTED("dmuv0ci8g28j2wpq47bkjo7p6"); // D[2].y = D[1].y; +UNSUPPORTED("5ihipbue45drjma9vxlpgy615"); // D[3].x = D[2].x; +UNSUPPORTED("b9duody7fe2aysvdbb7u2vz0h"); // D[3].y = D[0].y; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("ekpqju1yk89s6h95eac20r1gq"); // /*second, lower shape*/ +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("1koli020v5df0l9ozg6qbxov9"); // D[0].x = AF[0].x - (B[2].x-B[3].x); +UNSUPPORTED("8t3rx5v8pl369i9s1bav2htbd"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 - (B[3].y-B[4].y)*5/8; //y_center - 5/4 width +UNSUPPORTED("34tp01hd6y8buifqu81fp7kah"); // D[1].x = D[0].x; +UNSUPPORTED("53lzmbxoyk9sss54apowy1jcj"); // D[1].y = D[0].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("1tvqu076kbr7qcxd1pporcrlw"); // D[2].x = D[1].x - (B[3].y-B[4].y); +UNSUPPORTED("dmuv0ci8g28j2wpq47bkjo7p6"); // D[2].y = D[1].y; +UNSUPPORTED("5ihipbue45drjma9vxlpgy615"); // D[3].x = D[2].x; +UNSUPPORTED("b9duody7fe2aysvdbb7u2vz0h"); // D[3].y = D[0].y; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("2r3im7kh170rpplkwcoi8l6jp"); // /*dsDNA line left half*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("ogtpwtelm2m435skybbigshn"); // C[1].x = D[3].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("bpepkqrqcoslkcywz6fwjoemb"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("303w43enaucmyhixkc1xhs652"); // break; +UNSUPPORTED("b00adjh71tebnwktqy2c7qen"); // case (14 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("167ktpr6jgq2ir87knm58dnxw"); // * does not scale +UNSUPPORTED("11dzfjbtxkn4alvdn9s9waab8"); // * +UNSUPPORTED("3llrhwcbgncbf9dwdut8nbop8"); // * D[3]------D[2] D[3]------D[2] +UNSUPPORTED("3bkrw2bi9jt34caj90fh17xk"); // * | | | | +UNSUPPORTED("e8rezojipvcbc7wl7lkb5gtwm"); // * ---D[0]------D[1] D[0]------D[1]---- +UNSUPPORTED("3llrhwcbgncbf9dwdut8nbop8"); // * D[3]------D[2] D[3]------D[2] +UNSUPPORTED("dsr5jaoof7rw4c3tkgfx86yor"); // * | | | | +UNSUPPORTED("73xc7e0yi8z88q6x4x9s8f50a"); // * D[0]------D[1] D[0]------D[1] +UNSUPPORTED("53z8rhlvldkx4ydcoaqfnm4tk"); // * +UNSUPPORTED("c1eovxh5oerfbxr449dk7o87u"); // * +UNSUPPORTED("7ltzne5zulu744fj39ucj4ohf"); // * +UNSUPPORTED("dhhao73bupb3qih7po05x8qcs"); // * +UNSUPPORTED("4gn10s3n3ms2z2jz5zpxmp5ay"); // */ +UNSUPPORTED("31z12vlharu09ldqvmirdvp2n"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2; +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("azjvg240odj44iv9ekoxye94d"); // //the thickness is subituted with (AF[0].x - AF[1].x)/8 to make it scalable in the y with label length +UNSUPPORTED("caiifq15qssrojo1lp5kd761t"); // /*upper left rectangle*/ +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("f2j5si3mjcrfchan7ja10w14r"); // D[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 - (B[2].x-B[3].x)*9/8; //x_center - 2*width - 1/4*width +UNSUPPORTED("97g2igromxtixmscljv7c9wu6"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/8;//y_center + 1/4 width +UNSUPPORTED("9pkvrpz0i5eo220nag6ovrbfn"); // D[1].x = D[0].x + (B[2].x-B[3].x); +UNSUPPORTED("377dvf6krrmq87z68ekoyk1nr"); // D[1].y = D[0].y; +UNSUPPORTED("cnpipkg905bpnnnnoa0lopvzy"); // D[2].x = D[1].x; +UNSUPPORTED("crefk31pbp2yilanj44au7qbe"); // D[2].y = D[1].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("esx26fefr0mrz7t4p720sf58a"); // D[3].y = D[2].y; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("c8aakjie0dovvmj2y1cv9pqvi"); // /*lower, left rectangle*/ +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("f2j5si3mjcrfchan7ja10w14r"); // D[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 - (B[2].x-B[3].x)*9/8; //x_center - 2*width - 1/4*width +UNSUPPORTED("12qbz2yet5sxyqb1w92s4ndn6"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 - (B[3].y-B[4].y)*5/8;//y_center - width - 1/4 width +UNSUPPORTED("9pkvrpz0i5eo220nag6ovrbfn"); // D[1].x = D[0].x + (B[2].x-B[3].x); +UNSUPPORTED("377dvf6krrmq87z68ekoyk1nr"); // D[1].y = D[0].y; +UNSUPPORTED("cnpipkg905bpnnnnoa0lopvzy"); // D[2].x = D[1].x; +UNSUPPORTED("crefk31pbp2yilanj44au7qbe"); // D[2].y = D[1].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("esx26fefr0mrz7t4p720sf58a"); // D[3].y = D[2].y; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("5zdu7hjxl21oye4glrh3qki87"); // /*lower, right rectangle*/ +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("jnnrld5fecpgw2spcpy1owlt"); // D[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 + (B[2].x-B[3].x)/8; //x_center + 1/4*width +UNSUPPORTED("12qbz2yet5sxyqb1w92s4ndn6"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 - (B[3].y-B[4].y)*5/8;//y_center - width - 1/4 width +UNSUPPORTED("9pkvrpz0i5eo220nag6ovrbfn"); // D[1].x = D[0].x + (B[2].x-B[3].x); +UNSUPPORTED("377dvf6krrmq87z68ekoyk1nr"); // D[1].y = D[0].y; +UNSUPPORTED("cnpipkg905bpnnnnoa0lopvzy"); // D[2].x = D[1].x; +UNSUPPORTED("crefk31pbp2yilanj44au7qbe"); // D[2].y = D[1].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("esx26fefr0mrz7t4p720sf58a"); // D[3].y = D[2].y; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("d6ndnv9bfbxsy039deiideukm"); // /*upper, right rectangle*/ +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("jnnrld5fecpgw2spcpy1owlt"); // D[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 + (B[2].x-B[3].x)/8; //x_center + 1/4*width +UNSUPPORTED("8u02sf2xpgku2gvq8y3cyvv3"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/8;//y_center - width - 1/4 width +UNSUPPORTED("9pkvrpz0i5eo220nag6ovrbfn"); // D[1].x = D[0].x + (B[2].x-B[3].x); +UNSUPPORTED("377dvf6krrmq87z68ekoyk1nr"); // D[1].y = D[0].y; +UNSUPPORTED("cnpipkg905bpnnnnoa0lopvzy"); // D[2].x = D[1].x; +UNSUPPORTED("crefk31pbp2yilanj44au7qbe"); // D[2].y = D[1].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("esx26fefr0mrz7t4p720sf58a"); // D[3].y = D[2].y; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("eum17d4kc12w09ka3gn4xnjkl"); // /*dsDNA line right half*/ +UNSUPPORTED("8uxhxokvb62d8vqgpxrqqprm7"); // C[0].x = D[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("2r3im7kh170rpplkwcoi8l6jp"); // /*dsDNA line left half*/ +UNSUPPORTED("5slbe4qz5t6sovatfjm8ccmcs"); // C[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 - (B[2].x-B[3].x)*9/8; //D[0].x of of the left rectangles +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("der143k1nuqx7trw59k0efgrl"); // C[1].x = AF[1].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("bpepkqrqcoslkcywz6fwjoemb"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("303w43enaucmyhixkc1xhs652"); // break; +UNSUPPORTED("14ei614r723mcxpmqhkpr8ijk"); // case (15 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("167ktpr6jgq2ir87knm58dnxw"); // * does not scale +UNSUPPORTED("11dzfjbtxkn4alvdn9s9waab8"); // * +UNSUPPORTED("4j349xa0inyf0oh36zva5zr7l"); // * D[3]----------D[2] +UNSUPPORTED("7b4dzyad9f7brkvbovf9r6hqw"); // * | | +UNSUPPORTED("79i3zed3ho3ky8mkm7skk5hwz"); // * D[0]----------D[1] +UNSUPPORTED("alv06nc1uxctts8p1qmc51lbk"); // * ---- --------- +UNSUPPORTED("4j349xa0inyf0oh36zva5zr7l"); // * D[3]----------D[2] +UNSUPPORTED("7b4dzyad9f7brkvbovf9r6hqw"); // * | | +UNSUPPORTED("79i3zed3ho3ky8mkm7skk5hwz"); // * D[0]----------D[1] +UNSUPPORTED("dhhao73bupb3qih7po05x8qcs"); // * +UNSUPPORTED("4gn10s3n3ms2z2jz5zpxmp5ay"); // */ +UNSUPPORTED("31z12vlharu09ldqvmirdvp2n"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2; +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("azjvg240odj44iv9ekoxye94d"); // //the thickness is subituted with (AF[0].x - AF[1].x)/8 to make it scalable in the y with label length +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("awwgll9ed6viac317lvwpn71d"); // D[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 - (B[2].x-B[3].x); //x_center - 2*width +UNSUPPORTED("97g2igromxtixmscljv7c9wu6"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/8;//y_center + 1/4 width +UNSUPPORTED("5vjhczya0wmraeexdugfakfz8"); // D[1].x = D[0].x + 2*(B[2].x-B[3].x); +UNSUPPORTED("377dvf6krrmq87z68ekoyk1nr"); // D[1].y = D[0].y; +UNSUPPORTED("cnpipkg905bpnnnnoa0lopvzy"); // D[2].x = D[1].x; +UNSUPPORTED("crefk31pbp2yilanj44au7qbe"); // D[2].y = D[1].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("esx26fefr0mrz7t4p720sf58a"); // D[3].y = D[2].y; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("ekpqju1yk89s6h95eac20r1gq"); // /*second, lower shape*/ +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("awwgll9ed6viac317lvwpn71d"); // D[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 - (B[2].x-B[3].x); //x_center - 2*width +UNSUPPORTED("12qbz2yet5sxyqb1w92s4ndn6"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 - (B[3].y-B[4].y)*5/8;//y_center - width - 1/4 width +UNSUPPORTED("5vjhczya0wmraeexdugfakfz8"); // D[1].x = D[0].x + 2*(B[2].x-B[3].x); +UNSUPPORTED("377dvf6krrmq87z68ekoyk1nr"); // D[1].y = D[0].y; +UNSUPPORTED("cnpipkg905bpnnnnoa0lopvzy"); // D[2].x = D[1].x; +UNSUPPORTED("crefk31pbp2yilanj44au7qbe"); // D[2].y = D[1].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("esx26fefr0mrz7t4p720sf58a"); // D[3].y = D[2].y; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("eum17d4kc12w09ka3gn4xnjkl"); // /*dsDNA line right half*/ +UNSUPPORTED("8uxhxokvb62d8vqgpxrqqprm7"); // C[0].x = D[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("2r3im7kh170rpplkwcoi8l6jp"); // /*dsDNA line left half*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("dvcsbjrm41adw6focml1eh8zc"); // C[1].x = D[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("303w43enaucmyhixkc1xhs652"); // break; +UNSUPPORTED("48w5mwwikj3xri88x1ws7mspe"); // case (16 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("7ltzne5zulu744fj39ucj4ohf"); // * +UNSUPPORTED("79o67pgmuajgw0oy68fg9bbvd"); // * +UNSUPPORTED("h0rc5xn5b50bnx2xer2z5stp"); // * +--------------+ +UNSUPPORTED("ex2ghpokf7935zc3r3j6788pu"); // * | | +UNSUPPORTED("25narjhny8esxdam3pqsc62n1"); // * |x | +UNSUPPORTED("h0cdk6heuz85qgmbro6tzuqz"); // * |_____________ | +UNSUPPORTED("h0rc5xn5b50bnx2xer2z5stp"); // * +--------------+ +UNSUPPORTED("4gn10s3n3ms2z2jz5zpxmp5ay"); // */ +UNSUPPORTED("31z12vlharu09ldqvmirdvp2n"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2; +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("azjvg240odj44iv9ekoxye94d"); // //the thickness is subituted with (AF[0].x - AF[1].x)/8 to make it scalable in the y with label length +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("8bi8jgvnnbgjoe0rtiovk3kka"); // D[0].x = AF[0].x; +UNSUPPORTED("d1eg8u95ffvpn8cj0t175qe8"); // D[0].y = B[1].y - (B[3].y - B[4].y)/2; +UNSUPPORTED("45vton2uqw835epqg2o0j1qee"); // D[1].x = B[3].x; +UNSUPPORTED("2so1ozst5cwd02o33408hxi1n"); // D[1].y = B[3].y - (B[3].y - B[4].y)/2; +UNSUPPORTED("2y7ipfj9drc5mfgjluf5y6k6p"); // D[2].x = AF[2].x; +UNSUPPORTED("bopqgv9t3o6ppbojdunc5qjfl"); // D[2].y = AF[2].y + (B[3].y - B[4].y)/2; +UNSUPPORTED("7h94vcqfqaq3o7bcei0wollyt"); // D[3].x = AF[0].x; +UNSUPPORTED("94cxjx74gts01u98ngcns0j0o"); // D[3].y = AF[2].y + (B[3].y - B[4].y)/2; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("etbsuecrxy2aywu5r3ylnasws"); // /* "\" of the X*/ +UNSUPPORTED("dn2kymbyi2rzk23hu0fvmtheo"); // C[0].x = AF[1].x + (B[2].x-B[3].x)/4; +UNSUPPORTED("19k6gzn1ryigjdj1df6gv5pif"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/8; //y_center + 1/4 width +UNSUPPORTED("a0w8w98rrt5pm4y0l5qdfxkow"); // C[1].x = C[0].x + (B[2].x-B[3].x)/4;//C[0].x + width/2 +UNSUPPORTED("d2o4uwqoui3s0bmux80abbqmd"); // C[1].y = C[0].y - (B[3].y-B[4].y)/4;//C[0].y - width/2 +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("4ysg2usfft6m36ffns83iwtmd"); // /*"/" of the X*/ +UNSUPPORTED("dn2kymbyi2rzk23hu0fvmtheo"); // C[0].x = AF[1].x + (B[2].x-B[3].x)/4; +UNSUPPORTED("6pzw020qiqzzlzrh4wycp229t"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 - (B[3].y-B[4].y)/8; //y_center - 1/4 width +UNSUPPORTED("a0w8w98rrt5pm4y0l5qdfxkow"); // C[1].x = C[0].x + (B[2].x-B[3].x)/4;//C[0].x + width/2 +UNSUPPORTED("66ksrj9hxsvy0vw9c9ocnihdo"); // C[1].y = C[0].y + (B[3].y-B[4].y)/4;//C[0].y + width/2 +UNSUPPORTED("3fkc6rtflns56swh4at4mk3m5"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("ak4ihrj8sm9s5bbs7ifbiiqgz"); // /*bottom line*/ +UNSUPPORTED("dn2kymbyi2rzk23hu0fvmtheo"); // C[0].x = AF[1].x + (B[2].x-B[3].x)/4; +UNSUPPORTED("4u65ge9q81w5f8vq91hnk25j0"); // C[0].y = AF[2].y + (B[3].y-B[4].y)*3/4; +UNSUPPORTED("3hxysqi93h8rxowvw7regc5gd"); // C[1].x = AF[0].x - (B[2].x-B[3].x)/4; +UNSUPPORTED("142esq47csev8pt9cyj31tqm1"); // C[1].y = C[0].y; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("303w43enaucmyhixkc1xhs652"); // break; +UNSUPPORTED("7vbkukru4dk2jdofrvin4riun"); // case (17 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("cn7c2ju32wqc45avu1irffys"); // * double square +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("athofuzkxb9foobkjvbgruits"); // * +-----+ +UNSUPPORTED("btl3kzf1m40fjx35r7s13dak8"); // *--| ___ |--- +UNSUPPORTED("3bewsg8hd510shli6vxd282t3"); // * | |_| | +UNSUPPORTED("athofuzkxb9foobkjvbgruits"); // * +-----+ +UNSUPPORTED("6b0g1rzk4g1o9c2we59or2tun"); // * +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("dbi6282o67zdvjpioemev8l1g"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2 +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("dk2ovejnwrhnobz5s8tu0j10r"); // D = (pointf*)zmalloc((sides)*sizeof(pointf)); +UNSUPPORTED("cwgeibey8unr1moojtfgv2q7x"); // D[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 + (B[2].x-B[3].x)/2; //x_center+width +UNSUPPORTED("5q4z1vahwevjgs3lngw7t3ejs"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[2].x-B[3].x)/2; //y_center +UNSUPPORTED("34tp01hd6y8buifqu81fp7kah"); // D[1].x = D[0].x; +UNSUPPORTED("hdzi6ghb3chmpb4kat6cn5o5"); // D[1].y = AF[2].y + (AF[1].y - AF[2].y)/2 - (B[2].x-B[3].x)/2; //D[0].y- width +UNSUPPORTED("c8u2dyot9xat0mx55arvw7g0y"); // D[2].x = AF[1].x + (AF[0].x - AF[1].x)/2 - (B[2].x-B[3].x)/2; //x_center-width +UNSUPPORTED("dmuv0ci8g28j2wpq47bkjo7p6"); // D[2].y = D[1].y; +UNSUPPORTED("5ihipbue45drjma9vxlpgy615"); // D[3].x = D[2].x; +UNSUPPORTED("b9duody7fe2aysvdbb7u2vz0h"); // D[3].y = D[0].y; +UNSUPPORTED("d68sdlvrto6k9daq3v4bffw5y"); // gvrender_polygon(job, D, sides, filled); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("alinyx8nih1q4xkxk0zr6ks0g"); // /*outer square line*/ +UNSUPPORTED("esoqwn3fruttfk0xaif261aqh"); // C[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 + (B[2].x-B[3].x)*3/4; //x_center+1.5*width +UNSUPPORTED("bne0arbunp5lxwkzz28ssqsek"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[2].x-B[3].x)*3/4; //y_center +UNSUPPORTED("ec2n0yx6hife8hckl0aiamvcw"); // C[1].x = C[0].x; +UNSUPPORTED("9up5g41z0f2g93bts1dsx63o4"); // C[1].y = AF[2].y + (AF[1].y - AF[2].y)/2 - (B[2].x-B[3].x)*3/4; //y_center- 1.5*width +UNSUPPORTED("439vzjsgoxct3lgumvqsuq0s1"); // C[2].x = AF[1].x + (AF[0].x - AF[1].x)/2 - (B[2].x-B[3].x)*3/4; //x_center-1.5*width +UNSUPPORTED("76tt8cgoymi6trgixufzzkaf0"); // C[2].y = C[1].y; +UNSUPPORTED("6tyxrag4xqp6g766cux9cx264"); // C[3].x = C[2].x; +UNSUPPORTED("4ho7h0h9c2lk1inv8t3opclga"); // C[3].y = C[0].y; +UNSUPPORTED("300ab5adr2vnr421lamy5ct24"); // C[4] = C[0]; +UNSUPPORTED("41173djchd1fq40lkht8mrq1m"); // gvrender_polyline(job, C, 5); +UNSUPPORTED("eum17d4kc12w09ka3gn4xnjkl"); // /*dsDNA line right half*/ +UNSUPPORTED("8wls9in1sb16jer08b5ssunvn"); // C[0].x = AF[1].x + (AF[0].x - AF[1].x)/2 + (B[2].x-B[3].x)*3/4; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("2r3im7kh170rpplkwcoi8l6jp"); // /*dsDNA line left half*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("8hqchqf2s017c644hehhcaxlo"); // C[1].x = AF[1].x + (AF[0].x - AF[1].x)/2 - (B[2].x-B[3].x)*3/4; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("55yooxu10kqgg7dajhsezqkfq"); // case (18 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("46e0z9y77phnj064p0tf5bf94"); // * X with a dashed line on the bottom +UNSUPPORTED("rj2e0ukg50e63tpjapabomkh"); // * +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("dlcnxc753jrol481tmux9lswq"); // * X +UNSUPPORTED("81manefx32xoejcl5dhw4vc4s"); // * | +UNSUPPORTED("cz2kcexrt76ppdvw9mtzwl6l6"); // * ------------ +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("dbi6282o67zdvjpioemev8l1g"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2 +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("29c55ze4t4mczxh3x1veeu005"); // D = (pointf*)zmalloc((sides + 12)*sizeof(pointf)); //12-sided x +UNSUPPORTED("bfjnm29zjvd3n7do4y87yuimk"); // D[0].x = AF[1].x + (AF[0].x-AF[1].x)/2 + (B[2].x-B[3].x)/4; //x_center+widtht/2 , lower right corner of the x +UNSUPPORTED("6fadfx3cd7603xzoiam5zyl67"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/2; //y_center + width +UNSUPPORTED("34tp01hd6y8buifqu81fp7kah"); // D[1].x = D[0].x; +UNSUPPORTED("4v3l9q24gxtxrar8btl47zoow"); // D[1].y = D[0].y + (B[3].y-B[4].y)/8; //D[0].y +width/4 +UNSUPPORTED("6rgdcvz0zwjdie9l63ipu46l4"); // D[2].x = D[0].x - (B[2].x-B[3].x)/8; //D[0].x- width/4 //right nook of the x +UNSUPPORTED("ex033y5oj49zuzra10asffkia"); // D[2].y = D[1].y + (B[3].y-B[4].y)/8; //D[0].y+width/2 or D[1].y+width/4 +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("1t32ie8e7he01k3ty0s11cjff"); // D[3].y = D[2].y + (B[3].y-B[4].y)/8; //D[2].y + width/4 +UNSUPPORTED("bzw7esfwo40sfa8iehrj4pyr8"); // D[4].x = D[0].x; +UNSUPPORTED("12jatkjezhxoyrcbj7qw0kzrn"); // D[4].y = D[3].y + (B[3].y-B[4].y)/8; //top right corner of the x +UNSUPPORTED("e9ohdk7a5hiy6qw6kdxic8ih0"); // D[5].x = D[2].x; +UNSUPPORTED("9h546osr54mx5910v00kmvmo3"); // D[5].y = D[4].y; +UNSUPPORTED("926tc948ppa1dj5yf7ltaex6"); // D[6].x = AF[1].x + (AF[0].x - AF[1].x)/2; //x_center +UNSUPPORTED("4na1446f7z8re7jmm7p0szkgh"); // D[6].y = D[3].y; //top nook +UNSUPPORTED("2iw65hw9js3r2zpvqu9k4s5f3"); // D[7].x = D[6].x - (B[2].x-B[3].x)/8; //D[5] mirrowed across y +UNSUPPORTED("cdcewcs3o64fkxoeknvdtdd6h"); // D[7].y = D[5].y; +UNSUPPORTED("4gh2f7t5fi2gir99lnocdxmp0"); // D[8].x = D[7].x - (B[2].x-B[3].x)/8;//top left corner +UNSUPPORTED("agbg6evpctdfnyu3qhrm0w5ej"); // D[8].y = D[7].y; +UNSUPPORTED("ah5kglnqaow2xvlpo51wluq5y"); // D[9].x = D[8].x; +UNSUPPORTED("7eul86jxr4ht4r5bn3fgfljdq"); // D[9].y = D[3].y; +UNSUPPORTED("dvxukn20gcceywf45rsdlgwjk"); // D[10].x = D[8].x + (B[2].x-B[3].x)/8; +UNSUPPORTED("ealz2oalp4aksi0zz739qke65"); // D[10].y = D[2].y; +UNSUPPORTED("5pyd0cxb8ujx2mcsu0n68e5xt"); // D[11].x = D[8].x; +UNSUPPORTED("7yttvltea377p6nfz3hviflv7"); // D[11].y = D[1].y; +UNSUPPORTED("ed3f8qa9fqvj7h3ir97ic1dlc"); // D[12].x = D[8].x; +UNSUPPORTED("dg27h65j67kiidrf7m8vrmssw"); // D[12].y = D[0].y; +UNSUPPORTED("88b0xpldaxzgp2ib4r60x41bf"); // D[13].x = D[10].x; +UNSUPPORTED("ancic9a9poikrwxxwm0350zyt"); // D[13].y = D[12].y; +UNSUPPORTED("8to7w6h0h7szl9z3sky187uk"); // D[14].x = D[6].x; //bottom nook +UNSUPPORTED("4f8lav87663g2osgtdmm67fax"); // D[14].y = D[1].y; +UNSUPPORTED("4srifebhh66qjppjrk5fgx7my"); // D[15].x = D[2].x; +UNSUPPORTED("aojyz5q7eulsrjo7xi4v61pas"); // D[15].y = D[0].y; +UNSUPPORTED("eec4an2ita1w8buwmp3e0y9ri"); // gvrender_polygon(job, D, sides + 12, filled); +UNSUPPORTED("ezhguv4sszgbsjctxn3dkls1d"); // //2-part dash line +UNSUPPORTED("6c9mdcqeputx4llge5t3ro9r8"); // /*line below the x, bottom dash*/ +UNSUPPORTED("1qnbpwnfgz995h9ijphe5qq4g"); // C[0].x = D[14].x; //x_center +UNSUPPORTED("1xkx02f07j9c7v00hsy0c15je"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; //y_center +UNSUPPORTED("ec2n0yx6hife8hckl0aiamvcw"); // C[1].x = C[0].x; +UNSUPPORTED("deqh8fifsu2we0oawe0cc0oa6"); // C[1].y = C[0].y + (B[3].y-B[4].y)/8; //y_center + 1/4*width +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("3x5sj9iyejrerw6luuq6elt8u"); // /*line below the x, top dash*/ +UNSUPPORTED("1qnbpwnfgz995h9ijphe5qq4g"); // C[0].x = D[14].x; //x_center +UNSUPPORTED("2ggw25mqydk24dag1i69ct4yg"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/4; +UNSUPPORTED("ec2n0yx6hife8hckl0aiamvcw"); // C[1].x = C[0].x; +UNSUPPORTED("e0n5uvucrlja6280zegwvnw5l"); // C[1].y = C[0].y + (B[3].y-B[4].y)/8; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("hjs1b12h76k9zk31lumwwf9f"); // /*dsDNA line*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("7vyejosjncamgazhav0j15x5q"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("de8hrmjzk9llxqf5n9hseeur"); // case (19 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("67e50jeeiwiw2yyny8x835sxw"); // * hexagon with a dashed line on the bottom +UNSUPPORTED("rj2e0ukg50e63tpjapabomkh"); // * +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("d10jdrlg1miyun96p57ha1zcq"); // * O +UNSUPPORTED("81manefx32xoejcl5dhw4vc4s"); // * | +UNSUPPORTED("cz2kcexrt76ppdvw9mtzwl6l6"); // * ------------ +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("dbi6282o67zdvjpioemev8l1g"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2 +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("bce0986uths99en9ujtallv74"); // D = (pointf*)zmalloc((sides + 4)*sizeof(pointf)); //12-sided x +UNSUPPORTED("1r0dyice1nwwjxx60euskvs22"); // D[0].x = AF[1].x + (AF[0].x-AF[1].x)/2 + (B[2].x-B[3].x)/8; //x_center+widtht/8 , lower right corner of the hexagon +UNSUPPORTED("6fadfx3cd7603xzoiam5zyl67"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/2; //y_center + width +UNSUPPORTED("7vtpwdfs55eauxhtxly0fq9yo"); // D[1].x = D[0].x + (B[2].x-B[3].x)/8; +UNSUPPORTED("4v3l9q24gxtxrar8btl47zoow"); // D[1].y = D[0].y + (B[3].y-B[4].y)/8; //D[0].y +width/4 +UNSUPPORTED("80iff0mad95x21gnzwaa6r2du"); // D[2].x = D[1].x; //D[0].x- width/4 +UNSUPPORTED("e85qlsqp5ec0c39ukmurh01le"); // D[2].y = D[1].y + (B[3].y-B[4].y)/4; //D[1].y+width/2 +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("1t32ie8e7he01k3ty0s11cjff"); // D[3].y = D[2].y + (B[3].y-B[4].y)/8; //D[2].y + width/4 +UNSUPPORTED("8so3hvsavyaik1857ci06i28n"); // D[4].x = D[3].x - (B[2].x-B[3].x)/4; +UNSUPPORTED("eplzuryql5ru5fo39zx6qq098"); // D[4].y = D[3].y; //top of the hexagon +UNSUPPORTED("85tgwpkocchmr8656hsvvujbk"); // D[5].x = D[4].x - (B[2].x-B[3].x)/8; +UNSUPPORTED("d78lk5o8y51l9z7neypp202ok"); // D[5].y = D[2].y; +UNSUPPORTED("a2qj96305wxo9gce1tujcuecz"); // D[6].x = D[5].x; +UNSUPPORTED("au3tvlkozqb147n50te46l8da"); // D[6].y = D[1].y; //left side +UNSUPPORTED("45h8dltyrq4aavcyjz923uke9"); // D[7].x = D[4].x; +UNSUPPORTED("3toyc6445kpow5ul101muzie7"); // D[7].y = D[0].y; //bottom +UNSUPPORTED("519fp4pixwl2w7d4ssm51lram"); // gvrender_polygon(job, D, sides + 4, filled); +UNSUPPORTED("ezhguv4sszgbsjctxn3dkls1d"); // //2-part dash line +UNSUPPORTED("6c9mdcqeputx4llge5t3ro9r8"); // /*line below the x, bottom dash*/ +UNSUPPORTED("4fj9vuy8q45y638ge1ixleprj"); // C[0].x = AF[1].x + (AF[0].x - AF[1].x)/2; //x_center +UNSUPPORTED("1xkx02f07j9c7v00hsy0c15je"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; //y_center +UNSUPPORTED("ec2n0yx6hife8hckl0aiamvcw"); // C[1].x = C[0].x; +UNSUPPORTED("deqh8fifsu2we0oawe0cc0oa6"); // C[1].y = C[0].y + (B[3].y-B[4].y)/8; //y_center + 1/4*width +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("3x5sj9iyejrerw6luuq6elt8u"); // /*line below the x, top dash*/ +UNSUPPORTED("4fj9vuy8q45y638ge1ixleprj"); // C[0].x = AF[1].x + (AF[0].x - AF[1].x)/2; //x_center +UNSUPPORTED("2ggw25mqydk24dag1i69ct4yg"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/4; +UNSUPPORTED("ec2n0yx6hife8hckl0aiamvcw"); // C[1].x = C[0].x; +UNSUPPORTED("e0n5uvucrlja6280zegwvnw5l"); // C[1].y = C[0].y + (B[3].y-B[4].y)/8; +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("hjs1b12h76k9zk31lumwwf9f"); // /*dsDNA line*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("7vyejosjncamgazhav0j15x5q"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("eezw6z44jruvicwzff6onzjsf"); // case (20 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("4oo44mzmfh78pq3lzqwtmsfz4"); // * X with a solid line on the bottom +UNSUPPORTED("rj2e0ukg50e63tpjapabomkh"); // * +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("dlcnxc753jrol481tmux9lswq"); // * X +UNSUPPORTED("81manefx32xoejcl5dhw4vc4s"); // * | +UNSUPPORTED("cz2kcexrt76ppdvw9mtzwl6l6"); // * ------------ +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("dbi6282o67zdvjpioemev8l1g"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2 +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("29c55ze4t4mczxh3x1veeu005"); // D = (pointf*)zmalloc((sides + 12)*sizeof(pointf)); //12-sided x +UNSUPPORTED("bfjnm29zjvd3n7do4y87yuimk"); // D[0].x = AF[1].x + (AF[0].x-AF[1].x)/2 + (B[2].x-B[3].x)/4; //x_center+widtht/2 , lower right corner of the x +UNSUPPORTED("6fadfx3cd7603xzoiam5zyl67"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/2; //y_center + width +UNSUPPORTED("34tp01hd6y8buifqu81fp7kah"); // D[1].x = D[0].x; +UNSUPPORTED("4v3l9q24gxtxrar8btl47zoow"); // D[1].y = D[0].y + (B[3].y-B[4].y)/8; //D[0].y +width/4 +UNSUPPORTED("6rgdcvz0zwjdie9l63ipu46l4"); // D[2].x = D[0].x - (B[2].x-B[3].x)/8; //D[0].x- width/4 //right nook of the x +UNSUPPORTED("ex033y5oj49zuzra10asffkia"); // D[2].y = D[1].y + (B[3].y-B[4].y)/8; //D[0].y+width/2 or D[1].y+width/4 +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("1t32ie8e7he01k3ty0s11cjff"); // D[3].y = D[2].y + (B[3].y-B[4].y)/8; //D[2].y + width/4 +UNSUPPORTED("bzw7esfwo40sfa8iehrj4pyr8"); // D[4].x = D[0].x; +UNSUPPORTED("12jatkjezhxoyrcbj7qw0kzrn"); // D[4].y = D[3].y + (B[3].y-B[4].y)/8; //top right corner of the x +UNSUPPORTED("e9ohdk7a5hiy6qw6kdxic8ih0"); // D[5].x = D[2].x; +UNSUPPORTED("9h546osr54mx5910v00kmvmo3"); // D[5].y = D[4].y; +UNSUPPORTED("926tc948ppa1dj5yf7ltaex6"); // D[6].x = AF[1].x + (AF[0].x - AF[1].x)/2; //x_center +UNSUPPORTED("4na1446f7z8re7jmm7p0szkgh"); // D[6].y = D[3].y; //top nook +UNSUPPORTED("2iw65hw9js3r2zpvqu9k4s5f3"); // D[7].x = D[6].x - (B[2].x-B[3].x)/8; //D[5] mirrowed across y +UNSUPPORTED("cdcewcs3o64fkxoeknvdtdd6h"); // D[7].y = D[5].y; +UNSUPPORTED("4gh2f7t5fi2gir99lnocdxmp0"); // D[8].x = D[7].x - (B[2].x-B[3].x)/8;//top left corner +UNSUPPORTED("agbg6evpctdfnyu3qhrm0w5ej"); // D[8].y = D[7].y; +UNSUPPORTED("ah5kglnqaow2xvlpo51wluq5y"); // D[9].x = D[8].x; +UNSUPPORTED("7eul86jxr4ht4r5bn3fgfljdq"); // D[9].y = D[3].y; +UNSUPPORTED("dvxukn20gcceywf45rsdlgwjk"); // D[10].x = D[8].x + (B[2].x-B[3].x)/8; +UNSUPPORTED("ealz2oalp4aksi0zz739qke65"); // D[10].y = D[2].y; +UNSUPPORTED("5pyd0cxb8ujx2mcsu0n68e5xt"); // D[11].x = D[8].x; +UNSUPPORTED("7yttvltea377p6nfz3hviflv7"); // D[11].y = D[1].y; +UNSUPPORTED("ed3f8qa9fqvj7h3ir97ic1dlc"); // D[12].x = D[8].x; +UNSUPPORTED("dg27h65j67kiidrf7m8vrmssw"); // D[12].y = D[0].y; +UNSUPPORTED("88b0xpldaxzgp2ib4r60x41bf"); // D[13].x = D[10].x; +UNSUPPORTED("ancic9a9poikrwxxwm0350zyt"); // D[13].y = D[12].y; +UNSUPPORTED("8to7w6h0h7szl9z3sky187uk"); // D[14].x = D[6].x; //bottom nook +UNSUPPORTED("4f8lav87663g2osgtdmm67fax"); // D[14].y = D[1].y; +UNSUPPORTED("4srifebhh66qjppjrk5fgx7my"); // D[15].x = D[2].x; +UNSUPPORTED("aojyz5q7eulsrjo7xi4v61pas"); // D[15].y = D[0].y; +UNSUPPORTED("eec4an2ita1w8buwmp3e0y9ri"); // gvrender_polygon(job, D, sides + 12, filled); +UNSUPPORTED("5hl7s3qlipucjwhwahk282sx8"); // /*line below the x*/ +UNSUPPORTED("d55sgple6c28z0c52aycup5at"); // C[0] = D[14]; +UNSUPPORTED("ec2n0yx6hife8hckl0aiamvcw"); // C[1].x = C[0].x; +UNSUPPORTED("4a3l5xe9qdenhns41qoiytki5"); // C[1].y = AF[2].y + (AF[1].y - AF[2].y)/2; //y_center +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("hjs1b12h76k9zk31lumwwf9f"); // /*dsDNA line*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("7vyejosjncamgazhav0j15x5q"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7ea60jessa65lyhvl39qnzgmi"); // case (21 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("67e50jeeiwiw2yyny8x835sxw"); // * hexagon with a dashed line on the bottom +UNSUPPORTED("rj2e0ukg50e63tpjapabomkh"); // * +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("d10jdrlg1miyun96p57ha1zcq"); // * O +UNSUPPORTED("81manefx32xoejcl5dhw4vc4s"); // * | +UNSUPPORTED("cz2kcexrt76ppdvw9mtzwl6l6"); // * ------------ +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("dbi6282o67zdvjpioemev8l1g"); // //x_center is AF[1].x + (AF[0].x - AF[1].x)/2 +UNSUPPORTED("3kvpch1u0mkkh8mvlzphvxdio"); // //y_center is AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("agoljir79z51apt1tmk0f0sc7"); // //width units are (B[2].x-B[3].x)/2 or (B[3].y-B[4].y)/2; +UNSUPPORTED("bce0986uths99en9ujtallv74"); // D = (pointf*)zmalloc((sides + 4)*sizeof(pointf)); //12-sided x +UNSUPPORTED("1r0dyice1nwwjxx60euskvs22"); // D[0].x = AF[1].x + (AF[0].x-AF[1].x)/2 + (B[2].x-B[3].x)/8; //x_center+widtht/8 , lower right corner of the hexagon +UNSUPPORTED("6fadfx3cd7603xzoiam5zyl67"); // D[0].y = AF[2].y + (AF[1].y - AF[2].y)/2 + (B[3].y-B[4].y)/2; //y_center + width +UNSUPPORTED("7vtpwdfs55eauxhtxly0fq9yo"); // D[1].x = D[0].x + (B[2].x-B[3].x)/8; +UNSUPPORTED("4v3l9q24gxtxrar8btl47zoow"); // D[1].y = D[0].y + (B[3].y-B[4].y)/8; //D[0].y +width/4 +UNSUPPORTED("80iff0mad95x21gnzwaa6r2du"); // D[2].x = D[1].x; //D[0].x- width/4 +UNSUPPORTED("e85qlsqp5ec0c39ukmurh01le"); // D[2].y = D[1].y + (B[3].y-B[4].y)/4; //D[1].y+width/2 +UNSUPPORTED("78e3c23lx1btcjbe2srm6rcal"); // D[3].x = D[0].x; +UNSUPPORTED("1t32ie8e7he01k3ty0s11cjff"); // D[3].y = D[2].y + (B[3].y-B[4].y)/8; //D[2].y + width/4 +UNSUPPORTED("8so3hvsavyaik1857ci06i28n"); // D[4].x = D[3].x - (B[2].x-B[3].x)/4; +UNSUPPORTED("eplzuryql5ru5fo39zx6qq098"); // D[4].y = D[3].y; //top of the hexagon +UNSUPPORTED("85tgwpkocchmr8656hsvvujbk"); // D[5].x = D[4].x - (B[2].x-B[3].x)/8; +UNSUPPORTED("d78lk5o8y51l9z7neypp202ok"); // D[5].y = D[2].y; +UNSUPPORTED("a2qj96305wxo9gce1tujcuecz"); // D[6].x = D[5].x; +UNSUPPORTED("au3tvlkozqb147n50te46l8da"); // D[6].y = D[1].y; //left side +UNSUPPORTED("45h8dltyrq4aavcyjz923uke9"); // D[7].x = D[4].x; +UNSUPPORTED("3toyc6445kpow5ul101muzie7"); // D[7].y = D[0].y; //bottom +UNSUPPORTED("519fp4pixwl2w7d4ssm51lram"); // gvrender_polygon(job, D, sides + 4, filled); +UNSUPPORTED("5hl7s3qlipucjwhwahk282sx8"); // /*line below the x*/ +UNSUPPORTED("axr0pn9n2azga1eiee2sfhf90"); // C[0].x = AF[1].x + (AF[0].x - AF[1].x)/2; +UNSUPPORTED("cyy862hp2el6mhfkug2y3f1ca"); // C[0].y = D[0].y; +UNSUPPORTED("ec2n0yx6hife8hckl0aiamvcw"); // C[1].x = C[0].x; +UNSUPPORTED("4a3l5xe9qdenhns41qoiytki5"); // C[1].y = AF[2].y + (AF[1].y - AF[2].y)/2; //y_center +UNSUPPORTED("borq5nu8vs8newp4f3zf2ti2x"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("hjs1b12h76k9zk31lumwwf9f"); // /*dsDNA line*/ +UNSUPPORTED("dcf6dzx1g3i2ccb6d7iwrzof8"); // C[0].x = AF[1].x; +UNSUPPORTED("550o47jm3dqr37h7j0k434zzb"); // C[0].y = AF[2].y + (AF[1].y - AF[2].y)/2; +UNSUPPORTED("5pw7rn49ku3rfnvp5lbqoivb7"); // C[1].x = AF[0].x; +UNSUPPORTED("e0hztszh4dg3gbas5k24di6x9"); // C[1].y = AF[2].y + (AF[0].y - AF[3].y)/2; +UNSUPPORTED("7vyejosjncamgazhav0j15x5q"); // gvrender_polyline(job, C, 2); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("414355qtxrrdrp88lqmu8xuq8"); // break; +UNSUPPORTED("i1a2vh2der7lv63hy4pg74j2"); // case (22 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("11hn7suih6n97ek5ack6vv7ni"); // * Adjust the perimeter for the protrusions. +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("4bfue86t6gftlcgwzff6qshk7"); // * +UNSUPPORTED("2hxqoj7zl8r8xv6e4z6djhz03"); // * D[1] = AF[1] | * +----------------+ * | D[0] * | * | / +UNSUPPORTED("43leeaho94cuu8h6ufftsvw4m"); // * | / +UNSUPPORTED("722lri4xki5u0btwl5flr6qxu"); // * | +-------+ / +UNSUPPORTED("8kn1gxbxamlotuexrxky3o76q"); // * | | |/ +UNSUPPORTED("dscqqxbpov7i3z8kvqhzn45ew"); // * +--------+ +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("5kvv3jvgrdk38xmgwem87tcf9"); // /* Add the tab edges. */ +UNSUPPORTED("6t4waazc6b2bir3lb3a09si65"); // D = (pointf*)zmalloc((sides + 5)*sizeof(pointf)); /*5 new points*/ +UNSUPPORTED("c6x47uv986ws1wlxw5sjqn6n0"); // D[0].x = B[1].x - (B[2].x - B[3].x)/2; +UNSUPPORTED("d1eg8u95ffvpn8cj0t175qe8"); // D[0].y = B[1].y - (B[3].y - B[4].y)/2; +UNSUPPORTED("45vton2uqw835epqg2o0j1qee"); // D[1].x = B[3].x; +UNSUPPORTED("2so1ozst5cwd02o33408hxi1n"); // D[1].y = B[3].y - (B[3].y - B[4].y)/2; +UNSUPPORTED("2y7ipfj9drc5mfgjluf5y6k6p"); // D[2].x = AF[2].x; +UNSUPPORTED("bul5ue4x9puypr5rmyrlxz24r"); // D[2].y = AF[2].y; +UNSUPPORTED("7p7sbu9cltsgpiplr8l952qz1"); // D[3].x = B[2].x + (B[2].x - B[3].x)/2; +UNSUPPORTED("5bb26b07x6ootbr2j1wrams3"); // D[3].y = AF[2].y; +UNSUPPORTED("b8bego41qu7w8qkom46we6jth"); // D[4].x = B[2].x + (B[2].x - B[3].x)/2; +UNSUPPORTED("6mxx226hjtdwefdnjzy5zlzs5"); // D[4].y = AF[2].y + (B[3].y - B[4].y)/2; +UNSUPPORTED("ekx1o9xcvdl245i9hyyocg56v"); // D[5].x = B[1].x - (B[2].x - B[3].x)/2; +UNSUPPORTED("d282nefakffro2sjsbh4yuptv"); // D[5].y = AF[2].y + (B[3].y - B[4].y)/2; +UNSUPPORTED("55sv0um7zomjrn48wiyob6gxo"); // D[6].x = B[1].x - (B[2].x - B[3].x)/2; +UNSUPPORTED("9ubgi9tlkqj3h0i4575ls3ev0"); // D[6].y = AF[3].y; +UNSUPPORTED("eg7fjcwjh1jq1riv8kcy7dei0"); // D[7].y = AF[0].y - (AF[0].y - AF[3].y)/2; /*triangle point */ +UNSUPPORTED("dwd8nqni0j130xliflvrlc5ty"); // D[7].x = AF[0].x; /*triangle point */ +UNSUPPORTED("8pqi0dq2ugizqvkq5c093agrm"); // D[8].y = AF[0].y; +UNSUPPORTED("1vws7hcvciczirrj9548bn4f2"); // D[8].x = B[1].x - (B[2].x - B[3].x)/2; +UNSUPPORTED("9v8e5z6hrq6fr5p16pg80kc21"); // gvrender_polygon(job, D, sides + 5, filled); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6bkffeiw7fqij7bq5hs7k51hl"); // case (23 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("11hn7suih6n97ek5ack6vv7ni"); // * Adjust the perimeter for the protrusions. +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("4bfue86t6gftlcgwzff6qshk7"); // * +UNSUPPORTED("1kf6abx7iat1puo0g8swxlr2j"); // * D[1] = AF[1] | * +----------------+ * | D[0] * | * | / +UNSUPPORTED("43leeaho94cuu8h6ufftsvw4m"); // * | / +UNSUPPORTED("apyndmlwtw3z8vzadqn20r8hu"); // * +----------------+ / +UNSUPPORTED("4teonqvrubwrmkqajn3x92uqz"); // * |/ +UNSUPPORTED("79f8fxsn2gta6r8d9x9n38rzy"); // * +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("5kvv3jvgrdk38xmgwem87tcf9"); // /* Add the tab edges. */ +UNSUPPORTED("9capq7a8vc2wzqyavbvsqo0js"); // D = (pointf*)zmalloc((sides + 3)*sizeof(pointf)); /*3 new points*/ +UNSUPPORTED("c6x47uv986ws1wlxw5sjqn6n0"); // D[0].x = B[1].x - (B[2].x - B[3].x)/2; +UNSUPPORTED("d1eg8u95ffvpn8cj0t175qe8"); // D[0].y = B[1].y - (B[3].y - B[4].y)/2; +UNSUPPORTED("45vton2uqw835epqg2o0j1qee"); // D[1].x = B[3].x; +UNSUPPORTED("2so1ozst5cwd02o33408hxi1n"); // D[1].y = B[3].y - (B[3].y - B[4].y)/2; +UNSUPPORTED("2y7ipfj9drc5mfgjluf5y6k6p"); // D[2].x = AF[2].x; +UNSUPPORTED("bopqgv9t3o6ppbojdunc5qjfl"); // D[2].y = AF[2].y + (B[3].y - B[4].y)/2; +UNSUPPORTED("1q0xgxya7e8fzpb1l2p14fk7g"); // D[3].x = B[1].x - (B[2].x - B[3].x)/2; +UNSUPPORTED("94cxjx74gts01u98ngcns0j0o"); // D[3].y = AF[2].y + (B[3].y - B[4].y)/2; +UNSUPPORTED("21elcwekxeowj7i0450kbasb4"); // D[4].x = B[1].x - (B[2].x - B[3].x)/2; +UNSUPPORTED("8eiljnxcc6es7v531vw3p943t"); // D[4].y = AF[3].y; +UNSUPPORTED("av1198agtncjj9dsyfskbhrt"); // D[5].y = AF[0].y - (AF[0].y - AF[3].y)/2;/*triangle point*/ +UNSUPPORTED("evuqotctuiu9zd74xdrh07pft"); // D[5].x = AF[0].x; /*triangle point */ +UNSUPPORTED("96e1uuucniuu6eztjwb5aua2b"); // D[6].y = AF[0].y; +UNSUPPORTED("55sv0um7zomjrn48wiyob6gxo"); // D[6].x = B[1].x - (B[2].x - B[3].x)/2; +UNSUPPORTED("66hq5hkfg6ixw5enzwwhsontq"); // gvrender_polygon(job, D, sides + 3, filled); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("bi7entdk2ummrdev9ic5z88zh"); // case (24 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("11hn7suih6n97ek5ack6vv7ni"); // * Adjust the perimeter for the protrusions. +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("4bfue86t6gftlcgwzff6qshk7"); // * +UNSUPPORTED("2vf6dvre5x62f4afex2v3wssm"); // * /| +UNSUPPORTED("7at1abf1biy3h7owo91fj09sq"); // * / +----------------+ +UNSUPPORTED("758ct1qslb1outqo15t8qplkx"); // * / | +UNSUPPORTED("8a7qsgirg007q526nvsyh566t"); // * \ | +UNSUPPORTED("asz6zd87dnrnppnilt2vmd742"); // * \ +----------------+ +UNSUPPORTED("2kg8z59q8qzdxgf73c76yxsbr"); // * \| +UNSUPPORTED("79f8fxsn2gta6r8d9x9n38rzy"); // * +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("5kvv3jvgrdk38xmgwem87tcf9"); // /* Add the tab edges. */ +UNSUPPORTED("9capq7a8vc2wzqyavbvsqo0js"); // D = (pointf*)zmalloc((sides + 3)*sizeof(pointf)); /*3 new points*/ +UNSUPPORTED("8bi8jgvnnbgjoe0rtiovk3kka"); // D[0].x = AF[0].x; +UNSUPPORTED("3nnpsf5gr04nj80fm603hxrew"); // D[0].y = AF[0].y - (B[3].y-B[4].y)/2; +UNSUPPORTED("equct6fawt1qt33fcaa2vbx6d"); // D[1].x = B[2].x + (B[2].x - B[3].x)/2; +UNSUPPORTED("5je1a4102rsjz8djkg50vxsld"); // D[1].y = AF[0].y - (B[3].y-B[4].y)/2;/*D[0].y*/ +UNSUPPORTED("604g9voy0i4aesl8z4qkl3yua"); // D[2].x = B[2].x + (B[2].x - B[3].x)/2;/*D[1].x*/ +UNSUPPORTED("1ivg7d69vao0ni5v39q7i7ibq"); // D[2].y = B[2].y; +UNSUPPORTED("2fmhbcdtkklozhbyqm15zba5v"); // D[3].x = AF[1].x; /*triangle point*/ +UNSUPPORTED("eqycx49fc5p5s83bled63dukr"); // D[3].y = AF[1].y - (AF[1].y - AF[2].y)/2; /*triangle point*/ +UNSUPPORTED("c8m3lk83ymc1l1swiupvjucow"); // D[4].x = B[2].x + (B[2].x - B[3].x)/2;/*D[1].x*/ +UNSUPPORTED("5gvqnechiy5h1orxyla8m94qt"); // D[4].y = AF[2].y; +UNSUPPORTED("bx6z8nzgcgr5pc8q8l8tqs1su"); // D[5].y = AF[2].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("f4icccql1zjta9sdefq8pvulw"); // D[5].x = B[2].x + (B[2].x - B[3].x)/2;/*D[1].x*/ +UNSUPPORTED("29rdh1i6t6ac606dh48ug09fe"); // D[6].y = AF[3].y + (B[3].y - B[4].y)/2; +UNSUPPORTED("d1t9t9l13vuttc72cjjt70czg"); // D[6].x = AF[0].x;/*D[0]*/ +UNSUPPORTED("66hq5hkfg6ixw5enzwwhsontq"); // gvrender_polygon(job, D, sides + 3, filled); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9uxvjt1cntxds9hia35xi2zrn"); // case (25 << 24): +UNSUPPORTED("59hm5rqv13343impaqd8bjv9p"); // /* +UNSUPPORTED("11hn7suih6n97ek5ack6vv7ni"); // * Adjust the perimeter for the protrusions. +UNSUPPORTED("cmrglhtmovtl6mh8dyeurkeed"); // * +UNSUPPORTED("4bfue86t6gftlcgwzff6qshk7"); // * +UNSUPPORTED("2vf6dvre5x62f4afex2v3wssm"); // * /| +UNSUPPORTED("7at1abf1biy3h7owo91fj09sq"); // * / +----------------+ +UNSUPPORTED("di3oj6qvy7yx7ce8epceo9gcl"); // * / D[0] +UNSUPPORTED("7qliw4diraiwyyzmhk2fkvkbg"); // * / | +UNSUPPORTED("eexvhoejrrctvbe726qrvjb8s"); // * \ | +UNSUPPORTED("8a7qsgirg007q526nvsyh566t"); // * \ | +UNSUPPORTED("n2k5o28c2p32kiem5mklm8ba"); // * \ +--------+ + +UNSUPPORTED("2uh322uvvif8yj3w2dy2rb7na"); // * \| | | +UNSUPPORTED("6eycfkuag7hal8zbmntmzcu9e"); // * +-------+ +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("5kvv3jvgrdk38xmgwem87tcf9"); // /* Add the tab edges. */ +UNSUPPORTED("421a2mdhv0gef0ua8a8hrh1gr"); // D = (pointf*)zmalloc((sides + 5)*sizeof(pointf)); /*3 new points*/ +UNSUPPORTED("8bi8jgvnnbgjoe0rtiovk3kka"); // D[0].x = AF[0].x; +UNSUPPORTED("3nnpsf5gr04nj80fm603hxrew"); // D[0].y = AF[0].y - (B[3].y-B[4].y)/2; +UNSUPPORTED("equct6fawt1qt33fcaa2vbx6d"); // D[1].x = B[2].x + (B[2].x - B[3].x)/2; +UNSUPPORTED("5je1a4102rsjz8djkg50vxsld"); // D[1].y = AF[0].y - (B[3].y-B[4].y)/2;/*D[0].y*/ +UNSUPPORTED("604g9voy0i4aesl8z4qkl3yua"); // D[2].x = B[2].x + (B[2].x - B[3].x)/2;/*D[1].x*/ +UNSUPPORTED("1ivg7d69vao0ni5v39q7i7ibq"); // D[2].y = B[2].y; +UNSUPPORTED("2fmhbcdtkklozhbyqm15zba5v"); // D[3].x = AF[1].x; /*triangle point*/ +UNSUPPORTED("eqycx49fc5p5s83bled63dukr"); // D[3].y = AF[1].y - (AF[1].y - AF[2].y)/2; /*triangle point*/ +UNSUPPORTED("c8m3lk83ymc1l1swiupvjucow"); // D[4].x = B[2].x + (B[2].x - B[3].x)/2;/*D[1].x*/ +UNSUPPORTED("5gvqnechiy5h1orxyla8m94qt"); // D[4].y = AF[2].y; +UNSUPPORTED("bx6z8nzgcgr5pc8q8l8tqs1su"); // D[5].y = AF[2].y + (B[3].y-B[4].y)/2; +UNSUPPORTED("f4icccql1zjta9sdefq8pvulw"); // D[5].x = B[2].x + (B[2].x - B[3].x)/2;/*D[1].x*/ +UNSUPPORTED("29rdh1i6t6ac606dh48ug09fe"); // D[6].y = AF[3].y + (B[3].y - B[4].y)/2; +UNSUPPORTED("55sv0um7zomjrn48wiyob6gxo"); // D[6].x = B[1].x - (B[2].x - B[3].x)/2; +UNSUPPORTED("46jv04wtkylcmc9s9pv56lr3c"); // D[7].x = B[1].x - (B[2].x - B[3].x)/2;/*D[6].x*/ +UNSUPPORTED("7588ab6v6tp8x8bpjy3d79jex"); // D[7].y = AF[3].y; +UNSUPPORTED("3jown0xzpispkq8oomn10deyz"); // D[8].x = AF[3].x; +UNSUPPORTED("39c46sl6j7nxvcb2pae8rs398"); // D[8].y = AF[3].y; +UNSUPPORTED("9v8e5z6hrq6fr5p16pg80kc21"); // gvrender_polygon(job, D, sides + 5, filled); +UNSUPPORTED("cgk7heai5pdojykyc6x6f5pzz"); // free(D); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9yor276xqtqe07q4gsz71t5o4"); // free(B); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 acyez4b7guim63q8crmnyi18 +// static double userSize(node_t * n) +public static Object userSize(Object... arg) { +UNSUPPORTED("8yl20lmgb1f7rteptp4jmmd4w"); // static double userSize(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cldfniz1yu2rzamoi5a3tri2q"); // double w, h; +UNSUPPORTED("7nla3nwmcqssau6gicpyolcww"); // w = late_double(n, N_width, 0.0, 0.01); +UNSUPPORTED("14rygobuxmhem0qjemmp7zwup"); // h = late_double(n, N_height, 0.0, 0.02); +UNSUPPORTED("92gsjf70pdi57i20e9rszpm1o"); // return (ROUND((MAX(w, h))*72)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5gahokttzv65lspm84ao1le37 +// shape_kind shapeOf(node_t * n) +public static int shapeOf(Agnode_s n) { +ENTERING("5gahokttzv65lspm84ao1le37","shapeOf"); +try { + shape_desc sh = (shape_desc) ND_shape(n); + CFunctionImpl ifn; //void (*ifn) (node_t *); + if (N(sh)) + return enumAsInt(shape_kind.class, "SH_UNSET"); + ifn = (CFunctionImpl) ND_shape(n).getPtr("fns").getPtr("initfn"); + if (ifn.getName().equals("poly_init")) + return enumAsInt(shape_kind.class, "SH_POLY"); +UNSUPPORTED("251a710sgr57bnrs3uh7ppfpi"); // else if (ifn == record_init) +UNSUPPORTED("uubga3e6j1jsmn61hfok2zwk"); // return SH_RECORD; +UNSUPPORTED("cpzx2lwu889clk2f1d0k4c9jd"); // else if (ifn == point_init) +UNSUPPORTED("f4x4vap21dff1trk1lrzzb8u5"); // return SH_POINT; +UNSUPPORTED("alkskrmw3fjn82qi1t2kyi6uh"); // else if (ifn == epsf_init) +UNSUPPORTED("5hp3oli47xj0s4fk7yj1dairi"); // return SH_EPSF; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("7if5cqgy6h2m78kwe6gagv7p"); // return SH_UNSET; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("5gahokttzv65lspm84ao1le37","shapeOf"); +} +} + + + + +//3 e8riwo21j5t1g1tewsbo39z48 +// boolean isPolygon(node_t * n) +public static Object isPolygon(Object... arg) { +UNSUPPORTED("6tth154tjxb21b1rr8m3w5lbj"); // boolean isPolygon(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9uh2xgxrn4veetmkfkbe9iq7y"); // return (ND_shape(n) && (ND_shape(n)->fns->initfn == poly_init)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a11xv6duihbr3d6gkgo2ye2j5 +// static void poly_init(node_t * n) +public static void poly_init(Agnode_s n) { +ENTERING("a11xv6duihbr3d6gkgo2ye2j5","poly_init"); +try { + final __struct__ dimen = __struct__.from(pointf.class), min_bb = __struct__.from(pointf.class), bb = __struct__.from(pointf.class); + final __struct__ imagesize = __struct__.from(point.class); + final __struct__ P = __struct__.from(pointf.class), Q = __struct__.from(pointf.class), R = __struct__.from(pointf.class); + __ptr__ vertices = null; + CString p, sfile, fxd; + double temp, alpha, beta, gamma; + double orientation, distortion, skew; + double sectorangle, sidelength, skewdist, gdistortion, gskew; + double angle, sinx, cosx, xmax=0, ymax=0, scalex, scaley; + double width=0, height=0, marginx, marginy, spacex; + boolean regular; int peripheries, sides; + boolean isBox; int i, j, outp; + polygon_t poly = (polygon_t) Memory.malloc(polygon_t.class); + regular = ND_shape(n).getPtr("polygon").getBoolean("regular"); + peripheries = ND_shape(n).getPtr("polygon").getInt("peripheries"); + sides = ND_shape(n).getPtr("polygon").getInt("sides"); + orientation = ND_shape(n).getPtr("polygon").getDouble("orientation"); + skew = ND_shape(n).getPtr("polygon").getDouble("skew"); + distortion = ND_shape(n).getPtr("polygon").getDouble("distortion"); + regular |= mapbool(agget(n, new CString("regular"))); + /* all calculations in floating point POINTS */ + /* make x and y dimensions equal if node is regular + * If the user has specified either width or height, use the max. + * Else use minimum default value. + * If node is not regular, use the current width and height. + */ + if (regular) { +UNSUPPORTED("637wuscax8bj094m73fwq3n00"); // double sz = userSize(n); +UNSUPPORTED("6wtpde1bxbwd70jz3vuemuvqe"); // if (sz > 0.0) +UNSUPPORTED("c4cn28kuy1f86y4d8rbxy1a4g"); // width = height = sz; +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("mafr2nmpj8xgeranqldzxhtb"); // width = (((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->width); +UNSUPPORTED("l2a1m5p66005ftc6gdbosugj"); // height = (((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->height); +UNSUPPORTED("61qxt5l8ums7d9os9ungn3rao"); // width = height = ((((((width)<(height)?(width):(height)))*72>=0)?(int)((((width)<(height)?(width):(height)))*72 + .5):(int)((((width)<(height)?(width):(height)))*72 - .5))); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } else { + width = (ROUND((ND_width(n))*72)); + height = (ROUND((ND_height(n))*72)); + } + peripheries = late_int(n, Z._().N_peripheries, peripheries, 0); + orientation += late_double(n, Z._().N_orientation, 0.0, -360.0); + if (sides == 0) { /* not for builtins */ +UNSUPPORTED("dd178b113cb8130tl6q70lcp3"); // skew = late_double(n, N_skew, 0.0, -100.0); +UNSUPPORTED("cp83hdn3dp0a7rp9bauc3bgki"); // sides = late_int(n, N_sides, 4, 0); +UNSUPPORTED("abmuc3vqirf3i48480fj0k14g"); // distortion = late_double(n, N_distortion, 0.0, -100.0); + } + /* get label dimensions */ + dimen.____(ND_label(n).getStruct("dimen")); + /* minimal whitespace around label */ + if (ROUND(abs(dimen.getDouble("x")))!=0 || ROUND(abs(dimen.getDouble("y")))!=0) { + /* padding */ + if ((p = agget(n, new CString("margin")))!=null) { +UNSUPPORTED("4dlqwm3pklzgz2e777dm56n03"); // marginx = marginy = 0; +UNSUPPORTED("r186dwelv54pq63p2yo4czig"); // i = sscanf(p, "%lf,%lf", &marginx, &marginy); +UNSUPPORTED("bjp5a2wbzhormf75ov5fumqto"); // if (marginx < 0) +UNSUPPORTED("3tsws28ifjzq7ju8xs3ye4x18"); // marginx = 0; +UNSUPPORTED("7gfecwqgqof787z8u1mgh7qoj"); // if (marginy < 0) +UNSUPPORTED("1xpqznf0i4ljd2b5j81ipsvtg"); // marginy = 0; +UNSUPPORTED("1lcx62wzgnn34tk5li0sgoqwm"); // if (i > 0) { +UNSUPPORTED("dau1s6m0w92gp7bvqz3f63wnp"); // dimen.x += 2 * ((((marginx)*72>=0)?(int)((marginx)*72 + .5):(int)((marginx)*72 - .5))); +UNSUPPORTED("79iqlz01of88ftxysvivw2hgw"); // if (i > 1) +UNSUPPORTED("6opppos2hcjet4cn76130ykba"); // dimen.y += 2 * ((((marginy)*72>=0)?(int)((marginy)*72 + .5):(int)((marginy)*72 - .5))); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("8bwwxn4jop0urcsfnygjofg9s"); // dimen.y += 2 * ((((marginx)*72>=0)?(int)((marginx)*72 + .5):(int)((marginx)*72 - .5))); +UNSUPPORTED("afk9bpom7x393euamnvwwkx6b"); // } else +UNSUPPORTED("87bdwkkwbzyswxnepdd9bj8mb"); // {((dimen).x += 4*4); ((dimen).y += 2*4);}; + } else + { + dimen.setDouble("x", dimen.getDouble("x") + 4*4); + dimen.setDouble("y", dimen.getDouble("y") + 2*4); + }; + } + spacex = dimen.getDouble("x") - ND_label(n).getStruct("dimen").getDouble("x"); + /* quantization */ + if ((temp = agraphof(n).castTo(Agobj_s.class).getPtr("data").castTo(Agraphinfo_t.class).getPtr("drawing").getDouble("quantum")) > 0.0) { +UNSUPPORTED("3nqb0s5rkwj3igt71vooj8asd"); // temp = ((((temp)*72>=0)?(int)((temp)*72 + .5):(int)((temp)*72 - .5))); +UNSUPPORTED("5fxtqwy8liyvnx1yvsou5hb4o"); // dimen.x = quant(dimen.x, temp); +UNSUPPORTED("et885f1jcqpske6ip856arouv"); // dimen.y = quant(dimen.y, temp); + } + imagesize.setInt("x", 0); + imagesize.setInt("y", 0); + if (ND_shape(n).getBoolean("usershape")) { + /* custom requires a shapefile + * not custom is an adaptable user shape such as a postscript + * function. + */ +UNSUPPORTED("7jbvoylyb27di8f54ufxj4mbk"); // if ((*((((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->shape)->name)==*("custom")&&!strcmp((((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->shape)->name,"custom"))) { +UNSUPPORTED("cnfv2ayyl46ohdl5p4pc75swz"); // sfile = agget(n, "shapefile"); +UNSUPPORTED("6llro6gigojo2r8oo6c4k320o"); // imagesize = gvusershape_size(agraphof(n), sfile); +UNSUPPORTED("3ngt3ika8ppq3m9vbgf2q5lu1"); // if ((imagesize.x == -1) && (imagesize.y == -1)) { +UNSUPPORTED("5l8jenkv77ax02t47zzxyv1k0"); // agerr(AGWARN, +UNSUPPORTED("7hgyav5bbs1v4kts1oocozork"); // "No or improper shapefile=\"%s\" for node \"%s\"\n", +UNSUPPORTED("34s5a4xy12nydt3idmis4np67"); // (sfile ? sfile : ""), agnameof(n)); +UNSUPPORTED("apwtbaz0akr5pg5p6uwcroaan"); // imagesize.x = imagesize.y = 0; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("4xiqgw4br039sl4r32gg5jv6k"); // (((Agraphinfo_t*)(((Agobj_t*)(agraphof(n)))->data))->has_images) = (!(0)); +UNSUPPORTED("3nl4wsbxuqlad4tcg8vmg99rx"); // imagesize.x += 2; /* some fixed padding */ +UNSUPPORTED("da00oaavfp6fwqwgshhrodz2r"); // imagesize.y += 2; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } else if ((sfile = agget(n, new CString("image")))!=null && (sfile.charAt(0) != '\0')) { +UNSUPPORTED("76t38i30025xohbzg8w9z4pn9"); // imagesize = gvusershape_size(agraphof(n), sfile); +UNSUPPORTED("b8spvmvtuxcciaejq8j1xhu5s"); // if ((imagesize.x == -1) && (imagesize.y == -1)) { +UNSUPPORTED("cw5grwj6gbj94jcztvnp2ooyj"); // agerr(AGWARN, +UNSUPPORTED("68jdsrao22ymfpb8e1rdezyez"); // "No or improper image=\"%s\" for node \"%s\"\n", +UNSUPPORTED("5lmxoq1rboqrxrchjf5ubg6w5"); // (sfile ? sfile : ""), agnameof(n)); +UNSUPPORTED("7wmzbnczyvj4oocepujtghrka"); // imagesize.x = imagesize.y = 0; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("71mfu0uflnm85dbt8g2oxs9rd"); // (((Agraphinfo_t*)(((Agobj_t*)(agraphof(n)))->data))->has_images) = (!(0)); +UNSUPPORTED("286u48muwmjkomlzqufoqm5cw"); // imagesize.x += 2; /* some fixed padding */ +UNSUPPORTED("1x57knvrmlciu7odfroo3paso"); // imagesize.y += 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } + /* initialize node bb to labelsize */ + bb.setDouble("x", ((dimen.getDouble("x"))>(imagesize.getInt("x"))?(dimen.getDouble("x")):(imagesize.getInt("x")))); + bb.setDouble("y", ((dimen.getDouble("y"))>(imagesize.getInt("y"))?(dimen.getDouble("y")):(imagesize.getInt("y")))); + /* I don't know how to distort or skew ellipses in postscript */ + /* Convert request to a polygon with a large number of sides */ + if ((sides <= 2) && ((distortion != 0.) || (skew != 0.))) { + sides = 120; + } + /* extra sizing depends on if label is centered vertically */ + p = agget(n, new CString("labelloc")); + if (p!=null && (p.charAt(0) == 't' || p.charAt(0) == 'b')) + n.castTo(Agobj_s.class).getPtr("data").castTo(Agnodeinfo_t.class).getPtr("label").setInt("valign", p.charAt(0)); + else + n.castTo(Agobj_s.class).getPtr("data").castTo(Agnodeinfo_t.class).getPtr("label").setInt("valign", 'c'); + isBox = (sides == 4 && (((orientation>=0)?(int)(orientation + .5):(int)(orientation - .5)) % 90) == 0 + && distortion == 0. && skew == 0.); + if (isBox) { + /* for regular boxes the fit should be exact */ + } else if (n.castTo(Agobj_s.class).getPtr("data").castTo(Agnodeinfo_t.class).getPtr("shape").getPtr("polygon").getPtr("vertices")!=null) { +UNSUPPORTED("4adqsyjwqwzs50ggjp57ok6u7"); // poly_desc_t* pd = (poly_desc_t*)(((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->shape)->polygon->vertices; +UNSUPPORTED("1fjwgzo5xkijo98ycmzhal8yv"); // bb = pd->size_gen(bb); + } else { + /* for all other shapes, compute a smallest ellipse + * containing bb centered on the origin, and then pad for that. + * We assume the ellipse is defined by a scaling up of bb. + */ + temp = bb.getDouble("y") * 1.41421356237309504880; + if (height > temp && (n.castTo(Agobj_s.class).getPtr("data").castTo(Agnodeinfo_t.class).getPtr("label").getInt("valign") == 'c')) { + /* if there is height to spare + * and the label is centered vertically + * then just pad x in proportion to the spare height */ + bb.setDouble("x", bb.getDouble("x") * sqrt(1. / (1. - ((bb.getDouble("y") / height) * (bb.getDouble("y") / height))))); + } else { + bb.setDouble("x", bb.getDouble("x") * 1.41421356237309504880); + bb.setDouble("y", temp); + } + if (sides > 2) { + temp = cos(3.14159265358979323846 / sides); + bb.setDouble("x", bb.getDouble("x") / temp); + bb.setDouble("y", bb.getDouble("y") / temp); + /* FIXME - for odd-sided polygons, e.g. triangles, there + would be a better fit with some vertical adjustment of the shape */ + } + } + /* at this point, bb is the minimum size of node that can hold the label */ + min_bb.____(bb); + /* increase node size to width/height if needed */ + fxd = late_string(n, Z._().N_fixed, new CString("false")); + if ((fxd.charAt(0) == 's') && (N(strcmp(fxd,new CString("shape"))))) { + bb.setDouble("x", width); + bb.setDouble("y", height); + poly.setInt("option", poly.getInt("option") | (1 << 11)); + } else if (mapbool(fxd)) { + /* check only label, as images we can scale to fit */ + if ((width < (n.castTo(Agobj_s.class).getPtr("data").castTo(Agnodeinfo_t.class).getPtr("label").getDouble("dimen.x")) + || (height < (n.castTo(Agobj_s.class).getPtr("data").castTo(Agnodeinfo_t.class).getPtr("label").getDouble("dimen.y"))))) + System.err.println( + "node '%s', graph '%s' size too small for label\n"); + //agnameof(n), agnameof(agraphof(n))); + bb.setDouble("x", width); + bb.setDouble("y", height); + } else { + width = MAX(width, bb.getDouble("x")); + bb.setDouble("x", width); + height = MAX(height, bb.getDouble("y")); + bb.setDouble("y", height); + } + /* If regular, make dimensions the same. + * Need this to guarantee final node size is regular. + */ + if (regular) { + width = MAX(bb.getDouble("x"), bb.getDouble("y")); + height = width; + bb.setDouble("x", width); + bb.setDouble("y", width); + } + /* Compute space available for label. Provides the justification borders */ + if (N(mapbool(late_string(n, Z._().N_nojustify, new CString("false"))))) { + if (isBox) { + ND_label(n).getStruct("space").setDouble("x", MAX(dimen.getDouble("x"),bb.getDouble("x")) - spacex); + } + else if (dimen.getDouble("y") < bb.getDouble("y")) { + temp = bb.getDouble("x") * sqrt(1.0 - SQR(dimen.getDouble("y")) / SQR(bb.getDouble("y"))); + ND_label(n).getStruct("space").setDouble("x", MAX(dimen.getDouble("x"),temp) - spacex); + } + else + ND_label(n).getStruct("space").setDouble("x", dimen.getDouble("x") - spacex); + } else { + ND_label(n).getStruct("space").setDouble("x", dimen.getDouble("x") - spacex); + } + if ((poly.getInt("option") & (1 << 11)) == 0) { + temp = bb.getDouble("y") - min_bb.getDouble("y"); + if (dimen.getDouble("y") < imagesize.getInt("y")) + temp += imagesize.getInt("y") - dimen.getDouble("y"); + ND_label(n).getStruct("space").setDouble("y", dimen.getDouble("y") + temp); + } + outp = peripheries; + if (peripheries < 1) + outp = 1; + if (sides < 3) { /* ellipses */ + sides = 2; + vertices = zmalloc(sizeof(pointf.class, outp * sides)); + P.setDouble("x", bb.getDouble("x") / 2.); + P.setDouble("y", bb.getDouble("y") / 2.); + vertices.setDouble("x", -P.getDouble("x")); + vertices.setDouble("y", -P.getDouble("y")); + vertices.plus(1).setDouble("x", P.getDouble("x")); + vertices.plus(1).setDouble("y", P.getDouble("y")); + if (peripheries > 1) { +UNSUPPORTED("4ofenmfgj7cgyf624qmugcx77"); // for (j = 1, i = 2; j < peripheries; j++) { +UNSUPPORTED("458w3r6n3nidn2j2b154phpzt"); // P.x += 4; +UNSUPPORTED("24bcrwtjsfswpmtwxnadf0cn1"); // P.y += 4; +UNSUPPORTED("byrwdiqkace7e10l3pibk54wg"); // vertices[i].x = -P.x; +UNSUPPORTED("bicdgzzy9pdopb03hn9l48yns"); // vertices[i].y = -P.y; +UNSUPPORTED("en9fjm2thtauyxn9t7v4j2xgl"); // i++; +UNSUPPORTED("2pejlnamuvmi1m7339vzctpnb"); // vertices[i].x = P.x; +UNSUPPORTED("dy64x78vvm5nufbuxsn0bi8ng"); // vertices[i].y = P.y; +UNSUPPORTED("en9fjm2thtauyxn9t7v4j2xgl"); // i++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6g6b8zsanvqyc953c4jh1j7iy"); // bb.x = 2. * P.x; +UNSUPPORTED("b5z0hw4dacenv33xsaex70g8d"); // bb.y = 2. * P.y; + } + } else { +/* + * FIXME - this code is wrong - it doesn't work for concave boundaries. + * (e.g. "folder" or "promoter") + * I don't think it even needs sectorangle, or knowledge of skewed shapes. + * (Concepts that only work for convex regular (modulo skew/distort) polygons.) + * + * I think it only needs to know inside v. outside (by always drawing + * boundaries clockwise, say), and the two adjacent segments. + * + * It needs to find the point where the two lines, parallel to + * the current segments, and outside by GAP distance, intersect. + */ + vertices = zmalloc(sizeof(pointf.class, outp * sides)); + if (ND_shape(n).getPtr("polygon").getPtr("vertices")!=null) { +UNSUPPORTED("3ghle84ieryaenfnlbzrfv7bw"); // poly_desc_t* pd = (poly_desc_t*)(((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->shape)->polygon->vertices; +UNSUPPORTED("227lpcg9dt83m2bm8yshb4djf"); // pd->vertex_gen (vertices, &bb); +UNSUPPORTED("cc3jvnwvbhjhro4adeet363yd"); // xmax = bb.x/2; +UNSUPPORTED("39rdmp8vl9muqtv7xs1xwtrwk"); // ymax = bb.y/2; + } else { + sectorangle = 2. * M_PI / sides; + sidelength = sin(sectorangle / 2.); + skewdist = hypot(fabs(distortion) + fabs(skew), 1.); + gdistortion = distortion * SQRT2 / cos(sectorangle / 2.); + gskew = skew / 2.; + angle = (sectorangle - M_PI) / 2.; + sinx = sin(angle); cosx = cos(angle); + R.setDouble("x", .5 * cosx); + R.setDouble("y", .5 * sinx); + xmax = ymax = 0.; + angle += (M_PI - sectorangle) / 2.; + for (i = 0; i < sides; i++) { + /*next regular vertex */ + angle += sectorangle; + sinx = sin(angle); cosx = cos(angle); + R.setDouble("x", R.getDouble("x") + sidelength * cosx); + R.setDouble("y", R.getDouble("y") + sidelength * sinx); + /*distort and skew */ + P.setDouble("x", R.getDouble("x") * (skewdist + R.getDouble("y") * gdistortion) + R.getDouble("y") * gskew); + P.setDouble("y", R.getDouble("y")); + /*orient P.x,P.y */ + alpha = RADIANS(orientation) + atan2(P.getDouble("y"), P.getDouble("x")); + sinx = sin(alpha); cosx = cos(alpha); + P.setDouble("y", hypot(P.getDouble("x"), P.getDouble("y"))); + P.setDouble("x", P.getDouble("y")); + P.setDouble("x", P.getDouble("x") * cosx); + P.setDouble("y", P.getDouble("y") * sinx); + /*scale for label */ + P.setDouble("x", P.getDouble("x") * bb.getDouble("x")); + P.setDouble("y", P.getDouble("y") * bb.getDouble("y")); + /*find max for bounding box */ + xmax = MAX(fabs(P.getDouble("x")), xmax); + ymax = MAX(fabs(P.getDouble("y")), ymax); + /* store result in array of points */ + vertices.plus(i).setStruct(P); + if (isBox) { /* enforce exact symmetry of box */ + vertices.plus(1).setDouble("x", -P.getDouble("x")); + vertices.plus(1).setDouble("y", P.getDouble("y")); + vertices.plus(2).setDouble("x", -P.getDouble("x")); + vertices.plus(2).setDouble("y", -P.getDouble("y")); + vertices.plus(3).setDouble("x", P.getDouble("x")); + vertices.plus(3).setDouble("y", -P.getDouble("y")); + break; + } + } + } + /* apply minimum dimensions */ + xmax *= 2.; + ymax *= 2.; + bb.setDouble("x", MAX(width, xmax)); + bb.setDouble("y", MAX(height, ymax)); + scalex = bb.getDouble("x") / xmax; + scaley = bb.getDouble("y") / ymax; + for (i = 0; i < sides; i++) { + P.____(vertices.plus(i)); + P.setDouble("x", P.getDouble("x") * scalex); + P.setDouble("y", P.getDouble("y") * scaley); + vertices.plus(i).setStruct(P); + } + if (peripheries > 1) { +UNSUPPORTED("3x6t3unoi91ezbh3iz168cm2t"); // Q = vertices[(sides - 1)]; +UNSUPPORTED("8cm8js7jdmpakzujw3wo4h6jk"); // R = vertices[0]; +UNSUPPORTED("5zpv8twf25wr8n71ql3lh8ku2"); // beta = atan2(R.y - Q.y, R.x - Q.x); +UNSUPPORTED("9mlrumbikcvketd18jx1ox7k7"); // for (i = 0; i < sides; i++) { +UNSUPPORTED("gkm8nb6f6ispdzj0ausiv1fe"); // /*for each vertex find the bisector */ +UNSUPPORTED("8tp61rvblb9bmqfwgyknlk906"); // P = Q; +UNSUPPORTED("1ls3xc8rwvn3763c32mx1wzsd"); // Q = R; +UNSUPPORTED("1zrelve2mvbnzah086dkomf6k"); // R = vertices[(i + 1) % sides]; +UNSUPPORTED("bgx8ee996r89memnp0ea0b80m"); // alpha = beta; +UNSUPPORTED("5p9jzpcd51evtwqyugnwk50vf"); // beta = atan2(R.y - Q.y, R.x - Q.x); +UNSUPPORTED("dwskcoivmu9pc5kth75x0ersl"); // gamma = (alpha + 3.14159265358979323846 - beta) / 2.; +UNSUPPORTED("cmm5tvlcafe2aso9bkk3kl7of"); // /*find distance along bisector to */ +UNSUPPORTED("bebwurfm1a1h1bywf9kf5ueug"); // /*intersection of next periphery */ +UNSUPPORTED("1mtgr15b978d0tdunbpj2pkdp"); // temp = 4 / sin(gamma); +UNSUPPORTED("28mxt6c4230xruf63s6u415y9"); // /*convert this distance to x and y */ +UNSUPPORTED("1fxw0fz2b6iq6p6qy58mx9mwu"); // *&sinx = sin((alpha - gamma)); *&cosx = cos((alpha - gamma)); +UNSUPPORTED("8j7vx250v0icumolzos2p5qa8"); // sinx *= temp; +UNSUPPORTED("35ed1mrpnziq164g6cg4stt5w"); // cosx *= temp; +UNSUPPORTED("eu3ptwi3s2200v4253yk1x69t"); // /*save the vertices of all the */ +UNSUPPORTED("7lc5jxgzj6z4lq7sd9y2b6vex"); // /*peripheries at this base vertex */ +UNSUPPORTED("86nzalouete6viryy967d5g9u"); // for (j = 1; j < peripheries; j++) { +UNSUPPORTED("dautpj9jyj2qwa8jpujdh3436"); // Q.x += cosx; +UNSUPPORTED("7p6tl6s20kdual1ysfoxl8wku"); // Q.y += sinx; +UNSUPPORTED("1yw9xq85ss81cogn9jrg24ojc"); // vertices[i + j * sides] = Q; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("9mlrumbikcvketd18jx1ox7k7"); // for (i = 0; i < sides; i++) { +UNSUPPORTED("aa5s79go4kwos2as72rcsdrxf"); // P = vertices[i + (peripheries - 1) * sides]; +UNSUPPORTED("7ee9ageu4efyramsg9jn6klpb"); // bb.x = ((2. * fabs(P.x))>(bb.x)?(2. * fabs(P.x)):(bb.x)); +UNSUPPORTED("lklvdmn7xiqbxhpgdeufcvjj"); // bb.y = ((2. * fabs(P.y))>(bb.y)?(2. * fabs(P.y)):(bb.y)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } + } + } + poly.setInt("regular", regular?1:0); + poly.setInt("peripheries", peripheries); + poly.setInt("sides", sides); + poly.setDouble("orientation", orientation); + poly.setDouble("skew", skew); + poly.setDouble("distortion", distortion); + poly.setPtr("vertices", vertices); + if ((poly.getInt("option") & (1 << 11))!=0) { + /* set width and height to reflect label and shape */ +UNSUPPORTED("7kk8oru3b3copylmq3gssx6qx"); // (((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->width) = ((((dimen.x)>(bb.x)?(dimen.x):(bb.x)))/(double)72); +UNSUPPORTED("8oouzms2x039fhfcfxm7yc4su"); // (((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->height) = ((((dimen.y)>(bb.y)?(dimen.y):(bb.y)))/(double)72); + } else { + n.castTo(Agobj_s.class).getPtr("data").castTo(Agnodeinfo_t.class).setDouble("width", ((bb.getDouble("x"))/(double)72)); + n.castTo(Agobj_s.class).getPtr("data").castTo(Agnodeinfo_t.class).setDouble("height", ((bb.getDouble("y"))/(double)72)); + } + n.castTo(Agobj_s.class).getPtr("data").castTo(Agnodeinfo_t.class).setPtr("shape_info", poly); +} finally { +LEAVING("a11xv6duihbr3d6gkgo2ye2j5","poly_init"); +} +} + + + + +//3 63sj12avbdw6e27zf3sedls1r +// static void poly_free(node_t * n) +public static Object poly_free(Object... arg) { +UNSUPPORTED("cfl0ro4734avs9rtdlar7nbg8"); // static void poly_free(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5ha1ng0rlvg0kiui0qhgme4nb"); // polygon_t *p = ND_shape_info(n); +UNSUPPORTED("3cvmixd2u1g2d9l03kuxyyxxw"); // if (p) { +UNSUPPORTED("3cjbelr7499ch9kn6lbjaz7l7"); // free(p->vertices); +UNSUPPORTED("cy5x5dma0v4hiepir7lrfuo17"); // free(p); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 570t4xovyyfqipaikkf63crmk +// static boolean poly_inside(inside_t * inside_context, pointf p) +//static Agnode_s lastn; /* last node argument */ +//static polygon_t poly; +//static int last, outp, sides; +//static final __struct__ O = __struct__.from(pointf.class); /* point (0,0) */ +//static pointf vertex; +//static double xsize, ysize, scalex, scaley, box_URx, box_URy; +public static boolean poly_inside(inside_t inside_context, final __struct__ p) { +// WARNING!! STRUCT +return poly_inside_w_(inside_context, p.copy()); +} +private static boolean poly_inside_w_(inside_t inside_context, final __struct__ p) { +ENTERING("570t4xovyyfqipaikkf63crmk","poly_inside"); +try { + int i, i1, j; + boolean s; + final __struct__ P = __struct__.from(pointf.class), Q = __struct__.from(pointf.class), R = __struct__.from(pointf.class); + __ptr__ bp = inside_context.getPtr("s.bp"); + __ptr__ n = inside_context.getPtr("s.n"); + P.____(ccwrotatepf(p, 90 * GD_rankdir(agraphof(n)))); + /* Quick test if port rectangle is target */ + if (bp!=null) { + final __struct__ bbox = __struct__.from(boxf.class); + bbox.____(bp.getStruct()); + return INSIDE(P, bbox); + } + if (NEQ(n, Z._().lastn)) { + double n_width = 0, n_height = 0; + Z._().poly = (polygon_t) ND_shape_info(n); + Z._().vertex = (pointf) Z._().poly.getPtr("vertices"); + Z._().sides = Z._().poly.getInt("sides"); + if ((Z._().poly.getInt("option") & (1 << 11))!=0) { +UNSUPPORTED("18yw1scg4sol8bhyf1vedj9kn"); // boxf bb = polyBB(poly); +UNSUPPORTED("7rz7vxyxao0efec2nvd6g19m1"); // n_width = bb.UR.x - bb.LL.x; +UNSUPPORTED("4h0k2wroz3xqx1ljokdbaqaad"); // n_height = bb.UR.y - bb.LL.y; +UNSUPPORTED("dgykcjw02yoka8uz5b7jdc2ct"); // /* get point and node size adjusted for rankdir=LR */ +UNSUPPORTED("75jifr4aucrxp2hvnsrcfunej"); // if (GD_flip(agraphof(n))) { +UNSUPPORTED("e53876tm7q1oasuu013njtgx"); // ysize = n_width; +UNSUPPORTED("7wnmmcv8dfzi1bdwml4vcxf0w"); // xsize = n_height; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("10ux82vu0kynxilmf6ak7x70q"); // xsize = n_width; +UNSUPPORTED("5xao1mdiugxzaq03na34mbl5w"); // ysize = n_height; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } + } else { + /* get point and node size adjusted for rankdir=LR */ + if (GD_flip(agraphof(n))!=0) { +UNSUPPORTED("dapvd4c0ggliaqcj08jvao221"); // ysize = ND_lw(n) + ND_rw(n); +UNSUPPORTED("8t3g4d9acruono62leh5a8hxh"); // xsize = ND_ht(n); + } else { + Z._().xsize = ND_lw(n) + ND_rw(n); + Z._().ysize = ND_ht(n); + } + n_width = (ROUND((ND_width(n))*72)); + n_height = (ROUND((ND_height(n))*72)); + } + /* scale */ + if (Z._().xsize == 0.0) + Z._().xsize = 1.0; + if (Z._().ysize == 0.0) + Z._().ysize = 1.0; + Z._().scalex = n_width / Z._().xsize; + Z._().scaley = n_height / Z._().ysize; + Z._().box_URx = n_width / 2.0; + Z._().box_URy = n_height / 2.0; + /* index to outer-periphery */ + Z._().outp = (Z._().poly.getInt("peripheries") - 1) * Z._().sides; + if (Z._().outp < 0) + Z._().outp = 0; + Z._().lastn = (Agnode_s) n; + } + /* scale */ + P.setDouble("x", P.getDouble("x") * Z._().scalex); + P.setDouble("y", P.getDouble("y") * Z._().scaley); + /* inside bounding box? */ + if ((fabs(P.getDouble("x")) > Z._().box_URx) || (fabs(P.getDouble("y")) > Z._().box_URy)) + return false; + /* ellipses */ + if (Z._().sides <= 2) + return (hypot(P.getDouble("x") / Z._().box_URx, P.getDouble("y") / Z._().box_URy) < 1.); + /* use fast test in case we are converging on a segment */ + i = Z._().last % Z._().sides; /* in case last left over from larger polygon */ + i1 = (i + 1) % Z._().sides; + Q.____(Z._().vertex.plus(i + Z._().outp).getStruct()); + R.____(Z._().vertex.plus(i1 + Z._().outp).getStruct()); + if (N(same_side(P, Z._().O, Q, R))) /* false if outside the segment's face */ + return false; + /* else inside the segment face... */ + if ((s = same_side(P, Q, R, Z._().O)) && (same_side(P, R, Z._().O, Q))) /* true if between the segment's sides */ + return NOT(0); + /* else maybe in another segment */ + for (j = 1; j < Z._().sides; j++) { /* iterate over remaining segments */ + if (s) { /* clockwise */ + i = i1; + i1 = (i + 1) % Z._().sides; + } else { /* counter clockwise */ + i1 = i; + i = (i + Z._().sides - 1) % Z._().sides; + } + if (N(same_side(P, Z._().O, Z._().vertex.plus(i + Z._().outp).getStruct(), Z._().vertex.plus(i1 + Z._().outp).getStruct()))) { /* false if outside any other segment's face */ + Z._().last = i; + return false; + } + } + /* inside all segments' faces */ + Z._().last = i; /* in case next edge is to same side */ + return NOT(0); +} finally { +LEAVING("570t4xovyyfqipaikkf63crmk","poly_inside"); +} +} + + + + +//3 5mmuhvq40xadw0g9mzlauyztq +// static int poly_path(node_t * n, port * p, int side, boxf rv[], int *kptr) +public static int poly_path(Agnode_s n, port p, int side, Object rv, Object kptr) { +ENTERING("5mmuhvq40xadw0g9mzlauyztq","poly_path"); +try { + side = 0; + if (ND_label(n).getBoolean("html") && ND_has_port(n)) { +UNSUPPORTED("67g7bthntnw8syb6zd03ueg84"); // side = html_path(n, p, side, rv, kptr); + } + return side; +} finally { +LEAVING("5mmuhvq40xadw0g9mzlauyztq","poly_path"); +} +} + + + + +//3 857i3hwbu9mbq4nwur2q7e7er +// static int invflip_side(int side, int rankdir) +public static Object invflip_side(Object... arg) { +UNSUPPORTED("acksa1hz632l0v9ucpm5gmqzk"); // static int invflip_side(int side, int rankdir) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7gnjhunyvxphjgrfh8byey4ch"); // switch (rankdir) { +UNSUPPORTED("70xjc0sbkjvexfar5luzibcgf"); // case 0: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4u5xz2u3urj13y0aw30fdyup5"); // case 2: +UNSUPPORTED("o4wjkq58uh9dgs94m2vxettc"); // switch (side) { +UNSUPPORTED("a0zo28ne6fq7qm9hko3jwrsie"); // case (1<<2): +UNSUPPORTED("asl0z4i3qt99vpfphpr7hpk5"); // side = (1<<0); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5uxczmgv9jelovrky9lyqmqxn"); // case (1<<0): +UNSUPPORTED("aj9jgzaslnfuc2iy41yo6577i"); // side = (1<<2); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("d0gk15gzj4wz8nv54zbr285hm"); // case 1: +UNSUPPORTED("o4wjkq58uh9dgs94m2vxettc"); // switch (side) { +UNSUPPORTED("a0zo28ne6fq7qm9hko3jwrsie"); // case (1<<2): +UNSUPPORTED("csyxlzh6yvg14dkwm5h0q8l4e"); // side = (1<<1); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5uxczmgv9jelovrky9lyqmqxn"); // case (1<<0): +UNSUPPORTED("6ob9sb98jfamphtvv99f9nny7"); // side = (1<<3); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("3vvicpwbia6xzcxsn2qnkbzq8"); // case (1<<3): +UNSUPPORTED("aj9jgzaslnfuc2iy41yo6577i"); // side = (1<<2); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("ad90yo3mu0ffjurb9egult4pi"); // case (1<<1): +UNSUPPORTED("asl0z4i3qt99vpfphpr7hpk5"); // side = (1<<0); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("33l7a58zp8vj6fuliwdkk2nkn"); // case 3: +UNSUPPORTED("o4wjkq58uh9dgs94m2vxettc"); // switch (side) { +UNSUPPORTED("a0zo28ne6fq7qm9hko3jwrsie"); // case (1<<2): +UNSUPPORTED("csyxlzh6yvg14dkwm5h0q8l4e"); // side = (1<<1); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5uxczmgv9jelovrky9lyqmqxn"); // case (1<<0): +UNSUPPORTED("6ob9sb98jfamphtvv99f9nny7"); // side = (1<<3); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("3vvicpwbia6xzcxsn2qnkbzq8"); // case (1<<3): +UNSUPPORTED("asl0z4i3qt99vpfphpr7hpk5"); // side = (1<<0); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("ad90yo3mu0ffjurb9egult4pi"); // case (1<<1): +UNSUPPORTED("aj9jgzaslnfuc2iy41yo6577i"); // side = (1<<2); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2nk83e61yc1xqh0sxx13m5l1j"); // return side; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 72pzdmirzds0yer4ks1ooxvic +// static double invflip_angle(double angle, int rankdir) +public static Object invflip_angle(Object... arg) { +UNSUPPORTED("1klgft1h7fhevbm1j1guzv58"); // static double invflip_angle(double angle, int rankdir) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7gnjhunyvxphjgrfh8byey4ch"); // switch (rankdir) { +UNSUPPORTED("70xjc0sbkjvexfar5luzibcgf"); // case 0: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4u5xz2u3urj13y0aw30fdyup5"); // case 2: +UNSUPPORTED("e7qgsf2gzf7fv8r5lpdfqp2gp"); // angle *= -1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("d0gk15gzj4wz8nv54zbr285hm"); // case 1: +UNSUPPORTED("b5wrpw5rvhjh7999v3sqqlbo3"); // angle -= M_PI * 0.5; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("33l7a58zp8vj6fuliwdkk2nkn"); // case 3: +UNSUPPORTED("536aocvem6ko7h9t50pllxla0"); // if (angle == M_PI) +UNSUPPORTED("kxow9q31jmisg5yv60fj9z3g"); // angle = -0.5 * M_PI; +UNSUPPORTED("3hy3z7oxc494l61va60rwh9k3"); // else if (angle == M_PI * 0.75) +UNSUPPORTED("76t0zkyxc3q2wnpcajih9mf65"); // angle = -0.25 * M_PI; +UNSUPPORTED("bd02ns5pweyapa70g9ozio3m4"); // else if (angle == M_PI * 0.5) +UNSUPPORTED("a0pp5xd6lligtfp0riunw38t3"); // angle = 0; +UNSUPPORTED("8cqf9j5edmb4u2xnd8lkahkht"); // /* clang complains about self assignment of double +UNSUPPORTED("205i7xisgiaz1vhn9p93tsw5a"); // else if (angle == M_PI * 0.25) +UNSUPPORTED("76g7hlyzy67q9n7p5l89y4gxw"); // angle = angle; +UNSUPPORTED("e5xwyhh2l2jm6g9w2ofnktaf6"); // */ +UNSUPPORTED("8pqjflzypl5wbdev1h4r6ee0e"); // else if (angle == 0) +UNSUPPORTED("3uy8u4gjki2ksohuj3gn6ewkj"); // angle = M_PI * 0.5; +UNSUPPORTED("bqlwd51jj33yedz7tuck5hukd"); // else if (angle == M_PI * -0.25) +UNSUPPORTED("3s431nqj2tfm95djdmjfjig6h"); // angle = M_PI * 0.75; +UNSUPPORTED("tl121swu8uuow1dlzumo1pyi"); // else if (angle == M_PI * -0.5) +UNSUPPORTED("aa92obzwij392if7nnjch6dtz"); // angle = M_PI; +UNSUPPORTED("8cqf9j5edmb4u2xnd8lkahkht"); // /* clang complains about self assignment of double +UNSUPPORTED("2waz5md3krpirny5m7gagynkc"); // else if (angle == M_PI * -0.75) +UNSUPPORTED("76g7hlyzy67q9n7p5l89y4gxw"); // angle = angle; +UNSUPPORTED("e5xwyhh2l2jm6g9w2ofnktaf6"); // */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("62ygf2gmqakbkjtv70bqh5q3i"); // return angle; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 54t5x4hsq6ie4hn83dix0fi3g +// static pointf compassPoint(inside_t * ictxt, double y, double x) +public static Object compassPoint(Object... arg) { +UNSUPPORTED("1owp098dshhw9x2d86x61ho3n"); // static pointf compassPoint(inside_t * ictxt, double y, double x) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5jw267n0iigspndf3p51uuoyt"); // pointf curve[4]; /* bezier control points for a straight line */ +UNSUPPORTED("2ol68djy9gbphj8kdfml5q1ej"); // node_t *n = ictxt->s.n; +UNSUPPORTED("f121hhzfkpb97hn84g46lhxdh"); // graph_t* g = agraphof(n); +UNSUPPORTED("347leky6wh51yiydoij5od0h2"); // int rd = GD_rankdir(g); +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("saqn1396zzjkeo01vp1tskia"); // p.x = x; +UNSUPPORTED("5jdhcgi82gtmvn690v78zmkpe"); // p.y = y; +UNSUPPORTED("2imvfuepadgxdlfwq3qmsatju"); // if (rd) +UNSUPPORTED("8gcpvoawmbrjuiq80lglpl2bn"); // p = cwrotatepf(p, 90 * rd); +UNSUPPORTED("b4ktwkbs8awubvwfgfeqzhlx0"); // curve[0].x = curve[0].y = 0; +UNSUPPORTED("dcqc3vt7dwuvg73lixbbwd3dj"); // curve[1] = curve[0]; +UNSUPPORTED("ahj7ruzql6g6cm5nvomizsgcz"); // curve[3] = curve[2] = p; +UNSUPPORTED("6wkk7v0v7iyai22oyhq16dcno"); // bezier_clip(ictxt, ND_shape(n)->fns->insidefn, curve, 1); +UNSUPPORTED("2imvfuepadgxdlfwq3qmsatju"); // if (rd) +UNSUPPORTED("ip6d55dog3nmeksqauqb1fyo"); // curve[0] = ccwrotatepf(curve[0], 90 * rd); +UNSUPPORTED("7jlv4v811jdfr56u2h3wdxxbm"); // return curve[0]; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4oj0c3dwqqjei7u5u2ik9yyw1 +// static int compassPort(node_t * n, boxf * bp, port * pp, char *compass, int sides, inside_t * ictxt) +public static Object compassPort(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("axo7c40w8kmff5juyfulc507z"); // compassPort(node_t * n, boxf * bp, port * pp, char *compass, int sides, +UNSUPPORTED("8wsp6kb4b5k1nk99rjf8cd50s"); // inside_t * ictxt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("4t6cefa2mlqz8cen3hr5w5o2"); // pointf p, ctr; +UNSUPPORTED("en7ch189nkys76f42mlo1s5zz"); // int rv = 0; +UNSUPPORTED("39lrh4yp65e7bz2yxmw4eykrf"); // double theta = 0.0; +UNSUPPORTED("1whpo0vj6bc0o4y50ozcd6pib"); // boolean constrain = 0; +UNSUPPORTED("39rwowaomcdh9hhpbv5vzxqtg"); // boolean dyna = 0; +UNSUPPORTED("ekt4uw7awxhup7bp69cd0de32"); // int side = 0; +UNSUPPORTED("26uc2ctav83esiworswb0yyqw"); // boolean clip = NOT(0); +UNSUPPORTED("8p9hhcu69i2810srbetaxiscj"); // boolean defined; +UNSUPPORTED("dw42q4y6we417p9qhmaei6d3f"); // double maxv; /* sufficiently large value outside of range of node */ +UNSUPPORTED("8ix20ei8mhm5e1r57koylhxmw"); // if (bp) { +UNSUPPORTED("ddqw44b5basd7iv78obd8twlq"); // b = *bp; +UNSUPPORTED("bdd8asje3pa2bu5sxtn1lp6vh"); // p = pointfof((b.LL.x + b.UR.x) / 2, (b.LL.y + b.UR.y) / 2); +UNSUPPORTED("ap5anvaqlfe3mcudjsohthesw"); // defined = NOT(0); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("dza301uiuu792cezaz0eoyzsr"); // p.x = p.y = 0.; +UNSUPPORTED("ek9a7u2yx8w4r9x5k7somxuup"); // if (GD_flip(agraphof(n))) { +UNSUPPORTED("e21k9f24vr25zdbgo37m5er48"); // b.UR.x = ND_ht(n) / 2.; +UNSUPPORTED("1i4y4dgrig36gh0dq2jn8kde"); // b.LL.x = -b.UR.x; +UNSUPPORTED("7luuqd8n7bpffoa8v27jp7tn3"); // b.UR.y = ND_lw(n); +UNSUPPORTED("922vazdrkwhoxxy4yw5axu6i7"); // b.LL.y = -b.UR.y; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("dma0yc0pj8g9efl81ud62uh2x"); // b.UR.y = ND_ht(n) / 2.; +UNSUPPORTED("922vazdrkwhoxxy4yw5axu6i7"); // b.LL.y = -b.UR.y; +UNSUPPORTED("59beisnsabbp6eavnuxrqch2d"); // b.UR.x = ND_lw(n); +UNSUPPORTED("1i4y4dgrig36gh0dq2jn8kde"); // b.LL.x = -b.UR.x; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1e1jhd4j2f4wri70ymrc2k0pg"); // defined = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("w2aiqm3p7bifxbzx4tx4mipl"); // maxv = MAX(b.UR.x,b.UR.y); +UNSUPPORTED("b8awq55ll3vhs3fjdyqay8kms"); // maxv *= 4.0; +UNSUPPORTED("cm85kba38i3sc3kntnc0a8070"); // ctr = p; +UNSUPPORTED("e7z3qfzj5jj1f70il8lep0oyu"); // if (compass && *compass) { +UNSUPPORTED("72tyr9kgl0hmhdft6u5nwswi3"); // switch (*compass++) { +UNSUPPORTED("2fzjr952o6hmcz3ad5arl2n8d"); // case 'e': +UNSUPPORTED("caapivv2sv3cdu0rt3fnciovd"); // if (*compass) +UNSUPPORTED("en0rarvkx5srsxnlqpf6ja1us"); // rv = 1; +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("3s6xpfbxpp44ou5loxsjfgzqp"); // if (ictxt) +UNSUPPORTED("8whok6jl4olniblvibxhrbbre"); // p = compassPoint(ictxt, ctr.y, maxv); +UNSUPPORTED("c0op0grmjt3kp22s10twqy66r"); // else +UNSUPPORTED("5f4jye7znkk6hbv6lv0l9l0hs"); // p.x = b.UR.x; +UNSUPPORTED("8u0aqa3sxpk302o1oqxok6u47"); // theta = 0.0; +UNSUPPORTED("8cz8xetupjr38r0y1sfojc387"); // constrain = NOT(0); +UNSUPPORTED("bfouf47misaa32ulv25melpbm"); // defined = NOT(0); +UNSUPPORTED("9ni9ftlf9oep71byodeubp1sr"); // clip = 0; +UNSUPPORTED("4sdfaevi5d5qk596bdiw1t1t5"); // side = sides & (1<<1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("b4quboi30n0afnbpgm9chdttx"); // case 's': +UNSUPPORTED("c2y7pxvutf20cxm0z3nfgoc3k"); // p.y = b.LL.y; +UNSUPPORTED("b4ce4svfzxg7z2fd1fquu4qmu"); // constrain = NOT(0); +UNSUPPORTED("c3sati4oun39vfql5zx4ru6z"); // clip = 0; +UNSUPPORTED("bzgzeuh7ihvw4c4eysc3dgpzd"); // switch (*compass) { +UNSUPPORTED("6qkxsufvygbc44eq3d6xorgsx"); // case '\0': +UNSUPPORTED("9ca4neaxnf1dd0hyuuubj4egq"); // theta = -M_PI * 0.5; +UNSUPPORTED("bfouf47misaa32ulv25melpbm"); // defined = NOT(0); +UNSUPPORTED("3s6xpfbxpp44ou5loxsjfgzqp"); // if (ictxt) +UNSUPPORTED("2iohu3tvlkzx2emq04ycxkhta"); // p = compassPoint(ictxt, -maxv, ctr.x); +UNSUPPORTED("c0op0grmjt3kp22s10twqy66r"); // else +UNSUPPORTED("3ly2ywet0m7qfki5yj2nz9t87"); // p.x = ctr.x; +UNSUPPORTED("yc8wdhrrn5mzbqwxidxp3i2y"); // side = sides & (1<<0); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("mnoev43mr2cyh3zj9yiupqzy"); // case 'e': +UNSUPPORTED("avfplp4wadl774qo2yrqn2btg"); // theta = -M_PI * 0.25; +UNSUPPORTED("bfouf47misaa32ulv25melpbm"); // defined = NOT(0); +UNSUPPORTED("e1jqt6v7gkr0w7anohkdvwzuz"); // if (ictxt) +UNSUPPORTED("4qnqhz6577yhq6u9919ve4tjb"); // p = compassPoint(ictxt, -maxv, maxv); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("5f4jye7znkk6hbv6lv0l9l0hs"); // p.x = b.UR.x; +UNSUPPORTED("b0weojc8y88qjfkoujifnu9ag"); // side = sides & ((1<<0) | (1<<1)); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("xzkwmazk8r4ms7xbr46l9xyq"); // case 'w': +UNSUPPORTED("a6j042vifpt4pgkwczny2dy24"); // theta = -M_PI * 0.75; +UNSUPPORTED("bfouf47misaa32ulv25melpbm"); // defined = NOT(0); +UNSUPPORTED("e1jqt6v7gkr0w7anohkdvwzuz"); // if (ictxt) +UNSUPPORTED("c0hdr34iyaygjxcr6a65hns2g"); // p = compassPoint(ictxt, -maxv, -maxv); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("e2vcgqbz5sfyjwfyadlmm3s7n"); // p.x = b.LL.x; +UNSUPPORTED("9yg4wc52hqtj6s3orou0nnbq4"); // side = sides & ((1<<0) | (1<<3)); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bt2g0yhsy3c7keqyftf3c98ut"); // default: +UNSUPPORTED("c8if0ggdrakzyxyn4fwlc8z2j"); // p.y = ctr.y; +UNSUPPORTED("30qndpdx39k6rmlgid0k16w53"); // constrain = 0; +UNSUPPORTED("2uxoapmd0p84jvg4utlai18nj"); // clip = NOT(0); +UNSUPPORTED("en0rarvkx5srsxnlqpf6ja1us"); // rv = 1; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("6f2jab2h8wmbwxojrav1mbs6l"); // case 'w': +UNSUPPORTED("caapivv2sv3cdu0rt3fnciovd"); // if (*compass) +UNSUPPORTED("en0rarvkx5srsxnlqpf6ja1us"); // rv = 1; +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("3s6xpfbxpp44ou5loxsjfgzqp"); // if (ictxt) +UNSUPPORTED("dkdxl90pni5x4m9rsi9l4fkml"); // p = compassPoint(ictxt, ctr.y, -maxv); +UNSUPPORTED("c0op0grmjt3kp22s10twqy66r"); // else +UNSUPPORTED("e2vcgqbz5sfyjwfyadlmm3s7n"); // p.x = b.LL.x; +UNSUPPORTED("4dcpup1eqdwbtlebzv22j3izb"); // theta = M_PI; +UNSUPPORTED("8cz8xetupjr38r0y1sfojc387"); // constrain = NOT(0); +UNSUPPORTED("bfouf47misaa32ulv25melpbm"); // defined = NOT(0); +UNSUPPORTED("9ni9ftlf9oep71byodeubp1sr"); // clip = 0; +UNSUPPORTED("3vss3xpo7q52fe0nwev7hyiyj"); // side = sides & (1<<3); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("f187wptsr73liavtlyoyfovp3"); // case 'n': +UNSUPPORTED("7gucyzlkpil4bfg1hpst17k3d"); // p.y = b.UR.y; +UNSUPPORTED("b4ce4svfzxg7z2fd1fquu4qmu"); // constrain = NOT(0); +UNSUPPORTED("c3sati4oun39vfql5zx4ru6z"); // clip = 0; +UNSUPPORTED("bzgzeuh7ihvw4c4eysc3dgpzd"); // switch (*compass) { +UNSUPPORTED("6qkxsufvygbc44eq3d6xorgsx"); // case '\0': +UNSUPPORTED("bfouf47misaa32ulv25melpbm"); // defined = NOT(0); +UNSUPPORTED("5w6ijz1qm65stfcc659o09osm"); // theta = M_PI * 0.5; +UNSUPPORTED("3s6xpfbxpp44ou5loxsjfgzqp"); // if (ictxt) +UNSUPPORTED("6l60lhko2eg8jry5mf4wpknho"); // p = compassPoint(ictxt, maxv, ctr.x); +UNSUPPORTED("c0op0grmjt3kp22s10twqy66r"); // else +UNSUPPORTED("3ly2ywet0m7qfki5yj2nz9t87"); // p.x = ctr.x; +UNSUPPORTED("8cnew4tzzej0j68sucbir8orn"); // side = sides & (1<<2); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("mnoev43mr2cyh3zj9yiupqzy"); // case 'e': +UNSUPPORTED("bfouf47misaa32ulv25melpbm"); // defined = NOT(0); +UNSUPPORTED("dpfvfzmxj8yxv0s9b2jrvy1dt"); // theta = M_PI * 0.25; +UNSUPPORTED("e1jqt6v7gkr0w7anohkdvwzuz"); // if (ictxt) +UNSUPPORTED("eaiok8sr9qt2m9t35bj1n33vk"); // p = compassPoint(ictxt, maxv, maxv); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("5f4jye7znkk6hbv6lv0l9l0hs"); // p.x = b.UR.x; +UNSUPPORTED("7eo9yj1faco0zq3n56ljnckjl"); // side = sides & ((1<<2) | (1<<1)); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("xzkwmazk8r4ms7xbr46l9xyq"); // case 'w': +UNSUPPORTED("bfouf47misaa32ulv25melpbm"); // defined = NOT(0); +UNSUPPORTED("b4rydjq1y842ljagzj3esvilf"); // theta = M_PI * 0.75; +UNSUPPORTED("e1jqt6v7gkr0w7anohkdvwzuz"); // if (ictxt) +UNSUPPORTED("aftpsq12rdaiypy81n10uki6g"); // p = compassPoint(ictxt, maxv, -maxv); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("e2vcgqbz5sfyjwfyadlmm3s7n"); // p.x = b.LL.x; +UNSUPPORTED("46gsms8looi57wty5vza2s5el"); // side = sides & ((1<<2) | (1<<3)); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bt2g0yhsy3c7keqyftf3c98ut"); // default: +UNSUPPORTED("c8if0ggdrakzyxyn4fwlc8z2j"); // p.y = ctr.y; +UNSUPPORTED("30qndpdx39k6rmlgid0k16w53"); // constrain = 0; +UNSUPPORTED("2uxoapmd0p84jvg4utlai18nj"); // clip = NOT(0); +UNSUPPORTED("en0rarvkx5srsxnlqpf6ja1us"); // rv = 1; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("8yhowesoplp2da595z8jyojxi"); // case '_': +UNSUPPORTED("f5fa3usseyo7pci5g560azmea"); // dyna = NOT(0); +UNSUPPORTED("czfzlng8hat0mzzbxb59g5eix"); // side = sides; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("f3lyz2cejs6yn5fyckhn7ba1"); // case 'c': +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("eldwzm3uyfs9zu1roub5a2uqi"); // rv = 1; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3y0o9dwc6l3w452ce3a06atj4"); // p = cwrotatepf(p, 90 * GD_rankdir(agraphof(n))); +UNSUPPORTED("bg899fz3cixwumeyw39ytk9ky"); // if (dyna) +UNSUPPORTED("c3yy1egy8x5xhv1n80wf30bsp"); // pp->side = side; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("fbhfdhcz7hf8d057jq31086q"); // pp->side = invflip_side(side, GD_rankdir(agraphof(n))); +UNSUPPORTED("cx3gmg51rc8so3a5bx6cltryq"); // pp->bp = bp; +UNSUPPORTED("epsoufavu8hg3cbvo2ejmmrx0"); // PF2P(p, pp->p); +UNSUPPORTED("ami97j8il2yf1ggrixwlm2sga"); // pp->theta = invflip_angle(theta, GD_rankdir(agraphof(n))); +UNSUPPORTED("12w9ecxxght79o36ovi8zwdz5"); // if ((p.x == 0) && (p.y == 0)) +UNSUPPORTED("ckgevzxmtfz2xxsz34wg7zura"); // pp->order = 256 / 2; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("eq22ufb5r5rfpsjxc3gie6aon"); // /* compute angle with 0 at north pole, increasing CCW */ +UNSUPPORTED("aqoi5i20orce7l827lbn5rpfs"); // double angle = atan2(p.y, p.x) + 1.5 * M_PI; +UNSUPPORTED("dfb9u6ghdbpwnspizdx8mrdz3"); // if (angle >= 2 * M_PI) +UNSUPPORTED("jxrmr2dbqvl6zf1pboxh2hbn"); // angle -= 2 * M_PI; +UNSUPPORTED("7wk803jipbaan1qcm89gw97t0"); // pp->order = (int) ((256 * angle) / (2 * M_PI)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("956p2hx4hma7on3bk77kr5mjg"); // pp->constrained = constrain; +UNSUPPORTED("docrlijfgalt2ubkbd5x1aj0g"); // pp->defined = defined; +UNSUPPORTED("bmz5fuwc9jp1t2yghe0gppn11"); // pp->clip = clip; +UNSUPPORTED("2vslebofw1l11qjpgy2bu0q0g"); // pp->dyna = dyna; +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5k2b9gfpwm2tj3zmzniuz9azt +// static port poly_port(node_t * n, char *portname, char *compass) +public static __struct__ poly_port(Agnode_s n, CString portname, CString compass) { +// WARNING!! STRUCT +return poly_port_w_(n, portname, compass).copy(); +} +private static __struct__ poly_port_w_(Agnode_s n, CString portname, CString compass) { +ENTERING("5k2b9gfpwm2tj3zmzniuz9azt","poly_port"); +try { + final __struct__ rv= __struct__.from(port.class); + boxf bp; + int sides; /* bitmap of which sides the port lies along */ + if (portname.charAt(0) == '\0') + return Z._().Center.copy(); +UNSUPPORTED("cm99rhftfe8nq2suzac5fwbgp"); // if (compass == NULL) +UNSUPPORTED("238a13tlawcw3bixwliz859y5"); // compass = "_"; +UNSUPPORTED("ci2ge3idao9rokpvacvcspaxl"); // sides = (1<<0) | (1<<1) | (1<<2) | (1<<3); +UNSUPPORTED("p7u7ou2qrodeed98v2l4kt16"); // if (((((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->label)->html) && (bp = html_port(n, portname, &sides))) { +UNSUPPORTED("dl6n43wu7irkeiaxb6wed3388"); // if (compassPort(n, bp, &rv, compass, sides, NULL)) { +UNSUPPORTED("cw5grwj6gbj94jcztvnp2ooyj"); // agerr(AGWARN, +UNSUPPORTED("en2xpqtprfng8gmc77dzq7klv"); // "node %s, port %s, unrecognized compass point '%s' - ignored\n", +UNSUPPORTED("cmo03yl2q1wgn0c1r45y1ay5e"); // agnameof(n), portname, compass); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("dthh3e4ncmo6w9ycaz15zau5"); // inside_t *ictxtp; +UNSUPPORTED("2txee0yz6un4eoxopikuvmodk"); // inside_t ictxt; +UNSUPPORTED("ffnmnsqi4jd54ewadswjs4c3"); // if (((((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->shape)->polygon == &p_box)) +UNSUPPORTED("caeppa7hx6uy3mtmkxxe509c9"); // ictxtp = NULL; +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("17pbmb7rfq2rdapm13ww6pefz"); // ictxt.s.n = n; +UNSUPPORTED("etss3zom716xdeasxnytjb8db"); // ictxt.s.bp = NULL; +UNSUPPORTED("89cj6b362bd80f627mp67yjh0"); // ictxtp = &ictxt; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5dzg4u1k50dmwpfqatxykvula"); // if (compassPort(n, NULL, &rv, portname, sides, ictxtp)) +UNSUPPORTED("9xmgpfnye0xzd72aptv8i0cgl"); // unrecognized(n, portname); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("5k2b9gfpwm2tj3zmzniuz9azt","poly_port"); +} +} + + + + +//3 1tks71z165dy9pzfshnjejpx3 +// static void poly_gencode(GVJ_t * job, node_t * n) +public static Object poly_gencode(Object... arg) { +UNSUPPORTED("p0x21cs921921juch0sv0bun"); // static void poly_gencode(GVJ_t * job, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("7b0667dpeiekddi69gpywx92t"); // polygon_t *poly; +UNSUPPORTED("behzd4x7hwrpj60ld9ydd6ldw"); // double xsize, ysize; +UNSUPPORTED("avlmoeaaigyvssingomxrvja4"); // int i, j, peripheries, sides, style; +UNSUPPORTED("1r39xvspssd187ru2ru0hw25i"); // pointf P, *vertices; +UNSUPPORTED("behdcj4jfqh2lxeud7bvr9dxx"); // static pointf *AF; +UNSUPPORTED("922k2c5xjbw7vuw4vfhavkll9"); // static int A_size; +UNSUPPORTED("e26zsspincyfi747lhus7h41b"); // boolean filled; +UNSUPPORTED("343gvjl2hbvjb2nrrtcqqetep"); // boolean usershape_p; +UNSUPPORTED("55zxkmqgt42k3bgw1g1del41"); // boolean pfilled; /* true if fill not handled by user shape */ +UNSUPPORTED("b80uijjl4g1zjdox5s5vdh8s5"); // char *color, *name; +UNSUPPORTED("6ciz320nm1jdjxir808cycx3t"); // int doMap = (obj->url || obj->explicit_tooltip); +UNSUPPORTED("7421ua6zgvtho3nwdlh9ypytf"); // char* fillcolor=NULL; +UNSUPPORTED("39txqf5jgyh1q10jekeaemag6"); // char* pencolor=NULL; +UNSUPPORTED("bhtcyodd9jiazat6sqhp9pm4x"); // char* clrs[2]; +UNSUPPORTED("7pfkga2nn8ltabo2ycvjgma6o"); // if (doMap && !(job->flags & (1<<2))) +UNSUPPORTED("6e7g66eeo7n8h8mq556pt3xxy"); // gvrender_begin_anchor(job, +UNSUPPORTED("8g7o4dsbwgp9ggtiktgt2m41t"); // obj->url, obj->tooltip, obj->target, +UNSUPPORTED("c8tk2e711ojwsnar0y39a73cf"); // obj->id); +UNSUPPORTED("e8a863hfpkzgw2w09pemrprir"); // poly = (polygon_t *) ND_shape_info(n); +UNSUPPORTED("44eync2gzhkt36aljp0pdxlws"); // vertices = poly->vertices; +UNSUPPORTED("bt0ymhl3qyi2wkx6awwozl8pm"); // sides = poly->sides; +UNSUPPORTED("axi5xtmkixooa3vai8uysr8y1"); // peripheries = poly->peripheries; +UNSUPPORTED("3yzb2exxpwntmjik61bia8qin"); // if (A_size < sides) { +UNSUPPORTED("6czsf4ed6c2x6qn10dz9vvpc2"); // A_size = sides + 5; +UNSUPPORTED("4fxnv89xcha2g2jkqjznbfhtl"); // AF = ALLOC(A_size, AF, pointf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("65psnpx1lm1txgz684nsf5fy0"); // /* nominal label position in the center of the node */ +UNSUPPORTED("1bslo0pyyucx0zmdzt12sei6d"); // ND_label(n)->pos = ND_coord(n); +UNSUPPORTED("8pq7sdzx1tcm5jiy7gk6k14ru"); // xsize = (ND_lw(n) + ND_rw(n)) / (ROUND((ND_width(n))*72)); +UNSUPPORTED("ebgzy2lbfiijt1acuci7zobbz"); // ysize = ND_ht(n) / (ROUND((ND_height(n))*72)); +UNSUPPORTED("6yjfupcwvts03fbmr493ea2ja"); // style = stylenode(job, n); +UNSUPPORTED("92hvfvrwzs8dy1vdgk97mu8rm"); // clrs[0] = NULL; +UNSUPPORTED("e5t9x8qxknm67g2irjuq09m0n"); // if (ND_gui_state(n) & (1<<0)) { +UNSUPPORTED("bmfnw21ksvzdvbf1k6jhpy482"); // pencolor = late_nnstring(n, N_activepencolor, "#808080"); +UNSUPPORTED("4m6zwbkh86axvr0iupq8yqbj"); // gvrender_set_pencolor(job, pencolor); +UNSUPPORTED("cmymz070zao66wyx1s7tv8pha"); // color = +UNSUPPORTED("3kou17p4mmlejrgnb4ubal4y0"); // late_nnstring(n, N_activefillcolor, "#fcfcfc"); +UNSUPPORTED("8jkw84z9v2sgxja8neagg70yn"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("wgi1jlomdsgec9gfae0fj8md"); // filled = 1; +UNSUPPORTED("9ihvjyvhnzzz36yb9vxt7ds0x"); // } else if (ND_gui_state(n) & (1<<1)) { +UNSUPPORTED("aak3ib1vf3cr00erxujx1x1a2"); // pencolor = +UNSUPPORTED("1cimazkiwwo2m0abp23m3fnme"); // late_nnstring(n, N_selectedpencolor, "#303030"); +UNSUPPORTED("4m6zwbkh86axvr0iupq8yqbj"); // gvrender_set_pencolor(job, pencolor); +UNSUPPORTED("cmymz070zao66wyx1s7tv8pha"); // color = +UNSUPPORTED("28yl28qxl17kdj778ikor38xk"); // late_nnstring(n, N_selectedfillcolor, +UNSUPPORTED("47h1lk49r1o0z3cv330dq6dx"); // "#e8e8e8"); +UNSUPPORTED("8jkw84z9v2sgxja8neagg70yn"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("wgi1jlomdsgec9gfae0fj8md"); // filled = 1; +UNSUPPORTED("1yfjih723r7l1aal6cgysntu9"); // } else if (ND_gui_state(n) & (1<<3)) { +UNSUPPORTED("aak3ib1vf3cr00erxujx1x1a2"); // pencolor = +UNSUPPORTED("7ksdqin8o1wm9jzsj3vquwpn4"); // late_nnstring(n, N_deletedpencolor, "#e0e0e0"); +UNSUPPORTED("4m6zwbkh86axvr0iupq8yqbj"); // gvrender_set_pencolor(job, pencolor); +UNSUPPORTED("cmymz070zao66wyx1s7tv8pha"); // color = +UNSUPPORTED("bt3kkty4bxox77ydiwjgsxvdl"); // late_nnstring(n, N_deletedfillcolor, "#f0f0f0"); +UNSUPPORTED("8jkw84z9v2sgxja8neagg70yn"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("wgi1jlomdsgec9gfae0fj8md"); // filled = 1; +UNSUPPORTED("8zwfuofs5l5a6z3f4rvlihyw2"); // } else if (ND_gui_state(n) & (1<<2)) { +UNSUPPORTED("aak3ib1vf3cr00erxujx1x1a2"); // pencolor = +UNSUPPORTED("ctvdbytqgb1rzge7ij5ocomx9"); // late_nnstring(n, N_visitedpencolor, "#101010"); +UNSUPPORTED("4m6zwbkh86axvr0iupq8yqbj"); // gvrender_set_pencolor(job, pencolor); +UNSUPPORTED("cmymz070zao66wyx1s7tv8pha"); // color = +UNSUPPORTED("2ffts5ygp2gvce89s4zmac21o"); // late_nnstring(n, N_visitedfillcolor, "#f8f8f8"); +UNSUPPORTED("8jkw84z9v2sgxja8neagg70yn"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("wgi1jlomdsgec9gfae0fj8md"); // filled = 1; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("71lsnu3rvb8q4qjlg8ekkueb8"); // if (style & (1 << 0)) { +UNSUPPORTED("1ldzvmymblz8y4a6idvyxoj5t"); // float frac; +UNSUPPORTED("e039lb3amkbtia1p5xid53g8f"); // fillcolor = findFill (n); +UNSUPPORTED("5dnga3gh00f4sv4fk1n2iqdgu"); // if (findStopColor (fillcolor, clrs, &frac)) { +UNSUPPORTED("12wjuz2zq45txyp39hhco78xu"); // gvrender_set_fillcolor(job, clrs[0]); +UNSUPPORTED("5o23oun5dlazsaicyjj530pp"); // if (clrs[1]) +UNSUPPORTED("ct9w73vq2t9wsony60rgp0vuv"); // gvrender_set_gradient_vals(job,clrs[1],late_int(n,N_gradientangle,0,0), frac); +UNSUPPORTED("5v31mz0fdr0su096gqov41vyn"); // else +UNSUPPORTED("5hcjieyymox6ih0mqxtesfkai"); // gvrender_set_gradient_vals(job,"black",late_int(n,N_gradientangle,0,0), frac); +UNSUPPORTED("cu80xxb02iidme5bgb4b9q03o"); // if (style & (1 << 1)) +UNSUPPORTED("5jf506rwz9snq4d6ozpjvg3yg"); // filled = 3; +UNSUPPORTED("7rknc7r0egcn3cw68mrvgow3v"); // else +UNSUPPORTED("7bikp52v1ey2yil3rybx6nris"); // filled = 2; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("es2lu1zhy5wdeml1v1kmrcix3"); // gvrender_set_fillcolor(job, fillcolor); +UNSUPPORTED("6w06em6l23suofe15du0wq9hb"); // filled = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cbyq6e4yotsw91ihtsbpqk9n"); // else if (style & ((1 << 6)|(1 << 9))) { +UNSUPPORTED("e039lb3amkbtia1p5xid53g8f"); // fillcolor = findFill (n); +UNSUPPORTED("b39ijeotj91epdulx0zfawqg7"); // /* gvrender_set_fillcolor(job, fillcolor); */ +UNSUPPORTED("5op945vn3c1cyxwov5p8rj33t"); // filled = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("6hyckgrxm2nsg8cw4hffomldu"); // filled = 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7v8vwyf8talmtwk6o9fv16cu7"); // pencolor = penColor(job, n); /* emit pen color */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dzz4jp9gamcvlyn9e3vzfb9m5"); // pfilled = !ND_shape(n)->usershape || (*(ND_shape(n)->name)==*("custom")&&!strcmp(ND_shape(n)->name,"custom")); +UNSUPPORTED("867znru6ot29tjqobp8dlbw6z"); // /* if no boundary but filled, set boundary color to transparent */ +UNSUPPORTED("42p7y58vqzgaceefog269961h"); // if ((peripheries == 0) && filled && pfilled) { +UNSUPPORTED("15ha366z6aj0vmrwy4kws0mqd"); // peripheries = 1; +UNSUPPORTED("9h0jwzscq5xyee6v8y9a84z5z"); // gvrender_set_pencolor(job, "transparent"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b5y5lqlrrc44k9t418m98208o"); // /* draw peripheries first */ +UNSUPPORTED("3ldxhnwdjmonz5bmmr7t8i5v6"); // for (j = 0; j < peripheries; j++) { +UNSUPPORTED("bnlcutimilujroygrsjpbamec"); // for (i = 0; i < sides; i++) { +UNSUPPORTED("6jkqzav2wqsdxuy5nalny0l8v"); // P = vertices[i + j * sides]; +UNSUPPORTED("7cdu1dtqyaubntomiasv9qnoj"); // AF[i].x = P.x * xsize + ND_coord(n).x; +UNSUPPORTED("e40xvnbar4dmi82ewqw5laa59"); // AF[i].y = P.y * ysize + ND_coord(n).y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9dpfyah7h8cjesbm1tagc3qr2"); // if (sides <= 2) { +UNSUPPORTED("4iafj5ab7zhphfv75axr98xpm"); // if ((style & (1 << 9)) && (j == 0) && (strchr(fillcolor,':'))) { +UNSUPPORTED("brwfdh2hmhcwxahcpjocmax54"); // int rv = wedgedEllipse (job, AF, fillcolor); +UNSUPPORTED("4195dkkxygfup9x2hevx5t0kt"); // if (rv > 1) +UNSUPPORTED("6d80sdeoci13p59wizsvnilpd"); // agerr (AGPREV, "in node %s\n", agnameof(n)); +UNSUPPORTED("3zx9cyeiqls2js359g1ja8px8"); // filled = 0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("dzwn73f4njl5hkp0qrnncl2ff"); // gvrender_ellipse(job, AF, sides, filled); +UNSUPPORTED("chb5tdwhi8a8xmy8ftheo6824"); // if (style & (1 << 3)) { +UNSUPPORTED("efwhq15vj62j7hdj6evx064cg"); // Mcircle_hack(job, n); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("aci5r7yyn8mzrv3exe7znstcn"); // } else if (style & (1 << 6)) { +UNSUPPORTED("dgwuupvm0kjmgthk4ugim8woz"); // if (j == 0) { +UNSUPPORTED("3x4ndf7fx76diabv9nfllk0b5"); // int rv = stripedBox (job, AF, fillcolor, 1); +UNSUPPORTED("4195dkkxygfup9x2hevx5t0kt"); // if (rv > 1) +UNSUPPORTED("6d80sdeoci13p59wizsvnilpd"); // agerr (AGPREV, "in node %s\n", agnameof(n)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("717qv74rlec63ys8natmmpak9"); // gvrender_polygon(job, AF, sides, 0); +UNSUPPORTED("5ueys9z3ukkzz7o4fr6z8tuk0"); // } else if (style & (1 << 10)) { +UNSUPPORTED("8ozii45lu97yd30cta30grmf8"); // gvrender_set_pencolor(job, "transparent"); +UNSUPPORTED("oe3tziy2rg7shg7dan61ilfq"); // gvrender_polygon(job, AF, sides, filled); +UNSUPPORTED("9cgcmdbt8qdrnqnvs86u9cd53"); // gvrender_set_pencolor(job, pencolor); +UNSUPPORTED("fft8g5x7554aunjp9t27mqx6"); // gvrender_polyline(job, AF+2, 2); +UNSUPPORTED("8t4w6b2lracu2ee6rqqm6r915"); // } else if (((style) & ((1 << 2) | (1 << 3) | (127 << 24)))) { +UNSUPPORTED("858fovk41ca06eamq91gjw7tm"); // round_corners(job, AF, sides, style, filled); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("oe3tziy2rg7shg7dan61ilfq"); // gvrender_polygon(job, AF, sides, filled); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1peuavyjb0rqm2z4fzpf2afzm"); // /* fill innermost periphery only */ +UNSUPPORTED("arpfq2ay8oyluwsz8s1wp6tp4"); // filled = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("76vwep8b6qm5azc0fy66d98rw"); // usershape_p = 0; +UNSUPPORTED("8fhwzyrc8mh95ap0b1g7e9nbq"); // if (ND_shape(n)->usershape) { +UNSUPPORTED("2v9mlb5rtcmwqpcth7w27clk5"); // name = ND_shape(n)->name; +UNSUPPORTED("ad1u0yih0rcookfy0x1lsev4d"); // if ((*(name)==*("custom")&&!strcmp(name,"custom"))) { +UNSUPPORTED("7eg6kesbmod5ryqil85qa0nhh"); // if ((name = agget(n, "shapefile")) && name[0]) +UNSUPPORTED("avdrph3m5jvu0m9cldtioxy3f"); // usershape_p = NOT(0); +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("cmpu4v9yae7spgt5x9vvwycqu"); // usershape_p = NOT(0); +UNSUPPORTED("5i5g01dslsnkth7in6u6rbi99"); // } else if ((name = agget(n, "image")) && name[0]) { +UNSUPPORTED("e220s4b8iyyeqjgxmlg5pcdrj"); // usershape_p = NOT(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3btjgija7cfs4jgzrv91fjwpt"); // if (usershape_p) { +UNSUPPORTED("9usktstdf8lawthhtrs6s58pm"); // /* get coords of innermost periphery */ +UNSUPPORTED("bnlcutimilujroygrsjpbamec"); // for (i = 0; i < sides; i++) { +UNSUPPORTED("5dznk69haxedww8ugav5ykrld"); // P = vertices[i]; +UNSUPPORTED("7cdu1dtqyaubntomiasv9qnoj"); // AF[i].x = P.x * xsize + ND_coord(n).x; +UNSUPPORTED("e40xvnbar4dmi82ewqw5laa59"); // AF[i].y = P.y * ysize + ND_coord(n).y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1xu7you106p030clm45rzsrgc"); // /* lay down fill first */ +UNSUPPORTED("3sznkjp2q6eryoqsuxyw523pa"); // if (filled && pfilled) { +UNSUPPORTED("dur5g2omz2d8j499p5rr99e0g"); // if (sides <= 2) { +UNSUPPORTED("ezipi4mltlppyq0tetpgbb2rn"); // if ((style & (1 << 9)) && (j == 0) && (strchr(fillcolor,':'))) { +UNSUPPORTED("an9w62svq9d61trsclgublxs4"); // int rv = wedgedEllipse (job, AF, fillcolor); +UNSUPPORTED("4njt8ngwdhm5t0qj38vd4vx26"); // if (rv > 1) +UNSUPPORTED("dimjpscq5rjb3aaiz8l8gia45"); // agerr (AGPREV, "in node %s\n", agnameof(n)); +UNSUPPORTED("14k7t5gy5xvy3m6y4lllccbyz"); // filled = 0; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("4ey5tpwqvnf3eih51z1ar6wgg"); // gvrender_ellipse(job, AF, sides, filled); +UNSUPPORTED("7eygavzyy3od5lurlb1kyvq4q"); // if (style & (1 << 3)) { +UNSUPPORTED("53tsr41edfe2tdmq1vs4qmoh6"); // Mcircle_hack(job, n); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("79b2w9yvj1qj97vqjuf6ff9w0"); // } else if (style & (1 << 6)) { +UNSUPPORTED("3x4ndf7fx76diabv9nfllk0b5"); // int rv = stripedBox (job, AF, fillcolor, 1); +UNSUPPORTED("4195dkkxygfup9x2hevx5t0kt"); // if (rv > 1) +UNSUPPORTED("6d80sdeoci13p59wizsvnilpd"); // agerr (AGPREV, "in node %s\n", agnameof(n)); +UNSUPPORTED("ctx2lp124btfhy4z6030o2gs"); // gvrender_polygon(job, AF, sides, 0); +UNSUPPORTED("89clftmmkfws4k288i4jas2yb"); // } else if (style & ((1 << 2) | (1 << 3))) { +UNSUPPORTED("dk9vlsyutilnikpal5kjamo5x"); // round_corners(job, AF, sides, style, filled); +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("azv3esl3n2c27ol5b9dgx7yrz"); // gvrender_polygon(job, AF, sides, filled); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8bp2tc15gonvz3x38es3dcmqm"); // gvrender_usershape(job, name, AF, sides, filled, +UNSUPPORTED("4ob0y29flbn0mu1b6or1pikm"); // late_string(n, N_imagescale, "false")); +UNSUPPORTED("cyozk4ozoaaqkwqvcr0wuavfb"); // filled = 0; /* with user shapes, we have done the fill if needed */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("59de9ohjmjuxis5h2yvc2zjnx"); // free (clrs[0]); +UNSUPPORTED("8r8t0lgzzpigm1odig9a9yg1c"); // emit_label(job, EMIT_NLABEL, ND_label(n)); +UNSUPPORTED("amrlpbo0f5svfvv7e9lzhfzj9"); // if (doMap) { +UNSUPPORTED("4drs7w0v5mk7ys9aylmo5lnq8"); // if (job->flags & (1<<2)) +UNSUPPORTED("12436nj34of615tb94t3cw2h0"); // gvrender_begin_anchor(job, +UNSUPPORTED("2rwb38hipr5rxkwxfdzzwkdmy"); // obj->url, obj->tooltip, obj->target, +UNSUPPORTED("4x188hxybttaubn1tt4tf710k"); // obj->id); +UNSUPPORTED("e3o6yrnsv8lko5fql4f8a9gly"); // gvrender_end_anchor(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4jw571mqhnyucuj7xrwi1h9o5 +// static void point_init(node_t * n) +public static Object point_init(Object... arg) { +UNSUPPORTED("9teib8zo1wrsipfc5j66cuyuy"); // static void point_init(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5r323abe0z0jo5p5exij6a98a"); // polygon_t *poly = (polygon_t*)zmalloc(sizeof(polygon_t)); +UNSUPPORTED("6s51isafyf01shjhyf1xybd0g"); // int sides, outp, peripheries = ND_shape(n)->polygon->peripheries; +UNSUPPORTED("483po9irjcq4khru9r63df3hc"); // double sz; +UNSUPPORTED("1r39xvspssd187ru2ru0hw25i"); // pointf P, *vertices; +UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j; +UNSUPPORTED("cldfniz1yu2rzamoi5a3tri2q"); // double w, h; +UNSUPPORTED("2k44yvy3ib1xjsbz4aoziggm6"); // /* set width and height, and make them equal +UNSUPPORTED("2cp3uyfw5ix1x35noly2mr8xl"); // * if user has set weight or height, use it. +UNSUPPORTED("bnvp9gvvkfk14zw1xx1fol30y"); // * if both are set, use smallest. +UNSUPPORTED("e7wh555e1kr9ygs6v77uuxuek"); // * if neither, use default +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("shqz46obs8iqqm2ty42thbuz"); // w = late_double(n, N_width, MAXDOUBLE, 0.0); +UNSUPPORTED("4j74z7hdszhifo9kh4hh1wofy"); // h = late_double(n, N_height, MAXDOUBLE, 0.0); +UNSUPPORTED("8fn9glr373p3sq9l96u8rshi5"); // w = MIN(w, h); +UNSUPPORTED("ebrgob1ni20nxqse89rw5hipv"); // if ((w == MAXDOUBLE) && (h == MAXDOUBLE)) /* neither defined */ +UNSUPPORTED("ax36ksj200y93pvt2rjxvnupc"); // ND_width(n) = ND_height(n) = 0.05; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("42uohvzx3qdjcdkup3wcj6s6x"); // w = MIN(w, h); +UNSUPPORTED("1km16exp8dsurkq6pd730gw3v"); // /* If w == 0, use it; otherwise, make w no less than MIN_POINT due +UNSUPPORTED("3ilg8ohbfo44z8h3fnuc0560h"); // * to the restrictions mentioned above. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("7lyxf0b1aikm6fzbqhbr8k9oa"); // if (w > 0.0) +UNSUPPORTED("dsnyzjlf33z6dnm3ptthdw0y3"); // w = MAX(w,0.0003); +UNSUPPORTED("2fz0g7sw4drprgpggwdns197i"); // ND_width(n) = ND_height(n) = w; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("57ect78x8mvtomzg0tyodv7g"); // sz = ND_width(n) * 72; +UNSUPPORTED("6s2rmv5dvc38plrfxn2iknbec"); // peripheries = late_int(n, N_peripheries, peripheries, 0); +UNSUPPORTED("d8z7y5n3mm6modrbwu1y08k80"); // if (peripheries < 1) +UNSUPPORTED("5j2roihkrnhpbzz7w0qxrt1tb"); // outp = 1; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("dt4js26tpr1dccw0n8attbsqv"); // outp = peripheries; +UNSUPPORTED("8o3qj0u55iaq7q7uz9bp2btmt"); // sides = 2; +UNSUPPORTED("e6zmcz1u6vh44zg5bdfazji16"); // vertices = (pointf*)zmalloc((outp * sides)*sizeof(pointf)); +UNSUPPORTED("wog9mbijcqexxahwely1klv"); // P.y = P.x = sz / 2.; +UNSUPPORTED("401agb4oue2c5jj69la268pcx"); // vertices[0].x = -P.x; +UNSUPPORTED("877hteaqk6t4p1f5at5526w7s"); // vertices[0].y = -P.y; +UNSUPPORTED("cjcbbgirujkoa3jg96de4tn4n"); // vertices[1] = P; +UNSUPPORTED("e3yma9eluyvh0pqkjh60cdtds"); // if (peripheries > 1) { +UNSUPPORTED("9opkd1w4nqz4bwppgnj4nh97x"); // for (j = 1, i = 2; j < peripheries; j++) { +UNSUPPORTED("460zn3qymugfa5w8867gevz9q"); // P.x += 4; +UNSUPPORTED("esxff06psrm7h7ol9ohlnzcpi"); // P.y += 4; +UNSUPPORTED("6iwi6enjzo7fz7swxeospzgor"); // vertices[i].x = -P.x; +UNSUPPORTED("7s0s5pcvrfbi2igyjxkzrm6q3"); // vertices[i].y = -P.y; +UNSUPPORTED("1lo0ackow66iudrq1gb15y3ry"); // i++; +UNSUPPORTED("d1mf936qm1rffrj0h5t3x94ng"); // vertices[i].x = P.x; +UNSUPPORTED("eagc6fu5xvv54q8ct60z25dnr"); // vertices[i].y = P.y; +UNSUPPORTED("1lo0ackow66iudrq1gb15y3ry"); // i++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2gqt5o1ww7zscvmqs2er3asq5"); // sz = 2. * P.x; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dcm4c8vrwq4xjdw6mnk7jh45a"); // poly->regular = 1; +UNSUPPORTED("27nmn21035p035qyz0wzee98a"); // poly->peripheries = peripheries; +UNSUPPORTED("auxb6kzl2meihrn96iopky8b2"); // poly->sides = 2; +UNSUPPORTED("38u6c2cd5dc1o1vmpzv5kfhok"); // poly->orientation = 0; +UNSUPPORTED("1rjh9t0o5cpm795hqnsjkz026"); // poly->skew = 0; +UNSUPPORTED("2196taxexoskznznmkkvqvfws"); // poly->distortion = 0; +UNSUPPORTED("5lucyy48dtz44fkdhcjrphkjz"); // poly->vertices = vertices; +UNSUPPORTED("16k7ddcfff7zeto50vvf4pn7e"); // ND_height(n) = ND_width(n) = ((sz)/(double)72); +UNSUPPORTED("43hsn9iilhppt0qo3od9c7rnq"); // ND_shape_info(n) = (void *) poly; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 34yxvhscic4iigcqveaac58ue +// static boolean point_inside(inside_t * inside_context, pointf p) +public static Object point_inside(Object... arg) { +UNSUPPORTED("96ogc5j6ek5rdyjpr6kp1yocz"); // static boolean point_inside(inside_t * inside_context, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4ogz1m3q9xn7z7hiecjp98bmt"); // static node_t *lastn; /* last node argument */ +UNSUPPORTED("5l35lijc0ciwjv4q6hr6uiiwb"); // static double radius; +UNSUPPORTED("7lh87lvufqsd73q9difg0omei"); // pointf P; +UNSUPPORTED("d8oppi8gt9b4eaonkdgb7a54l"); // node_t *n = inside_context->s.n; +UNSUPPORTED("823iiqtx9pt0gijqrohrd3zx7"); // P = ccwrotatepf(p, 90 * GD_rankdir(agraphof(n))); +UNSUPPORTED("8rl2cn4oxr94675yld5eohkie"); // if (n != lastn) { +UNSUPPORTED("b3vl4n360t74xga3kf8kpy77j"); // int outp; +UNSUPPORTED("ekuhffxeyunmrbugeqeo525ww"); // polygon_t *poly = (polygon_t *) ND_shape_info(n); +UNSUPPORTED("d41xba93s17axh19qsbhg0x8a"); // /* index to outer-periphery */ +UNSUPPORTED("8qv90di846fa1tngzoa71d029"); // outp = 2 * (poly->peripheries - 1); +UNSUPPORTED("47l17pa0edzmfnlr8ysqs0qh4"); // if (outp < 0) +UNSUPPORTED("jyf75douzxhfzxfyrq3kes6e"); // outp = 0; +UNSUPPORTED("4dly7702wk6tpv9taxmfj31og"); // radius = poly->vertices[outp + 1].x; +UNSUPPORTED("dz5401vppes7iz7b0c6pzkge6"); // lastn = n; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c0dgd06mnotxt3zonxv8qfpsv"); // /* inside bounding box? */ +UNSUPPORTED("56idyrf96f39b4a9qfa4aaoar"); // if ((fabs(P.x) > radius) || (fabs(P.y) > radius)) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("1nxamo9gj6oech5spo5v5a16q"); // return (hypot(P.x, P.y) <= radius); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9nmafjnpqf5021bgj7xic6bcv +// static void point_gencode(GVJ_t * job, node_t * n) +public static Object point_gencode(Object... arg) { +UNSUPPORTED("c8zl3q8hj4ggg44eavpqwpcz6"); // static void point_gencode(GVJ_t * job, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("7b0667dpeiekddi69gpywx92t"); // polygon_t *poly; +UNSUPPORTED("6smidc9cn5hmnzglv2o3ha87a"); // int i, j, sides, peripheries, style; +UNSUPPORTED("1r39xvspssd187ru2ru0hw25i"); // pointf P, *vertices; +UNSUPPORTED("behdcj4jfqh2lxeud7bvr9dxx"); // static pointf *AF; +UNSUPPORTED("922k2c5xjbw7vuw4vfhavkll9"); // static int A_size; +UNSUPPORTED("e26zsspincyfi747lhus7h41b"); // boolean filled; +UNSUPPORTED("5zltq70xm6o2q24ddyqe6noyn"); // char *color; +UNSUPPORTED("6ciz320nm1jdjxir808cycx3t"); // int doMap = (obj->url || obj->explicit_tooltip); +UNSUPPORTED("7pfkga2nn8ltabo2ycvjgma6o"); // if (doMap && !(job->flags & (1<<2))) +UNSUPPORTED("6e7g66eeo7n8h8mq556pt3xxy"); // gvrender_begin_anchor(job, +UNSUPPORTED("8g7o4dsbwgp9ggtiktgt2m41t"); // obj->url, obj->tooltip, obj->target, +UNSUPPORTED("c8tk2e711ojwsnar0y39a73cf"); // obj->id); +UNSUPPORTED("e8a863hfpkzgw2w09pemrprir"); // poly = (polygon_t *) ND_shape_info(n); +UNSUPPORTED("44eync2gzhkt36aljp0pdxlws"); // vertices = poly->vertices; +UNSUPPORTED("bt0ymhl3qyi2wkx6awwozl8pm"); // sides = poly->sides; +UNSUPPORTED("axi5xtmkixooa3vai8uysr8y1"); // peripheries = poly->peripheries; +UNSUPPORTED("3yzb2exxpwntmjik61bia8qin"); // if (A_size < sides) { +UNSUPPORTED("cbz0nkwec20m1ib1g01fqvu61"); // A_size = sides + 2; +UNSUPPORTED("4fxnv89xcha2g2jkqjznbfhtl"); // AF = ALLOC(A_size, AF, pointf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ba3rlm9loi447hvq9xargrfj5"); // checkStyle(n, &style); +UNSUPPORTED("c9p9i9kp0tu95s7r5pe6r726t"); // if (style & (1 << 5)) +UNSUPPORTED("3t8beazmvyshgjao810hjqmie"); // gvrender_set_style(job, point_style); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("74zb1tnkmdx8ynmv7c1olqg7e"); // gvrender_set_style(job, &point_style[1]); +UNSUPPORTED("e5t9x8qxknm67g2irjuq09m0n"); // if (ND_gui_state(n) & (1<<0)) { +UNSUPPORTED("494wbiv03tk48fokerl16r6f4"); // color = late_nnstring(n, N_activepencolor, "#808080"); +UNSUPPORTED("9e08s11lexyxn6kite8m0sfty"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("cmymz070zao66wyx1s7tv8pha"); // color = +UNSUPPORTED("3kou17p4mmlejrgnb4ubal4y0"); // late_nnstring(n, N_activefillcolor, "#fcfcfc"); +UNSUPPORTED("8jkw84z9v2sgxja8neagg70yn"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("9ihvjyvhnzzz36yb9vxt7ds0x"); // } else if (ND_gui_state(n) & (1<<1)) { +UNSUPPORTED("cmymz070zao66wyx1s7tv8pha"); // color = +UNSUPPORTED("1cimazkiwwo2m0abp23m3fnme"); // late_nnstring(n, N_selectedpencolor, "#303030"); +UNSUPPORTED("9e08s11lexyxn6kite8m0sfty"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("cmymz070zao66wyx1s7tv8pha"); // color = +UNSUPPORTED("28yl28qxl17kdj778ikor38xk"); // late_nnstring(n, N_selectedfillcolor, +UNSUPPORTED("47h1lk49r1o0z3cv330dq6dx"); // "#e8e8e8"); +UNSUPPORTED("8jkw84z9v2sgxja8neagg70yn"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("1yfjih723r7l1aal6cgysntu9"); // } else if (ND_gui_state(n) & (1<<3)) { +UNSUPPORTED("cmymz070zao66wyx1s7tv8pha"); // color = +UNSUPPORTED("7ksdqin8o1wm9jzsj3vquwpn4"); // late_nnstring(n, N_deletedpencolor, "#e0e0e0"); +UNSUPPORTED("9e08s11lexyxn6kite8m0sfty"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("cmymz070zao66wyx1s7tv8pha"); // color = +UNSUPPORTED("bt3kkty4bxox77ydiwjgsxvdl"); // late_nnstring(n, N_deletedfillcolor, "#f0f0f0"); +UNSUPPORTED("8jkw84z9v2sgxja8neagg70yn"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("8zwfuofs5l5a6z3f4rvlihyw2"); // } else if (ND_gui_state(n) & (1<<2)) { +UNSUPPORTED("cmymz070zao66wyx1s7tv8pha"); // color = +UNSUPPORTED("ctvdbytqgb1rzge7ij5ocomx9"); // late_nnstring(n, N_visitedpencolor, "#101010"); +UNSUPPORTED("9e08s11lexyxn6kite8m0sfty"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("cmymz070zao66wyx1s7tv8pha"); // color = +UNSUPPORTED("2ffts5ygp2gvce89s4zmac21o"); // late_nnstring(n, N_visitedfillcolor, "#f8f8f8"); +UNSUPPORTED("8jkw84z9v2sgxja8neagg70yn"); // gvrender_set_fillcolor(job, color); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("cf8q4vce1jpdyg0g44am343kh"); // color = findFillDflt(n, "black"); +UNSUPPORTED("552c4dm43883t0wtf5hl0yvwe"); // gvrender_set_fillcolor(job, color); /* emit fill color */ +UNSUPPORTED("ep2kgzcflmdfwwmtohgbczks7"); // penColor(job, n); /* emit pen color */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2gwieuk9tzvsileijzb0m497g"); // filled = NOT(0); +UNSUPPORTED("1pz5kftjxxzi9lv9u3y1o6rn0"); // /* if no boundary but filled, set boundary color to fill color */ +UNSUPPORTED("5mlpxufq3yx495mi8tzel72un"); // if (peripheries == 0) { +UNSUPPORTED("15ha366z6aj0vmrwy4kws0mqd"); // peripheries = 1; +UNSUPPORTED("2kvd4jaqat0g550t2krwhucr2"); // if (color[0]) +UNSUPPORTED("2v5mkqa2bpb5gkm53lbc3a8do"); // gvrender_set_pencolor(job, color); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3ldxhnwdjmonz5bmmr7t8i5v6"); // for (j = 0; j < peripheries; j++) { +UNSUPPORTED("bnlcutimilujroygrsjpbamec"); // for (i = 0; i < sides; i++) { +UNSUPPORTED("6jkqzav2wqsdxuy5nalny0l8v"); // P = vertices[i + j * sides]; +UNSUPPORTED("e8tnxali1kzd83o1vue986ipj"); // AF[i].x = P.x + ND_coord(n).x; +UNSUPPORTED("6v07wdm0qkwc0lx20mi2w7w7h"); // AF[i].y = P.y + ND_coord(n).y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("debstz8tichfsgcen5fgx33pj"); // gvrender_ellipse(job, AF, sides, filled); +UNSUPPORTED("1peuavyjb0rqm2z4fzpf2afzm"); // /* fill innermost periphery only */ +UNSUPPORTED("arpfq2ay8oyluwsz8s1wp6tp4"); // filled = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("amrlpbo0f5svfvv7e9lzhfzj9"); // if (doMap) { +UNSUPPORTED("4drs7w0v5mk7ys9aylmo5lnq8"); // if (job->flags & (1<<2)) +UNSUPPORTED("12436nj34of615tb94t3cw2h0"); // gvrender_begin_anchor(job, +UNSUPPORTED("2rwb38hipr5rxkwxfdzzwkdmy"); // obj->url, obj->tooltip, obj->target, +UNSUPPORTED("4x188hxybttaubn1tt4tf710k"); // obj->id); +UNSUPPORTED("e3o6yrnsv8lko5fql4f8a9gly"); // gvrender_end_anchor(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 7tslf55o9g8v48j97pdsyich9 +// static char *reclblp + + + + +//3 1dflsvfaih0mcg1gg4n23v1rg +// static void free_field(field_t * f) +public static Object free_field(Object... arg) { +UNSUPPORTED("1w8vqjgpmm3wzxdg86sst9sna"); // static void free_field(field_t * f) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("7zbyipqbl6t75m71to6vrvnmq"); // for (i = 0; i < f->n_flds; i++) { +UNSUPPORTED("44t6o1rhsqwprcg98j3zgbzvz"); // free_field(f->fld[i]); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8mpeuez5fwrg7hufhlnvpzpk6"); // free(f->id); +UNSUPPORTED("9mo450myxof5j4jin03aqpb9n"); // free_label(f->lp); +UNSUPPORTED("6onriqqkoxktq7iqg9iiuw1zo"); // free(f->fld); +UNSUPPORTED("a4v6veu7h0jl3a2wwlxwpdsuw"); // free(f); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e9v6g9o3uouhdvy68a5uiisw9 +// static field_t *parse_error(field_t * rv, char *port) +public static Object parse_error(Object... arg) { +UNSUPPORTED("9bgvna5r61dzeu3tfs4uvakqi"); // static field_t *parse_error(field_t * rv, char *port) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4i2f9fbl6g816tgzjosnh9uxp"); // free_field(rv); +UNSUPPORTED("d6w5xfrx6ivjrjr01evg54l4o"); // if (port) +UNSUPPORTED("11a5y4khavkjgq5ubj4dyaa5p"); // free(port); +UNSUPPORTED("o68dp934ebg4cplebgc5hv4v"); // return NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7zxlp1fmrq3zt4fprrtesdbg3 +// static field_t *parse_reclbl(node_t * n, int LR, int flag, char *text) +public static Object parse_reclbl(Object... arg) { +UNSUPPORTED("9v20mrghfq60f2qgsfdn1xxdw"); // static field_t *parse_reclbl(node_t * n, int LR, int flag, char *text) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7ws2qs7cm9wlnskmpn5zahpwz"); // field_t *fp, *rv = (field_t*)zmalloc(sizeof(field_t)); +UNSUPPORTED("ebck8ts2eioqv6lvicwad9mj8"); // char *tsp, *psp=NULL, *hstsp, *hspsp=NULL, *sp; +UNSUPPORTED("1tf7pz3w8sq5wk926zvu829ep"); // char *tmpport = NULL; +UNSUPPORTED("e7a8l4oon3q1mu7hlgf4clu1b"); // int maxf, cnt, mode, wflag, ishardspace, fi; +UNSUPPORTED("3jmp83p22dny4oi3sy4awqg1d"); // textlabel_t *lbl = ND_label(n); +UNSUPPORTED("9igz1d93visyobl4po13vtvkx"); // fp = NULL; +UNSUPPORTED("2amh1z5unfmpprayylcu5gr96"); // for (maxf = 1, cnt = 0, sp = reclblp; *sp; sp++) { +UNSUPPORTED("awjvysmspiqruxxa3ttkp4hto"); // if (*sp == '\\') { +UNSUPPORTED("c6ujjd37nlex68cg5oii0ds8q"); // sp++; +UNSUPPORTED("22vdzj6ye8zw196h8o51k5ol3"); // if (*sp +UNSUPPORTED("84ppu6pbdmw18lsn0ryv4v2si"); // && (*sp == '{' || *sp == '}' || *sp == '|' || *sp == '\\')) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dacur0fb8e1qtm4h9105hx3rs"); // if (*sp == '{') +UNSUPPORTED("7hl03wjg5yryhvbe4ar0i0b8g"); // cnt++; +UNSUPPORTED("yro6chknoj2gs3h8b14wg99v"); // else if (*sp == '}') +UNSUPPORTED("4vzj6cjceqbghqhehc5ucl97m"); // cnt--; +UNSUPPORTED("e69f7pkphb1u2seq6xkr4kaho"); // else if (*sp == '|' && cnt == 0) +UNSUPPORTED("8t45h7yg233z39lxb621fptcg"); // maxf++; +UNSUPPORTED("2edcod5le4rwdf79wg0b9o14q"); // if (cnt < 0) +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4ris3hlhijr2gnuhvu238vyni"); // rv->fld = (field_t **)zmalloc((maxf)*sizeof(field_t *)); +UNSUPPORTED("avl5mval8jm4w6du3hw9sxc1e"); // rv->LR = LR; +UNSUPPORTED("565ypt38g1szuouqlmu74ejq9"); // mode = 0; +UNSUPPORTED("8ub4c1i56h9jmytputkewow9k"); // fi = 0; +UNSUPPORTED("85ilec7k1i6sdrpb5u8ncfru7"); // hstsp = tsp = text; +UNSUPPORTED("1x6ue04deldh5y980p3gm7er1"); // wflag = NOT(0); +UNSUPPORTED("58z9686vengy8z9jzrj1jxa13"); // ishardspace = 0; +UNSUPPORTED("4edx4759azcbmezyrc5h0tmw"); // while (wflag) { +UNSUPPORTED("23je92fa88f4sesva9mh3fk5k"); // if ((*reclblp < ' ') && *reclblp) { /* Ignore non-0 control characters */ +UNSUPPORTED("8m8ph0munfeo3anrkr9n5c0o8"); // reclblp++; +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cxp5sujfti7s3yzy5w1hqq6xz"); // switch (*reclblp) { +UNSUPPORTED("cfap8yeec19z0ucbudqen8t02"); // case '<': +UNSUPPORTED("bb8zo5knwust0d4cwoa87msmw"); // if (mode & (4 | 2)) +UNSUPPORTED("7zw1csy7lc9a9gq1nhizs470m"); // return parse_error(rv, tmpport); +UNSUPPORTED("2lft1znt6um5sewf4ta8eigdi"); // if (lbl->html) +UNSUPPORTED("75bwqdnezjvhazmryfatc4819"); // goto dotext; +UNSUPPORTED("5z8248k3ca5miryedahc2wb60"); // mode |= (2 | 16); +UNSUPPORTED("8m8ph0munfeo3anrkr9n5c0o8"); // reclblp++; +UNSUPPORTED("d1omi22iukq2z2ih6p6w2zy5q"); // hspsp = psp = text; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5suo7424ml3937pmao1lly7tj"); // case '>': +UNSUPPORTED("2lft1znt6um5sewf4ta8eigdi"); // if (lbl->html) +UNSUPPORTED("75bwqdnezjvhazmryfatc4819"); // goto dotext; +UNSUPPORTED("e7t4hd1jo3rbmnlsnt7tbyso7"); // if (!(mode & 16)) +UNSUPPORTED("7zw1csy7lc9a9gq1nhizs470m"); // return parse_error(rv, tmpport); +UNSUPPORTED("5mkkaq04kcnssm3nv93a82w58"); // if (psp > text + 1 && psp - 1 != hspsp && *(psp - 1) == ' ') +UNSUPPORTED("7v2hf4x5nsnlq1l025dplo0vo"); // psp--; +UNSUPPORTED("8qt2jpqdy5xvffbwdbwoz25od"); // *psp = '\000'; +UNSUPPORTED("jt6w0csqwc7g51zgiaulvv1y"); // tmpport = strdup(text); +UNSUPPORTED("v0n557cij70vu46xrnalpnkf"); // mode &= ~16; +UNSUPPORTED("8m8ph0munfeo3anrkr9n5c0o8"); // reclblp++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("e1d1tlv81emdkqrj3h7vwega1"); // case '{': +UNSUPPORTED("8m8ph0munfeo3anrkr9n5c0o8"); // reclblp++; +UNSUPPORTED("171fk0fom3xhcmehn269b68k0"); // if (mode != 0 || !*reclblp) +UNSUPPORTED("7zw1csy7lc9a9gq1nhizs470m"); // return parse_error(rv, tmpport); +UNSUPPORTED("4f6lpwau75tu63tu957laxmhg"); // mode = 4; +UNSUPPORTED("4uchlyreqn6xrcbdv514yikv5"); // if (!(rv->fld[fi++] = parse_reclbl(n, NOT(LR), 0, text))) +UNSUPPORTED("7zw1csy7lc9a9gq1nhizs470m"); // return parse_error(rv, tmpport); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5yyz13ef8dtnlysqshj0o345v"); // case '}': +UNSUPPORTED("2miq185bwgdi03xsbuf2yo7jg"); // case '|': +UNSUPPORTED("dnmucnqmv1b1788zqbo1ra28z"); // case '\000': +UNSUPPORTED("9hqo6gl1ko0z6pxo2slbietya"); // if ((!*reclblp && !flag) || (mode & 16)) +UNSUPPORTED("7zw1csy7lc9a9gq1nhizs470m"); // return parse_error(rv, tmpport); +UNSUPPORTED("190gti87w167l9bzbbuqdaao4"); // if (!(mode & 4)) +UNSUPPORTED("l9mhl6lmaxqj7lr1vpp59qcx"); // fp = rv->fld[fi++] = (field_t*)zmalloc(sizeof(field_t)); +UNSUPPORTED("6vtiuvpbccho5bvog9tbt6zt7"); // if (tmpport) { +UNSUPPORTED("vx76i8n34hlrd473lur8wdmg"); // fp->id = tmpport; +UNSUPPORTED("f4uqf89q045ls6scq11ld6jzl"); // tmpport = NULL; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6ogkowbov04jvech8rbmf5h71"); // if (!(mode & (1 | 4))) +UNSUPPORTED("eiatbbffa47bl558pxd0v9w1g"); // mode |= 1, *tsp++ = ' '; +UNSUPPORTED("3r0hwquezbtg597n0ud6pg0v2"); // if (mode & 1) { +UNSUPPORTED("eciju51pa83rngg58rdfhhwlh"); // if (tsp > text + 1 && +UNSUPPORTED("144ggmb5thn6bqdp5qsh5q542"); // tsp - 1 != hstsp && *(tsp - 1) == ' ') +UNSUPPORTED("4rman9clm35ayjpnaekp2pa4c"); // tsp--; +UNSUPPORTED("abhck6fmj383j2xczaz9n0hyc"); // *tsp = '\000'; +UNSUPPORTED("b6zzmy9m0a71wiwkokxbmshtj"); // fp->lp = +UNSUPPORTED("281g7dyja9pt1j00mw40mvk8h"); // make_label((void *) n, strdup(text), +UNSUPPORTED("dwtk6llg07gqdeogzt9phcutg"); // (lbl->html ? (1 << 1) : (0 << 1)), +UNSUPPORTED("4c25jiasa72rqemdd9q0fkqfr"); // lbl->fontsize, lbl->fontname, +UNSUPPORTED("esi7yfxq7b1t44gjijlfmefkx"); // lbl->fontcolor); +UNSUPPORTED("13033k8vmyxsz6v6ehqkz1pjy"); // fp->LR = NOT(0); +UNSUPPORTED("3wxuyqcnsxu1lolpwdvh532ta"); // hstsp = tsp = text; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("49kjrnlxdycco3jlkx7a6uhfe"); // if (*reclblp) { +UNSUPPORTED("bxo1ji3i5yxlcsgif616qyf9y"); // if (*reclblp == '}') { +UNSUPPORTED("dcc90zmv0256yuz6jtriktl8s"); // reclblp++; +UNSUPPORTED("emd51x6hgxuinh9oga7wnkrqk"); // rv->n_flds = fi; +UNSUPPORTED("7nukzdmlh4mklsedpm903o4cj"); // return rv; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7dcvo4gc0ng3ctuwhrcjfrb41"); // mode = 0; +UNSUPPORTED("be6gxzbdtfezsd8u46xrj6xw4"); // reclblp++; +UNSUPPORTED("afk9bpom7x393euamnvwwkx6b"); // } else +UNSUPPORTED("5iumhr0xqqhxv0zr03nxwhm7o"); // wflag = 0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("a4kmq96jzs4d007vvibjcu25v"); // case '\\': +UNSUPPORTED("3vnixbvvmty9ydvf0l1929gle"); // if (*(reclblp + 1)) { +UNSUPPORTED("bjtxv6n9c9aqzdkik1c6cqbvy"); // if (((*(reclblp + 1)) == '{' || (*(reclblp + 1)) == '}' || (*(reclblp + 1)) == '|' || (*(reclblp + 1)) == '<' || (*(reclblp + 1)) == '>')) +UNSUPPORTED("dcc90zmv0256yuz6jtriktl8s"); // reclblp++; +UNSUPPORTED("c8cxvsbs7ae3wdjeflwbk3z6u"); // else if ((*(reclblp + 1) == ' ') && !lbl->html) +UNSUPPORTED("djkriuw8khnsxfne1jal3yysz"); // ishardspace = NOT(0), reclblp++; +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("2qwaphvt2yekkogtyqq0omhut"); // *tsp++ = '\\'; +UNSUPPORTED("63p7706g22u4h7m9yealimr3g"); // mode |= (8 | 1); +UNSUPPORTED("dcc90zmv0256yuz6jtriktl8s"); // reclblp++; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("dg5yg97t3vto8m73vvwj8jnb2"); // /* falling through ... */ +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("2d4vmvpowhgj7h9539m0qrxsy"); // dotext: +UNSUPPORTED("5jto4v3wquxhnfa1ubq7jhn9e"); // if ((mode & 4) && *reclblp != ' ') +UNSUPPORTED("7zw1csy7lc9a9gq1nhizs470m"); // return parse_error(rv, tmpport); +UNSUPPORTED("f5g7ycr0n6dxs6l70ws5qbyha"); // if (!(mode & (8 | 16)) && *reclblp != ' ') +UNSUPPORTED("49k9f66mkv4qjn84gy5oo6mfz"); // mode |= (8 | 1); +UNSUPPORTED("4ehnscdbdyu6b96qrct40t547"); // if (mode & 8) { +UNSUPPORTED("eoigvu52glsps928r04np5k12"); // if (! +UNSUPPORTED("9zalai2d852m4eoy15f6bpxgu"); // (*reclblp == ' ' && !ishardspace && *(tsp - 1) == ' ' +UNSUPPORTED("ahr3j94flu719g0gxu2i46zwn"); // && !lbl->html)) +UNSUPPORTED("c8qpd7i4393s9xlwk5waq8sk3"); // *tsp++ = *reclblp; +UNSUPPORTED("c2bifaubj01ag8b39d60p9cbk"); // if (ishardspace) +UNSUPPORTED("atuokfvkmomvi6gvwvpbxggoz"); // hstsp = tsp - 1; +UNSUPPORTED("blopjrsgbbips57lefdw6bg8b"); // } else if (mode & 16) { +UNSUPPORTED("1eoe6a3jwmhnj7vdpgz9q6vsn"); // if (!(*reclblp == ' ' && !ishardspace && +UNSUPPORTED("7i865uqx5v3rutzyppio4oztc"); // (psp == text || *(psp - 1) == ' '))) +UNSUPPORTED("ccywxarqbhmcmnh8re3pv8j45"); // *psp++ = *reclblp; +UNSUPPORTED("c2bifaubj01ag8b39d60p9cbk"); // if (ishardspace) +UNSUPPORTED("5u5h7cb6egued2g1q7w8yhb1n"); // hspsp = psp - 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8m8ph0munfeo3anrkr9n5c0o8"); // reclblp++; +UNSUPPORTED("eikj8pnam53jenwbu8enjrw4r"); // while (*reclblp & 128) +UNSUPPORTED("86nc3qdu6nuyt7u67d0kblb9w"); // *tsp++ = *reclblp++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("csdg0jacrzxz21ls0053286t"); // rv->n_flds = fi; +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dwk0rh74bwfd7mky5hg9t1epj +// static pointf size_reclbl(node_t * n, field_t * f) +public static Object size_reclbl(Object... arg) { +UNSUPPORTED("406fn16lbi8yxgg92lsuaglae"); // static pointf size_reclbl(node_t * n, field_t * f) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("mt3ya9zh07mi1ttjb64zhd7m"); // double marginx, marginy; +UNSUPPORTED("6ub135100vcy57x6o36uz14be"); // pointf d, d0; +UNSUPPORTED("bgjjpl6jaaa122twwwd0vif6x"); // pointf dimen; +UNSUPPORTED("cofpjibrqirnx1jqt3qoptoa8"); // if (f->lp) { +UNSUPPORTED("96sfr72s46epnfb44t03vqqu2"); // dimen = f->lp->dimen; +UNSUPPORTED("bqi7vwb2jmnrrqcdzo1mntnvb"); // /* minimal whitespace around label */ +UNSUPPORTED("dhtf2vwrnsx779x9mday279x5"); // if ((dimen.x > 0.0) || (dimen.y > 0.0)) { +UNSUPPORTED("2yzf5uec82v14ygrfjcq6ktxp"); // /* padding */ +UNSUPPORTED("b8i1qxc1gtg61p1c1szkj2osr"); // if ((p = agget(n, "margin"))) { +UNSUPPORTED("bfyy3iw4z9ebf4m89x69tn1eb"); // i = sscanf(p, "%lf,%lf", &marginx, &marginy); +UNSUPPORTED("ebo7omz8ev8wu69ub10b4o890"); // if (i > 0) { +UNSUPPORTED("efcgckeemzkbxh32pc2qcdv0d"); // dimen.x += 2 * (ROUND((marginx)*72)); +UNSUPPORTED("c755n9x3n7022hjjg8hanklib"); // if (i > 1) +UNSUPPORTED("2az12nq89f7txcsfmqdj8tly1"); // dimen.y += 2 * (ROUND((marginy)*72)); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("2az12nq89f7txcsfmqdj8tly1"); // dimen.y += 2 * (ROUND((marginy)*72)); +UNSUPPORTED("738mi6h8ef0itznt34ngxe25o"); // } else +UNSUPPORTED("b12tl2a8tebl71ewuz3jms9jv"); // {((dimen).x += 4*4); ((dimen).y += 2*4);}; +UNSUPPORTED("afk9bpom7x393euamnvwwkx6b"); // } else +UNSUPPORTED("87bdwkkwbzyswxnepdd9bj8mb"); // {((dimen).x += 4*4); ((dimen).y += 2*4);}; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2ig0j65v03nhlp8gta21y7upj"); // d = dimen; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("3h1vugg28z5an28yxqksy73a1"); // d.x = d.y = 0; +UNSUPPORTED("9cjjlq42o712cit9tby1b7l6a"); // for (i = 0; i < f->n_flds; i++) { +UNSUPPORTED("1dovx3mi47z2lap7bct0utmvv"); // d0 = size_reclbl(n, f->fld[i]); +UNSUPPORTED("xwrnxfxcwmxuxvjpfw1sb7lt"); // if (f->LR) { +UNSUPPORTED("2s4lr8xqoy2s4fcc3dy43z546"); // d.x += d0.x; +UNSUPPORTED("da9p29dgwktuisirb2i22mw4p"); // d.y = MAX(d.y, d0.y); +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("eey7x226uokoejjsvtccwizqn"); // d.y += d0.y; +UNSUPPORTED("cvznbvji1rgs4g8avqaznhmtl"); // d.x = MAX(d.x, d0.x); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("58mlt8qk1oe73v2mcc1mgl8k1"); // f->size = d; +UNSUPPORTED("3r3o80n61nmy2jv0ezi9xg2xp"); // return d; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 blo8etwhtlcsld8ox0vryznfw +// static void resize_reclbl(field_t * f, pointf sz, int nojustify_p) +public static Object resize_reclbl(Object... arg) { +UNSUPPORTED("aye44rj1356dmxgwk9gx7pwh2"); // static void resize_reclbl(field_t * f, pointf sz, int nojustify_p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("71jvj7ehg7fq26a2s80qyw5pl"); // int i, amt; +UNSUPPORTED("9rbb4p3tnymgkgm61ids5opx5"); // double inc; +UNSUPPORTED("4vbedk7s9t1o5o9sll2mj3m4d"); // pointf d; +UNSUPPORTED("azi9wyi9dsgwzm61ggr9st546"); // pointf newsz; +UNSUPPORTED("1zy316mu1h3i1dwl59s1v5gtd"); // field_t *sf; +UNSUPPORTED("4od0ewvxs3wubgnizxmaw95m6"); // /* adjust field */ +UNSUPPORTED("2sbunv882wuaeiivap21n2bqb"); // d.x = sz.x - f->size.x; +UNSUPPORTED("57mh8iamjlos1vfnth2m4qmgb"); // d.y = sz.y - f->size.y; +UNSUPPORTED("b6m22nmidg72njh0uo1z8sndv"); // f->size = sz; +UNSUPPORTED("9agycbghiz3e1xpj2702hn30z"); // /* adjust text area */ +UNSUPPORTED("c5jen7s7dn54yuakfb7yncb47"); // if (f->lp && !nojustify_p) { +UNSUPPORTED("65j1bcx86bkt4yhiu9enb30sv"); // f->lp->space.x += d.x; +UNSUPPORTED("2hh4ho34pe678h62y8yhzq6ek"); // f->lp->space.y += d.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("esogsiw5n6l1sk5umv7ky4yi"); // /* adjust children */ +UNSUPPORTED("9mofgi5b5ggg6ugo378omtt93"); // if (f->n_flds) { +UNSUPPORTED("99h71dz46rnni7lfrxm1wzs87"); // if (f->LR) +UNSUPPORTED("3idlilzzcmmfphl3ogxoi0gz"); // inc = d.x / f->n_flds; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("gsh4tsmu1upaadj6oebffxe4"); // inc = d.y / f->n_flds; +UNSUPPORTED("9cjjlq42o712cit9tby1b7l6a"); // for (i = 0; i < f->n_flds; i++) { +UNSUPPORTED("abiqjigzcxzn37q0cla73adcd"); // sf = f->fld[i]; +UNSUPPORTED("cnehjao25jc5jjv5vfumb0qmk"); // amt = ((int) ((i + 1) * inc)) - ((int) (i * inc)); +UNSUPPORTED("e5eeg49by0lz43uois7f6e5xt"); // if (f->LR) +UNSUPPORTED("bhtvr8j5ek5tt7xm6c9z7hu5r"); // newsz = pointfof(sf->size.x + amt, sz.y); +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("cajand0txpij2kirrkxtjn1ps"); // newsz = pointfof(sz.x, sf->size.y + amt); +UNSUPPORTED("aq6om414jdhfaf5204q5mmln4"); // resize_reclbl(sf, newsz, nojustify_p); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ds4v2i9xw0hm4y53ggbt8z2yk +// static void pos_reclbl(field_t * f, pointf ul, int sides) +public static Object pos_reclbl(Object... arg) { +UNSUPPORTED("57l93w5nat2i71wn6e82nj4x9"); // static void pos_reclbl(field_t * f, pointf ul, int sides) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2f3a6lf3ce1tznglhu95xoda0"); // int i, last, mask; +UNSUPPORTED("74djpee6zz6hk95hdvulbbjkb"); // f->sides = sides; +UNSUPPORTED("2mtubjx0wssvmgcmhx716lypo"); // f->b.LL = pointfof(ul.x, ul.y - f->size.y); +UNSUPPORTED("26ciar9flz0wc6r1zk7krxrg1"); // f->b.UR = pointfof(ul.x + f->size.x, ul.y); +UNSUPPORTED("6f9cc8k5z3tih73jcgvyqzdy5"); // last = f->n_flds - 1; +UNSUPPORTED("d5c2y0xbpfqkrfiwsb6b2q6qr"); // for (i = 0; i <= last; i++) { +UNSUPPORTED("6s6izyatmponzopy22eomuw6h"); // if (sides) { +UNSUPPORTED("xwrnxfxcwmxuxvjpfw1sb7lt"); // if (f->LR) { +UNSUPPORTED("by48lavhlctvmymlkz9qkjvi0"); // if (i == 0) { +UNSUPPORTED("4r4jabt98z99ira0e4bpyyktj"); // if (i == last) +UNSUPPORTED("rvq6ubzk0rezd88243ailv84"); // mask = (1<<2) | (1<<0) | (1<<1) | (1<<3); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("6tzvg9fxvr7v7qt2yh73xn94n"); // mask = (1<<2) | (1<<0) | (1<<3); +UNSUPPORTED("9xksdopde69ktgm9z90l55he9"); // } else if (i == last) +UNSUPPORTED("eas1815ent5z97kozcm2qwglp"); // mask = (1<<2) | (1<<0) | (1<<1); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("evm1s2keksyeukfcgn64wt7k6"); // mask = (1<<2) | (1<<0); +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("by48lavhlctvmymlkz9qkjvi0"); // if (i == 0) { +UNSUPPORTED("4r4jabt98z99ira0e4bpyyktj"); // if (i == last) +UNSUPPORTED("rvq6ubzk0rezd88243ailv84"); // mask = (1<<2) | (1<<0) | (1<<1) | (1<<3); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("2wutifbakw4oqtj4lrjidlytt"); // mask = (1<<2) | (1<<1) | (1<<3); +UNSUPPORTED("9xksdopde69ktgm9z90l55he9"); // } else if (i == last) +UNSUPPORTED("84g4in93npbh6zty66dclzf8a"); // mask = (1<<3) | (1<<0) | (1<<1); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("ojlsh8buk0hgqhg1p1o1ogxy"); // mask = (1<<3) | (1<<1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("cbvih14pp0igaj8ytp83216z6"); // mask = 0; +UNSUPPORTED("c310n6zcvshjtf3nn15m858xd"); // pos_reclbl(f->fld[i], ul, sides & mask); +UNSUPPORTED("99h71dz46rnni7lfrxm1wzs87"); // if (f->LR) +UNSUPPORTED("6o8kbyjjm2bi8zipsgi5lr8ww"); // ul.x = ul.x + f->fld[i]->size.x; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("90vovw2s5lzb6up513xqh9u43"); // ul.y = ul.y - f->fld[i]->size.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 h2lcuthzwljbcjwdeidw1jiv +// static void record_init(node_t * n) +public static Object record_init(Object... arg) { +UNSUPPORTED("8bn5tg52zfoyvwdnvqbw04l70"); // static void record_init(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("86oi3nfc6x87w7aj799p0ypzn"); // field_t *info; +UNSUPPORTED("6rttlsij6gno16sto3oqsqa40"); // pointf ul, sz; +UNSUPPORTED("9fmah1vlmqynhowqu4v9q2zu0"); // int flip, len; +UNSUPPORTED("4ly7xwlmpjgyokyzpns8fjvi0"); // char *textbuf; /* temp buffer for storing labels */ +UNSUPPORTED("1klslcqyc6484ub7o51jznyqf"); // int sides = (1<<0) | (1<<1) | (1<<2) | (1<<3); +UNSUPPORTED("6jo9tl9gx62fi9j5u1nn0dfzw"); // /* Always use rankdir to determine how records are laid out */ +UNSUPPORTED("ez37gg27m14oqygf9tny4whd9"); // flip = NOT(GD_realflip(agraphof(n))); +UNSUPPORTED("831ssvyd2gs7q5d7r83p0tckc"); // reclblp = ND_label(n)->text; +UNSUPPORTED("b61x6z42kkk6b66dyi8rykpvw"); // len = strlen(reclblp); +UNSUPPORTED("17kft1nompfgymd2cpz9p06we"); // /* For some forgotten reason, an empty label is parsed into a space, so +UNSUPPORTED("13t238hjobkason0chns2coag"); // * we need at least two bytes in textbuf. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("6k99spqggna26l34pfzpjeotk"); // len = MAX(len, 1); +UNSUPPORTED("ey612n2e72vl1gbnw3arjznb5"); // textbuf = (char*)zmalloc((len + 1)*sizeof(char)); +UNSUPPORTED("7uzna6j5b36j6wvueakqwtauo"); // if (!(info = parse_reclbl(n, flip, NOT(0), textbuf))) { +UNSUPPORTED("7iezaksu9hyxhmv3r4cp4o529"); // agerr(AGERR, "bad label format %s\n", ND_label(n)->text); +UNSUPPORTED("8f1id7rqm71svssnxbjo0uwcu"); // reclblp = "\\N"; +UNSUPPORTED("2wv3zfqhq53941rwk4vu9p9th"); // info = parse_reclbl(n, flip, NOT(0), textbuf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9upwq9jn3fup3nwwae3y0vv0q"); // free(textbuf); +UNSUPPORTED("31sxwdtqr63gtnpp86jz8pdac"); // size_reclbl(n, info); +UNSUPPORTED("434l8ab1hff80o0xz22d91u00"); // sz.x = (ROUND((ND_width(n))*72)); +UNSUPPORTED("7qr0k3gmk24mj6toqadcqky22"); // sz.y = (ROUND((ND_height(n))*72)); +UNSUPPORTED("6qf3p8rzhkupjmocuje9q4p2q"); // if (mapbool(late_string(n, N_fixed, "false"))) { +UNSUPPORTED("8iu51xbtntpdf5sc00g91djym"); // if ((sz.x < info->size.x) || (sz.y < info->size.y)) { +UNSUPPORTED("4vs5u30jzsrn6fpjd327xjf7r"); // /* should check that the record really won't fit, e.g., there may be no text. +UNSUPPORTED("7k6yytek9nu1ihxix2880667g"); // agerr(AGWARN, "node '%s' size may be too small\n", agnameof(n)); +UNSUPPORTED("bnetqzovnscxile7ao44kc0qd"); // */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("9vx9i9jopcbh8v928ih57vgj7"); // sz.x = MAX(info->size.x, sz.x); +UNSUPPORTED("evseq8gqlm6aqw269kwgi57xh"); // sz.y = MAX(info->size.y, sz.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c0urxnxgjlnro89b6209kl0zf"); // resize_reclbl(info, sz, mapbool(late_string(n, N_nojustify, "false"))); +UNSUPPORTED("2qhtglqv4czw1wzgy8h9w4o3v"); // ul = pointfof(-sz.x / 2., sz.y / 2.); /* FIXME - is this still true: suspected to introduce ronding error - see Kluge below */ +UNSUPPORTED("816kf840erjhpdg9bin63xyig"); // pos_reclbl(info, ul, sides); +UNSUPPORTED("7rjoo40zh2fd13jllh0j2n1w1"); // ND_width(n) = ((info->size.x)/(double)72); +UNSUPPORTED("x5gpmbn3zd3hac5yz2s7trtx"); // ND_height(n) = ((info->size.y + 1)/(double)72); /* Kluge!! +1 to fix rounding diff between layout and rendering +UNSUPPORTED("edky8r362p1bpruc2jcs2hyft"); // otherwise we can get -1 coords in output */ +UNSUPPORTED("40bol1suut41tvh0xudcyhgpi"); // ND_shape_info(n) = (void *) info; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1lq2tksbz3nzqw9c3xqfs4ymf +// static void record_free(node_t * n) +public static Object record_free(Object... arg) { +UNSUPPORTED("8anx9p03jsmcuhguyzf7q6qe3"); // static void record_free(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aiplewsp8j9h5b1bokpivfnqv"); // field_t *p = ND_shape_info(n); +UNSUPPORTED("cn1q1h4lwj1gctn9nim9hdhpt"); // free_field(p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a005gfg4ujp2d29bpdrtowla0 +// static field_t *map_rec_port(field_t * f, char *str) +public static Object map_rec_port(Object... arg) { +UNSUPPORTED("7m0itp0yyimj2qrw4m7gkucwe"); // static field_t *map_rec_port(field_t * f, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8vkza1jahjxmu3aujqqwejvh4"); // field_t *rv; +UNSUPPORTED("bg1s70jnrhf3ei0qo60unqlly"); // int sub; +UNSUPPORTED("2wb1wig5yijs1gwl6gsqsfypb"); // if (f->id && ((*(f->id)==*(str)&&!strcmp(f->id,str)))) +UNSUPPORTED("c6qw5ghrclqer15nnzk3dcf9o"); // rv = f; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("52b2tnzwipbuygdvyeyxg1lij"); // rv = NULL; +UNSUPPORTED("2z6jes522cxoquqcehqxkfezp"); // for (sub = 0; sub < f->n_flds; sub++) +UNSUPPORTED("2nwfsthm8r2bsdqcq3cs6mwi7"); // if ((rv = map_rec_port(f->fld[sub], str))) +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 chsi0jlfodruvkjj5dlrv5ur3 +// static port record_port(node_t * n, char *portname, char *compass) +public static Object record_port(Object... arg) { +UNSUPPORTED("108iil8l4qbk7n5zy99yzuhna"); // static port record_port(node_t * n, char *portname, char *compass) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("30fmp9xlabtd67je318axlfiy"); // field_t *f; +UNSUPPORTED("9nozntsyybg1oi5e3jpibarmk"); // field_t *subf; +UNSUPPORTED("9ricxd1wv1am78xxjvd40ki5e"); // port rv; +UNSUPPORTED("dezxih515uk47gnmutkm1zuno"); // int sides; /* bitmap of which sides the port lies along */ +UNSUPPORTED("8531pl39rpqki88wilp72dh12"); // if (portname[0] == '\0') +UNSUPPORTED("ct95magnbje1vlax6sewfa40f"); // return Center; +UNSUPPORTED("ci2ge3idao9rokpvacvcspaxl"); // sides = (1<<0) | (1<<1) | (1<<2) | (1<<3); +UNSUPPORTED("cm99rhftfe8nq2suzac5fwbgp"); // if (compass == NULL) +UNSUPPORTED("238a13tlawcw3bixwliz859y5"); // compass = "_"; +UNSUPPORTED("9xovezi85vdgw8han4h0wr87s"); // f = (field_t *) ND_shape_info(n); +UNSUPPORTED("9ihnypp6vu95to95ydtnntq0l"); // if ((subf = map_rec_port(f, portname))) { +UNSUPPORTED("6fvm5el2zlrng001datkwt7cc"); // if (compassPort(n, &subf->b, &rv, compass, subf->sides, NULL)) { +UNSUPPORTED("cw5grwj6gbj94jcztvnp2ooyj"); // agerr(AGWARN, +UNSUPPORTED("en2xpqtprfng8gmc77dzq7klv"); // "node %s, port %s, unrecognized compass point '%s' - ignored\n", +UNSUPPORTED("cmo03yl2q1wgn0c1r45y1ay5e"); // agnameof(n), portname, compass); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3pocnlftms62i7fn2yjeglilc"); // } else if (compassPort(n, &f->b, &rv, portname, sides, NULL)) { +UNSUPPORTED("98h27uayj9wzp3psyqb5feymg"); // unrecognized(n, portname); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1f7b6eq3csywqv96raw75jqxr +// static boolean record_inside(inside_t * inside_context, pointf p) +public static Object record_inside(Object... arg) { +UNSUPPORTED("86kzi0ldxu2wp8jrcz52g23br"); // static boolean record_inside(inside_t * inside_context, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("awt4go86uiz8hw73uxp1kk1pd"); // field_t *fld0; +UNSUPPORTED("4rtja2mn137n7wcxryrmo12ko"); // boxf *bp = inside_context->s.bp; +UNSUPPORTED("d8oppi8gt9b4eaonkdgb7a54l"); // node_t *n = inside_context->s.n; +UNSUPPORTED("dhrqm3z9pldopj98epb4nfoi4"); // boxf bbox; +UNSUPPORTED("5a3hmefcpaol32pvsn6wgwi4p"); // /* convert point to node coordinate system */ +UNSUPPORTED("7htr4npyn53khcc3o9gi9eew4"); // p = ccwrotatepf(p, 90 * GD_rankdir(agraphof(n))); +UNSUPPORTED("57ly3awriopiy2hf7v62cw7ny"); // if (bp == NULL) { +UNSUPPORTED("6f802g721m0ev4mztwuama272"); // fld0 = (field_t *) ND_shape_info(n); +UNSUPPORTED("blfb7lv2fmwy1z0sax8wmxz17"); // bbox = fld0->b; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("2punkrny8rmrqvqgluved9xjm"); // bbox = *bp; +UNSUPPORTED("ca4t2zns3zehe95rbrig7evej"); // return INSIDE(p, bbox); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3p54k8x2kyueort8kj41qvkty +// static int record_path(node_t * n, port * prt, int side, boxf rv[], int *kptr) +public static Object record_path(Object... arg) { +UNSUPPORTED("98cjokh407kmiyj3ne6z8tugr"); // static int record_path(node_t * n, port * prt, int side, boxf rv[], +UNSUPPORTED("5j2zss62xcus5zenfk516rmmp"); // int *kptr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bxj1nynia6lfoufq42q6fbw81"); // int i, ls, rs; +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("86oi3nfc6x87w7aj799p0ypzn"); // field_t *info; +UNSUPPORTED("41x42ivkcydor03dmtntfcr2c"); // if (!prt->defined) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("2q24y4tztoqnjrae3pyz4xos1"); // p = prt->p; +UNSUPPORTED("qqnxp10edgu1p0nyl4uq7t2m"); // info = (field_t *) ND_shape_info(n); +UNSUPPORTED("2ocjia9onk38jkynynvvsx6wy"); // for (i = 0; i < info->n_flds; i++) { +UNSUPPORTED("6hin33h1bfc9sf9lszjmqgyev"); // if (!GD_flip(agraphof(n))) { +UNSUPPORTED("72j4jh7zoqcwbpm47gdgozled"); // ls = info->fld[i]->b.LL.x; +UNSUPPORTED("86sxinhjfgtxnim78cjm8ptup"); // rs = info->fld[i]->b.UR.x; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("dm9w81fxfdqc5bhtaimpbisvl"); // ls = info->fld[i]->b.LL.y; +UNSUPPORTED("3sqtp996aa7m19wv9gwkrvav1"); // rs = info->fld[i]->b.UR.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cc82ixosqyaz38wkysyxdbus1"); // if (BETWEEN(ls, p.x, rs)) { +UNSUPPORTED("cmdehzhkvreoa7ge2cf6l81ux"); // /* FIXME: I don't understand this code */ +UNSUPPORTED("75jifr4aucrxp2hvnsrcfunej"); // if (GD_flip(agraphof(n))) { +UNSUPPORTED("8p9z8b0nypgkzi1b3k7sx0fyz"); // rv[0] = flip_rec_boxf(info->fld[i]->b, ND_coord(n)); +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("b2c88nitm58fxzi8rh5vergvc"); // rv[0].LL.x = ND_coord(n).x + ls; +UNSUPPORTED("4ivcuhn3xc40qws7sdw4ai8s5"); // rv[0].LL.y = ND_coord(n).y - (ND_ht(n) / 2); +UNSUPPORTED("39yu1w8ymm77xe0plqbb1tlsu"); // rv[0].UR.x = ND_coord(n).x + rs; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("78963top1lc1j91gvr130yzlg"); // rv[0].UR.y = ND_coord(n).y + (ND_ht(n) / 2); +UNSUPPORTED("9jd15eqfyfmga3uhuzmoiobm4"); // *kptr = 1; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2nk83e61yc1xqh0sxx13m5l1j"); // return side; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 exqpf0bds3z9eae52fqnqdv4f +// static void gen_fields(GVJ_t * job, node_t * n, field_t * f) +public static Object gen_fields(Object... arg) { +UNSUPPORTED("alxnwxfpkfjmexy2v4wj8txsk"); // static void gen_fields(GVJ_t * job, node_t * n, field_t * f) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("676ly5o6s7hfka2a7xkzfm02t"); // pointf AF[2], coord; +UNSUPPORTED("cofpjibrqirnx1jqt3qoptoa8"); // if (f->lp) { +UNSUPPORTED("ecjyk9xlxeub85r4qs7onmaab"); // f->lp->pos = add_pointf(mid_pointf(f->b.LL, f->b.UR), ND_coord(n)); +UNSUPPORTED("ayphvetcwpb3thkz5bz5xrpdy"); // emit_label(job, EMIT_NLABEL, f->lp); +UNSUPPORTED("7wlqawgs50g2g4tdmjv67qq9a"); // penColor(job, n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("80cw1alior8ng7fmhmcmpy9ql"); // coord = ND_coord(n); +UNSUPPORTED("7zbyipqbl6t75m71to6vrvnmq"); // for (i = 0; i < f->n_flds; i++) { +UNSUPPORTED("72y5kehzju60vd6wi6h7d6r0v"); // if (i > 0) { +UNSUPPORTED("xwrnxfxcwmxuxvjpfw1sb7lt"); // if (f->LR) { +UNSUPPORTED("31wcrtlrn4wvlomxri9wdvmtj"); // AF[0] = f->fld[i]->b.LL; +UNSUPPORTED("27hrv59ztxl0a8b8gttmk2ikp"); // AF[1].x = AF[0].x; +UNSUPPORTED("1gqm7vpecmn340v1a2mskym8t"); // AF[1].y = f->fld[i]->b.UR.y; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("e1tqrqwt7bk5snpfcayjcbyzx"); // AF[1] = f->fld[i]->b.UR; +UNSUPPORTED("9r6qdvxkhroix64em71xgwldt"); // AF[0].x = f->fld[i]->b.LL.x; +UNSUPPORTED("vymaq435j4bsfggfjzzfiugk"); // AF[0].y = AF[1].y; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("9n3sn3rtnfiq76vd0067xvph3"); // AF[0] = add_pointf(AF[0], coord); +UNSUPPORTED("1g9pox6kvg6c5nwlvug1i3dav"); // AF[1] = add_pointf(AF[1], coord); +UNSUPPORTED("9nhrbbkzn6ygl91paz8e19asp"); // gvrender_polyline(job, AF, 2); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("56fhzogzd9i3iuh44c2jkxoaa"); // gen_fields(job, n, f->fld[i]); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3bum3y2gmowozskwp7e492wm7 +// static void record_gencode(GVJ_t * job, node_t * n) +public static Object record_gencode(Object... arg) { +UNSUPPORTED("cpq4ylwlb0lwi7ibim51gndor"); // static void record_gencode(GVJ_t * job, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("bzz7vodjegzgwxp8jzgkq3uti"); // boxf BF; +UNSUPPORTED("en6q26cyrg17g6yd6el73b3ns"); // pointf AF[4]; +UNSUPPORTED("b89hspuulkkzgmrj59tfy2fus"); // int style; +UNSUPPORTED("30fmp9xlabtd67je318axlfiy"); // field_t *f; +UNSUPPORTED("6ciz320nm1jdjxir808cycx3t"); // int doMap = (obj->url || obj->explicit_tooltip); +UNSUPPORTED("3ml0gugucwlbwt5mbcdlymm8b"); // int filled; +UNSUPPORTED("bhtcyodd9jiazat6sqhp9pm4x"); // char* clrs[2]; +UNSUPPORTED("9xovezi85vdgw8han4h0wr87s"); // f = (field_t *) ND_shape_info(n); +UNSUPPORTED("arohpr2hcj50a0nm6wiegz75n"); // BF = f->b; +UNSUPPORTED("9dwww64wl2oaucxyyhoa2u5op"); // BF.LL.x += ND_coord(n).x; +UNSUPPORTED("eqak8167f3whj617r6180val"); // BF.LL.y += ND_coord(n).y; +UNSUPPORTED("3u5f15d4i1cs3igvot9majw8n"); // BF.UR.x += ND_coord(n).x; +UNSUPPORTED("18gannqx4rafy1juoif3uog1p"); // BF.UR.y += ND_coord(n).y; +UNSUPPORTED("7pfkga2nn8ltabo2ycvjgma6o"); // if (doMap && !(job->flags & (1<<2))) +UNSUPPORTED("6e7g66eeo7n8h8mq556pt3xxy"); // gvrender_begin_anchor(job, +UNSUPPORTED("8g7o4dsbwgp9ggtiktgt2m41t"); // obj->url, obj->tooltip, obj->target, +UNSUPPORTED("c8tk2e711ojwsnar0y39a73cf"); // obj->id); +UNSUPPORTED("6yjfupcwvts03fbmr493ea2ja"); // style = stylenode(job, n); +UNSUPPORTED("5qxdje5wxqq1c9786htlyohkx"); // penColor(job, n); +UNSUPPORTED("92hvfvrwzs8dy1vdgk97mu8rm"); // clrs[0] = NULL; +UNSUPPORTED("a0xb2wsthoxt62j0aks4aht13"); // if (style & (1 << 0)) { +UNSUPPORTED("64vz86w7mg90duu37ik1bcm8m"); // char* fillcolor = findFill (n); +UNSUPPORTED("4xv0cmpfa4sol0pqmfumr0rnm"); // float frac; +UNSUPPORTED("dily1m3rwbo5mniq7aneh3qhu"); // if (findStopColor (fillcolor, clrs, &frac)) { +UNSUPPORTED("5m1l4f0yk2x1r9n00p7xoarhk"); // gvrender_set_fillcolor(job, clrs[0]); +UNSUPPORTED("850qgpdnne96gxnh244hf2rh2"); // if (clrs[1]) +UNSUPPORTED("m1ck996y4kjzra9yxa5gif68"); // gvrender_set_gradient_vals(job,clrs[1],late_int(n,N_gradientangle,0,0), frac); +UNSUPPORTED("f3qa0cv737ikcre1vpqlkukio"); // else +UNSUPPORTED("72n9vguy2n416qggkz5tpz279"); // gvrender_set_gradient_vals(job,"black",late_int(n,N_gradientangle,0,0), frac); +UNSUPPORTED("5dn7m0lqq174sxj9ezr6p8anp"); // if (style & (1 << 1)) +UNSUPPORTED("s4xfcz4il9k9jw0w0dh9lzpj"); // filled = 3; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("1ijl60mqfpjns1tss115yw4zp"); // filled = 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("7ek7aftv8z293izx886r01oqm"); // filled = 1; +UNSUPPORTED("pufcu1p86jfo891eaibok4yb"); // gvrender_set_fillcolor(job, fillcolor); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("53gluhbrz2oi6qw7sff0fb0hj"); // else filled = 0; +UNSUPPORTED("a80jadmfy336hxiquc1baf16m"); // if ((*(ND_shape(n)->name)==*("Mrecord")&&!strcmp(ND_shape(n)->name,"Mrecord"))) +UNSUPPORTED("6iazzglp38g7uxmnloiwk5ilq"); // style |= (1 << 2); +UNSUPPORTED("gn97uo130dzjs4b5bnhnvlsq"); // if (((style) & ((1 << 2) | (1 << 3) | (127 << 24)))) { +UNSUPPORTED("5rrbml0v0bc8c6x2ddgjh75p1"); // AF[0] = BF.LL; +UNSUPPORTED("8ctty3poiybj8vyrg3fy6s4ju"); // AF[2] = BF.UR; +UNSUPPORTED("bqdx8e632ko1pofmr5b91xpmh"); // AF[1].x = AF[2].x; +UNSUPPORTED("7gb7yo735gfv67doxjnyl8av7"); // AF[1].y = AF[0].y; +UNSUPPORTED("7w69hwqpw5l9f1rsaolr1ytmx"); // AF[3].x = AF[0].x; +UNSUPPORTED("cg5ir4ssc1l9d4x56swq1rw0k"); // AF[3].y = AF[2].y; +UNSUPPORTED("7gm0bhmoegfvu3uf7hnwfae67"); // round_corners(job, AF, 4, style, filled); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("5sf771cxqfrvdu2vzl3t1687e"); // gvrender_box(job, BF, filled); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9rksrkk1y26l0lgodpusjgg6r"); // gen_fields(job, n, f); +UNSUPPORTED("ovdkxg0m1si7d9k8lawdnq"); // if (clrs[0]) free (clrs[0]); +UNSUPPORTED("amrlpbo0f5svfvv7e9lzhfzj9"); // if (doMap) { +UNSUPPORTED("4drs7w0v5mk7ys9aylmo5lnq8"); // if (job->flags & (1<<2)) +UNSUPPORTED("12436nj34of615tb94t3cw2h0"); // gvrender_begin_anchor(job, +UNSUPPORTED("2rwb38hipr5rxkwxfdzzwkdmy"); // obj->url, obj->tooltip, obj->target, +UNSUPPORTED("4x188hxybttaubn1tt4tf710k"); // obj->id); +UNSUPPORTED("e3o6yrnsv8lko5fql4f8a9gly"); // gvrender_end_anchor(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 7unoy39g6rhro6he8kci7oh4n +// static shape_desc **UserShape + + +//1 94927xsjiykujshql95ma97vb +// static int N_UserShape + + + + +//3 35sn43hohjmtc7uvkjrx6u7jt +// shape_desc *find_user_shape(const char *name) +public static Object find_user_shape(Object... arg) { +UNSUPPORTED("dn82ttgu4gvl5nnzl8cu29o63"); // shape_desc *find_user_shape(const char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("757gomzjey403egq882hclnn0"); // if (UserShape) { +UNSUPPORTED("30x6ygp0c6pjoq410g7sbl3lv"); // for (i = 0; i < N_UserShape; i++) { +UNSUPPORTED("3ka0imewegdrxvt7cdk37mqgj"); // if ((*(UserShape[i]->name)==*(name)&&!strcmp(UserShape[i]->name,name))) +UNSUPPORTED("5eh2ibmiqg7qx9z5fvoxfnfyo"); // return UserShape[i]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("o68dp934ebg4cplebgc5hv4v"); // return NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2eqlcx6fsiu46csoml6irvkib +// static shape_desc *user_shape(char *name) +public static Object user_shape(Object... arg) { +UNSUPPORTED("7omo61zea17p3tb29vnkd0g5k"); // static shape_desc *user_shape(char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("7vbdsnuzb5k7dx9t6iq98bqvu"); // shape_desc *p; +UNSUPPORTED("1cmwlrf177nfgj5tr0chf53vd"); // if ((p = find_user_shape(name))) +UNSUPPORTED("68kasxgknec72r19lohbk6n3q"); // return p; +UNSUPPORTED("61jp6r0u1tz0ytbo0pkbtibih"); // i = N_UserShape++; +UNSUPPORTED("8m5c0jxj3trkdqlzd49ch4393"); // UserShape = ALLOC(N_UserShape, UserShape, shape_desc *); +UNSUPPORTED("2ho6cxrgsfg5i9qgyksouth00"); // p = UserShape[i] = (shape_desc*)zmalloc(sizeof(shape_desc)); +UNSUPPORTED("9mrvf7ijsvjzugxe3889n26wy"); // *p = Shapes[0]; +UNSUPPORTED("do2hwp4zw8tlp7jj180uisyrb"); // p->name = strdup(name); +UNSUPPORTED("2x9tm5f2pfgyebmuac8jgc2j9"); // if (Lib == NULL && !(*(name)==*("custom")&&!strcmp(name,"custom"))) { +UNSUPPORTED("dmfmug44jzfjuimu3j7e9meux"); // agerr(AGWARN, "using %s for unknown shape %s\n", Shapes[0].name, +UNSUPPORTED("54012lqhgsbg1obhzpdwdl35o"); // p->name); +UNSUPPORTED("e7dpsukvk4pid9w6icote4v1b"); // p->usershape = 0; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("di2ydnxklvyghg80rycxyto6o"); // p->usershape = NOT(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bmt148wdf0a7gslm7hmp043jy +// shape_desc *bind_shape(char *name, node_t * np) +public static shape_desc bind_shape(CString name, Agnode_s np) { +ENTERING("bmt148wdf0a7gslm7hmp043jy","bind_shape"); +try { + shape_desc rv = null; + CString str; + str = safefile(agget(np, new CString("shapefile"))); + /* If shapefile is defined and not epsf, set shape = custom */ + if (str!=null && UNSUPPORTED("!(*(name)==*(\"epsf\")&&!strcmp(name,\"epsf\"))")!=null) + name = new CString("custom"); + if (N(name.charAt(0)=='c' && N(strcmp(name,new CString("custom"))))) { + for (shape_desc ptr : Z._().Shapes) { + if ((N(strcmp(ptr.getCString("name"),name)))) { + rv = ptr; + break; + } + } + } + if (rv == null) +UNSUPPORTED("7funuix8h6nhe6fqrjsec3kvk"); // rv = user_shape(name); + return rv; +} finally { +LEAVING("bmt148wdf0a7gslm7hmp043jy","bind_shape"); +} +} + + + + +//3 9n2zfdpzi6zgvnhcb3kz7nw1u +// static boolean epsf_inside(inside_t * inside_context, pointf p) +public static Object epsf_inside(Object... arg) { +UNSUPPORTED("cq9kgtgzrb9sazy7y2fpt859x"); // static boolean epsf_inside(inside_t * inside_context, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7lh87lvufqsd73q9difg0omei"); // pointf P; +UNSUPPORTED("9ikeydfq03qx7m09iencqsk36"); // double x2; +UNSUPPORTED("d8oppi8gt9b4eaonkdgb7a54l"); // node_t *n = inside_context->s.n; +UNSUPPORTED("823iiqtx9pt0gijqrohrd3zx7"); // P = ccwrotatepf(p, 90 * GD_rankdir(agraphof(n))); +UNSUPPORTED("6uktb6bwhvglg7v3nygillmqx"); // x2 = ND_ht(n) / 2; +UNSUPPORTED("3gki5ta81e51de9h4b5nvmoij"); // return ((P.y >= -x2) && (P.y <= x2) && (P.x >= -ND_lw(n)) +UNSUPPORTED("3bzok6rkdjzamkk155dcqc8n2"); // && (P.x <= ND_rw(n))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6xv85fky6n2v03mt0dbvpz05e +// static void epsf_gencode(GVJ_t * job, node_t * n) +public static Object epsf_gencode(Object... arg) { +UNSUPPORTED("4mtkoc5bwv0wkraw1xv9ptjlo"); // static void epsf_gencode(GVJ_t * job, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("31b47kcwg6z2ds4cugdfq5hft"); // epsf_t *desc; +UNSUPPORTED("6ciz320nm1jdjxir808cycx3t"); // int doMap = (obj->url || obj->explicit_tooltip); +UNSUPPORTED("7wygkmvhwjn2l2fmpw5bj1o6g"); // desc = (epsf_t *) (ND_shape_info(n)); +UNSUPPORTED("c98tv4jn3ode5so0mefrwcut7"); // if (!desc) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("7pfkga2nn8ltabo2ycvjgma6o"); // if (doMap && !(job->flags & (1<<2))) +UNSUPPORTED("6e7g66eeo7n8h8mq556pt3xxy"); // gvrender_begin_anchor(job, +UNSUPPORTED("8g7o4dsbwgp9ggtiktgt2m41t"); // obj->url, obj->tooltip, obj->target, +UNSUPPORTED("c8tk2e711ojwsnar0y39a73cf"); // obj->id); +UNSUPPORTED("4i1fd7rw5klkjsnyehf6v44a3"); // if (desc) +UNSUPPORTED("8yueq6sa0qe98f00ykgedfrzl"); // fprintf(job->output_file, +UNSUPPORTED("aqf73hied952lsirjjyf0hfr4"); // "%.5g %.5g translate newpath user_shape_%d\n", +UNSUPPORTED("afxenk7cqa80e074cox3d04n5"); // ND_coord(n).x + desc->offset.x, +UNSUPPORTED("57mec07ttst0x3aspieywssni"); // ND_coord(n).y + desc->offset.y, desc->macro_id); +UNSUPPORTED("1bslo0pyyucx0zmdzt12sei6d"); // ND_label(n)->pos = ND_coord(n); +UNSUPPORTED("8r8t0lgzzpigm1odig9a9yg1c"); // emit_label(job, EMIT_NLABEL, ND_label(n)); +UNSUPPORTED("amrlpbo0f5svfvv7e9lzhfzj9"); // if (doMap) { +UNSUPPORTED("4drs7w0v5mk7ys9aylmo5lnq8"); // if (job->flags & (1<<2)) +UNSUPPORTED("12436nj34of615tb94t3cw2h0"); // gvrender_begin_anchor(job, +UNSUPPORTED("2rwb38hipr5rxkwxfdzzwkdmy"); // obj->url, obj->tooltip, obj->target, +UNSUPPORTED("4x188hxybttaubn1tt4tf710k"); // obj->id); +UNSUPPORTED("e3o6yrnsv8lko5fql4f8a9gly"); // gvrender_end_anchor(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d0jsei60yky7c36q8bja8q58d +// static pointf star_size (pointf sz0) +public static Object star_size(Object... arg) { +UNSUPPORTED("6bl2ntfn97yev6qvlwplor61o"); // static pointf star_size (pointf sz0) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3zlnn621zia9mss7z1ay24myc"); // pointf sz; +UNSUPPORTED("5u7lf36burm76yokjuxgcd4tn"); // double r0, r, rx, ry; +UNSUPPORTED("9ya7hg30u0pmebfvhy4ba5kfp"); // rx = sz0.x/(2*cos((M_PI/10.0))); +UNSUPPORTED("y09869s34d94qtdcsuuz4mjy"); // ry = sz0.y/(sin((M_PI/10.0)) + sin((3*(M_PI/10.0)))); +UNSUPPORTED("1qn336ppz1ubj5d9vmolmwhfa"); // r0 = MAX(rx,ry); +UNSUPPORTED("99spig8n4dowh045zi2u054cf"); // r = (r0*sin((2*(2*(M_PI/10.0))))*cos((2*(M_PI/10.0))))/(cos((M_PI/10.0))*cos((2*(2*(M_PI/10.0))))); +UNSUPPORTED("3h9e5okkzg8gzypvpzok96ikc"); // sz.x = 2*r*cos((M_PI/10.0)); +UNSUPPORTED("19ba70prhdthsxh7ukqn07tw9"); // sz.y = r*(1 + sin((3*(M_PI/10.0)))); +UNSUPPORTED("ban3s2canux7qwxava1n2e4v2"); // return sz; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a7r80ro5nb15ttgfpqwayycmf +// static void star_vertices (pointf* vertices, pointf* bb) +public static Object star_vertices(Object... arg) { +UNSUPPORTED("8p40gvc5ocryzfeoybiuc0tzd"); // static void star_vertices (pointf* vertices, pointf* bb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("6ebg0h9irk3pcisrj710o7d79"); // pointf sz = *bb; +UNSUPPORTED("daheewjo1ertfvnwnfdg2fcxr"); // double offset, a, aspect = (1 + sin((3*(M_PI/10.0))))/(2*cos((M_PI/10.0))); +UNSUPPORTED("6ir3jujwrh6dpiqug6p2v3ttj"); // double r, r0, theta = (M_PI/10.0); +UNSUPPORTED("3dcxsdbybxzvk7jsod9d2ubvm"); // /* Scale up width or height to required aspect ratio */ +UNSUPPORTED("o422759cptua4yuo9guk3367"); // a = sz.y/sz.x; +UNSUPPORTED("4czf228z5owjh6ew3vh3ugvdv"); // if (a > aspect) { +UNSUPPORTED("97gq966jokpf07dc3wv6hgk45"); // sz.x = sz.y/aspect; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7dnql7ghevwkt7vxe0s4wndha"); // else if (a < aspect) { +UNSUPPORTED("aeoxa8vdht2x8kc1xojdwlz3j"); // sz.y = sz.x*aspect; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a8zuo1xnr4jnza3araqzl5q43"); // /* for given sz, get radius */ +UNSUPPORTED("5j3gmpqii05zcp2ncicxs2si"); // r = sz.x/(2*cos((M_PI/10.0))); +UNSUPPORTED("214oro38cddbf9fk06d0m6duf"); // r0 = (r*cos((M_PI/10.0))*cos((2*(2*(M_PI/10.0)))))/(sin((2*(2*(M_PI/10.0))))*cos((2*(M_PI/10.0)))); +UNSUPPORTED("4rot7vm0whb5r2oo8ne4pn1j4"); // /* offset is the y shift of circle center from bb center */ +UNSUPPORTED("aa1u9d9ckbucmn1eyvyyijwkf"); // offset = (r*(1 - sin((3*(M_PI/10.0)))))/2; +UNSUPPORTED("5zsqst1ddsdoai9yogpi1mnfl"); // for (i = 0; i < 10; i += 2) { +UNSUPPORTED("dy5yk8kfoxfn3h4wby7vyciqz"); // vertices[i].x = r*cos(theta); +UNSUPPORTED("a3uapptgvfngiztwa4vm4pbuu"); // vertices[i].y = r*sin(theta) - offset; +UNSUPPORTED("7z0zntmu5ddcj6evxm9imjmv8"); // theta += (2*(M_PI/10.0)); +UNSUPPORTED("da5vtvcsngi7wqtllzq8l190t"); // vertices[i+1].x = r0*cos(theta); +UNSUPPORTED("9zr96c70zwnim4wjqf6zn7p68"); // vertices[i+1].y = r0*sin(theta) - offset; +UNSUPPORTED("7z0zntmu5ddcj6evxm9imjmv8"); // theta += (2*(M_PI/10.0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("58zowxx0q5742vxn8iad1i1xe"); // *bb = sz; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5sbhhjvptmhgl2v2zc12aemgv +// static boolean star_inside(inside_t * inside_context, pointf p) +public static Object star_inside(Object... arg) { +UNSUPPORTED("2s46vczrfqrysl35qtk55j8dq"); // static boolean star_inside(inside_t * inside_context, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4ogz1m3q9xn7z7hiecjp98bmt"); // static node_t *lastn; /* last node argument */ +UNSUPPORTED("ehzu6nig1i3kg2wnd7f7k9j5n"); // static polygon_t *poly; +UNSUPPORTED("cy02ifkuodmjjlsu0kxnyjpoh"); // static int outp, sides; +UNSUPPORTED("53wr032f7cpvhrjze3ml553bu"); // static pointf *vertex; +UNSUPPORTED("c173x9hgi0epjtbq9crz665t6"); // static pointf O; /* point (0,0) */ +UNSUPPORTED("4rtja2mn137n7wcxryrmo12ko"); // boxf *bp = inside_context->s.bp; +UNSUPPORTED("d8oppi8gt9b4eaonkdgb7a54l"); // node_t *n = inside_context->s.n; +UNSUPPORTED("eu67sekaddiid7bjwclyd9lpq"); // pointf P, Q, R; +UNSUPPORTED("dk1ablxthh1rqusv958glmv1k"); // int i, outcnt; +UNSUPPORTED("823iiqtx9pt0gijqrohrd3zx7"); // P = ccwrotatepf(p, 90 * GD_rankdir(agraphof(n))); +UNSUPPORTED("9nc5qvx5xechvyre5wvhjqpjk"); // /* Quick test if port rectangle is target */ +UNSUPPORTED("8ix20ei8mhm5e1r57koylhxmw"); // if (bp) { +UNSUPPORTED("48wucupbjgeu51wy1djengl4f"); // boxf bbox = *bp; +UNSUPPORTED("b87pzpk1bdd2rzscbmza3pxyu"); // return INSIDE(P, bbox); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8rl2cn4oxr94675yld5eohkie"); // if (n != lastn) { +UNSUPPORTED("a7zf42vgzubszo05gyqjhr4bb"); // poly = (polygon_t *) ND_shape_info(n); +UNSUPPORTED("2y1ov1roe3ma4wlkdj2w8r3sg"); // vertex = poly->vertices; +UNSUPPORTED("98ormfm5j66dmbja3sdsx38az"); // sides = poly->sides; +UNSUPPORTED("d41xba93s17axh19qsbhg0x8a"); // /* index to outer-periphery */ +UNSUPPORTED("bmmroksk9aecg8ik0z1sxpzie"); // outp = (poly->peripheries - 1) * sides; +UNSUPPORTED("47l17pa0edzmfnlr8ysqs0qh4"); // if (outp < 0) +UNSUPPORTED("jyf75douzxhfzxfyrq3kes6e"); // outp = 0; +UNSUPPORTED("dz5401vppes7iz7b0c6pzkge6"); // lastn = n; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4zcxdh0y0cit31t1myzksbyc"); // outcnt = 0; +UNSUPPORTED("bs8ipj0v83bijiw6u6kpz14s1"); // for (i = 0; i < sides; i += 2) { +UNSUPPORTED("cmwbnui44mpmy3kjz18pxp1cd"); // Q = vertex[i + outp]; +UNSUPPORTED("4oudcajkxkcstsh2bvjaheadi"); // R = vertex[((i+4) % sides) + outp]; +UNSUPPORTED("b4anc6i6r4xczgkhjcjudktb"); // if (!(same_side(P, O, Q, R))) { +UNSUPPORTED("b291xvw4hm8vcmlaoxcl8dj94"); // outcnt++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3mpbcjrh8r4u6u2twxvyqx9v9"); // if (outcnt == 2) { +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8fwlqtemsmckleh6946lyd8mw"); // return NOT(0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 7nso0aprwwsa0je3az7h9nlue +// static char *side_port[] = + + + + +//3 8hx6dn19tost35djnvvnzh92y +// static point cvtPt(pointf p, int rankdir) +public static Object cvtPt(Object... arg) { +UNSUPPORTED("eid0v5e8f2edm1ehyq1d0zgow"); // static point cvtPt(pointf p, int rankdir) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6nl26joj7b7zxkfry5bt8z27d"); // pointf q = { 0, 0 }; +UNSUPPORTED("6em4lvgp5tqcu7z93czp75mqr"); // point Q; +UNSUPPORTED("7gnjhunyvxphjgrfh8byey4ch"); // switch (rankdir) { +UNSUPPORTED("70xjc0sbkjvexfar5luzibcgf"); // case 0: +UNSUPPORTED("a3bxar1i984lfbgqyiie54sqq"); // q = p; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4u5xz2u3urj13y0aw30fdyup5"); // case 2: +UNSUPPORTED("drh1t5heo8w8z199n0vydnon7"); // q.x = p.x; +UNSUPPORTED("1sp6xbp6wduyl3r6q3ki03lj"); // q.y = -p.y; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("d0gk15gzj4wz8nv54zbr285hm"); // case 1: +UNSUPPORTED("aqxuqmimmi2id7ukk2b64x1in"); // q.y = p.x; +UNSUPPORTED("djyedvti0u3rb22lyp3mp7i8n"); // q.x = -p.y; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("33l7a58zp8vj6fuliwdkk2nkn"); // case 3: +UNSUPPORTED("aqxuqmimmi2id7ukk2b64x1in"); // q.y = p.x; +UNSUPPORTED("7d33c84ojx2qc6awisfs88pf5"); // q.x = p.y; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5da6w8o8qgq5rx9tk3asaefvi"); // PF2P(q, Q); +UNSUPPORTED("11g52me0fwkpxm5crnv4uqfgr"); // return Q; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cmt4wr13jgcd9ihg14t972aam +// static char *closestSide(node_t * n, node_t * other, port * oldport) +public static Object closestSide(Object... arg) { +UNSUPPORTED("7nx8rmo64f0qpalnfdir13szh"); // static char *closestSide(node_t * n, node_t * other, port * oldport) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("6yudcsapgh1wsfc2gfszyhv9j"); // int rkd = GD_rankdir(agraphof(n)->root); +UNSUPPORTED("7f1eg16y5dgh2o3bgeyia19n3"); // point p = { 0, 0 }; +UNSUPPORTED("dc41k2vc95rcs2d9fsi2z8wem"); // point pt = cvtPt(ND_coord(n), rkd); +UNSUPPORTED("bk9nxen9ygr1a03ygu4cdx4rj"); // point opt = cvtPt(ND_coord(other), rkd); +UNSUPPORTED("4oio8elmu3g3k7i9rcsme7msk"); // int sides = oldport->side; +UNSUPPORTED("2lc32htm5f42afmf30kcuxspa"); // char *rv = NULL; +UNSUPPORTED("5myu0a4ngtwkfxidkfff5h3ci"); // int i, d, mind = 0; +UNSUPPORTED("42bedbxabt6b225h992k8rfpa"); // if ((sides == 0) || (sides == ((1<<2) | (1<<0) | (1<<3) | (1<<1)))) +UNSUPPORTED("85378rh1rr2g6iscv3ocyh4ky"); // return rv; /* use center */ +UNSUPPORTED("9qqot69wqtq8rkizbwz0f4vu"); // if (oldport->bp) { +UNSUPPORTED("ckp5i3rvsjcc5f9xk025kpv81"); // b = *oldport->bp; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("ek9a7u2yx8w4r9x5k7somxuup"); // if (GD_flip(agraphof(n))) { +UNSUPPORTED("5m0qxjiybs5ei0xyt8rztghk5"); // b.UR.x = ND_ht(n) / 2; +UNSUPPORTED("1i4y4dgrig36gh0dq2jn8kde"); // b.LL.x = -b.UR.x; +UNSUPPORTED("7luuqd8n7bpffoa8v27jp7tn3"); // b.UR.y = ND_lw(n); +UNSUPPORTED("922vazdrkwhoxxy4yw5axu6i7"); // b.LL.y = -b.UR.y; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("2kqd0a7y22hequs0ypjfw2ltw"); // b.UR.y = ND_ht(n) / 2; +UNSUPPORTED("922vazdrkwhoxxy4yw5axu6i7"); // b.LL.y = -b.UR.y; +UNSUPPORTED("59beisnsabbp6eavnuxrqch2d"); // b.UR.x = ND_lw(n); +UNSUPPORTED("1i4y4dgrig36gh0dq2jn8kde"); // b.LL.x = -b.UR.x; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a2n8aqfq0cqpx8elstmfn9oq6"); // for (i = 0; i < 4; i++) { +UNSUPPORTED("bs33qxg9liuq4cqnxgjcpo2pp"); // if ((sides & (1 << i)) == 0) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("9bo1itj979wxduxtvlcn8uetb"); // switch (i) { +UNSUPPORTED("46lzlkypfilrge90rkaiveuyb"); // case 0: +UNSUPPORTED("c2y7pxvutf20cxm0z3nfgoc3k"); // p.y = b.LL.y; +UNSUPPORTED("2vekwappcfvbfvrjvig9oqlmp"); // p.x = (b.LL.x + b.UR.x) / 2; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2o83im06dulx11wjpy469gkoa"); // case 1: +UNSUPPORTED("6ertkjhcjyaq08zsm3g294l4b"); // p.x = b.UR.x; +UNSUPPORTED("3jxafko9fvkftv1vxjstl9gr5"); // p.y = (b.LL.y + b.UR.y) / 2; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("b8vgbvwzllfs4lrqmmqyr1spk"); // case 2: +UNSUPPORTED("7gucyzlkpil4bfg1hpst17k3d"); // p.y = b.UR.y; +UNSUPPORTED("2vekwappcfvbfvrjvig9oqlmp"); // p.x = (b.LL.x + b.UR.x) / 2; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1640m8as34e90xhvvtl877cmo"); // case 3: +UNSUPPORTED("3hd28hpejkfur36krdelc2enk"); // p.x = b.LL.x; +UNSUPPORTED("3jxafko9fvkftv1vxjstl9gr5"); // p.y = (b.LL.y + b.UR.y) / 2; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7lafbtu79v445pj4z8m4brkmm"); // p.x += pt.x; +UNSUPPORTED("ef9oyp0p6aqlpy8atlw8pjnj2"); // p.y += pt.y; +UNSUPPORTED("q27stk74ksja0hoiobb8mpfg"); // d = DIST2(p, opt); +UNSUPPORTED("77inwlax2kjikvjehyh67g2v1"); // if (!rv || (d < mind)) { +UNSUPPORTED("e4k01qtlw2t5jf3hpn1bmxivu"); // mind = d; +UNSUPPORTED("cghq7r095a9g9ix9m1bfx0niw"); // rv = side_port[i]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ckbg1dyu9jzx7g0c9dbriez7r +// port resolvePort(node_t * n, node_t * other, port * oldport) +public static __struct__ resolvePort(Agnode_s n, Agnode_s other, port oldport) { +// WARNING!! STRUCT +return resolvePort_w_(n, other, oldport).copy(); +} +private static __struct__ resolvePort_w_(Agnode_s n, Agnode_s other, port oldport) { +ENTERING("ckbg1dyu9jzx7g0c9dbriez7r","resolvePort"); +try { + UNSUPPORTED("1aa44pvk8su341rug2x5h5h9o"); // port resolvePort(node_t * n, node_t * other, port * oldport) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9ricxd1wv1am78xxjvd40ki5e"); // port rv; +UNSUPPORTED("jdbaecwphvo5avabk6l4xiy3"); // char *compass = closestSide(n, other, oldport); +UNSUPPORTED("afwu4bhodfj1avn0vvvmp2j5n"); // /* transfer name pointer; all other necessary fields will be regenerated */ +UNSUPPORTED("102hdormt85y9xfjr5sy321jr"); // rv.name = oldport->name; +UNSUPPORTED("f4v5e5pyzu6udom6g40aku41y"); // compassPort(n, oldport->bp, &rv, compass, oldport->side, NULL); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("ckbg1dyu9jzx7g0c9dbriez7r","resolvePort"); +} +} + + + + +//3 9ttd9vkih0mogy1ps3khfjum6 +// void resolvePorts(edge_t * e) +public static Object resolvePorts(Object... arg) { +UNSUPPORTED("ceen1bdr2y10gl9g3stj9dq13"); // void resolvePorts(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1avf6c49h37pc64khn45b3zla"); // if (ED_tail_port(e).dyna) +UNSUPPORTED("bjgkohc8n22pf9yf5anfmfjdl"); // ED_tail_port(e) = +UNSUPPORTED("c5phu7zavynmooq4ykt058d6t"); // resolvePort(agtail(e), aghead(e), &ED_tail_port(e)); +UNSUPPORTED("56ff4qr7o1xsl73k68f4kjmd1"); // if (ED_head_port(e).dyna) +UNSUPPORTED("d4aylrk5xwagx7so633xn35ug"); // ED_head_port(e) = +UNSUPPORTED("ctvcevp7oejtitu1hunh3yj02"); // resolvePort(aghead(e), agtail(e), &ED_head_port(e)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/splines__c.java plantuml-8039/src/gen/lib/common/splines__c.java --- plantuml-8024/src/gen/lib/common/splines__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/splines__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,2152 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.obj__c.agraphof; +import static gen.lib.common.arrows__c.arrowEndClip; +import static gen.lib.common.arrows__c.arrow_flags; +import static gen.lib.common.emit__c.update_bb_bz; +import static gen.lib.common.memory__c.zmalloc; +import static gen.lib.common.shapes__c.resolvePort; +import static gen.lib.common.utils__c.Bezier; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ABS; +import static smetana.core.Macro.ALLOC; +import static smetana.core.Macro.APPROXEQPT; +import static smetana.core.Macro.ED_edge_type; +import static smetana.core.Macro.ED_head_port; +import static smetana.core.Macro.ED_label; +import static smetana.core.Macro.ED_spl; +import static smetana.core.Macro.ED_tail_port; +import static smetana.core.Macro.ED_to_orig; +import static smetana.core.Macro.GD_bb; +import static smetana.core.Macro.GD_flip; +import static smetana.core.Macro.MAX; +import static smetana.core.Macro.MILLIPOINT; +import static smetana.core.Macro.MIN; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_coord; +import static smetana.core.Macro.ND_node_type; +import static smetana.core.Macro.ND_order; +import static smetana.core.Macro.ND_rank; +import static smetana.core.Macro.ND_rw; +import static smetana.core.Macro.ND_shape; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.bezier; +import h.boxf; +import h.inside_t; +import h.path; +import h.pathend_t; +import h.pointf; +import h.splineInfo; +import h.splines; +import h.textlabel_t; +import smetana.core.CFunction; +import smetana.core.MutableDouble; +import smetana.core.__array_of_struct__; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class splines__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6izm0fbkejw7odmiw4zaw1ycp +// static void arrow_clip(edge_t * fe, node_t * hn, pointf * ps, int *startp, int *endp, bezier * spl, splineInfo * info) +public static void arrow_clip(Agedge_s fe, Agnode_s hn, __ptr__ ps, int startp[], int endp[], bezier spl, __ptr__ info) { +ENTERING("6izm0fbkejw7odmiw4zaw1ycp","arrow_clip"); +try { + Agedge_s e; + int i; + boolean j; + int sflag[] = new int[]{0}; + int eflag[] = new int[]{0}; + for (e = fe; ED_to_orig(e)!=null; e = ED_to_orig(e)); + if (info.getBoolean("ignoreSwap")) + j = false; + else + j = (Boolean) info.call("swapEnds", e); + arrow_flags(e, sflag, eflag); + if ((Boolean) info.call("splineMerge", hn)) + eflag[0] = 0; + if ((Boolean) info.call("splineMerge", agtail(fe))) + sflag[0] = 0; + /* swap the two ends */ + if (j) { + i = sflag[0]; + sflag[0] = eflag[0]; + eflag[0] = i; + } + if (info.getBoolean("isOrtho")) { +UNSUPPORTED("7a3lmojyfh13d6shkviuogx2c"); // if (eflag || sflag) +UNSUPPORTED("dzbrwr2ulubtjkbd8j2o4yyov"); // arrowOrthoClip(e, ps, *startp, *endp, spl, sflag, eflag); + } + else { + if (sflag[0]!=0) + UNSUPPORTED("startp[0] ="); + //arrowStartClip(e, ps, startp, endp, spl, sflag); + if (eflag[0]!=0) + endp[0] = + arrowEndClip(e, ps, startp[0], endp[0], spl, eflag[0]); + } +} finally { +LEAVING("6izm0fbkejw7odmiw4zaw1ycp","arrow_clip"); +} +} + + + + +//3 q4t1ywnk3wm1vyh5seoj7xye +// void bezier_clip(inside_t * inside_context, boolean(*inside) (inside_t * inside_context, pointf p), pointf * sp, boolean left_inside) +public static void bezier_clip(__ptr__ inside_context, __ptr__ inside, __array_of_struct__ sp, boolean left_inside) { +ENTERING("q4t1ywnk3wm1vyh5seoj7xye","bezier_clip"); +try { + final __array_of_struct__ seg = __array_of_struct__.malloc(pointf.class, 4); + final __array_of_struct__ best = __array_of_struct__.malloc(pointf.class, 4); + final __struct__ pt = __struct__.from(pointf.class), opt = __struct__.from(pointf.class); + __ptr__ left, right; + final MutableDouble low = new MutableDouble(0), high = new MutableDouble(0); + double t; + MutableDouble idir, odir; + boolean found; + int i; + if (left_inside) { + left = null; + right = (pointf) seg.asPtr(); + pt.____(sp.plus(0).getStruct()); + idir = low; + odir = high; + } else { + left = (pointf) seg.asPtr(); + right = null; + pt.____(sp.plus(3).getStruct()); + idir = high; + odir = low; + } + found = false; + low.setValue(0.0); + high.setValue(1.0); + do { + opt.____(pt); + t = (high.getValue() + low.getValue()) / 2.0; + pt.____(Bezier(sp, 3, t, left, right)); + if ((Boolean) ((CFunction)inside).exe(inside_context, pt)) { + idir.setValue(t); + } else { + for (i = 0; i < 4; i++) + best.plus(i).setStruct(seg.plus(i).getStruct()); + found = NOT(false); + odir.setValue(t); + } + } while (ABS(opt.getDouble("x") - pt.getDouble("x")) > .5 || ABS(opt.getDouble("y") - pt.getDouble("y")) > .5); + if (found) + for (i = 0; i < 4; i++) + sp.plus(i).setStruct(best.plus(i).getStruct()); + else + for (i = 0; i < 4; i++) + sp.plus(i).setStruct(seg.plus(i).getStruct()); +} finally { +LEAVING("q4t1ywnk3wm1vyh5seoj7xye","bezier_clip"); +} +} + + + + +//3 1fjkj1ydhtlf13pqj5r041orq +// static void shape_clip0(inside_t * inside_context, node_t * n, pointf curve[4], boolean left_inside) +public static void shape_clip0(__ptr__ inside_context, Agnode_s n, __ptr__ curve, boolean left_inside) { +ENTERING("1fjkj1ydhtlf13pqj5r041orq","shape_clip0"); +try { + int i; + double save_real_size; + final __array_of_struct__ c = __array_of_struct__.malloc(pointf.class, 4); + save_real_size = ND_rw(n); + for (i = 0; i < 4; i++) { + c.plus(i).setDouble("x", curve.plus(i).getDouble("x") - ND_coord(n).getDouble("x")); + c.plus(i).setDouble("y", curve.plus(i).getDouble("y") - ND_coord(n).getDouble("y")); + } + bezier_clip(inside_context, ND_shape(n).getPtr("fns").getPtr("insidefn"), c, + left_inside); + for (i = 0; i < 4; i++) { + curve.plus(i).setDouble("x", c.plus(i).getDouble("x") + ND_coord(n).getDouble("x")); + curve.plus(i).setDouble("y", c.plus(i).getDouble("y") + ND_coord(n).getDouble("y")); + } + ND_rw(n, save_real_size); +} finally { +LEAVING("1fjkj1ydhtlf13pqj5r041orq","shape_clip0"); +} +} + + + + +//3 5m4auahepda0ug3e1o05gm0kf +// void shape_clip(node_t * n, pointf curve[4]) +public static Object shape_clip(Object... arg) { +UNSUPPORTED("14nvh1wyusdizrbkaqswyz6a3"); // void shape_clip(node_t * n, pointf curve[4]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9htbadryixdqglsfxbj66m3na"); // double save_real_size; +UNSUPPORTED("9hp0vh92flvlgoaxmzp4h6uaq"); // boolean left_inside; +UNSUPPORTED("a3jcleu2wok75rpalgfjt6tte"); // pointf c; +UNSUPPORTED("114lbsab8twbq15luo36j31q2"); // inside_t inside_context; +UNSUPPORTED("eua5l3utehs8yu615w4iusufv"); // if (ND_shape(n) == NULL || ND_shape(n)->fns->insidefn == NULL) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("a8yyudcgedtaoi8ey9sje90ph"); // inside_context.s.n = n; +UNSUPPORTED("3y9eccm2tmdyx34ew24hitfqq"); // inside_context.s.bp = NULL; +UNSUPPORTED("27aelctxo5teujbhkeu9x73hp"); // save_real_size = ND_rw(n); +UNSUPPORTED("21zlezol1pqversb7b7rso1hl"); // c.x = curve[0].x - ND_coord(n).x; +UNSUPPORTED("dxn2z9gn2x96x83fwcba9bdme"); // c.y = curve[0].y - ND_coord(n).y; +UNSUPPORTED("5o23jq82y9dhpry5f9u9umk5d"); // left_inside = ND_shape(n)->fns->insidefn(&inside_context, c); +UNSUPPORTED("9q38fqg00ynddr6952dvaz6n3"); // ND_rw(n) = save_real_size; +UNSUPPORTED("w5x58kft1tdd1d2ae83yfrej"); // shape_clip0(&inside_context, n, curve, left_inside); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bdirexg1qdtophlh0ofjvsmj7 +// bezier *new_spline(edge_t * e, int sz) +public static bezier new_spline(Agedge_s e, int sz) { +ENTERING("bdirexg1qdtophlh0ofjvsmj7","new_spline"); +try { + bezier rv; + while (ED_edge_type(e) != 0) + e = ED_to_orig(e); + if (ED_spl(e) == null) + ED_spl(e, zmalloc(sizeof(splines.class))); + ED_spl(e).setPtr("list", ALLOC(ED_spl(e).getInt("size") + 1, ED_spl(e).getPtr("list"), bezier.class)); + rv = (bezier) ED_spl(e).getPtr("list").plus(ED_spl(e).getInt("size")); + ED_spl(e).setInt("size", ED_spl(e).getInt("size")+1); + rv.setPtr("list", zmalloc(sizeof(pointf.class, sz))); + rv.setInt("size", sz); + rv.setInt("sflag", 0); + rv.setInt("eflag", 0); + rv.getStruct("sp").setDouble("x", 0); + rv.getStruct("sp").setDouble("y", 0); + rv.getStruct("ep").setDouble("x", 0); + rv.getStruct("ep").setDouble("y", 0); + return rv; +} finally { +LEAVING("bdirexg1qdtophlh0ofjvsmj7","new_spline"); +} +} + + + + +//3 duednxyuvf6xrff752uuv620f +// void clip_and_install(edge_t * fe, node_t * hn, pointf * ps, int pn, splineInfo * info) +public static void clip_and_install(Agedge_s fe, Agnode_s hn, __ptr__ ps, int pn, __ptr__ info) { +ENTERING("duednxyuvf6xrff752uuv620f","clip_and_install"); +try { + final __struct__ p2 = __struct__.from(pointf.class); + bezier newspl; + Agnode_s tn; + int start[] = new int[] {0}; + int end[] = new int[] {0}; + int i, clipTail=0, clipHead=0; + Agraph_s g; + Agedge_s orig; + boxf tbox=null, hbox=null; + final __struct__ inside_context = __struct__.from(inside_t.class); + tn = agtail(fe); + g = agraphof(tn); + newspl = new_spline(fe, pn); + for (orig = fe; ED_edge_type(orig) != 0; orig = ED_to_orig(orig)); + /* may be a reversed flat edge */ + if (N(info.getBoolean("ignoreSwap")) && (ND_rank(tn) == ND_rank(hn)) && (ND_order(tn) > ND_order(hn))) { + Agnode_s tmp; + tmp = hn; + hn = tn; + tn = tmp; + } + if (EQ(tn, agtail(orig))) { + clipTail = ED_tail_port(orig).getInt("clip"); + clipHead = ED_head_port(orig).getInt("clip"); + tbox = (boxf) ED_tail_port(orig).getPtr("bp"); + hbox = (boxf) ED_head_port(orig).getPtr("bp"); + } + else { /* fe and orig are reversed */ + clipTail = ED_head_port(orig).getInt("clip"); + clipHead = ED_tail_port(orig).getInt("clip"); + hbox = (boxf) ED_tail_port(orig).getPtr("bp"); + tbox = (boxf) ED_head_port(orig).getPtr("bp"); + } + /* spline may be interior to node */ + if(clipHead!=0 && ND_shape(tn)!=null && ND_shape(tn).getPtr("fns").getPtr("insidefn")!=null) { + inside_context.setPtr("s.n", tn); + inside_context.setPtr("s.bp", tbox); + for (start[0] = 0; start[0] < pn - 4; start[0] += 3) { + p2.setDouble("x", ps.plus(start[0] + 3).getDouble("x") - ND_coord(tn).getDouble("x")); + p2.setDouble("y", ps.plus(start[0] + 3).getDouble("y") - ND_coord(tn).getDouble("y")); + if (((Boolean)ND_shape(tn).getPtr("fns").call("insidefn", inside_context.amp(), p2)) == false) + break; + } + shape_clip0(inside_context.amp(), tn, ps.plus(start[0]), NOT(false)); + } else + start[0] = 0; + if(clipHead!=0 && ND_shape(hn)!=null && ND_shape(hn).getPtr("fns").getPtr("insidefn")!=null) { + inside_context.setPtr("s.n", hn); + inside_context.setPtr("s.bp", hbox); + for (end[0] = pn - 4; end[0] > 0; end[0] -= 3) { + p2.setDouble("x", ps.plus(end[0]).getDouble("x") - ND_coord(hn).getDouble("x")); + p2.setDouble("y", ps.plus(end[0]).getDouble("y") - ND_coord(hn).getDouble("y")); + if (((Boolean)ND_shape(hn).getPtr("fns").call("insidefn", inside_context.amp(), p2)) == false) + break; + } + shape_clip0(inside_context.amp(), hn, ps.plus(end[0]), false); + } else + end[0] = pn - 4; + for (; start[0] < pn - 4; start[0] += 3) + if (N(APPROXEQPT(ps.plus(start[0]).getPtr(), ps.plus(start[0] + 3).getPtr(), MILLIPOINT))) + break; + for (; end[0] > 0; end[0] -= 3) + if (N(APPROXEQPT(ps.plus(end[0]).getPtr(), ps.plus(end[0] + 3).getPtr(), MILLIPOINT))) + break; + arrow_clip(fe, hn, ps, start, end, newspl, info); + for (i = start[0]; i < end[0] + 4; ) { + final __array_of_struct__ cp = __array_of_struct__.malloc(pointf.class, 4); + newspl.getArrayOfPtr("list").plus(i - start[0]).setStruct(ps.plus(i).getStruct()); + cp.plus(0).setStruct(ps.plus(i).getStruct()); + i++; + if ( i >= end[0] + 4) + break; + newspl.getArrayOfPtr("list").plus(i - start[0]).setStruct(ps.plus(i).getStruct()); + cp.plus(1).setStruct(ps.plus(i).getStruct()); + i++; + newspl.getArrayOfPtr("list").plus(i - start[0]).setStruct(ps.plus(i).getStruct()); + cp.plus(2).setStruct(ps.plus(i).getStruct()); + i++; + cp.plus(3).setStruct(ps.plus(i).getStruct()); + update_bb_bz(GD_bb(g).amp(), cp); + } + newspl.setInt("size", end[0] - start[0] + 4); +} finally { +LEAVING("duednxyuvf6xrff752uuv620f","clip_and_install"); +} +} + + + + +//3 25ndy15kghfrogsv0b0o0xkgv +// static double conc_slope(node_t* n) +public static double conc_slope(Agnode_s n) { +ENTERING("25ndy15kghfrogsv0b0o0xkgv","conc_slope"); +try { + UNSUPPORTED("e388y3vtrp8f6spgh9q4wx37w"); // static double +UNSUPPORTED("4yxpid2dxvb387487trn1umlw"); // conc_slope(node_t* n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9669xuley9dxylr00ex9kbzg7"); // double s_in, s_out, m_in, m_out; +UNSUPPORTED("wfd0ht8utdwwqctf47l4dtrz"); // int cnt_in, cnt_out; +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("apjf2mf9d7qj0eo9o2x5yli2e"); // s_in = s_out = 0.0; +UNSUPPORTED("7mc6shwmvz25mz9inwj97lqk6"); // for (cnt_in = 0; (e = ND_in(n).list[cnt_in]); cnt_in++) +UNSUPPORTED("cb1h5cx7oxhtdkm5l0k6qrx2z"); // s_in += ND_coord(agtail(e)).x; +UNSUPPORTED("hjfqfqmtdqdrp9z80ebrpthm"); // for (cnt_out = 0; (e = ND_out(n).list[cnt_out]); cnt_out++) +UNSUPPORTED("2iidrr9ljv8ap9s2g6gj3q1o3"); // s_out += ND_coord(aghead(e)).x; +UNSUPPORTED("2yeio9xc9oorju7qqnhilwujx"); // p.x = ND_coord(n).x - (s_in / cnt_in); +UNSUPPORTED("87jzl9isj7w9kgyr05inw33s5"); // p.y = ND_coord(n).y - ND_coord(agtail(ND_in(n).list[0])).y; +UNSUPPORTED("6y2pc9af2xxdqajbpykvca9eg"); // m_in = atan2(p.y, p.x); +UNSUPPORTED("ruwz5svpk33ucfgs4wx0xolm"); // p.x = (s_out / cnt_out) - ND_coord(n).x; +UNSUPPORTED("8vif8c37lbo7ww4vwfrcxgpmr"); // p.y = ND_coord(aghead(ND_out(n).list[0])).y - ND_coord(n).y; +UNSUPPORTED("ez8z3gbteryfhktbqkwmzhhzs"); // m_out = atan2(p.y, p.x); +UNSUPPORTED("ej1ftaglexa47x955elb88yh2"); // return ((m_in + m_out) / 2.0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("25ndy15kghfrogsv0b0o0xkgv","conc_slope"); +} +} + + + + +//3 egq4f4tmy1dhyj6jpj92r7xhu +// void add_box(path * P, boxf b) +public static void add_box(path P, final __struct__ b) { +// WARNING!! STRUCT +add_box_w_(P, b.copy()); +} +private static void add_box_w_(path P, final __struct__ b) { +ENTERING("egq4f4tmy1dhyj6jpj92r7xhu","add_box"); +try { + if (b.getStruct("LL").getDouble("x") < b.getStruct("UR").getDouble("x") && b.getStruct("LL").getDouble("y") < b.getStruct("UR").getDouble("y")) + { + P.getArrayOfPtr("boxes").plus(P.getInt("nbox")).setStruct(b); + P.setInt("nbox", P.getInt("nbox")+1); + } +} finally { +LEAVING("egq4f4tmy1dhyj6jpj92r7xhu","add_box"); +} +} + + + + +//3 7pc43ifcw5g56449d101qf590 +// void beginpath(path * P, edge_t * e, int et, pathend_t * endp, boolean merge) +public static void beginpath(path P, Agedge_s e, int et, pathend_t endp, boolean merge) { +ENTERING("7pc43ifcw5g56449d101qf590","beginpath"); +try { + int side, mask; + Agnode_s n; + CFunction pboxfn; + n = agtail(e); + if (ED_tail_port(e).getInt("dyna")!=0) + ED_tail_port(e, resolvePort(agtail(e), aghead(e), ED_tail_port(e).amp())); + if (ND_shape(n)!=null) + pboxfn = (CFunction) ND_shape(n).getPtr("fns").getPtr("pboxfn"); + else + pboxfn = null; + P.getStruct("start").setStruct("p", add_pointf(ND_coord(n), ED_tail_port(e).getStruct("p"))); + if (merge) { + /*P->start.theta = - M_PI / 2; */ + P.getStruct("start").setDouble("theta", conc_slope(agtail(e))); + P.getStruct("start").setBoolean("constrained", NOT(false)); + } else { + if (ED_tail_port(e).getBoolean("constrained")) { + P.getStruct("start").setDouble("theta", ED_tail_port(e).getDouble("theta")); + P.getStruct("start").setBoolean("constrained", NOT(false)); + } else + P.getStruct("start").setBoolean("constrained", false); + } + P.setInt("nbox", 0); + P.setPtr("data", e); + endp.setStruct("np", P.getStruct("start").getStruct("p")); + if ((et == 1) && (ND_node_type(n) == 0) && ((side = ED_tail_port(e).getInt("side"))!=0)) { +UNSUPPORTED("a7lrhlfwr0y475aqjk6abhb3b"); // edge_t* orig; +UNSUPPORTED("ew7nyfe712nsiphifeztwxfop"); // boxf b0, b = endp->nb; +UNSUPPORTED("ait3wtnnvt134z2k87lvhq4ek"); // if (side & (1<<2)) { +UNSUPPORTED("1r4lctdj9z1ivlz3uqpcj1yzf"); // endp->sidemask = (1<<2); +UNSUPPORTED("arq09sf82lsjuxwfkesprcrcv"); // if (P->start.p.x < ND_coord(n).x) { /* go left */ +UNSUPPORTED("bj4z8gwgs6j5fax8k6l3u6mv3"); // b0.LL.x = b.LL.x - 1; +UNSUPPORTED("54rmdm0xwy361tjs4aj6cv401"); // /* b0.LL.y = ND_coord(n).y + HT2(n); */ +UNSUPPORTED("11ax5pxz4q2uh0nzsrs1qs7ck"); // b0.LL.y = P->start.p.y; +UNSUPPORTED("5xsapgq04e1hslq2835500q6k"); // b0.UR.x = b.UR.x; +UNSUPPORTED("9ro8mx52kgsoogvlgfubgn4p0"); // b0.UR.y = ND_coord(n).y + (ND_ht(n)/2) + GD_ranksep(agraphof(n))/2; +UNSUPPORTED("6p2nw1nh0qwn5ro3dltmd6w6c"); // b.UR.x = ND_coord(n).x - ND_lw(n) - (2-2); +UNSUPPORTED("czvxm3loj0won7ye2b3xrfbv4"); // b.UR.y = b0.LL.y; +UNSUPPORTED("1f4u492auf4ku7ik170e86iy3"); // b.LL.y = ND_coord(n).y - (ND_ht(n)/2); +UNSUPPORTED("w9wsmby4dawn9npux1jrd9gl"); // b.LL.x -= 1; +UNSUPPORTED("2f8usay82b128dq0sk4aqzw3h"); // endp->boxes[0] = b0; +UNSUPPORTED("2diqdwueoy5oizl5kmbz6uyi8"); // endp->boxes[1] = b; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("7sk0msbospwpwupzwpu8v87qt"); // b0.LL.x = b.LL.x; +UNSUPPORTED("11ax5pxz4q2uh0nzsrs1qs7ck"); // b0.LL.y = P->start.p.y; +UNSUPPORTED("54rmdm0xwy361tjs4aj6cv401"); // /* b0.LL.y = ND_coord(n).y + HT2(n); */ +UNSUPPORTED("4e5ydpfmxn1wuhnp78arn3f9x"); // b0.UR.x = b.UR.x+1; +UNSUPPORTED("9ro8mx52kgsoogvlgfubgn4p0"); // b0.UR.y = ND_coord(n).y + (ND_ht(n)/2) + GD_ranksep(agraphof(n))/2; +UNSUPPORTED("3f26r03ydc7aq52vcqpgxawgy"); // b.LL.x = ND_coord(n).x + ND_rw(n) + (2-2); +UNSUPPORTED("czvxm3loj0won7ye2b3xrfbv4"); // b.UR.y = b0.LL.y; +UNSUPPORTED("1f4u492auf4ku7ik170e86iy3"); // b.LL.y = ND_coord(n).y - (ND_ht(n)/2); +UNSUPPORTED("bqk56pohk8hpgn91lv4m2zkv0"); // b.UR.x += 1; +UNSUPPORTED("2f8usay82b128dq0sk4aqzw3h"); // endp->boxes[0] = b0; +UNSUPPORTED("2diqdwueoy5oizl5kmbz6uyi8"); // endp->boxes[1] = b; +UNSUPPORTED("196ta4n5nsqizd83y6oo7z8a2"); // } +UNSUPPORTED("b7lioq6g7moe5otds46c8hrc"); // P->start.p.y += 1; +UNSUPPORTED("4v7mmisc358r5tpq14qp4dx0f"); // endp->boxn = 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3s4re3z7asydnnotdylt94t1d"); // else if (side & (1<<0)) { +UNSUPPORTED("auefgwb39x5hzqqc9b1zgl239"); // endp->sidemask = (1<<0); +UNSUPPORTED("ax7mx0s11g0pgcgb8iopcu82a"); // b.UR.y = MAX(b.UR.y,P->start.p.y); +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("8pyl2559euuaxrntsyzj1ve8w"); // P->start.p.y -= 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bn3pwhefgp4zdatx3g60lj0ou"); // else if (side & (1<<3)) { +UNSUPPORTED("2lmjkw07sr4x9a3xxrcb3yj07"); // endp->sidemask = (1<<3); +UNSUPPORTED("bmdw7h7pzwkfbuzhxnsh4vbsm"); // b.UR.x = P->start.p.x; +UNSUPPORTED("c86scga1j3ar95pgqvemnzrui"); // b.LL.y = ND_coord(n).y - (ND_ht(n)/2); +UNSUPPORTED("cdhdxsyg42tregieb2l7kz8n"); // b.UR.y = P->start.p.y; +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("celmm9njwdxhpvd56zon98hrr"); // P->start.p.x -= 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("8kgb5ztvt4yv5h0nezr0q6n3z"); // endp->sidemask = (1<<1); +UNSUPPORTED("cysdxceleujmu3rckrhibxaqd"); // b.LL.x = P->start.p.x; +UNSUPPORTED("c86scga1j3ar95pgqvemnzrui"); // b.LL.y = ND_coord(n).y - (ND_ht(n)/2); +UNSUPPORTED("cdhdxsyg42tregieb2l7kz8n"); // b.UR.y = P->start.p.y; +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("1n8o29xgguq4cce4rf04o5rke"); // P->start.p.x += 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4gatpb3u0rq9nikm6rjtejp85"); // for (orig = e; ED_edge_type(orig) != 0; orig = ED_to_orig(orig)); +UNSUPPORTED("askl6l2rq6b2bznfxj7ydvz5t"); // if (n == agtail(orig)) +UNSUPPORTED("dk49xvmby8949ngdmft4sgrox"); // ED_tail_port(orig).clip = 0; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("2tw6ymudedo6qij3ux424ydsi"); // ED_head_port(orig).clip = 0; +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; + } + if ((et == 2) && ((side = ED_tail_port(e).getInt("side"))!=0)) { +UNSUPPORTED("ew7nyfe712nsiphifeztwxfop"); // boxf b0, b = endp->nb; +UNSUPPORTED("a7lrhlfwr0y475aqjk6abhb3b"); // edge_t* orig; +UNSUPPORTED("ait3wtnnvt134z2k87lvhq4ek"); // if (side & (1<<2)) { +UNSUPPORTED("d7fd91oymbo1kkxfqhtbe2jky"); // b.LL.y = MIN(b.LL.y,P->start.p.y); +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("b7lioq6g7moe5otds46c8hrc"); // P->start.p.y += 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3s4re3z7asydnnotdylt94t1d"); // else if (side & (1<<0)) { +UNSUPPORTED("6h0f9z7wklonn021j8ijd3b8m"); // if (endp->sidemask == (1<<2)) { +UNSUPPORTED("7vjialx9rln6cj2y0ni5nc2gi"); // b0.UR.y = ND_coord(n).y - (ND_ht(n)/2); +UNSUPPORTED("4e5ydpfmxn1wuhnp78arn3f9x"); // b0.UR.x = b.UR.x+1; +UNSUPPORTED("1zpea73m3d4hdldoc5sypz1ag"); // b0.LL.x = P->start.p.x; +UNSUPPORTED("esamvv08qn005uqko6caft2u"); // b0.LL.y = b0.UR.y - GD_ranksep(agraphof(n))/2; +UNSUPPORTED("3f26r03ydc7aq52vcqpgxawgy"); // b.LL.x = ND_coord(n).x + ND_rw(n) + (2-2); +UNSUPPORTED("74mnpbjmyubjppjur4ngy4t5u"); // b.LL.y = b0.UR.y; +UNSUPPORTED("a6wnwn2mc878a2wacqkmdefx7"); // b.UR.y = ND_coord(n).y + (ND_ht(n)/2); +UNSUPPORTED("bqk56pohk8hpgn91lv4m2zkv0"); // b.UR.x += 1; +UNSUPPORTED("2f8usay82b128dq0sk4aqzw3h"); // endp->boxes[0] = b0; +UNSUPPORTED("2diqdwueoy5oizl5kmbz6uyi8"); // endp->boxes[1] = b; +UNSUPPORTED("93chrd1duv0atudbvr439u7t4"); // endp->boxn = 2; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("8yftboq798vpnzuxkx6yuea18"); // b.UR.y = MAX(b.UR.y,P->start.p.y); +UNSUPPORTED("at4jfrag6jtwm7rxu8p4p8d46"); // endp->boxes[0] = b; +UNSUPPORTED("ev1muhahxwb1cntbhsb3c9aid"); // endp->boxn = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8pyl2559euuaxrntsyzj1ve8w"); // P->start.p.y -= 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bn3pwhefgp4zdatx3g60lj0ou"); // else if (side & (1<<3)) { +UNSUPPORTED("bihp3ojpe2nsmh297nosihedn"); // b.UR.x = P->start.p.x+1; +UNSUPPORTED("6h0f9z7wklonn021j8ijd3b8m"); // if (endp->sidemask == (1<<2)) { +UNSUPPORTED("a6wnwn2mc878a2wacqkmdefx7"); // b.UR.y = ND_coord(n).y + (ND_ht(n)/2); +UNSUPPORTED("afqhibyplfg1fftlkny8jq78t"); // b.LL.y = P->start.p.y-1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("1f4u492auf4ku7ik170e86iy3"); // b.LL.y = ND_coord(n).y - (ND_ht(n)/2); +UNSUPPORTED("4no3qn8v4vx6rk2in60hgr8w6"); // b.UR.y = P->start.p.y+1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("celmm9njwdxhpvd56zon98hrr"); // P->start.p.x -= 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("cysdxceleujmu3rckrhibxaqd"); // b.LL.x = P->start.p.x; +UNSUPPORTED("6h0f9z7wklonn021j8ijd3b8m"); // if (endp->sidemask == (1<<2)) { +UNSUPPORTED("a6wnwn2mc878a2wacqkmdefx7"); // b.UR.y = ND_coord(n).y + (ND_ht(n)/2); +UNSUPPORTED("5oh26jb6vz012qke7865hz5h7"); // b.LL.y = P->start.p.y; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("1f4u492auf4ku7ik170e86iy3"); // b.LL.y = ND_coord(n).y - (ND_ht(n)/2); +UNSUPPORTED("4no3qn8v4vx6rk2in60hgr8w6"); // b.UR.y = P->start.p.y+1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("1n8o29xgguq4cce4rf04o5rke"); // P->start.p.x += 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4gatpb3u0rq9nikm6rjtejp85"); // for (orig = e; ED_edge_type(orig) != 0; orig = ED_to_orig(orig)); +UNSUPPORTED("askl6l2rq6b2bznfxj7ydvz5t"); // if (n == agtail(orig)) +UNSUPPORTED("dk49xvmby8949ngdmft4sgrox"); // ED_tail_port(orig).clip = 0; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("2tw6ymudedo6qij3ux424ydsi"); // ED_head_port(orig).clip = 0; +UNSUPPORTED("8jqn3kj2hrrlcifbw3x9sf6qu"); // endp->sidemask = side; +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; + } + if (et == 1) side = (1<<0); + else side = endp.getInt("sidemask"); /* for flat edges */ + if (pboxfn!=null + && (mask = (Integer) pboxfn.exe(n, ED_tail_port(e).amp(), side, endp.getArrayOfStruct("boxes").plus(0).getStruct().amp(), endp.getInt("boxn")))!=0) +UNSUPPORTED("ex9kjvshm19zbu9vqonk1avd8"); // endp->sidemask = mask; + else { + endp.getArrayOfStruct("boxes").plus(0).setStruct(endp.getStruct("nb")); + endp.setInt("boxn", 1); + switch (et) { + case 8: + /* moving the box UR.y by + 1 avoids colinearity between + port point and box that confuses Proutespline(). it's + a bug in Proutespline() but this is the easiest fix. */ +UNSUPPORTED("9rnob8jdqqdjwzanv53yxc47u"); // assert(0); /* at present, we don't use beginpath for selfedges */ +UNSUPPORTED("46vb5zg9vm9n0q21g53nj66v3"); // endp->boxes[0].UR.y = P->start.p.y - 1; +UNSUPPORTED("auefgwb39x5hzqqc9b1zgl239"); // endp->sidemask = (1<<0); + break; + case 2: + if (endp.getInt("sidemask") == (1<<2)) + endp.getArrayOfStruct("boxes").plus(0).getStruct().getStruct("LL").setDouble("y", P.getStruct("start").getStruct("p").getDouble("y")); + else + endp.getArrayOfStruct("boxes").plus(0).getStruct().getStruct("UR").setDouble("y", P.getStruct("start").getStruct("p").getDouble("y")); + break; + case 1: + endp.getArrayOfStruct("boxes").plus(0).getStruct().getStruct("UR").setDouble("y", P.getStruct("start").getStruct("p").getDouble("y")); + endp.setInt("sidemask", (1<<0)); + P.getStruct("start").getStruct("p").setDouble("y", P.getStruct("start").getStruct("p").getDouble("y") - 1); + break; + } + } +} finally { +LEAVING("7pc43ifcw5g56449d101qf590","beginpath"); +} +} + + + + +//3 79dr5om55xs3n5lgai1sf58vu +// void endpath(path * P, edge_t * e, int et, pathend_t * endp, boolean merge) +public static void endpath(path P, Agedge_s e, int et, pathend_t endp, boolean merge) { +ENTERING("79dr5om55xs3n5lgai1sf58vu","endpath"); +try { + int side, mask; + Agnode_s n; + CFunction pboxfn; + n = aghead(e); + if (ED_head_port(e).getBoolean("dyna")) +UNSUPPORTED("9brhx94sjudx3jtzrnwa60x8"); // ED_head_port(e) = resolvePort(aghead(e), agtail(e), &ED_head_port(e)); + if (ND_shape(n)!=null) + pboxfn = (CFunction) ND_shape(n).getPtr("fns").getPtr("pboxfn"); + else + pboxfn = null; + P.getStruct("end").setStruct("p", add_pointf(ND_coord(n), ED_head_port(e).getStruct("p"))); + if (merge) { +UNSUPPORTED("cproejwusj67kuugolh6tbkwz"); // /*P->end.theta = M_PI / 2; */ +UNSUPPORTED("65vhfvz1d1tub3f85tdsgg2g5"); // P->end.theta = conc_slope(aghead(e)) + M_PI; +UNSUPPORTED("du4hwt6pjf3bmkvowssm7b0uo"); // assert(P->end.theta < 2 * M_PI); +UNSUPPORTED("2w0c22i5xgcch77xd9jg104nw"); // P->end.constrained = NOT(0); + } else { + if (ED_head_port(e).getBoolean("constrained")) { + P.getStruct("end").setDouble("theta", ED_head_port(e).getDouble("theta")); + P.getStruct("end").setInt("constrained", 1); + } else + P.getStruct("end").setInt("constrained", 0); + } + endp.setStruct("np", P.getStruct("end").getStruct("p")); + if ((et == 1) && (ND_node_type(n) == 0) && ((side = ED_head_port(e).getInt("side"))!=0)) { +UNSUPPORTED("a7lrhlfwr0y475aqjk6abhb3b"); // edge_t* orig; +UNSUPPORTED("ew7nyfe712nsiphifeztwxfop"); // boxf b0, b = endp->nb; +UNSUPPORTED("ait3wtnnvt134z2k87lvhq4ek"); // if (side & (1<<2)) { +UNSUPPORTED("1r4lctdj9z1ivlz3uqpcj1yzf"); // endp->sidemask = (1<<2); +UNSUPPORTED("cropv6s2edu614uzt364nepfo"); // b.LL.y = MIN(b.LL.y,P->end.p.y); +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("c91rvfjkunah0qffpuo47eshu"); // P->end.p.y += 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3s4re3z7asydnnotdylt94t1d"); // else if (side & (1<<0)) { +UNSUPPORTED("auefgwb39x5hzqqc9b1zgl239"); // endp->sidemask = (1<<0); +UNSUPPORTED("4tlqpclu7x0szo1rszndqau0d"); // if (P->end.p.x < ND_coord(n).x) { /* go left */ +UNSUPPORTED("80ypgtfgfrgq8j7whkaueouh5"); // b0.LL.x = b.LL.x-1; +UNSUPPORTED("4ikkdf5k4ubwp4ou51rth0q41"); // /* b0.UR.y = ND_coord(n).y - HT2(n); */ +UNSUPPORTED("baysgwgvs09ywaufn74gq6m0a"); // b0.UR.y = P->end.p.y; +UNSUPPORTED("5xsapgq04e1hslq2835500q6k"); // b0.UR.x = b.UR.x; +UNSUPPORTED("7ut9yqcephghob5a3yo8af293"); // b0.LL.y = ND_coord(n).y - (ND_ht(n)/2) - GD_ranksep(agraphof(n))/2; +UNSUPPORTED("6p2nw1nh0qwn5ro3dltmd6w6c"); // b.UR.x = ND_coord(n).x - ND_lw(n) - (2-2); +UNSUPPORTED("74mnpbjmyubjppjur4ngy4t5u"); // b.LL.y = b0.UR.y; +UNSUPPORTED("a6wnwn2mc878a2wacqkmdefx7"); // b.UR.y = ND_coord(n).y + (ND_ht(n)/2); +UNSUPPORTED("w9wsmby4dawn9npux1jrd9gl"); // b.LL.x -= 1; +UNSUPPORTED("2f8usay82b128dq0sk4aqzw3h"); // endp->boxes[0] = b0; +UNSUPPORTED("2diqdwueoy5oizl5kmbz6uyi8"); // endp->boxes[1] = b; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("7sk0msbospwpwupzwpu8v87qt"); // b0.LL.x = b.LL.x; +UNSUPPORTED("baysgwgvs09ywaufn74gq6m0a"); // b0.UR.y = P->end.p.y; +UNSUPPORTED("4ikkdf5k4ubwp4ou51rth0q41"); // /* b0.UR.y = ND_coord(n).y - HT2(n); */ +UNSUPPORTED("4e5ydpfmxn1wuhnp78arn3f9x"); // b0.UR.x = b.UR.x+1; +UNSUPPORTED("7ut9yqcephghob5a3yo8af293"); // b0.LL.y = ND_coord(n).y - (ND_ht(n)/2) - GD_ranksep(agraphof(n))/2; +UNSUPPORTED("3f26r03ydc7aq52vcqpgxawgy"); // b.LL.x = ND_coord(n).x + ND_rw(n) + (2-2); +UNSUPPORTED("74mnpbjmyubjppjur4ngy4t5u"); // b.LL.y = b0.UR.y; +UNSUPPORTED("a6wnwn2mc878a2wacqkmdefx7"); // b.UR.y = ND_coord(n).y + (ND_ht(n)/2); +UNSUPPORTED("bqk56pohk8hpgn91lv4m2zkv0"); // b.UR.x += 1; +UNSUPPORTED("2f8usay82b128dq0sk4aqzw3h"); // endp->boxes[0] = b0; +UNSUPPORTED("2diqdwueoy5oizl5kmbz6uyi8"); // endp->boxes[1] = b; +UNSUPPORTED("196ta4n5nsqizd83y6oo7z8a2"); // } +UNSUPPORTED("4v7mmisc358r5tpq14qp4dx0f"); // endp->boxn = 2; +UNSUPPORTED("6kjd8mut2dn2xv1k1zr63qp0s"); // P->end.p.y -= 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bn3pwhefgp4zdatx3g60lj0ou"); // else if (side & (1<<3)) { +UNSUPPORTED("2lmjkw07sr4x9a3xxrcb3yj07"); // endp->sidemask = (1<<3); +UNSUPPORTED("4e2bsroer72trfy5dl5k8f5s8"); // b.UR.x = P->end.p.x; +UNSUPPORTED("3rsswd4vcybmrbhoqt0aldqds"); // b.UR.y = ND_coord(n).y + (ND_ht(n)/2); +UNSUPPORTED("7m86tfoixpamdnl1ywyaz9uzy"); // b.LL.y = P->end.p.y; +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("5j92wv3nt0b7hnlf3ktengoom"); // P->end.p.x -= 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("8kgb5ztvt4yv5h0nezr0q6n3z"); // endp->sidemask = (1<<1); +UNSUPPORTED("2upa323l3o3equsdn1v13nj0q"); // b.LL.x = P->end.p.x; +UNSUPPORTED("3rsswd4vcybmrbhoqt0aldqds"); // b.UR.y = ND_coord(n).y + (ND_ht(n)/2); +UNSUPPORTED("7m86tfoixpamdnl1ywyaz9uzy"); // b.LL.y = P->end.p.y; +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("44vy3z49e2oo6613r15tcgn8h"); // P->end.p.x += 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4gatpb3u0rq9nikm6rjtejp85"); // for (orig = e; ED_edge_type(orig) != 0; orig = ED_to_orig(orig)); +UNSUPPORTED("e8cujr3gqet8mj2n5h5jfogm1"); // if (n == aghead(orig)) +UNSUPPORTED("2tw6ymudedo6qij3ux424ydsi"); // ED_head_port(orig).clip = 0; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("dk49xvmby8949ngdmft4sgrox"); // ED_tail_port(orig).clip = 0; +UNSUPPORTED("8jqn3kj2hrrlcifbw3x9sf6qu"); // endp->sidemask = side; +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; + } + if ((et == 2) && ((side = ED_head_port(e).getInt("side"))!=0)) { +UNSUPPORTED("ew7nyfe712nsiphifeztwxfop"); // boxf b0, b = endp->nb; +UNSUPPORTED("a7lrhlfwr0y475aqjk6abhb3b"); // edge_t* orig; +UNSUPPORTED("ait3wtnnvt134z2k87lvhq4ek"); // if (side & (1<<2)) { +UNSUPPORTED("cropv6s2edu614uzt364nepfo"); // b.LL.y = MIN(b.LL.y,P->end.p.y); +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("c91rvfjkunah0qffpuo47eshu"); // P->end.p.y += 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3s4re3z7asydnnotdylt94t1d"); // else if (side & (1<<0)) { +UNSUPPORTED("6h0f9z7wklonn021j8ijd3b8m"); // if (endp->sidemask == (1<<2)) { +UNSUPPORTED("80ypgtfgfrgq8j7whkaueouh5"); // b0.LL.x = b.LL.x-1; +UNSUPPORTED("7vjialx9rln6cj2y0ni5nc2gi"); // b0.UR.y = ND_coord(n).y - (ND_ht(n)/2); +UNSUPPORTED("e403abqgqxgss6h01127ebeil"); // b0.UR.x = P->end.p.x; +UNSUPPORTED("esamvv08qn005uqko6caft2u"); // b0.LL.y = b0.UR.y - GD_ranksep(agraphof(n))/2; +UNSUPPORTED("29fp8dba1xqbt5ire1m3oad6c"); // b.UR.x = ND_coord(n).x - ND_lw(n) - 2; +UNSUPPORTED("74mnpbjmyubjppjur4ngy4t5u"); // b.LL.y = b0.UR.y; +UNSUPPORTED("a6wnwn2mc878a2wacqkmdefx7"); // b.UR.y = ND_coord(n).y + (ND_ht(n)/2); +UNSUPPORTED("w9wsmby4dawn9npux1jrd9gl"); // b.LL.x -= 1; +UNSUPPORTED("2f8usay82b128dq0sk4aqzw3h"); // endp->boxes[0] = b0; +UNSUPPORTED("2diqdwueoy5oizl5kmbz6uyi8"); // endp->boxes[1] = b; +UNSUPPORTED("93chrd1duv0atudbvr439u7t4"); // endp->boxn = 2; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("8yftboq798vpnzuxkx6yuea18"); // b.UR.y = MAX(b.UR.y,P->start.p.y); +UNSUPPORTED("at4jfrag6jtwm7rxu8p4p8d46"); // endp->boxes[0] = b; +UNSUPPORTED("ev1muhahxwb1cntbhsb3c9aid"); // endp->boxn = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6kjd8mut2dn2xv1k1zr63qp0s"); // P->end.p.y -= 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bn3pwhefgp4zdatx3g60lj0ou"); // else if (side & (1<<3)) { +UNSUPPORTED("46ayak01kn7y7w3yaoreb6w1l"); // b.UR.x = P->end.p.x+1; +UNSUPPORTED("6h0f9z7wklonn021j8ijd3b8m"); // if (endp->sidemask == (1<<2)) { +UNSUPPORTED("a6wnwn2mc878a2wacqkmdefx7"); // b.UR.y = ND_coord(n).y + (ND_ht(n)/2); +UNSUPPORTED("a3bb90cu4chg4dv4xfsx8r8ek"); // b.LL.y = P->end.p.y-1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("1f4u492auf4ku7ik170e86iy3"); // b.LL.y = ND_coord(n).y - (ND_ht(n)/2); +UNSUPPORTED("20q189zumqwpltcod94td3f"); // b.UR.y = P->end.p.y+1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("5j92wv3nt0b7hnlf3ktengoom"); // P->end.p.x -= 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("9tx1p6meq5zi4ce5essw11ikg"); // b.LL.x = P->end.p.x-1; +UNSUPPORTED("6h0f9z7wklonn021j8ijd3b8m"); // if (endp->sidemask == (1<<2)) { +UNSUPPORTED("a6wnwn2mc878a2wacqkmdefx7"); // b.UR.y = ND_coord(n).y + (ND_ht(n)/2); +UNSUPPORTED("a3bb90cu4chg4dv4xfsx8r8ek"); // b.LL.y = P->end.p.y-1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("1f4u492auf4ku7ik170e86iy3"); // b.LL.y = ND_coord(n).y - (ND_ht(n)/2); +UNSUPPORTED("181rv2y41gamwqbbccj0rnb57"); // b.UR.y = P->end.p.y; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("esv3oinoscr6zht0kce49o450"); // endp->boxes[0] = b; +UNSUPPORTED("3hptqfzzuz4dlsc8ejk1ynxt9"); // endp->boxn = 1; +UNSUPPORTED("44vy3z49e2oo6613r15tcgn8h"); // P->end.p.x += 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4gatpb3u0rq9nikm6rjtejp85"); // for (orig = e; ED_edge_type(orig) != 0; orig = ED_to_orig(orig)); +UNSUPPORTED("e8cujr3gqet8mj2n5h5jfogm1"); // if (n == aghead(orig)) +UNSUPPORTED("2tw6ymudedo6qij3ux424ydsi"); // ED_head_port(orig).clip = 0; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("dk49xvmby8949ngdmft4sgrox"); // ED_tail_port(orig).clip = 0; +UNSUPPORTED("8jqn3kj2hrrlcifbw3x9sf6qu"); // endp->sidemask = side; +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; + } + if (et == 1) side = (1<<2); + else side = endp.getInt("sidemask"); /* for flat edges */ + if (pboxfn!=null + && (mask = (Integer) pboxfn.exe(n, ED_head_port(e).amp(), side, endp.getArrayOfStruct("boxes").plus(0).getStruct().amp(), endp.getInt("boxn")))!=0) + endp.setInt("sidemask", mask); + else { + endp.getArrayOfStruct("boxes").plus(0).setStruct(endp.getStruct("nb")); + endp.setInt("boxn", 1); + switch (et) { + case 8: + /* offset of -1 is symmetric w.r.t. beginpath() + * FIXME: is any of this right? what if self-edge + * doesn't connect from BOTTOM to TOP??? */ +UNSUPPORTED("bhkhf4i9pvxtxyka4sobszg33"); // assert(0); /* at present, we don't use endpath for selfedges */ +UNSUPPORTED("db6vmvnse8bawy8qwct7l24u8"); // endp->boxes[0].LL.y = P->end.p.y + 1; +UNSUPPORTED("1r4lctdj9z1ivlz3uqpcj1yzf"); // endp->sidemask = (1<<2); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; + case 2: + if (endp.getInt("sidemask") == (1<<2)) + endp.getArrayOfStruct("boxes").plus(0).getStruct().getStruct("LL").setDouble("y", P.getStruct("end").getStruct("p").getDouble("y")); + else + endp.getArrayOfStruct("boxes").plus(0).getStruct().getStruct("UR").setDouble("y", P.getStruct("end").getStruct("p").getDouble("y")); + break; + case 1: + endp.getArrayOfStruct("boxes").plus(0).getStruct().getStruct("LL").setDouble("y", P.getStruct("end").getStruct("p").getDouble("y")); + endp.setInt("sidemask", (1<<2)); + P.getStruct("end").getStruct("p").setDouble("y", P.getStruct("end").getStruct("p").getDouble("y") +1); + break; + } + } +} finally { +LEAVING("79dr5om55xs3n5lgai1sf58vu","endpath"); +} +} + + + + +//3 3g7alj6eirl5b2hlhluiqvaax +// static int convert_sides_to_points(int tail_side, int head_side) +public static int convert_sides_to_points(int tail_side, int head_side) { +int vertices[] = new int[] {12,4,6,2,3,1,9,8}; //the cumulative side value of each node point +int i, tail_i, head_i; +int pair_a[][] = new int[][] { //array of possible node point pairs +{11,12,13,14,15,16,17,18}, +{21,22,23,24,25,26,27,28}, +{31,32,33,34,35,36,37,38}, +{41,42,43,44,45,46,47,48}, +{51,52,53,54,55,56,57,58}, +{61,62,63,64,65,66,67,68}, +{71,72,73,74,75,76,77,78}, +{81,82,83,84,85,86,87,88} +}; +ENTERING("3g7alj6eirl5b2hlhluiqvaax","convert_sides_to_points"); +try { + tail_i = head_i = -1; + for(i=0;i< 8; i++){ + if(head_side == vertices[i]){ + head_i = i; + break; + } + } + for(i=0;i< 8; i++){ + if(tail_side == vertices[i]){ + tail_i = i; + break; + } + } +if( tail_i < 0 || head_i < 0) + return 0; +else + return pair_a[tail_i][head_i]; +} finally { +LEAVING("3g7alj6eirl5b2hlhluiqvaax","convert_sides_to_points"); +} +} + + + + +//3 7l37y1w97mt6n5pd9x5dzgwud +// static void selfBottom (edge_t* edges[], int ind, int cnt, double sizex, double stepy, splineInfo* sinfo) +public static Object selfBottom(Object... arg) { +UNSUPPORTED("5mldqfen59kshqgaknayjc5ox"); // static void selfBottom (edge_t* edges[], int ind, int cnt, +UNSUPPORTED("e0472i5ngodtv68y0hdhq1azu"); // double sizex, double stepy, splineInfo* sinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a2vzpy4tpc2fpmuf12nhtfca"); // pointf tp, hp, np; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("2131r3ibxv7drmcz6f2j5d9c2"); // int i, sgn, point_pair; +UNSUPPORTED("de1bz9yfc9w49kc4vy1ge2ltd"); // double hy, ty, stepx, dx, dy, width, height; +UNSUPPORTED("cutkizwxyuykhmayeb60m22av"); // pointf points[1000]; +UNSUPPORTED("79ig2xj5nogd41esx7798m82t"); // int pointn; +UNSUPPORTED("e3wy3x07xdsusfbgecfcqg5lj"); // e = edges[ind]; +UNSUPPORTED("dul1axf6kjslblufm4omk5k32"); // n = agtail(e); +UNSUPPORTED("43yzlf5354g6qlugyzpmr745t"); // stepx = (sizex / 2.) / cnt; +UNSUPPORTED("brakcbw9hvzlljogqwzlhgb0v"); // stepx = MAX(stepx,2.); +UNSUPPORTED("dko3xt785e372nj0fiocjfas"); // pointn = 0; +UNSUPPORTED("dqazhjgevh1spyg3xzwb3bcks"); // np = ND_coord(n); +UNSUPPORTED("ehf9o80lfi02no07wz207kyp6"); // tp = ED_tail_port(e).p; +UNSUPPORTED("f18822xrptoagri7001gamxwh"); // tp.x += np.x; +UNSUPPORTED("pcmp8bdd8677mjvvef7kfh5y"); // tp.y += np.y; +UNSUPPORTED("b4mfdkjjk3n78ssy4h80g5lc6"); // hp = ED_head_port(e).p; +UNSUPPORTED("e7rhhgc42h5z6kvvnkz6wfn0r"); // hp.x += np.x; +UNSUPPORTED("bisu3qji6rw3wu3srdv8vhrxb"); // hp.y += np.y; +UNSUPPORTED("2c8kmvidaqx92wd2mq1ys6753"); // if (tp.x >= hp.x) sgn = 1; +UNSUPPORTED("cvln1r5ffbp1z1sq0y6ago4og"); // else sgn = -1; +UNSUPPORTED("7squuk10wt6xrbp24obpx41bw"); // dy = ND_ht(n)/2., dx = 0.; +UNSUPPORTED("7sojr831wk2u8c86xerkjyojd"); // // certain adjustments are required for some point_pairs in order to improve the +UNSUPPORTED("byuachd2fjte06s7xwnbmxlcx"); // // display of the edge path between them +UNSUPPORTED("eje36stfd9p7ulgo4qk6gjwvx"); // point_pair = convert_sides_to_points(ED_tail_port(e).side,ED_head_port(e).side); +UNSUPPORTED("2qmvjd6iwnaqwop679caoaxnn"); // switch(point_pair){ +UNSUPPORTED("8c31t4u50f9yjnlb8ii84ts3w"); // case 67: sgn = -sgn; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("5vhsnixpf0pg2oz10ps2valyn"); // default: +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5n29oadzd6emvd2fwjisx6ovk"); // ty = MIN(dy, 3*(tp.y + dy - np.y)); +UNSUPPORTED("dly5hufg66dgb6zn5lqcerae1"); // hy = MIN(dy, 3*(hp.y + dy - np.y)); +UNSUPPORTED("1psokm6w9e7qw7fm2g1cayuk7"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("a0u9ggni4r8gikqyyxf6wgaa5"); // e = edges[ind++]; +UNSUPPORTED("bgymnp4yekw8tzr70cnzzn9ez"); // dy += stepy, ty += stepy, hy += stepy, dx += sgn*stepx; +UNSUPPORTED("8tkxpvgpxpilkes33cj73nr8o"); // pointn = 0; +UNSUPPORTED("2j93ajzz3i9adm0syj177su98"); // points[pointn++] = tp; +UNSUPPORTED("15uyub8ah85dmbdmc0lqgjqb"); // points[pointn++] = pointfof(tp.x + dx, tp.y - ty / 3); +UNSUPPORTED("bh0lpazk6gpagl57bydccqkv4"); // points[pointn++] = pointfof(tp.x + dx, np.y - dy); +UNSUPPORTED("381vppahpairjja0hahm7lktb"); // points[pointn++] = pointfof((tp.x+hp.x)/2, np.y - dy); +UNSUPPORTED("n63wd0j09ndu0hiaxhwx7izb"); // points[pointn++] = pointfof(hp.x - dx, np.y - dy); +UNSUPPORTED("dzdgwa3zfedg3kys9pd8mp5qm"); // points[pointn++] = pointfof(hp.x - dx, hp.y - hy / 3); +UNSUPPORTED("6t0sueo9zyoccfzqit4c7pvcy"); // points[pointn++] = hp; +UNSUPPORTED("6nhnbriaxn7zi0ab1z8bkbzd"); // if (ED_label(e)) { +UNSUPPORTED("a7ea1ybpt7lv8fk1pc1outbs5"); // if (GD_flip(agraphof(agtail(e)))) { +UNSUPPORTED("7d83ym7h1stime4wbmifcx809"); // width = ED_label(e)->dimen.y; +UNSUPPORTED("44m5sni7g3n6fnk6ca57u9dc2"); // height = ED_label(e)->dimen.x; +UNSUPPORTED("s8koz5x85ytpnff1o94rlxqy"); // } else { +UNSUPPORTED("66vu2joy64r1yrkvp3oolz1ws"); // width = ED_label(e)->dimen.x; +UNSUPPORTED("d6bobo1f6gxkxa2fffvmn41g0"); // height = ED_label(e)->dimen.y; +UNSUPPORTED("klxoy56t7b20wxnwqm0qoofz"); // } +UNSUPPORTED("cot4bdvsbrav4yex2yesffgd9"); // ED_label(e)->pos.y = ND_coord(n).y - dy - height / 2.0; +UNSUPPORTED("9wg1yftg90g8jld2m2p5m31ro"); // ED_label(e)->pos.x = ND_coord(n).x; +UNSUPPORTED("7efx4yevu8176mmuqjtk4bfss"); // ED_label(e)->set = NOT(0); +UNSUPPORTED("13o3f1bpjm731ee8hpa8d3f5y"); // if (height > stepy) +UNSUPPORTED("alt1jvhdhimr8iltoxg7dycq1"); // dy += height - stepy; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("5fvid2bi7fy5jv5dyttfprpzj"); // clip_and_install(e, aghead(e), points, pointn, sinfo); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2thwh4ase1jdq8ghhf0oqyql5 +// static void selfTop (edge_t* edges[], int ind, int cnt, double sizex, double stepy, splineInfo* sinfo) +public static Object selfTop(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("32kq3vfpd1msv3v0nv0uqavzh"); // selfTop (edge_t* edges[], int ind, int cnt, double sizex, double stepy, +UNSUPPORTED("2t4o7k97lw32u08cs5j96r7if"); // splineInfo* sinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2131r3ibxv7drmcz6f2j5d9c2"); // int i, sgn, point_pair; +UNSUPPORTED("1suoh1r8nnndqo9txafuch8az"); // double hy, ty, stepx, dx, dy, width, height; +UNSUPPORTED("7a2vzpy4tpc2fpmuf12nhtfca"); // pointf tp, hp, np; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("cutkizwxyuykhmayeb60m22av"); // pointf points[1000]; +UNSUPPORTED("79ig2xj5nogd41esx7798m82t"); // int pointn; +UNSUPPORTED("e3wy3x07xdsusfbgecfcqg5lj"); // e = edges[ind]; +UNSUPPORTED("dul1axf6kjslblufm4omk5k32"); // n = agtail(e); +UNSUPPORTED("43yzlf5354g6qlugyzpmr745t"); // stepx = (sizex / 2.) / cnt; +UNSUPPORTED("7199vb689fs8rdn6j40wpw2py"); // stepx = MAX(stepx, 2.); +UNSUPPORTED("dko3xt785e372nj0fiocjfas"); // pointn = 0; +UNSUPPORTED("dqazhjgevh1spyg3xzwb3bcks"); // np = ND_coord(n); +UNSUPPORTED("ehf9o80lfi02no07wz207kyp6"); // tp = ED_tail_port(e).p; +UNSUPPORTED("f18822xrptoagri7001gamxwh"); // tp.x += np.x; +UNSUPPORTED("pcmp8bdd8677mjvvef7kfh5y"); // tp.y += np.y; +UNSUPPORTED("b4mfdkjjk3n78ssy4h80g5lc6"); // hp = ED_head_port(e).p; +UNSUPPORTED("e7rhhgc42h5z6kvvnkz6wfn0r"); // hp.x += np.x; +UNSUPPORTED("bisu3qji6rw3wu3srdv8vhrxb"); // hp.y += np.y; +UNSUPPORTED("2c8kmvidaqx92wd2mq1ys6753"); // if (tp.x >= hp.x) sgn = 1; +UNSUPPORTED("cvln1r5ffbp1z1sq0y6ago4og"); // else sgn = -1; +UNSUPPORTED("7squuk10wt6xrbp24obpx41bw"); // dy = ND_ht(n)/2., dx = 0.; +UNSUPPORTED("7sojr831wk2u8c86xerkjyojd"); // // certain adjustments are required for some point_pairs in order to improve the +UNSUPPORTED("byuachd2fjte06s7xwnbmxlcx"); // // display of the edge path between them +UNSUPPORTED("eje36stfd9p7ulgo4qk6gjwvx"); // point_pair = convert_sides_to_points(ED_tail_port(e).side,ED_head_port(e).side); +UNSUPPORTED("2qmvjd6iwnaqwop679caoaxnn"); // switch(point_pair){ +UNSUPPORTED("6mjalqxwnjw8e27c2ioujowul"); // case 15: +UNSUPPORTED("5vvzajt4nlp9tr9qagb46uzw0"); // dx = sgn*(ND_rw(n) - (hp.x-np.x) + stepx); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("av3gl91zikst7e3hby657df3z"); // case 38: +UNSUPPORTED("d2wzrbnbuinus07v39wtrzg6k"); // dx = sgn*(ND_lw(n)-(np.x-hp.x) + stepx); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("dk2te1ff65z24g7yge6td5w1h"); // case 41: +UNSUPPORTED("54zp7hq4t1477ra0toi6nfc3s"); // dx = sgn*(ND_rw(n)-(tp.x-np.x) + stepx); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("eyz8046vmrhfd05uo35ud2o26"); // case 48: +UNSUPPORTED("54zp7hq4t1477ra0toi6nfc3s"); // dx = sgn*(ND_rw(n)-(tp.x-np.x) + stepx); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("90hjo1ph35lg8jy4yywzro3nf"); // case 14: +UNSUPPORTED("23d0sltghssogk5wk9024lh41"); // case 37: +UNSUPPORTED("3dvppfwsy4t6h54uecu5i9hry"); // case 47: +UNSUPPORTED("95n009mwo78h9zg1mx5yc3j7l"); // case 51: +UNSUPPORTED("8ytmvd73zq9qu5c4ku4jcap4a"); // case 57: +UNSUPPORTED("1tbpkq9m2taj7n3fj63cocjyn"); // case 58: +UNSUPPORTED("u36w11cbjvnwnr2a9aukmfop"); // dx = sgn*((((ND_lw(n)-(np.x-tp.x)) + (ND_rw(n)-(hp.x-np.x)))/3.)); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("a92kp8x7ej800lliiwzfuobem"); // case 73: +UNSUPPORTED("c22dsvqh8h2a9v76t3u9dzyi4"); // dx = sgn*(ND_lw(n)-(np.x-tp.x) + stepx); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("3ijo2dao8lyum56ai3jujbmap"); // case 83: +UNSUPPORTED("bjovxk89tmb4rsuvw09nszp4c"); // dx = sgn*(ND_lw(n)-(np.x-tp.x)); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("f4rvirpst5ft3uksqp3okyjcf"); // case 84: +UNSUPPORTED("1i3gur9btuj2u5s8ybbgmd87y"); // dx = sgn*((((ND_lw(n)-(np.x-tp.x)) + (ND_rw(n)-(hp.x-np.x)))/2.) + stepx); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("72fiv7451m2qnkzbfjcwv7pgx"); // case 74: +UNSUPPORTED("1yel8f4unntut6w7bgdhgsvq1"); // case 75: +UNSUPPORTED("93kdallci9a743giye6pd0y0f"); // case 85: +UNSUPPORTED("919n1grj4s92nolxlmoqx4qqw"); // dx = sgn*((((ND_lw(n)-(np.x-tp.x)) + (ND_rw(n)-(hp.x-np.x)))/2.) + 2*stepx); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7jtwt2insvwb55tafkqx3boot"); // ty = MIN(dy, 3*(np.y + dy - tp.y)); +UNSUPPORTED("7vwwj5yxukw3e1k0twakhhgg3"); // hy = MIN(dy, 3*(np.y + dy - hp.y)); +UNSUPPORTED("1psokm6w9e7qw7fm2g1cayuk7"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("a0u9ggni4r8gikqyyxf6wgaa5"); // e = edges[ind++]; +UNSUPPORTED("bgymnp4yekw8tzr70cnzzn9ez"); // dy += stepy, ty += stepy, hy += stepy, dx += sgn*stepx; +UNSUPPORTED("8tkxpvgpxpilkes33cj73nr8o"); // pointn = 0; +UNSUPPORTED("2j93ajzz3i9adm0syj177su98"); // points[pointn++] = tp; +UNSUPPORTED("810s5qsu6it4vef0j2l5blqdm"); // points[pointn++] = pointfof(tp.x + dx, tp.y + ty / 3); +UNSUPPORTED("r9y9vrfhtcn0ly9mxyipodbo"); // points[pointn++] = pointfof(tp.x + dx, np.y + dy); +UNSUPPORTED("576fgxddv6rfxjwqc4ziex02m"); // points[pointn++] = pointfof((tp.x+hp.x)/2, np.y + dy); +UNSUPPORTED("7wozarouo08hg5qnrcqmlrzv1"); // points[pointn++] = pointfof(hp.x - dx, np.y + dy); +UNSUPPORTED("6z0fdvc1cxk34nwjps2o0vy9e"); // points[pointn++] = pointfof(hp.x - dx, hp.y + hy / 3); +UNSUPPORTED("6t0sueo9zyoccfzqit4c7pvcy"); // points[pointn++] = hp; +UNSUPPORTED("6nhnbriaxn7zi0ab1z8bkbzd"); // if (ED_label(e)) { +UNSUPPORTED("95cz173vhlho6qxwqiafjznd6"); // if (GD_flip(agraphof(agtail(e)))) { +UNSUPPORTED("5tq797micincut6x05g6eokxk"); // width = ED_label(e)->dimen.y; +UNSUPPORTED("2wpl3ja2mlxynjamnyblux5j"); // height = ED_label(e)->dimen.x; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("5oxmxe34kl5iq4p27e8r7k11y"); // width = ED_label(e)->dimen.x; +UNSUPPORTED("4eunm5kqgzuzko60febalr1gg"); // height = ED_label(e)->dimen.y; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8ygvy3gas9hrwh99z44j4vw14"); // ED_label(e)->pos.y = ND_coord(n).y + dy + height / 2.0; +UNSUPPORTED("89l2ovblsu6gnx97clo8ev1yk"); // ED_label(e)->pos.x = ND_coord(n).x; +UNSUPPORTED("3tkba5lhpnujfu8lcz8lewsyn"); // ED_label(e)->set = NOT(0); +UNSUPPORTED("df1lpvk1x9s2nna4dimpv5ixv"); // if (height > stepy) +UNSUPPORTED("anykz2jqihvnza16edujzsmnm"); // dy += height - stepy; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("iyaed8bkc8xb16vcnxvc7d6s"); // clip_and_install(e, aghead(e), points, pointn, sinfo); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b9185t6i77ez1ac587ul8ndnc"); // return; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3sr8gvj4141qql0v12lb89cyt +// static void selfRight (edge_t* edges[], int ind, int cnt, double stepx, double sizey, splineInfo* sinfo) +public static void selfRight(__ptr__ edges, int ind, int cnt, double stepx, double sizey, splineInfo sinfo) { +ENTERING("3sr8gvj4141qql0v12lb89cyt","selfRight"); +try { + int i, sgn, point_pair; + double hx, tx, stepy, dx, dy, width, height; + final __struct__ tp = __struct__.from(pointf.class), hp = __struct__.from(pointf.class), np = __struct__.from(pointf.class); + Agnode_s n; + Agedge_s e; + final __array_of_struct__ points = __array_of_struct__.malloc(pointf.class, 1000); + int pointn; + e = (Agedge_s) edges.plus(ind).getPtr(); + n = agtail(e); + stepy = (sizey / 2.) / cnt; + stepy = MAX(stepy, 2.); + pointn = 0; + np.____(ND_coord(n)); + tp.____(ED_tail_port(e).getStruct("p")); + tp.setDouble("x", tp.getDouble("x") + np.getDouble("x")); + tp.setDouble("y", tp.getDouble("y") + np.getDouble("y")); + hp.____(ED_head_port(e).getStruct("p")); + hp.setDouble("x", hp.getDouble("x") + np.getDouble("x")); + hp.setDouble("y", hp.getDouble("y") + np.getDouble("y")); + if (tp.getDouble("y") >= hp.getDouble("y")) sgn = 1; + else sgn = -1; + dx = ND_rw(n); + dy = 0; + // certain adjustments are required for some point_pairs in order to improve the + // display of the edge path between them + point_pair = convert_sides_to_points(ED_tail_port(e).getInt("side"),ED_head_port(e).getInt("side")); + switch(point_pair){ + case 32: + case 65: if(tp.getDouble("y") == hp.getDouble("y")) + sgn = -sgn; + break; + default: + break; + } + tx = MIN(dx, 3*(np.getDouble("x") + dx - tp.getDouble("x"))); + hx = MIN(dx, 3*(np.getDouble("x") + dx - hp.getDouble("x"))); + for (i = 0; i < cnt; i++) { + e = (Agedge_s) edges.plus(ind++).getPtr(); + dx += stepx; tx += stepx; hx += stepx; dy += sgn*stepy; + pointn = 0; + points.plus(pointn++).setStruct(tp); + points.plus(pointn++).setStruct(pointfof(tp.getDouble("x") + tx / 3, tp.getDouble("y") + dy)); + points.plus(pointn++).setStruct(pointfof(np.getDouble("x") + dx, tp.getDouble("y") + dy)); + points.plus(pointn++).setStruct(pointfof(np.getDouble("x") + dx, (tp.getDouble("y")+hp.getDouble("y"))/2)); + points.plus(pointn++).setStruct(pointfof(np.getDouble("x") + dx, hp.getDouble("y") - dy)); + points.plus(pointn++).setStruct(pointfof(hp.getDouble("x") + hx / 3, hp.getDouble("y") - dy)); + points.plus(pointn++).setStruct(hp); + if (ED_label(e)!=null) { + if (GD_flip(agraphof(agtail(e)))!=0) { + width = ED_label(e).getStruct("dimen").getDouble("y"); + height = ED_label(e).getStruct("dimen").getDouble("x"); + } else { + width = ED_label(e).getStruct("dimen").getDouble("x"); + height = ED_label(e).getStruct("dimen").getDouble("y"); + } + ED_label(e).getStruct("pos").setDouble("x", ND_coord(n).getDouble("x") + dx + width / 2.0); + ED_label(e).getStruct("pos").setDouble("y", ND_coord(n).getDouble("y")); + ED_label(e).setBoolean("set", NOT(false)); + if (width > stepx) + dx += width - stepx; + } + clip_and_install(e, aghead(e), points.asPtr(), pointn, sinfo); + } + return; +} finally { +LEAVING("3sr8gvj4141qql0v12lb89cyt","selfRight"); +} +} + + + + +//3 pb3pqqgfs6pzscxz9g4ip66b +// static void selfLeft (edge_t* edges[], int ind, int cnt, double stepx, double sizey, splineInfo* sinfo) +public static Object selfLeft(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("e1xon7wncs6szxkut7r3ylg8a"); // selfLeft (edge_t* edges[], int ind, int cnt, double stepx, double sizey, +UNSUPPORTED("304grcrgelbk1tnep5avkaylv"); // splineInfo* sinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5kzmtbtnct9t7sugzyg0t1505"); // int i, sgn,point_pair; +UNSUPPORTED("9oe5un4g42lfm6s5sruhajt5n"); // double hx, tx, stepy, dx, dy, width, height; +UNSUPPORTED("7a2vzpy4tpc2fpmuf12nhtfca"); // pointf tp, hp, np; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("cutkizwxyuykhmayeb60m22av"); // pointf points[1000]; +UNSUPPORTED("79ig2xj5nogd41esx7798m82t"); // int pointn; +UNSUPPORTED("e3wy3x07xdsusfbgecfcqg5lj"); // e = edges[ind]; +UNSUPPORTED("dul1axf6kjslblufm4omk5k32"); // n = agtail(e); +UNSUPPORTED("2biq5cfn3eflyc9vcakp8z40j"); // stepy = (sizey / 2.) / cnt; +UNSUPPORTED("ag6m3hxmkt2fwxfbd09gtse84"); // stepy = MAX(stepy,2.); +UNSUPPORTED("dko3xt785e372nj0fiocjfas"); // pointn = 0; +UNSUPPORTED("dqazhjgevh1spyg3xzwb3bcks"); // np = ND_coord(n); +UNSUPPORTED("ehf9o80lfi02no07wz207kyp6"); // tp = ED_tail_port(e).p; +UNSUPPORTED("f18822xrptoagri7001gamxwh"); // tp.x += np.x; +UNSUPPORTED("pcmp8bdd8677mjvvef7kfh5y"); // tp.y += np.y; +UNSUPPORTED("b4mfdkjjk3n78ssy4h80g5lc6"); // hp = ED_head_port(e).p; +UNSUPPORTED("e7rhhgc42h5z6kvvnkz6wfn0r"); // hp.x += np.x; +UNSUPPORTED("bisu3qji6rw3wu3srdv8vhrxb"); // hp.y += np.y; +UNSUPPORTED("9pq7cc11wf5inm1gtl9nubola"); // if (tp.y >= hp.y) sgn = 1; +UNSUPPORTED("cvln1r5ffbp1z1sq0y6ago4og"); // else sgn = -1; +UNSUPPORTED("5t4m5gzysfvdd5gfy1snezlv1"); // dx = ND_lw(n), dy = 0.; +UNSUPPORTED("7sojr831wk2u8c86xerkjyojd"); // // certain adjustments are required for some point_pairs in order to improve the +UNSUPPORTED("byuachd2fjte06s7xwnbmxlcx"); // // display of the edge path between them +UNSUPPORTED("eje36stfd9p7ulgo4qk6gjwvx"); // point_pair = convert_sides_to_points(ED_tail_port(e).side,ED_head_port(e).side); +UNSUPPORTED("2qmvjd6iwnaqwop679caoaxnn"); // switch(point_pair){ +UNSUPPORTED("1ztn6qfhzw55cdorxgbs8mvaw"); // case 12: +UNSUPPORTED("5nakmzm2t38aw7gowxf3597ny"); // case 67: +UNSUPPORTED("bvy8vwcvwtkz9nqaq8173x6bh"); // if(tp.y == hp.y) +UNSUPPORTED("cffqbosum7o1l5iposy2evrfl"); // sgn = -sgn; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("5vhsnixpf0pg2oz10ps2valyn"); // default: +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("p2znjsd0rhcqyou2d4tcp4m3"); // tx = MIN(dx, 3*(tp.x + dx - np.x)); +UNSUPPORTED("9fc36i8mydvpx5fb9s7oomgg9"); // hx = MIN(dx, 3*(hp.x + dx - np.x)); +UNSUPPORTED("1psokm6w9e7qw7fm2g1cayuk7"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("a0u9ggni4r8gikqyyxf6wgaa5"); // e = edges[ind++]; +UNSUPPORTED("corxl7j4p1epemy3mlhnxuh7f"); // dx += stepx, tx += stepx, hx += stepx, dy += sgn*stepy; +UNSUPPORTED("8tkxpvgpxpilkes33cj73nr8o"); // pointn = 0; +UNSUPPORTED("2j93ajzz3i9adm0syj177su98"); // points[pointn++] = tp; +UNSUPPORTED("1d3rn5phdxf8hhlmh3b3wp7lh"); // points[pointn++] = pointfof(tp.x - tx / 3, tp.y + dy); +UNSUPPORTED("2wxmjkn0pmrslgogz96iftqs0"); // points[pointn++] = pointfof(np.x - dx, tp.y + dy); +UNSUPPORTED("clocavnhfvokhhthg9cujkqa0"); // points[pointn++] = pointfof(np.x - dx, (tp.y+hp.y)/2); +UNSUPPORTED("6tz9mqs3ff68mo5r1xmq2zyc4"); // points[pointn++] = pointfof(np.x - dx, hp.y - dy); +UNSUPPORTED("a6oh2uv36d620c50ery1vvmd7"); // points[pointn++] = pointfof(hp.x - hx / 3, hp.y - dy); +UNSUPPORTED("6t0sueo9zyoccfzqit4c7pvcy"); // points[pointn++] = hp; +UNSUPPORTED("6nhnbriaxn7zi0ab1z8bkbzd"); // if (ED_label(e)) { +UNSUPPORTED("7ewy2tc2zfli5k6dghdnao8tw"); // if (GD_flip(agraphof(agtail(e)))) { +UNSUPPORTED("7d83ym7h1stime4wbmifcx809"); // width = ED_label(e)->dimen.y; +UNSUPPORTED("44m5sni7g3n6fnk6ca57u9dc2"); // height = ED_label(e)->dimen.x; +UNSUPPORTED("s8koz5x85ytpnff1o94rlxqy"); // } else { +UNSUPPORTED("66vu2joy64r1yrkvp3oolz1ws"); // width = ED_label(e)->dimen.x; +UNSUPPORTED("d6bobo1f6gxkxa2fffvmn41g0"); // height = ED_label(e)->dimen.y; +UNSUPPORTED("klxoy56t7b20wxnwqm0qoofz"); // } +UNSUPPORTED("e7au5qlazz8i26lvbl9c5k657"); // ED_label(e)->pos.x = ND_coord(n).x - dx - width / 2.0; +UNSUPPORTED("dfo4prcp2cafipoufh8bql0id"); // ED_label(e)->pos.y = ND_coord(n).y; +UNSUPPORTED("7efx4yevu8176mmuqjtk4bfss"); // ED_label(e)->set = NOT(0); +UNSUPPORTED("8ivpntotxg2rgw585hkdgsixh"); // if (width > stepx) +UNSUPPORTED("34ujzn0u4l056cgabsn09ncw8"); // dx += width - stepx; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("5fvid2bi7fy5jv5dyttfprpzj"); // clip_and_install(e, aghead(e), points, pointn, sinfo); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 678whq05s481ertx02jloteu3 +// int selfRightSpace (edge_t* e) +public static int selfRightSpace(Agedge_s e) { +ENTERING("678whq05s481ertx02jloteu3","selfRightSpace"); +try { + int sw=0; + double label_width; + textlabel_t l = ED_label(e); + if ((N(ED_tail_port(e).getBoolean("defined")) && N(ED_head_port(e).getBoolean("defined"))) || + ( + N(ED_tail_port(e).getInt("side") & (1<<3)) && + N(ED_head_port(e).getInt("side") & (1<<3)) && + ((ED_tail_port(e).getInt("side") != ED_head_port(e).getInt("side")) || + (N(ED_tail_port(e).getInt("side") & ((1<<2)|(1<<0))))) + )) { + sw = 18; + if (l!=null) { + label_width = GD_flip(agraphof(aghead(e)))!=0 ? l.getStruct("dimen").getDouble("y") : l.getStruct("dimen").getDouble("x"); + sw += label_width; + } + } + else sw = 0; + return sw; +} finally { +LEAVING("678whq05s481ertx02jloteu3","selfRightSpace"); +} +} + + + + +//3 bt3fwgprixbc5rceeewozdqr9 +// void makeSelfEdge(path * P, edge_t * edges[], int ind, int cnt, double sizex, double sizey, splineInfo * sinfo) +public static void makeSelfEdge(path P, __ptr__ edges, int ind, int cnt, double sizex, double sizey, splineInfo sinfo) { +ENTERING("bt3fwgprixbc5rceeewozdqr9","makeSelfEdge"); +try { + Agedge_s e; + e = (Agedge_s) edges.plus(ind).getPtr(); + /* self edge without ports or + * self edge with all ports inside, on the right, or at most 1 on top + * and at most 1 on bottom + */ + if ((N(ED_tail_port(e).getBoolean("defined")) && N(ED_head_port(e).getBoolean("defined"))) || + ( + N(ED_tail_port(e).getInt("side") & (1<<3)) && + N(ED_head_port(e).getInt("side") & (1<<3)) && + ((ED_tail_port(e).getInt("side") != ED_head_port(e).getInt("side")) || + (N(ED_tail_port(e).getInt("side") & ((1<<2)|(1<<0))))))) { + selfRight(edges, ind, cnt, sizex, sizey, sinfo); + } + /* self edge with port on left side */ + else if ((ED_tail_port(e).getInt("side") & (1<<3))!=0 || (ED_head_port(e).getInt("side") & (1<<3))!=0) { + /* handle L-R specially */ + if ((ED_tail_port(e).getInt("side") & (1<<1))!=0 || (ED_head_port(e).getInt("side") & (1<<1))!=0) { + selfTop(edges, ind, cnt, sizex, sizey, sinfo); + } + else { + selfLeft(edges, ind, cnt, sizex, sizey, sinfo); + } + } + /* self edge with both ports on top side */ + else if ((ED_tail_port(e).getInt("side") & (1<<2))!=0) { + selfTop(edges, ind, cnt, sizex, sizey, sinfo); + } + else if ((ED_tail_port(e).getInt("side") & (1<<0))!=0) { + selfBottom(edges, ind, cnt, sizex, sizey, sinfo); + } + else assert(false); +} finally { +LEAVING("bt3fwgprixbc5rceeewozdqr9","makeSelfEdge"); +} +} + + + + +//3 9br31owvzkmo6hpgi5o3yqs6u +// void makePortLabels(edge_t * e) +public static Object makePortLabels(Object... arg) { +UNSUPPORTED("7h8uwyqfmkrxlwe199ha5685e"); // void makePortLabels(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8592v0z3b9lcnaz6kmep9i7fb"); // /* Only use this if labelangle or labeldistance is set for the edge; +UNSUPPORTED("60d7j1whu0efnsich22dgcgct"); // * otherwise, handle with external labels. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("exadv83959uk532g2sef35k8d"); // if (!E_labelangle && !E_labeldistance) return; +UNSUPPORTED("ex1c7eojs5nx6t10t191xuzvj"); // if (ED_head_label(e) && !ED_head_label(e)->set) { +UNSUPPORTED("1hjdl17xghg2aygn0psu0p2oq"); // if (place_portlabel(e, NOT(0))) +UNSUPPORTED("3rgc9w83agr2ba9s9muyubzqz"); // updateBB(agraphof(agtail(e)), ED_head_label(e)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("twsg91c027nxls3s64jxn4cy"); // if (ED_tail_label(e) && !ED_tail_label(e)->set) { +UNSUPPORTED("bu5i9ibw82s14f8vgd3nz2s46"); // if (place_portlabel(e, 0)) +UNSUPPORTED("80z5y1fe03judv18cnzdcbyww"); // updateBB(agraphof(agtail(e)), ED_tail_label(e)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7wyn51o9k6u7joaq9k18boffh +// static void endPoints(splines * spl, pointf * p, pointf * q) +public static Object endPoints(Object... arg) { +UNSUPPORTED("5r4ewx4i6zia04hwqvonnvcg9"); // static void endPoints(splines * spl, pointf * p, pointf * q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("37thdceezsvepe7tlyfatrbcw"); // bezier bz; +UNSUPPORTED("2hacb9fdt2n4mkiveluxkiu2e"); // bz = spl->list[0]; +UNSUPPORTED("dtt0q54ov71fji9i2ae24aeyc"); // if (bz.sflag) { +UNSUPPORTED("4wazlko0bxmzxoobqacij1btk"); // *p = bz.sp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("3gwxodchk1jdid7jbltvxhnaf"); // *p = bz.list[0]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6pj4gaguml8ocln5h92kpqk94"); // bz = spl->list[spl->size - 1]; +UNSUPPORTED("4o7tep38o3pxavxbzw15khp2r"); // if (bz.eflag) { +UNSUPPORTED("78u9nvs8u7rxturidz5nf8hn4"); // *q = bz.ep; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("3kkyg7t050mn59a1ekp0f0lzj"); // *q = bz.list[bz.size - 1]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4v696uonfsqf7e6iafx99ovoj +// static pointf polylineMidpoint (splines* spl, pointf* pp, pointf* pq) +public static Object polylineMidpoint(Object... arg) { +UNSUPPORTED("2zzd7mrm2u540dwuyzehozffj"); // static pointf +UNSUPPORTED("2h8atayvi2acugdlg0pai43ib"); // polylineMidpoint (splines* spl, pointf* pp, pointf* pq) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("37thdceezsvepe7tlyfatrbcw"); // bezier bz; +UNSUPPORTED("88fnnm6x9xzbtbojfr24qfqgy"); // int i, j, k; +UNSUPPORTED("ejxa966mpm7v3o59230r3vwjz"); // double d, dist = 0; +UNSUPPORTED("8nmqlo5bwer36kl8mp1gtz5bf"); // pointf pf, qf, mf; +UNSUPPORTED("4z4l1zu33m72iirxmuhdg36iw"); // for (i = 0; i < spl->size; i++) { +UNSUPPORTED("ewoeh3d6otc2rgpaxuzwm38x7"); // bz = spl->list[i]; +UNSUPPORTED("99as77xwpn23hvyqfywj6oi2g"); // for (j = 0, k=3; k < bz.size; j+=3,k+=3) { +UNSUPPORTED("2gecyey0ki14xgfwd8lmdmexb"); // pf = bz.list[j]; +UNSUPPORTED("apnzdgopwxw4q1fw7qtnifypo"); // qf = bz.list[k]; +UNSUPPORTED("829tfml4q5a7brr6x4nun2cuc"); // dist += DIST(pf, qf); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("em4an03o2ddsawe30b5l50d8k"); // dist /= 2; +UNSUPPORTED("4z4l1zu33m72iirxmuhdg36iw"); // for (i = 0; i < spl->size; i++) { +UNSUPPORTED("ewoeh3d6otc2rgpaxuzwm38x7"); // bz = spl->list[i]; +UNSUPPORTED("99as77xwpn23hvyqfywj6oi2g"); // for (j = 0, k=3; k < bz.size; j+=3,k+=3) { +UNSUPPORTED("2gecyey0ki14xgfwd8lmdmexb"); // pf = bz.list[j]; +UNSUPPORTED("apnzdgopwxw4q1fw7qtnifypo"); // qf = bz.list[k]; +UNSUPPORTED("9efld0l6jtgzu237fqme6vlih"); // d = DIST(pf,qf); +UNSUPPORTED("uolmj8tx8ul9z4zxcs6xt03h"); // if (d >= dist) { +UNSUPPORTED("5pequ7xrb4otn4nmoo4xzbppn"); // *pp = pf; +UNSUPPORTED("6y0c82r8tb4tcxzx62aes05hf"); // *pq = qf; +UNSUPPORTED("43wwwo6k1nlge8ou0cyuxjsws"); // mf.x = ((qf.x*dist) + (pf.x*(d-dist)))/d; +UNSUPPORTED("7rndnud8ft5vs2kx1fjwhymtm"); // mf.y = ((qf.y*dist) + (pf.y*(d-dist)))/d; +UNSUPPORTED("9t6wng08fgzru4uhripezjnkg"); // return mf; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("9pooqnj2v1895ue6jlimhrxgr"); // dist -= d; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8kllckmfkh8837qtc8hwoh74j"); // assert (0); /* should never get here */ +UNSUPPORTED("cs6egh6pje9pqxb748vbj2q51"); // return mf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8hpmwzlqbj1nii32zubbe9hru +// pointf edgeMidpoint (graph_t* g, edge_t * e) +public static Object edgeMidpoint(Object... arg) { +UNSUPPORTED("ddgobb6cu0307nl6cc2hm7jak"); // pointf +UNSUPPORTED("8ww957bkesrmzkmuchx2pvhb2"); // edgeMidpoint (graph_t* g, edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cx1drb9eui5nioe70lvmlgm79"); // int et = (GD_flags(g) & (7 << 1)); +UNSUPPORTED("2auwjymmiryq94uc6spzynrvi"); // pointf d, spf, p, q; +UNSUPPORTED("bpo1twbinspgdzr5k3fmntxtg"); // endPoints(ED_spl(e), &p, &q); +UNSUPPORTED("4yaabujbmowa3lyxk4205gkpv"); // if (APPROXEQPT(p, q, MILLIPOINT)) { /* degenerate spline */ +UNSUPPORTED("7i8m5mpfnv7m9uqxh015zfdaj"); // spf = p; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bpe21xennpxofkh2a8ce70n8r"); // else if ((et == (5 << 1)) || (et == (2 << 1))) { +UNSUPPORTED("6frrlsqvrym5x5bivjwo3rkg4"); // d.x = (q.x + p.x) / 2.; +UNSUPPORTED("5qa6kgh9e0trsgfkiwhzxtc5n"); // d.y = (p.y + q.y) / 2.; +UNSUPPORTED("dn0aho2lzwtnxuk3v45gd81fo"); // spf = dotneato_closest(ED_spl(e), d); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2flg4ooa026ob187pje77te28"); // else { /* ET_PLINE, ET_ORTHO or ET_LINE */ +UNSUPPORTED("6he3hi05vusuthrchn4enk7o6"); // spf = polylineMidpoint (ED_spl(e), &p, &q); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("56kh0ww24ygwjntzmm9q6wec3"); // return spf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3msxu7tuq8q3m0sqtthq29flm +// void addEdgeLabels(graph_t* g, edge_t * e, pointf rp, pointf rq) +public static Object addEdgeLabels(Object... arg) { +UNSUPPORTED("ldo41gaevp1jys68pnbguk3z"); // void addEdgeLabels(graph_t* g, edge_t * e, pointf rp, pointf rq) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("as6htoa1c0fv7e0v9a7h98p5h"); // makePortLabels(e); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 54bdrq95zwpwmxf86ln5eom99 +// int place_portlabel(edge_t * e, boolean head_p) +public static Object place_portlabel(Object... arg) { +UNSUPPORTED("bnu1zhg128g969c502d6btzbs"); // int place_portlabel(edge_t * e, boolean head_p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2l3ombz9fng1wmxwdgkjokemn"); // textlabel_t *l; +UNSUPPORTED("6tl9mepc2bett364jduh2q4mf"); // splines *spl; +UNSUPPORTED("3hs99atzl1l857khumt6ycmbh"); // bezier *bez; +UNSUPPORTED("7dsz4anx5o7u9qq3lzzknay2f"); // double dist, angle; +UNSUPPORTED("65fz6d9e07e4c95zyum8bt633"); // pointf c[4], pe, pf; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("8l8zbwbivibv6xgq0pxgwvq9n"); // char* la; +UNSUPPORTED("e5b3d0nivpt5k8dkz65otlbpz"); // char* ld; +UNSUPPORTED("2kp0srstg11z7hyemmxoo4e52"); // if (ED_edge_type(e) == 6) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("chxgak0231km4auc7310y9pk8"); // /* add label here only if labelangle or labeldistance is defined; else, use external label */ +UNSUPPORTED("t397yg339z571sgse05vtq1w"); // if ((!E_labelangle || (*(la = agxget(e,E_labelangle)) == '\0')) && +UNSUPPORTED("8uvkv1d0qbznkf3xuozvc7qzf"); // (!E_labeldistance || (*(ld = agxget(e,E_labeldistance)) == '\0'))) { +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("tm1vvm5oplen4vv9y7lqo6xf"); // l = head_p ? ED_head_label(e) : ED_tail_label(e); +UNSUPPORTED("3gtifp1yui3al397n1i9akefw"); // if ((spl = getsplinepoints(e)) == NULL) return 0; +UNSUPPORTED("2ia4wsp0i4dpjelpvoiytkbi7"); // if (!head_p) { +UNSUPPORTED("7ahdd5aq924y6mwot89trjyra"); // bez = &spl->list[0]; +UNSUPPORTED("efd82pfo3nyqu51w9264hj3kl"); // if (bez->sflag) { +UNSUPPORTED("47udgszrx6pdd38kn2sweuhwh"); // pe = bez->sp; +UNSUPPORTED("e5nb3zmvz6fp6xqkor9i4yf0"); // pf = bez->list[0]; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("61yxghl3kwjuso7s1p0n7t1n2"); // pe = bez->list[0]; +UNSUPPORTED("ced0y25bh0hjo9cnppppf7h2x"); // for (i = 0; i < 4; i++) +UNSUPPORTED("1y5d5t4i694a5f0j7ee6a7z2y"); // c[i] = bez->list[i]; +UNSUPPORTED("92m7eg16654p0n58cwr883aqa"); // pf = Bezier(c, 3, 0.1, NULL, NULL); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("4s7tr233odbsuhmyc1ksdmnjs"); // bez = &spl->list[spl->size - 1]; +UNSUPPORTED("5d2ntg5cm9vsqeat2p88bel1l"); // if (bez->eflag) { +UNSUPPORTED("er4lbg8eptuapclxc4o7sqvam"); // pe = bez->ep; +UNSUPPORTED("91krm055d5o8geih7ot17sp97"); // pf = bez->list[bez->size - 1]; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("70e7dqxnvd7agtj92eve28u4r"); // pe = bez->list[bez->size - 1]; +UNSUPPORTED("ced0y25bh0hjo9cnppppf7h2x"); // for (i = 0; i < 4; i++) +UNSUPPORTED("7v8xa8y04nup6v5cwzsdkqs2z"); // c[i] = bez->list[bez->size - 4 + i]; +UNSUPPORTED("8pbi2gjbe0mg3ghpfkt7kwpm9"); // pf = Bezier(c, 3, 0.9, NULL, NULL); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("14iusq03pj0vtm5mkr4ny0o1y"); // angle = atan2(pf.y - pe.y, pf.x - pe.x) + +UNSUPPORTED("2jyhji8yxpqj21l189dgr1wcz"); // RADIANS(late_double(e, E_labelangle, -25, -180.0)); +UNSUPPORTED("5ibf647cm3agxlbdzq27a2sed"); // dist = 10 * late_double(e, E_labeldistance, 1.0, 0.0); +UNSUPPORTED("etyjtm4uw7xa47lhonum31o4r"); // l->pos.x = pe.x + dist * cos(angle); +UNSUPPORTED("b28y7lmoordi3n69md9mfl7k9"); // l->pos.y = pe.y + dist * sin(angle); +UNSUPPORTED("5nziiydj5nf07y5wrg22fpu86"); // l->set = NOT(0); +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2tbz9tbkzx8os72qiyhgnby67 +// splines *getsplinepoints(edge_t * e) +public static splines getsplinepoints(Agedge_s e) { +ENTERING("2tbz9tbkzx8os72qiyhgnby67","getsplinepoints"); +try { + Agedge_s le; + splines sp; + for (le = e; N(sp = ED_spl(le)) && ED_edge_type(le) != 0; + le = ED_to_orig(le)); + if (sp == null) +UNSUPPORTED("8oq6gemxrb07hmmw0gtux7os5"); // agerr (AGERR, "getsplinepoints: no spline points available for edge (%s,%s)\n", +// UNSUPPORTED("bw49w8tpkv5eblsevof4kelef"); // agnameof(agtail(e)), agnameof(aghead(e))); + return sp; +} finally { +LEAVING("2tbz9tbkzx8os72qiyhgnby67","getsplinepoints"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/strcasecmp__c.java plantuml-8039/src/gen/lib/common/strcasecmp__c.java --- plantuml-8024/src/gen/lib/common/strcasecmp__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/strcasecmp__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtils.tolower; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import smetana.core.CString; + +public class strcasecmp__c { + + +//3 22n1uekxezky6gx3cn22ansew +// int strcasecmp(const char *s1, const char *s2) +public static int strcasecmp(CString s1, CString s2) { +ENTERING("22n1uekxezky6gx3cn22ansew","strcasecmp"); +try { + while ((s1.charAt(0) != '\0') + && (tolower(s1.charAt(0)) == + tolower(s2.charAt(0)))) { + s1=s1.plus(1); + s2=s2.plus(1); + } + return tolower(s1.charAt(0)) - tolower(s2.charAt(0)); +} finally { +LEAVING("22n1uekxezky6gx3cn22ansew","strcasecmp"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/strncasecmp__c.java plantuml-8039/src/gen/lib/common/strncasecmp__c.java --- plantuml-8024/src/gen/lib/common/strncasecmp__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/strncasecmp__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,69 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.Macro.UNSUPPORTED; + +public class strncasecmp__c { + + +//3 6fpqvqq5eso7d44vai4lz77jd +// int strncasecmp(const char *s1, const char *s2, unsigned int n) +public static Object strncasecmp(Object... arg) { +UNSUPPORTED("41sf831iel4ggk6nxgerc7lrz"); // int strncasecmp(const char *s1, const char *s2, unsigned int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f0os7tzuki1s9mllsml3zu2fd"); // if (n == 0) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("18ggb7ihy0resf5qhplc7cqol"); // while ((n-- != 0) +UNSUPPORTED("7tdf84gz2hakxs756j3v0w4iv"); // && (tolower(*(unsigned char *) s1) == +UNSUPPORTED("co97u0db3a8mz1pp77hkxq0h3"); // tolower(*(unsigned char *) s2))) { +UNSUPPORTED("2jr0cuzm9i39xecgxx0ih0ez4"); // if (n == 0 || *s1 == '\0' || *s2 == '\0') +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("2hh1h5gydepd3ut3g43bzn51g"); // s1++; +UNSUPPORTED("7x8zh0pm8zj83pbc2d812jz90"); // s2++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1jrt0skm3a5djo3vfej4kwffc"); // return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/taper__c.java plantuml-8039/src/gen/lib/common/taper__c.java --- plantuml-8024/src/gen/lib/common/taper__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/taper__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,572 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.Macro.UNSUPPORTED; + +public class taper__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 ds76bidhz8tjxkw6b8aksdvxr +// static double currentmiterlimit = 10.0 + + + + +//3 37hx3k37anj8r9mjvso4soefw +// static void addto (stroke_t* p, double x, double y) +public static Object addto(Object... arg) { +UNSUPPORTED("cxe7x5zvdqcgljx0c0ct5kj7v"); // static void addto (stroke_t* p, double x, double y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2e0v7u9pfngzg11mt4kn3oudg"); // pointf pt; +UNSUPPORTED("dl6r4jnwf9tos614e6dxt54nu"); // if (p->nvertices >= p->flags) { +UNSUPPORTED("753dl99rp4kb8muohhjnrooiy"); // p->flags =+ 2000; +UNSUPPORTED("8gz00abtr7t59howsf2sghq4e"); // p->vertices = RALLOC(p->flags,p->vertices,pointf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4x5drjd0ygppv2k94igpp68s2"); // pt.x = x; +UNSUPPORTED("e8848u2pml7agv3q6uepcvysp"); // pt.y = y; +UNSUPPORTED("8cr9bk6he8smdllk7y3v8zfzg"); // p->vertices[p->nvertices++] = pt; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5rbblyx7l2j8x4skajzxqiwaf +// static void arcn (stroke_t* p, double x, double y, double r, double a1, double a2) +public static Object arcn(Object... arg) { +UNSUPPORTED("3jgc82gtsuvmp7kj1sfwtf5uv"); // static void arcn (stroke_t* p, double x, double y, double r, double a1, double a2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5xztbte7ezj843nawd7bvstet"); // double theta; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("82d861gclxfag8nh96t09jxtt"); // addto (p, x+r*cos(a1), y+r*sin(a1)); +UNSUPPORTED("bjdcjivokvek6ql06bw4soztx"); // if (r == 0) return; +UNSUPPORTED("4lal8jxrwkulr8zpl5stsxkrt"); // while (a2 > a1) a2 -= 2*3.14159265358979323846; +UNSUPPORTED("6jidndwc0ed5nlh89cj2ogu5b"); // theta = a1 - a2; +UNSUPPORTED("c9ot8wph8hmrzkm7yuzh7gt8s"); // while (theta > 2*3.14159265358979323846) theta -= 2*3.14159265358979323846; +UNSUPPORTED("eaugkmo55m6kizyb3gzzzgsr6"); // theta /= (20-1); +UNSUPPORTED("8moo8yolmkvvvfll1yxyb984o"); // for (i = 1; i < 20; i++) +UNSUPPORTED("7w1xen1rv3ve6ogqu7z1o825y"); // addto (p, x+r*cos(a1-i*theta), y+r*sin(a1-i*theta)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dw4giwrdkygo30ux7h9vqoni5 +// static double myatan (double y, double x) +public static Object myatan(Object... arg) { +UNSUPPORTED("51twbyur0a3vygc4lht7f3yal"); // static double myatan (double y, double x) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9gol5nm38e942ve1ebl1cjtlv"); // double v; +UNSUPPORTED("1z65rccjdrspxqoaj9qq5gs3q"); // if ((x == 0) && (y == 0)) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("adiklywz2pj2zlyyhhy8y244r"); // v = atan2 (y, x); +UNSUPPORTED("7jmcb4vgz4sib476up6ourg67"); // if (v >= 0) return v; +UNSUPPORTED("9xbltmwvt8lkbkt3dyvsyyrnc"); // else return (v + 2*3.14159265358979323846); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 apxlatl0g1hcl36pozo9rbijz +// static double mymod (double original, double modulus) +public static Object mymod(Object... arg) { +UNSUPPORTED("4lzz822wr9xogvbkxwq2p4djj"); // static double mymod (double original, double modulus) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9gol5nm38e942ve1ebl1cjtlv"); // double v; +UNSUPPORTED("7xrcngwvajpif9r69m54w64a2"); // if ((original < 0) || (original >= modulus)) { +UNSUPPORTED("6arshdtqlpzcb2x8apa4d2uvk"); // v = -floor(original/modulus); +UNSUPPORTED("9tazzesrwxgrdbwb9mkvvptt6"); // return ((v*modulus) + original); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ay7iouy5jqpu5z9qk1zp0duie"); // return original; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3vkg7w3ke5ee59segqqkwid17 +// static vararr_t* newArr (void) +public static Object newArr(Object... arg) { +UNSUPPORTED("6oi8ug46evw6d3gxiiqkxwu30"); // static vararr_t* +UNSUPPORTED("4vfh8nqxhykygdmg0ifzha82l"); // newArr (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("417k87o0rksmn0vw9xy6t0rfv"); // vararr_t* arr = (vararr_t*)zmalloc(sizeof(vararr_t)); +UNSUPPORTED("ar8weg5zgsytfffj61bksv2nt"); // arr->cnt = 0; +UNSUPPORTED("3nl7c4g3pzkgqswnj7h45v3ev"); // arr->sz = 2000; +UNSUPPORTED("bfzoantmopqk4byg4d7kmi770"); // arr->pts = (pathpoint*)zmalloc((2000)*sizeof(pathpoint)); +UNSUPPORTED("ccsfhshi4ig5z5la1ju1x9cnc"); // return arr; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 emanczpl0fr5cs8t1tgvka2ua +// static void insertArr (vararr_t* arr, pointf p, double l) +public static Object insertArr(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("8v67nvmyz4yxnupb82f54jk9g"); // insertArr (vararr_t* arr, pointf p, double l) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("kahpad7jk1hodmjj808l7dxq"); // if (arr->cnt >= arr->sz) { +UNSUPPORTED("7z6erqvmbkm9sl7i89ix3t8vr"); // arr->sz *= 2; +UNSUPPORTED("99tebe4imvyc4desymrfhljd7"); // arr->pts = RALLOC(arr->sz,arr->pts,pathpoint); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("br1mk0jed98vu2xl7x2nbcm7s"); // arr->pts[arr->cnt].x = p.x; +UNSUPPORTED("b1mytlmkf0s950zn7gs74k4br"); // arr->pts[arr->cnt].y = p.y; +UNSUPPORTED("4f7855jr9oovy4nov96abulma"); // arr->pts[arr->cnt++].lengthsofar = l; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 djrl04e0hnm9z4c9mygp3kdjn +// static void fixArr (vararr_t* arr) +public static Object fixArr(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("82xx4q98200g4y3mpp3pal2li"); // fixArr (vararr_t* arr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1dn0v5t5wbzicbbr44xf4fr0t"); // if (arr->sz > arr->cnt) +UNSUPPORTED("3vugzps0w4i557rlkmjan8p29"); // arr->pts = RALLOC(arr->cnt,arr->pts,pathpoint); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dkncnskx3m00uje3cgv41ijdt +// static void freeArr (vararr_t* arr) +public static Object freeArr(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("54u81fh95rxlpha3qyk9ehb7c"); // freeArr (vararr_t* arr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("arje9cheuqn10vynbk56ukz3e"); // free (arr->pts); +UNSUPPORTED("amydox92cqc7sp8tpkooy0l04"); // free (arr); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2vfkvxso8rdk46al15j439ju +// static double l2dist (pointf p0, pointf p1) +public static Object l2dist(Object... arg) { +UNSUPPORTED("1pz4c8sn3juc1g2fhezjnpmd2"); // static double l2dist (pointf p0, pointf p1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7eagovsf8qdkhnna5ttw91v6f"); // double delx = p0.x - p1.x; +UNSUPPORTED("63axa60soz954naurv3tp4093"); // double dely = p0.y - p1.y; +UNSUPPORTED("45ran48pxafslteww0nkr0oy9"); // return sqrt(delx*delx + dely*dely); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e8z50dab6k0lk9eru6tpkypvs +// static vararr_t* pathtolines (bezier* bez, double initwid) +public static Object pathtolines(Object... arg) { +UNSUPPORTED("4co20l0j4xlm1zv7bjwz9elqo"); // static vararr_t* pathtolines (bezier* bez, double initwid) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e94cztctbqq9ucd7n67ebdges"); // int i, j, step; +UNSUPPORTED("7qswbkiwqvj5o23nxscn2xzu3"); // double seglen, linelen = 0; +UNSUPPORTED("35ncr2n01679jn6xdx7lovbxg"); // vararr_t* arr = newArr(); +UNSUPPORTED("4rrhn7tnwemc4ar7wq0j96kev"); // pointf p0, p1, V[4]; +UNSUPPORTED("amd6cyu1q1eots437g00w8phx"); // int n = bez->size; +UNSUPPORTED("8ifezqgmvyo8z6wf0qcatnztd"); // pointf* A = bez->list; +UNSUPPORTED("eia2p2xwqw8mqn9dfliiurrr7"); // insertArr (arr, A[0], 0); +UNSUPPORTED("5mspz8cilygav1eq04djl7dlf"); // V[3] = A[0]; +UNSUPPORTED("3s0blwgctqa0ygs872bnu4kye"); // for (i = 0; i + 3 < n; i += 3) { +UNSUPPORTED("76skw6ffgj23bchkntqtrfcq7"); // V[0] = V[3]; +UNSUPPORTED("6lhc8cdnbz2nu3rhz57v5dmc1"); // for (j = 1; j <= 3; j++) +UNSUPPORTED("37fsp14ok0vo02898upd62lqp"); // V[j] = A[i + j]; +UNSUPPORTED("93nos5j5xytqabt45wbg4czil"); // p0 = V[0]; +UNSUPPORTED("335n0b4zult6fp5ic3mco2xkw"); // for (step = 1; step <= 20; step++) { +UNSUPPORTED("3rli8h9x69lwpiayu0y0gcaoo"); // p1 = Bezier(V, 3, (double) step / 20, (void *)0, (void *)0); +UNSUPPORTED("bxa5icduvxvktsbhy894m25nv"); // seglen = l2dist(p0, p1); +UNSUPPORTED("ci98ubpynj2u3wr63q30b8ddv"); // /* If initwid is large, this may never happen, so turn off. I assume this is to prevent +UNSUPPORTED("197sucveb3ncj66y77a2lmirt"); // * too man points or too small a movement. Perhaps a better test can be made, but for now +UNSUPPORTED("6aqlkwuxiu1jk3hcwywqtptfx"); // * we turn it off. +UNSUPPORTED("20m1lc1moer8x00tx9ceto0iw"); // */ +UNSUPPORTED("ad24rtknwvng9ifrqti3z182a"); // /* if (seglen > initwid/10) { */ +UNSUPPORTED("at53x9272ok7viedn52tfmxs9"); // linelen += seglen; +UNSUPPORTED("avlslqeh4lqlpuft9gvcskcgl"); // insertArr (arr, p1, linelen); +UNSUPPORTED("34uyo5h2d2cr1gy61yie7txem"); // /* } */ +UNSUPPORTED("c5vgyvjtvlhaldki4knu2mv25"); // p0 = p1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cqyo311cnd0n23sijmv5k82l1"); // fixArr (arr); +UNSUPPORTED("a1fj3h2aqltc9pidvjej8cxlf"); // /* printArr (arr, stderr); */ +UNSUPPORTED("ccsfhshi4ig5z5la1ju1x9cnc"); // return arr; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5tozuy492rmd5etcp98dlqt1y +// static void drawbevel(double x, double y, double lineout, int forward, double dir, double dir2, int linejoin, stroke_t* p) +public static Object drawbevel(Object... arg) { +UNSUPPORTED("2qy6fcr5q2i7bkdxvzzwrz570"); // static void drawbevel(double x, double y, double lineout, int forward, double dir, double dir2, int linejoin, stroke_t* p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5kph4zx0cyuidmd7x1cloedsi"); // double a, a1, a2; +UNSUPPORTED("d10oqu9tn28o7bzq83fvol955"); // if (forward) { +UNSUPPORTED("doysnlmgd1gow0os5wr5dxr0h"); // a1 = dir; +UNSUPPORTED("26ao9suwlr5unltg4xdoi9lj8"); // a2 = dir2; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("7vwlht2qk7zqu6kifv69i7bt5"); // a1 = dir2; +UNSUPPORTED("1r5bjzpwx8a3ne8vmn2nxcu52"); // a2 = dir; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6iax8tt6lrdck8goujhk00hs5"); // if (linejoin == 1) { +UNSUPPORTED("4ecnnr5gsgd13e2t8959l3t4f"); // a = a1 - a2; +UNSUPPORTED("3cwtamgprrppba01yard7r24n"); // if (a <= (3.14159265358979323846*(0.1)/180.0)) a += (3.14159265358979323846*(360)/180.0); +UNSUPPORTED("3eqjj4tj5gjh8o4bot8pslbjt"); // if (a < (3.14159265358979323846*(180)/180.0)) { +UNSUPPORTED("6f4cxd2owe51qjtpf2g2qgqa6"); // a1 = a + a2; +UNSUPPORTED("2w6rakjxhdggmu2moctdxufk7"); // arcn (p,x,y,lineout,a1,a2); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("eukl7uoeeewpjnm0z5fnpne38"); // addto(p,x + lineout*cos(a2),x + lineout*sin(a2)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("90zyfikk81hiajwc2bh8qzemz"); // addto(p,x + lineout*cos(a2),x + lineout*sin(a2)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 67jgk3x4cvr5g5sjkktz9hv3p +// stroke_t* taper (bezier* bez, radfunc_t radfunc, double initwid, int linejoin, int linecap) +public static Object taper(Object... arg) { +UNSUPPORTED("92uf8ujxvbmb009ow0y2ylc28"); // stroke_t* taper (bezier* bez, radfunc_t radfunc, double initwid, int linejoin, int linecap) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ebpurc5lht6x0pe8utbovvtkj"); // int i, l, n; +UNSUPPORTED("23t8ciiwx0m0urylqh0rdj45f"); // int pathcount, bevel; +UNSUPPORTED("aap39s7rrs42rpqb2wnwm1wac"); // double direction=0, direction_2=0; +UNSUPPORTED("9m9xu2pqfgvlgbaera9r5bslu"); // vararr_t* arr = pathtolines (bez, initwid); +UNSUPPORTED("3zu7p7qd5hfut9413f9nua2hp"); // pathpoint* pathpoints; +UNSUPPORTED("8400pubdu8b37sik81zlon17q"); // pathpoint cur_point, last_point, next_point; +UNSUPPORTED("e2l5uh8yuami4r4nsytajt49e"); // double x=0, y=0, dist; +UNSUPPORTED("z9q8a6k36ts2dcgz6b1uro9f"); // double nx, ny, ndir; +UNSUPPORTED("8rityqi74uqjkie4xszf2cz9s"); // double lx, ly, ldir; +UNSUPPORTED("exc47riargr44o24fo7dq38pf"); // double lineout=0, linerad=0, linelen=0; +UNSUPPORTED("dim9rt5u8affmln2pricl9c4z"); // double theta, phi; +UNSUPPORTED("bcjf9eyzp0bx4ace27dfpdpkr"); // stroke_t* p; +UNSUPPORTED("d43stoip4tcodq33ekkdc2o2d"); // pathcount = arr->cnt; +UNSUPPORTED("3ahpl1jbl65q1xb0s2y138jat"); // pathpoints = arr->pts; +UNSUPPORTED("78l26kaqv5ovbmh3w047sqyk4"); // linelen = pathpoints[pathcount-1].lengthsofar; +UNSUPPORTED("9uu6i69mrs8oofgu1thnoeh6s"); // /* determine miter and bevel points and directions */ +UNSUPPORTED("9p5eqhc57q744jswt4xn49de5"); // for (i = 0; i < pathcount; i++) { +UNSUPPORTED("ayjwp7w7mt18negnhgj0sbv59"); // l = mymod(i-1,pathcount); +UNSUPPORTED("32kv4nbdjmjk22m6e7utdtur6"); // n = mymod(i+1,pathcount); +UNSUPPORTED("6sepicym4lwb144speybi5pdm"); // cur_point = pathpoints[i]; +UNSUPPORTED("904onk81tz0s5sep0j6awgdpb"); // x = cur_point.x; +UNSUPPORTED("agtncoxbpms9wwt2ie97e47g4"); // y = cur_point.y; +UNSUPPORTED("1tbip84gxxj24fbdv8razb8ro"); // dist = cur_point.lengthsofar; +UNSUPPORTED("dyj2zbknry7a1x9ebao54p2px"); // next_point = pathpoints[n]; +UNSUPPORTED("4q9nd7a8vv14sz57dz10eti4i"); // nx = next_point.x; +UNSUPPORTED("34m4u9clc8vse172ui6o7luyc"); // ny = next_point.y; +UNSUPPORTED("el8hvvq8ozxy51a09pf45t6lm"); // ndir = myatan (ny-y, nx-x); +UNSUPPORTED("bp3rn8j3uu5wtuh39yht2wahr"); // last_point = pathpoints[l]; +UNSUPPORTED("31sunwg5bgedjub9bgaudnn2w"); // lx = last_point.x; +UNSUPPORTED("byfvt2pin8q8aaf4dw9kmo4f7"); // ly = last_point.y; +UNSUPPORTED("21ekhwbbxmjwb10twls4jflzo"); // ldir = myatan (ly-y, lx-x); +UNSUPPORTED("939fjejhngctxdmxbb5koezq6"); // bevel = 0; +UNSUPPORTED("75eizgg2kuilkz07e5n9331yb"); // direction_2 = 0; +UNSUPPORTED("9ibtpydrwwm9mu7z4303ioce6"); // /* effective line radius at this point */ +UNSUPPORTED("3b0kp7ld95slxpcdcfrm9g3f9"); // linerad = radfunc(dist, linelen, initwid); +UNSUPPORTED("17tfbs98ueshh3kxz0go6y28e"); // if ((i == 0) || (i == pathcount-1)) { +UNSUPPORTED("c8k6abykr9kofwd7w2eh7wets"); // lineout = linerad; +UNSUPPORTED("1zc3rhfsp70axt1st8ezyeucz"); // if (i == 0) { +UNSUPPORTED("xs2p6fe1nq08icjrthobqees"); // direction = ndir + (3.14159265358979323846*(90)/180.0); +UNSUPPORTED("6jhf2qmn6za8kr9w3auf58zfz"); // if (linecap == 2) { +UNSUPPORTED("7gc6ece8x7l8lvlz5qkpw4jzk"); // x -= cos(ndir)*lineout; +UNSUPPORTED("4oclmr8htzwxbgvwqgpotjkm0"); // y -= sin(ndir)*lineout; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("197wgta2k2gjicruujcxk2pxw"); // direction = ldir - (3.14159265358979323846*(90)/180.0); +UNSUPPORTED("6jhf2qmn6za8kr9w3auf58zfz"); // if (linecap == 2) { +UNSUPPORTED("52z8fu32uav0121o0kglvopfx"); // x -= cos(ldir)*lineout; +UNSUPPORTED("740qs0z13dreer6os7d1lx38v"); // y -= sin(ldir)*lineout; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ap3owlr7o0jc1ahvdhqcjdqiq"); // direction_2 = direction; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("3wc8w7ht9a70rdtiofq8deau6"); // theta = ndir-ldir; +UNSUPPORTED("bvc7byx1cwqmqnclfhzwox2k1"); // if (theta < 0) { +UNSUPPORTED("20oornlkswqxxeufgzx9ax2i3"); // theta += (3.14159265358979323846*(360)/180.0); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("e7t2i7fgzowrk1ntx7cwh49id"); // phi = (3.14159265358979323846*(90)/180.0)-(theta/2); +UNSUPPORTED("5dvmkcy9yqb2cc6rgmduj5b1c"); // /* actual distance to junction point */ +UNSUPPORTED("8upqw3s8k892ep29pvt7cbki"); // if (cos(phi) == 0) { +UNSUPPORTED("937cpmx6ugu8zzrr5aoylcqs6"); // lineout = 0; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("9c90i4xl89nygyndfayv4s29m"); // lineout = linerad/(cos(phi)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("c3j9s1x9zzozcg3mbp65k5itk"); // /* direction to junction point */ +UNSUPPORTED("252vewuhexhnz6vj97f65w9zx"); // direction = ndir+(3.14159265358979323846*(90)/180.0)+phi; +UNSUPPORTED("eobcnlcqwz1dximq5qhsa3i9s"); // if ((0 != linejoin) || (lineout > currentmiterlimit * linerad)) { +UNSUPPORTED("31r3m1070akd0cf4vzq3qfaro"); // bevel = (!(0)); +UNSUPPORTED("67w6qhlogp4d7uf18s35pj3wy"); // lineout = linerad; +UNSUPPORTED("42maeq9w00m591r12lzegzu8y"); // direction = mymod(ldir-(3.14159265358979323846*(90)/180.0),(3.14159265358979323846*(360)/180.0)); +UNSUPPORTED("avrmbklsobjff22asjbr5tgdf"); // direction_2 = mymod(ndir+(3.14159265358979323846*(90)/180.0),(3.14159265358979323846*(360)/180.0)); +UNSUPPORTED("asm15sr4a6kydzpud2plsmxs0"); // if (i == pathcount-1) { +UNSUPPORTED("eycx11cl9aeikjk5ekwb81go3"); // bevel = 0; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("dax7iiwvwzxlxymfmj1tjdihy"); // direction_2 = direction; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2q8u8grbi0h42y635qyr9v3qc"); // pathpoints[i].x = x; +UNSUPPORTED("bhlm48hrfr2mg0if526u3iguo"); // pathpoints[i].y = y; +UNSUPPORTED("957rrx269yqwuiikvpvy3ffpm"); // pathpoints[i].lengthsofar = dist; +UNSUPPORTED("3helgp0v0pqd09d8ax7jah2mb"); // pathpoints[i].type = 'l'; +UNSUPPORTED("3y6rmj5f7rvq2ebwgnvd1fgjq"); // pathpoints[i].dir = direction; +UNSUPPORTED("1dvyxwcwbtzahsn4h6caxv445"); // pathpoints[i].lout = lineout; +UNSUPPORTED("mmiievlimn4w1lptlh3llroz"); // pathpoints[i].bevel = bevel; +UNSUPPORTED("er888lbd8xz64adkkzbqyfwh1"); // pathpoints[i].dir2 = direction_2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ckcfut3hsl9z3mkr48i07xreq"); // /* draw line */ +UNSUPPORTED("9r6b4bedc1rhpyql4jb2csd4n"); // p = (stroke_t*)zmalloc(sizeof(stroke_t)); +UNSUPPORTED("70i20pyvm032opmt0lw7ygegp"); // /* side 1 */ +UNSUPPORTED("9p5eqhc57q744jswt4xn49de5"); // for (i = 0; i < pathcount; i++) { +UNSUPPORTED("6sepicym4lwb144speybi5pdm"); // cur_point = pathpoints[i]; +UNSUPPORTED("904onk81tz0s5sep0j6awgdpb"); // x = cur_point.x; +UNSUPPORTED("agtncoxbpms9wwt2ie97e47g4"); // y = cur_point.y; +UNSUPPORTED("3u4hay46briisll392jdya23v"); // direction = cur_point.dir; +UNSUPPORTED("1uct0gb7zqtj7385nbdnzyj0c"); // lineout = cur_point.lout; +UNSUPPORTED("d9xs9uakpataixjavhuod06ig"); // bevel = cur_point.bevel; +UNSUPPORTED("bf8qe3co9ovp0li3u7k7pqr9i"); // direction_2 = cur_point.dir2; +UNSUPPORTED("9498bdr7ojnwbc5q4bfmdqha9"); // if (i == 0) { +UNSUPPORTED("8qzin254lieocy18s2q55bb07"); // addto(p,x+cos(direction)*lineout,y+sin(direction)*lineout); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("8qzin254lieocy18s2q55bb07"); // addto(p,x+cos(direction)*lineout,y+sin(direction)*lineout); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("euyvq7b75qnuktu6n6n1hvj1i"); // if (bevel) { +UNSUPPORTED("bzgn4n0vstnr0nc3pqwub40eo"); // drawbevel (x, y, lineout, (!(0)), direction, direction_2, linejoin, p); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a4jnqx1pmpp8rz85lpaqyfnj9"); // /* end circle as needed */ +UNSUPPORTED("7ibh2c9hlo51dzs6o9tk8xhh0"); // if (linecap == 1) { +UNSUPPORTED("a8b7151pm774jksu8gm13tsa0"); // arcn (p, x,y,lineout,direction,direction+(3.14159265358979323846*(180)/180.0)); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("8ckgm7yw5o3kj12au3908fqin"); // direction += (3.14159265358979323846*(180)/180.0); +UNSUPPORTED("385y1xwu0kh9i0679xwfgdhfi"); // addto(p,x+cos(direction)*lineout,y+sin(direction)*lineout); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1odd6xfcmpix4iwcbi07a3yet"); // /* side 2 */ +UNSUPPORTED("9sytul5918tuv13gjz3sxy4x3"); // for (i = pathcount-2; i >= 0; i--) { +UNSUPPORTED("6sepicym4lwb144speybi5pdm"); // cur_point = pathpoints[i]; +UNSUPPORTED("904onk81tz0s5sep0j6awgdpb"); // x = cur_point.x; +UNSUPPORTED("agtncoxbpms9wwt2ie97e47g4"); // y = cur_point.y; +UNSUPPORTED("8uvc4rfbx29lnuzfihxx9p2td"); // direction = cur_point.dir + (3.14159265358979323846*(180)/180.0); +UNSUPPORTED("1uct0gb7zqtj7385nbdnzyj0c"); // lineout = cur_point.lout; +UNSUPPORTED("d9xs9uakpataixjavhuod06ig"); // bevel = cur_point.bevel; +UNSUPPORTED("g0kdlqos9c7lovlj90k934dl"); // direction_2 = cur_point.dir2 + (3.14159265358979323846*(180)/180.0); +UNSUPPORTED("z8wmez9u4a021s05d5cxi6wa"); // addto(p,x+cos(direction_2)*lineout,y+sin(direction_2)*lineout); +UNSUPPORTED("ezt2dhrkjlk2egdubwm3lhef7"); // if (bevel) { +UNSUPPORTED("66s1i3eyqfiswvzoblil8b24c"); // drawbevel (x, y, lineout, 0, direction, direction_2, linejoin, p); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2bichl6gosxd9wgzvd6uklrf5"); // /* start circle if needed */ +UNSUPPORTED("7ibh2c9hlo51dzs6o9tk8xhh0"); // if (linecap == 1) { +UNSUPPORTED("a8b7151pm774jksu8gm13tsa0"); // arcn (p, x,y,lineout,direction,direction+(3.14159265358979323846*(180)/180.0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f2o2l2qwk02ukzyk8zpg7ti5k"); // /* closepath (p); */ +UNSUPPORTED("aqhe2lewlygs1royfxfz4cso5"); // freeArr (arr); +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5p2ry36pn9erx76ct8agwj29j +// static double halffunc (double curlen, double totallen, double initwid) +public static Object halffunc(Object... arg) { +UNSUPPORTED("9tja24cimn4bxxvgebqx1p7g6"); // static double halffunc (double curlen, double totallen, double initwid) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7w1a8rqs29lelmnia96oa58f9"); // return ((1 - (curlen/totallen))*initwid/2.0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9atumni48eq11oedwpruqobkj +// stroke_t* taper0 (bezier* bez, double initwid) +public static Object taper0(Object... arg) { +UNSUPPORTED("8flvjq0yy9wk9rlpxmqius1l1"); // stroke_t* taper0 (bezier* bez, double initwid) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84s227sd2ewmv1s2g5fisnfux"); // return taper(bez, halffunc, initwid, 0, 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/textspan__c.java plantuml-8039/src/gen/lib/common/textspan__c.java --- plantuml-8024/src/gen/lib/common/textspan__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/textspan__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,916 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.GVC_s; +import h._dt_s; +import h.boxf; +import h.pointf; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class textspan__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 2ij5ud0czexs3gf9qyg15sna0 +// static double timesFontWidth[] = + + +//1 15m2jpfaemvlv4wwvfprbkca8 +// static double arialFontWidth[] = + + +//1 736czmqcnj402ij7367e13rvf +// static double courFontWidth[] = + + + + +//3 c5mvc1s1l5vtwvqfbwwlzvb2k +// static void estimate_textspan_size(textspan_t * span, char **fontpath) +public static Object estimate_textspan_size(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("bz0vk28zh43zq01osv1pdbnoy"); // estimate_textspan_size(textspan_t * span, char **fontpath) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7cumpe2owb4p5ob3vhxkxozet"); // double *Fontwidth, fontsize; +UNSUPPORTED("8ul52kili9s5z4d2tb4ciq5fk"); // char c, *p, *fpp, *fontname; +UNSUPPORTED("gqcoiz3smahq7t9pizb8mu5t"); // fontname = span->font->name; +UNSUPPORTED("b4qovx8fo3dz2wxi2ozi00xit"); // fontsize = span->font->size; +UNSUPPORTED("7p3v9x3k7k60kgeqnpqm28m2b"); // span->size.x = 0.0; +UNSUPPORTED("2hja2plvki9yret53v34jrzuj"); // span->size.y = fontsize * 1.20; +UNSUPPORTED("arxrgaeah7bs997uzskiskjn6"); // span->yoffset_layout = 0.0; +UNSUPPORTED("80sylfo5oj6eky7rnchp1awln"); // span->yoffset_centerline = 0.1 * fontsize; +UNSUPPORTED("122ykarwskperlr1m2dtyh1u6"); // span->layout = NULL; +UNSUPPORTED("ci5ep320bpuoad04lihnrl9ox"); // span->free_layout = NULL; +UNSUPPORTED("5z317de5yo4y89q75r03ybvs4"); // if (!strncasecmp(fontname, "cour", 4)) { +UNSUPPORTED("expuc9yp3ite065nx41vtxc5x"); // fpp = "[internal courier]"; +UNSUPPORTED("9k4mto16lsbis6uh6n1ces64u"); // Fontwidth = courFontWidth; +UNSUPPORTED("x43p918buqje42n73zkmmq9"); // } else if (!strncasecmp(fontname, "arial", 5) +UNSUPPORTED("1w0wpefq5qvjrjlfgpyvtyu1l"); // || !strncasecmp(fontname, "helvetica", 9)) { +UNSUPPORTED("46zalgdqorux1vqsw35wr4hug"); // fpp = "[internal arial]"; +UNSUPPORTED("aooxzb51suo58rg4jq0yc5efh"); // Fontwidth = arialFontWidth; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("8zxh2mw2ym93g3y0qbuo7b1y2"); // fpp = "[internal times]"; +UNSUPPORTED("ba8qp8iosrsts5d8fe3y66vfw"); // Fontwidth = timesFontWidth; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3jp7t7s8b8ho6x5ooevmh14sp"); // if (fontpath) +UNSUPPORTED("5mfoy5aawcfowdrruy2p79fox"); // *fontpath = fpp; +UNSUPPORTED("bxiz3uoynwbtpj7sczmtlpvwg"); // if ((p = span->str)) { +UNSUPPORTED("1d0v6uokvdvo7u0r11gjfdywv"); // while ((c = *p++)) +UNSUPPORTED("uulsqewu7tuyaoqlsqrgr6fm"); // span->size.x += Fontwidth[(unsigned char) c]; +UNSUPPORTED("ef61tlvpfs09dipj6a0h1rugz"); // /* NOTE: Tables are based on a font of size 1. Need to multiply by +UNSUPPORTED("6iewui4j0nakf1x52fizqiwva"); // * fontsize to get appropriate value. +UNSUPPORTED("daz6lkpz1mird0mokqvqrv9k6"); // */ +UNSUPPORTED("3ueud3s5zgvouyxe67po3p0ez"); // span->size.x *= fontsize; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 8elzy4ma9zrkr1kb4qotvmuvb +// static PostscriptAlias postscript_alias[] = + + + + +//3 2skgvoud1m9bi0twctu87d9w0 +// static int fontcmpf(const void *a, const void *b) +public static Object fontcmpf(Object... arg) { +UNSUPPORTED("cv6ykfir8zyyc5gmbvqflk8az"); // static int fontcmpf(const void *a, const void *b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cwkq5qoprbtbe1sanjmd8nv1j"); // return (strcasecmp(((PostscriptAlias*)a)->name, ((PostscriptAlias*)b)->name)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ch4ydg69bw2im7u9vwmlyqqe6 +// static PostscriptAlias* translate_postscript_fontname(char* fontname) +public static Object translate_postscript_fontname(Object... arg) { +UNSUPPORTED("5uomt2e0iurhuaodxzopllgt6"); // static PostscriptAlias* translate_postscript_fontname(char* fontname) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6jyis2315vduiewgrijlvpdss"); // static PostscriptAlias key; +UNSUPPORTED("dsul7ne0n8pgeab5uatmk276y"); // static PostscriptAlias *result; +UNSUPPORTED("co97723b0exu2cdgdnzi1ak77"); // if (key.name == NULL || strcasecmp(key.name, fontname)) { +UNSUPPORTED("8yilwlv819631lcw5tk9k8iqo"); // key.name = fontname; +UNSUPPORTED("buq60ozuorb1j4pw4g4xm8cdq"); // result = (PostscriptAlias *) bsearch((void *) &key, +UNSUPPORTED("5jh434yyxpdbk2sru0g10aqx7"); // (void *) postscript_alias, +UNSUPPORTED("axfmqs3j7zitn8bx04nej328x"); // sizeof(postscript_alias) / sizeof(PostscriptAlias), +UNSUPPORTED("d48qr8ttleon9i6zu2d6lvl27"); // sizeof(PostscriptAlias), +UNSUPPORTED("8gxrgdit9jlzc8otezqbsr19o"); // fontcmpf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e73y2609z2557xahrcvzmcb8e"); // return result; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 n8tcl06mifdn779rzenam44z +// pointf textspan_size(GVC_t *gvc, textspan_t * span) +public static __struct__ textspan_size(GVC_s gvc, __ptr__ span) { +// WARNING!! STRUCT +return textspan_size_w_(gvc, span).copy(); +} +private static __struct__ textspan_size_w_(GVC_s gvc, __ptr__ span) { +ENTERING("n8tcl06mifdn779rzenam44z","textspan_size"); +try { + System.err.println("Warning:textspan_size "+span); + span.getStruct("size").setDouble("x", 30); + span.getStruct("size").setDouble("y", 20); + return span.getStruct("size").copy(); +} finally { +LEAVING("n8tcl06mifdn779rzenam44z","textspan_size"); +} +} + + + + +//3 3bbrz9gqi8j8b5c1fxsnv6txg +// static void* textfont_makef(Dt_t* dt, void* obj, Dtdisc_t* disc) +public static Object textfont_makef(Object... arg) { +UNSUPPORTED("ezwm25dnds89i6n9bz6jxfpyv"); // static void* textfont_makef(Dt_t* dt, void* obj, Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("51vxeragpkjf0vwb07i7dl9x"); // textfont_t *f1 = (textfont_t*)obj; +UNSUPPORTED("7j92va3n01tx9nm5lfz6stedq"); // textfont_t *f2 = calloc(1,sizeof(textfont_t)); +UNSUPPORTED("5w5r0tig83q9yoy6zhz5o7agc"); // /* key */ +UNSUPPORTED("23s5fksqi3wn73kpx2mipfx82"); // if (f1->name) f2->name = strdup(f1->name); +UNSUPPORTED("f2zpyj0gm6kd4y0chvzpe3di4"); // if (f1->color) f2->color = strdup(f1->color); +UNSUPPORTED("83wzklvzx2pc15wj16qppl4v2"); // f2->flags = f1->flags; +UNSUPPORTED("8u1zhn0nsxkxbr1tmt2w8hw1f"); // f2->size = f1->size; +UNSUPPORTED("62pprpgc67m2fs16j6p98kin6"); // /* non key */ +UNSUPPORTED("cf410wlb1gvcoq8d3oiajaph3"); // f2->postscript_alias = f1->postscript_alias; +UNSUPPORTED("9y0cehsmm6fiuv0ibvh9e4gvz"); // return f2; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 p4o48ztsya6bv2xz1m59jzrk +// static void textfont_freef(Dt_t* dt, void* obj, Dtdisc_t* disc) +public static Object textfont_freef(Object... arg) { +UNSUPPORTED("d6z1bfrko1uq2uadgutf42fpr"); // static void textfont_freef(Dt_t* dt, void* obj, Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bx771pipb8kf13oa7ww02nex3"); // textfont_t *f = (textfont_t*)obj; +UNSUPPORTED("eymlly2a6yv51q1jufubndg9o"); // if (f->name) free(f->name); +UNSUPPORTED("1omkvtjx5x2ef8xensxdm6wt7"); // if (f->color) free(f->color); +UNSUPPORTED("a4v6veu7h0jl3a2wwlxwpdsuw"); // free(f); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3xya6188lnt9kg5uwchhya2wt +// static int textfont_comparf (Dt_t* dt, void* key1, void* key2, Dtdisc_t* disc) +public static Object textfont_comparf(Object... arg) { +UNSUPPORTED("9w5158s061nd0o3p6dbh4tnqz"); // static int textfont_comparf (Dt_t* dt, void* key1, void* key2, Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1bh3yj957he6yv2dkeg4pzwdk"); // int rc; +UNSUPPORTED("222ejoojlkxc5ocmxue2bgxdy"); // textfont_t *f1 = (textfont_t*)key1, *f2 = (textfont_t*)key2; +UNSUPPORTED("87sttldb6hr2mn0ab405d03li"); // if (f1->name || f2->name) { +UNSUPPORTED("2bqh121m1japcj8bnsuy6sc8q"); // if (! f1->name) return -1; +UNSUPPORTED("86ytzx2x5nrcvurajdkbm95gk"); // if (! f2->name) return 1; +UNSUPPORTED("673e3f928tkakxhcajat2h6p0"); // rc = strcmp(f1->name, f2->name); +UNSUPPORTED("b9i8cahaxv9md4mvlw484iqeg"); // if (rc) return rc; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7vzuntdto9vcvitx5s7m6zma7"); // if (f1->color || f2->color) { +UNSUPPORTED("4tw0lvc7t2cc0000lrb9flurf"); // if (! f1->color) return -1; +UNSUPPORTED("7xj68kytc2wzv6iq8ddwkwqlk"); // if (! f2->color) return 1; +UNSUPPORTED("bcepjb2zqe0moqakgmofmbpq2"); // rc = strcmp(f1->color, f2->color); +UNSUPPORTED("b9i8cahaxv9md4mvlw484iqeg"); // if (rc) return rc; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9gf3266sjn2sm6m3mxf19197l"); // rc = (f1->flags - f2->flags); +UNSUPPORTED("9ngqgld29f5nt7h1ffl4s0em4"); // if (rc) return rc; +UNSUPPORTED("d3e2n6libjqhx2xs4516lxyrf"); // if (f1->size < f2->size) return -1; +UNSUPPORTED("1kww1mevjniiermvdkcyihkqp"); // if (f1->size > f2->size) return 1; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9mfrgcpzz2d9f7nxfgx4nxj2q +// Dt_t * textfont_dict_open(GVC_t *gvc) +public static _dt_s textfont_dict_open(GVC_s gvc) { +ENTERING("9mfrgcpzz2d9f7nxfgx4nxj2q","textfont_dict_open"); +try { + return null; +//UNSUPPORTED("nexd6tbei8przmonjwzag8uf"); // Dt_t * textfont_dict_open(GVC_t *gvc) +//UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +//UNSUPPORTED("cdeb412fjgrtibum4qt0yxhc7"); // ( (&(gvc->textfont_disc))->key = (0), (&(gvc->textfont_disc))->size = (sizeof(textfont_t)), (&(gvc->textfont_disc))->link = (-1), (&(gvc->textfont_disc))->makef = (textfont_makef), (&(gvc->textfont_disc))->freef = (textfont_freef), (&(gvc->textfont_disc))->comparf = (textfont_comparf), (&(gvc->textfont_disc))->hashf = (NULL), (&(gvc->textfont_disc))->memoryf = (NULL), (&(gvc->textfont_disc))->eventf = (NULL) ); +//UNSUPPORTED("d1t3xr23spgfbbggquvg4nodm"); // gvc->textfont_dt = dtopen(&(gvc->textfont_disc), Dtoset); +//UNSUPPORTED("6ynzkfpi9sy9wbln45o4jajhp"); // return gvc->textfont_dt; +//UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } +} finally { +LEAVING("9mfrgcpzz2d9f7nxfgx4nxj2q","textfont_dict_open"); +} +} + + + + +//3 5o4jyd0j7s18vl7inlo4o0w99 +// void textfont_dict_close(GVC_t *gvc) +public static Object textfont_dict_close(Object... arg) { +UNSUPPORTED("7uxwdoqc8jmcbexpk4lhvdgg"); // void textfont_dict_close(GVC_t *gvc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dyrkxfb6i5v7i47xoxoe22ykv"); // dtclose(gvc->textfont_dt); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/timing__c.java plantuml-8039/src/gen/lib/common/timing__c.java --- plantuml-8024/src/gen/lib/common/timing__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/timing__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,81 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static smetana.core.Macro.UNSUPPORTED; + +public class timing__c { +//1 9rcpctijr9b8r0p971d3f9t9h +// static mytime_t T + + + + +//3 5651jzaik1he1ffxyznovdahf +// void start_timer(void) +public static Object start_timer(Object... arg) { +UNSUPPORTED("69qokxdamqf1bxhaqbcnpwkw1"); // void start_timer(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ectdmh5it8savad5lltnu8r3w"); // times(&(T)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 11o22f2clw6ou6c0hmn76feu4 +// double elapsed_sec(void) +public static Object elapsed_sec(Object... arg) { +UNSUPPORTED("ap51jenuew5js107vu8srvn3x"); // double elapsed_sec(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8jn78w98k16lwmikzd1lk5qx4"); // mytime_t S; +UNSUPPORTED("d7i4mzmfmp4ps6n8cbfzvrlcf"); // double rv; +UNSUPPORTED("bh6n36r9g26g7oq07lzcngnm3"); // times(&(S)); +UNSUPPORTED("cu10zpf5lls0sjd3425blqug9"); // rv = ((S.tms_utime + S.tms_stime - T.tms_utime - T.tms_stime)/(double)60); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/common/utils__c.java plantuml-8039/src/gen/lib/common/utils__c.java --- plantuml-8024/src/gen/lib/common/utils__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/common/utils__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,3086 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.common; +import static gen.lib.cgraph.attr__c.agget; +import static gen.lib.cgraph.attr__c.agxget; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.obj__c.agraphof; +import static gen.lib.cgraph.refstr__c.aghtmlstr; +import static gen.lib.common.labels__c.make_label; +import static gen.lib.common.memory__c.zmalloc; +import static gen.lib.common.shapes__c.bind_shape; +import static gen.lib.common.shapes__c.shapeOf; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.LOG2; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.atoi; +import static smetana.core.JUtils.enumAsInt; +import static smetana.core.JUtils.isdigit; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtils.strchr; +import static smetana.core.JUtils.strcmp; +import static smetana.core.JUtils.strtod; +import static smetana.core.JUtils.strtol; +import static smetana.core.JUtils.tolower; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ED_head_port; +import static smetana.core.Macro.ED_label; +import static smetana.core.Macro.ED_label_ontop; +import static smetana.core.Macro.ED_tail_port; +import static smetana.core.Macro.GD_bb; +import static smetana.core.Macro.GD_flags; +import static smetana.core.Macro.GD_flip; +import static smetana.core.Macro.GD_has_labels; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_UF_parent; +import static smetana.core.Macro.ND_UF_size; +import static smetana.core.Macro.ND_height; +import static smetana.core.Macro.ND_ht; +import static smetana.core.Macro.ND_id; +import static smetana.core.Macro.ND_label; +import static smetana.core.Macro.ND_lw; +import static smetana.core.Macro.ND_ranktype; +import static smetana.core.Macro.ND_rw; +import static smetana.core.Macro.ND_shape; +import static smetana.core.Macro.ND_showboxes; +import static smetana.core.Macro.ND_width; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.Agsym_s; +import h.boxf; +import h.fontinfo; +import h.nodequeue; +import h.pointf; +import h.port; +import h.shape_kind; +import h.textlabel_t; +import smetana.core.CFunction; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__array_of_struct__; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class utils__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c7cptalfn8k75wyfirbnptnav +// nodequeue *new_queue(int sz) +public static nodequeue new_queue(int sz) { +ENTERING("c7cptalfn8k75wyfirbnptnav","new_queue"); +try { + nodequeue q = (nodequeue)zmalloc(sizeof(nodequeue.class)); + if (sz <= 1) + sz = 2; + final __ptr__ tmp__ = zmalloc(sizeof(Agnode_s.class, sz)); + q.setPtr("store", tmp__); + q.setPtr("tail", tmp__); + q.setPtr("head", tmp__); + q.setPtr("limit", tmp__.plus(sz)); + return q; +} finally { +LEAVING("c7cptalfn8k75wyfirbnptnav","new_queue"); +} +} + + + + +//3 1uj5nmdvwmuklnpd3v5py547f +// void free_queue(nodequeue * q) +public static void free_queue(nodequeue q) { +ENTERING("1uj5nmdvwmuklnpd3v5py547f","free_queue"); +try { + Memory.free(q.getPtr("store")); + Memory.free(q); +} finally { +LEAVING("1uj5nmdvwmuklnpd3v5py547f","free_queue"); +} +} + + + + +//3 20pwd6i141q3o25lfvrdqytot +// void enqueue(nodequeue * q, node_t * n) +public static void enqueue(nodequeue q, Agnode_s n) { +ENTERING("20pwd6i141q3o25lfvrdqytot","enqueue"); +try { + q.getArrayOfPtr("tail").plus(0).setPtr(n); + q.setPtr("tail", q.getPtr("tail").plus(1)); + if (q.getPtr("tail").comparePointer(q.getPtr("limit")) >= 0) + q.setPtr("tail", q.getPtr("store")); +} finally { +LEAVING("20pwd6i141q3o25lfvrdqytot","enqueue"); +} +} + + + + +//3 b612nmtf16au96ztbs8pike9r +// node_t *dequeue(nodequeue * q) +public static Agnode_s dequeue(nodequeue q) { +ENTERING("b612nmtf16au96ztbs8pike9r","dequeue"); +try { + Agnode_s n; + if (EQ(q.getPtr("head"), q.getPtr("tail"))) + n = null; + else { + n = (Agnode_s) q.getArrayOfPtr("head").plus(0).getPtr(); + q.setPtr("head", q.getPtr("head").plus(1)); + if (q.getPtr("head").comparePointer(q.getPtr("limit")) >= 0) + q.setPtr("head", q.getPtr("store")); + } + return n; +} finally { +LEAVING("b612nmtf16au96ztbs8pike9r","dequeue"); +} +} + + + + +//3 6nydxv4f2m7jcfh8ljs0neu0x +// int late_int(void *obj, attrsym_t * attr, int def, int low) +public static int late_int(__ptr__ obj, Agsym_s attr, int def, int low) { +ENTERING("6nydxv4f2m7jcfh8ljs0neu0x","late_int"); +try { + CString p; + CString endp[] = new CString[1]; + int rv; + if (attr == null) + return def; + p = agxget(obj,attr); + if (N(p) || p.length()==0) + return def; + rv = strtol (p, endp, 10); + if (EQ(p, endp[0])) return def; /* invalid int format */ + if (rv < low) return low; + else return rv; +} finally { +LEAVING("6nydxv4f2m7jcfh8ljs0neu0x","late_int"); +} +} + + + + +//3 d68314e4f20r79tt0cnmxugme +// double late_double(void *obj, attrsym_t * attr, double def, double low) +public static double late_double(__ptr__ obj, Agsym_s attr, double def, double low) { +ENTERING("d68314e4f20r79tt0cnmxugme","late_double"); +try { + CString p; + CString endp[] = new CString[1]; + double rv; + if (N(attr) || N(obj)) + return def; + p = agxget(obj,attr); + if (N(p) || p.charAt(0) == '\0') + return def; + rv = strtod (p, endp); + if (p == endp[0]) return def; /* invalid double format */ + if (rv < low) return low; + else return rv; +} finally { +LEAVING("d68314e4f20r79tt0cnmxugme","late_double"); +} +} + + + + +//3 70otpdqcum1z6ht6udvuxl7r2 +// double get_inputscale (graph_t* g) +public static Object get_inputscale(Object... arg) { +UNSUPPORTED("9ufij3opw003w1a5l59wehdi6"); // double get_inputscale (graph_t* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8ne6p4d5pykwl1d3xk0yg0ipb"); // double d; +UNSUPPORTED("c3jy0hsf1pj5mu65gn0341dbk"); // if (PSinputscale > 0) return PSinputscale; /* command line flag prevails */ +UNSUPPORTED("1l7wr8a4r1ml3ghihovvwsll0"); // d = late_double(g, (agattr(g,AGRAPH,"inputscale",(void *)0)), -1, 0); +UNSUPPORTED("464faf5rk766qz197xbucjy1q"); // if (d == 0) return 72; +UNSUPPORTED("34ovcwkctb1p5v0nns43aj54s"); // else return d; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 83xm6yc9q5h1bzufhsnv0v2up +// char *late_string(void *obj, attrsym_t * attr, char *def) +public static CString late_string(__ptr__ obj, Agsym_s attr, CString def) { +ENTERING("83xm6yc9q5h1bzufhsnv0v2up","late_string"); +try { + if (N(attr) || N(obj)) + return def; + return agxget(obj, attr); +} finally { +LEAVING("83xm6yc9q5h1bzufhsnv0v2up","late_string"); +} +} + + + + +//3 8oon4q1mrublaru177xfntqgd +// char *late_nnstring(void *obj, attrsym_t * attr, char *def) +public static CString late_nnstring(__ptr__ obj, Agsym_s attr, CString def) { +ENTERING("8oon4q1mrublaru177xfntqgd","late_nnstring"); +try { + CString rv = late_string(obj, attr, def); + if (N(rv) || (rv.charAt(0) == '\0')) + rv = def; + return rv; +} finally { +LEAVING("8oon4q1mrublaru177xfntqgd","late_nnstring"); +} +} + + + + +//3 87ifze04q7qzigjj1fb9y9by2 +// boolean late_bool(void *obj, attrsym_t * attr, int def) +public static Object late_bool(Object... arg) { +UNSUPPORTED("4p67t5j48pxpmswky3dw3s392"); // boolean late_bool(void *obj, attrsym_t * attr, int def) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("183nee60g5fytepk82gop4u8s"); // if (attr == (void *)0) +UNSUPPORTED("1jfc1szr9lzyizq62jp9jz7ah"); // return def; +UNSUPPORTED("a0kh1y5n8u59z0xo7mag3zmt6"); // return mapbool(agxget(obj, attr)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aeq0acpkhfv3gd5jx8op4jf18 +// node_t *UF_find(node_t * n) +public static Agnode_s UF_find(Agnode_s n) { +ENTERING("aeq0acpkhfv3gd5jx8op4jf18","UF_find"); +try { + while (ND_UF_parent(n)!=null && NEQ(ND_UF_parent(n), n)) { + if (ND_UF_parent(ND_UF_parent(n))!=null) + ND_UF_parent(n, ND_UF_parent(ND_UF_parent(n))); + n = ND_UF_parent(n); + } + return n; +} finally { +LEAVING("aeq0acpkhfv3gd5jx8op4jf18","UF_find"); +} +} + + + + +//3 9ldxwfr4vvijrvfcvs1hvdzrt +// node_t *UF_union(node_t * u, node_t * v) +public static Agnode_s UF_union(Agnode_s u, Agnode_s v) { +ENTERING("9ldxwfr4vvijrvfcvs1hvdzrt","UF_union"); +try { + if (EQ(u, v)) + return u; + if (ND_UF_parent(u) == null) { + ND_UF_parent(u, u); + ND_UF_size(u, 1); + } else +UNSUPPORTED("35c97tyk6tzw1g527j6rp6xoo"); // u = UF_find(u); + if (ND_UF_parent(v) == null) { + ND_UF_parent(v, v); + ND_UF_size(v, 1); + } else + v = UF_find(v); + if (ND_id(u) > ND_id(v)) { +UNSUPPORTED("2igr3ntnkm6svji4pbnjlp54e"); // ND_UF_parent(u) = v; +UNSUPPORTED("3lht90i6tvxbr10meir8nvcic"); // ND_UF_size(v) += ND_UF_size(u); + } else { + ND_UF_parent(v, u); + ND_UF_size(u, ND_UF_size(u) + ND_UF_size(v)); + v = u; + } + return v; +} finally { +LEAVING("9ldxwfr4vvijrvfcvs1hvdzrt","UF_union"); +} +} + + + + +//3 3j3pbee3o14ctlm51gqul3y1b +// void UF_remove(node_t * u, node_t * v) +public static Object UF_remove(Object... arg) { +UNSUPPORTED("4mdu14gpibvzmm5t9g0h7oaek"); // void UF_remove(node_t * u, node_t * v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dnvt20f8swe5kyjjj2g4vpx46"); // assert(ND_UF_size(u) == 1); +UNSUPPORTED("crtqvbx6u5amvtj4nhuhui0p0"); // ND_UF_parent(u) = u; +UNSUPPORTED("4gdqcsr8w5gtc1qbdht2l23g2"); // ND_UF_size(v) -= ND_UF_size(u); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 22k0u1imxyw06k9rizqlfz153 +// void UF_singleton(node_t * u) +public static void UF_singleton(Agnode_s u) { +ENTERING("22k0u1imxyw06k9rizqlfz153","UF_singleton"); +try { + ND_UF_size(u, 1); + ND_UF_parent(u, null); + ND_ranktype(u, 0); +} finally { +LEAVING("22k0u1imxyw06k9rizqlfz153","UF_singleton"); +} +} + + + + +//3 e0fn8xuzkdt0q8xoofl6j1txb +// void UF_setname(node_t * u, node_t * v) +public static void UF_setname(Agnode_s u, Agnode_s v) { +ENTERING("e0fn8xuzkdt0q8xoofl6j1txb","UF_setname"); +try { + assert(EQ(u, UF_find(u))); + ND_UF_parent(u, v); + ND_UF_size(v, ND_UF_size(v) + ND_UF_size(u)); +} finally { +LEAVING("e0fn8xuzkdt0q8xoofl6j1txb","UF_setname"); +} +} + + + + +//3 31rkmp5c1ie1pfzbkla6b4ag +// pointf coord(node_t * n) +public static Object coord(Object... arg) { +UNSUPPORTED("880b2lkxm37hksgryyrw8qqvj"); // pointf coord(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("evwdz7pwy2u67oqi6hg38wal1"); // r.x = 72 * ND_pos(n)[0]; +UNSUPPORTED("1dwnra1p0vsse07037h9fdfgp"); // r.y = 72 * ND_pos(n)[1]; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6p0ey2c2ujk2o7h221p0b4xon +// pointf Bezier(pointf * V, int degree, double t, pointf * Left, pointf * Right) +public static __struct__ Bezier(__array_of_struct__ V, int degree, double t, __ptr__ Left, __ptr__ Right) { +// WARNING!! STRUCT +return Bezier_w_(V, degree, t, Left, Right).copy(); +} +private static __struct__ Bezier_w_(__array_of_struct__ V, int degree, double t, __ptr__ Left, __ptr__ Right) { +ENTERING("6p0ey2c2ujk2o7h221p0b4xon","Bezier"); +try { + int i, j; /* Index variables */ + final __array_of_struct__ Vtemp[] = new __array_of_struct__[] { __array_of_struct__.malloc(pointf.class, 5+1), + __array_of_struct__.malloc(pointf.class, 5+1), + __array_of_struct__.malloc(pointf.class, 5+1), + __array_of_struct__.malloc(pointf.class, 5+1), + __array_of_struct__.malloc(pointf.class, 5+1), + __array_of_struct__.malloc(pointf.class, 5+1) }; + /* Copy control points */ + for (j = 0; j <= degree; j++) { + Vtemp[0].plus(j).setStruct(V.plus(j).getStruct()); + } + /* Triangle computation */ + for (i = 1; i <= degree; i++) { + for (j = 0; j <= degree - i; j++) { + Vtemp[i].plus(j).setDouble("x", + (1.0 - t) * Vtemp[i - 1].plus(j).getDouble("x") + t * Vtemp[i - 1].plus(j + 1).getDouble("x")); + Vtemp[i].plus(j).setDouble("y", + (1.0 - t) * Vtemp[i - 1].plus(j).getDouble("y") + t * Vtemp[i - 1].plus(j + 1).getDouble("y")); + } + } + if (Left != null) + for (j = 0; j <= degree; j++) + Left.plus(j).setStruct(Vtemp[j].plus(0).getStruct()); + if (Right != null) + for (j = 0; j <= degree; j++) + Right.plus(j).setStruct(Vtemp[degree - j].plus(j).getStruct()); + return (Vtemp[degree].plus(0).getStruct()); +} finally { +LEAVING("6p0ey2c2ujk2o7h221p0b4xon","Bezier"); +} +} + + + + +//3 3ly0ylecb4k9xk5b7ffrlolt9 +// char *Fgets(FILE * fp) +public static Object Fgets(Object... arg) { +UNSUPPORTED("4q07n5lkhirby89lrss95tlri"); // char *Fgets(FILE * fp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f2la3gescrvdrwclkw6jqpel5"); // static int bsize = 0; +UNSUPPORTED("8kywmm7f51dmrjngxwvnpsd4o"); // static char *buf; +UNSUPPORTED("ecmuo8avgj1iywuapxmibw016"); // char *lp; +UNSUPPORTED("dwe86466ugstemepdfk8yzphz"); // int len; +UNSUPPORTED("cl8iuel2v9wmaxtyhnvq5trol"); // len = 0; +UNSUPPORTED("53kc41p479auwcycfsbhw8xix"); // do { +UNSUPPORTED("94pefdj9c9wxznl2ybw0eaxlu"); // if (bsize - len < BUFSIZ) { +UNSUPPORTED("3f9vu9nd93ckzyw89aeu7qtpz"); // bsize += BUFSIZ; +UNSUPPORTED("6zqvad9bp7g8thltaf4fgbiqe"); // buf = grealloc(buf, bsize); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6javvrure63s3d9t1t1g3jjb3"); // lp = fgets(buf + len, bsize - len, fp); +UNSUPPORTED("5s6nvinfb0elfdlq0b4hvn087"); // if (lp == 0) +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("83wm9z0kqu2eg7994ilmkvhsy"); // len += strlen(lp); /* since lp != NULL, len > 0 */ +UNSUPPORTED("cpr2w7m7b9d0k3v79b2ed57cv"); // } while (buf[len - 1] != '\n'); +UNSUPPORTED("6qgvu9gyei3rz9oa1j4onpev8"); // if (len > 0) +UNSUPPORTED("60rrsbs3bgak2rhurj1kw71av"); // return buf; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 24n59f0dfjbrcciik6yp7reuz +// static char** mkDirlist (const char* list, int* maxdirlen) +public static Object mkDirlist(Object... arg) { +UNSUPPORTED("52rxugfl5uyz0px71ixefqszi"); // static char** mkDirlist (const char* list, int* maxdirlen) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("behjm5bjsenezpg3f7cncvteu"); // int cnt = 0; +UNSUPPORTED("8b1p8gk30j7o435ywb280jum2"); // char* s = strdup (list); +UNSUPPORTED("35u91xpv8pyr56o5nch0azwdl"); // char* dir; +UNSUPPORTED("9b5fnnkm94rlgnqwv15ibu46r"); // char** dirs = (void *)0; +UNSUPPORTED("2cb6784tzmjr65il4amoj2f6h"); // int maxlen = 0; +UNSUPPORTED("bnhqg9audjylbv3i0tj26rrcp"); // for (dir = strtok (s, ":"); dir; dir = strtok ((void *)0, ":")) { +UNSUPPORTED("aqf6niag46yhhhj5sccv41hrk"); // dirs = ALLOC (cnt+2,dirs,char*); +UNSUPPORTED("f5047pr5l6jv6zl8latgfspry"); // dirs[cnt++] = dir; +UNSUPPORTED("13d902xfof2syshtj70d02plc"); // maxlen = MAX(maxlen, strlen (dir)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3qszpnaufz3i0zkcsuaqfcbap"); // dirs[cnt] = (void *)0; +UNSUPPORTED("a10ctcqm0sjufygu9dh0cc6aa"); // *maxdirlen = maxlen; +UNSUPPORTED("5os9u9oj7fjpbstveie2w0yxq"); // return dirs; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 49gli3uq79rprx3u3opdhcx1m +// static char* findPath (char** dirs, int maxdirlen, const char* str) +public static Object findPath(Object... arg) { +UNSUPPORTED("a5bmudkw4k7jkxvyb8gptf73c"); // static char* findPath (char** dirs, int maxdirlen, const char* str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("93jals27u5ur9t8vy0noookm0"); // static char *safefilename = (void *)0; +UNSUPPORTED("bpsbmb5c3iu1rp98h1ouv1rgr"); // char** dp; +UNSUPPORTED("81a5ilslogj5wcerq31e8qoh9"); // /* allocate a buffer that we are sure is big enough +UNSUPPORTED("a6c5zuexn89b87yrrru9wgnwg"); // * +1 for null character. +UNSUPPORTED("eaa4q86pe1s8k4qb4tkhw73zl"); // * +1 for directory separator character. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("15klhvefamyul36it624epw39"); // safefilename = realloc(safefilename, (maxdirlen + strlen(str) + 2)); +UNSUPPORTED("2zug3hj9q9xtnh9p792zu5xh8"); // for (dp = dirs; *dp; dp++) { +UNSUPPORTED("bhh1cl0s26fu2nevbn685qotj"); // sprintf (safefilename, "%s%s%s", *dp, "/", str); +UNSUPPORTED("c3hxsxu6vm5rsmcvu94zjfhmz"); // if (access (safefilename, R_OK) == 0) +UNSUPPORTED("bvviyr83kx89qfvn2tmv1fj2x"); // return safefilename; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bhge6w48v1uv92wmsde2jqqs0"); // return (void *)0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3xll2b0v9nthwvx9dafq49t8s +// const char *safefile(const char *filename) +//static boolean onetime = (!(0)); +//static char *pathlist = (void *)0; +//static int maxdirlen; +//static char** dirs; +public static CString safefile(CString filename) { +ENTERING("3xll2b0v9nthwvx9dafq49t8s","safefile"); +try { + return null; +} finally { +LEAVING("3xll2b0v9nthwvx9dafq49t8s","safefile"); +} +} + + + + +//3 2ihv17oajyaaaycirwsbgz1m7 +// int maptoken(char *p, char **name, int *val) +public static int maptoken(CString p, CString name[], int val[]) { +ENTERING("2ihv17oajyaaaycirwsbgz1m7","maptoken"); +try { + int i; + CString q; + for (i = 0; (q = name[i]) != null; i++) + if (p!=null && (N(strcmp(p,q)))) + break; + return val[i]; +} finally { +LEAVING("2ihv17oajyaaaycirwsbgz1m7","maptoken"); +} +} + + + + +//3 4esyuq2yqdaqoddgfqs24m5m3 +// boolean mapBool(char *p, boolean dflt) +public static boolean mapBool(CString p, boolean dflt) { +ENTERING("4esyuq2yqdaqoddgfqs24m5m3","mapBool"); +try { + if (N(p) || (p.charAt(0) == '\0')) + return dflt; + if (N(strcasecmp(p, new CString("false")))) + return false; + if (N(strcasecmp(p, new CString("no")))) + return false; + if (N(strcasecmp(p, new CString("true")))) + return (N(0)); + if (N(strcasecmp(p, new CString("yes")))) + return (N(0)); + if (isdigit(p.charAt(0))) + return atoi(p)!=0; + else + return dflt; +} finally { +LEAVING("4esyuq2yqdaqoddgfqs24m5m3","mapBool"); +} +} + + + + +//3 ehkvqh6bwf4jw3mj1w5p7a8m8 +// boolean mapbool(char *p) +public static boolean mapbool(CString p) { +ENTERING("ehkvqh6bwf4jw3mj1w5p7a8m8","mapbool"); +try { + return mapBool (p, false); +} finally { +LEAVING("ehkvqh6bwf4jw3mj1w5p7a8m8","mapbool"); +} +} + + + + +//3 37hgj44s94wf9bmz16he85pgq +// pointf dotneato_closest(splines * spl, pointf pt) +public static Object dotneato_closest(Object... arg) { +UNSUPPORTED("6xi9wmswic1fv76qsqa100zrg"); // pointf dotneato_closest(splines * spl, pointf pt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7vg6345lno41yawbke5qjffjx"); // int i, j, k, besti, bestj; +UNSUPPORTED("7tvhpuiv2bp57tuo5a1qrptwi"); // double bestdist2, d2, dlow2, dhigh2; /* squares of distances */ +UNSUPPORTED("52bzzd12n2awux2b59j2jqh8x"); // double low, high, t; +UNSUPPORTED("1ciwu1ibmcvutr9d4mbq8jjp"); // pointf c[4], pt2; +UNSUPPORTED("37thdceezsvepe7tlyfatrbcw"); // bezier bz; +UNSUPPORTED("cv0cmfkdyov0ifz46uknfgwaa"); // besti = bestj = -1; +UNSUPPORTED("988ajfgcb4de6sx2d5un10g4x"); // bestdist2 = 1e+38; +UNSUPPORTED("4z4l1zu33m72iirxmuhdg36iw"); // for (i = 0; i < spl->size; i++) { +UNSUPPORTED("ewoeh3d6otc2rgpaxuzwm38x7"); // bz = spl->list[i]; +UNSUPPORTED("bdak7kaqfdpo7zuzg9fm7b6sw"); // for (j = 0; j < bz.size; j++) { +UNSUPPORTED("wdh4m8cw4why11o5q87r88zj"); // pointf b; +UNSUPPORTED("3tf1mdorgslv29e6azr3rzonw"); // b.x = bz.list[j].x; +UNSUPPORTED("dxmmss8xn49bbq09iskmvgo1a"); // b.y = bz.list[j].y; +UNSUPPORTED("d0o8y6vs1vm9qcfq5oyn2zmb5"); // d2 = DIST2(b, pt); +UNSUPPORTED("5x61wak384zfu9waxz4iib38j"); // if ((bestj == -1) || (d2 < bestdist2)) { +UNSUPPORTED("cmhf0aasa4t5z81xkhjsih2h3"); // besti = i; +UNSUPPORTED("en6tmpmufawtaviu8s9gbiir5"); // bestj = j; +UNSUPPORTED("aqecj956cthm5r94jj461cz7"); // bestdist2 = d2; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4o4fen9osijkuva0tyij06dff"); // bz = spl->list[besti]; +UNSUPPORTED("cylnfbfm0pqu1um785gk5ox0m"); // /* Pick best Bezier. If bestj is the last point in the B-spline, decrement. +UNSUPPORTED("84b6e5g3wx9iisglwjcp5lno1"); // * Then set j to be the first point in the corresponding Bezier by dividing +UNSUPPORTED("57jzmu3ed1g4aa00hivvreb3c"); // * then multiplying be 3. Thus, 0,1,2 => 0; 3,4,5 => 3, etc. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("2oqk9suiq102615kp2p6u9pbc"); // if (bestj == bz.size-1) +UNSUPPORTED("b8unnlnu1bnnhbs85vgllqltd"); // bestj--; +UNSUPPORTED("34l7vean6sci8jd61jcga5t9j"); // j = 3*(bestj / 3); +UNSUPPORTED("634ul430au56jfgnuq945ecev"); // for (k = 0; k < 4; k++) { +UNSUPPORTED("emeum5x5u6s5wlj9pg5e18mge"); // c[k].x = bz.list[j + k].x; +UNSUPPORTED("6fqdkdgvc0jr8pgud3rpf5blk"); // c[k].y = bz.list[j + k].y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("13ldc3scyuiddbvqn7xeazovv"); // low = 0.0; +UNSUPPORTED("5diyw4rai5ul7vmjhf654bvc0"); // high = 1.0; +UNSUPPORTED("v90htrjkydw3zaf6t3apnl32"); // dlow2 = DIST2(c[0], pt); +UNSUPPORTED("5fvcsu2wp47fo7crx2ob0h44u"); // dhigh2 = DIST2(c[3], pt); +UNSUPPORTED("53kc41p479auwcycfsbhw8xix"); // do { +UNSUPPORTED("14iyya2zn31kcyo2gqfx6u181"); // t = (low + high) / 2.0; +UNSUPPORTED("5rti9akx01gql0rz4afihqg0q"); // pt2 = Bezier(c, 3, t, (void *)0, (void *)0); +UNSUPPORTED("1mco76xn6x54y3tzfvzeptejl"); // if (fabs(dlow2 - dhigh2) < 1.0) +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("aaurmb2ppl2kefmdaw9njymyt"); // if (fabs(high - low) < .00001) +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("6apa9aoby9j8a0eanbfhy5mn2"); // if (dlow2 < dhigh2) { +UNSUPPORTED("6jttyuryfaxa193mme86dqf58"); // high = t; +UNSUPPORTED("6avwplrum9i9qi3g9wl6yvz04"); // dhigh2 = DIST2(pt2, pt); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("556vs5i22602clhs1p3htz7vk"); // low = t; +UNSUPPORTED("507tgq81szei2ge3miiak4b1v"); // dlow2 = DIST2(pt2, pt); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bisaeb1i484iutawysrspjmfw"); // } while (1); +UNSUPPORTED("9v7upfp8kp93skdlnpaz055xv"); // return pt2; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8v6t685mjc3ps5m4i5m7kj5r5 +// pointf spline_at_y(splines * spl, double y) +public static Object spline_at_y(Object... arg) { +UNSUPPORTED("6z59zacy0w6awy33d9vj3ka38"); // pointf spline_at_y(splines * spl, double y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j; +UNSUPPORTED("c7xj151i9l4snnjn7ibtdupr2"); // double low, high, d, t; +UNSUPPORTED("10vmrpj8mfz9opwwvwpolaopd"); // pointf c[4], p; +UNSUPPORTED("m46gfclfoxui2qhyykvkqk0a"); // static bezier bz; +UNSUPPORTED("aqjwfeuociuhtcp9z6qs0chn8"); // /* this caching seems to prevent p.x from getting set from bz.list[0].x +UNSUPPORTED("epvvl2xzzwpc4zmue865xosgp"); // - optimizer problem ? */ +UNSUPPORTED("b9epibfipw1wsk324v5epkerh"); // for (i = 0; i < spl->size; i++) { +UNSUPPORTED("3ykobnao35x0n6r6go2stj9o5"); // bz = spl->list[i]; +UNSUPPORTED("clxoycrurqc4oq0d7v2fp7imo"); // if (BETWEEN(bz.list[bz.size - 1].y, y, bz.list[0].y)) +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3en4490pkykfcbc2szvzzx27g"); // if (y > bz.list[0].y) +UNSUPPORTED("e1te1nqw2aru9ro9sqdjhhttv"); // p = bz.list[0]; +UNSUPPORTED("24izeylrlk4gqqilirqwty8r9"); // else if (y < bz.list[bz.size - 1].y) +UNSUPPORTED("5cxp04l4lo39n1p1wsvav460c"); // p = bz.list[bz.size - 1]; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("cj02uw2oxm47gdexf3z5axxlw"); // for (i = 0; i < bz.size; i += 3) { +UNSUPPORTED("djfbmqatbjckruruv8rxs6uav"); // for (j = 0; j < 3; j++) { +UNSUPPORTED("5b9ziw2aes1kmllxgwkfpmr7p"); // if ((bz.list[i + j].y <= y) && (y <= bz.list[i + j + 1].y)) +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("amh6xmny0k57y6wqy4ms0zyqe"); // if ((bz.list[i + j].y >= y) && (y >= bz.list[i + j + 1].y)) +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("9fvhco56e60yr7h2c6ceqf1p5"); // if (j < 3) +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("eoqh4atx94pamqo1963pcrq50"); // assert(i < bz.size); +UNSUPPORTED("ac0jvph9p2m1i3zdywfxmq4eg"); // for (j = 0; j < 4; j++) { +UNSUPPORTED("ajjpb9st186njpdxscd9bmg80"); // c[j].x = bz.list[i + j].x; +UNSUPPORTED("2lnyqxk5vopusie575n54x590"); // c[j].y = bz.list[i + j].y; +UNSUPPORTED("5n0qrttzwlxb3x8t4ngkjz31j"); // /* make the spline be monotonic in Y, awful but it works for now */ +UNSUPPORTED("ath2bi6h6bk6mkwqk00fweao2"); // if ((j > 0) && (c[j].y > c[j - 1].y)) +UNSUPPORTED("a6ze9ec2noj595b0aw7s8h7id"); // c[j].y = c[j - 1].y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2zhwm9ypobvcurq5wram1qiil"); // low = 0.0; +UNSUPPORTED("2ee14osydbs80okw31an3ngjg"); // high = 1.0; +UNSUPPORTED("8vxyvy38lzpbd83cu26nejaan"); // do { +UNSUPPORTED("aclx3e6mwmv4x6wtctvdpafcb"); // t = (low + high) / 2.0; +UNSUPPORTED("c609yg89bcwhbtz2sjavo4mo0"); // p = Bezier(c, 3, t, (void *)0, (void *)0); +UNSUPPORTED("7tmwl314qsfq3dcvb5u9uyknb"); // d = p.y - y; +UNSUPPORTED("2b3fbztokpi7ure6eux7qupf8"); // if (ABS(d) <= 1) +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("d8gdi8364l2gqf1f2o8j20nhe"); // if (d < 0) +UNSUPPORTED("ckgl1j6wm8pbqhae0gpdab4qk"); // high = t; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("12xca5z3d0sj7sp9cgyqxop4f"); // low = t; +UNSUPPORTED("6agdm6388u3r4v7kc6ho2hxhu"); // } while (1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5jdhcgi82gtmvn690v78zmkpe"); // p.y = y; +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4ws2d4r4z8psnleuxber6j3s6 +// pointf neato_closest(splines * spl, pointf p) +public static Object neato_closest(Object... arg) { +UNSUPPORTED("8hg1y8i9xy00n3blyechtqvvh"); // pointf neato_closest(splines * spl, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cickuxw2k5um9ssxcufe5ny0h"); // /* this is a stub so that we can share a common emit.c between dot and neato */ +UNSUPPORTED("b5hsyvf8h7g1m8n1qzbi0hrry"); // return spline_at_y(spl, p.y); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 8s6oop1ayag35eusof2rgdb5b +// static int Tflag + + + + +//3 ak4q69g3z2si69q7q6mmtp9qi +// void gvToggle(int s) +public static Object gvToggle(Object... arg) { +UNSUPPORTED("46ptgxtzrw0bu7ggbzxrodqnw"); // void gvToggle(int s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dxdyekcrbykzppszumnvmrogc"); // Tflag = !Tflag; +UNSUPPORTED("9zus728u8e05ja3xahcrlzmsr"); // signal(SIGUSR1, gvToggle); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6h6t4myqjvz5d7nv9s4fme7ol +// int test_toggle() +public static Object test_toggle(Object... arg) { +UNSUPPORTED("66b64g196uijyd7jhapf68wvg"); // int test_toggle() +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7op0qt5n8bs6z3ptnpbps1ikb"); // return Tflag; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cr81drt18h5feqzxyh3jb0u49 +// void common_init_node(node_t * n) +public static void common_init_node(Agnode_s n) { +ENTERING("cr81drt18h5feqzxyh3jb0u49","common_init_node"); +try { + fontinfo fi = (fontinfo) Memory.malloc(fontinfo.class); + CString str; + ND_width(n, + late_double(n, Z._().N_width, 0.75, 0.01)); + ND_height(n, + late_double(n, Z._().N_height, 0.5, 0.02)); + ND_shape(n, + bind_shape(late_nnstring(n, Z._().N_shape, new CString("ellipse")), n)); + str = agxget(n, Z._().N_label); + fi.setDouble("fontsize", late_double(n, Z._().N_fontsize, 14.0, 1.0)); + fi.setPtr("fontname", late_nnstring(n, Z._().N_fontname, new CString("Times-Roman"))); + fi.setPtr("fontcolor", late_nnstring(n, Z._().N_fontcolor, new CString("black"))); + ND_label(n, make_label(n, str, + ((aghtmlstr(str)!=0 ? (1 << 1) : (0 << 1)) | ( (shapeOf(n) == enumAsInt(shape_kind.class, "SH_RECORD")) ? (2 << 1) : (0 << 1))), + fi.getDouble("fontsize"), fi.getCString("fontname"), fi.getCString("fontcolor"))); + if (Z._().N_xlabel!=null && (str = agxget(n, Z._().N_xlabel))!=null && (str.charAt(0)!='\0')) { +UNSUPPORTED("4ua9vld76wpovsm1celv2ff6e"); // ND_xlabel(n) = make_label((void*)n, str, (aghtmlstr(str) ? (1 << 1) : (0 << 1)), +UNSUPPORTED("b0zm6fkpjlt9jacykbgugjodg"); // fi.fontsize, fi.fontname, fi.fontcolor); +UNSUPPORTED("ail0d4qmxj2aqh2q721inwgqu"); // GD_has_labels(agraphof(n)) |= (1 << 4); + } + ND_showboxes(n, late_int(n, Z._().N_showboxes, 0, 0)); + ND_shape(n).getPtr("fns").call("initfn", n); +} finally { +LEAVING("cr81drt18h5feqzxyh3jb0u49","common_init_node"); +} +} + + + + +//3 d2v8l80y27ue2fag5c0qplah8 +// static void initFontEdgeAttr(edge_t * e, struct fontinfo *fi) +public static void initFontEdgeAttr(Agedge_s e, fontinfo fi) { +ENTERING("d2v8l80y27ue2fag5c0qplah8","initFontEdgeAttr"); +try { + fi.setDouble("fontsize", late_double(e, Z._().E_fontsize, 14.0, 1.0)); + fi.setPtr("fontname", late_nnstring(e, Z._().E_fontname, new CString("Times-Roman"))); + fi.setPtr("fontcolor", late_nnstring(e, Z._().E_fontcolor, new CString("black"))); +} finally { +LEAVING("d2v8l80y27ue2fag5c0qplah8","initFontEdgeAttr"); +} +} + + + + +//3 ak3pxrdrq900wymudwnjmbito +// static void initFontLabelEdgeAttr(edge_t * e, struct fontinfo *fi, struct fontinfo *lfi) +public static Object initFontLabelEdgeAttr(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("64kdcuymwqrq619sxnmgnuyal"); // initFontLabelEdgeAttr(edge_t * e, struct fontinfo *fi, +UNSUPPORTED("rd78u02b7ldtc7gt7aw5t8fz"); // struct fontinfo *lfi) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9rkwm6oonv051kf4hnage0877"); // if (!fi->fontname) initFontEdgeAttr(e, fi); +UNSUPPORTED("aok5f09eydgwsqtsl0xmmhft"); // lfi->fontsize = late_double(e, E_labelfontsize, fi->fontsize, 1.0); +UNSUPPORTED("aviu0lhq8s4ez3n8cil4bwac6"); // lfi->fontname = late_nnstring(e, E_labelfontname, fi->fontname); +UNSUPPORTED("75il36n46r24ag5njqgshp8xz"); // lfi->fontcolor = late_nnstring(e, E_labelfontcolor, fi->fontcolor); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bgnk1zwht9rwx6thmly98iofb +// static boolean noClip(edge_t *e, attrsym_t* sym) +public static boolean noClip(Agedge_s e, Agsym_s sym) { +ENTERING("bgnk1zwht9rwx6thmly98iofb","noClip"); +try { + CString str; + boolean rv = false; + if (sym!=null) { /* mapbool isn't a good fit, because we want "" to mean true */ + str = agxget(e,sym); + if (str!=null && str.charAt(0)!='\0') rv = !mapbool(str); + else rv = false; + } + return rv; +} finally { +LEAVING("bgnk1zwht9rwx6thmly98iofb","noClip"); +} +} + + + + +//3 9vnr1bc7p533acazoxbhbfmx3 +// static port chkPort (port (*pf)(node_t*, char*, char*), node_t* n, char* s) +public static __struct__ chkPort(CFunction pf, Agnode_s n, CString s) { +// WARNING!! STRUCT +return chkPort_w_(pf, n, s).copy(); +} +private static __struct__ chkPort_w_(CFunction pf, Agnode_s n, CString s) { +ENTERING("9vnr1bc7p533acazoxbhbfmx3","chkPort"); +try { + final __struct__ pt = __struct__.from(port.class); + CString cp=null; + if(s!=null) + cp= strchr(s,':'); + if (cp!=null) { +UNSUPPORTED("cbuf05ko7kaxq2n9zw35l5v2h"); // *cp = '\0'; +UNSUPPORTED("7ofc3q8txvlvus6qwefbnbaxu"); // pt = pf(n, s, cp+1); +UNSUPPORTED("971i954brvgqb35cftazlqhon"); // *cp = ':'; +UNSUPPORTED("2o9oidtrr5gspl1dh6vnz7mlz"); // pt.name = cp+1; + } + else + pt.____((__struct__) pf.exe(n, s, null)); + pt.setPtr("name", s); + return pt; +} finally { +LEAVING("9vnr1bc7p533acazoxbhbfmx3","chkPort"); +} +} + + + + +//3 3aqh64lxwv4da2snfe7fvr45b +// int common_init_edge(edge_t * e) +public static int common_init_edge(Agedge_s e) { +ENTERING("3aqh64lxwv4da2snfe7fvr45b","common_init_edge"); +try { + CString str; + int r = 0; + final __struct__ fi = __struct__.from(fontinfo.class); + final __struct__ lfi = __struct__.from(fontinfo.class); + Agraph_s sg = agraphof(agtail(e)); + fi.setPtr("fontname", null); + lfi.setPtr("fontname", null); + if (Z._().E_label!=null && (str = agxget(e, Z._().E_label))!=null && (str.charAt(0)!='\0')) { + r = 1; + initFontEdgeAttr(e, fi.amp()); + ED_label(e, make_label(e, str, (aghtmlstr(str)!=0 ? (1 << 1) : (0 << 1)), + fi.getDouble("fontsize"), fi.getCString("fontname"), fi.getCString("fontcolor"))); + GD_has_labels(sg, GD_has_labels(sg) | (1 << 0)); + ED_label_ontop(e, + mapbool(late_string(e, Z._().E_label_float, new CString("false")))); + } + if (Z._().E_xlabel!=null && (str = agxget(e, Z._().E_xlabel))!=null && (str.charAt(0)!='\0')) { +UNSUPPORTED("1j3mhgq7abuh3n19q2jtjddbc"); // if (!fi.fontname) +UNSUPPORTED("bmqo2g5g107quod3h31r8iudr"); // initFontEdgeAttr(e, &fi); +UNSUPPORTED("3s7kg9x748riuy3tm697s6e8t"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->xlabel) = make_label((void*)e, str, (aghtmlstr(str) ? (1 << 1) : (0 << 1)), +UNSUPPORTED("b0zm6fkpjlt9jacykbgugjodg"); // fi.fontsize, fi.fontname, fi.fontcolor); +UNSUPPORTED("c078bypfszv0nsvp1nc0x28wx"); // (((Agraphinfo_t*)(((Agobj_t*)(sg))->data))->has_labels) |= (1 << 5); + } + /* vladimir */ + if (Z._().E_headlabel!=null && (str = agxget(e, Z._().E_headlabel))!=null && (str.charAt(0)!='\0')) { +UNSUPPORTED("cgznvdnh671wl8jq8q3tyhv1r"); // initFontLabelEdgeAttr(e, &fi, &lfi); +UNSUPPORTED("6nfh8swason2akjp45hm0o5b0"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->head_label) = make_label((void*)e, str, (aghtmlstr(str) ? (1 << 1) : (0 << 1)), +UNSUPPORTED("eu3ztkfva2x87y72tnu7vv4re"); // lfi.fontsize, lfi.fontname, lfi.fontcolor); +UNSUPPORTED("axtvdewh7zhtm1diu8c6dprx4"); // (((Agraphinfo_t*)(((Agobj_t*)(sg))->data))->has_labels) |= (1 << 1); + } + if (Z._().E_taillabel!=null && (str = agxget(e, Z._().E_taillabel))!=null && (str.charAt(0)!='\0')) { +UNSUPPORTED("6y6e1y496y6j6a6065nfesr8o"); // if (!lfi.fontname) +UNSUPPORTED("4w2bicw8rsgyy40x0vhyzzlnm"); // initFontLabelEdgeAttr(e, &fi, &lfi); +UNSUPPORTED("ans0pi92t6ou5mworb3ohiqj3"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->tail_label) = make_label((void*)e, str, (aghtmlstr(str) ? (1 << 1) : (0 << 1)), +UNSUPPORTED("eu3ztkfva2x87y72tnu7vv4re"); // lfi.fontsize, lfi.fontname, lfi.fontcolor); +UNSUPPORTED("50hobbhvpqr6dj302waqr59mu"); // (((Agraphinfo_t*)(((Agobj_t*)(sg))->data))->has_labels) |= (1 << 2); + } + /* end vladimir */ + /* We still accept ports beginning with colons but this is deprecated + * That is, we allow tailport = ":abc" as well as the preferred + * tailport = "abc". + */ + str = agget(e, new CString("tailport")); + /* libgraph always defines tailport/headport; libcgraph doesn't */ + if (N(str)) str = new CString(""); + if (str!=null && str.charAt(0)!='\0') +UNSUPPORTED("j71lo2acx1ydov0uj7xjjce"); // (((Agnodeinfo_t*)(((Agobj_t*)(((((((Agobj_t*)(e))->tag).objtype) == 3?(e):((e)+1))->node)))->data))->has_port) = (!(0)); + + ED_tail_port(e, chkPort ((CFunction) ND_shape(agtail(e)).getPtr("fns").getPtr("portfn"), agtail(e), str)); + if (noClip(e, Z._().E_tailclip)) +UNSUPPORTED("cg4z67u0dm6h9nrcx8kkalnlt"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->tail_port).clip = 0; + str = agget(e, new CString("headport")); + /* libgraph always defines tailport/headport; libcgraph doesn't */ + if (N(str)) str = new CString(""); + if (str!=null && str.charAt(0)!='\0') +UNSUPPORTED("542y57dbsosmjvsmdnzon2qb5"); // (((Agnodeinfo_t*)(((Agobj_t*)(((((((Agobj_t*)(e))->tag).objtype) == 2?(e):((e)-1))->node)))->data))->has_port) = (!(0)); + + ED_head_port(e, chkPort((CFunction) ND_shape(aghead(e)).getPtr("fns").getPtr("portfn"), aghead(e), str)); + + if (noClip(e, Z._().E_headclip)) +UNSUPPORTED("ayqscz30ekhcje94wh4ib1hcu"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->head_port).clip = 0; + return r; +} finally { +LEAVING("3aqh64lxwv4da2snfe7fvr45b","common_init_edge"); +} +} + + + + +//3 3mkqvtbyq9j8ktzil6t7vakg5 +// static boxf addLabelBB(boxf bb, textlabel_t * lp, boolean flipxy) +public static __struct__ addLabelBB(final __struct__ bb, textlabel_t lp, boolean flipxy) { +// WARNING!! STRUCT +return addLabelBB_w_(bb.copy(), lp, flipxy).copy(); +} +private static __struct__ addLabelBB_w_(final __struct__ bb, textlabel_t lp, boolean flipxy) { +ENTERING("3mkqvtbyq9j8ktzil6t7vakg5","addLabelBB"); +try { + double width, height; + final __struct__ p = __struct__.from(pointf.class); + p.____(lp.getStruct("pos")); + double min, max; + if (flipxy) { + height = lp.getStruct("dimen").getDouble("x"); + width = lp.getStruct("dimen").getDouble("y"); + } + else { + width = lp.getStruct("dimen").getDouble("x"); + height = lp.getStruct("dimen").getDouble("y"); + } + min = p.getDouble("x") - width / 2.; + max = p.getDouble("x") + width / 2.; + if (min < bb.getStruct("LL").getDouble("x")) + bb.getStruct("LL").setDouble("x", min); + if (max > bb.getStruct("UR").getDouble("x")) + bb.getStruct("UR").setDouble("x", max); + min = p.getDouble("y") - height / 2.; + max = p.getDouble("y") + height / 2.; + if (min < bb.getStruct("LL").getDouble("y")) + bb.getStruct("LL").setDouble("y", min); + if (max > bb.getStruct("UR").getDouble("y")) + bb.getStruct("UR").setDouble("y", max); + return bb; +} finally { +LEAVING("3mkqvtbyq9j8ktzil6t7vakg5","addLabelBB"); +} +} + + + + +//3 abydt85ykexa59r4o9fw9r77o +// boxf polyBB (polygon_t* poly) +public static Object polyBB(Object... arg) { +UNSUPPORTED("eog6k627mwt0j7tauh94xvup8"); // boxf +UNSUPPORTED("a4oqb702qwzmhj4ubv8nvwnut"); // polyBB (polygon_t* poly) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9qkiyn1vv2k6crbg8xakskx7r"); // int i, sides = poly->sides; +UNSUPPORTED("wqb7ise36l84z7bv4eo0jk8e"); // int peris = MAX(poly->peripheries,1); +UNSUPPORTED("f32j3p304siaf3gv4nw2fjxyd"); // pointf* verts = poly->vertices + (peris-1)*sides; +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("b6nw09v79k31a4rwwrm78jena"); // bb.LL = bb.UR = verts[0]; +UNSUPPORTED("c3ab28lpww2nrulbu0e7eei8t"); // for (i = 1; i < sides; i++) { +UNSUPPORTED("docqulnbkxq1u4xzeygy173ha"); // bb.LL.x = MIN(bb.LL.x,verts[i].x); +UNSUPPORTED("162k3p74x02qk563wm0i4f5wy"); // bb.LL.y = MIN(bb.LL.y,verts[i].y); +UNSUPPORTED("2puay77reaetlg69b3esmertj"); // bb.UR.x = MAX(bb.UR.x,verts[i].x); +UNSUPPORTED("f4uggsyc6kisqh04h7ykmypit"); // bb.UR.y = MAX(bb.UR.y,verts[i].y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5v5hh30squmit8o2i5hs25eig"); // return bb; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bz7kjecium6a7xa39qfobwwnc +// void updateBB(graph_t * g, textlabel_t * lp) +public static void updateBB(Agraph_s g, textlabel_t lp) { +ENTERING("bz7kjecium6a7xa39qfobwwnc","updateBB"); +try { + GD_bb(g).____(addLabelBB(GD_bb(g), lp, GD_flip(g)!=0)); +} finally { +LEAVING("bz7kjecium6a7xa39qfobwwnc","updateBB"); +} +} + + + + +//3 2dhrilz05n4iopa5go0ir09tq +// void compute_bb(graph_t * g) +public static Object compute_bb(Object... arg) { +UNSUPPORTED("43z8pxvn2vwb16wsrtd6eb4x4"); // void compute_bb(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("84lrde5ocrrgm9zv1ge9e8pwa"); // boxf b, bb; +UNSUPPORTED("bzz7vodjegzgwxp8jzgkq3uti"); // boxf BF; +UNSUPPORTED("5tn3u3gu9sfzv423lmms9ruht"); // pointf ptf, s2; +UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j; +UNSUPPORTED("331ilq8vsdj6hvow2dqcknbw9"); // if ((agnnodes(g) == 0) && (GD_n_cluster(g) ==0)) { +UNSUPPORTED("6v3sw7pm6nazbrivryo4463ge"); // bb.LL = pointfof(0, 0); +UNSUPPORTED("8fv5furomnqnewjrz8lsz5ks5"); // bb.UR = pointfof(0, 0); +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f2nzvg1xnr11v28w2feg923cs"); // bb.LL = pointfof(INT_MAX, INT_MAX); +UNSUPPORTED("7tttoj8cnxfqgnq2aagnnav48"); // bb.UR = pointfof(-INT_MAX, -INT_MAX); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("bp0gyw9zhjswqzd12yj9rxiao"); // ptf = coord(n); +UNSUPPORTED("9vcwhl1ztgy395x3g3p27b3vp"); // s2.x = ND_xsize(n) / 2.0; +UNSUPPORTED("97s3sp93769x79ow3rretvxt6"); // s2.y = ND_ysize(n) / 2.0; +UNSUPPORTED("ecbpdzff34gb4naalyrxe5vzo"); // b.LL = sub_pointf(ptf, s2); +UNSUPPORTED("52nsauaebr58m4f8afw1zu6mi"); // b.UR = add_pointf(ptf, s2); +UNSUPPORTED("1p5j3as8potjryco1p28zv0ns"); // EXPANDBB(bb,b); +UNSUPPORTED("1nfehzcu9dg4m0zqniggw0myh"); // if (ND_xlabel(n) && ND_xlabel(n)->set) { +UNSUPPORTED("34rij3kl1x5ia5ytk2qaqgw7i"); // bb = addLabelBB(bb, ND_xlabel(n), GD_flip(g)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("919e52wzxh255quxj0nzwukfl"); // if (ED_spl(e) == 0) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("ah9ldbdg46psh3ic9qv1v1w1h"); // for (i = 0; i < ED_spl(e)->size; i++) { +UNSUPPORTED("96deowae58qes8jszwjgwchpi"); // for (j = 0; j < (((Agedgeinfo_t*)AGDATA(e))->spl)->list[i].size; j++) { +UNSUPPORTED("bm6ktup8tdejk1tq38xkq18zx"); // ptf = ED_spl(e)->list[i].list[j]; +UNSUPPORTED("8xyn6e9qgao43nsgse8ya790b"); // EXPANDBP(bb,ptf); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("bbijzcnlrgsrkf9c3lvyq1j3w"); // if (ED_label(e) && ED_label(e)->set) { +UNSUPPORTED("2d569ynk5qigji0zshsuvzop9"); // bb = addLabelBB(bb, ED_label(e), GD_flip(g)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("7l6ztc2uyzzyyw47jkbmwrvpq"); // if (ED_head_label(e) && ED_head_label(e)->set) { +UNSUPPORTED("298664pi1qebzix2j1gdtf6rl"); // bb = addLabelBB(bb, ED_head_label(e), GD_flip(g)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("bs3i08itd9j5yeohefoglkqh5"); // if (ED_tail_label(e) && ED_tail_label(e)->set) { +UNSUPPORTED("f4hck0g41boxn60os1w41wcok"); // bb = addLabelBB(bb, ED_tail_label(e), GD_flip(g)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ceshtn0f3py2v4gcpqi8gemwj"); // if (ED_xlabel(e) && ED_xlabel(e)->set) { +UNSUPPORTED("9ssocbm4ep6gx5dquinuttjh4"); // bb = addLabelBB(bb, ED_xlabel(e), GD_flip(g)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7naa6f8pevjidfr7m41eli6xj"); // for (i = 1; i <= GD_n_cluster(g); i++) { +UNSUPPORTED("ayvgjv5zau71cgcmznfyselk7"); // B2BF(GD_bb(GD_clust(g)[i]), BF); +UNSUPPORTED("43e6y2c5ngcxuspv36aq0fc8k"); // EXPANDBB(bb,BF); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6rirb177r8kbx1j7f9jeot4rl"); // if (GD_label(g) && GD_label(g)->set) { +UNSUPPORTED("8n0mzjgupx6e90manf0a8tmtc"); // bb = addLabelBB(bb, GD_label(g), GD_flip(g)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8pjanfm12ixxbeb7k86g3z5p4"); // GD_bb(g) = bb; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1ihcngl4nnl0l3a4lazjawjak +// int is_a_cluster (Agraph_t* g) +public static Object is_a_cluster(Object... arg) { +UNSUPPORTED("c7v1kpsifryrniar3pr9lj2vb"); // int is_a_cluster (Agraph_t* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ey170unvby4qz57rfy4vs0l9f"); // return ((g == g->root) || (!strncasecmp(agnameof(g), "cluster", 7))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3eb5x8fxszk05rs03aw3w8bal +// Agsym_t *setAttr(graph_t * g, void *obj, char *name, char *value, Agsym_t * ap) +public static Object setAttr(Object... arg) { +UNSUPPORTED("7hwd7388n90vnhk5ry6nk24pv"); // Agsym_t *setAttr(graph_t * g, void *obj, char *name, char *value, +UNSUPPORTED("4gdje67ttlpied9791ewdlrd0"); // Agsym_t * ap) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cofg42y3teruvnmgv4yvovh4w"); // if (ap == (void *)0) { +UNSUPPORTED("6wt2bbghw1qt1af7ak7o9gfgo"); // switch (agobjkind(obj)) { +UNSUPPORTED("9t6es77h0301xk4n035emz6o"); // case AGRAPH: +UNSUPPORTED("84ratfisjulkdxpfwy3c9htyz"); // ap = agattr(g, AGRAPH,name, ""); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4ih7nalu307xv8wvdpmgy537r"); // case AGNODE: +UNSUPPORTED("71ugdg0a02c8zpt280ynq3cea"); // ap = agattr(g,AGNODE, name, ""); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5lnuird1e17irkx6ami31gay1"); // case AGEDGE: +UNSUPPORTED("8xoc5xyqthnaqwgkuofzm1lup"); // ap = agattr(g,AGEDGE, name, ""); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("brfoeqd4pjsygr0tiki0f7wch"); // agxset(obj, ap, value); +UNSUPPORTED("b8cimfvcp1vea97hyfr4m9nix"); // return ap; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 68c4u42h1oec8puw4huxzsram +// static node_t *clustNode(node_t * n, graph_t * cg, agxbuf * xb, graph_t * clg) +public static Object clustNode(Object... arg) { +UNSUPPORTED("expuexpqhy52jx8egr4nmadbq"); // static node_t *clustNode(node_t * n, graph_t * cg, agxbuf * xb, +UNSUPPORTED("83ctmg1k8dzy4himebqtr1m1y"); // graph_t * clg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cn1mqtf5jsxe76q0gt0zfucwm"); // node_t *cn; +UNSUPPORTED("dyafhx3n373qe83tgg0ggtqew"); // static int idx = 0; +UNSUPPORTED("f1winj1vhwrg5thteiqcqi29i"); // char num[100]; +UNSUPPORTED("5mmb3522ptm4mcf9evx60ajew"); // agxbput(xb, "__"); +UNSUPPORTED("e2g1diasmnmoy22hb3tpytznw"); // sprintf(num, "%d", idx++); +UNSUPPORTED("2k35glrj7msg2hog9ut7u9nr7"); // agxbput(xb, num); +UNSUPPORTED("9jhngs0d5bkz6h4vpq5lnoyga"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)':'))); +UNSUPPORTED("a5rh1qp81ztiwxfywpk0vcapj"); // agxbput(xb, agnameof(cg)); +UNSUPPORTED("67zj9gekg6ygql1z3r0ph931y"); // cn = agnode(agroot(cg), (((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)'\0'))),(char*)((xb)->ptr = (xb)->buf)), 1); +UNSUPPORTED("1xux6s5s5ce4cl1ihunt2957f"); // agbindrec(cn, "Agnodeinfo_t", sizeof(Agnodeinfo_t), (!(0))); +UNSUPPORTED("8pf78abddkqif7nnus196p6w9"); // (ND_clustnode(cn) = (!(0))); +UNSUPPORTED("952l8hivvgcu9neihd5oejkne"); // agsubnode(cg,cn,1); +UNSUPPORTED("7rpor9cu2a5ytz59ky3yzzf3e"); // //aginsert(cg, cn); +UNSUPPORTED("bnwdscnff1ajygbrinebw5tzy"); // agsubnode(clg,n,1); +UNSUPPORTED("b4oovl1t2xbj981x521u2wqw9"); // //aginsert(clg, n); +UNSUPPORTED("8l8f1yq18trxwvv7v0vnjksyn"); // /* set attributes */ +UNSUPPORTED("9xlhovy1a3tm3x50qm5at98wv"); // N_label = setAttr(agraphof(cn), cn, "label", "", N_label); +UNSUPPORTED("ejig5v0kmrb3iq04qsqioadrf"); // N_style = setAttr(agraphof(cn), cn, "style", "invis", N_style); +UNSUPPORTED("3x5fnrqc7r2ikzr4lb8pn0wc5"); // N_shape = setAttr(agraphof(cn), cn, "shape", "box", N_shape); +UNSUPPORTED("a1e5vm1ljhru5haksozb6im5i"); // /* N_width = setAttr (cn->graph, cn, "width", "0.0001", N_width); */ +UNSUPPORTED("f03wmos529in1bb9hvup5hhai"); // return cn; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1dr4tu5yewu3tcstfq3jkcfg +// static int cmpItem(Dt_t * d, void *p1[], void *p2[], Dtdisc_t * disc) +public static Object cmpItem(Object... arg) { +UNSUPPORTED("2l8537eo2smrl3yniwkv96fhy"); // static int cmpItem(Dt_t * d, void *p1[], void *p2[], Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6z29omss9ay00bqf6xael7t6t"); // (void) d; +UNSUPPORTED("8l8wg6vltx6d7vc9dzqb6n3wi"); // (void) disc; +UNSUPPORTED("5dlkskltbjfd7l3iojdmxbfe7"); // if (p1[0] < p2[0]) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("6eiz5nxr8kgzbn75d0p98o9d3"); // else if (p1[0] > p2[0]) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("bbxeh2ijuksbga6h6yu50yytg"); // else if (p1[1] < p2[1]) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("6abzwq2ia723vgf1rf1i65f5d"); // else if (p1[1] > p2[1]) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bsharuh63hyx8gytgj0drcbxn +// static void *newItem(Dt_t * d, item * objp, Dtdisc_t * disc) +public static Object newItem(Object... arg) { +UNSUPPORTED("akr8nubtu1wjzyw77dyu7l818"); // static void *newItem(Dt_t * d, item * objp, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("99a4mnjdm29dtq83hvtof51ni"); // item *newp = (item*)zmalloc(sizeof(item)); +UNSUPPORTED("8l8wg6vltx6d7vc9dzqb6n3wi"); // (void) disc; +UNSUPPORTED("7o3keent8kekj52p9qb43ethl"); // newp->p[0] = objp->p[0]; +UNSUPPORTED("3wxc6pdiqxckjf8y7mwlj0am9"); // newp->p[1] = objp->p[1]; +UNSUPPORTED("8gwlx3jj25pxng8pmk9zrtusa"); // newp->t = objp->t; +UNSUPPORTED("9fhk60i1gsni0emh9jwo0y1ts"); // newp->h = objp->h; +UNSUPPORTED("4enxnv484o23jodrkf81rxdg0"); // return newp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k3952c7spf98nnxwfwnp246t +// static void freeItem(Dt_t * d, item * obj, Dtdisc_t * disc) +public static Object freeItem(Object... arg) { +UNSUPPORTED("8rxgun8stoo6nah2bndbm87b9"); // static void freeItem(Dt_t * d, item * obj, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8are8jqzwfj87yj4tkaohi3tf"); // free(obj); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 3q539ycox1bllayps038bsksa +// static Dtdisc_t mapDisc = + + + + +//3 cmped1c3ho0jglvwjjj6a228t +// static edge_t *cloneEdge(edge_t * e, node_t * ct, node_t * ch) +public static Object cloneEdge(Object... arg) { +UNSUPPORTED("d4tyhi7zzf9xmns1lnu336v3r"); // static edge_t *cloneEdge(edge_t * e, node_t * ct, node_t * ch) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3uzp3aqejf5j0yv2yj4jw5aj"); // graph_t *g = agraphof(ct); +UNSUPPORTED("7k2dgu104ye2c3d50mokkgwhz"); // edge_t *ce = agedge(g, ct, ch,(void *)0,1); +UNSUPPORTED("1927pqk9hk6k5d7t1k9he6aa9"); // agbindrec(ce, "Agedgeinfo_t", sizeof(Agedgeinfo_t), (!(0))); +UNSUPPORTED("a8urs3zuslesi9orp6p4z1i6f"); // agcopyattr(e, ce); +UNSUPPORTED("8yr3irjwjiayt2t3izgwmnj9g"); // return ce; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c5a3lmz7tpara4c6bxtihr7m6 +// static void insertEdge(Dt_t * map, void *t, void *h, edge_t * e) +public static Object insertEdge(Object... arg) { +UNSUPPORTED("9k64e2wql9m602qa681rgo7i7"); // static void insertEdge(Dt_t * map, void *t, void *h, edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7lw765nir8wljj9gzis4zqedg"); // item dummy; +UNSUPPORTED("8nu1ezwxni2hxz2f9e8v2cbb8"); // dummy.p[0] = t; +UNSUPPORTED("bc8q41s8rexxkeopidu04qewp"); // dummy.p[1] = h; +UNSUPPORTED("4tdxi6d9w3ukmzktg7xfyiq7q"); // dummy.t = agtail(e); +UNSUPPORTED("7382qi1yckci5zkxxyjphhdt1"); // dummy.h = aghead(e); +UNSUPPORTED("bdurkecw4pa63pn37lkh7haq3"); // (*(((Dt_t*)(map))->searchf))((map),(void*)(&dummy),0000001); +UNSUPPORTED("bb527tszlzw34gp1ih1xn1iar"); // dummy.p[0] = h; +UNSUPPORTED("47zbtmrffd896ojei9okz9ed1"); // dummy.p[1] = t; +UNSUPPORTED("9vuag0zig6ymzak8fo6r3sda1"); // dummy.t = aghead(e); +UNSUPPORTED("6kdaphe8fi7139t83macqveyb"); // dummy.h = agtail(e); +UNSUPPORTED("bdurkecw4pa63pn37lkh7haq3"); // (*(((Dt_t*)(map))->searchf))((map),(void*)(&dummy),0000001); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dkpu53gf0kuy7km1pxs1quv6w +// static item *mapEdge(Dt_t * map, edge_t * e) +public static Object mapEdge(Object... arg) { +UNSUPPORTED("8o6iypv3kzhmwkk0ssw2py2yj"); // static item *mapEdge(Dt_t * map, edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2mkazi3rdjs334ce8xp82ihtk"); // void *key[2]; +UNSUPPORTED("dhcqq0dsnymbpdjw0w7s03fp"); // key[0] = agtail(e); +UNSUPPORTED("djzhgnjk5pxpyo8hhiad0bwfd"); // key[1] = aghead(e); +UNSUPPORTED("42lnw96k38ctgmg8vg0dkcazj"); // return (item *) (*(((Dt_t*)(map))->searchf))((map),(void*)(&key),0001000); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 evei1rlt3rpux3ayqs9tyofmw +// static void checkCompound(edge_t * e, graph_t * clg, agxbuf * xb, Dt_t * map, Dt_t* cmap) +public static Object checkCompound(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("y76yzntmrne9d5t1m4t7ott3"); // checkCompound(edge_t * e, graph_t * clg, agxbuf * xb, Dt_t * map, Dt_t* cmap) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("24xfyvovg3es787o11thrjc92"); // graph_t *tg; +UNSUPPORTED("a3ojwgag8ldublzh73whg427o"); // graph_t *hg; +UNSUPPORTED("cn1mqtf5jsxe76q0gt0zfucwm"); // node_t *cn; +UNSUPPORTED("apkwzmnbl05ohutf7wes9igj2"); // node_t *cn1; +UNSUPPORTED("7jj1xtfi4cbw5y6yhlzh0mli4"); // node_t *t = agtail(e); +UNSUPPORTED("7sdvsuo2rbo6of75bzleek8qf"); // node_t *h = aghead(e); +UNSUPPORTED("2dc0glyu5z80juidpelk52ugz"); // edge_t *ce; +UNSUPPORTED("11hik2e4x4z9iutby72hbrzgx"); // item *ip; +UNSUPPORTED("dvxbl4pteylrj225li1lb6hx2"); // if ((ND_clustnode(h))) return; +UNSUPPORTED("6mxhjii0vool4e7v7ro88ozt"); // tg = (strncmp(agnameof(t),"cluster",7)?(void *)0:findCluster(cmap,agnameof(t))); +UNSUPPORTED("9h0q9kw3f1tenf4puz9oi64l"); // hg = (strncmp(agnameof(h),"cluster",7)?(void *)0:findCluster(cmap,agnameof(h))); +UNSUPPORTED("h9gulavvyc3ipss9cgex8x3k"); // if (!tg && !hg) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("60xmxr4vqgqctofdynktmr7o1"); // if (tg == hg) { +UNSUPPORTED("dr3nbzpzpx0aupm54j364opox"); // agerr(AGWARN, "cluster cycle %s -- %s not supported\n", agnameof(t), +UNSUPPORTED("4t2kykme4iu9016m9s14od6yh"); // agnameof(t)); +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5hnveujdt658bi20dkn93pkes"); // ip = mapEdge(map, e); +UNSUPPORTED("bct0h7obrwmyxyjpdlga0lo14"); // if (ip) { +UNSUPPORTED("6tq7d69sgwkznt9jdlhl5jzdj"); // cloneEdge(e, ip->t, ip->h); +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("85v9wkuzgj377kagk2q32243s"); // if (hg) { +UNSUPPORTED("8esnbcsvq7wtwxyn2ds3qnzxr"); // if (tg) { +UNSUPPORTED("18jmtdvbt3bs4fj4fu02ry30e"); // if (agcontains(hg, tg)) { +UNSUPPORTED("97u64gola1vplk8cvf8wg60bh"); // agerr(AGWARN, "tail cluster %s inside head cluster %s\n", +UNSUPPORTED("369r4tljymt875kkmgpkpyt8l"); // agnameof(tg), agnameof(hg)); +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8o34cjwrgpnrquyxl2o3bb8zk"); // if (agcontains(tg, hg)) { +UNSUPPORTED("9cr5cpb8befiu9fovqfiiljjl"); // agerr(AGWARN, "head cluster %s inside tail cluster %s\n", +UNSUPPORTED("fxxb0u8d3qtcacdofimmuqac"); // agnameof(hg),agnameof(tg)); +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("71igoahydbe2dr812u1rb188n"); // cn = clustNode(t, tg, xb, clg); +UNSUPPORTED("9tutq5zmo2t0l31gwnu2vwrup"); // cn1 = clustNode(h, hg, xb, clg); +UNSUPPORTED("3cqe6v0gfzo0dwfrf8ns9l15c"); // ce = cloneEdge(e, cn, cn1); +UNSUPPORTED("puotk7g3k7fy9jnp2axq0qqz"); // insertEdge(map, t, h, ce); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("apxu8gru4cebxzthha8fwtfum"); // if (agcontains(hg, t)) { +UNSUPPORTED("ch79b4wihrmywtrraz048h29q"); // agerr(AGWARN, "tail node %s inside head cluster %s\n", +UNSUPPORTED("c0gja8mg2a5tllq0cl44kobvl"); // agnameof(t), agnameof(hg)); +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("446wbqmos7b2zyj2ps1r6kuhl"); // cn = clustNode(h, hg, xb, clg); +UNSUPPORTED("bhxc2l94cwt5l1wth28b2o5pp"); // ce = cloneEdge(e, t, cn); +UNSUPPORTED("puotk7g3k7fy9jnp2axq0qqz"); // insertEdge(map, t, h, ce); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("2ps8erulnhdu23ou4uniz2hu6"); // if (agcontains(tg, h)) { +UNSUPPORTED("1cjnfqs77zdcnsm0o72f90ksk"); // agerr(AGWARN, "head node %s inside tail cluster %s\n", agnameof(h), +UNSUPPORTED("67ucv9k4148ltlnjqhl4rz86a"); // agnameof(tg)); +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2sanft0kxtxdy21i6ukf4c05t"); // cn = clustNode(t, tg, xb, clg); +UNSUPPORTED("5fxyznzitqqrmw44h44veynfw"); // ce = cloneEdge(e, cn, h); +UNSUPPORTED("c7jpyix9gxyo3vaiavoxyh155"); // insertEdge(map, t, h, ce); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dwutwgt4iv7io73xbnfs967wi +// int processClusterEdges(graph_t * g) +public static Object processClusterEdges(Object... arg) { +UNSUPPORTED("4oyug57mkqcdxkzes2u1byitf"); // int processClusterEdges(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("a9ekq0g92dftp5ha575c6yu2u"); // node_t *nxt; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("c7d686aym108b09btq8wtbaqb"); // graph_t *clg; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("ae7vbw9q2eczpdja7cbbq50pn"); // Dt_t *map; +UNSUPPORTED("6vtk1euczoz6qoydjb6zi2aw7"); // Dt_t *cmap = mkClustMap (g); +UNSUPPORTED("h0or3v13348vfl22jqz895yc"); // unsigned char buf[128]; +UNSUPPORTED("ez0qg0y6sdmbdyttclx339epy"); // map = dtopen(&mapDisc, Dtoset); +UNSUPPORTED("cpyda14dogcucergo5ci8essn"); // clg = agsubg(g, "__clusternodes",1); +UNSUPPORTED("7gy5iqkef9rpt221qibtgi0bf"); // agbindrec(clg, "Agraphinfo_t", sizeof(Agraphinfo_t), (!(0))); +UNSUPPORTED("ci65k77x1b3nq6luu69s87oup"); // agxbinit(&xb, 128, buf); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("89a8vf7uwx9v2vh8f8epycx86"); // if ((ND_clustnode(n))) continue; +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("7recxsc5i7btnkw1u0i1zrcke"); // checkCompound(e, clg, &xb, map, cmap); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1at5m9ctjn3ukv5gqtfswik02"); // agxbfree(&xb); +UNSUPPORTED("b6u4k91yj41tlxefwoh6asd20"); // dtclose(map); +UNSUPPORTED("bdsudu527hktokp1kvhusfmoe"); // rv = agnnodes(clg); +UNSUPPORTED("22i66qr930abhwgxbm0wq87o9"); // for (n = agfstnode(clg); n; n = nxt) { +UNSUPPORTED("f4noczumg69t18r8ssfanvoks"); // nxt = agnxtnode(clg, n); +UNSUPPORTED("d2695chnyayerv0xcynrkg7yd"); // agdelete(g, n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d7dekled5ml4ke75zmk09qqsx"); // agclose(clg); +UNSUPPORTED("dgwcr0xmkos3gxsam25rktyub"); // if (rv) +UNSUPPORTED("6pk8ar1h2wlfngow4ehgw89jz"); // (GD_flags(g) |= 1); +UNSUPPORTED("5gkwwtk0stiam8elj7z38rq47"); // dtclose(cmap); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5kmpn0ajfqqlgj5cw9vpfasej +// static node_t *mapN(node_t * n, graph_t * clg) +public static Object mapN(Object... arg) { +UNSUPPORTED("buha873k6dpip6wp1k6884zn8"); // static node_t *mapN(node_t * n, graph_t * clg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8cudi8s29q4uqmilbu8c75v3p"); // node_t *nn; +UNSUPPORTED("8i0d7frxcvvmzhidle0zin9i0"); // char *name; +UNSUPPORTED("3mtc40uaa6dfx8pj5lh3cyn1l"); // graph_t *g = agraphof(n); +UNSUPPORTED("av59ae8c4mws46sf5dumz1k0s"); // Agsym_t *sym; +UNSUPPORTED("bnb5n48z4b233ir0fewnxiecu"); // if (!((ND_clustnode(n)))) +UNSUPPORTED("bp96fem54xcxrw16cmnlpell9"); // return n; +UNSUPPORTED("412fabs39sm0oyvvs0n9tys7h"); // agsubnode(clg, n, 1); +UNSUPPORTED("4qyzymwl4mdlxpdvh64mgshjy"); // name = strchr(agnameof(n), ':'); +UNSUPPORTED("265kxn69043hh3vmr1ma8pbpg"); // assert(name); +UNSUPPORTED("etbl775rsebn18g7vfu6j5ffu"); // name++; +UNSUPPORTED("4y7kt4c0ur5ptmeorwazg3xbz"); // if ((nn = (agnode(g,name,0)))) +UNSUPPORTED("7dxo4qnacudla7r7y8669i5pg"); // return nn; +UNSUPPORTED("75euvmm5puodd8n68kvjjnyub"); // nn = agnode(g, name, 1); +UNSUPPORTED("a510dla8b91um8smr1ik3n40i"); // agbindrec(nn, "Agnodeinfo_t", sizeof(Agnodeinfo_t), (!(0))); +UNSUPPORTED("dhxjy107eberr96dmzpl8canc"); // /* Set all attributes to default */ +UNSUPPORTED("606mifyx9hb1bpagnmzxrlk9z"); // for (sym = agnxtattr(g, AGNODE, (void *)0); sym; (sym = agnxtattr(g, AGNODE, sym))) { +UNSUPPORTED("7rxjvkrh1kkw8g1ntegrpmqly"); // if (agxget(nn, sym) != sym->defval) +UNSUPPORTED("bfyji5ohpzlfb4najikk4a9cw"); // agxset(nn, sym, sym->defval); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ey1y9gcof82mu9xr88pebu8s3"); // return nn; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 789ww738n8t5kluf6zeo8zwsj +// static void undoCompound(edge_t * e, graph_t * clg) +public static Object undoCompound(Object... arg) { +UNSUPPORTED("4gm4tyoex45q7hsr07asvlb3v"); // static void undoCompound(edge_t * e, graph_t * clg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7jj1xtfi4cbw5y6yhlzh0mli4"); // node_t *t = agtail(e); +UNSUPPORTED("7sdvsuo2rbo6of75bzleek8qf"); // node_t *h = aghead(e); +UNSUPPORTED("e43x1qhepqnkibbp8aphz9g47"); // node_t *ntail; +UNSUPPORTED("9cji9jzlewigresgaoc0ejw5f"); // node_t *nhead; +UNSUPPORTED("uleojnk3a2mlkreb46gqu0hr"); // if (!((ND_clustnode(t)) || (ND_clustnode(h)))) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("55xujazl71m0logk60wzmjvtq"); // ntail = mapN(t, clg); +UNSUPPORTED("7g2iurz37ys33fcir84rjj0w0"); // nhead = mapN(h, clg); +UNSUPPORTED("9bery3hjtmldzatlddlbzc00j"); // cloneEdge(e, ntail, nhead); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6s7x7ut8o7wrwuw5nfdbknslk +// void undoClusterEdges(graph_t * g) +public static Object undoClusterEdges(Object... arg) { +UNSUPPORTED("xsvmylok7lqoljd2ftvt8eki"); // void undoClusterEdges(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("c7d686aym108b09btq8wtbaqb"); // graph_t *clg; +UNSUPPORTED("cpyda14dogcucergo5ci8essn"); // clg = agsubg(g, "__clusternodes",1); +UNSUPPORTED("cxzb8zj9uk5xkq6lyiraqyh5o"); // agbindrec(clg, "Agraphinfo_t", sizeof(Agraphinfo_t), (!(0))); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("e133h9i48sw1xkk4miz3q5qw6"); // undoCompound(e, clg); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6fhvmrn719v1oxev0ugv8gead"); // for (n = agfstnode(clg); n; n = agnxtnode(clg, n)) { +UNSUPPORTED("d2695chnyayerv0xcynrkg7yd"); // agdelete(g, n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d7dekled5ml4ke75zmk09qqsx"); // agclose(clg); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dwase854hhoz11vcuphugbij +// attrsym_t* safe_dcl(graph_t * g, int obj_kind, char *name, char *def) +public static Object safe_dcl(Object... arg) { +UNSUPPORTED("850d7lqcvt2dszn9wl9f6zef0"); // attrsym_t* +UNSUPPORTED("4dafq6zrc7d2eg2y3pxdhhp6k"); // safe_dcl(graph_t * g, int obj_kind, char *name, char *def) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1z0y79inqwletzkfgolwkh2mm"); // attrsym_t *a = agattr(g,obj_kind,name, (void *)0); +UNSUPPORTED("53xvsqb1bmjlv8zo5ey6uznyf"); // if (!a) /* attribute does not exist */ +UNSUPPORTED("avuy3kulsc2bvd7gtxiznnkl"); // a = agattr(g,obj_kind,name,def); +UNSUPPORTED("3gfohtnqgemf2e1akg4je944a"); // return a; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8vn95uhvbccfyutd9itvpk8vy +// static int comp_entities(const void *e1, const void *e2) +public static Object comp_entities(Object... arg) { +UNSUPPORTED("28uhwy0iibw08ehww04k9s3le"); // static int comp_entities(const void *e1, const void *e2) { +UNSUPPORTED("3c7l2zx25w9zqhkqe16urhizu"); // return strcmp(((struct entities_s *)e1)->name, ((struct entities_s *)e2)->name); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7t94y8iigozdjfx36lfzyak08 +// char* scanEntity (char* t, agxbuf* xb) +public static Object scanEntity(Object... arg) { +UNSUPPORTED("bz1schmt8gz4xlf2x79u589jz"); // char* scanEntity (char* t, agxbuf* xb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ecs59z0l3j60cvfc1n8vabb0n"); // char* endp = strchr (t, ';'); +UNSUPPORTED("bzu1jieuhoy6jahlnld5cybzk"); // struct entities_s key, *res; +UNSUPPORTED("coa0oz6l6jdsodktc0tdnc2cb"); // int len; +UNSUPPORTED("90hm5x3gtehrl08u4s3bb5h5s"); // char buf[8+1]; +UNSUPPORTED("egvn4me3pgt2km0tpawwhhk2t"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)'&'))); +UNSUPPORTED("981k5uhzqy8u4eweluhu3ajcc"); // if (!endp) return t; +UNSUPPORTED("405o5srxruhaurslvb8fxibcs"); // if (((len = endp-t) > 8) || (len < 2)) return t; +UNSUPPORTED("1m465yt5bfo53jvd170k1s0uf"); // strncpy (buf, t, len); +UNSUPPORTED("3w01p3l63zt07scumxz12foyc"); // buf[len] = '\0'; +UNSUPPORTED("22hhi6szy0artz9sx31yn993t"); // key.name = buf; +UNSUPPORTED("1p9rtkc428xvwvxqu9ulqllbq"); // res = bsearch(&key, entities, 252, +UNSUPPORTED("6ucfe24q86v1s0pnugf94k0o1"); // sizeof(entities[0]), comp_entities); +UNSUPPORTED("9degteg0v0woertf357m3p670"); // if (!res) return t; +UNSUPPORTED("62f6a0uh98flc5r4sp8ye5una"); // sprintf (buf, "%d", res->value); +UNSUPPORTED("9kxympmoesjmhxkjfyrue546g"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)'#'))); +UNSUPPORTED("5q33wkzo42rb2ovinz8n32geq"); // agxbput(xb, buf); +UNSUPPORTED("ylj9ttyordcfgahnlqhhobod"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)';'))); +UNSUPPORTED("29skqtq6yonorv6xk81t19v7j"); // return (endp+1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6ol0iqfokq31kpiqngns9cnkm +// static int htmlEntity (char** s) +public static Object htmlEntity(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("61r6m6shucv4zvnmx9obkeu9e"); // htmlEntity (char** s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("bzu1jieuhoy6jahlnld5cybzk"); // struct entities_s key, *res; +UNSUPPORTED("22sdohyy8v7963m1iifyxam9d"); // char entity_name_buf[8+1]; +UNSUPPORTED("cha3ynahkzif8mjf2aasyan4p"); // unsigned char* str = *(unsigned char**)s; +UNSUPPORTED("6iar0dtf0ozvirclx3rsu5ywk"); // unsigned int byte; +UNSUPPORTED("4q8bcbceil82j5ssfuh8q4fhu"); // int i, n = 0; +UNSUPPORTED("8xwfccpasv03cb2aijwrkxrt8"); // byte = *str; +UNSUPPORTED("f1y8qnn6iohzeg8fx1fsww8wz"); // if (byte == '#') { +UNSUPPORTED("47brdazpxh26941mcbd57m5w"); // byte = *(str + 1); +UNSUPPORTED("8lhwl4wznsahr1vgtzqnvsgqp"); // if (byte == 'x' || byte == 'X') { +UNSUPPORTED("9kdayjiewvd52f72h664pmhy4"); // for (i = 2; i < 8; i++) { +UNSUPPORTED("58bvsjm19jatr5xgbuetim3c"); // byte = *(str + i); +UNSUPPORTED("7ry0uw9esv0a55bciqzqr7dt0"); // if (byte >= 'A' && byte <= 'F') +UNSUPPORTED("efm984116x5zq1dui5ll11r0k"); // byte = byte - 'A' + 10; +UNSUPPORTED("30cf1s08yhe1dm0wfrzai7qj9"); // else if (byte >= 'a' && byte <= 'f') +UNSUPPORTED("dmoz94y1j59da7u2zxu75l949"); // byte = byte - 'a' + 10; +UNSUPPORTED("9sus494ncxh3tbij66aefjaji"); // else if (byte >= '0' && byte <= '9') +UNSUPPORTED("70r2dn1krhunm4u7uw43urh5b"); // byte = byte - '0'; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("ai4db41odnnfnokairbrylj2a"); // n = (n * 16) + byte; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("bkj5d6ozqtq7ttrkpmp5p719j"); // for (i = 1; i < 8; i++) { +UNSUPPORTED("58bvsjm19jatr5xgbuetim3c"); // byte = *(str + i); +UNSUPPORTED("2rd77g61lvh7l0oq5bxbu866w"); // if (byte >= '0' && byte <= '9') +UNSUPPORTED("c8u6dbnnbecfd71yts7yps8l8"); // n = (n * 10) + (byte - '0'); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5kruz0luqhpkxlt2rqdj7qe9y"); // if (byte == ';') { +UNSUPPORTED("e7p6jds2xupttn34j7k97koje"); // str += i+1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("902oeel2kkuedgae5ujakzjhy"); // n = 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("e63mn7kr8jrvjhx7i9grnwgnq"); // key.name = p = entity_name_buf; +UNSUPPORTED("avuwvye3hioreemrm282n46zz"); // for (i = 0; i < 8; i++) { +UNSUPPORTED("ax9o0naqvr50ld6sknp2j1b44"); // byte = *(str + i); +UNSUPPORTED("ddy91zgs9bt560h592o4j4zww"); // if (byte == '\0') break; +UNSUPPORTED("a4ymj4wcljef0f889dm6ypyc6"); // if (byte == ';') { +UNSUPPORTED("9hm2gc1ly30ctjxthh7ce9kr4"); // *p++ = '\0'; +UNSUPPORTED("3i427o0072j16pqppnwmfigbx"); // res = bsearch(&key, entities, 252, +UNSUPPORTED("d4pg41mh9zro8muax20xcn7rt"); // sizeof(entities[0]), *comp_entities); +UNSUPPORTED("4b5oorrowb2d761jp0u4kh8n1"); // if (res) { +UNSUPPORTED("xetj9qmi9xudhpu0fa8ucl4h"); // n = res->value; +UNSUPPORTED("99m08trqtau3p70at3g9nkyj6"); // str += i+1; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("d79b803cv2twmevybf99njur6"); // *p++ = byte; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("84mp0v655u5xocqmax8egxonv"); // *s = (char*)str; +UNSUPPORTED("69hc24ic55i66g8tf2ne42327"); // return n; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e3fdq03jg6298zgwjnftvhivy +// static unsigned char cvtAndAppend (unsigned char c, agxbuf* xb) +public static Object cvtAndAppend(Object... arg) { +UNSUPPORTED("at0aua2ntxsp0j1h4yidmr4si"); // static unsigned char +UNSUPPORTED("dh6zi66v19z0wdg8u346fccp4"); // cvtAndAppend (unsigned char c, agxbuf* xb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aqjwq3fk7zmi0i48c6b3bdyn1"); // char buf[2]; +UNSUPPORTED("yiuh599p05f2mpu2e3pesu2o"); // char* s; +UNSUPPORTED("a4px33i4moqe8ybwatz0g8k6"); // char* p; +UNSUPPORTED("dwe86466ugstemepdfk8yzphz"); // int len; +UNSUPPORTED("5q4ts22itevk0jgej86bk287q"); // buf[0] = c; +UNSUPPORTED("nw02pwbnc00xo3a3qlx6r8r9"); // buf[1] = '\0'; +UNSUPPORTED("20haqm26n7i0pwyh3s5hhdatk"); // p = s = latin1ToUTF8 (buf); +UNSUPPORTED("2xuf8h1bzawprd2j4asj2e8ja"); // len = strlen(s); +UNSUPPORTED("3l8ud5i4y8a5dq0mtvlvixp91"); // while (len-- > 1) +UNSUPPORTED("6pe2vbb93li7px1jaorf811ph"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)*p++))); +UNSUPPORTED("3rr9o0qklmhj4jn7bft2nr8td"); // c = *p; +UNSUPPORTED("f1430a029xzg8cabffg2k9l6j"); // free (s); +UNSUPPORTED("bskm24m9z4b23box60oxnymv"); // return c; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9yungx7uxqkmzfh2ub6gs9l48 +// char* htmlEntityUTF8 (char* s, graph_t* g) +public static CString htmlEntityUTF8(CString s, Agraph_s g) { +ENTERING("9yungx7uxqkmzfh2ub6gs9l48","htmlEntityUTF8"); +try { + LOG2("htmlEntityUTF8 "+s); +if (s!=null) return s.duplicate(); +UNSUPPORTED("1xtgr84lklglr4gz1i1m3t30"); // char* htmlEntityUTF8 (char* s, graph_t* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a86rc8dlb4bgtjxjhv43cnmup"); // static graph_t* lastg; +UNSUPPORTED("1gn88eczuyt54egtiulqe7y7h"); // static boolean warned; +UNSUPPORTED("3rzf3h52xn02xrxie111286a0"); // char* ns; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("esg3s800dx899v69pkng2kavv"); // unsigned char buf[BUFSIZ]; +UNSUPPORTED("10sir32iwi5l2jyfgp65pihto"); // unsigned char c; +UNSUPPORTED("4urrp9tny84a3cm8ycya896x3"); // unsigned int v; +UNSUPPORTED("d5druw9z4e87khtgyeivjngvc"); // int ignored; +UNSUPPORTED("4fymyfhfc3ddededhxw7cs671"); // int uc; +UNSUPPORTED("d6z43cxggqxq7iq4puyluzkfn"); // int ui; +UNSUPPORTED("4pgl4pn1cad2whf242bntmjre"); // (void) ignored; +UNSUPPORTED("t65eqheg8dxzi237a648t66j"); // if (lastg != g) { +UNSUPPORTED("emyoumradju26mhebq2bewtva"); // lastg = g; +UNSUPPORTED("9ys85d2ctjb1a9ra0n11o2a2r"); // warned = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3jwm77zyv02ukrvjv9jppejf7"); // agxbinit(&xb, BUFSIZ, buf); +UNSUPPORTED("11zj3p308ttro04hrzowx0vrh"); // while ((c = *(unsigned char*)s++)) { +UNSUPPORTED("3xqp191v0egfea0z3ds5p1mjt"); // if (c < 0xC0) +UNSUPPORTED("4j200801m87vnfrkblygi6ucj"); // /* +UNSUPPORTED("1egwnjpl995mff91kquf9ikvl"); // * Handles properly formed UTF-8 characters between +UNSUPPORTED("8rfd02x8qlye0oo8ro9u9g8ya"); // * 0x01 and 0x7F. Also treats \0 and naked trail +UNSUPPORTED("49xkviec8w4s3zvlq13991yqh"); // * bytes 0x80 to 0xBF as valid characters representing +UNSUPPORTED("bg2026u05g8jo9nm9pr39cknl"); // * themselves. +UNSUPPORTED("20m1lc1moer8x00tx9ceto0iw"); // */ +UNSUPPORTED("6g3zbtp7zrl9i7jz1if5yi7rj"); // uc = 0; +UNSUPPORTED("5ks80mtyizjvlnrh1bwebqrx7"); // else if (c < 0xE0) +UNSUPPORTED("2gr59wt9ibszrzwii40dqyd5b"); // uc = 1; +UNSUPPORTED("2su1o4swg92stlgi53k4ydm5u"); // else if (c < 0xF0) +UNSUPPORTED("c0zrulbhqoupyvbwpwapfpc70"); // uc = 2; +UNSUPPORTED("dveaae8p8nhz8gosmtiftudrz"); // else if (c < 0xF8) +UNSUPPORTED("a4c1bzq46y652vgwpxsruptth"); // uc = 3; +UNSUPPORTED("3jir07ymknf0hmb9pv9x4dr3o"); // else { +UNSUPPORTED("ar52jlyh4qqazbcbvntg2wet6"); // uc = -1; +UNSUPPORTED("ame11lb7ylv3rp1nhtuq383du"); // if (!warned) { +UNSUPPORTED("7acv020k6kt3q8tholp3ex0qa"); // agerr(AGWARN, "UTF8 codes > 4 bytes are not currently supported (graph %s) - treated as Latin-1. Perhaps \"-Gcharset=latin1\" is needed?\n", agnameof(g)); +UNSUPPORTED("qr4o1w9xvn1ayc52y0f4c8bh"); // warned = 1; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("ejqmh8ox9uoy02anzqhcxcrro"); // c = cvtAndAppend (c, &xb); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("8n9ts84r09bm29qdb7v2og087"); // if (uc == 0 && c == '&') { +UNSUPPORTED("3cziqu94ggcy3m9kpbpdefqgk"); // /* replace html entity sequences like: & +UNSUPPORTED("1c1fqb40szvpdlekj4as5qcqq"); // * and: { with their UTF8 equivalents */ +UNSUPPORTED("buyl72klnvh12cf4m578joukc"); // v = htmlEntity (&s); +UNSUPPORTED("1fj0k3ba7vy9tjmjnc4d4mujb"); // if (v) { +UNSUPPORTED("aso1t4v0cars70ngqafalmoeq"); // if (v < 0x7F) /* entity needs 1 byte in UTF8 */ +UNSUPPORTED("777bke4pyf77uol5s5d6qk0i6"); // c = v; +UNSUPPORTED("4wqu3fuzmckazc7eb1vvoxspn"); // else if (v < 0x07FF) { /* entity needs 2 bytes in UTF8 */ +UNSUPPORTED("2b9x6g0k8a00ty06llcyp6cqu"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)(v >> 6) | 0xC0))); +UNSUPPORTED("el4sow483b296l5o1hy6oqkzp"); // c = (v & 0x3F) | 0x80; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("163d4s8voz31qrt0e4c8ysn9e"); // else { /* entity needs 3 bytes in UTF8 */ +UNSUPPORTED("4tpuwv4i0wslspyymoqhdxsvd"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)(v >> 12) | 0xE0))); +UNSUPPORTED("8unuta6ydloexb267kdf96wi"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)((v >> 6) & 0x3F) | 0x80))); +UNSUPPORTED("el4sow483b296l5o1hy6oqkzp"); // c = (v & 0x3F) | 0x80; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("atwq5cvh75c4mpqr6f8bepwkd"); // else /* copy n byte UTF8 characters */ +UNSUPPORTED("75h3d3pcb66cff2xszmbwxny0"); // for (ui = 0; ui < uc; ++ui) +UNSUPPORTED("75m8b2zfuuay6o25xl08y168m"); // if ((*s & 0xC0) == 0x80) { +UNSUPPORTED("2bav6kbg19gemwcsyepjeg52u"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)c))); +UNSUPPORTED("5kkh713qn8pc4dhd3omuop8qk"); // c = *(unsigned char*)s++; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("69mmu86j5iw8x34fdfo0k59ff"); // else { +UNSUPPORTED("cjh6htddtrrxjuyqzavdlw01o"); // if (!warned) { +UNSUPPORTED("8ljhi9erpokpqsnveckujskly"); // agerr(AGWARN, "Invalid %d-byte UTF8 found in input of graph %s - treated as Latin-1. Perhaps \"-Gcharset=latin1\" is needed?\n", uc + 1, agnameof(g)); +UNSUPPORTED("8sgutsruuu83a337z05bvytk0"); // warned = 1; +UNSUPPORTED("3d2mow5zy6q4vrtc38f78ucgh"); // } +UNSUPPORTED("8jh5xw3y1bjy4poswq4h2wk4n"); // c = cvtAndAppend (c, &xb); +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("g2y6e9pld3899aejuqyr2x25"); // } +UNSUPPORTED("28mab50dtpxfjz5h216ox1q6w"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)c))); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3g7d9dp3ny3ggno64pwi7nmkg"); // ns = strdup ((((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf))); +UNSUPPORTED("1at5m9ctjn3ukv5gqtfswik02"); // agxbfree(&xb); +UNSUPPORTED("98aa6ybsfiu5u7r3j6fsv3snz"); // return ns; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("9yungx7uxqkmzfh2ub6gs9l48","htmlEntityUTF8"); +} +} + + + + +//3 6spvz5rdt5uhtcpz0ypysuf8j +// char* latin1ToUTF8 (char* s) +public static Object latin1ToUTF8(Object... arg) { +UNSUPPORTED("6k189l7y3kfe03zj65a0hi02l"); // char* latin1ToUTF8 (char* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3rzf3h52xn02xrxie111286a0"); // char* ns; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("esg3s800dx899v69pkng2kavv"); // unsigned char buf[BUFSIZ]; +UNSUPPORTED("7yeyn4giwkk2r8xfjbwuqwdgq"); // unsigned int v; +UNSUPPORTED("d5druw9z4e87khtgyeivjngvc"); // int ignored; +UNSUPPORTED("4pgl4pn1cad2whf242bntmjre"); // (void) ignored; +UNSUPPORTED("3jwm77zyv02ukrvjv9jppejf7"); // agxbinit(&xb, BUFSIZ, buf); +UNSUPPORTED("4z3yoswxkrk1x38246p01ai17"); // /* Values are either a byte (<= 256) or come from htmlEntity, whose +UNSUPPORTED("7a461v6k1cu23svait528w042"); // * values are all less than 0x07FF, so we need at most 3 bytes. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("8fjxnjq1i6zgxuaaty7wolmz2"); // while ((v = *(unsigned char*)s++)) { +UNSUPPORTED("3tv51fniyuldzqwej04vf24jp"); // if (v == '&') { +UNSUPPORTED("ci2g1lymqorgpcbacxprxut4f"); // v = htmlEntity (&s); +UNSUPPORTED("cdvw86q5dy4dmwr7iig71kx78"); // if (!v) v = '&'; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("26nwakev47c8vp1v45upgjyp3"); // if (v < 0x7F) +UNSUPPORTED("bcv1n4sa19kis6cblb97g8sgx"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)v))); +UNSUPPORTED("e97czqogsdpsth2jrh2kufwur"); // else if (v < 0x07FF) { +UNSUPPORTED("a5h07gnh3tqz7f4mrbknarch7"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)(v >> 6) | 0xC0))); +UNSUPPORTED("9a4rvaow9xmxkoagejrjrt84r"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)(v & 0x3F) | 0x80))); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("9s2nvoskqz83rf7mkroywr1sr"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)(v >> 12) | 0xE0))); +UNSUPPORTED("c3mv09jqjhqt1y3zrjw9ox53o"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)((v >> 6) & 0x3F) | 0x80))); +UNSUPPORTED("9a4rvaow9xmxkoagejrjrt84r"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)(v & 0x3F) | 0x80))); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3g7d9dp3ny3ggno64pwi7nmkg"); // ns = strdup ((((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf))); +UNSUPPORTED("1at5m9ctjn3ukv5gqtfswik02"); // agxbfree(&xb); +UNSUPPORTED("98aa6ybsfiu5u7r3j6fsv3snz"); // return ns; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 913nrt0i8mr2gg2mz9qxdqh8o +// char* utf8ToLatin1 (char* s) +public static Object utf8ToLatin1(Object... arg) { +UNSUPPORTED("cqm25rponse4rsi686sbn1lo0"); // char* +UNSUPPORTED("8jj111wbaa8z4z3poc1q0t8y5"); // utf8ToLatin1 (char* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3rzf3h52xn02xrxie111286a0"); // char* ns; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("esg3s800dx899v69pkng2kavv"); // unsigned char buf[BUFSIZ]; +UNSUPPORTED("10sir32iwi5l2jyfgp65pihto"); // unsigned char c; +UNSUPPORTED("gmcqqf9woz72oix0r5rjuoto"); // unsigned char outc; +UNSUPPORTED("d5druw9z4e87khtgyeivjngvc"); // int ignored; +UNSUPPORTED("4pgl4pn1cad2whf242bntmjre"); // (void) ignored; +UNSUPPORTED("3jwm77zyv02ukrvjv9jppejf7"); // agxbinit(&xb, BUFSIZ, buf); +UNSUPPORTED("11zj3p308ttro04hrzowx0vrh"); // while ((c = *(unsigned char*)s++)) { +UNSUPPORTED("dbsfo5gpcng9982vxr7ikbf0i"); // if (c < 0x7F) +UNSUPPORTED("28mab50dtpxfjz5h216ox1q6w"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)c))); +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("1ppkx26s53neuwlkgoyl230ya"); // outc = (c & 0x03) << 6; +UNSUPPORTED("9d685hmukj0hf94zcu28sy09x"); // c = *(unsigned char*)s++; +UNSUPPORTED("55iewluciyo7pfuwv8aez09pb"); // outc = outc | (c & 0x3F); +UNSUPPORTED("bb5kgu9v5ko417jskeknpttmq"); // ignored = ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)outc))); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3g7d9dp3ny3ggno64pwi7nmkg"); // ns = strdup ((((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf))); +UNSUPPORTED("1at5m9ctjn3ukv5gqtfswik02"); // agxbfree(&xb); +UNSUPPORTED("98aa6ybsfiu5u7r3j6fsv3snz"); // return ns; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9bvrwdmh7tm5thehp9lgdr6xd +// boolean overlap_node(node_t *n, boxf b) +public static Object overlap_node(Object... arg) { +UNSUPPORTED("adn6r7oz1h6uvg69bvfoypzf2"); // boolean overlap_node(node_t *n, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("91ymmlazxnlu6a10ivd58lrnx"); // inside_t ictxt; +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("2n2uez00ytva0jwosdu5d5x7k"); // if (! OVERLAP(b, ND_bb(n))) +UNSUPPORTED("egywkvzo2t847qnathqnanvcj"); // return 0; +UNSUPPORTED("2grr4abi33fuyx3ex5soymquw"); // /* FIXME - need to do something better about CLOSEENOUGH */ +UNSUPPORTED("42wj7lxtvc06e9sfoqihjt9xw"); // p = sub_pointf(ND_coord(n), mid_pointf(b.UR, b.LL)); +UNSUPPORTED("22mv67l7z7wr03u30xgx36klq"); // ictxt.s.n = n; +UNSUPPORTED("6hiyxv9qcrh42rkfd32ag1cgg"); // ictxt.s.bp = (void *)0; +UNSUPPORTED("1hqspal43fzxoaa3kkrp9xcb"); // return ND_shape(n)->fns->insidefn(&ictxt, p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1iephta6pfgcjwjxaz7n7hg3h +// boolean overlap_label(textlabel_t *lp, boxf b) +public static Object overlap_label(Object... arg) { +UNSUPPORTED("91umgryo5zqgish79s8i949au"); // boolean overlap_label(textlabel_t *lp, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ddb68hn23b0v9gldt5ym699jm"); // pointf s; +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("b8b14mpt61iyo7ntzox4didg"); // s.x = lp->dimen.x / 2.; +UNSUPPORTED("etn8w0yctba3qwmwjypkjuh0b"); // s.y = lp->dimen.y / 2.; +UNSUPPORTED("5ezm2f39sm5ob27ufs99ubibn"); // bb.LL = sub_pointf(lp->pos, s); +UNSUPPORTED("1o378zsemmdu353iu9zkmnew"); // bb.UR = add_pointf(lp->pos, s); +UNSUPPORTED("50ldl8awv60ft3ojv05xoapv8"); // return OVERLAP(b, bb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1pi7b3b4i7f0w0nru6z6tl31b +// static boolean overlap_arrow(pointf p, pointf u, double scale, int flag, boxf b) +public static Object overlap_arrow(Object... arg) { +UNSUPPORTED("2hwfhh60l88kcz3nw2gniuiic"); // static boolean overlap_arrow(pointf p, pointf u, double scale, int flag, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d96dzwqsrlhqx70677lolr70x"); // if (OVERLAP(b, arrow_bb(p, u, scale, flag))) { +UNSUPPORTED("6pyod80f1wnsh68enzsnqykcp"); // /* FIXME - check inside arrow shape */ +UNSUPPORTED("3adr32h5e1fehu4g7j2u24asz"); // return (!(0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7ic0hdq8fpa9fby43hy9p96n +// static boolean overlap_bezier(bezier bz, boxf b) +public static Object overlap_bezier(Object... arg) { +UNSUPPORTED("awzwsadmtjnsr4l5ln0gwca6f"); // static boolean overlap_bezier(bezier bz, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("2qhxg8kfts3rqa4n8y1q8tk3r"); // pointf p, u; +UNSUPPORTED("1imabyiof6ysdoof2g58v139w"); // assert(bz.size); +UNSUPPORTED("2cz7hdhlhljnbt4ey99pfq3mj"); // u = bz.list[0]; +UNSUPPORTED("9mjgetoviljxmz4j3h18bhwv"); // for (i = 1; i < bz.size; i++) { +UNSUPPORTED("4nhsr51p4z60folp6yedkan7p"); // p = bz.list[i]; +UNSUPPORTED("1q7o633q5ykuwzssixlzk97w1"); // if (lineToBox(p, u, b) != -1) +UNSUPPORTED("euj7k5raviuazd8jahwobe0r3"); // return (!(0)); +UNSUPPORTED("2zppgvcdlcmvkarerwttpl0cl"); // u = p; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c30ht2dw1jfnc98f1lxaoduea"); // /* check arrows */ +UNSUPPORTED("dtt0q54ov71fji9i2ae24aeyc"); // if (bz.sflag) { +UNSUPPORTED("6d0os47s8k0liv0ij1c9ifh5h"); // if (overlap_arrow(bz.sp, bz.list[0], 1, bz.sflag, b)) +UNSUPPORTED("euj7k5raviuazd8jahwobe0r3"); // return (!(0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4o7tep38o3pxavxbzw15khp2r"); // if (bz.eflag) { +UNSUPPORTED("bxk1lvdajxp9q7k9dzq4jjalp"); // if (overlap_arrow(bz.ep, bz.list[bz.size - 1], 1, bz.eflag, b)) +UNSUPPORTED("euj7k5raviuazd8jahwobe0r3"); // return (!(0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4usdn4gxfza3j6zxmsnoslmsu +// boolean overlap_edge(edge_t *e, boxf b) +public static Object overlap_edge(Object... arg) { +UNSUPPORTED("dfrqxx7kxp0xo56gn56prf49k"); // boolean overlap_edge(edge_t *e, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("6tl9mepc2bett364jduh2q4mf"); // splines *spl; +UNSUPPORTED("cqwl7s9yvzr8n5v8svuuv1a1q"); // textlabel_t *lp; +UNSUPPORTED("2c3cg84bl0xam4mk6g5f31jj0"); // spl = ED_spl(e); +UNSUPPORTED("7hvxias4hzevaqzopdofxqtf7"); // if (spl && boxf_overlap(spl->bb, b)) +UNSUPPORTED("8u449ocpkq8pw6x28ydsauw7k"); // for (i = 0; i < spl->size; i++) +UNSUPPORTED("2igld6ya1et1v6v507mv6oou4"); // if (overlap_bezier(spl->list[i], b)) +UNSUPPORTED("41w3xzxk3po8alpl4v9kz395f"); // return (!(0)); +UNSUPPORTED("n9pj1f2ecz41q7q378oisbjt"); // lp = ED_label(e); +UNSUPPORTED("26tbjilm0lmi9lsxtc9qh7qr"); // if (lp && overlap_label(lp, b)) +UNSUPPORTED("a3ueikge1f8p4avpat19zoh3a"); // return (!(0)); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ckavkcnz5rcrqs17lleds1uxu +// int edgeType (char* s, int dflt) +public static int edgeType(CString s, int dflt) { +ENTERING("ckavkcnz5rcrqs17lleds1uxu","edgeType"); +try { + UNSUPPORTED("h9kzapvoxea4esxgom157wc0"); // int edgeType (char* s, int dflt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("26e08yupzx95a4pzp1af0t6og"); // int et; +UNSUPPORTED("73z43mn6ha09hbnvzynnbkvqg"); // if (!s || (*s == '\0')) return dflt; +UNSUPPORTED("527zd48lq0ay6p16b2whyuafo"); // et = (0 << 1); +UNSUPPORTED("1ctayzw7ya308i4wpppul6b9o"); // switch (*s) { +UNSUPPORTED("acwxya6p4cjrbqeuf7gymcmx2"); // case '0' : /* false */ +UNSUPPORTED("18fcibo027r3vczxrvtju3nah"); // et = (1 << 1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("no8amccag0mew2zmsprfyekp"); // case '1' : /* true */ +UNSUPPORTED("8to0pat5o6zmyuqjfl01xs9xc"); // case '2' : +UNSUPPORTED("c7icptpasun232whn2nn5gydx"); // case '3' : +UNSUPPORTED("44xov6gwt91mlesh02z3zvxx"); // case '4' : +UNSUPPORTED("4dwlps5sjcl550fvks2ibv2fi"); // case '5' : +UNSUPPORTED("cr0jhqsceb5y1hcmvtjd1ttgu"); // case '6' : +UNSUPPORTED("8jq47j7ezu18niwotmuj92cz3"); // case '7' : +UNSUPPORTED("ami8xk8243o5ku0cyeqxoeiut"); // case '8' : +UNSUPPORTED("3onv8t8a6v1tmfaz8y7hk9lvv"); // case '9' : +UNSUPPORTED("8m599inlx0lbuns9r3iiokwxw"); // et = (5 << 1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("vwxe2prs0tywhf20ycwdwa8o"); // case 'c' : +UNSUPPORTED("e2ux7lqsbmsyyrououuijooiy"); // case 'C' : +UNSUPPORTED("8zxim9f3q8qdl919cv1v3jf8e"); // if (!strcasecmp (s+1, "urved")) +UNSUPPORTED("azc7d85av8k7f1to3mr59m3mz"); // et = (2 << 1); +UNSUPPORTED("b7i0q9ysed6zrjftn8ilgtn0a"); // else if (!strcasecmp (s+1, "ompound")) +UNSUPPORTED("aihlhslp3nd26f10vuyjlnb3q"); // et = (6 << 1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("2ix1d2vw6unhjetclv9vkaw1p"); // case 'f' : +UNSUPPORTED("2chzjgs8kmwelk00c6469lpx2"); // case 'F' : +UNSUPPORTED("42jngi39nkk27q16s1sa7sftl"); // if (!strcasecmp (s+1, "alse")) +UNSUPPORTED("7xut5zuu25vrpn9gt0f3kc5hz"); // et = (1 << 1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7ozigs1hjxmhvwgapx2in25cy"); // case 'l' : +UNSUPPORTED("c2gttjqnkmx1rnuyjknw7segb"); // case 'L' : +UNSUPPORTED("96lnofxeiqa1g3g7s02b86h6z"); // if (!strcasecmp (s+1, "ine")) +UNSUPPORTED("7xut5zuu25vrpn9gt0f3kc5hz"); // et = (1 << 1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("5o5i90c7m363f5yyxamxuzok6"); // case 'n' : +UNSUPPORTED("3ttrfea54jmrshv2796w3a9h2"); // case 'N' : +UNSUPPORTED("6qibxt06dimtp2r5spwgriorn"); // if (!strcasecmp (s+1, "one")) return et; +UNSUPPORTED("bqi51jfycttyx733ls9qw2c18"); // if (!strcasecmp (s+1, "o")) return (1 << 1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("18t59gw7hrgsezibz7bbm0ng3"); // case 'o' : +UNSUPPORTED("4q6jdsek20d4i9sc5ftmm3mdl"); // case 'O' : +UNSUPPORTED("8scb0vjws7o3davin33k87o2p"); // if (!strcasecmp (s+1, "rtho")) +UNSUPPORTED("48rqxx6odtdnqf676ffe1ll7g"); // et = (4 << 1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("5cc40qlotkkym6enwcv916835"); // case 'p' : +UNSUPPORTED("al1clonjqyw2bo1z0li974ijp"); // case 'P' : +UNSUPPORTED("68l1a5153ouil03qaammm1zty"); // if (!strcasecmp (s+1, "olyline")) +UNSUPPORTED("5ytop08aei3hhllfd12904hh7"); // et = (3 << 1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("20wayzvdomwexzhjzj4wojf4d"); // case 's' : +UNSUPPORTED("boxft69fzv6rof5elda0zs33z"); // case 'S' : +UNSUPPORTED("3qs8m2esm62d50tk701b8m0xz"); // if (!strcasecmp (s+1, "pline")) +UNSUPPORTED("5l4kd6c21h4bjm98grnqqwra6"); // et = (5 << 1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("ce41quxcxpj3oi50zybc75b9r"); // case 't' : +UNSUPPORTED("8drchetff3h6zpsu3m08rqi0q"); // case 'T' : +UNSUPPORTED("7ln0pymv14hb45h3ypy5955nk"); // if (!strcasecmp (s+1, "rue")) +UNSUPPORTED("5l4kd6c21h4bjm98grnqqwra6"); // et = (5 << 1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3d55ucqxr8xg0otty2j39hkgz"); // case 'y' : +UNSUPPORTED("7oihco3xpq1kek2q2dnrfxmcx"); // case 'Y' : +UNSUPPORTED("679wmbnx0dakltwkxx2svg5ex"); // if (!strcasecmp (s+1, "es")) +UNSUPPORTED("5l4kd6c21h4bjm98grnqqwra6"); // et = (5 << 1); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ckjgbybnvrshn8g32qqpy0ppd"); // if (!et) { +UNSUPPORTED("79f40sxqwmzmgk4ktfha59mxf"); // agerr(AGWARN, "Unknown \"splines\" value: \"%s\" - ignored\n", s); +UNSUPPORTED("mjiefsvltip3uasxic0uipa9"); // et = dflt; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("68yadra75shcc0tia9wr9acr4"); // return et; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("ckavkcnz5rcrqs17lleds1uxu","edgeType"); +} +} + + + + +//3 13cpqbf2ztcjdfz4a6v7nv00u +// void setEdgeType (graph_t* g, int dflt) +public static void setEdgeType(Agraph_s g, int dflt) { +ENTERING("13cpqbf2ztcjdfz4a6v7nv00u","setEdgeType"); +try { + CString s = agget(g, new CString("splines")); + int et; + if (N(s)) { + et = dflt; + } + else if (s.charAt(0) == '\0') { + et = (0 << 1); + } + else et = edgeType (s, dflt); + GD_flags(g, GD_flags(g) | et); +} finally { +LEAVING("13cpqbf2ztcjdfz4a6v7nv00u","setEdgeType"); +} +} + + + + +//3 azj18si1ncbqf4nggo3u0iudc +// void get_gradient_points(pointf * A, pointf * G, int n, float angle, int flags) +public static Object get_gradient_points(Object... arg) { +UNSUPPORTED("4l4q9435jsq43snp6e2muhph9"); // void get_gradient_points(pointf * A, pointf * G, int n, float angle, int flags) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("28vm7zytm26lbctmzklz8u6q4"); // double rx, ry; +UNSUPPORTED("7ab1r7u9bshphtezjbwilzdmk"); // pointf min,max,center; +UNSUPPORTED("38fmmbbh3d9td4hgcigqek69h"); // int isRadial = flags & 1; +UNSUPPORTED("6do922drsqikinsq2qnkg7i9s"); // int isRHS = flags & 2; +UNSUPPORTED("cc4iipfhbkh9s7bgnq075nve2"); // if (n == 2) { +UNSUPPORTED("2fbod9hk6xm53a1498zx6wkml"); // rx = A[1].x - A[0].x; +UNSUPPORTED("znji09lgzos7bzfy4sn5z6so"); // ry = A[1].y - A[0].y; +UNSUPPORTED("4rfhu73bo5qnu4zlhm9409rov"); // min.x = A[0].x - rx; +UNSUPPORTED("e7n9ri71momrymdb7nem5dv3i"); // max.x = A[0].x + rx; +UNSUPPORTED("5t50nyboj2kmqnva1b3oy3lej"); // min.y = A[0].y - ry; +UNSUPPORTED("2pccas4c05y6rl29xqoxu9es1"); // max.y = A[0].y + ry; +UNSUPPORTED("5ja432xa5mdtoxr8hjvwurrzk"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("2xg1e592fyexnv8p3cfuhf387"); // min.x = max.x = A[0].x; +UNSUPPORTED("ae0uuyalysg56vdqam5vuysda"); // min.y = max.y = A[0].y; +UNSUPPORTED("11ja3nzvfl5nh4sczk6fecswp"); // for (i = 0; i < n; i++){ +UNSUPPORTED("accly2buq5n3okrrptwc1ejg"); // min.x = MIN(A[i].x,min.x); +UNSUPPORTED("5ovf4hu3x4sjij6tz3pru127w"); // min.y = MIN(A[i].y,min.y); +UNSUPPORTED("9rhqopfwckc0sw5yyxaqkkxcd"); // max.x = MAX(A[i].x,max.x); +UNSUPPORTED("7qzfxgzccflltalu1yvmxzmv9"); // max.y = MAX(A[i].y,max.y); +UNSUPPORTED("dquo3qofk56ds5xl95lhvcthf"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("250db9ylxbfvnh9zwkamxovj9"); // center.x = min.x + (max.x - min.x)/2; +UNSUPPORTED("485zu25v4z1ve1h6ajqnq4b3f"); // center.y = min.y + (max.y - min.y)/2; +UNSUPPORTED("56w11dzx832thi17odfzwz5yl"); // if (isRadial) { +UNSUPPORTED("20xmg9sm748etklimkd6243x5"); // double inner_r, outer_r; +UNSUPPORTED("5mry6u88h53908rs4hu6henpm"); // outer_r = sqrt((center.x - min.x)*(center.x - min.x) + +UNSUPPORTED("9bjr1zixvhgja23zwt2uvkyh4"); // (center.y - min.y)*(center.y - min.y)); +UNSUPPORTED("em02v3ahdnobwbukkna301r8e"); // inner_r = outer_r /4.; +UNSUPPORTED("bu17v8cb3igywmv0cbn25hlkg"); // if (isRHS) { +UNSUPPORTED("cfoc49xh4ohe1lpmz0h45p97f"); // G[0].y = center.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("20h8j01n1ez8o51xea4v9tr2u"); // G[0].y = -center.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5pfxs9x6r4mmobo90mjhvy2u2"); // G[0].x = center.x; +UNSUPPORTED("8mq1zl94lnuovvotzai3cjvh7"); // G[1].x = inner_r; +UNSUPPORTED("bbqmfpxsc6hzfuqmzu5hq1ks2"); // G[1].y = outer_r; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("78bc6w2jovc5xciuazkg4x65m"); // double half_x = max.x - center.x; +UNSUPPORTED("by2s59uka1v65wg0w519d9g5s"); // double half_y = max.y - center.y; +UNSUPPORTED("bgr3ej4c4109djoqphiiccj8j"); // double sina = sin(angle); +UNSUPPORTED("5w9swecikv2aa0cs4z4mft1ew"); // double cosa = cos(angle); +UNSUPPORTED("bu17v8cb3igywmv0cbn25hlkg"); // if (isRHS) { +UNSUPPORTED("4bj7eyt9p2z0zs62et351z8b7"); // G[0].y = center.y - half_y * sina; +UNSUPPORTED("c4p6sses023prnrx3l3pnphpg"); // G[1].y = center.y + half_y * sina; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("awhdug43x0ih3ky3e3ll0lutf"); // G[0].y = -center.y + (max.y - center.y) * sin(angle); +UNSUPPORTED("62xeog3j69hyv8qha3n575e6d"); // G[1].y = -center.y - (center.y - min.y) * sin(angle); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("expdhhgumrgtud45srwse0d78"); // G[0].x = center.x - half_x * cosa; +UNSUPPORTED("31bwc01mjpx1u8s4htbm6u5ey"); // G[1].x = center.x + half_x * cosa; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 22n1uekxezky6gx3cn22ansew +// int strcasecmp(const char *s1, const char *s2) +public static int strcasecmp(CString s1, CString s2) { +ENTERING("22n1uekxezky6gx3cn22ansew","strcasecmp"); +try { + while ((s1.charAt(0) != '\0') + && (tolower(s1.charAt(0)) == + tolower(s2.charAt(0)))) { + s1=s1.plus(1); + s2=s2.plus(1); + } + return tolower(s1.charAt(0)) - tolower(s2.charAt(0)); +} finally { +LEAVING("22n1uekxezky6gx3cn22ansew","strcasecmp"); +} +} + + + + +//3 6fpqvqq5eso7d44vai4lz77jd +// int strncasecmp(const char *s1, const char *s2, unsigned int n) +public static Object strncasecmp(Object... arg) { +UNSUPPORTED("41sf831iel4ggk6nxgerc7lrz"); // int strncasecmp(const char *s1, const char *s2, unsigned int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f0os7tzuki1s9mllsml3zu2fd"); // if (n == 0) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("18ggb7ihy0resf5qhplc7cqol"); // while ((n-- != 0) +UNSUPPORTED("7tdf84gz2hakxs756j3v0w4iv"); // && (tolower(*(unsigned char *) s1) == +UNSUPPORTED("co97u0db3a8mz1pp77hkxq0h3"); // tolower(*(unsigned char *) s2))) { +UNSUPPORTED("2jr0cuzm9i39xecgxx0ih0ez4"); // if (n == 0 || *s1 == '\0' || *s2 == '\0') +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("2hh1h5gydepd3ut3g43bzn51g"); // s1++; +UNSUPPORTED("7x8zh0pm8zj83pbc2d812jz90"); // s2++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1jrt0skm3a5djo3vfej4kwffc"); // return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 952xm45ro3rezebjyrjins8hi +// void gv_free_splines(edge_t * e) +public static Object gv_free_splines(Object... arg) { +UNSUPPORTED("20npjsygvjocwl1s38vrpf2nb"); // void gv_free_splines(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("4pdkymy0wuxj1yn9xqqzp2x4h"); // if (ED_spl(e)) { +UNSUPPORTED("45jnnlrng64otru7xh43mwqbj"); // for (i = 0; i < ED_spl(e)->size; i++) +UNSUPPORTED("aayg4ghew6m2hhtoo2f683101"); // free(ED_spl(e)->list[i].list); +UNSUPPORTED("414vktawl0gg37cwl3atku9jm"); // free(ED_spl(e)->list); +UNSUPPORTED("dg2iniztq3s88wtzc2oelmxcd"); // free(ED_spl(e)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1ozc9ue0zbqu2i9gg2i5kfxx6"); // ED_spl(e) = (void *)0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4tdxbfozyzm9hv9jau5qpr18r +// void gv_cleanup_edge(edge_t * e) +public static Object gv_cleanup_edge(Object... arg) { +UNSUPPORTED("b1scm8t8tgb3dnua8wogcy076"); // void gv_cleanup_edge(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("puteitw4ghqbb5aix3nip4fk"); // free (ED_path(e).ps); +UNSUPPORTED("dai9db3cozhpqeenab065cnfo"); // gv_free_splines(e); +UNSUPPORTED("292fa7prffihy9rqhmv5lsc3f"); // free_label(ED_label(e)); +UNSUPPORTED("7l4r0amzt9h9sq0i6sirjn529"); // free_label(ED_xlabel(e)); +UNSUPPORTED("4uxpgfln4r8sqyb7odq506b46"); // free_label(ED_head_label(e)); +UNSUPPORTED("drx4uk8ssgsg67cvkt9t4u4kd"); // free_label(ED_tail_label(e)); +UNSUPPORTED("ab9j2jm37m5q6awql0tn2e5qh"); // /*FIX HERE , shallow cleaning may not be enough here */ +UNSUPPORTED("dw3siytye4cixcrzqmb5i07qs"); // agdelrec(e, "Agedgeinfo_t"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c7yb1wfh6sfz3dklp3914m81m +// void gv_cleanup_node(node_t * n) +public static Object gv_cleanup_node(Object... arg) { +UNSUPPORTED("d6dkt4wezkpueb74an06bmm1k"); // void gv_cleanup_node(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6fltl5u4u22i3870pyofjxwdn"); // if (ND_pos(n)) free(ND_pos(n)); +UNSUPPORTED("4wkmsp7365vb7u5fqtm2buotu"); // if (ND_shape(n)) +UNSUPPORTED("2ae2cnq7s4f15b6d6fp5i6o26"); // ND_shape(n)->fns->freefn(n); +UNSUPPORTED("dv63sk5dujcwfkf99o6ponzqm"); // free_label(ND_label(n)); +UNSUPPORTED("5or6zu6ycx4zage9ggy1o9it4"); // free_label(ND_xlabel(n)); +UNSUPPORTED("ab9j2jm37m5q6awql0tn2e5qh"); // /*FIX HERE , shallow cleaning may not be enough here */ +UNSUPPORTED("4tuw9fzcb28wodb3z6f4gkx19"); // agdelrec(n, "Agnodeinfo_t"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 80q488y0eqojtsm7osnfydmo5 +// void gv_nodesize(node_t * n, boolean flip) +public static void gv_nodesize(Agnode_s n, int flip) { +ENTERING("80q488y0eqojtsm7osnfydmo5","gv_nodesize"); +try { + double w; + if (flip!=0) { + w = ((ND_height(n))*(double)72); + ND_rw(n, w / 2); + ND_lw(n, w / 2); + ND_ht(n, ((ND_width(n))*(double)72)); + } + else { + w = ((ND_width(n))*(double)72); + ND_rw(n, w / 2); + ND_lw(n, w / 2); + ND_ht(n, ((ND_height(n))*(double)72)); + } +} finally { +LEAVING("80q488y0eqojtsm7osnfydmo5","gv_nodesize"); +} +} + + + + +//3 7uxrf3fkz919opkirpd9xtuv +// double drand48(void) +public static Object drand48(Object... arg) { +UNSUPPORTED("6vlwifmfxk6zn6tvonk13jp3i"); // double drand48(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8ne6p4d5pykwl1d3xk0yg0ipb"); // double d; +UNSUPPORTED("54tfrbdpedydawj9r47qspj9z"); // d = rand(); +UNSUPPORTED("1ljgw8hzttj2a3x36s83rr5be"); // d = d / RAND_MAX; +UNSUPPORTED("3r3o80n61nmy2jv0ezi9xg2xp"); // return d; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8lktrcvj65bvhh04y89vecvo2 +// static void free_clust (Dt_t* dt, clust_t* clp, Dtdisc_t* disc) +public static Object free_clust(Object... arg) { +UNSUPPORTED("5hvfjwzuuptbbsu4s4tmqioey"); // static void free_clust (Dt_t* dt, clust_t* clp, Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f496klm2k3ykus5018nsatnwr"); // free (clp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 5kz2qt153vtr25aib7hx2zxma +// static Dtdisc_t strDisc = + + + + +//3 eedsifpflx8hq0boycnhkyhwi +// static void fillMap (Agraph_t* g, Dt_t* map) +public static Object fillMap(Object... arg) { +UNSUPPORTED("4bysjhruz2e3wqk783h9g1lup"); // static void fillMap (Agraph_t* g, Dt_t* map) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("btyorslmplj34yhlb1jx1qpbb"); // Agraph_t* cl; +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("yiuh599p05f2mpu2e3pesu2o"); // char* s; +UNSUPPORTED("16mpl6p9b2dpo53253q50m3sb"); // clust_t* ip; +UNSUPPORTED("99d9j6m0161wdv2tu4wbf3ifi"); // for (c = 1; c <= GD_n_cluster(g); c++) { +UNSUPPORTED("2teg6xg4qm17ntpo76fewfpsa"); // cl = GD_clust(g)[c]; +UNSUPPORTED("cg72wznei3zdlwj34nrwr1p4d"); // s = agnameof(cl); +UNSUPPORTED("1guobssrhsi4q6tl1y3pj2ggr"); // if ((*(((Dt_t*)(map))->searchf))((map),(void*)(s),0001000)) { +UNSUPPORTED("dhd8f5xt5vuyyr6x2nb5v7n68"); // agerr(AGWARN, "Two clusters named %s - the second will be ignored\n", s); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("1fldfpmb7y3tka24kxydupd92"); // ip = (clust_t*)zmalloc(sizeof(clust_t)); +UNSUPPORTED("2fjoz0gazdhoglv425xw1oq02"); // ip->name = s; +UNSUPPORTED("3rtsjkui7fbtpw31kbxrcuq62"); // ip->clp = cl; +UNSUPPORTED("9432myi3rgwzkx4n9bneu0s0k"); // (*(((Dt_t*)(map))->searchf))((map),(void*)(ip),0000001); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("alhil57f405k0c1urfqtlldt7"); // fillMap (cl, map); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 82wzptlrwslbvgp3xyj03p9ba +// Dt_t* mkClustMap (Agraph_t* g) +public static Object mkClustMap(Object... arg) { +UNSUPPORTED("1q58ugun4bvkmr2ue91rmuq8"); // Dt_t* mkClustMap (Agraph_t* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f34gp449n6keyz0bhwdxqsd7m"); // Dt_t* map = dtopen (&strDisc, Dtoset); +UNSUPPORTED("5wsd9dcx8jqzp5baly29hubma"); // fillMap (g, map); +UNSUPPORTED("e0iohuc39sfqukdjj9eddourq"); // return map; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aohw5khae06vhhp2t4cczvcbv +// Agraph_t* findCluster (Dt_t* map, char* name) +public static Object findCluster(Object... arg) { +UNSUPPORTED("6fo3oeygde19o95996mbrkjdk"); // Agraph_t* +UNSUPPORTED("43my0gnzq82k0lsp86rb9j31r"); // findCluster (Dt_t* map, char* name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cwq8c9jrtxtalbyxfo1tg66ys"); // clust_t* clp = (*(((Dt_t*)(map))->searchf))((map),(void*)(name),0001000); +UNSUPPORTED("7szzt9uu8wexjhhnks6jhega5"); // if (clp) +UNSUPPORTED("12yrb65kdfz9bwd2j2l8nqc07"); // return clp->clp; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("45tfw7tcm68298aro2tdiv8pc"); // return (void *)0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7q676xlzj32nbxuf2qlgu9xgc +// Agnodeinfo_t* ninf(Agnode_t* n) +public static Object ninf(Object... arg) { +UNSUPPORTED("e4ol03qir8voknrrta1ulkew3"); // Agnodeinfo_t* ninf(Agnode_t* n) {return (Agnodeinfo_t*)AGDATA(n);} + +throw new UnsupportedOperationException(); +} + + + + +//3 3gguivz30v6fwn9nun51m5652 +// Agraphinfo_t* ginf(Agraph_t* g) +public static Object ginf(Object... arg) { +UNSUPPORTED("cjr1gck7jmlygsn7321ppbe2o"); // Agraphinfo_t* ginf(Agraph_t* g) {return (Agraphinfo_t*)AGDATA(g);} + +throw new UnsupportedOperationException(); +} + + + + +//3 5nsm1cj6268trw4hp3gljvk83 +// Agedgeinfo_t* einf(Agedge_t* e) +public static Object einf(Object... arg) { +UNSUPPORTED("3zxj8s1l4qy0pf2wpn6vy5ix3"); // Agedgeinfo_t* einf(Agedge_t* e) {return (Agedgeinfo_t*)AGDATA(e);} + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/acyclic__c.java plantuml-8039/src/gen/lib/dotgen/acyclic__c.java --- plantuml-8024/src/gen/lib/dotgen/acyclic__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/acyclic__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,774 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.dotgen.fastgr__c.delete_fast_edge; +import static gen.lib.dotgen.fastgr__c.find_fast_edge; +import static gen.lib.dotgen.fastgr__c.merge_oneway; +import static gen.lib.dotgen.fastgr__c.virtual_edge; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.GD_comp; +import static smetana.core.Macro.GD_nlist; +import static smetana.core.Macro.ND_mark; +import static smetana.core.Macro.ND_next; +import static smetana.core.Macro.ND_onstack; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class acyclic__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9hm902ya6q6bq246ewuh67h38 +// void reverse_edge(edge_t * e) +public static void reverse_edge(Agedge_s e) { +ENTERING("9hm902ya6q6bq246ewuh67h38","reverse_edge"); +try { + Agedge_s f; + delete_fast_edge(e); + if ((f = find_fast_edge(aghead(e), agtail(e)))!=null) + merge_oneway(e, f); + else + virtual_edge(aghead(e), agtail(e), e); +} finally { +LEAVING("9hm902ya6q6bq246ewuh67h38","reverse_edge"); +} +} + + + + +//3 e9h7n52fs8rucrug9tr0zebe2 +// static void dfs(node_t * n) +public static void dfs(Agnode_s n) { +ENTERING("e9h7n52fs8rucrug9tr0zebe2","dfs"); +try { + int i; + Agedge_s e; + Agnode_s w; + if (ND_mark(n)!=0) + return; + ND_mark(n, 1); + ND_onstack(n, 1); + for (i = 0; (e = (Agedge_s) ND_out(n).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + w = aghead(e); + if (ND_onstack(w)) { + reverse_edge(e); + i--; + } else { + if (ND_mark(w) == 0) + dfs(w); + } + } + ND_onstack(n, 0); +} finally { +LEAVING("e9h7n52fs8rucrug9tr0zebe2","dfs"); +} +} + + + + +//3 1ejgnwd7ek344caegjwg46n6h +// void acyclic(graph_t * g) +public static void acyclic_(Agraph_s g) { +ENTERING("1ejgnwd7ek344caegjwg46n6h","acyclic"); +try { + int c; + Agnode_s n; + for (c = 0; c < GD_comp(g).getInt("size"); c++) { + GD_nlist(g, GD_comp(g).getArrayOfPtr("list").plus(c).getPtr()); + for (n = GD_nlist(g); n!=null; n = ND_next(n)) + ND_mark(n, 0); + for (n = GD_nlist(g); n!=null; n = ND_next(n)) + dfs(n); + } +} finally { +LEAVING("1ejgnwd7ek344caegjwg46n6h","acyclic"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/aspect__c.java plantuml-8039/src/gen/lib/dotgen/aspect__c.java --- plantuml-8024/src/gen/lib/dotgen/aspect__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/aspect__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1265 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.attr__c.agget; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agraph_s; +import h.aspect_t; +import h.boxf; +import h.pointf; +import smetana.core.CString; +import smetana.core.__struct__; + +public class aspect__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 buo6aw1j4uziggaugy984eotj +// static nodeGroup_t *nodeGroups + + +//1 8pcclsxg8w461gulo0pvihkjp +// static int nNodeGroups = 0 + + + + +//3 e1ii1fk8ce43zhjwticczdewi +// static void computeNodeGroups(graph_t * g) +public static Object computeNodeGroups(Object... arg) { +UNSUPPORTED("85tw6ni78b2fdpbmcvfkfjj2g"); // static void computeNodeGroups(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("41zdayra08bo7qofh0t0g44tj"); // nodeGroups = (nodeGroup_t*)gmalloc((agnnodes(g))*sizeof(nodeGroup_t)); +UNSUPPORTED("751hgbeopd6kx0brs46ydl3nk"); // nNodeGroups = 0; +UNSUPPORTED("bhhgxkf7jt2bkoqqybblectmc"); // /* initialize node ids. Id of a node is used as an index to the group. */ +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("c29pxxzew8wpbooylabmstb6k"); // ND_id(n) = -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("856fgjw3c9mfzqbqcelccqz6i"); // if (ND_UF_size(n) == 0) { /* no same ranking constraint */ +UNSUPPORTED("995nygsph6blhs7u3roc320vt"); // nodeGroups[nNodeGroups].nodes = (node_t **)zmalloc(sizeof(node_t *)); +UNSUPPORTED("yecg6kqqsu0dce5l7yl9nz0v"); // nodeGroups[nNodeGroups].nodes[0] = n; +UNSUPPORTED("48boktg0q0ftjks7g2ugmcgr0"); // nodeGroups[nNodeGroups].nNodes = 1; +UNSUPPORTED("asru03zwy8elrmkb54ceapyf5"); // nodeGroups[nNodeGroups].width = ND_width(n); +UNSUPPORTED("63tq5olg8fmmqnngdsd2m0p7y"); // nodeGroups[nNodeGroups].height = ND_height(n); +UNSUPPORTED("2jtn1zrlba2gjw9o8ijqfjd8l"); // ND_id(n) = nNodeGroups; +UNSUPPORTED("26stq7kxzhcw4bdbet988ue9u"); // nNodeGroups++; +UNSUPPORTED("ek3ylp6qgnzrlvktaorzarkl6"); // } else /* group same ranked nodes */ +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("2xfdbwqwkydzc27ndexkdqpk3"); // node_t *l = UF_find(n); +UNSUPPORTED("9k1apjnlyvc0imkojboqq56t"); // if (ND_id(l) > -1) /* leader is already grouped */ +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("1dxpo17pe23wsyc88ervx5x7n"); // int index = ND_id(l); +UNSUPPORTED("a3rj9avq06zyyeiex95z1m5qs"); // nodeGroups[index].nodes[nodeGroups[index].nNodes++] = n; +UNSUPPORTED("4qloaqbsyg2krphzbyu8l502n"); // nodeGroups[index].width += ND_width(n); +UNSUPPORTED("7oxuv0m39o7l9yf15yjhvw804"); // nodeGroups[index].height = +UNSUPPORTED("f301cq3rurukx2hdrzu2rvioq"); // (nodeGroups[index].height < +UNSUPPORTED("8oi4o7ku7aqcurrfujz4p5qkb"); // ND_height(n)) ? ND_height(n) : nodeGroups[index]. +UNSUPPORTED("bkhrhsn74c58qx4h0val1pmjp"); // height; +UNSUPPORTED("7me4qfeob3i8uvnfzwktfincy"); // ND_id(n) = index; +UNSUPPORTED("d6w1jxu5j3ja7tpl4hcag7fv0"); // } else /* create a new group */ +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("2l80so4pkfhpik5o2c4xb7cff"); // nodeGroups[nNodeGroups].nodes = +UNSUPPORTED("3ey9wbuwiu5f6tykjlpo26lhj"); // (node_t **)zmalloc((ND_UF_size(l))*sizeof(node_t *)); +UNSUPPORTED("53ell10epajj2omj9xiynycta"); // if (l == n) /* node n is the leader */ +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("7m6pmc4ajzo9gva5pgvtljwf3"); // nodeGroups[nNodeGroups].nodes[0] = l; +UNSUPPORTED("1n4ihvxa7g9rlwmex1up2728t"); // nodeGroups[nNodeGroups].nNodes = 1; +UNSUPPORTED("a8p3badahan60lefgn5iq9a8c"); // nodeGroups[nNodeGroups].width = ND_width(l); +UNSUPPORTED("dcwvaft8b2juhy42freidgc8m"); // nodeGroups[nNodeGroups].height = ND_height(l); +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("7m6pmc4ajzo9gva5pgvtljwf3"); // nodeGroups[nNodeGroups].nodes[0] = l; +UNSUPPORTED("2aqign2uu1g30cyam63ohxptd"); // nodeGroups[nNodeGroups].nodes[1] = n; +UNSUPPORTED("el4pqstmtl01oio7cmzrq6qtb"); // nodeGroups[nNodeGroups].nNodes = 2; +UNSUPPORTED("c1rjyfjlfo2jj62bcy025ukg1"); // nodeGroups[nNodeGroups].width = +UNSUPPORTED("a2sytyotqqfithwfaykqmsycp"); // ND_width(l) + ND_width(n); +UNSUPPORTED("eiifp86c59tpvht7teuygr2hw"); // nodeGroups[nNodeGroups].height = +UNSUPPORTED("7zt5ahh08kx3u1cw8m39031bh"); // (ND_height(l) < +UNSUPPORTED("3s43dn8agepaf1zik284rw4iw"); // ND_height(n)) ? ND_height(n) : ND_height(l); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("1z3t7m0t6n4kv8tcm579ais2e"); // ND_id(l) = nNodeGroups; +UNSUPPORTED("1r38ircnao62y8uafy4au9p8c"); // ND_id(n) = nNodeGroups; +UNSUPPORTED("7yf3wfxeea0vbj0tkmh1sv74w"); // nNodeGroups++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5vqsnuao6a6zpx51lrbvsra7t +// int countDummyNodes(graph_t * g) +public static Object countDummyNodes(Object... arg) { +UNSUPPORTED("51gqqbcx9xe38hsqk7vtw2h74"); // int countDummyNodes(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("551funk1bxiemly3silcqtngw"); // int count = 0; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("33mzsqu0xadl81jos28k8lc70"); // /* Count dummy nodes */ +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("bzrm12ll46b0ey13f7049ny17"); // /* flat edges do not have dummy nodes */ +UNSUPPORTED("cyx78ekjs6rwln3461fbzwf7o"); // if (ND_rank(aghead(e)) != ND_rank(agtail(e))) +UNSUPPORTED("cb5zuqyn7ijkx5rk10yc6tfrv"); // count += abs(ND_rank(aghead(e)) - ND_rank(agtail(e))) - 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7rr0cazy4menu64k2rf61h98y"); // return count; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 by0sucsgzrupx1vrq0sc82zrb +// static layerWidthInfo_t *layerWidthInfo = NULL + + +//1 2g8u71llxsq207y4p1j8kefuc +// static int *sortedLayerIndex + + +//1 28et5dpanlo1pz361e1ey0l13 +// static int nLayers = 0 + + + + +//3 ecn38irnr39x1ci0qrksvt2vb +// static void computeLayerWidths(graph_t * g) +public static Object computeLayerWidths(Object... arg) { +UNSUPPORTED("f0yxrj5hl2h30nj0ykado8683"); // static void computeLayerWidths(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("aigogf44ojtcesuy4xs7inqbn"); // node_t *v; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("8o5u7blacrv03sbkd57tsy3ff"); // nLayers = 0; +UNSUPPORTED("dojzfz9p7nqclvdb5tee3yl8g"); // /* free previously allocated memory */ +UNSUPPORTED("74k79fcsj62zr7jlyzubwv7ld"); // if (layerWidthInfo) { +UNSUPPORTED("7c1hsgkci660fl7ovcywsfy7h"); // for (i = 0; i < nNodeGroups; i++) { +UNSUPPORTED("4fm2a017gr8w7plpnzbbgdte6"); // if (layerWidthInfo[i].nodeGroupsInLayer) { +UNSUPPORTED("1p0hpvyuh05m9zj7iv2byacuu"); // int j; +UNSUPPORTED("torjjxsqraaddaop50hfluyq"); // for (j = 0; j < layerWidthInfo[i].nNodeGroupsInLayer; j++) { +UNSUPPORTED("5rh2ziady9vvl3275k6sxuawd"); // //if (layerWidthInfo[i].nodeGroupsInLayer[j]) +UNSUPPORTED("qfkvchcmb0h3vrvsnu17fj29"); // //free(layerWidthInfo[i].nodeGroupsInLayer[j]); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("9jguo0kg597gyce5y5nj8kf6h"); // free(layerWidthInfo[i].nodeGroupsInLayer); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4vnpv79q6n6p1kg9ndbsmzfds"); // if (layerWidthInfo[i].removed) +UNSUPPORTED("2ypdtktf36wfecowcdjfjxbfn"); // free(layerWidthInfo[i].removed); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("aw89cecwa5xnmsohanlvbst8f"); // free(layerWidthInfo); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5xa04vocq8qrzxrvg4if75lnp"); // /* allocate memory +UNSUPPORTED("ge7jqooagslmrp81viou5iok"); // * the number of layers can go up to the number of node groups +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("2e016wvwaqoa74u0xllotojs0"); // layerWidthInfo = (layerWidthInfo_t*)zmalloc((nNodeGroups)*sizeof(layerWidthInfo_t)); +UNSUPPORTED("7vfjpab2mkl8qvm3ag5psj6hf"); // for (i = 0; i < nNodeGroups; i++) { +UNSUPPORTED("1ha5uzjeh0q6s99y9ngi159c"); // layerWidthInfo[i].nodeGroupsInLayer = +UNSUPPORTED("1bj8nm95udr98gzajp4k7nmuu"); // (nodeGroup_t **)zmalloc((nNodeGroups)*sizeof(nodeGroup_t *)); +UNSUPPORTED("6loyginnjye85c38h5sul660e"); // layerWidthInfo[i].removed = (int*)zmalloc((nNodeGroups)*sizeof(int)); +UNSUPPORTED("a16qoyl314d7d9chwymtn019s"); // layerWidthInfo[i].layerNumber = i; +UNSUPPORTED("cg2cd89vdfegcllk4lqfvn5h2"); // layerWidthInfo[i].nNodeGroupsInLayer = 0; +UNSUPPORTED("5qbgpr6w09rjfbzyrmcge4tt2"); // layerWidthInfo[i].nDummyNodes = 0; +UNSUPPORTED("6cn4a2kaj95meb5bwxgi6t0qr"); // layerWidthInfo[i].width = 0.0; +UNSUPPORTED("nklu8lmzpq6zswxqna7hbf2"); // layerWidthInfo[i].height = 0.0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("68bkdm53hpxme9qp9j1zxh4if"); // /* Count dummy nodes in the layer */ +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("bgir6fgzucxltcpf123wxwa16"); // int k; +UNSUPPORTED("9l0n1phb69gtf3xurnpundse6"); // /* FIX: This loop maybe unnecessary, but removing it and using +UNSUPPORTED("7qmve7ja4rala0jzz6b2bf7ee"); // * the commented codes next, gives a segmentation fault. I +UNSUPPORTED("6tsb25jdjgeyd8kt16ms1k9qc"); // * forgot the reason why. +UNSUPPORTED("29edlge3wqyp1gs0vymtr5700"); // */ +UNSUPPORTED("40f532kzdw6xhs33zio76rmo2"); // for (k = ND_rank(agtail(e)) + 1; k < ND_rank(aghead(e)); k++) { +UNSUPPORTED("chgb216iqv20trqdzrg86mdmx"); // layerWidthInfo[k].nDummyNodes++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("69qgvs0kkl50uqq9a8psjvv9h"); // /* gather the layer information */ +UNSUPPORTED("7vfjpab2mkl8qvm3ag5psj6hf"); // for (i = 0; i < nNodeGroups; i++) { +UNSUPPORTED("dh83pjg3c5msf1h1kf0axqdsx"); // v = nodeGroups[i].nodes[0]; +UNSUPPORTED("9bi1i3v5pz27x2f1y1abwhdrm"); // if (ND_rank(v) + 1 > nLayers) /* update the number of layers */ +UNSUPPORTED("ezub0uc17r32oo1qlkf2gdjds"); // nLayers = ND_rank(v) + 1; +UNSUPPORTED("aksirw784lry2qxk8yppa0p4e"); // layerWidthInfo[ND_rank(v)].width += +UNSUPPORTED("3szfevpiz60jx1spm5qxs6dd"); // nodeGroups[i].width * 72 + (layerWidthInfo[ND_rank(v)].width > +UNSUPPORTED("amrnb3ao1kyyugopgztdru2yy"); // 0) * GD_nodesep(g); +UNSUPPORTED("9jz8yn32phtkki2y93ymg6cmh"); // if (layerWidthInfo[ND_rank(v)].height < nodeGroups[i].height * 72) +UNSUPPORTED("41gme6wvrco68e7sq80ey8oal"); // layerWidthInfo[ND_rank(v)].height = nodeGroups[i].height * 72; +UNSUPPORTED("eglala2xwc9bmolhriirfo56e"); // layerWidthInfo[ND_rank(v)]. +UNSUPPORTED("arh0xb14ftp0yfs8ejxzmhjzk"); // nodeGroupsInLayer[layerWidthInfo[ND_rank(v)]. +UNSUPPORTED("mdsrd2ju7gexbgpwyclxucy0"); // nNodeGroupsInLayer] = &nodeGroups[i]; +UNSUPPORTED("8dv04kyx67hibudzpw8i562vh"); // layerWidthInfo[ND_rank(v)].nNodeGroupsInLayer++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 62on7vg7kkyolc539do3mec4h +// static int compFunction(const void *a, const void *b) +public static Object compFunction(Object... arg) { +UNSUPPORTED("4ocl61j8fqxzk98dh43ldqo7n"); // static int compFunction(const void *a, const void *b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("i2zwxk0ezuvec7grppkqqj67"); // int *ind1 = (int *) a; +UNSUPPORTED("2obagarn6xlc7uq4q8fg8pw05"); // int *ind2 = (int *) b; +UNSUPPORTED("cy4oapfo680baj6mqy6v64o0d"); // return (layerWidthInfo[*ind2].width > +UNSUPPORTED("44d4z7bklr6jymot3f82e2qk"); // layerWidthInfo[*ind1].width) - (layerWidthInfo[*ind2].width < +UNSUPPORTED("dol0wgt1zxwmpxius6rn6lf36"); // layerWidthInfo[*ind1].width); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ehhhz69emnjuunlpp23vqc6px +// static void sortLayers(graph_t * g) +public static Object sortLayers(Object... arg) { +UNSUPPORTED("30da20fhd5pcu6ofmw4vzj6xt"); // static void sortLayers(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1djuhyco70xz45va6y1yesa70"); // qsort(sortedLayerIndex, agnnodes(g), sizeof(int), compFunction); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6evdukaqstizjshbr4oanxa73 +// static int getOutDegree(nodeGroup_t * ng) +public static Object getOutDegree(Object... arg) { +UNSUPPORTED("2h5zq3e2klttmcfrs4pg0cst6"); // static int getOutDegree(nodeGroup_t * ng) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b5a93beg34iiqtnufv9wanh2r"); // int i, cnt = 0; +UNSUPPORTED("7ur993neb8tctm0gbe60vhpva"); // for (i = 0; i < ng->nNodes; i++) { +UNSUPPORTED("3ubjqvl7psu25r3c10ddw54v5"); // node_t *n = ng->nodes[i]; +UNSUPPORTED("ak952thd788dbr90m2fvaklyu"); // edge_t *e; +UNSUPPORTED("2z8g63ud3byunrtnllsx573mk"); // graph_t *g = agraphof(n); +UNSUPPORTED("dar3s057kgujhrxf7no64ofdb"); // /* count outdegree. This loop might be unnecessary. */ +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("7hl03wjg5yryhvbe4ar0i0b8g"); // cnt++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3zkt5kbq3sockq663o3s3ync7"); // return cnt; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 advd4q4a55y9bkee9lm2jlb0b +// static int compFunction2(const void *a, const void *b) +public static Object compFunction2(Object... arg) { +UNSUPPORTED("3ozmsdf5a2dqxtwspwzu5w8yl"); // static int compFunction2(const void *a, const void *b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("751goeklcv2nazn2zynh989rh"); // nodeGroup_t **ind1 = (nodeGroup_t **) a, **ind2 = (nodeGroup_t **) b; +UNSUPPORTED("d5t70ah6319tmfn70ddvkq7wr"); // int cnt1 = getOutDegree(*ind1); +UNSUPPORTED("8wbvk61eveeuzv86g34s2xbd4"); // int cnt2 = getOutDegree(*ind2); +UNSUPPORTED("54loo8ag5vsb7zdxx83v3wegy"); // return (cnt2 < cnt1) - (cnt2 > cnt1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aumg85jl3ptocfpw3ix2pech9 +// static void reduceMaxWidth2(graph_t * g) +public static Object reduceMaxWidth2(Object... arg) { +UNSUPPORTED("6kkeddpljjg8jce0vm3z2zxdy"); // static void reduceMaxWidth2(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("809hvj8mnkno5tj5jlitlzwba"); // int maxLayerIndex; +UNSUPPORTED("7krkyrq7vtxesiaw3i63dji4m"); // double nextMaxWidth; +UNSUPPORTED("c9w9u59u9ncaoyp4lxxvw7ys3"); // double w = 0; +UNSUPPORTED("9x23dbda4cbxrfoy5h5q89sef"); // double targetWidth; +UNSUPPORTED("3d8p59v1x246rys9xsoqpko98"); // int fst; +UNSUPPORTED("4zuos9b188cv83meg3dw0orp3"); // nodeGroup_t *fstNdGrp; +UNSUPPORTED("beehmu1l85sgql2h4wysgoce4"); // int ndem; +UNSUPPORTED("884zwztabkph7x61nviw8sjef"); // int p, q; +UNSUPPORTED("8t1tccvz58ueg1sf9fyado1vu"); // int limit; +UNSUPPORTED("di25ovytf5y19mju57f42pogp"); // int rem; +UNSUPPORTED("dcmflthwszqqq5jsozmt9oyfi"); // int rem2; +UNSUPPORTED("81h1x4spv5vyw9fipnyfpgcmm"); // /* Find the widest layer. it must have at least 2 nodes. */ +UNSUPPORTED("5ad5whcn26kk2tafa6g5hmjgm"); // for (i = 0; i < nLayers; i++) { +UNSUPPORTED("367ttm0jqivj6ascugpsq2ihs"); // if (layerWidthInfo[sortedLayerIndex[i]].nNodeGroupsInLayer <= 1) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("1qngg4wjsrt1uwmffwse8e1fm"); // maxLayerIndex = sortedLayerIndex[i]; +UNSUPPORTED("mrjkzaja4hn0djdm4njyzwgn"); // /* get the width of the next widest layer */ +UNSUPPORTED("bekefegm5r42jf82uhdsw60k2"); // nextMaxWidth = +UNSUPPORTED("1s96rlqp02to8be86ahpks4qp"); // (nLayers > +UNSUPPORTED("4qkxf4ozs5338fev3ejswyucm"); // i + 1) ? layerWidthInfo[sortedLayerIndex[i + +UNSUPPORTED("90jb1nqwt32r76t90h3kukxls"); // 1]].width : 0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("atqfhmyhmoiwees87nqlh9bs2"); // if (i == nLayers) +UNSUPPORTED("4wofltgoxyf0kq1ucrvv2sbq9"); // return; /* reduction of layerwidth is not possible. */ +UNSUPPORTED("5nqb1rqm56ozkw6w0ysotyy06"); // /* sort the node groups in maxLayerIndex layer by height and +UNSUPPORTED("e9gqf91z12tzdilu3jefz85op"); // * then width, nonincreasing +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("3tbh2oua8twhyt14bkhup0v5n"); // qsort(layerWidthInfo[maxLayerIndex].nodeGroupsInLayer, +UNSUPPORTED("80ucuxmaxd96o7ozxxno7y18c"); // layerWidthInfo[maxLayerIndex].nNodeGroupsInLayer, +UNSUPPORTED("f0wxqmd02xh4xxnox7semmqup"); // sizeof(nodeGroup_t *), compFunction2); +UNSUPPORTED("bukry94lbr7k56elmyf5nyna1"); // if (nextMaxWidth <= layerWidthInfo[maxLayerIndex].width / 4 +UNSUPPORTED("1dy07qz8nxz4ovvsonpv95h8x"); // || nextMaxWidth >= layerWidthInfo[maxLayerIndex].width * 3 / 4) +UNSUPPORTED("4xw4q9anml67xuotpbea3yy1x"); // nextMaxWidth = layerWidthInfo[maxLayerIndex].width / 2; +UNSUPPORTED("4vcsswlnmvhk990gonx0dbl53"); // targetWidth = nextMaxWidth; /* layerWidthInfo[maxLayerIndex].width/2; */ +UNSUPPORTED("8xl0athl77hag9patwu9qhehu"); // /* now partition the current layer into two or more +UNSUPPORTED("c49o3kf9bot8xo1pu9vb9qcsy"); // * layers (determined by the ranking algorithm) +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("3ku48i8nky2n7oji9472v747k"); // fst = 0; +UNSUPPORTED("cspv6bcy4ird3pgtk05x2v9x6"); // ndem = 0; +UNSUPPORTED("1b8yssh8ruoe077cgcki6zdrt"); // limit = layerWidthInfo[maxLayerIndex].nNodeGroupsInLayer; +UNSUPPORTED("2rbxfdjhm2zringpkeerct448"); // rem = 0; +UNSUPPORTED("apzuij26xnj5ma4m18z4ai50w"); // rem2 = 0; +UNSUPPORTED("dap1pwebtq8maf5s2545nbrp1"); // /* initialize w, the width of the widest layer after partitioning */ +UNSUPPORTED("7l2ucqsu9ruv5iie2klh90ahd"); // w = 0; +UNSUPPORTED("a7g80jjjbl6srwowqdzxcoqs0"); // for (i = 0; i < limit + rem; i++) { +UNSUPPORTED("1ahjq48zq780a0cwvpseutdkn"); // if (layerWidthInfo[maxLayerIndex].removed[i]) { +UNSUPPORTED("48so496p8g7nm344prgfhv3r5"); // rem++; +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cg4gj8hzn83y6snfckfbmfo6e"); // if ((w + +UNSUPPORTED("dv06i6wtz2bw1qsahmuqs98hl"); // layerWidthInfo[maxLayerIndex].nodeGroupsInLayer[i]->width * +UNSUPPORTED("pf67y1fh8hdiylyu2431xmxa"); // 72 + (w > 0) * GD_nodesep(g) <= targetWidth) +UNSUPPORTED("bq1bstz8voswqa4fjibespqab"); // || !fst) { +UNSUPPORTED("5qq0d479u9d6d2ye5xl80ax0d"); // w += (layerWidthInfo[maxLayerIndex].nodeGroupsInLayer[i])-> +UNSUPPORTED("bq93mxk1jp4ou77b72s93zr85"); // width * 72 + (w > 0) * GD_nodesep(g); +UNSUPPORTED("366y982g736adlsryzw0c3oek"); // if (!fst) { +UNSUPPORTED("9plnm3zvs0636dt0kmoha46l"); // fstNdGrp = +UNSUPPORTED("5xiakyfs1gp0y9aasprrrk5mn"); // layerWidthInfo[maxLayerIndex].nodeGroupsInLayer[i]; +UNSUPPORTED("bf0q1igp1253yxfg3f1tfel24"); // fst = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("3wwlt6ahhurc0ijlwm0bxslur"); // nodeGroup_t *ng = +UNSUPPORTED("43fttvx26kc9s70wgpnm3ws2q"); // layerWidthInfo[maxLayerIndex].nodeGroupsInLayer[i]; +UNSUPPORTED("kq0gpmkxpiwbektqvym913vy"); // for (p = 0; p < fstNdGrp->nNodes; p++) +UNSUPPORTED("7chqat1hgor0xzck89881kmmz"); // for (q = 0; q < ng->nNodes; q++) { +UNSUPPORTED("3egbmst2r8790sta0upbaq3kj"); // //printf("Trying to add virtual edge: %s -> %s\n", +UNSUPPORTED("dwbnct46v3we663g5l2tmptui"); // // agnameof(fstNdGrp->nodes[p]), agnameof(ng->nodes[q])); +UNSUPPORTED("cuqv9sy98rmhdbjpzeex3rg4v"); // /* The following code is for deletion of long virtual edges. +UNSUPPORTED("1r2z18tbg612ek9sfb489a6xc"); // * It's no longer used. +UNSUPPORTED("e37um01phgd5qy4hrex7cu8bi"); // */ +UNSUPPORTED("58a2mmk9lsz9t5yzb8b9f8bkp"); // /* add a new virtual edge */ +UNSUPPORTED("6ljuxngn9wk3ftcodzf054yeu"); // edge_t *newVEdge = +UNSUPPORTED("844w3zq8p902r572neb30unb6"); // virtual_edge(fstNdGrp->nodes[p], ng->nodes[q], +UNSUPPORTED("b955fhzlbikknivthxtzpnugj"); // NULL); +UNSUPPORTED("qt1p5nrwd57te4eh2ohjmmta"); // ED_edge_type(newVEdge) = 1; +UNSUPPORTED("dsgv48crsux69djskyfkvpq8a"); // ndem++; /* increase number of node demotions */ +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7vqv39l80iv7x6hfdcecytlgy"); // /* the following code updates the layer width information. The +UNSUPPORTED("7j2qzieax8k3ao9i9so65vkc1"); // * update is not useful in the current version of the heuristic. +UNSUPPORTED("20m1lc1moer8x00tx9ceto0iw"); // */ +UNSUPPORTED("8vij5gjt5kh41fekao3vc79ck"); // layerWidthInfo[maxLayerIndex].removed[i] = 1; +UNSUPPORTED("czzy9dbc0rmsq8m3o0g5tuamg"); // rem2++; +UNSUPPORTED("96jz56riot2d1ri2fufximy6f"); // layerWidthInfo[maxLayerIndex].nNodeGroupsInLayer--; +UNSUPPORTED("ahih3boi0hmv6cjfgurjbltxl"); // /* SHOULD BE INCREASED BY THE SUM OF INDEG OF ALL NODES IN GROUP */ +UNSUPPORTED("7wh7bhbziqs0nzma76j37hbiz"); // layerWidthInfo[maxLayerIndex].nDummyNodes++; +UNSUPPORTED("4zs60km4pkprzvbgtwsdhp5ad"); // layerWidthInfo[maxLayerIndex].width -= +UNSUPPORTED("atkdij9n6sv7amu7j5iiofmpb"); // (ng->width * 72 + GD_nodesep(g)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9m17vsomqcrp49v7i892k9wdz +// static void applyPacking2(graph_t * g) +public static Object applyPacking2(Object... arg) { +UNSUPPORTED("a65t347rhgkl70wordiofv3b"); // static void applyPacking2(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("5z9j46ysd1pb5bnq6c90enmrq"); // sortedLayerIndex = (int*)zmalloc((agnnodes(g))*sizeof(int)); +UNSUPPORTED("9bb75wlkcadi5zu3bgx60fel0"); // for (i = 0; i < agnnodes(g); i++) { +UNSUPPORTED("e9lhr9mahq6qolp5r06dl6rfy"); // sortedLayerIndex[i] = i; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ekdavoqh7w4imu35z1hk4cr27"); // computeLayerWidths(g); +UNSUPPORTED("6541sj456n87xc6ssjlvin6lv"); // sortLayers(g); +UNSUPPORTED("22r0c4vewes195tok6uvfzjjk"); // reduceMaxWidth2(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b9x4re3dvjn32qyn2twehamcd +// void initEdgeTypes(graph_t * g) +public static Object initEdgeTypes(Object... arg) { +UNSUPPORTED("2syp4meyieisq746m5m1ff921"); // void initEdgeTypes(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("7k5t9s9q7nhmwr9qz8jg12ams"); // int lc; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("z39vglndoyxj54j2z9v64r6q"); // for (lc = 0; lc < ND_in(n).size; lc++) { +UNSUPPORTED("agilsevb8bk3ymoczc2ptb24y"); // e = ND_in(n).list[lc]; +UNSUPPORTED("21bvtwcu90i27r8cbu2ngifk"); // ED_edge_type(e) = 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9b4z7q5fnvgvi1cs36mimkrqs +// static double computeCombiAR(graph_t * g) +public static Object computeCombiAR(Object... arg) { +UNSUPPORTED("8y99bebjn0nlslisg0u06o7ef"); // static double computeCombiAR(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("gmffj6qikpm7gyjl7ppj2avw"); // int i, maxLayerIndex; +UNSUPPORTED("bkqjq8sflq6i69h1q5wtrqdyz"); // double maxW = 0; +UNSUPPORTED("d2sh953raugyt16qa6wimemaq"); // double maxH; +UNSUPPORTED("3dg5tppzkfs857vo6ykmcnnah"); // double ratio; +UNSUPPORTED("ekdavoqh7w4imu35z1hk4cr27"); // computeLayerWidths(g); +UNSUPPORTED("btqcp1jn7vzx1obrdwlpao8ei"); // maxH = (nLayers - 1) * GD_ranksep(g); +UNSUPPORTED("5ad5whcn26kk2tafa6g5hmjgm"); // for (i = 0; i < nLayers; i++) { +UNSUPPORTED("6nkzs7fajji0961pjb259v0fk"); // if (maxW < +UNSUPPORTED("5k2g68qxz0ue7tb2a4pdbhu2j"); // layerWidthInfo[i].width + +UNSUPPORTED("eoi6tblklq5p0ap1ck08iiqj8"); // layerWidthInfo[i].nDummyNodes * GD_nodesep(g)) { +UNSUPPORTED("93grfh5yi1ydy8iyt353uh909"); // maxW = +UNSUPPORTED("279i4wi2e4voircoomc1ry8ua"); // layerWidthInfo[i].width + +UNSUPPORTED("6xb1rhy6cdjxo2vbpz8nhuvxe"); // layerWidthInfo[i].nDummyNodes * GD_nodesep(g); +UNSUPPORTED("92zn37cakfkafc7ginje53mb6"); // maxLayerIndex = i; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cn95qhc4xh1ri1c41fnpwce48"); // maxH += layerWidthInfo[i].height; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9p670kmiu3qqp1vgbn22mq4w9"); // ratio = maxW / maxH; +UNSUPPORTED("beyrasxgt5kbbdyzy9nvsaf3i"); // return ratio; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 w58r6lvyglcqidl4qnxr3cm5 +// static void zapLayers(graph_t * g) +public static Object zapLayers(Object... arg) { +UNSUPPORTED("dsto0e5yga5gs3tgtzp4pbffj"); // static void zapLayers(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j; +UNSUPPORTED("7cl1kmap8x457uux62gb4277b"); // int start = 0; +UNSUPPORTED("551funk1bxiemly3silcqtngw"); // int count = 0; +UNSUPPORTED("90et4gwa94l7wrduohmumf7q6"); // /* the layers are sorted by the layer number. now zap the empty layers */ +UNSUPPORTED("5ad5whcn26kk2tafa6g5hmjgm"); // for (i = 0; i < nLayers; i++) { +UNSUPPORTED("8oo7ghtfr3xrf5gukymtnn4jk"); // if (layerWidthInfo[i].nNodeGroupsInLayer == 0) { +UNSUPPORTED("dgv3r9g8m1rprnlfpxqhfe1z9"); // if (count == 0) +UNSUPPORTED("2ksocundgfwgz5agi901h1ng6"); // start = layerWidthInfo[i].layerNumber; +UNSUPPORTED("fn6rrzmrb2yold6j6aofg94n"); // count++; +UNSUPPORTED("ern96acbmw0trnet16xgt1chp"); // } else if (count && layerWidthInfo[i].layerNumber > start) { +UNSUPPORTED("4f4sjt4zqxe5b75pgq7zd079z"); // for (j = 0; j < layerWidthInfo[i].nNodeGroupsInLayer; j++) { +UNSUPPORTED("euaoxl3q399fzxn78jpuxbz0m"); // int q; +UNSUPPORTED("4y0bw1xrvij26xm6lflig8hph"); // nodeGroup_t *ng = layerWidthInfo[i].nodeGroupsInLayer[j]; +UNSUPPORTED("7chqat1hgor0xzck89881kmmz"); // for (q = 0; q < ng->nNodes; q++) { +UNSUPPORTED("ez35ky0s0p5r57be9io2lrr10"); // node_t *nd = ng->nodes[q]; +UNSUPPORTED("bcfxc7h41rzopvk27c7kreog"); // ND_rank(nd) -= count; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 25p8yyx732fa1dwxany5vkmqv +// void rank3(graph_t * g, aspect_t * asp) +public static Object rank3(Object... arg) { +UNSUPPORTED("ey9g3c61eb7j5dnz3gbhvflt3"); // void rank3(graph_t * g, aspect_t * asp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("752slid56zrpl98vchhyeqpj"); // int iterations = asp->nextIter; +UNSUPPORTED("6wfeyz2bw1fm15jb5qg3a79a2"); // double lastAR = MAXDOUBLE; +UNSUPPORTED("5bvy7rsy7sf1krbn35gmd888x"); // computeNodeGroups(g); /* groups of UF DS nodes */ +UNSUPPORTED("cn5dqgh2amp70r1jzq8d7v75x"); // for (i = 0; (i < iterations) || (iterations == -1); i++) { +UNSUPPORTED("42uwgh3dkewf6zkd83xt1wzjd"); // /* initialize all ranks to be 0 */ +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("f429zn3r84ceckfatzshenxzo"); // ND_rank(n) = 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("d7qgdx3iixit5pdzj1yfw5vc8"); // /* need to compute ranking first--- by Network flow */ +UNSUPPORTED("1um989w8mqkye2u0q3wbc8dgb"); // rank1(g); +UNSUPPORTED("cou59yxqf69o7kpjwdkc0vdth"); // asp->combiAR = computeCombiAR(g); +UNSUPPORTED("a0xpyoq74njvdwc9lcvgyfc0p"); // if (Verbose) +UNSUPPORTED("5ndbkluuhatxcz2bwngcywbhc"); // fprintf(stderr, "combiAR = %lf\n", asp->combiAR); +UNSUPPORTED("53w2avskexaf6hjssoeplgz0o"); // /* Uncomment the following codes, for working with narrow graphs */ +UNSUPPORTED("am6dg6wfejg71244n1zzvaed6"); // /* Success or if no improvement */ +UNSUPPORTED("7qroolj8ezwbbkwrss9k1q5mc"); // if ((asp->combiAR <= asp->targetAR) || ((iterations == -1) && (lastAR <= asp->combiAR))) { +UNSUPPORTED("11dozd7gvruvmd3x164caqmgz"); // asp->prevIterations = asp->curIterations; +UNSUPPORTED("bm7zpotfxeku2ydqqsd6twzm6"); // asp->curIterations = i; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7r2hn8bkthpfcf03lu4vnje0f"); // lastAR = asp->combiAR; +UNSUPPORTED("9tsz1ho0itczonzjb308rql0m"); // /* Apply the FFDH algorithm to reduce the aspect ratio; */ +UNSUPPORTED("7jlj2ab1tf2kzdmzf0f14epg4"); // applyPacking2(g); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9zv64kjrcw7u09t5lm2qsg4fw"); // /* do network flow once again... incorporating the added edges */ +UNSUPPORTED("393qo3g8b50gvp5o0tpqh29v1"); // rank1(g); +UNSUPPORTED("ekdavoqh7w4imu35z1hk4cr27"); // computeLayerWidths(g); +UNSUPPORTED("b1ukbsj4nhxbvn64fx7zbx7sn"); // zapLayers(g); +UNSUPPORTED("3b5copquo4t13fbkmtbbkvo8j"); // asp->combiAR = computeCombiAR(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7bn6xhopjjdriiwvcpg9wqy1y +// void init_UF_size(graph_t * g) +public static Object init_UF_size(Object... arg) { +UNSUPPORTED("cqp1rfchvfwon31gknapperjh"); // void init_UF_size(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("2jzig41vokvwcy6z0o5dgo7sb"); // ND_UF_size(n) = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5srsfxqlego6qiyj5mm8m4ql2 +// aspect_t* setAspect (Agraph_t * g, aspect_t* adata) +public static aspect_t setAspect(Agraph_s g, aspect_t adata) { +ENTERING("5srsfxqlego6qiyj5mm8m4ql2","setAspect"); +try { + double rv; + CString p; + int r, passes = 5; + p = agget (g, new CString("aspect")); + if (N(p) || UNSUPPORTED("(r = sscanf (p, %lf,%d, &rv, &passes)) <= 0)")==null) { + adata.setInt("nextIter", 0); + adata.setInt("badGraph", 0); + return null; + } +UNSUPPORTED("bq1l9wqiw8bcls8ptb8o9rhqi"); // agerr (AGWARN, "the aspect attribute has been disabled due to implementation flaws - attribute ignored.\n"); +UNSUPPORTED("1hvtnh8r9fb47ewad86tcf0n0"); // adata->nextIter = 0; +UNSUPPORTED("xx058mix2zyckbi0esnoc56v"); // adata->badGraph = 0; +UNSUPPORTED("o68dp934ebg4cplebgc5hv4v"); // return NULL; +UNSUPPORTED("ikxv7u2qba6riujs2unqsitx"); // if (rv < 1.0) rv = 1.0; +UNSUPPORTED("acmmvkcaf8bc8wb6kdx9s2d3a"); // else if (rv > 20.0) rv = 20.0; +UNSUPPORTED("18wyf3ih8fg4x4s3c006nx8zx"); // adata->targetAR = rv; +UNSUPPORTED("2875r01nyy2cpm1c439zwu6tf"); // adata->nextIter = -1; +UNSUPPORTED("9ssjc7jsfl2jgw01gwnr3ftal"); // adata->nPasses = passes; +UNSUPPORTED("xx058mix2zyckbi0esnoc56v"); // adata->badGraph = 0; +UNSUPPORTED("620q0efwdrg8vw3ggwpmxqiwv"); // if (Verbose) +UNSUPPORTED("a7heh0decro63skjh8xq4buo7"); // fprintf(stderr, "Target AR = %g\n", adata->targetAR); +UNSUPPORTED("b1cn763x4de1h91cdv3d4o3lb"); // return adata; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("5srsfxqlego6qiyj5mm8m4ql2","setAspect"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/class1__c.java plantuml-8039/src/gen/lib/dotgen/class1__c.java --- plantuml-8024/src/gen/lib/dotgen/class1__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/class1__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,815 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.attr__c.agxget; +import static gen.lib.cgraph.edge__c.agfstout; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agnxtout; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.node__c.agfstnode; +import static gen.lib.cgraph.node__c.agnxtnode; +import static gen.lib.common.utils__c.UF_find; +import static gen.lib.common.utils__c.mapbool; +import static gen.lib.dotgen.cluster__c.mark_clusters; +import static gen.lib.dotgen.fastgr__c.find_fast_edge; +import static gen.lib.dotgen.fastgr__c.merge_oneway; +import static gen.lib.dotgen.fastgr__c.virtual_edge; +import static gen.lib.dotgen.fastgr__c.virtual_node; +import static gen.lib.dotgen.position__c.make_aux_edge; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ED_minlen; +import static smetana.core.Macro.ED_to_orig; +import static smetana.core.Macro.ED_to_virt; +import static smetana.core.Macro.ED_weight; +import static smetana.core.Macro.GD_leader; +import static smetana.core.Macro.ND_clust; +import static smetana.core.Macro.ND_node_type; +import static smetana.core.Macro.ND_rank; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.boxf; +import h.pointf; +import smetana.core.CString; +import smetana.core.Z; +import smetana.core.__struct__; + +public class class1__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2luyof8ca7ewf9r08z3os3lk7 +// int nonconstraint_edge(edge_t * e) +public static boolean nonconstraint_edge(Agedge_s e) { +ENTERING("2luyof8ca7ewf9r08z3os3lk7","nonconstraint_edge"); +try { + CString constr; + if (Z._().E_constr!=null && (constr = agxget(e, Z._().E_constr))!=null) { + if (constr.charAt(0)!='\0' && mapbool(constr) == false) + return (!(false)); + } + return false; +} finally { +LEAVING("2luyof8ca7ewf9r08z3os3lk7","nonconstraint_edge"); +} +} + + + + +//3 dpimuv55sylui7jx8fh3ic1qc +// static void interclust1(graph_t * g, node_t * t, node_t * h, edge_t * e) +public static void interclust1(Agraph_s g, Agnode_s t, Agnode_s h, Agedge_s e) { +ENTERING("dpimuv55sylui7jx8fh3ic1qc","interclust1"); +try { + Agnode_s v, t0, h0; + int offset, t_len, h_len, t_rank, h_rank; + Agedge_s rt, rh; + if (ND_clust(agtail(e))!=null) + t_rank = ND_rank(agtail(e)) - ND_rank(GD_leader(ND_clust(agtail(e)))); + else + t_rank = 0; + if (ND_clust(aghead(e))!=null) + h_rank = ND_rank(aghead(e)) - ND_rank(GD_leader(ND_clust(aghead(e)))); + else + h_rank = 0; + offset = ED_minlen(e) + t_rank - h_rank; + if (offset > 0) { + t_len = 0; + h_len = offset; + } else { + t_len = -offset; + h_len = 0; + } + v = virtual_node(g); + ND_node_type(v, 2); + t0 = UF_find(t); + h0 = UF_find(h); + rt = make_aux_edge(v, t0, t_len, 10 * ED_weight(e)); + rh = make_aux_edge(v, h0, h_len, ED_weight(e)); + ED_to_orig(rt, e); + ED_to_orig(rh, e); +} finally { +LEAVING("dpimuv55sylui7jx8fh3ic1qc","interclust1"); +} +} + + + + +//3 acy5ct6402jgf0ga5oeeskx5m +// void class1(graph_t * g) +public static void class1_(Agraph_s g) { +ENTERING("acy5ct6402jgf0ga5oeeskx5m","class1"); +try { + Agnode_s n, t, h; + Agedge_s e, rep; + mark_clusters(g); + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) { + for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) { + /* skip edges already processed */ + if (ED_to_virt(e)!=null) + continue; + /* skip edges that we want to ignore in this phase */ + if (nonconstraint_edge(e)) + continue; + t = UF_find(agtail(e)); + h = UF_find(aghead(e)); + /* skip self, flat, and intra-cluster edges */ + if (EQ(t, h)) + continue; + /* inter-cluster edges require special treatment */ + if (ND_clust(t)!=null || ND_clust(h)!=null) { + interclust1(g, agtail(e), aghead(e), e); + continue; + } + if ((rep = find_fast_edge(t, h))!=null) + merge_oneway(e, rep); + else + virtual_edge(t, h, e); + } + } +} finally { +LEAVING("acy5ct6402jgf0ga5oeeskx5m","class1"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/class2__c.java plantuml-8039/src/gen/lib/dotgen/class2__c.java --- plantuml-8024/src/gen/lib/dotgen/class2__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/class2__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1094 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.edge__c.agedge; +import static gen.lib.cgraph.edge__c.agfstout; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agnxtout; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.node__c.agfstnode; +import static gen.lib.cgraph.node__c.agnxtnode; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.common.utils__c.UF_find; +import static gen.lib.dotgen.cluster__c.build_skeleton; +import static gen.lib.dotgen.cluster__c.mark_clusters; +import static gen.lib.dotgen.dotinit__c.dot_root; +import static gen.lib.dotgen.fastgr__c.fast_node; +import static gen.lib.dotgen.fastgr__c.find_fast_edge; +import static gen.lib.dotgen.fastgr__c.flat_edge; +import static gen.lib.dotgen.fastgr__c.merge_oneway; +import static gen.lib.dotgen.fastgr__c.other_edge; +import static gen.lib.dotgen.fastgr__c.virtual_edge; +import static gen.lib.dotgen.fastgr__c.virtual_node; +import static gen.lib.dotgen.mincross__c.virtual_weight; +import static gen.lib.dotgen.position__c.ports_eq; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ALLOC_empty; +import static smetana.core.Macro.ED_conc_opp_flag; +import static smetana.core.Macro.ED_count; +import static smetana.core.Macro.ED_edge_type; +import static smetana.core.Macro.ED_label; +import static smetana.core.Macro.ED_label_ontop; +import static smetana.core.Macro.ED_to_virt; +import static smetana.core.Macro.ED_weight; +import static smetana.core.Macro.ED_xpenalty; +import static smetana.core.Macro.GD_clust; +import static smetana.core.Macro.GD_comp; +import static smetana.core.Macro.GD_flip; +import static smetana.core.Macro.GD_n_cluster; +import static smetana.core.Macro.GD_n_nodes; +import static smetana.core.Macro.GD_nlist; +import static smetana.core.Macro.GD_nodesep; +import static smetana.core.Macro.GD_rankleader; +import static smetana.core.Macro.MAX; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_clust; +import static smetana.core.Macro.ND_ht; +import static smetana.core.Macro.ND_label; +import static smetana.core.Macro.ND_lw; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.ND_rank; +import static smetana.core.Macro.ND_ranktype; +import static smetana.core.Macro.ND_rw; +import static smetana.core.Macro.ND_weight_class; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.boxf; +import h.pointf; +import smetana.core.Z; +import smetana.core.__struct__; + +public class class2__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2zn7c6ulmwwzaibdxo127jf04 +// static node_t* label_vnode(graph_t * g, edge_t * orig) +public static Agnode_s label_vnode(Agraph_s g, Agedge_s orig) { +ENTERING("2zn7c6ulmwwzaibdxo127jf04","label_vnode"); +try { + Agnode_s v; + final __struct__ dimen = __struct__.from(pointf.class); + dimen.____(ED_label(orig).getStruct("dimen")); + v = virtual_node(g); + ND_label(v, ED_label(orig)); + ND_lw(v, GD_nodesep(agroot(v))); + if (N(ED_label_ontop(orig))) { + if (GD_flip(agroot(g))!=0) { + ND_ht(v, dimen.getDouble("x")); + ND_rw(v, dimen.getDouble("y")); + } else { + ND_ht(v, dimen.getDouble("y")); + ND_rw(v, dimen.getDouble("x")); + } + } + return v; +} finally { +LEAVING("2zn7c6ulmwwzaibdxo127jf04","label_vnode"); +} +} + + + + +//3 49tji49jdm9uges7v8lf2j2rn +// static void incr_width(graph_t * g, node_t * v) +public static void incr_width(Agraph_s g, Agnode_s v) { +ENTERING("49tji49jdm9uges7v8lf2j2rn","incr_width"); +try { + int width = GD_nodesep(g) / 2; + ND_lw(v, ND_lw(v) + width); + ND_rw(v, ND_rw(v) + width); +} finally { +LEAVING("49tji49jdm9uges7v8lf2j2rn","incr_width"); +} +} + + + + +//3 xujihq6vep3ez275shtrbilo +// static node_t* plain_vnode(graph_t * g, edge_t * orig) +public static Agnode_s plain_vnode(Agraph_s g, Agedge_s orig) { +ENTERING("xujihq6vep3ez275shtrbilo","plain_vnode"); +try { + Agnode_s v; + orig = orig; + v = virtual_node(g); + incr_width(g, v); + return v; +} finally { +LEAVING("xujihq6vep3ez275shtrbilo","plain_vnode"); +} +} + + + + +//3 9fmfj1b2jik7skv6ms0657t8r +// static node_t* leader_of(graph_t * g, node_t * v) +public static Agnode_s leader_of(Agraph_s g, Agnode_s v) { +ENTERING("9fmfj1b2jik7skv6ms0657t8r","leader_of"); +try { + Agraph_s clust; + Agnode_s rv; + if (ND_ranktype(v) != 7) { + /*assert(v == UF_find(v)); could be leaf, so comment out */ + rv = UF_find(v); + } else { + clust = ND_clust(v); + rv = (Agnode_s) GD_rankleader(clust).plus(ND_rank(v)).getPtr(); + } + return rv; +} finally { +LEAVING("9fmfj1b2jik7skv6ms0657t8r","leader_of"); +} +} + + + + +//3 6sbvlvurvkodunw2qt1ug70c2 +// static void make_chain(graph_t * g, node_t * from, node_t * to, edge_t * orig) +public static void make_chain(Agraph_s g, Agnode_s from, Agnode_s to, Agedge_s orig) { +ENTERING("6sbvlvurvkodunw2qt1ug70c2","make_chain"); +try { + int r, label_rank; + Agnode_s u, v=null; + Agedge_s e; + u = from; + if (ED_label(orig)!=null) + label_rank = (ND_rank(from) + ND_rank(to)) / 2; + else + label_rank = -1; + //assert(ED_to_virt(orig) == NULL); + for (r = ND_rank(from) + 1; r <= ND_rank(to); r++) { + if (r < ND_rank(to)) { + if (r == label_rank) + v = label_vnode(g, orig); + else + v = plain_vnode(g, orig); + ND_rank(v, r); + } else + v = to; + e = virtual_edge(u, v, orig); + virtual_weight(e); + u = v; + } + // assert(ED_to_virt(orig) != NULL); +} finally { +LEAVING("6sbvlvurvkodunw2qt1ug70c2","make_chain"); +} +} + + + + +//3 659ld5tcseo3l0hopxb3pf0vv +// static void interclrep(graph_t * g, edge_t * e) +public static void interclrep(Agraph_s g, Agedge_s e) { +ENTERING("659ld5tcseo3l0hopxb3pf0vv","interclrep"); +try { + Agnode_s t, h; + Agedge_s ve; + t = leader_of(g, agtail(e)); + h = leader_of(g, aghead(e)); + if (ND_rank(t) > ND_rank(h)) { + Agnode_s t0 = t; + t = h; + h = t0; + } + if (NEQ(ND_clust(t), ND_clust(h))) { + if ((ve = find_fast_edge(t, h))!=null) { + merge_chain(g, e, ve, NOT(false)); + return; + } + if (ND_rank(t) == ND_rank(h)) + return; + make_chain(g, t, h, e); + /* mark as cluster edge */ + for (ve = ED_to_virt(e); ve!=null && (ND_rank(aghead(ve)) <= ND_rank(h)); + ve = (Agedge_s) ND_out(aghead(ve)).getArrayOfPtr("list").plus(0).getPtr()) + ED_edge_type(ve, 5); + } + /* else ignore intra-cluster edges at this point */ +} finally { +LEAVING("659ld5tcseo3l0hopxb3pf0vv","interclrep"); +} +} + + + + +//3 c0cx00ki1i1kx0bp84e7xjg8d +// static int is_cluster_edge(edge_t * e) +public static boolean is_cluster_edge(Agedge_s e) { +ENTERING("c0cx00ki1i1kx0bp84e7xjg8d","is_cluster_edge"); +try { + return ((ND_ranktype(agtail(e)) == 7) + || (ND_ranktype(aghead(e)) == 7)); +} finally { +LEAVING("c0cx00ki1i1kx0bp84e7xjg8d","is_cluster_edge"); +} +} + + + + +//3 c45973dtaighb3u0auuekcs1y +// void merge_chain(graph_t * g, edge_t * e, edge_t * f, int flag) +public static void merge_chain(Agraph_s g, Agedge_s e, Agedge_s f, boolean flag) { +ENTERING("c45973dtaighb3u0auuekcs1y","merge_chain"); +try { + Agedge_s rep; + int lastrank = MAX(ND_rank(agtail(e)), ND_rank(aghead(e))); + //assert(ED_to_virt(e) == NULL); + ED_to_virt(e, f); + rep = f; + do { + /* interclust multi-edges are not counted now */ + if (flag) + ED_count(rep, ED_count(rep) + ED_count(e)); + ED_xpenalty(rep, ED_xpenalty(rep) + ED_xpenalty(e)); + ED_weight(rep, ED_weight(rep) + ED_weight(e)); + if (ND_rank(aghead(rep)) == lastrank) + break; + incr_width(g, aghead(rep)); + rep = (Agedge_s) ND_out(aghead(rep)).getArrayOfPtr("list").plus(0).getPtr(); + } while (rep!=null); +} finally { +LEAVING("c45973dtaighb3u0auuekcs1y","merge_chain"); +} +} + + + + +//3 bg5r9wlego0d8pv0hr96zt45c +// int mergeable(edge_t * e, edge_t * f) +public static boolean mergeable(Agedge_s e, Agedge_s f) { +ENTERING("bg5r9wlego0d8pv0hr96zt45c","mergeable"); +try { + if (e!=null && f!=null && EQ(agtail(e), agtail(f)) && EQ(aghead(e), aghead(f)) && + EQ(ED_label(e), ED_label(f)) && ports_eq(e, f)) + return NOT(false); + return false; +} finally { +LEAVING("bg5r9wlego0d8pv0hr96zt45c","mergeable"); +} +} + + + + +//3 d0bxlkysxucmww7t74u9krrgz +// void class2(graph_t * g) +public static void class2(Agraph_s g) { +ENTERING("d0bxlkysxucmww7t74u9krrgz","class2"); +try { + int c; + Agnode_s n, t, h; + Agedge_s e, prev, opp; + GD_nlist(g, null); + GD_n_nodes(g, 0); /* new */ + mark_clusters(g); + for (c = 1; c <= GD_n_cluster(g); c++) + build_skeleton(g, (Agraph_s) GD_clust(g).plus(c).getPtr()); + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) + for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) { + if (ND_weight_class(aghead(e)) <= 2) + ND_weight_class(aghead(e), ND_weight_class(aghead(e))+1); + if (ND_weight_class(agtail(e)) <= 2) + ND_weight_class(agtail(e), ND_weight_class(agtail(e))+1); + } + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) { + if ((ND_clust(n) == null) && (EQ(n, UF_find(n)))) { + fast_node(g, n); + GD_n_nodes(g, GD_n_nodes(g)+1); + } + prev = null; + for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) { + /* already processed */ + if (ED_to_virt(e)!=null) { + prev = e; + continue; + } + /* edges involving sub-clusters of g */ + if (is_cluster_edge(e)) { + /* following is new cluster multi-edge code */ + if (mergeable(prev, e)) { + if (ED_to_virt(prev)!=null) { + merge_chain(g, e, ED_to_virt(prev), false); + other_edge(e); + } else if (ND_rank(agtail(e)) == ND_rank(aghead(e))) { + merge_oneway(e, prev); + other_edge(e); + } + /* else is an intra-cluster edge */ + continue; + } + interclrep(g, e); + prev = e; + continue; + } + /* merge multi-edges */ + if (prev!=null && EQ(agtail(e), agtail(prev)) && EQ(aghead(e), aghead(prev))) { + if (ND_rank(agtail(e)) == ND_rank(aghead(e))) { + merge_oneway(e, prev); + other_edge(e); + continue; + } + if ((ED_label(e) == null) && (ED_label(prev) == null) + && ports_eq(e, prev)) { + if (Z._().Concentrate) + ED_edge_type(e, 6); + else { + merge_chain(g, e, ED_to_virt(prev), NOT(false)); + other_edge(e); + } + continue; + } + /* parallel edges with different labels fall through here */ + } + /* self edges */ + if (EQ(agtail(e), aghead(e))) { + other_edge(e); + prev = e; + continue; + } + t = UF_find(agtail(e)); + h = UF_find(aghead(e)); + /* non-leader leaf nodes */ + if (NEQ(agtail(e), t) || NEQ(aghead(e), h)) { + /* FIX need to merge stuff */ + continue; + } + /* flat edges */ + if (ND_rank(agtail(e)) == ND_rank(aghead(e))) { + flat_edge(g, e); + prev = e; + continue; + } + /* forward edges */ + if (ND_rank(aghead(e)) > ND_rank(agtail(e))) { + make_chain(g, agtail(e), aghead(e), e); + prev = e; + continue; + } + /* backward edges */ + else { + /*other_edge(e); */ + /* avoid when opp==e in undirected graph */ + if ((opp = (agedge(g,aghead(e),agtail(e),null,false)))!=null && NEQ(aghead(opp), aghead(e))) { + /* shadows a forward edge */ + if (ED_to_virt(opp) == null) + make_chain(g, agtail(opp), aghead(opp), opp); + if ((ED_label(e) == null) && (ED_label(opp) == null) + && ports_eq(e, opp)) { + if (Z._().Concentrate) { + ED_edge_type(e, 6); + ED_conc_opp_flag(opp, NOT(false)); + } else { /* see above. this is getting out of hand */ + other_edge(e); + merge_chain(g, e, ED_to_virt(opp), NOT(false)); + } + continue; + } + } + make_chain(g, aghead(e), agtail(e), e); + prev = e; + } + } + } + /* since decompose() is not called on subgraphs */ + if (NEQ(g, dot_root(g))) { + GD_comp(g).setPtr("list", ALLOC_empty(1, GD_comp(g).getPtr("list"), Agnode_s.class)); + GD_comp(g).getArrayOfPtr("list").plus(0).setPtr(GD_nlist(g)); + } +} finally { +LEAVING("d0bxlkysxucmww7t74u9krrgz","class2"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/cluster__c.java plantuml-8039/src/gen/lib/dotgen/cluster__c.java --- plantuml-8024/src/gen/lib/dotgen/cluster__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/cluster__c.java 2016-04-22 16:26:05.000000000 +0000 @@ -0,0 +1,1273 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.edge__c.agfstedge; +import static gen.lib.cgraph.edge__c.agfstout; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agnxtedge; +import static gen.lib.cgraph.edge__c.agnxtout; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.node__c.agfstnode; +import static gen.lib.cgraph.node__c.agnxtnode; +import static gen.lib.cgraph.obj__c.agcontains; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.common.memory__c.zmalloc; +import static gen.lib.common.utils__c.UF_setname; +import static gen.lib.common.utils__c.UF_singleton; +import static gen.lib.dotgen.class2__c.class2; +import static gen.lib.dotgen.class2__c.mergeable; +import static gen.lib.dotgen.dotinit__c.dot_root; +import static gen.lib.dotgen.fastgr__c.delete_fast_edge; +import static gen.lib.dotgen.fastgr__c.delete_fast_node; +import static gen.lib.dotgen.fastgr__c.fast_node; +import static gen.lib.dotgen.fastgr__c.find_fast_edge; +import static gen.lib.dotgen.fastgr__c.find_flat_edge; +import static gen.lib.dotgen.fastgr__c.flat_edge; +import static gen.lib.dotgen.fastgr__c.merge_oneway; +import static gen.lib.dotgen.fastgr__c.other_edge; +import static gen.lib.dotgen.fastgr__c.virtual_edge; +import static gen.lib.dotgen.fastgr__c.virtual_node; +import static gen.lib.dotgen.mincross__c.allocate_ranks; +import static gen.lib.dotgen.mincross__c.build_ranks; +import static gen.lib.dotgen.mincross__c.enqueue_neighbors; +import static gen.lib.dotgen.mincross__c.install_in_rank; +import static gen.lib.dotgen.position__c.ports_eq; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.sizeof_starstar_empty; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGMKOUT; +import static smetana.core.Macro.ED_count; +import static smetana.core.Macro.ED_edge_type; +import static smetana.core.Macro.ED_to_virt; +import static smetana.core.Macro.ED_xpenalty; +import static smetana.core.Macro.GD_clust; +import static smetana.core.Macro.GD_comp; +import static smetana.core.Macro.GD_expanded; +import static smetana.core.Macro.GD_installed; +import static smetana.core.Macro.GD_leader; +import static smetana.core.Macro.GD_maxrank; +import static smetana.core.Macro.GD_minrank; +import static smetana.core.Macro.GD_n_cluster; +import static smetana.core.Macro.GD_n_nodes; +import static smetana.core.Macro.GD_nlist; +import static smetana.core.Macro.GD_rank; +import static smetana.core.Macro.GD_rankleader; +import static smetana.core.Macro.ND_UF_size; +import static smetana.core.Macro.ND_clust; +import static smetana.core.Macro.ND_in; +import static smetana.core.Macro.ND_lw; +import static smetana.core.Macro.ND_node_type; +import static smetana.core.Macro.ND_order; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.ND_rank; +import static smetana.core.Macro.ND_ranktype; +import static smetana.core.Macro.ND_rw; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.boxf; +import h.nodequeue; +import h.pointf; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class cluster__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8bd317q0mykfu6wpr3e4cxmh2 +// static node_t* map_interclust_node(node_t * n) +public static Agnode_s map_interclust_node(Agnode_s n) { +ENTERING("8bd317q0mykfu6wpr3e4cxmh2","map_interclust_node"); +try { + Agnode_s rv; + if ((ND_clust(n) == null) || ( GD_expanded(ND_clust(n))) ) + rv = n; + else + rv = (Agnode_s) GD_rankleader(ND_clust(n)).plus(ND_rank(n)).getPtr(); + return rv; +} finally { +LEAVING("8bd317q0mykfu6wpr3e4cxmh2","map_interclust_node"); +} +} + + + + +//3 5ib4nnt2ah5fdd22zs0xds29r +// static void make_slots(graph_t * root, int r, int pos, int d) +public static void make_slots(Agraph_s root, int r, int pos, int d) { +ENTERING("5ib4nnt2ah5fdd22zs0xds29r","make_slots"); +try { + int i; + Agnode_s v; + __ptr__ vlist; + vlist = GD_rank(root).plus(r).getPtr().getArrayOfPtr("v").asPtr(); + if (d <= 0) { + for (i = pos - d + 1; i < GD_rank(root).plus(r).getInt("n"); i++) { + v = (Agnode_s) vlist.plus(i).getPtr(); + ND_order(v, i + d - 1); + vlist.plus(ND_order(v)).setPtr(v); + } + for (i = GD_rank(root).plus(r).getInt("n") + d - 1; i < GD_rank(root).plus(r).getInt("n"); i++) + vlist.plus(i).setPtr(null); + } else { +/*assert(ND_rank(root)[r].n + d - 1 <= ND_rank(root)[r].an);*/ + for (i = GD_rank(root).plus(r).getPtr().getInt("n") - 1; i > pos; i--) { + v = (Agnode_s) vlist.plus(i).getPtr(); + ND_order(v, i + d - 1); + vlist.plus(ND_order(v)).setPtr(v); + } + for (i = pos + 1; i < pos + d; i++) + vlist.plus(i).setPtr(null); + } + GD_rank(root).plus(r).getPtr().setInt("n", GD_rank(root).plus(r).getPtr().getInt("n") + d - 1); +} finally { +LEAVING("5ib4nnt2ah5fdd22zs0xds29r","make_slots"); +} +} + + + + +//3 d4mwxesl56uh9dyttg9cjlq70 +// static node_t* clone_vn(graph_t * g, node_t * vn) +public static Agnode_s clone_vn(Agraph_s g, Agnode_s vn) { +ENTERING("d4mwxesl56uh9dyttg9cjlq70","clone_vn"); +try { + Agnode_s rv; + int r; + r = ND_rank(vn); + make_slots(g, r, ND_order(vn), 2); + rv = virtual_node(g); + ND_lw(rv, ND_lw(vn)); + ND_rw(rv, ND_rw(vn)); + ND_rank(rv, ND_rank(vn)); +UNSUPPORTED("adc0qfdhup29vh8qu1cwl5jgj"); // GD_rank(g)[r].v[ND_order(rv)] = rv; +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("d4mwxesl56uh9dyttg9cjlq70","clone_vn"); +} +} + + + + +//3 6o86r59v2ujlxqcw7761y6o5b +// static void map_path(node_t * from, node_t * to, edge_t * orig, edge_t * ve, int type) +public static void map_path(Agnode_s from, Agnode_s to, Agedge_s orig, Agedge_s ve, int type) { +ENTERING("6o86r59v2ujlxqcw7761y6o5b","map_path"); +try { + int r; + Agnode_s u, v; + Agedge_s e; + assert(ND_rank(from) < ND_rank(to)); + if (EQ(agtail(ve), from) && EQ(aghead(ve), to)) + return; + if (ED_count(ve) > 1) { + ED_to_virt(orig, null); + if (ND_rank(to) - ND_rank(from) == 1) { + if ((e = find_fast_edge(from, to))!=null && (ports_eq(orig, e))) { + merge_oneway(orig, e); + if ((ND_node_type(from) == 0) + && (ND_node_type(to) == 0)) + other_edge(orig); + return; + } + } + u = from; + for (r = ND_rank(from); r < ND_rank(to); r++) { + if (r < ND_rank(to) - 1) + v = clone_vn(dot_root(from), aghead(ve)); + else + v = to; + e = virtual_edge(u, v, orig); + ED_edge_type(e, type); + u = v; + ED_count(ve, ED_count(ve) - 1); + ve = (Agedge_s) ND_out(aghead(ve)).getArrayOfPtr("list").plus(0).getPtr(); + } + } else { + if (ND_rank(to) - ND_rank(from) == 1) { + if ((ve = find_fast_edge(from, to))!=null && (ports_eq(orig, ve))) { + /*ED_to_orig(ve) = orig; */ + ED_to_virt(orig, ve); + ED_edge_type(ve, type); + ED_count(ve, ED_count(ve)+1); + if ((ND_node_type(from) == 0) + && (ND_node_type(to) == 0)) + other_edge(orig); + } else { + ED_to_virt(orig, null); + ve = virtual_edge(from, to, orig); + ED_edge_type(ve, type); + } + } + if (ND_rank(to) - ND_rank(from) > 1) { + e = ve; + if (NEQ(agtail(ve), from)) { + ED_to_virt(orig, null); + e = virtual_edge(from, aghead(ve), orig); + ED_to_virt(orig, e); + delete_fast_edge(ve); + } else + e = ve; + while (ND_rank(aghead(e)) != ND_rank(to)) + e = (Agedge_s) ND_out(aghead(e)).getArrayOfPtr("list").plus(0).getPtr(); + if (NEQ(aghead(e), to)) { + ve = e; + e = virtual_edge(agtail(e), to, orig); + ED_edge_type(e, type); + delete_fast_edge(ve); + } + } + } +} finally { +LEAVING("6o86r59v2ujlxqcw7761y6o5b","map_path"); +} +} + + + + +//3 69xbflgja0gvrsl5xcv7o7dia +// static void make_interclust_chain(graph_t * g, node_t * from, node_t * to, edge_t * orig) +public static void make_interclust_chain(Agraph_s g, Agnode_s from, Agnode_s to, Agedge_s orig) { +ENTERING("69xbflgja0gvrsl5xcv7o7dia","make_interclust_chain"); +try { + int newtype; + Agnode_s u, v; + u = map_interclust_node(from); + v = map_interclust_node(to); + if (EQ(u, from) && EQ(v, to)) + newtype = 1; + else + newtype = 5; + map_path(u, v, orig, ED_to_virt(orig), newtype); +} finally { +LEAVING("69xbflgja0gvrsl5xcv7o7dia","make_interclust_chain"); +} +} + + + + +//3 6g2m2y44x66lajznvnon2gubv +// void interclexp(graph_t * subg) +public static void interclexp(Agraph_s subg) { +ENTERING("6g2m2y44x66lajznvnon2gubv","interclexp"); +try { + Agraph_s g; + Agnode_s n; + Agedge_s e, prev, next; + g = dot_root(subg); + for (n = agfstnode(subg); n!=null; n = agnxtnode(subg, n)) { + /* N.B. n may be in a sub-cluster of subg */ + prev = null; + for (e = agfstedge(g, n); e!=null; e = next) { + next = agnxtedge(g, e, n); + if (agcontains(subg, e)) + continue; + /* canonicalize edge */ + e = AGMKOUT(e); + /* short/flat multi edges */ + if (mergeable(prev, e)) { +UNSUPPORTED("1pv8kbb78w6fs8m3i4x1mrsfv"); // if (ND_rank(agtail(e)) == ND_rank(aghead(e))) +UNSUPPORTED("dzrp230epur5myrngxf86icdl"); // ED_to_virt(e) = prev; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("80avg8pw0q6u1yek5npatayak"); // ED_to_virt(e) = NULL; +UNSUPPORTED("2oxl2hzhfzzfn7q7i6phwgkqd"); // if (ED_to_virt(prev) == NULL) +UNSUPPORTED("10wljk1lfxrvhkb8y6bzvxz35"); // continue; /* internal edge */ +UNSUPPORTED("8d5mw7m9lzlseqbyx8a8mncgs"); // merge_chain(subg, e, ED_to_virt(prev), 0); +UNSUPPORTED("87mmnlsj8quzlzg0vxax15kt2"); // safe_other_edge(e); +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; + } + /* flat edges */ + if (ND_rank(agtail(e)) == ND_rank(aghead(e))) { + Agedge_s fe; + if ((fe = find_flat_edge(agtail(e), aghead(e))) == null) { + flat_edge(g, e); + prev = e; + } else if (NEQ(e, fe)) { +UNSUPPORTED("ckfinb4h4twp1ry02y9peyhz"); // safe_other_edge(e); +UNSUPPORTED("dg3e0udctqa7xtfynplc7wdpj"); // if (!ED_to_virt(e)) merge_oneway(e, fe); + } + continue; + } + /* forward edges */ + if (ND_rank(aghead(e)) > ND_rank(agtail(e))) { + make_interclust_chain(g, agtail(e), aghead(e), e); + prev = e; + continue; + } + /* backward edges */ + else { +/* +I think that make_interclust_chain should create call other_edge(e) anyway + if (agcontains(subg,agtail(e)) + && agfindedge(g,aghead(e),agtail(e))) other_edge(e); +*/ + make_interclust_chain(g, aghead(e), agtail(e), e); + prev = e; + } + } + } +} finally { +LEAVING("6g2m2y44x66lajznvnon2gubv","interclexp"); +} +} + + + + +//3 85nhs7tnmwunw0fsjj1kxao7l +// static void merge_ranks(graph_t * subg) +public static void merge_ranks(Agraph_s subg) { +ENTERING("85nhs7tnmwunw0fsjj1kxao7l","merge_ranks"); +try { + int i, d, r, pos, ipos; + Agnode_s v; + Agraph_s root; + root = dot_root(subg); + if (GD_minrank(subg) > 0) + GD_rank(root).plus(GD_minrank(subg) - 1).getPtr().setInt("valid", 0); + for (r = GD_minrank(subg); r <= GD_maxrank(subg); r++) { + d = GD_rank(subg).plus(r).getPtr().getInt("n"); + ipos = pos = ND_order(GD_rankleader(subg).plus(r).getPtr()); + make_slots(root, r, pos, d); + for (i = 0; i < GD_rank(subg).plus(r).getPtr().getInt("n"); i++) { + v = (Agnode_s) GD_rank(subg).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + GD_rank(root).plus(r).getArrayOfPtr("v").plus(pos).setPtr(v); + ND_order(v, pos++); + /* real nodes automatically have v->root = root graph */ + if (ND_node_type(v) == 1) + v.setPtr("root", agroot(root)); + delete_fast_node(subg, v); + fast_node(root, v); + GD_n_nodes(root, GD_n_nodes(root)+1); + } + GD_rank(subg).plus(r).getPtr().setPtr("v", GD_rank(root).plus(r).getPtr().getPtr("v").plus(ipos)); + GD_rank(root).plus(r).getPtr().setInt("valid", 0); + } + if (r < GD_maxrank(root)) + GD_rank(root).plus(r).getPtr().setInt("valid", 0); + GD_expanded(subg, NOT(false)); +} finally { +LEAVING("85nhs7tnmwunw0fsjj1kxao7l","merge_ranks"); +} +} + + + + +//3 c9p7dm16i13qktnh95os0sv58 +// static void remove_rankleaders(graph_t * g) +public static void remove_rankleaders(Agraph_s g) { +ENTERING("c9p7dm16i13qktnh95os0sv58","remove_rankleaders"); +try { + int r; + Agnode_s v; + Agedge_s e; + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + v = (Agnode_s) GD_rankleader(g).plus(r).getPtr(); + /* remove the entire chain */ + while ((e = (Agedge_s) ND_out(v).getArrayOfPtr("list").plus(0).getPtr())!=null) + delete_fast_edge(e); + while ((e = (Agedge_s) ND_in(v).getArrayOfPtr("list").plus(0).getPtr())!=null) + delete_fast_edge(e); + delete_fast_node(dot_root(g), v); + GD_rankleader(g).plus(r).setPtr(null); + } +} finally { +LEAVING("c9p7dm16i13qktnh95os0sv58","remove_rankleaders"); +} +} + + + + +//3 ecrplg8hsyl484f9kxc5xp0go +// void expand_cluster(graph_t * subg) +public static void expand_cluster(Agraph_s subg) { +ENTERING("ecrplg8hsyl484f9kxc5xp0go","expand_cluster"); +try { + /* build internal structure of the cluster */ + class2(subg); + GD_comp(subg).setInt("size", 1); + GD_comp(subg).getArrayOfPtr("list").plus(0).setPtr(GD_nlist(subg)); + allocate_ranks(subg); + build_ranks(subg, 0); + merge_ranks(subg); + /* build external structure of the cluster */ + interclexp(subg); + remove_rankleaders(subg); +} finally { +LEAVING("ecrplg8hsyl484f9kxc5xp0go","expand_cluster"); +} +} + + + + +//3 cxuirggihlap2iv2khmb1w5l5 +// void mark_clusters(graph_t * g) +public static void mark_clusters(Agraph_s g) { +ENTERING("cxuirggihlap2iv2khmb1w5l5","mark_clusters"); +try { + int c; + Agnode_s n, nn=null, vn; + Agedge_s orig, e; + Agraph_s clust; + /* remove sub-clusters below this level */ + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) { + if (ND_ranktype(n) == 7) + UF_singleton(n); + ND_clust(n, null); + } + for (c = 1; c <= GD_n_cluster(g); c++) { + clust = (Agraph_s) GD_clust(g).plus(c).getPtr(); + for (n = agfstnode(clust); n!=null; n = nn) { + nn = agnxtnode(clust,n); + if (ND_ranktype(n) != 0) { +UNSUPPORTED("5l8jenkv77ax02t47zzxyv1k0"); // agerr(AGWARN, +UNSUPPORTED("2ipl4umxgijawr7756ysp9hhd"); // "%s was already in a rankset, deleted from cluster %s\n", +UNSUPPORTED("7r0ulsiau9cygesawzzjnpt5j"); // agnameof(n), agnameof(g)); +UNSUPPORTED("4zqc8357rwnd9xe7zaoqooqv3"); // agdelete(clust,n); +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; + } + UF_setname(n, GD_leader(clust)); + ND_clust(n, clust); + ND_ranktype(n, 7); + /* here we mark the vnodes of edges in the cluster */ + for (orig = agfstout(clust, n); orig!=null; + orig = agnxtout(clust, orig)) { + if ((e = ED_to_virt(orig))!=null) { + while (e!=null && ND_node_type(vn =aghead(e)) == 1) { + ND_clust(vn, clust); + e = (Agedge_s) ND_out(aghead(e)).getArrayOfPtr("list").plus(0).getPtr(); + /* trouble if concentrators and clusters are mixed */ + } + } + } + } + } +} finally { +LEAVING("cxuirggihlap2iv2khmb1w5l5","mark_clusters"); +} +} + + + + +//3 bwrw5u0gi2rgah1cn9h0glpse +// void build_skeleton(graph_t * g, graph_t * subg) +public static void build_skeleton(Agraph_s g, Agraph_s subg) { +ENTERING("bwrw5u0gi2rgah1cn9h0glpse","build_skeleton"); +try { + int r; + Agnode_s v, prev, rl; + Agedge_s e; + prev = null; + GD_rankleader(subg, zmalloc(sizeof_starstar_empty(Agnode_s.class, GD_maxrank(subg) + 2))); + for (r = GD_minrank(subg); r <= GD_maxrank(subg); r++) { + v = virtual_node(g); + GD_rankleader(subg).plus(r).setPtr(v); + ND_rank(v, r); + ND_ranktype(v, 7); + ND_clust(v, subg); + if (prev!=null) { + e = virtual_edge(prev, v, null); + ED_xpenalty(e, ED_xpenalty(e) * 1000); + } + prev = v; + } + /* set the counts on virtual edges of the cluster skeleton */ + for (v = agfstnode(subg); v!=null; v = agnxtnode(subg, v)) { + rl = (Agnode_s) GD_rankleader(subg).plus(ND_rank(v)).getPtr(); + ND_UF_size(rl, ND_UF_size(rl)+1); + for (e = agfstout(subg, v); e!=null; e = agnxtout(subg, e)) { + for (r = ND_rank(agtail(e)); r < ND_rank(aghead(e)); r++) { + ED_count(ND_out(rl).getArrayOfPtr("list").plus(0).getPtr(), ED_count(ND_out(rl).getArrayOfPtr("list").plus(0).getPtr())+1); + } + } + } + for (r = GD_minrank(subg); r <= GD_maxrank(subg); r++) { + rl = (Agnode_s) GD_rankleader(subg).plus(r).getPtr(); + if (ND_UF_size(rl) > 1) + ND_UF_size(rl, ND_UF_size(rl)-1); + } +} finally { +LEAVING("bwrw5u0gi2rgah1cn9h0glpse","build_skeleton"); +} +} + + + + +//3 75yt3xwcwnxipi827t1r8zcmn +// void install_cluster(graph_t * g, node_t * n, int pass, nodequeue * q) +public static void install_cluster(Agraph_s g, Agnode_s n, int pass, nodequeue q) { +ENTERING("75yt3xwcwnxipi827t1r8zcmn","install_cluster"); +try { + int r; + Agraph_s clust; + clust = ND_clust(n); + if (GD_installed(clust) != pass + 1) { + for (r = GD_minrank(clust); r <= GD_maxrank(clust); r++) + install_in_rank(g, (Agnode_s) GD_rankleader(clust).plus(r).getPtr()); + for (r = GD_minrank(clust); r <= GD_maxrank(clust); r++) + enqueue_neighbors(q, (Agnode_s) GD_rankleader(clust).plus(r).getPtr(), pass); + GD_installed(clust, pass + 1); + } +} finally { +LEAVING("75yt3xwcwnxipi827t1r8zcmn","install_cluster"); +} +} + + + + +//3 4muksvb3ec03mt6cvaqpb5c7a +// void mark_lowclusters(Agraph_t * root) +public static void mark_lowclusters(Agraph_s root) { +ENTERING("4muksvb3ec03mt6cvaqpb5c7a","mark_lowclusters"); +try { + Agnode_s n, vn; + Agedge_s orig, e; + /* first, zap any previous cluster labelings */ + for (n = agfstnode(root); n!=null; n = agnxtnode(root, n)) { + ND_clust(n, null); + for (orig = agfstout(root, n); orig!=null; orig = agnxtout(root, orig)) { + if ((e = ED_to_virt(orig))!=null) { + while (e!=null && (ND_node_type(vn = aghead(e))) == 1) { + ND_clust(vn, null); + e = (Agedge_s) ND_out(aghead(e)).getArrayOfPtr("list").plus(0).getPtr(); + } + } + } + } + /* do the recursion */ + mark_lowcluster_basic(root); +} finally { +LEAVING("4muksvb3ec03mt6cvaqpb5c7a","mark_lowclusters"); +} +} + + + + +//3 48j6fdymvkcgeh4wde060ctac +// static void mark_lowcluster_basic(Agraph_t * g) +public static void mark_lowcluster_basic(Agraph_s g) { +ENTERING("48j6fdymvkcgeh4wde060ctac","mark_lowcluster_basic"); +try { + Agraph_s clust; + Agnode_s n, vn; + Agedge_s orig, e; + int c; + for (c = 1; c <= GD_n_cluster(g); c++) { + clust = (Agraph_s) GD_clust(g).plus(c).getPtr(); + mark_lowcluster_basic(clust); + } + /* see what belongs to this graph that wasn't already marked */ + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) { + if (ND_clust(n) == null) + ND_clust(n, g); + for (orig = agfstout(g, n); orig!=null; orig = agnxtout(g, orig)) { + if ((e = ED_to_virt(orig))!=null) { + while (e!=null && (ND_node_type(vn = aghead(e))) == 1) { + if (ND_clust(vn) == null) + ND_clust(vn, g); + e = (Agedge_s) ND_out(aghead(e)).getArrayOfPtr("list").plus(0).getPtr(); + } + } + } + } +} finally { +LEAVING("48j6fdymvkcgeh4wde060ctac","mark_lowcluster_basic"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/compound__c.java plantuml-8039/src/gen/lib/dotgen/compound__c.java --- plantuml-8024/src/gen/lib/dotgen/compound__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/compound__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1166 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class compound__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 389gsvrjy9cfa7ie5c9sr5rvi +// static char *pf2s(pointf p, char *buf) +public static Object pf2s(Object... arg) { +UNSUPPORTED("d7e1ecldlwckmebycqwdif5qi"); // static char *pf2s(pointf p, char *buf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9nq1kahe848q44s51s8b249jw"); // sprintf(buf, "(%.5g,%.5g)", p.x, p.y); +UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aaeedfeqjstij7teh2arwur0s +// static pointf boxIntersectf(pointf pp, pointf cp, boxf * bp) +public static Object boxIntersectf(Object... arg) { +UNSUPPORTED("9lbfcrf6tg3qq2hoi74tj6jil"); // static pointf boxIntersectf(pointf pp, pointf cp, boxf * bp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e7e629d656z5m5408o06swiy3"); // pointf ipp; +UNSUPPORTED("77e5d834qbjgxa5m8msxj0b22"); // double ppx = pp.x; +UNSUPPORTED("5zf0pogb3f4f5faatrew5itus"); // double ppy = pp.y; +UNSUPPORTED("etdvp5w4bmvc3hfjv6xsbqhgl"); // double cpx = cp.x; +UNSUPPORTED("dzvbcgu397soy9gv5p7bqez7e"); // double cpy = cp.y; +UNSUPPORTED("dzq83vvwl259k7394rpz3ahw4"); // pointf ll; +UNSUPPORTED("1ilrhzyqh05f2u3j3vzg0ys8u"); // pointf ur; +UNSUPPORTED("82ter8mdp5dwyq284t271kkq2"); // ll = bp->LL; +UNSUPPORTED("cjf1mmtyv7enn9aid7eveqj3m"); // ur = bp->UR; +UNSUPPORTED("hrb7x7coec3ls1f3tbzbv1i4"); // if (cp.x < ll.x) { +UNSUPPORTED("bz02pree35ok6h7ne2b9078gr"); // ipp.x = ll.x; +UNSUPPORTED("79t0kzkjgtsgnwjzk2423w61c"); // ipp.y = pp.y + (int) ((ipp.x - ppx) * (ppy - cpy) / (ppx - cpx)); +UNSUPPORTED("5zwh31a86akovenbej0w7yjlq"); // if (ipp.y >= ll.y && ipp.y <= ur.y) +UNSUPPORTED("6klahfi7ib1my989uyt3r3fns"); // return ipp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("92dqlio3tyb7oqz8rrk4u1i39"); // if (cp.x > ur.x) { +UNSUPPORTED("ct5wv2h1epcow92rfyyuvo9x8"); // ipp.x = ur.x; +UNSUPPORTED("79t0kzkjgtsgnwjzk2423w61c"); // ipp.y = pp.y + (int) ((ipp.x - ppx) * (ppy - cpy) / (ppx - cpx)); +UNSUPPORTED("5zwh31a86akovenbej0w7yjlq"); // if (ipp.y >= ll.y && ipp.y <= ur.y) +UNSUPPORTED("6klahfi7ib1my989uyt3r3fns"); // return ipp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d1vpfkzy4othi356ddvouf1du"); // if (cp.y < ll.y) { +UNSUPPORTED("645jp0y7ad6zmpqv1ujuwv7d2"); // ipp.y = ll.y; +UNSUPPORTED("6xy4qjwbmyv2lmoecg9lz44m1"); // ipp.x = pp.x + (int) ((ipp.y - ppy) * (ppx - cpx) / (ppy - cpy)); +UNSUPPORTED("6or7iqvva2wcjp65woe9ywn9j"); // if (ipp.x >= ll.x && ipp.x <= ur.x) +UNSUPPORTED("6klahfi7ib1my989uyt3r3fns"); // return ipp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("22uv9kfz9ohd3u69nktr9fsko"); // if (cp.y > ur.y) { +UNSUPPORTED("7fbze74dhzwnj80vwncttjoza"); // ipp.y = ur.y; +UNSUPPORTED("6xy4qjwbmyv2lmoecg9lz44m1"); // ipp.x = pp.x + (int) ((ipp.y - ppy) * (ppx - cpx) / (ppy - cpy)); +UNSUPPORTED("6or7iqvva2wcjp65woe9ywn9j"); // if (ipp.x >= ll.x && ipp.x <= ur.x) +UNSUPPORTED("6klahfi7ib1my989uyt3r3fns"); // return ipp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2brtdhuqnq3wbu0y4vha1lxe1"); // /* failure */ +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("8lid84pwtuybl3mg15z7f9v8n"); // char ppbuf[100], cpbuf[100], llbuf[100], urbuf[100]; +UNSUPPORTED("8utponegpfhxi3ifoaet3w22u"); // agerr(AGERR, +UNSUPPORTED("4e7yhbghqnz3l8o03xenxz6qk"); // "segment [%s,%s] does not intersect box ll=%s,ur=%s\n", +UNSUPPORTED("a7epvdx0qf9ql74dqkbz43vak"); // pf2s(pp, ppbuf), pf2s(cp, cpbuf), +UNSUPPORTED("e9otl0bm92qbvbxwfd4euftxb"); // pf2s(ll, llbuf), pf2s(ur, urbuf)); +UNSUPPORTED("2g1czwq8qs1hp7515i11qbn75"); // assert(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2eteshlf6etzhvieru9a3d7hl"); // return ipp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cdgb9eokkhoxckam633l1qm6t +// static int inBoxf(pointf p, boxf * bb) +public static Object inBoxf(Object... arg) { +UNSUPPORTED("18frdpfl5gpq5be170xxu7ypk"); // static int inBoxf(pointf p, boxf * bb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("62grwq3ychthd06kd0dma6nl4"); // return INSIDE(p, *bb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7i49mbvuj9tvhyjtdrhyomfd2 +// static graph_t *getCluster(graph_t * g, char *cluster_name, Dt_t* map) +public static Object getCluster(Object... arg) { +UNSUPPORTED("b3i6y8ykkxx0imig66aitm32p"); // static graph_t *getCluster(graph_t * g, char *cluster_name, Dt_t* map) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a9vu6hocyi7htsqyh6phlzeil"); // Agraph_t* sg; +UNSUPPORTED("bdri6gk80s45bza4efp7hp3io"); // if (!cluster_name || (*cluster_name == '\0')) +UNSUPPORTED("11hwqop4xebvtcskop4uhpp01"); // return NULL; +UNSUPPORTED("e7qf9buhacu05os7k2mmh66cv"); // sg = findCluster (map, cluster_name); +UNSUPPORTED("2cbce9349ulperyph2yxmob79"); // if (sg == NULL) { +UNSUPPORTED("d4c9bmlrq8gy5z6b7aj0hh95m"); // agerr(AGWARN, "cluster named %s not found\n", cluster_name); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1jw141gg4omv8r72xcbl5ln0o"); // return sg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1shblnlks0zlz7s6h6l9az96k +// static int countVertCross(pointf * pts, double xcoord) +public static Object countVertCross(Object... arg) { +UNSUPPORTED("3fh5r6lqrzpzitfo6fg3mbhr9"); // static int countVertCross(pointf * pts, double xcoord) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("84e683m9cp16ljzwmonvu6h5o"); // int sign, old_sign; +UNSUPPORTED("3m0xdv3clh5kt5r24q2nq8qy3"); // int num_crossings = 0; +UNSUPPORTED("anrpp1ijmhz0zvudygqnuhuxg"); // sign = CMP(pts[0].x, xcoord); +UNSUPPORTED("cn59uvgfsp852xd4juwg253ab"); // if (sign == 0) +UNSUPPORTED("31x1ju7msb5pxljz8c9cdfxi2"); // num_crossings++; +UNSUPPORTED("46jnsuhm7tq2klfsjamf7jrpa"); // for (i = 1; i <= 3; i++) { +UNSUPPORTED("863qxcme12wfzx1clw4ehqelq"); // old_sign = sign; +UNSUPPORTED("pfykk7uimn1p9y4mh0gs58ft"); // sign = CMP(pts[i].x, xcoord); +UNSUPPORTED("34hhymaa1fodp7eoxwo7qev6v"); // if ((sign != old_sign) && (old_sign != 0)) +UNSUPPORTED("dsc9eps2jqbca8n4oaud2b223"); // num_crossings++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ahpb1md0lwtdwqxgalm3b4rqa"); // return num_crossings; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 65jkpfhzlwld3rg4ggrojwo0t +// static int countHorzCross(pointf * pts, double ycoord) +public static Object countHorzCross(Object... arg) { +UNSUPPORTED("de9l7dbf21io84d7j6fr2g2bk"); // static int countHorzCross(pointf * pts, double ycoord) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("84e683m9cp16ljzwmonvu6h5o"); // int sign, old_sign; +UNSUPPORTED("3m0xdv3clh5kt5r24q2nq8qy3"); // int num_crossings = 0; +UNSUPPORTED("1jpgvdmmizse7xc7bwhb6fowk"); // sign = CMP(pts[0].y, ycoord); +UNSUPPORTED("cn59uvgfsp852xd4juwg253ab"); // if (sign == 0) +UNSUPPORTED("31x1ju7msb5pxljz8c9cdfxi2"); // num_crossings++; +UNSUPPORTED("46jnsuhm7tq2klfsjamf7jrpa"); // for (i = 1; i <= 3; i++) { +UNSUPPORTED("863qxcme12wfzx1clw4ehqelq"); // old_sign = sign; +UNSUPPORTED("e1b5xplhock9z22bd4pd2dqlq"); // sign = CMP(pts[i].y, ycoord); +UNSUPPORTED("34hhymaa1fodp7eoxwo7qev6v"); // if ((sign != old_sign) && (old_sign != 0)) +UNSUPPORTED("dsc9eps2jqbca8n4oaud2b223"); // num_crossings++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ahpb1md0lwtdwqxgalm3b4rqa"); // return num_crossings; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aih397ad5qkovyx9x0wr21h54 +// static double findVertical(pointf * pts, double tmin, double tmax, double xcoord, double ymin, double ymax) +public static Object findVertical(Object... arg) { +UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("85kaoubr5lh52fmxz21tc0c1j"); // findVertical(pointf * pts, double tmin, double tmax, +UNSUPPORTED("6qy8dlo2xl5uszko7s7dlvxw7"); // double xcoord, double ymin, double ymax) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("15equnrdjvp7z6hnykwsq855q"); // pointf Left[4]; +UNSUPPORTED("czk4lot3uqdf06o5ws37gsxwv"); // pointf Right[4]; +UNSUPPORTED("6wfj8onzmd4ihhh62dqfmqpbx"); // double t; +UNSUPPORTED("78xh7rd4kkol7tca0ou5rsl2l"); // int no_cross = countVertCross(pts, xcoord); +UNSUPPORTED("d7u308dr2xy07ijwz1hdhhmfx"); // if (no_cross == 0) +UNSUPPORTED("6etr2h2322v9ragqutm759yas"); // return -1.0; +UNSUPPORTED("ad9m8nxf0mcmhf2djox688ldn"); // /* if 1 crossing and on the line x == xcoord (within 1 point) */ +UNSUPPORTED("4acg9xblgk4ucgodvaih6xrxj"); // if ((no_cross == 1) && (ROUND(pts[3].x) == ROUND(xcoord))) { +UNSUPPORTED("bf7x4u2r8ux51e40gclwa1a1a"); // if ((ymin <= pts[3].y) && (pts[3].y <= ymax)) { +UNSUPPORTED("bygqzclvo91ia8pdfxgwt277e"); // return tmax; +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("ap55zco1042e8hct3w86akeke"); // return -1.0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9d4ocidcx0valemm3vzi00avm"); // /* split the Bezier into halves, trying the first half first. */ +UNSUPPORTED("605jhx0qvq7rusredvjldyy4c"); // Bezier(pts, 3, 0.5, Left, Right); +UNSUPPORTED("6cwj26bp1l7s2las5a7m77tku"); // t = findVertical(Left, tmin, (tmin + tmax) / 2.0, xcoord, ymin, ymax); +UNSUPPORTED("1j0wovs9fkx43ukygc0u69s5g"); // if (t >= 0.0) +UNSUPPORTED("d78ai9c2o2d3q4femq5es1anw"); // return t; +UNSUPPORTED("9d6bwwzbxp9fm5m208jh9i8vu"); // return findVertical(Right, (tmin + tmax) / 2.0, tmax, xcoord, ymin, +UNSUPPORTED("cd6vwnucsms9wzpeqb5nxh0ky"); // ymax); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ekvbbd4zvuxrho7sitbt8ql7s +// static double findHorizontal(pointf * pts, double tmin, double tmax, double ycoord, double xmin, double xmax) +public static Object findHorizontal(Object... arg) { +UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("78h62jx38l5t5fm5l5pcmhbsf"); // findHorizontal(pointf * pts, double tmin, double tmax, +UNSUPPORTED("710x71u5311vcqfimkbvzi83a"); // double ycoord, double xmin, double xmax) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("15equnrdjvp7z6hnykwsq855q"); // pointf Left[4]; +UNSUPPORTED("czk4lot3uqdf06o5ws37gsxwv"); // pointf Right[4]; +UNSUPPORTED("6wfj8onzmd4ihhh62dqfmqpbx"); // double t; +UNSUPPORTED("4954qgan4jixgvt69g1ajjdpo"); // int no_cross = countHorzCross(pts, ycoord); +UNSUPPORTED("d7u308dr2xy07ijwz1hdhhmfx"); // if (no_cross == 0) +UNSUPPORTED("6etr2h2322v9ragqutm759yas"); // return -1.0; +UNSUPPORTED("epscxk2oek6v8c25l06qg49ym"); // /* if 1 crossing and on the line y == ycoord (within 1 point) */ +UNSUPPORTED("bwwz4x8fjy78hz5xaadjtuwte"); // if ((no_cross == 1) && (ROUND(pts[3].y) == ROUND(ycoord))) { +UNSUPPORTED("8mh80lea0b69k078vehmxhy3"); // if ((xmin <= pts[3].x) && (pts[3].x <= xmax)) { +UNSUPPORTED("bygqzclvo91ia8pdfxgwt277e"); // return tmax; +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("ap55zco1042e8hct3w86akeke"); // return -1.0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9d4ocidcx0valemm3vzi00avm"); // /* split the Bezier into halves, trying the first half first. */ +UNSUPPORTED("605jhx0qvq7rusredvjldyy4c"); // Bezier(pts, 3, 0.5, Left, Right); +UNSUPPORTED("83enazrwlypz7ni9b8bftyxs3"); // t = findHorizontal(Left, tmin, (tmin + tmax) / 2.0, ycoord, xmin, +UNSUPPORTED("669ctf1reahp9td1amg1zq5u"); // xmax); +UNSUPPORTED("1j0wovs9fkx43ukygc0u69s5g"); // if (t >= 0.0) +UNSUPPORTED("d78ai9c2o2d3q4femq5es1anw"); // return t; +UNSUPPORTED("7yh5k9v3lj4qwcasd986zd88c"); // return findHorizontal(Right, (tmin + tmax) / 2.0, tmax, ycoord, xmin, +UNSUPPORTED("qt8mgej4qnelxqtwoy8dt0jt"); // xmax); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f35390txedsmk9p0bb7lc0glh +// static int splineIntersectf(pointf * pts, boxf * bb) +public static Object splineIntersectf(Object... arg) { +UNSUPPORTED("5skcahu2z7i5of3rceeyk3dja"); // static int splineIntersectf(pointf * pts, boxf * bb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4x99qvp4a3bmbyxtp16ajfnsk"); // double tmin = 2.0; +UNSUPPORTED("6wfj8onzmd4ihhh62dqfmqpbx"); // double t; +UNSUPPORTED("9g866elzsedx9foz9yjhoiou1"); // pointf origpts[4]; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("a2n8aqfq0cqpx8elstmfn9oq6"); // for (i = 0; i < 4; i++) { +UNSUPPORTED("4zou1qx7inlvcv0miqk04wcab"); // origpts[i] = pts[i]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6vm6zifwonvzwuelxtslbue2"); // t = findVertical(pts, 0.0, 1.0, bb->LL.x, bb->LL.y, bb->UR.y); +UNSUPPORTED("9zvtsolyyf2ytpv8pj4a8n5iu"); // if ((t >= 0) && (t < tmin)) { +UNSUPPORTED("8w1khrdoc5zw1yk6j1a8drqse"); // Bezier(origpts, 3, t, pts, NULL); +UNSUPPORTED("5ml6bcuw1xgfn7f3dyox7iwrv"); // tmin = t; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("981p5dxcykkvx91604334lab3"); // t = findVertical(pts, 0.0, MIN(1.0, tmin), bb->UR.x, bb->LL.y, +UNSUPPORTED("1of63c5vskctycz57r6s1aop5"); // bb->UR.y); +UNSUPPORTED("9zvtsolyyf2ytpv8pj4a8n5iu"); // if ((t >= 0) && (t < tmin)) { +UNSUPPORTED("8w1khrdoc5zw1yk6j1a8drqse"); // Bezier(origpts, 3, t, pts, NULL); +UNSUPPORTED("5ml6bcuw1xgfn7f3dyox7iwrv"); // tmin = t; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7a2rh5vrty9usl73kwlat7axz"); // t = findHorizontal(pts, 0.0, MIN(1.0, tmin), bb->LL.y, bb->LL.x, +UNSUPPORTED("de5psijf8qtaea4iaibltvfli"); // bb->UR.x); +UNSUPPORTED("9zvtsolyyf2ytpv8pj4a8n5iu"); // if ((t >= 0) && (t < tmin)) { +UNSUPPORTED("8w1khrdoc5zw1yk6j1a8drqse"); // Bezier(origpts, 3, t, pts, NULL); +UNSUPPORTED("5ml6bcuw1xgfn7f3dyox7iwrv"); // tmin = t; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8j6y4x6maqneer7is54dvjrg8"); // t = findHorizontal(pts, 0.0, MIN(1.0, tmin), bb->UR.y, bb->LL.x, +UNSUPPORTED("de5psijf8qtaea4iaibltvfli"); // bb->UR.x); +UNSUPPORTED("9zvtsolyyf2ytpv8pj4a8n5iu"); // if ((t >= 0) && (t < tmin)) { +UNSUPPORTED("8w1khrdoc5zw1yk6j1a8drqse"); // Bezier(origpts, 3, t, pts, NULL); +UNSUPPORTED("5ml6bcuw1xgfn7f3dyox7iwrv"); // tmin = t; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5yrkc1uiqwozz2tsxyo3vpj6n"); // if (tmin < 2.0) { +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cqg91aue3soclnawequqcxspl +// static void makeCompoundEdge(graph_t * g, edge_t * e, Dt_t* clustMap) +public static Object makeCompoundEdge(Object... arg) { +UNSUPPORTED("94ok4vzwibg79sh9bgw127ynj"); // static void makeCompoundEdge(graph_t * g, edge_t * e, Dt_t* clustMap) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d8yeygt41ba5jbyj4rz2bs7jh"); // graph_t *lh; /* cluster containing head */ +UNSUPPORTED("ckcdimdpkin3lhakg1rjgopmi"); // graph_t *lt; /* cluster containing tail */ +UNSUPPORTED("em6swtpn9fdaqlt4w0ye5p7db"); // bezier *bez; /* original Bezier for e */ +UNSUPPORTED("2nh8wbaihnp137k4pc9xuzwhg"); // bezier *nbez; /* new Bezier for e */ +UNSUPPORTED("1tw709ct510b9s636x7nkqfkr"); // int starti = 0, endi = 0; /* index of first and last control point */ +UNSUPPORTED("8i0kwb8r6a2sj6nuvcy3bg9rx"); // node_t *head; +UNSUPPORTED("abn0n8lzvb24ju9mrqm4oqu8"); // node_t *tail; +UNSUPPORTED("v5k4w91mrx94yjcdoytcu9oh"); // boxf *bb; +UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j; +UNSUPPORTED("cav0e7ncloqss0hsvc4fyfi7s"); // int size; +UNSUPPORTED("d8sp6cfkpfyndzmid92shiq50"); // pointf pts[4]; +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("a1awknurkwnitpucodqwmcybo"); // int fixed; +UNSUPPORTED("eg8l6bf528m9rxpz19s67zunk"); // /* find head and tail target clusters, if defined */ +UNSUPPORTED("cv6tt9aup4gcbgqhx1nq22k1c"); // lh = getCluster(g, agget(e, "lhead"), clustMap); +UNSUPPORTED("1c1flydze3375acsjsk9q3kp"); // lt = getCluster(g, agget(e, "ltail"), clustMap); +UNSUPPORTED("c0uthnj5r46is8vqpjh6vftc8"); // if (!lt && !lh) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("7r9z58ji5z8h9c59lp0npnrgu"); // if (!ED_spl(e)) return; +UNSUPPORTED("d5zyxsdhnmpgj9r2eeuoe24qd"); // /* at present, we only handle single spline case */ +UNSUPPORTED("9y41ojbiongk0r6fdtq1my3t1"); // if (ED_spl(e)->size > 1) { +UNSUPPORTED("2bykd7j98lcwoewshvpja61l3"); // agerr(AGWARN, "%s -> %s: spline size > 1 not supported\n", +UNSUPPORTED("1wah0q9mwnexbe0myh4pe78ks"); // agnameof(agtail(e)), agnameof(aghead(e))); +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9zp3bsvuco9me48ea4fiy6acl"); // bez = ED_spl(e)->list; +UNSUPPORTED("1mwkc047hik3rfvg9nirzx1eu"); // size = bez->size; +UNSUPPORTED("9vcgvjkna4elv9mw682bcl1ry"); // head = aghead(e); +UNSUPPORTED("6pl9v5iuk7ek5nv87env6rn8y"); // tail = agtail(e); +UNSUPPORTED("ap2j55l6otqo1gbl6ltds9nwh"); // /* allocate new Bezier */ +UNSUPPORTED("evus0s8ajoz1nr025560y72nt"); // nbez = (bezier*)gmalloc(sizeof(bezier)); +UNSUPPORTED("ep4g00m6u2qqzjjpl5wv8pf68"); // nbez->eflag = bez->eflag; +UNSUPPORTED("3f2ouh5001dudtknnvyd0d3k"); // nbez->sflag = bez->sflag; +UNSUPPORTED("9puveeg1x9guxlasq00a4jkoy"); // /* if Bezier has four points, almost collinear, +UNSUPPORTED("3j2z7u8v0esgm7xffel168hq7"); // * make line - unimplemented optimization? +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("gquyyp49r5koft7tvjy0s8rg"); // /* If head cluster defined, find first Bezier +UNSUPPORTED("36p20hcsa21623tw4wu1oz2p6"); // * crossing head cluster, and truncate spline to +UNSUPPORTED("9s9druwau7a95yt795beirpsq"); // * box edge. +UNSUPPORTED("cn1atesybawh2axikezvwq87k"); // * Otherwise, leave end alone. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("7ub8yceaqsfpwhdiiln16imu8"); // fixed = 0; +UNSUPPORTED("9pt4rploytevhgdsh2ccwqwa5"); // if (lh) { +UNSUPPORTED("1epg8to10rb7b0uyumqk5by3d"); // bb = &(GD_bb(lh)); +UNSUPPORTED("5kfib01to02c8vzno1s2ekcr6"); // if (!inBoxf(ND_coord(head), bb)) { +UNSUPPORTED("dw7kdr12sq66xx2svd4s92czw"); // agerr(AGWARN, "%s -> %s: head not inside head cluster %s\n", +UNSUPPORTED("4685lstw48yeb92f1qu3uf6ju"); // agnameof(agtail(e)), agnameof(aghead(e)), agget(e, "lhead")); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("3uodo3h9hth2y90nphjmbr0oz"); // /* If first control point is in bb, degenerate case. Spline +UNSUPPORTED("48lbfpll26nek7srz6txj1ifd"); // * reduces to four points between the arrow head and the point +UNSUPPORTED("bnhwhc0oclranqqrc084eqy25"); // * where the segment between the first control point and arrow head +UNSUPPORTED("cqgsnvduolzsvf228s6bzu09z"); // * crosses box. +UNSUPPORTED("20m1lc1moer8x00tx9ceto0iw"); // */ +UNSUPPORTED("9pqsbiv3p2qq7o79wqbbz8l5n"); // if (inBoxf(bez->list[0], bb)) { +UNSUPPORTED("9w1xj4pf7ycfdklkv9mztvayi"); // if (inBoxf(ND_coord(tail), bb)) { +UNSUPPORTED("3f0u3cjz549lwgnkj0rlfv6rv"); // agerr(AGWARN, +UNSUPPORTED("27beaae4u5f8m2rui7t930icj"); // "%s -> %s: tail is inside head cluster %s\n", +UNSUPPORTED("5su0sbzvdwjhkfmbg8xivrf3y"); // agnameof(agtail(e)), agnameof(aghead(e)), agget(e, "lhead")); +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("ewwp403copbj6mdyqowm6q2s4"); // assert(bez->sflag); /* must be arrowhead on tail */ +UNSUPPORTED("lp06fc3tmr8xux3w7kfnjg4r"); // p = boxIntersectf(bez->list[0], bez->sp, bb); +UNSUPPORTED("ejtuxx5nuew10e08cnrbh9avq"); // bez->list[3] = p; +UNSUPPORTED("7duperi3l69fplb736n7smpqf"); // bez->list[1] = mid_pointf(p, bez->sp); +UNSUPPORTED("a4eh5xj2wrncqnmttmavzegdw"); // bez->list[0] = mid_pointf(bez->list[1], bez->sp); +UNSUPPORTED("5dxkrve755ukj7tzac4ft5kee"); // bez->list[2] = mid_pointf(bez->list[1], p); +UNSUPPORTED("59ne8fp4dumv8e2dt8nzlbwm9"); // if (bez->eflag) +UNSUPPORTED("e0iax8us2lskwlp49snfuewo5"); // endi = arrowEndClip(e, bez->list, +UNSUPPORTED("cblie3jhaa9y0orqcusd4rz3n"); // starti, 0, nbez, bez->eflag); +UNSUPPORTED("dtvlepuobgzgt31wlwvahcuz6"); // endi += 3; +UNSUPPORTED("b1vrskwl75muujmh6lvltym9p"); // fixed = 1; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("2sf4rxnj84i693qu8p8eeb0th"); // for (endi = 0; endi < size - 1; endi += 3) { +UNSUPPORTED("3gsvjp9m9s9xkrldmovrxl86l"); // if (splineIntersectf(&(bez->list[endi]), bb)) +UNSUPPORTED("a5064jph9xpw67dcun2my4mcm"); // break; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6v67nn2fkgve6sliwhhcjhlzy"); // if (endi == size - 1) { /* no intersection */ +UNSUPPORTED("ne38tb76v74pens6v8pbfrbg"); // assert(bez->eflag); +UNSUPPORTED("6zfsm93mmi2u1kkkh72v0p3ko"); // nbez->ep = boxIntersectf(bez->ep, bez->list[endi], bb); +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("59ne8fp4dumv8e2dt8nzlbwm9"); // if (bez->eflag) +UNSUPPORTED("2931qkcakw4pmrkqfxkwz6c9w"); // endi = +UNSUPPORTED("5m1xf54kia4xa3oh9pi0laqg2"); // arrowEndClip(e, bez->list, +UNSUPPORTED("dif2h2k72i4vle08l8zt6g99d"); // starti, endi, nbez, bez->eflag); +UNSUPPORTED("dtvlepuobgzgt31wlwvahcuz6"); // endi += 3; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("37cextn872jccni47tbuylnde"); // fixed = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b4l5v1tzcfyxswk474eyxoh7g"); // if (fixed == 0) { /* if no lh, or something went wrong, use original head */ +UNSUPPORTED("5iaa7yro1fezven3pxpfgmxu4"); // endi = size - 1; +UNSUPPORTED("a4jsfnfkjyk5zvhtmxz837cwk"); // if (bez->eflag) +UNSUPPORTED("ardm696r3cpsbtf6losy2b016"); // nbez->ep = bez->ep; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ea4t41cqs5cu6h8oyl4vr26m2"); // /* If tail cluster defined, find last Bezier +UNSUPPORTED("7p2mckkgkchxr6vhh6gezq8wz"); // * crossing tail cluster, and truncate spline to +UNSUPPORTED("9s9druwau7a95yt795beirpsq"); // * box edge. +UNSUPPORTED("cn1atesybawh2axikezvwq87k"); // * Otherwise, leave end alone. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("7ub8yceaqsfpwhdiiln16imu8"); // fixed = 0; +UNSUPPORTED("5qu8oy18iv3lo7czvfxeoa9uf"); // if (lt) { +UNSUPPORTED("pk4bun7t8spswxbvfqizndma"); // bb = &(GD_bb(lt)); +UNSUPPORTED("5fdmhqx0gpmawrdmhes377bcj"); // if (!inBoxf(ND_coord(tail), bb)) { +UNSUPPORTED("1m0jbxdni08pgm584b96t3rjx"); // agerr(AGWARN, "%s -> %s: tail not inside tail cluster %s\n", +UNSUPPORTED("3s8r91i8l8gnx912jssz9qyeo"); // agnameof(agtail(e)), agnameof(aghead(e)), agget(e, "ltail")); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("1qjsjzvwnzg5em6iaq3reaswh"); // /* If last control point is in bb, degenerate case. Spline +UNSUPPORTED("f2rlo65dpa2r245fl7q3a8uhm"); // * reduces to four points between arrow head, and the point +UNSUPPORTED("c22xvluit87sy443q8y00uc4g"); // * where the segment between the last control point and the +UNSUPPORTED("drage3192rqa7ifzj1p0rzr7b"); // * arrow head crosses box. +UNSUPPORTED("20m1lc1moer8x00tx9ceto0iw"); // */ +UNSUPPORTED("5xu4e03fqpef4n5pmrb5kau0d"); // if (inBoxf(bez->list[endi], bb)) { +UNSUPPORTED("25cb9bqsfesb0faqthoggdumf"); // if (inBoxf(ND_coord(head), bb)) { +UNSUPPORTED("3f0u3cjz549lwgnkj0rlfv6rv"); // agerr(AGWARN, +UNSUPPORTED("5xfu8lqrs0caaz29aue2f4s21"); // "%s -> %s: head is inside tail cluster %s\n", +UNSUPPORTED("f3g912itxolsegc77eg84cl5l"); // agnameof(agtail(e)), agnameof(aghead(e)), agget(e, "ltail")); +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("8f4spvkivd7okr9g59i6nwodq"); // assert(bez->eflag); /* must be arrowhead on head */ +UNSUPPORTED("7f7fhm60xzneykhpsinmusktg"); // p = boxIntersectf(bez->list[endi], nbez->ep, bb); +UNSUPPORTED("5sxlw9wg1evuruihg2pf20m2q"); // starti = endi - 3; +UNSUPPORTED("469jcsvjasontlve9fx1oiprf"); // bez->list[starti] = p; +UNSUPPORTED("cnpwuv23ryh1zxbij0n57992e"); // bez->list[starti + 2] = mid_pointf(p, nbez->ep); +UNSUPPORTED("o7wu7segbiephyk1mn6ruzii"); // bez->list[starti + 3] = mid_pointf(bez->list[starti + 2], nbez->ep); +UNSUPPORTED("1hq51ue6km9jd5khvilyiu8ba"); // bez->list[starti + 1] = mid_pointf(bez->list[starti + 2], p); +UNSUPPORTED("f018p8s1pklqzeu862o8grqz3"); // if (bez->sflag) +UNSUPPORTED("c9hvjpjpxposlztt4ykhchse4"); // starti = arrowStartClip(e, bez->list, starti, +UNSUPPORTED("dbcocs457i5fpymvciq1id8sl"); // endi - 3, nbez, bez->sflag); +UNSUPPORTED("b1vrskwl75muujmh6lvltym9p"); // fixed = 1; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("d2jlvy1nqfh80mgss1c39f01j"); // for (starti = endi; starti > 0; starti -= 3) { +UNSUPPORTED("28srqjfv5l9fgucte4xcck1wf"); // for (i = 0; i < 4; i++) +UNSUPPORTED("8c8hwyg5j3w5quof1ir68ns70"); // pts[i] = bez->list[starti - i]; +UNSUPPORTED("4r5afy1ydhha880ua170puwym"); // if (splineIntersectf(pts, bb)) { +UNSUPPORTED("ej309gi9fv5xlnkscibruakjp"); // for (i = 0; i < 4; i++) +UNSUPPORTED("7i03k1aqcvrb8znb7097fyn48"); // bez->list[starti - i] = pts[i]; +UNSUPPORTED("a5064jph9xpw67dcun2my4mcm"); // break; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("btve1tg4yf6dsbobp66rbktt7"); // if (starti == 0) { +UNSUPPORTED("8n6t6jnfgooxt9ia0n2d9xj5a"); // assert(bez->sflag); +UNSUPPORTED("9iea16dzn148ggj1yhec6nrv6"); // nbez->sp = +UNSUPPORTED("3c8n4kr8984t1a8f2tvj7wgrr"); // boxIntersectf(bez->sp, bez->list[starti], bb); +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("5yn57nenv2uh775lo64evo8ma"); // starti -= 3; +UNSUPPORTED("f018p8s1pklqzeu862o8grqz3"); // if (bez->sflag) +UNSUPPORTED("c9hvjpjpxposlztt4ykhchse4"); // starti = arrowStartClip(e, bez->list, starti, +UNSUPPORTED("dbcocs457i5fpymvciq1id8sl"); // endi - 3, nbez, bez->sflag); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("37cextn872jccni47tbuylnde"); // fixed = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7016d9urlsksnhs3cnhecjcda"); // if (fixed == 0) { /* if no lt, or something went wrong, use original tail */ +UNSUPPORTED("eb2mhex2xw1imv1kk03mvjjou"); // /* Note: starti == 0 */ +UNSUPPORTED("bid01qt9cg10ravykoxdnzxyk"); // if (bez->sflag) +UNSUPPORTED("5r4ncqv0i1d4e42av5wd1enpg"); // nbez->sp = bez->sp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6npoy905gpw81hrxzbjbr2cfx"); // /* complete Bezier, free garbage and attach new Bezier to edge +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("5xonbkojra95eckls0aqmri36"); // nbez->size = endi - starti + 1; +UNSUPPORTED("ahcr8abvd2jxjhobcfhctvs1b"); // nbez->list = (pointf*)gmalloc((nbez->size)*sizeof(pointf)); +UNSUPPORTED("c9hwlt12y9khkl85dhudsnoji"); // for (i = 0, j = starti; i < nbez->size; i++, j++) +UNSUPPORTED("bafoyknloit5d46b4iu8wll9p"); // nbez->list[i] = bez->list[j]; +UNSUPPORTED("60fikjho2iwcxgrd8xetr09m6"); // free(bez->list); +UNSUPPORTED("3qr0q84nc1rpnmowlbyiowg2z"); // free(bez); +UNSUPPORTED("70byyll04ac6uqbdyb54i1gr"); // ED_spl(e)->list = nbez; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8dlmdg7jixgrpxke9pgbbnous +// void dot_compoundEdges(graph_t * g) +public static Object dot_compoundEdges(Object... arg) { +UNSUPPORTED("7ugy3v610tnicjpszcs8fvlvb"); // void dot_compoundEdges(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("aice9tv6l0gls54iyk8147m5u"); // Dt_t* clustMap = mkClustMap (g); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("1urljgadk0bknazngl2w39evt"); // makeCompoundEdge(g, e, clustMap); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("11epc7udwyi67f5gszznmfwn8"); // dtclose(clustMap); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/conc__c.java plantuml-8039/src/gen/lib/dotgen/conc__c.java --- plantuml-8024/src/gen/lib/dotgen/conc__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/conc__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,984 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; +import smetana.core.jmp_buf; + +public class conc__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 540u5gu9i0x1wzoxqqx5n2vwp +// static jmp_buf jbuf +private static jmp_buf jbuf = new jmp_buf(); + + + +//3 hiohl94lfxzfx1mjrwsqz37c +// static boolean samedir(edge_t * e, edge_t * f) +public static Object samedir(Object... arg) { +UNSUPPORTED("29nu0bleg7r6obvwg17es3eva"); // static boolean samedir(edge_t * e, edge_t * f) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5prsmuiayujknpr12ysexceww"); // edge_t *e0, *f0; +UNSUPPORTED("a87jx348k6dr2owi2ge2e9r86"); // for (e0 = e; ED_edge_type(e0) != 0; e0 = ED_to_orig(e0)); +UNSUPPORTED("cws6ess4x4o5kp609fhzl087m"); // for (f0 = f; ED_edge_type(f0) != 0; f0 = ED_to_orig(f0)); +UNSUPPORTED("ay9e2jfde73nguyfs214f5pif"); // if (ED_conc_opp_flag(e0)) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("3qs48pp09z881fbxjwqfm4u1r"); // if (ED_conc_opp_flag(f0)) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("5p8e0qmobo1inow3m2l1iis5t"); // return ((ND_rank(agtail(f0)) - ND_rank(aghead(f0))) +UNSUPPORTED("6n93ns5ibdr64eugmmuj5rn02"); // * (ND_rank(agtail(e0)) - ND_rank(aghead(e0))) > 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6pb0av8sjhmso4mrttaqsuv6h +// static boolean downcandidate(node_t * v) +public static Object downcandidate(Object... arg) { +UNSUPPORTED("5rcx94deeexsyuzu3uu8v1yk2"); // static boolean downcandidate(node_t * v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6jfx7802edvf66slrrtiwdr3x"); // return ((ND_node_type(v) == 1) && (ND_in(v).size == 1) +UNSUPPORTED("bc5c94xpimskyg4uxfcpjzjbk"); // && (ND_out(v).size == 1) && (ND_label(v) == NULL)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5yy2uwgnjzdmsqjig6m7pi4dh +// static boolean bothdowncandidates(node_t * u, node_t * v) +public static Object bothdowncandidates(Object... arg) { +UNSUPPORTED("70c1exdtu7f7a0g2xvtjf1h4v"); // static boolean bothdowncandidates(node_t * u, node_t * v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f; +UNSUPPORTED("n6nd0vbfveotd6ua08vaz9kc"); // e = ND_in(u).list[0]; +UNSUPPORTED("a1yoae6m61u88abwgei4iwrv6"); // f = ND_in(v).list[0]; +UNSUPPORTED("1igpcdu1bpbjym8gly2bydxmp"); // if (downcandidate(v) && (agtail(e) == agtail(f))) { +UNSUPPORTED("b0c3dm89khvdfaecz8vndzs4g"); // return samedir(e, f) +UNSUPPORTED("b65ygvpn73rc7xtl4ogmyfdc3"); // && (portcmp(ED_tail_port(e), ED_tail_port(f)) == 0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 pnmyeaeyufqhbdt9phmr34w8 +// static boolean upcandidate(node_t * v) +public static Object upcandidate(Object... arg) { +UNSUPPORTED("1bwv2llboqrh45zw5aau3g8wy"); // static boolean upcandidate(node_t * v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8cpz8jcws7vc5ljvhpqsvtr95"); // return ((ND_node_type(v) == 1) && (ND_out(v).size == 1) +UNSUPPORTED("3h8pm2cl2yek27t8a1r51vwwm"); // && (ND_in(v).size == 1) && (ND_label(v) == NULL)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eoltukpbxfjnxh04nr63ockc2 +// static boolean bothupcandidates(node_t * u, node_t * v) +public static Object bothupcandidates(Object... arg) { +UNSUPPORTED("cqzsemphpsgvcisjr9bifnbar"); // static boolean bothupcandidates(node_t * u, node_t * v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f; +UNSUPPORTED("9zpg3620h4heznn3b6mf3rkzc"); // e = ND_out(u).list[0]; +UNSUPPORTED("1vg7brvscwl8tqwcwgf2vc1iu"); // f = ND_out(v).list[0]; +UNSUPPORTED("232o0u3m0hk33kom12ddv5cf5"); // if (upcandidate(v) && (aghead(e) == aghead(f))) { +UNSUPPORTED("b0c3dm89khvdfaecz8vndzs4g"); // return samedir(e, f) +UNSUPPORTED("2sbh73r3hanfplu15qi49xx9e"); // && (portcmp(ED_head_port(e), ED_head_port(f)) == 0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9ugj5cxjwh6izs7qwoeplieyq +// static void mergevirtual(graph_t * g, int r, int lpos, int rpos, int dir) +public static Object mergevirtual(Object... arg) { +UNSUPPORTED("7fykjo0tsdbiv0zeb6x3fb8fs"); // static void mergevirtual(graph_t * g, int r, int lpos, int rpos, int dir) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3omv4g8dibh1pqrvt46eo9gvq"); // int i, k; +UNSUPPORTED("amyi14irz6dbz0367id35hvp"); // node_t *left, *right; +UNSUPPORTED("8f8h355l1495yy9dbaz0it2in"); // edge_t *e, *f, *e0; +UNSUPPORTED("231cg7wmyzy38x2wt2fo5w4mj"); // left = GD_rank(g)[r].v[lpos]; +UNSUPPORTED("ell7qlxmonsekwusp8xopfdfu"); // /* merge all right nodes into the leftmost one */ +UNSUPPORTED("1eeld04u92ygccgaquiq6xaex"); // for (i = lpos + 1; i <= rpos; i++) { +UNSUPPORTED("5elwzk0mnuzvd2hm4hjqerr0f"); // right = GD_rank(g)[r].v[i]; +UNSUPPORTED("c1uckn7ho04t7ub7xklkxju8h"); // if (dir == 1) { +UNSUPPORTED("b0aboa5nfb7ujemy7qx50riyo"); // while ((e = ND_out(right).list[0])) { +UNSUPPORTED("61h4dtrrxp3gqi4qq4fa84dj6"); // for (k = 0; (f = ND_out(left).list[k]); k++) +UNSUPPORTED("e0g1j10s0bixkrbon6u0yv9c6"); // if (aghead(f) == aghead(e)) +UNSUPPORTED("a5064jph9xpw67dcun2my4mcm"); // break; +UNSUPPORTED("34init75thgijzfyzza21moxe"); // if (f == NULL) +UNSUPPORTED("bevz1zn0blsflvx6jkk50rba9"); // f = virtual_edge(left, aghead(e), e); +UNSUPPORTED("asb45d5rqv8it74v7tne8f2fg"); // while ((e0 = ND_in(right).list[0])) { +UNSUPPORTED("cuttljjerosdc8dabm2bnnyb8"); // merge_oneway(e0, f); +UNSUPPORTED("7v5ie1ooevp21zluuewlboyb5"); // /*ED_weight(f) += ED_weight(e0); */ +UNSUPPORTED("5s7a1scru7071fh3chrychja8"); // delete_fast_edge(e0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("4xzroqevvsjt307vvx10f8atw"); // delete_fast_edge(e); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("a9byy1rucxlzdlxewp2rv7gqq"); // while ((e = ND_in(right).list[0])) { +UNSUPPORTED("c7omxpe29tnl9ydgup95clcci"); // for (k = 0; (f = ND_in(left).list[k]); k++) +UNSUPPORTED("a8u5bsqed458j870nosh64yic"); // if (agtail(f) == agtail(e)) +UNSUPPORTED("a5064jph9xpw67dcun2my4mcm"); // break; +UNSUPPORTED("34init75thgijzfyzza21moxe"); // if (f == NULL) +UNSUPPORTED("dbqismmahqza8fnkjhntz4ll0"); // f = virtual_edge(agtail(e), left, e); +UNSUPPORTED("eukpmnw48odadjb55ie78fit9"); // while ((e0 = ND_out(right).list[0])) { +UNSUPPORTED("cuttljjerosdc8dabm2bnnyb8"); // merge_oneway(e0, f); +UNSUPPORTED("5s7a1scru7071fh3chrychja8"); // delete_fast_edge(e0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("4xzroqevvsjt307vvx10f8atw"); // delete_fast_edge(e); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("20831ggpnh7lvyeu87hwsm0t3"); // assert(ND_in(right).size + ND_out(right).size == 0); +UNSUPPORTED("ahkylw437651e5mf9138vl35w"); // delete_fast_node(g, right); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4yunnb5j9hoe6bcsy79b69fh0"); // k = lpos + 1; +UNSUPPORTED("1ta71a6pw0aspmpknbt3wjj4k"); // i = rpos + 1; +UNSUPPORTED("6vm80zqnn9yxelf6y0p8pdhlh"); // while (i < GD_rank(g)[r].n) { +UNSUPPORTED("aour3qu5mlw9cykjikxt0fxcy"); // node_t *n; +UNSUPPORTED("2z4aexzipvp6690gajlfsw9ub"); // n = GD_rank(g)[r].v[k] = GD_rank(g)[r].v[i]; +UNSUPPORTED("98h1qvrthbfxdz7717i3e1ylh"); // ND_order(n) = k; +UNSUPPORTED("9zq7xtwq5cysffia17vtbbt9u"); // k++; +UNSUPPORTED("chd2f5z6rt19lbaye25ej7q6j"); // i++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("85og729c3c58hh8wdsc8uec8l"); // GD_rank(g)[r].n = k; +UNSUPPORTED("d8ajai913hx6i4otnoso8kawv"); // GD_rank(g)[r].v[k] = NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c20jfo46p56bjbachxehha9pu +// static void infuse(graph_t * g, node_t * n) +public static Object infuse(Object... arg) { +UNSUPPORTED("etmqgz9znjdg1p7di2fe6kis4"); // static void infuse(graph_t * g, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9roij9rixfrdr3vio8wvn6cym"); // node_t *lead; +UNSUPPORTED("1dhtnolphtqb1vhzddsjs4997"); // lead = GD_rankleader(g)[ND_rank(n)]; +UNSUPPORTED("7sbrmrdrc6qm86jwzs2p1q0bv"); // if ((lead == NULL) || (ND_order(lead) > ND_order(n))) +UNSUPPORTED("4kboqcebkf36wvklvhc0smxyf"); // GD_rankleader(g)[ND_rank(n)] = n; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e8chm1nms49vyf1mp9zdq7e3n +// static void rebuild_vlists(graph_t * g) +public static Object rebuild_vlists(Object... arg) { +UNSUPPORTED("8lxgqgoebpr6pqqvqimb2nold"); // static void rebuild_vlists(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c566lguiyozynv7spc9xx8agv"); // int c, i, r, maxi; +UNSUPPORTED("augenu6r3rx501311lht9q7qr"); // node_t *n, *lead; +UNSUPPORTED("3bqpdb6f6p2qw9s76g6txvvro"); // edge_t *e, *rep; +UNSUPPORTED("br5jnq2zjxxbz2mw0z8ns5uug"); // for (r = GD_minrank(g); r <= GD_maxrank(g); r++) +UNSUPPORTED("2rpy1wfe6lhmak6ce4v24v4ao"); // GD_rankleader(g)[r] = NULL; +UNSUPPORTED("4frgznaid5m5mdte931ti7cw"); // dot_scan_ranks(g); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("7zlur6lceb4yawe9tb9amgq9s"); // infuse(g, n); +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("7uff9xbfc6s0idd1vxtjm2qth"); // for (rep = e; ED_to_virt(rep); rep = ED_to_virt(rep)); +UNSUPPORTED("4oqbk654pzi7973xynf59fntp"); // while (ND_rank(aghead(rep)) < ND_rank(aghead(e))) { +UNSUPPORTED("87e8ucrmzsn4x3vikrp4zqx96"); // infuse(g, aghead(rep)); +UNSUPPORTED("9l3almai3ugohjo61vxf13yb7"); // rep = ND_out(aghead(rep)).list[0]; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("60nab7gyukq3bs8e6dizhbacy"); // for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { +UNSUPPORTED("arvyjg1l9juza75tj23zsykps"); // lead = GD_rankleader(g)[r]; +UNSUPPORTED("4atymss3ar3wje54szsaa3omf"); // if (GD_rank(dot_root(g))[r].v[ND_order(lead)] != lead) { +UNSUPPORTED("b3cixj6rtwwwmjmebo4r2h15k"); // agerr(AGERR, "rebuiltd_vlists: rank lead %s not in order %d of rank %d\n", +UNSUPPORTED("6udrpqggfjxt0na5cdb0725bn"); // agnameof(lead), ND_order(lead), r); +UNSUPPORTED("edg6zn44g1egn9rxfpiizzrjo"); // longjmp(jbuf, 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3907i7loyifjuq3p41y45kyhm"); // GD_rank(g)[r].v = +UNSUPPORTED("7j4ogkw53pg0iv0mmko48fw0x"); // GD_rank(dot_root(g))[r].v + ND_order((GD_rankleader(g)[r])); +UNSUPPORTED("2c6wxmjs9ytmjutd79l3vt4gl"); // maxi = -1; +UNSUPPORTED("6eix918gmfs16624x6omusuhm"); // for (i = 0; i < GD_rank(g)[r].n; i++) { +UNSUPPORTED("34a7o67ylktm1es8bkuaeejk2"); // if ((n = GD_rank(g)[r].v[i]) == NULL) +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("e0gk7m0zrsus94mtf86d91p04"); // if (ND_node_type(n) == 0) { +UNSUPPORTED("d13494tcz4gbtml8c1ev3ktzb"); // if (agcontains(g, n)) +UNSUPPORTED("80spg5b3li0mhxyw957sp2n7q"); // maxi = i; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("3gm29k6z4aks8v0k1r7qvxvlt"); // edge_t *e; +UNSUPPORTED("42bmttyjay3sng4c3d0tsvkn9"); // for (e = ND_in(n).list[0]; e && ED_to_orig(e); +UNSUPPORTED("148t8jlrp8lwlu4pyvlslf49l"); // e = ED_to_orig(e)); +UNSUPPORTED("5n3hyea9ita57alojbawbcurz"); // if (e && (agcontains(g, agtail(e))) +UNSUPPORTED("2u3pptvaudhj3kaydu0xn0c9x"); // && agcontains(g, aghead(e))) +UNSUPPORTED("80spg5b3li0mhxyw957sp2n7q"); // maxi = i; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("csorvv6yhyohqnsvhazkk6eje"); // if (maxi == -1) +UNSUPPORTED("eq3mmft8bst07qw88wjzgvoet"); // agerr(AGWARN, "degenerate concentrated rank %s,%d\n", agnameof(g), +UNSUPPORTED("b6bf10m2f2pvxgkfcax559640"); // r); +UNSUPPORTED("10l3x6nke8pra4fu5ysnu6j08"); // GD_rank(g)[r].n = maxi + 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++) +UNSUPPORTED("1d7lqtmagp5mwcbbkf4xawdog"); // rebuild_vlists(GD_clust(g)[c]); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3mzzkxpsezmtvlbzshvr46b8m +// void dot_concentrate(graph_t * g) +public static Object dot_concentrate(Object... arg) { +UNSUPPORTED("4h7xkpw4zpae6ztth270w22gd"); // void dot_concentrate(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("62hcnpegd6vvkgtfo3a833aq9"); // int c, r, leftpos, rightpos; +UNSUPPORTED("amyi14irz6dbz0367id35hvp"); // node_t *left, *right; +UNSUPPORTED("1exryvusfp7fkh0rn8bxcz96g"); // if (GD_maxrank(g) - GD_minrank(g) <= 1) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("1o57fdj7j63samf9jysgvpqnq"); // /* this is the downward looking pass. r is a candidate rank. */ +UNSUPPORTED("ca08a4ijjaxoo89carapxu5ur"); // for (r = 1; GD_rank(g)[r + 1].n; r++) { +UNSUPPORTED("8elk0ekrvmk0yt6bmbwub0epc"); // for (leftpos = 0; leftpos < GD_rank(g)[r].n; leftpos++) { +UNSUPPORTED("ela65u1ff5sc7nw7eq6hioji0"); // left = GD_rank(g)[r].v[leftpos]; +UNSUPPORTED("7yq5j8b980yc5rz1e4lkwgmth"); // if (downcandidate(left) == 0) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("exizgsc0bwm37dxc6j6op74lz"); // for (rightpos = leftpos + 1; rightpos < GD_rank(g)[r].n; +UNSUPPORTED("5a4wx0786piefhj7q3m241wof"); // rightpos++) { +UNSUPPORTED("3jh1iupmf6freiri4v7zbt87k"); // right = GD_rank(g)[r].v[rightpos]; +UNSUPPORTED("7ap3iy5ysmyd0x869id0jyedv"); // if (bothdowncandidates(left, right) == 0) +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("3q4uw7garqdhjalzpk1bivu8s"); // if (rightpos - leftpos > 1) +UNSUPPORTED("4o5cptipygbr3qu2m6rkk4qwg"); // mergevirtual(g, r, leftpos, rightpos - 1, 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cakeuerd3mfjfwy396sci21tn"); // /* this is the corresponding upward pass */ +UNSUPPORTED("9cqq87ffcq47f55xlupeeuo6u"); // while (r > 0) { +UNSUPPORTED("8elk0ekrvmk0yt6bmbwub0epc"); // for (leftpos = 0; leftpos < GD_rank(g)[r].n; leftpos++) { +UNSUPPORTED("ela65u1ff5sc7nw7eq6hioji0"); // left = GD_rank(g)[r].v[leftpos]; +UNSUPPORTED("dgbio6b5e3ja3yul0q4rl5qqn"); // if (upcandidate(left) == 0) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("exizgsc0bwm37dxc6j6op74lz"); // for (rightpos = leftpos + 1; rightpos < GD_rank(g)[r].n; +UNSUPPORTED("5a4wx0786piefhj7q3m241wof"); // rightpos++) { +UNSUPPORTED("3jh1iupmf6freiri4v7zbt87k"); // right = GD_rank(g)[r].v[rightpos]; +UNSUPPORTED("6j41xobwrcrep12b6hhs39r8z"); // if (bothupcandidates(left, right) == 0) +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("3q4uw7garqdhjalzpk1bivu8s"); // if (rightpos - leftpos > 1) +UNSUPPORTED("c3v2wops656i36vmsec5ezxk0"); // mergevirtual(g, r, leftpos, rightpos - 1, 0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8a1wsnjguqfvz8vfx6erejakp"); // r--; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ci9r8sj8tbc6yer5c8cebb0cm"); // if (setjmp(jbuf)) { +UNSUPPORTED("ej9htgkxfq6bintcw04c6svwu"); // agerr(AGPREV, "concentrate=true may not work correctly.\n"); +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++) +UNSUPPORTED("1d7lqtmagp5mwcbbkf4xawdog"); // rebuild_vlists(GD_clust(g)[c]); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/decomp__c.java plantuml-8039/src/gen/lib/dotgen/decomp__c.java --- plantuml-8024/src/gen/lib/dotgen/decomp__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/decomp__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,842 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.node__c.agfstnode; +import static gen.lib.cgraph.node__c.agnxtnode; +import static gen.lib.common.utils__c.UF_find; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ALLOC_empty; +import static smetana.core.Macro.GD_comp; +import static smetana.core.Macro.GD_n_nodes; +import static smetana.core.Macro.GD_nlist; +import static smetana.core.Macro.GD_rankleader; +import static smetana.core.Macro.ND_clust; +import static smetana.core.Macro.ND_flat_in; +import static smetana.core.Macro.ND_flat_out; +import static smetana.core.Macro.ND_in; +import static smetana.core.Macro.ND_mark; +import static smetana.core.Macro.ND_next; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.ND_prev; +import static smetana.core.Macro.ND_rank; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.boxf; +import h.elist; +import h.pointf; +import smetana.core.Z; +import smetana.core.__array_of_struct__; +import smetana.core.__struct__; + +public class decomp__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 5kbimjtsi4ulxiyk2w1brj6py +// static graph_t *G +//private static Agraph_s G; +//1 ca279jzn1n2k40bv7mz55ccx7 +// static node_t *Last_node +//private static Agnode_s Last_node; +//1 5t6dmo5pbc1wdmxtabavdwyb2 +// static char Cmark +//private static char Cmark; + + +//3 7ggrwt0f912kp1marrxdjq155 +// static void begin_component(void) +public static void begin_component() { +ENTERING("7ggrwt0f912kp1marrxdjq155","begin_component"); +try { + Z._().Last_node_decomp = null; + GD_nlist(Z._().G_decomp, null); +} finally { +LEAVING("7ggrwt0f912kp1marrxdjq155","begin_component"); +} +} + + + + +//3 7icc6b2pvnj6te1yndbel47gg +// static void add_to_component(node_t * n) +public static void add_to_component(Agnode_s n) { +ENTERING("7icc6b2pvnj6te1yndbel47gg","add_to_component"); +try { + GD_n_nodes(Z._().G_decomp, 1+GD_n_nodes(Z._().G_decomp)); + ND_mark(n, Z._().Cmark); + if (Z._().Last_node_decomp!=null) { + ND_prev(n, Z._().Last_node_decomp); + ND_next(Z._().Last_node_decomp, n); + } else { + ND_prev(n, null); + GD_nlist(Z._().G_decomp, n); + } + Z._().Last_node_decomp = n; + ND_next(n, null); +} finally { +LEAVING("7icc6b2pvnj6te1yndbel47gg","add_to_component"); +} +} + + + + +//3 5o8hxpr6ppi15pinuy79m7u04 +// static void end_component(void) +public static void end_component() { +ENTERING("5o8hxpr6ppi15pinuy79m7u04","end_component"); +try { + int i; + i = GD_comp(Z._().G_decomp).getInt("size"); + GD_comp(Z._().G_decomp).setInt("size", 1+GD_comp(Z._().G_decomp).getInt("size")); + GD_comp(Z._().G_decomp).setPtr("list", ALLOC_empty(GD_comp(Z._().G_decomp).getInt("size"), GD_comp(Z._().G_decomp).getPtr("list"), Agnode_s.class)); + GD_comp(Z._().G_decomp).getArrayOfPtr("list").plus(i).setPtr(GD_nlist(Z._().G_decomp)); +} finally { +LEAVING("5o8hxpr6ppi15pinuy79m7u04","end_component"); +} +} + + + + +//3 c5u5lnfbu0pmlk6vsvyrdj8ep +// static void search_component(graph_t * g, node_t * n) +public static void search_component(Agraph_s g, Agnode_s n) { +ENTERING("c5u5lnfbu0pmlk6vsvyrdj8ep","search_component"); +try { + int c, i; + __array_of_struct__ vec = __array_of_struct__.malloc(elist.class, 4); + Agnode_s other; + Agedge_s e; + add_to_component(n); + vec.plus(0).setStruct(ND_out(n)); + vec.plus(1).setStruct(ND_in(n)); + vec.plus(2).setStruct(ND_flat_out(n)); + vec.plus(3).setStruct(ND_flat_in(n)); + for (c = 0; c <= 3; c++) { + if (vec.plus(c).getStruct().getPtr("list")!=null) + for (i = 0; (e = (Agedge_s) vec.plus(c).getStruct().getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if (EQ(other = aghead(e), n)) + other = agtail(e); + if ((ND_mark(other) != Z._().Cmark) && (EQ(other, UF_find(other)))) + search_component(g, other); + } + } +} finally { +LEAVING("c5u5lnfbu0pmlk6vsvyrdj8ep","search_component"); +} +} + + + + +//3 2t7r964kqtl5qrl7i57i22tqy +// void decompose(graph_t * g, int pass) +public static void decompose(Agraph_s g, int pass) { +ENTERING("2t7r964kqtl5qrl7i57i22tqy","decompose"); +try { + Agraph_s subg; + Agnode_s n, v; + Z._().G_decomp = g; + if (++Z._().Cmark == 0) + Z._().Cmark = 1; + GD_n_nodes(g, 0); + GD_comp(g).setInt("size", 0); + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) { + v = n; + if ((pass > 0) && (subg = ND_clust(v))!=null) + v = (Agnode_s) GD_rankleader(subg).plus(ND_rank(v)).getPtr(); + else if (v != UF_find(v)) + continue; + if (ND_mark(v) != Z._().Cmark) { + begin_component(); + search_component(g, v); + end_component(); + } + } +} finally { +LEAVING("2t7r964kqtl5qrl7i57i22tqy","decompose"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/dotinit__c.java plantuml-8039/src/gen/lib/dotgen/dotinit__c.java --- plantuml-8024/src/gen/lib/dotgen/dotinit__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/dotinit__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1275 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.attr__c.agattr; +import static gen.lib.cgraph.attr__c.agget; +import static gen.lib.cgraph.edge__c.agfstout; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agnxtout; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.graph__c.agnnodes; +import static gen.lib.cgraph.node__c.agfstnode; +import static gen.lib.cgraph.node__c.agnxtnode; +import static gen.lib.cgraph.obj__c.agraphof; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.cgraph.rec__c.agbindrec; +import static gen.lib.cgraph.subg__c.agfstsubg; +import static gen.lib.cgraph.subg__c.agnxtsubg; +import static gen.lib.common.postproc__c.dotneato_postprocess; +import static gen.lib.common.utils__c.common_init_edge; +import static gen.lib.common.utils__c.common_init_node; +import static gen.lib.common.utils__c.gv_nodesize; +import static gen.lib.common.utils__c.late_int; +import static gen.lib.common.utils__c.late_string; +import static gen.lib.common.utils__c.mapbool; +import static gen.lib.common.utils__c.setEdgeType; +import static gen.lib.dotgen.aspect__c.setAspect; +import static gen.lib.dotgen.class1__c.nonconstraint_edge; +import static gen.lib.dotgen.compound__c.dot_compoundEdges; +import static gen.lib.dotgen.dotsplines__c.dot_splines; +import static gen.lib.dotgen.mincross__c.dot_mincross; +import static gen.lib.dotgen.position__c.dot_position; +import static gen.lib.dotgen.rank__c.dot_rank; +import static gen.lib.dotgen.sameport__c.dot_sameports; +import static gen.lib.pack.pack__c.getPack; +import static gen.lib.pack.pack__c.getPackInfo; +import static gen.lib.pack.pack__c.getPackModeInfo; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.enumAsInt; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGRAPH; +import static smetana.core.Macro.ED_count; +import static smetana.core.Macro.ED_minlen; +import static smetana.core.Macro.ED_showboxes; +import static smetana.core.Macro.ED_weight; +import static smetana.core.Macro.ED_xpenalty; +import static smetana.core.Macro.GD_dotroot; +import static smetana.core.Macro.GD_flags; +import static smetana.core.Macro.GD_flip; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_UF_size; +import static smetana.core.Macro.ND_flat_in; +import static smetana.core.Macro.ND_flat_out; +import static smetana.core.Macro.ND_in; +import static smetana.core.Macro.ND_other; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.UNSUPPORTED; +import static smetana.core.Macro.alloc_elist; +import h.Agedge_s; +import h.Agedgeinfo_t; +import h.Agnode_s; +import h.Agnodeinfo_t; +import h.Agraph_s; +import h.Agraphinfo_t; +import h.aspect_t; +import h.boxf; +import h.pack_info; +import h.pack_mode; +import h.pointf; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class dotinit__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 exy2l03ceq9zw4vf01bbd4d3o +// typedef unsigned int packval_t + + + + +//3 cmr94z4p2bdeiply1d4wrqwes +// static void dot_init_subg(graph_t * g, graph_t* droot) +public static void dot_init_subg(Agraph_s g, Agraph_s droot) { +ENTERING("cmr94z4p2bdeiply1d4wrqwes","dot_init_subg"); +try { + Agraph_s subg; + if (NEQ(g, agroot(g))) + agbindrec(g, new CString("Agraphinfo_t"), sizeof(Agraphinfo_t.class), (N(0))); + if (EQ(g, droot)) + GD_dotroot(agroot(g), droot); + for (subg = agfstsubg(g); subg!=null; subg = agnxtsubg(subg)) { + dot_init_subg(subg, droot); + } +} finally { +LEAVING("cmr94z4p2bdeiply1d4wrqwes","dot_init_subg"); +} +} + + + + +//3 3hk92jbrfjmn6no3svn9jvje9 +// static void dot_init_node(node_t * n) +public static void dot_init_node(Agnode_s n) { +ENTERING("3hk92jbrfjmn6no3svn9jvje9","dot_init_node"); +try { + agbindrec(n, new CString("Agnodeinfo_t"), sizeof(Agnodeinfo_t.class), (N(0))); //graph custom data + common_init_node(n); + gv_nodesize(n, GD_flip(agraphof(n))); + alloc_elist(4, ND_in(n), Agnode_s.class); + alloc_elist(4, ND_out(n), Agnode_s.class); + alloc_elist(2, ND_flat_in(n), Agnode_s.class); + alloc_elist(2, ND_flat_out(n), Agnode_s.class); + alloc_elist(2, ND_other(n), Agnode_s.class); + ND_UF_size(n, 1); +} finally { +LEAVING("3hk92jbrfjmn6no3svn9jvje9","dot_init_node"); +} +} + + + + +//3 zbvhnhd78bppq8wb872847bj +// static void dot_init_edge(edge_t * e) +public static void dot_init_edge(Agedge_s e) { +ENTERING("zbvhnhd78bppq8wb872847bj","dot_init_edge"); +try { + CString tailgroup, headgroup; + agbindrec(e, new CString("Agedgeinfo_t"), sizeof(Agedgeinfo_t.class), (N(0))); //graph custom data + common_init_edge(e); + ED_weight(e, late_int(e, Z._().E_weight, 1, 0)); + tailgroup = late_string(agtail(e), Z._().N_group, new CString("")); + headgroup = late_string(aghead(e), Z._().N_group, new CString("")); + ED_count(e, 1); + ED_xpenalty(e, 1); + if (tailgroup.charAt(0)!='\0' && (tailgroup.isSame(headgroup))) { +UNSUPPORTED("atjraranegsdjegclykesn5gx"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->xpenalty) = 1000; +UNSUPPORTED("5y0yunmvmngg67c9exlbn6jbk"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->weight) *= 100; + } + if (nonconstraint_edge(e)) { +UNSUPPORTED("54niz21n2omf1i9v67brdid9w"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->xpenalty) = 0; +UNSUPPORTED("2v5u5jdguhhn7vjihniotrml0"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->weight) = 0; + } + ED_showboxes(e, late_int(e, Z._().E_showboxes, 0, 0)); + ED_minlen(e, late_int(e, Z._().E_minlen, 1, 0)); +} finally { +LEAVING("zbvhnhd78bppq8wb872847bj","dot_init_edge"); +} +} + + + + +//3 2ylyhz7macit0ts1hap2tg3wy +// void dot_init_node_edge(graph_t * g) +public static void dot_init_node_edge(Agraph_s g) { +ENTERING("2ylyhz7macit0ts1hap2tg3wy","dot_init_node_edge"); +try { + Agnode_s n; + Agedge_s e; + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) + dot_init_node(n); + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) { + for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) + dot_init_edge(e); + } +} finally { +LEAVING("2ylyhz7macit0ts1hap2tg3wy","dot_init_node_edge"); +} +} + + + + +//3 5z1h7gr0tgapjvuc2z9st9xjr +// static void dot_cleanup_node(node_t * n) +public static Object dot_cleanup_node(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("3wd33alc21mdt92sw3x9gl65j"); // dot_cleanup_node(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bft238x0kn16j4rew2s49lf8p"); // free_list(ND_in(n)); +UNSUPPORTED("9k0f5njfz83ho3jgj8a6l97ia"); // free_list(ND_out(n)); +UNSUPPORTED("9hf5u4ow9x2bxsh5roh3klohe"); // free_list(ND_flat_out(n)); +UNSUPPORTED("d5cejyb0j1nhixps76lgii0fr"); // free_list(ND_flat_in(n)); +UNSUPPORTED("er7qgmylfnw39xn97jixe3cqp"); // free_list(ND_other(n)); +UNSUPPORTED("dv63sk5dujcwfkf99o6ponzqm"); // free_label(ND_label(n)); +UNSUPPORTED("5or6zu6ycx4zage9ggy1o9it4"); // free_label(ND_xlabel(n)); +UNSUPPORTED("4wkmsp7365vb7u5fqtm2buotu"); // if (ND_shape(n)) +UNSUPPORTED("2yujce4phniaiwg4fq8up6xu7"); // ND_shape(n)->fns->freefn(n); +UNSUPPORTED("4zk1aro1ispxkab9ee4dd0tf"); // agdelrec(n, "Agnodeinfo_t"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5x42drpgjuyzb9oapi7osqxb6 +// static void free_virtual_edge_list(node_t * n) +public static Object free_virtual_edge_list(Object... arg) { +UNSUPPORTED("2kwoaiz0pcpatrbztzebypz24"); // static void free_virtual_edge_list(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("4johvk6fhfn8nimnwv1bayucm"); // for (i = ND_in(n).size - 1; i >= 0; i--) { +UNSUPPORTED("dkwp8r3x5yxwt373copif99qc"); // e = ND_in(n).list[i]; +UNSUPPORTED("d0cytt2j3orasq0977h5sdypp"); // delete_fast_edge(e); +UNSUPPORTED("3ersod3eshpdnzwy1yb73olpy"); // free(e->base.data); +UNSUPPORTED("7eb6ytlppce1o1ihl2yf1mb6w"); // free(e); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dyyfpe9giifeythxw1ecgc9gw"); // for (i = ND_out(n).size - 1; i >= 0; i--) { +UNSUPPORTED("d0wu190s7vunqmaadd9r01j7m"); // e = ND_out(n).list[i]; +UNSUPPORTED("d0cytt2j3orasq0977h5sdypp"); // delete_fast_edge(e); +UNSUPPORTED("3ersod3eshpdnzwy1yb73olpy"); // free(e->base.data); +UNSUPPORTED("7eb6ytlppce1o1ihl2yf1mb6w"); // free(e); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bzy6cpyjjzfeesjlq49c5sfmo +// static void free_virtual_node_list(node_t * vn) +public static Object free_virtual_node_list(Object... arg) { +UNSUPPORTED("b8mii2q777xhhq7ugpswc15so"); // static void free_virtual_node_list(node_t * vn) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3lk7715piw6ktz28izcuw3l10"); // node_t *next_vn; +UNSUPPORTED("cs50uo5tdqm5ri532weezud0q"); // while (vn) { +UNSUPPORTED("1zc0twfsq0pvs72obqpqn3jt7"); // next_vn = ND_next(vn); +UNSUPPORTED("6v1txca0lc0m7vffh6cxe7s0v"); // free_virtual_edge_list(vn); +UNSUPPORTED("ar8qtrvshtnclyd1lwsud1fe1"); // if (ND_node_type(vn) == 1) { +UNSUPPORTED("52z735rh4jv9he0idjly61jel"); // free_list(ND_out(vn)); +UNSUPPORTED("2cx91nqjcw6sdd1j219nb29ty"); // free_list(ND_in(vn)); +UNSUPPORTED("f2pq0qi224q8wspagt6qwoxdp"); // free(vn->base.data); +UNSUPPORTED("3lo6egckclz8tk579663nqark"); // free(vn); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1jra8cgf1nhojwmj7gyucvoni"); // vn = next_vn; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 colq6urkwrm9hh0zggl873dla +// static void dot_cleanup_graph(graph_t * g) +public static Object dot_cleanup_graph(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("84r7i6e9lays55x1yan1d0nlp"); // dot_cleanup_graph(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("8uujemixuhlf040icq3zsh7j8"); // graph_t *subg; +UNSUPPORTED("92vjk6rjnnnji7bcczz51lwfx"); // for (subg = agfstsubg(g); subg; subg = agnxtsubg(subg)) { +UNSUPPORTED("ykczo4avgse9arffpd1plmme"); // dot_cleanup_graph(subg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("12nbb17pw6fg2wwg5c7i800xv"); // if (GD_clust(g)) free (GD_clust(g)); +UNSUPPORTED("cw69q4tfzxmrd72fi1vz2be1g"); // if (GD_rankleader(g)) free (GD_rankleader(g)); +UNSUPPORTED("cnrd9322z9c4eqvr450ughbzh"); // free_list(GD_comp(g)); +UNSUPPORTED("djox731ykith2qz2trtp7zgzf"); // if (GD_rank(g)) { +UNSUPPORTED("1vkvarx8mfy1iq12oyq5rtzpa"); // for (i = GD_minrank(g); i <= GD_maxrank(g); i++) +UNSUPPORTED("32lqmila03wshgx9x3686apbo"); // free(GD_rank(g)[i].av); +UNSUPPORTED("dnv6plmiyr74l3u1aqc16qmiz"); // if (GD_minrank(g) == -1) +UNSUPPORTED("b0hpil9jwq1zov1klvpd6vbnf"); // free(GD_rank(g)-1); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("eqir7eaetsm1anqchd3kb8q8t"); // free(GD_rank(g)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("58o9b8zmlqcq96deeorllidce"); // if (g != agroot(g)) +UNSUPPORTED("f5hqyohefj8o12bvcv17xpswc"); // agdelrec(g,"Agraphinfo_t"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2uv40x0vx6nmbvld01reukyly +// void dot_cleanup(graph_t * g) +public static Object dot_cleanup(Object... arg) { +UNSUPPORTED("a2tqiktifcbodk46i6x0ux9j1"); // void dot_cleanup(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("v8twirr9ihzxnb06d6x6nxrd"); // free_virtual_node_list(GD_nlist(g)); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("5otoqd7o1zz8ni50urywr7yjy"); // gv_cleanup_edge(e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("yis08tp9td0x00hxoxqopt6b"); // dot_cleanup_node(n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2w88m44roqcqg67kuhg5k4agu"); // dot_cleanup_graph(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4jt1p8taqjuk4atqpwbxkru3g +// static void remove_from_rank (Agraph_t * g, Agnode_t* n) +public static Object remove_from_rank(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("9axg5z61bd5rkf0cbubkto6eb"); // remove_from_rank (Agraph_t * g, Agnode_t* n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5v9scbkty9fkcyo8yw7jmkokj"); // Agnode_t* v = NULL; +UNSUPPORTED("86gmm9qxyhkzst815hr54r1sp"); // int j, rk = ND_rank(n); +UNSUPPORTED("7bstlpzg93apc08cfgp386p7m"); // for (j = 0; j < GD_rank(g)[rk].n; j++) { +UNSUPPORTED("5oq2646mpw8p4gen80z8g8baz"); // v = GD_rank(g)[rk].v[j]; +UNSUPPORTED("aby82dr89m0xbcj8mya7f9fvx"); // if (v == n) { +UNSUPPORTED("5494ozi7uqin7n7xlbkqrsahd"); // for (j++; j < GD_rank(g)[rk].n; j++) { +UNSUPPORTED("a4l7560unq1yw14pck0v0yo6x"); // GD_rank(g)[rk].v[j-1] = GD_rank(g)[rk].v[j]; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8pdkxsqmvoce243jar5hwxl3u"); // GD_rank(g)[rk].n--; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cytanc5i1hmu0ag0vz4awfpi"); // assert (v == n); /* if found */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 xgvyh3kinj6cbnknb5oo9qfr +// static void removeFill (Agraph_t * g) +public static Object removeFill(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("8asq16rjvm285smlce6dul5nq"); // removeFill (Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ci2zh69w6nhi0q816i1ixuy9k"); // Agnode_t* n; +UNSUPPORTED("167at4ws3rrdv3znbvpsnb83o"); // Agnode_t* nxt; +UNSUPPORTED("22j86kdb5hbziiedfsspj3ipn"); // Agraph_t* sg = agsubg (g, "_new_rank", 0); +UNSUPPORTED("1pjx7ke9o4h5tgq0cs9jfui7j"); // if (!sg) return; +UNSUPPORTED("5sms8ok354044bziyaq1kfv93"); // for (n = agfstnode(sg); n; n = nxt) { +UNSUPPORTED("18crodqmo1f1apt7bwq0mv72m"); // nxt = agnxtnode(sg, n); +UNSUPPORTED("227ays2g6u04e210i8wp3jntu"); // delete_fast_node (g, n); +UNSUPPORTED("2tp9t78wzq032fbm3msk2gpfx"); // remove_from_rank (g, n); +UNSUPPORTED("cyyixtb6lqfain86edffcd92b"); // dot_cleanup_node (n); +UNSUPPORTED("3xjgsp211uvaug1aa3mvpdlnc"); // agdelnode(g, n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9ar3yxaq5s0lagg5bw59suv8u"); // agdelsubg (g, sg); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 63o8ieaetc5apjocrd74fobt0 +// static void attach_phase_attrs (Agraph_t * g, int maxphase) +public static Object attach_phase_attrs(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("adogsvx2s8kkwixbfl53zj175"); // attach_phase_attrs (Agraph_t * g, int maxphase) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("28snkvv05tay2b94o220j0rkx"); // Agsym_t* rk = agattr(g,AGNODE,"rank",""); +UNSUPPORTED("2mf6hpet62ccb0nfggxptz459"); // Agsym_t* order = agattr(g,AGNODE,"order",""); +UNSUPPORTED("ci2zh69w6nhi0q816i1ixuy9k"); // Agnode_t* n; +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("7wq24g054kmx3aw25vk5ksj4"); // for (n = agfstnode(g); n; n = agnxtnode(g,n)) { +UNSUPPORTED("16p5t5iyomfedg6du3xoszhzq"); // if (maxphase >= 1) { +UNSUPPORTED("bwgz5xhm64nl5wtnj9vfs1rx7"); // sprintf(buf, "%d", ND_rank(n)); +UNSUPPORTED("42xwkqdgcponmubqyxg876oo6"); // agxset(n,rk,buf); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("93x84236b3xx5glpnx5xseeg0"); // if (maxphase >= 2) { +UNSUPPORTED("dt1ra0nrgwwdbm8fmxvgcz16x"); // sprintf(buf, "%d", ND_order(n)); +UNSUPPORTED("5e6vrutroh3qimffd0rioyhnz"); // agxset(n,order,buf); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7t18nggek2s9vvb5opwqa8rwr +// static void dotLayout(Agraph_t * g) +public static void dotLayout(Agraph_s g) { +ENTERING("7t18nggek2s9vvb5opwqa8rwr","dotLayout"); +try { + aspect_t aspect = (aspect_t) Memory.malloc(aspect_t.class); + aspect_t asp; + int maxphase = late_int(g, (agattr(g,AGRAPH,new CString("phase"),null)), -1, 1); + setEdgeType (g, (5 << 1)); + asp = setAspect (g, aspect); + dot_init_subg(g,g); + dot_init_node_edge(g); + do { + dot_rank(g, asp); + if (maxphase == 1) { + attach_phase_attrs (g, 1); + return; + } + if (aspect.getBoolean("badGraph")) { +UNSUPPORTED("1yu5j8tk43i6jlmu8wk9jks15"); // agerr(AGWARN, "dot does not support the aspect attribute for disconnected graphs or graphs with clusters\n"); +UNSUPPORTED("5uwp9z6jkv5uc30iyfszyg6dw"); // asp = NULL; +UNSUPPORTED("28kbszyxsjoj03gb134ov4hag"); // aspect.nextIter = 0; + } + dot_mincross(g, (asp != null)); + if (maxphase == 2) { + attach_phase_attrs (g, 2); + return; + } + dot_position(g, asp); + if (maxphase == 3) { + attach_phase_attrs (g, 2); /* positions will be attached on output */ + return; + } + aspect.setInt("nPasses", aspect.getInt("nPasses") -1); + } while (aspect.getInt("nextIter")!=0 && aspect.getInt("nPasses")!=0); + if ((GD_flags(g) & (1 << 4))!=0) + removeFill (g); + dot_sameports(g); + dot_splines(g); + if (mapbool(agget(g, new CString("compound")))) + dot_compoundEdges(g); +} finally { +LEAVING("7t18nggek2s9vvb5opwqa8rwr","dotLayout"); +} +} + + + + +//3 j18uqz16uc5895o8w92sc8us +// static void initSubg (Agraph_t* sg, Agraph_t* g) +public static Object initSubg(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("dxv1kymai2xe3m4wblwapgffu"); // initSubg (Agraph_t* sg, Agraph_t* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3oolj8gqkndhoy95ebyjmjt0w"); // agbindrec(sg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); +UNSUPPORTED("2um641xaifqq107czm0htblc3"); // GD_drawing(sg) = (layout_t*)zmalloc(sizeof(layout_t)); +UNSUPPORTED("bfocldqmll6ddnmq3h3ci6njt"); // GD_drawing(sg)->quantum = GD_drawing(g)->quantum; +UNSUPPORTED("7cnwfvm4lswn7kvucss74krd3"); // GD_drawing(sg)->dpi = GD_drawing(g)->dpi; +UNSUPPORTED("7kbbs52ycpyuytqi61m5vme4c"); // GD_gvc(sg) = GD_gvc (g); +UNSUPPORTED("8flpf5avt4eg89sc16bgp9v13"); // GD_charset(sg) = GD_charset (g); +UNSUPPORTED("d9o7bxs9hl0r5ma0lt9oejmqv"); // GD_rankdir2(sg) = GD_rankdir2 (g); +UNSUPPORTED("74762qecxnstp743fwt31hk0p"); // GD_nodesep(sg) = GD_nodesep(g); +UNSUPPORTED("b29jhl6zjh8f8jqfb6okoixby"); // GD_ranksep(sg) = GD_ranksep(g); +UNSUPPORTED("bctcse1zj9vx2p0in9p4jhso3"); // GD_fontnames(sg) = GD_fontnames(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9pe0e6i01ks2zju1xjzgg39v1 +// static void attachPos (Agraph_t* g) +public static Object attachPos(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("d606brtp0hf4k8bamafqhu08b"); // attachPos (Agraph_t* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8fmu9hadea4uw8fwzoexoxab"); // node_t* np; +UNSUPPORTED("5cl2cj5wj7w1zr7qjww0s4cdf"); // double* ps = (double*)zmalloc((2*agnnodes(g))*sizeof(double)); +UNSUPPORTED("73rfwkv8ws65l7qgnz7jw27gf"); // for (np = agfstnode(g); np; np = agnxtnode(g, np)) { +UNSUPPORTED("7tbl6es7oks3vntqoetg24xa4"); // ND_pos(np) = ps; +UNSUPPORTED("9qwq8ll4gb28hun94xos9i4ud"); // ps[0] = ((ND_coord(np).x)/(double)72); +UNSUPPORTED("5z9ztec30pze3mzecneza61qq"); // ps[1] = ((ND_coord(np).y)/(double)72); +UNSUPPORTED("aeuy5zibx9et1ncwcqwlr3s3m"); // ps += 2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eufhyu2dccn1mleg8a43s9k2h +// static void resetCoord (Agraph_t* g) +public static Object resetCoord(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("caofcucw710wwaiwfz4650zsz"); // resetCoord (Agraph_t* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7ds7ppzwt5kjihc3hp8q0ncyl"); // node_t* np = agfstnode(g); +UNSUPPORTED("5s8nx20pwknmsow15z16muyab"); // double* sp = ND_pos(np); +UNSUPPORTED("5u1fte9td0znzxeayi62ozq8a"); // double* ps = sp; +UNSUPPORTED("73rfwkv8ws65l7qgnz7jw27gf"); // for (np = agfstnode(g); np; np = agnxtnode(g, np)) { +UNSUPPORTED("8p3hwwbq7seyn0wpf7llgw1xd"); // ND_pos(np) = 0; +UNSUPPORTED("a33fx4q39yal0dnv915x71zia"); // ND_coord(np).x = ((ps[0])*(double)72); +UNSUPPORTED("avms8890ml5c9jclp66fpto3x"); // ND_coord(np).y = ((ps[1])*(double)72); +UNSUPPORTED("aeuy5zibx9et1ncwcqwlr3s3m"); // ps += 2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("btsriptlygrzlk6ojhvss234j"); // free (sp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 nedairhdof6qkmjjoh4h68zy +// static void doDot (Agraph_t* g) +public static void doDot(Agraph_s g) { +ENTERING("nedairhdof6qkmjjoh4h68zy","doDot"); +try { + Agraph_s ccs[]; + Agraph_s sg; + int ncc; + int i; + pack_info pinfo = (pack_info) Memory.malloc(pack_info.class); + int Pack = getPack(g, -1, 8); + int mode = getPackModeInfo (g, enumAsInt(pack_mode.class, "l_undef"), pinfo); + getPackInfo(g, enumAsInt(pack_mode.class, "l_node"), 8, pinfo); + if ((mode == enumAsInt(pack_mode.class, "l_undef")) && (Pack < 0)) { + /* No pack information; use old dot with components + * handled during layout + */ + dotLayout(g); + } else { +UNSUPPORTED("952usp51fee2pbidl2frwpq2x"); // /* fill in default values */ +UNSUPPORTED("7d8flcn5zht92nop46f168hf9"); // if (mode == l_undef) +UNSUPPORTED("bf04f2a6do2dovxgq57ta3qz5"); // pinfo.mode = l_node; +UNSUPPORTED("7l7lph3yd7o3jelejupsiytnc"); // else if (Pack < 0) +UNSUPPORTED("7odp6lwv29g4nwpfvqt8hkmve"); // Pack = 8; +UNSUPPORTED("au4kpvl0egq3dt8hlmqnad61o"); // pinfo.margin = Pack; +UNSUPPORTED("6o6lvrnsp1zkqdkduwrfetrrm"); // pinfo.fixed = 0; +UNSUPPORTED("7ijhbsssflu2oty986iwhi5u7"); // /* components using clusters */ +UNSUPPORTED("axesx20t6oyprzdzjz5cwneq4"); // ccs = cccomps(g, &ncc, 0); +UNSUPPORTED("edukq9g8egufczs6ja3h99k6a"); // if (ncc == 1) { +UNSUPPORTED("aj3wrqm1ouyaocsn56geghko0"); // dotLayout(g); +UNSUPPORTED("2pkescmk4qojc8cqt3wzo8jkp"); // } else if ((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->drawing)->ratio_kind == R_NONE) { +UNSUPPORTED("295yqzsqueggcx71mcuv1zy7t"); // pinfo.doSplines = 1; +UNSUPPORTED("3rfcnwowz3h58n92j7igzwap0"); // for (i = 0; i < ncc; i++) { +UNSUPPORTED("6n1wgj9rnpi5u0c1f6mo7hvdr"); // sg = ccs[i]; +UNSUPPORTED("9f5l1z5fur3bn6wlzykztsrr5"); // initSubg (sg, g); +UNSUPPORTED("boery4d5nv4jssiy0y3mf2yf7"); // dotLayout (sg); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ahr97rgrh96az7iroebb6p14f"); // attachPos (g); +UNSUPPORTED("1eeqkm1855z53jwep9ukxptxa"); // packSubgraphs(ncc, ccs, g, &pinfo); +UNSUPPORTED("5jevnxwr3ejh3o6i1n3b15oyz"); // resetCoord (g); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("3dnz4esjw60s265perisqld8n"); // /* Not sure what semantics should be for non-trivial ratio +UNSUPPORTED("9752lfn24j9vhkz6y8fvyvpop"); // * attribute with multiple components. +UNSUPPORTED("cxv608avcmjij1ltc81ac9zp0"); // * One possibility is to layout nodes, pack, then apply the ratio +UNSUPPORTED("71ykqx29qwldoh9wf4e85xh7u"); // * adjustment. We would then have to re-adjust all positions. +UNSUPPORTED("29edlge3wqyp1gs0vymtr5700"); // */ +UNSUPPORTED("aj3wrqm1ouyaocsn56geghko0"); // dotLayout(g); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cjjlbx1oxw3twss3vlotij507"); // for (i = 0; i < ncc; i++) { +UNSUPPORTED("dc0uduk2687c8n6qn7y3y0aph"); // free ((((Agraphinfo_t*)(((Agobj_t*)(ccs[i]))->data))->drawing)); +UNSUPPORTED("6lefivq8plsiwa47ucvy1ze1a"); // agdelete(g, ccs[i]); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5eru5cerydhchm7ojmgdlkv9y"); // free(ccs); + } +} finally { +LEAVING("nedairhdof6qkmjjoh4h68zy","doDot"); +} +} + + + + +//3 euvc3uoksq3e24augkwebfkcv +// void dot_layout(Agraph_t * g) +public static void dot_layout(Agraph_s g) { +ENTERING("euvc3uoksq3e24augkwebfkcv","dot_layout"); +try { + if (agnnodes(g)!=0) doDot (g); + dotneato_postprocess(g); +} finally { +LEAVING("euvc3uoksq3e24augkwebfkcv","dot_layout"); +} +} + + + + +//3 ca52dadcp7m8x0bqhaw4tvtaw +// Agraph_t * dot_root (void* p) +public static Agraph_s dot_root(__ptr__ p) { +ENTERING("ca52dadcp7m8x0bqhaw4tvtaw","dot_root"); +try { + return GD_dotroot(agroot(p)); +} finally { +LEAVING("ca52dadcp7m8x0bqhaw4tvtaw","dot_root"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/dotsplines__c.java plantuml-8039/src/gen/lib/dotgen/dotsplines__c.java --- plantuml-8024/src/gen/lib/dotgen/dotsplines__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/dotsplines__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,3173 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.edge__c.agfstout; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agnxtout; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.node__c.agfstnode; +import static gen.lib.cgraph.node__c.agnxtnode; +import static gen.lib.cgraph.obj__c.agraphof; +import static gen.lib.common.memory__c.gmalloc; +import static gen.lib.common.memory__c.zmalloc; +import static gen.lib.common.routespl__c.makeStraightEdge; +import static gen.lib.common.routespl__c.routepolylines; +import static gen.lib.common.routespl__c.routesplines; +import static gen.lib.common.routespl__c.routesplinesinit; +import static gen.lib.common.routespl__c.routesplinesterm; +import static gen.lib.common.routespl__c.simpleSplineRoute; +import static gen.lib.common.splines__c.add_box; +import static gen.lib.common.splines__c.beginpath; +import static gen.lib.common.splines__c.clip_and_install; +import static gen.lib.common.splines__c.endpath; +import static gen.lib.common.splines__c.getsplinepoints; +import static gen.lib.common.splines__c.makeSelfEdge; +import static gen.lib.common.utils__c.updateBB; +import static gen.lib.dotgen.cluster__c.mark_lowclusters; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.LOG2; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.function; +import static smetana.core.JUtils.qsort; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtils.sizeof_starstar_empty; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ABS; +import static smetana.core.Macro.AGSEQ; +import static smetana.core.Macro.ALLOC_empty; +import static smetana.core.Macro.BETWEEN; +import static smetana.core.Macro.ED_adjacent; +import static smetana.core.Macro.ED_edge_type; +import static smetana.core.Macro.ED_head_port; +import static smetana.core.Macro.ED_label; +import static smetana.core.Macro.ED_spl; +import static smetana.core.Macro.ED_tail_port; +import static smetana.core.Macro.ED_to_orig; +import static smetana.core.Macro.ED_to_virt; +import static smetana.core.Macro.ED_tree_index; +import static smetana.core.Macro.GD_bb; +import static smetana.core.Macro.GD_flags; +import static smetana.core.Macro.GD_flip; +import static smetana.core.Macro.GD_has_labels; +import static smetana.core.Macro.GD_maxrank; +import static smetana.core.Macro.GD_minrank; +import static smetana.core.Macro.GD_nlist; +import static smetana.core.Macro.GD_nodesep; +import static smetana.core.Macro.GD_rank; +import static smetana.core.Macro.GD_ranksep; +import static smetana.core.Macro.MAKEFWDEDGE; +import static smetana.core.Macro.MAX; +import static smetana.core.Macro.MIN; +import static smetana.core.Macro.M_PI; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_alg; +import static smetana.core.Macro.ND_clust; +import static smetana.core.Macro.ND_coord; +import static smetana.core.Macro.ND_flat_out; +import static smetana.core.Macro.ND_ht; +import static smetana.core.Macro.ND_in; +import static smetana.core.Macro.ND_label; +import static smetana.core.Macro.ND_lw; +import static smetana.core.Macro.ND_mval; +import static smetana.core.Macro.ND_next; +import static smetana.core.Macro.ND_node_type; +import static smetana.core.Macro.ND_order; +import static smetana.core.Macro.ND_other; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.ND_rank; +import static smetana.core.Macro.ND_rw; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.ROUND; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agedgeinfo_t; +import h.Agedgepair_s; +import h.Agnode_s; +import h.Agraph_s; +import h.Ppoly_t; +import h.attr_state_t; +import h.bezier; +import h.boxf; +import h.path; +import h.pathend_t; +import h.pointf; +import h.port; +import h.spline_info_t; +import h.splines; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__array_of_struct__; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class dotsplines__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 8vvgiozsykdn0hhbvaem6lifn +// static boxf boxes[1000] +//private static __array_of_struct__ boxes = __array_of_struct__.malloc(boxf.class, 1000); + + + +//3 dobhmc46zwtvv8rg3ywntl91j +// static edge_t* getmainedge(edge_t * e) +public static Agedge_s getmainedge(Agedge_s e) { +ENTERING("dobhmc46zwtvv8rg3ywntl91j","getmainedge"); +try { + Agedge_s le = e; + while (ED_to_virt(le)!=null) + le = ED_to_virt(le); + while (ED_to_orig(le)!=null) + le = ED_to_orig(le); + return le; +} finally { +LEAVING("dobhmc46zwtvv8rg3ywntl91j","getmainedge"); +} +} + + + + +//3 ddeny5ht7w8b16ztj5zt840ld +// static boolean spline_merge(node_t * n) +public static boolean spline_merge(Agnode_s n) { +ENTERING("ddeny5ht7w8b16ztj5zt840ld","spline_merge"); +try { + return ((ND_node_type(n) == 1) + && ((ND_in(n).getInt("size") > 1) || (ND_out(n).getInt("size") > 1))); +} finally { +LEAVING("ddeny5ht7w8b16ztj5zt840ld","spline_merge"); +} +} + + + + +//3 36ofw2qfqlh5ci8gc8cfkqgg3 +// static boolean swap_ends_p(edge_t * e) +public static boolean swap_ends_p(Agedge_s e) { +ENTERING("36ofw2qfqlh5ci8gc8cfkqgg3","swap_ends_p"); +try { + while (ED_to_orig(e)!=null) + e = ED_to_orig(e); + if (ND_rank(aghead(e)) > ND_rank(agtail(e))) + return false; + if (ND_rank(aghead(e)) < ND_rank(agtail(e))) + return NOT(false); + if (ND_order(aghead(e)) >= ND_order(agtail(e))) + return false; + return NOT(false); +} finally { +LEAVING("36ofw2qfqlh5ci8gc8cfkqgg3","swap_ends_p"); +} +} + + +//1 300wnvw9sndobgke752j9u139 +// static splineInfo sinfo = +/*static final __struct__ sinfo = __struct__.from(splineInfo.class); +static { + sinfo.setPtr("swapEnds", function(dotsplines__c.class, "swap_ends_p")); + sinfo.setPtr("splineMerge", function(dotsplines__c.class, "spline_merge")); +}*/ + + + + +//3 3krohso3quojiv4fveh1en7o6 +// int portcmp(port p0, port p1) +public static int portcmp(final __struct__ p0, final __struct__ p1) { +// WARNING!! STRUCT +return portcmp_w_(p0.copy(), p1.copy()); +} +private static int portcmp_w_(final __struct__ p0, final __struct__ p1) { +ENTERING("3krohso3quojiv4fveh1en7o6","portcmp"); +try { + int rv; + if (p1.getBoolean("defined") == false) + return (p0.getBoolean("defined") ? 1 : 0); + if (p0.getBoolean("defined") == false) + return -1; + rv = (int) (p0.getStruct("p").getDouble("x") - p1.getStruct("p").getDouble("x")); + if (rv == 0) + rv = (int) (p0.getStruct("p").getDouble("y") - p1.getStruct("p").getDouble("y")); + return rv; +} finally { +LEAVING("3krohso3quojiv4fveh1en7o6","portcmp"); +} +} + + + + +//3 10wbtt4gwnxgqutinpj4ymjpk +// static void swap_bezier(bezier * old, bezier * new) +public static void swap_bezier(__ptr__ old, __ptr__ new_) { +ENTERING("10wbtt4gwnxgqutinpj4ymjpk","swap_bezier"); +try { + __ptr__ list; + __ptr__ lp; + __ptr__ olp; + int i, sz; + sz = old.getInt("size"); + list = gmalloc(sizeof(pointf.class, sz)); + lp = list; + olp = old.getArrayOfPtr("list").plus(sz - 1).asPtr(); + for (i = 0; i < sz; i++) { /* reverse list of points */ + lp.getStruct().____(olp.getStruct()); + lp=lp.plus(1); + olp=olp.plus(-1); + } + new_.setPtr("list", list); + new_.setInt("size", sz); + new_.setInt("sflag", old.getInt("eflag")); + new_.setInt("eflag", old.getInt("sflag")); + new_.setStruct("sp", old.getStruct("ep")); + new_.setStruct("ep", old.getStruct("sp")); +} finally { +LEAVING("10wbtt4gwnxgqutinpj4ymjpk","swap_bezier"); +} +} + + + + +//3 3256l3e2huarsy29dd97vqj85 +// static void swap_spline(splines * s) +public static void swap_spline(splines s) { +ENTERING("3256l3e2huarsy29dd97vqj85","swap_spline"); +try { + __ptr__ list; + __ptr__ lp; + __ptr__ olp; + int i, sz; + sz = s.getInt("size"); + list = gmalloc(sizeof(bezier.class, sz)); + lp = list; + olp = s.getArrayOfPtr("list").plus(sz - 1).asPtr(); + for (i = 0; i < sz; i++) { /* reverse and swap list of beziers */ + swap_bezier(olp, lp); + olp = olp.plus(-1); + lp = lp.plus(1); + } + /* free old structures */ + for (i = 0; i < sz; i++) + Memory.free(s.getArrayOfPtr("list").plus(i).getPtr().getArrayOfPtr("list")); + Memory.free(s.getArrayOfPtr("list")); + s.setPtr("list", list); +} finally { +LEAVING("3256l3e2huarsy29dd97vqj85","swap_spline"); +} +} + + + + +//3 dgkssqjj566ifra0xy7m46qsb +// static void edge_normalize(graph_t * g) +public static void edge_normalize(Agraph_s g) { +ENTERING("dgkssqjj566ifra0xy7m46qsb","edge_normalize"); +try { + Agedge_s e; + Agnode_s n; + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) { + for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) { + if ((Boolean)Z._().sinfo.call("swapEnds", e) && ED_spl(e)!=null) + swap_spline(ED_spl(e)); + } + } +} finally { +LEAVING("dgkssqjj566ifra0xy7m46qsb","edge_normalize"); +} +} + + + + +//3 bwzdgdea9suuagzueyw8ztx42 +// static void resetRW (graph_t * g) +public static Object resetRW(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("c4vqsmfolc1meewxoebfkyppx"); // resetRW (graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7ma9kdgag30w5ofv1niitxbro"); // node_t* n; +UNSUPPORTED("7wq24g054kmx3aw25vk5ksj4"); // for (n = agfstnode(g); n; n = agnxtnode(g,n)) { +UNSUPPORTED("b83f20tdode2lz5a49mhmn9ei"); // if (ND_other(n).list) { +UNSUPPORTED("ez6pf4w4vi7z6fqq43v5i3gpv"); // double tmp = ND_rw(n); +UNSUPPORTED("24qsh566odunv14qzj2zan7bz"); // ND_rw(n) = ND_mval(n); +UNSUPPORTED("cgxuqwflawrd9e6dmnsh3sbwa"); // ND_mval(n) = tmp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9co1bgu5603fx30juwb01faf +// static void setEdgeLabelPos (graph_t * g) +public static Object setEdgeLabelPos(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("7y94r9t4hf6d0ltbie4f323al"); // setEdgeLabelPos (graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7ma9kdgag30w5ofv1niitxbro"); // node_t* n; +UNSUPPORTED("1o9j4rz3dizwsgefis1axd6uw"); // textlabel_t* l; +UNSUPPORTED("cbzhyr6lytrowd5gxn3tg000a"); // /* place regular edge labels */ +UNSUPPORTED("8g62mxpap4eeua2lkn9a1iosi"); // for (n = GD_nlist(g); n; n = ND_next(n)) { +UNSUPPORTED("53rvntgqit26uu0ydhawavshp"); // if (ND_node_type(n) == 1) { +UNSUPPORTED("7sijld2wh9ulkpkumhl6dqqaj"); // if (ND_alg(n)) { // label of non-adjacent flat edge +UNSUPPORTED("5ccfgna84rl1jtgmuk8nbffqy"); // edge_t* fe = (edge_t*)ND_alg(n); +UNSUPPORTED("8rofnso8jnaa77ukvfpwruvyx"); // assert ((l = ED_label(fe))); +UNSUPPORTED("ak1kh1v4u9s5kof1svwbc6ssr"); // l->pos = ND_coord(n); +UNSUPPORTED("9ehteylkrnipypq5s9c6jjm67"); // l->set = NOT(0); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("15c8rehrm31gtqtwrj9r863k5"); // else if ((l = ND_label(n))) {// label of regular edge +UNSUPPORTED("3i64wd6mr21h7x0hadumabd5r"); // place_vnlabel(n); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("mlknwb70zhu4paqbncp6enq9"); // if (l) updateBB(g, l); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6agx6m2qof9lg57co232lwakj +// static void _dot_splines(graph_t * g, int normalize) +static void _dot_splines(Agraph_s g, int normalize) +{ +ENTERING("6agx6m2qof9lg57co232lwakj","_dot_splines"); +try { + int i, j, k, n_nodes, n_edges, ind, cnt; + Agnode_s n; + final __struct__ fwdedgeai = __struct__.from(Agedgeinfo_t.class), fwdedgebi = __struct__.from(Agedgeinfo_t.class); + final __struct__ fwdedgea = __struct__.from(Agedgepair_s.class), fwdedgeb = __struct__.from(Agedgepair_s.class); + Agedge_s e, e0, e1, ea, eb, le0, le1; + __ptr__ edges; + path P; + final __struct__ sd = __struct__.from(spline_info_t.class); + int et = (GD_flags(g) & (7 << 1)); + fwdedgea.getStruct("out").getStruct("base").setPtr("data", fwdedgeai.amp()); + fwdedgeb.getStruct("out").getStruct("base").setPtr("data", fwdedgebi.amp()); + if (et == (0 << 1)) return; + if (et == (2 << 1)) { + resetRW (g); + if ((GD_has_labels(g) & (1 << 0))!=0) { +UNSUPPORTED("4k888z8ymdp2b653twxc1ugbu"); // agerr (AGWARN, "edge labels with splines=curved not supported in dot - use xlabels\n"); + } + for (n = agfstnode (g); n!=null; n = agnxtnode(g, n)) { + for (e = agfstout(g, n); e!=null; e = agnxtout(g,e)) { + makeStraightEdge(g, e, et, Z._().sinfo); + } + } +UNSUPPORTED("46btiag50nczzur103eqhjcup"); // goto finish; + } + mark_lowclusters(g); + if (routesplinesinit()!=0) return; + P = (path) zmalloc(sizeof(path.class)); + /* FlatHeight = 2 * GD_nodesep(g); */ + sd.setInt("Splinesep", GD_nodesep(g) / 4); + sd.setInt("Multisep", GD_nodesep(g)); + edges = zmalloc(sizeof_starstar_empty(Agedge_s.class, 128)); + /* compute boundaries and list of splines */ + sd.setInt("RightBound", 0); + sd.setInt("LeftBound", 0); + n_edges = n_nodes = 0; + for (i = GD_minrank(g); i <= GD_maxrank(g); i++) { + n_nodes += GD_rank(g).plus(i).getInt("n"); + if ((n = (Agnode_s) GD_rank(g).plus(i).getArrayOfPtr("v").plus(0).getPtr())!=null) + sd.setInt("LeftBound", (int)MIN(sd.getInt("LeftBound"), (ND_coord(n).getDouble("x") - ND_lw(n)))); + if (GD_rank(g).plus(i).getInt("n")!=0 && (n = (Agnode_s) GD_rank(g).plus(i).getArrayOfPtr("v").plus(GD_rank(g).plus(i).getInt("n") - 1).getPtr())!=null) + sd.setInt("RightBound", (int)MAX(sd.getInt("RightBound"), (ND_coord(n).getDouble("x") + ND_rw(n)))); + sd.setInt("LeftBound", sd.getInt("LeftBound") - 16); + sd.setInt("RightBound", sd.getInt("RightBound") + 16); + for (j = 0; j < GD_rank(g).plus(i).getInt("n"); j++) { + n = (Agnode_s) GD_rank(g).plus(i).getArrayOfPtr("v").plus(j).getPtr(); + /* if n is the label of a flat edge, copy its position to + * the label. + */ + if (ND_alg(n)!=null) { + Agedge_s fe = (Agedge_s) ND_alg(n); + assert (ED_label(fe)!=null); + ED_label(fe).setStruct("pos", ND_coord(n)); + ED_label(fe).setBoolean("set", NOT(false)); + } + if ((ND_node_type(n) != 0) && + ((Boolean)Z._().sinfo.call("splineMerge", n) == false)) + continue; + for (k = 0; (e = (Agedge_s) ND_out(n).getArrayOfPtr("list").plus(k).getPtr())!=null; k++) { + if ((ED_edge_type(e) == 4) + || (ED_edge_type(e) == 6)) + continue; + setflags(e, 1, 16, 64); + edges.plus(n_edges++).setPtr(e); + if (n_edges % 128 == 0) + edges = ALLOC_empty (n_edges + 128, edges, Agedge_s.class); + } + if (ND_flat_out(n).getPtr("list")!=null) + for (k = 0; (e = (Agedge_s) ND_flat_out(n).getArrayOfPtr("list").plus(k).getPtr())!=null; k++) { + setflags(e, 2, 0, 128); + edges.plus(n_edges++).setPtr(e); + if (n_edges % 128 == 0) + edges = ALLOC_empty (n_edges + 128, edges, Agedge_s.class); + } + if (ND_other(n).getPtr("list")!=null) { + /* In position, each node has its rw stored in mval and, + * if a node is part of a loop, rw may be increased to + * reflect the loops and associated labels. We restore + * the original value here. + */ + if (ND_node_type(n) == 0) { + double tmp = ND_rw(n); + ND_rw(n, ND_mval(n)); + ND_mval(n, tmp); + } + for (k = 0; (e = (Agedge_s) ND_other(n).getArrayOfPtr("list").plus(k).getPtr())!=null; k++) { + setflags(e, 0, 0, 128); + edges.plus(n_edges++).setPtr(e); + if (n_edges % 128 == 0) + edges = ALLOC_empty (n_edges + 128, edges, Agedge_s.class); + } + } + } + } + /* Sort so that equivalent edges are contiguous. + * Equivalence should basically mean that 2 edges have the + * same set {(tailnode,tailport),(headnode,headport)}, or + * alternatively, the edges would be routed identically if + * routed separately. + */ + LOG2("_dot_splines::n_edges="+n_edges); + qsort(edges, + n_edges, + sizeof(edges.plus(0)), + function(dotsplines__c.class, "edgecmp")); + /* FIXME: just how many boxes can there be? */ + P.setPtr("boxes", zmalloc(sizeof(boxf.class, n_nodes + 20 * 2 * 9))); + sd.setPtr("Rank_box", zmalloc(sizeof(boxf.class, i))); + if (et == (1 << 1)) { + /* place regular edge labels */ + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + if ((ND_node_type(n) == 1) && (ND_label(n)!=null)) { + place_vnlabel(n); + } + } + } + for (i = 0; i < n_edges;) { + boolean havePorts; + ind = i; + le0 = getmainedge((e0 = (Agedge_s) edges.plus(i++).getPtr())); + if (ED_tail_port(e0).getBoolean("defined") || ED_head_port(e0).getBoolean("defined")) { + havePorts = NOT(false); + ea = e0; + } else { + havePorts = false; + ea = le0; + } + if ((ED_tree_index(ea) & 32)!=0) { + MAKEFWDEDGE(fwdedgea.getStruct("out").amp(), ea); + ea = (Agedge_s) fwdedgea.getStruct("out").amp(); + } + for (cnt = 1; i < n_edges; cnt++, i++) { + if (NEQ(le0, (le1 = getmainedge((e1 = (Agedge_s) edges.plus(i).getPtr()))))) + break; + if (ED_adjacent(e0)!=0) continue; /* all flat adjacent edges at once */ + if (ED_tail_port(e1).getBoolean("defined") || ED_head_port(e1).getBoolean("defined")) { + if (N(havePorts)) break; + else + eb = e1; + } else { + if (havePorts) break; + else + eb = le1; + } + if ((ED_tree_index(eb) & 32)!=0) { + MAKEFWDEDGE(fwdedgeb.getStruct("out").amp(), eb); + eb = (Agedge_s) fwdedgeb.getStruct("out").amp(); + } + if (portcmp(ED_tail_port(ea), ED_tail_port(eb))!=0) + break; + if (portcmp(ED_head_port(ea), ED_head_port(eb))!=0) + break; + if ((ED_tree_index(e0) & 15) == 2 + && NEQ(ED_label(e0), ED_label(e1))) + break; + if ((ED_tree_index(edges.plus(i).getPtr()) & 64)!=0) /* Aha! -C is on */ + break; + } + if (EQ(agtail(e0), aghead(e0))) { + int b, sizey, r; + n = agtail(e0); + r = ND_rank(n); + if (r == GD_maxrank(g)) { + if (r > 0) + sizey = (int) (ND_coord(GD_rank(g).plus(r-1).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y") - ND_coord(n).getDouble("y")); + else + sizey = (int) ND_ht(n); + } + else if (r == GD_minrank(g)) { + sizey = (int)(ND_coord(n).getDouble("y") - ND_coord(GD_rank(g).plus(r+1).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y")); + } + else { + int upy = (int) (ND_coord(GD_rank(g).plus(r-1).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y") - ND_coord(n).getDouble("y")); + int dwny = (int) (ND_coord(n).getDouble("y") - ND_coord(GD_rank(g).plus(r+1).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y")); + sizey = MIN(upy, dwny); + } + makeSelfEdge(P, edges, ind, cnt, sd.getInt("Multisep"), sizey/2, Z._().sinfo.amp()); + for (b = 0; b < cnt; b++) { + e = (Agedge_s) edges.plus(ind+b).getPtr(); + if (ED_label(e)!=null) + updateBB(g, ED_label(e)); + } + } + else if (ND_rank(agtail(e0)) == ND_rank(aghead(e0))) { + make_flat_edge(g, sd.amp(), P, edges, ind, cnt, et); + } + else + make_regular_edge(g, sd.amp(), P, edges, ind, cnt, et); + } + /* place regular edge labels */ + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + if ((ND_node_type(n) == 1) && (ND_label(n))!=null) { + place_vnlabel(n); + updateBB(g, ND_label(n)); + } + } + /* normalize splines so they always go from tail to head */ + /* place_portlabel relies on this being done first */ + if (normalize!=0) + edge_normalize(g); +finish : + /* vladimir: place port labels */ + /* FIX: head and tail labels are not part of cluster bbox */ + if ((Z._().E_headlabel!=null || Z._().E_taillabel!=null) && (Z._().E_labelangle!=null || Z._().E_labeldistance!=null)) { +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("54jm4bbgzyl0txauszo1mappu"); // if (E_headlabel) { +UNSUPPORTED("dw8yu56thd0wpolmtby8r5doo"); // for (e = agfstin(g, n); e; e = agnxtin(g, e)) +UNSUPPORTED("4h39n1vkqyqszgmg2o7d2pw7z"); // if (ED_head_label(AGMKOUT(e))) { +UNSUPPORTED("ex7h0x60y0l4oi3dsqg7sfk1t"); // place_portlabel(AGMKOUT(e), NOT(0)); +UNSUPPORTED("9u960ou1xs0cdsdn0qe8a13ye"); // updateBB(g, ED_head_label(AGMKOUT(e))); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("cqi8doquf015wo1bw8on36qct"); // if (E_taillabel) { +UNSUPPORTED("6gnq0yj07udpwxbuc86k8yysb"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("ejz8yrj8mh0l0gdl5zeaht1ex"); // if (ED_tail_label(e)) { +UNSUPPORTED("9pdg7peez077ldl84zfh73o1w"); // if (place_portlabel(e, 0)) +UNSUPPORTED("6jup6d9gfnx4b1wptmtw09n6w"); // updateBB(g, ED_tail_label(e)); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } + /* end vladimir */ + if (et != (2 << 1)) { + Memory.free(edges); + Memory.free(P.getPtr("boxes")); + Memory.free(P); + Memory.free(sd.getPtr("Rank_box")); + routesplinesterm(); + } + Z._().State = 1; + Z._().EdgeLabelsDone = 1; +} finally { +LEAVING("6agx6m2qof9lg57co232lwakj","_dot_splines"); +} +} + + + + +//3 5n306wbdfjbfnimdo9lg6jjaa +// void dot_splines(graph_t * g) +public static void dot_splines(Agraph_s g) { +ENTERING("5n306wbdfjbfnimdo9lg6jjaa","dot_splines"); +try { + _dot_splines (g, 1); +} finally { +LEAVING("5n306wbdfjbfnimdo9lg6jjaa","dot_splines"); +} +} + + + + +//3 8jja9ukzsq8tlb9yy7uzavg91 +// static void place_vnlabel(node_t * n) +public static void place_vnlabel(Agnode_s n) { +ENTERING("8jja9ukzsq8tlb9yy7uzavg91","place_vnlabel"); +try { + final __struct__ dimen = __struct__.from(pointf.class); + double width; + Agedge_s e; + if (ND_in(n).getInt("size") == 0) + return; /* skip flat edge labels here */ + for (e = (Agedge_s) ND_out(n).getArrayOfPtr("list").plus(0).getPtr(); ED_edge_type(e) != 0; + e = ED_to_orig(e)); + dimen.____(ED_label(e).getStruct("dimen")); + width = GD_flip(agraphof(n))!=0 ? dimen.getDouble("y") : dimen.getDouble("x"); + ED_label(e).getStruct("pos").setDouble("x", ND_coord(n).getDouble("x") + width / 2.0); + ED_label(e).getStruct("pos").setDouble("y", ND_coord(n).getDouble("y")); + ED_label(e).setBoolean("set", NOT(false)); +} finally { +LEAVING("8jja9ukzsq8tlb9yy7uzavg91","place_vnlabel"); +} +} + + + + +//3 598jn37hjkm7j0kcg2nmdvlwq +// static void setflags(edge_t *e, int hint1, int hint2, int f3) +public static void setflags(Agedge_s e, int hint1, int hint2, int f3) { +ENTERING("598jn37hjkm7j0kcg2nmdvlwq","setflags"); +try { + int f1, f2; + if (hint1 != 0) + f1 = hint1; + else { + if (EQ(agtail(e), aghead(e))) + if (ED_tail_port(e).getBoolean("defined") || ED_head_port(e).getBoolean("defined")) + f1 = 4; + else + f1 = 8; + else if (ND_rank(agtail(e)) == ND_rank(aghead(e))) + f1 = 2; + else + f1 = 1; + } + if (hint2 != 0) + f2 = hint2; + else { + if (f1 == 1) + f2 = (ND_rank(agtail(e)) < ND_rank(aghead(e))) ? 16 : 32; + else if (f1 == 2) + f2 = (ND_order(agtail(e)) < ND_order(aghead(e))) ? 16 : 32; + else /* f1 == SELF*EDGE */ + f2 = 16; + } + ED_tree_index(e, (f1 | f2 | f3)); +} finally { +LEAVING("598jn37hjkm7j0kcg2nmdvlwq","setflags"); +} +} + + + + +//3 1nf1s6wkn35ptjn884ii56fh +// static int edgecmp(edge_t** ptr0, edge_t** ptr1) +public static int edgecmp(__ptr__ ptr0, __ptr__ ptr1) { +ENTERING("1nf1s6wkn35ptjn884ii56fh","edgecmp"); +try { + final __struct__ fwdedgeai = __struct__.from(Agedgeinfo_t.class), fwdedgebi = __struct__.from(Agedgeinfo_t.class); + final __struct__ fwdedgea = __struct__.from(Agedgepair_s.class), fwdedgeb = __struct__.from(Agedgepair_s.class); + Agedge_s e0, e1, ea, eb, le0, le1; + int et0, et1, v0, v1, rv; + double t0, t1; + fwdedgea.getStruct("out").getStruct("base").setPtr("data", fwdedgeai.amp()); + fwdedgeb.getStruct("out").getStruct("base").setPtr("data", fwdedgebi.amp()); + e0 = (Agedge_s) ptr0.getPtr(); + e1 = (Agedge_s) ptr1.getPtr(); + et0 = ED_tree_index(e0) & 15; + et1 = ED_tree_index(e1) & 15; + if (et0 != et1) + return (et1 - et0); + le0 = getmainedge(e0); + le1 = getmainedge(e1); + t0 = ND_rank(agtail(le0)) - ND_rank(aghead(le0)); + t1 = ND_rank(agtail(le1)) - ND_rank(aghead(le1)); + v0 = ABS((int)t0); /* ugly, but explicit as to how we avoid equality tests on fp numbers */ + v1 = ABS((int)t1); + if (v0 != v1) + return (v0 - v1); + t0 = ND_coord(agtail(le0)).getDouble("x") - ND_coord(aghead(le0)).getDouble("x"); + t1 = ND_coord(agtail(le1)).getDouble("x") - ND_coord(aghead(le1)).getDouble("x"); + v0 = ABS((int)t0); + v1 = ABS((int)t1); + if (v0 != v1) + return (v0 - v1); + /* This provides a cheap test for edges having the same set of endpoints. */ + if (AGSEQ(le0) != AGSEQ(le1)) + return (AGSEQ(le0) - AGSEQ(le1)); + ea = (ED_tail_port(e0).getBoolean("defined") || ED_head_port(e0).getBoolean("defined")) ? e0 : le0; + if ((ED_tree_index(ea) & 32)!=0) { + MAKEFWDEDGE(fwdedgea.getStruct("out").amp(), ea); + ea = fwdedgea.getStruct("out").amp(); + } + eb = (ED_tail_port(e1).getBoolean("defined") || ED_head_port(e1).getBoolean("defined")) ? e1 : le1; + if ((ED_tree_index(eb) & 32)!=0) { + MAKEFWDEDGE(fwdedgeb.getStruct("out").amp(), eb); + eb = fwdedgeb.getStruct("out").amp(); + } + if ((rv = portcmp(ED_tail_port(ea), ED_tail_port(eb)))!=0) + return rv; + if ((rv = portcmp(ED_head_port(ea), ED_head_port(eb)))!=0) + return rv; + et0 = ED_tree_index(e0) & 192; + et1 = ED_tree_index(e1) & 192; + if (et0 != et1) + return (et0 - et1); + if (et0 == 2 && NEQ(ED_label(e0), ED_label(e1))) + UNSUPPORTED("return (int) (ED_label(e0) - ED_label(e1))"); + return (AGSEQ(e0) - AGSEQ(e1)); +} finally { +LEAVING("1nf1s6wkn35ptjn884ii56fh","edgecmp"); +} +} + + + + +//3 djq8tev8thshox7bob64vi0tf +// static void setState (graph_t* auxg, attr_state_t* attr_state) +public static Object setState(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("7ovh16jwyjc9wtu0rfxnlws9r"); // setState (graph_t* auxg, attr_state_t* attr_state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1ko3jd94xpoli03tk73ardy84"); // /* save state */ +UNSUPPORTED("3ibgalw3fchq736xx1ozbvh27"); // attr_state->E_constr = E_constr; +UNSUPPORTED("e9yatqfh98i71w3v1jcx1agi9"); // attr_state->E_samehead = E_samehead; +UNSUPPORTED("57rkvwknyk9urdhck24todttg"); // attr_state->E_sametail = E_sametail; +UNSUPPORTED("4y5i0lqx0ze46l88ehzdh2x1z"); // attr_state->E_weight = E_weight; +UNSUPPORTED("3yryq1e1hmam5hqciu93ywjj2"); // attr_state->E_minlen = E_minlen; +UNSUPPORTED("1n91lxusirg2v758j4v9o9hcg"); // attr_state->E_fontcolor = E_fontcolor; +UNSUPPORTED("1ssj9fq3o1sm21ggttj4r3mo0"); // attr_state->E_fontname = E_fontname; +UNSUPPORTED("45ntpz46gx7j2hfu2r6ceescw"); // attr_state->E_fontsize = E_fontsize; +UNSUPPORTED("6vxi0wxhhjg065ishw2vebsqv"); // attr_state->E_headclip = E_headclip; +UNSUPPORTED("aqu557ovwt2k4j894b5p9dssa"); // attr_state->E_headlabel = E_headlabel; +UNSUPPORTED("6shb2vynxxgck2x8e8oz63ye"); // attr_state->E_label = E_label; +UNSUPPORTED("84eq22wy1zlxwofo8cwwbddbb"); // attr_state->E_label_float = E_label_float; +UNSUPPORTED("czndn89byb90jujvx2sudb6d6"); // attr_state->E_labelfontcolor = E_labelfontcolor; +UNSUPPORTED("385rz6p4kom75dmgvepqmxlrq"); // attr_state->E_labelfontname = E_labelfontname; +UNSUPPORTED("397fs88n9xnlcqo4z8at7j66s"); // attr_state->E_labelfontsize = E_labelfontsize; +UNSUPPORTED("f2nu6sif9lmukmlj2um7gnxns"); // attr_state->E_tailclip = E_tailclip; +UNSUPPORTED("3ctu9gb3ojun885w9ymnch0er"); // attr_state->E_taillabel = E_taillabel; +UNSUPPORTED("qiafl7ru9bq54qol6lov5rgm"); // attr_state->E_xlabel = E_xlabel; +UNSUPPORTED("ap9hj5xd4dfmwws8egpgvk5ti"); // attr_state->N_height = N_height; +UNSUPPORTED("ctvaloqgyn45in0jdkkvdpf6g"); // attr_state->N_width = N_width; +UNSUPPORTED("75ey3ud905155tfmw9zapeawj"); // attr_state->N_shape = N_shape; +UNSUPPORTED("19bnzpge8znnwzna8ub6otjze"); // attr_state->N_style = N_style; +UNSUPPORTED("6242e8neunx553zs7jb52e2i3"); // attr_state->N_fontsize = N_fontsize; +UNSUPPORTED("1rjcall3fixy49t0s4bcdgoho"); // attr_state->N_fontname = N_fontname; +UNSUPPORTED("1bj2vtyz3gettntmktngyjv02"); // attr_state->N_fontcolor = N_fontcolor; +UNSUPPORTED("1mj5q5f1eft9otmsuyiadl54z"); // attr_state->N_label = N_label; +UNSUPPORTED("5lkkhmgpur2i2arkoxbpb8lse"); // attr_state->N_xlabel = N_xlabel; +UNSUPPORTED("3c9tzymzuj2wkftyepa2epzur"); // attr_state->N_showboxes = N_showboxes; +UNSUPPORTED("9urvz64idw6yth9938puegx1d"); // attr_state->N_ordering = N_ordering; +UNSUPPORTED("9wqn3lttroloie8t4urgw9dwl"); // attr_state->N_sides = N_sides; +UNSUPPORTED("7aovr97vmuic712quqt6n4gkd"); // attr_state->N_peripheries = N_peripheries; +UNSUPPORTED("dc9knw1esnnr7j77so6k8zblk"); // attr_state->N_skew = N_skew; +UNSUPPORTED("eoium8gqo2cgsjv87c20ixx5k"); // attr_state->N_orientation = N_orientation; +UNSUPPORTED("aq6is6cduc5wvclu1hjacuyk0"); // attr_state->N_distortion = N_distortion; +UNSUPPORTED("3w13k0cqxkk8gniu6ydy3qii6"); // attr_state->N_fixed = N_fixed; +UNSUPPORTED("32p2drvqb6h9n0118du912gv0"); // attr_state->N_nojustify = N_nojustify; +UNSUPPORTED("e2hsbuo1kd2fghtopje0lfp2b"); // attr_state->N_group = N_group; +UNSUPPORTED("74w0uzukx3derbgpgi60dzyyg"); // attr_state->State = State; +UNSUPPORTED("936fjorw02qiz50qpj7y6en2m"); // attr_state->G_ordering = G_ordering; +UNSUPPORTED("2l0v2tecrgmws3to99rcimxzm"); // E_constr = NULL; +UNSUPPORTED("93dfyiz6pxq59j6ujx97hdd0c"); // E_samehead = agattr(auxg,AGEDGE, "samehead", NULL); +UNSUPPORTED("7kovxag1wgr874sgxwpz7ls6a"); // E_sametail = agattr(auxg,AGEDGE, "sametail", NULL); +UNSUPPORTED("295z0g5v309fbrrdopfy66rf4"); // E_weight = agattr(auxg,AGEDGE, "weight", NULL); +UNSUPPORTED("3uo53r92k5fuzy9gb2i1k7612"); // if (!E_weight) +UNSUPPORTED("4oq1f4cnu0hk0xm34kx9m79le"); // E_weight = agattr (auxg,AGEDGE,"weight", ""); +UNSUPPORTED("aoqamti27wg8hvpyho5xmdc9"); // E_minlen = NULL; +UNSUPPORTED("8jzaf5sdfgbpqx8y0squconvr"); // E_fontcolor = NULL; +UNSUPPORTED("25csaeghkl1rd5cha609fm2vm"); // E_fontname = (agattr(auxg,AGEDGE,"fontname",NULL)); +UNSUPPORTED("d9ivs4hv5xdhsxwh8oz1dri02"); // E_fontsize = (agattr(auxg,AGEDGE,"fontsize",NULL)); +UNSUPPORTED("djpd3vd7suatk0n76mplhzog4"); // E_headclip = (agattr(auxg,AGEDGE,"headclip",NULL)); +UNSUPPORTED("8fy5jrgw22q72jvvjmqh6ajjb"); // E_headlabel = NULL; +UNSUPPORTED("93a15wlfj0tmijeeyd1qb12v6"); // E_label = (agattr(auxg,AGEDGE,"label",NULL)); +UNSUPPORTED("2l6gmyi1pz4cv9i29k4u3mpjf"); // E_label_float = (agattr(auxg,AGEDGE,"label_float",NULL)); +UNSUPPORTED("dcp5qxpq37yer9cipch7q2oc4"); // E_labelfontcolor = NULL; +UNSUPPORTED("133ni5qwdb96od0wcma7hj05h"); // E_labelfontname = (agattr(auxg,AGEDGE,"labelfontname",NULL)); +UNSUPPORTED("cq9n4kf29qgqy1ll6gandld7f"); // E_labelfontsize = (agattr(auxg,AGEDGE,"labelfontsize",NULL)); +UNSUPPORTED("2l9pqb0sug1sr8dlojy1gvik0"); // E_tailclip = (agattr(auxg,AGEDGE,"tailclip",NULL)); +UNSUPPORTED("9a173t42nyif5cx0ee6c4qos2"); // E_taillabel = NULL; +UNSUPPORTED("pu58ta2e8cevjt84brxtyecs"); // E_xlabel = NULL; +UNSUPPORTED("2p7j1fghgsib6tkic2cc1t601"); // N_height = (agattr(auxg,AGNODE,"height",NULL)); +UNSUPPORTED("49eok3z6e4piel4m6f7rk8fb6"); // N_width = (agattr(auxg,AGNODE,"width",NULL)); +UNSUPPORTED("8cyc904mtcb0zlwybzrqxujrv"); // N_shape = (agattr(auxg,AGNODE,"shape",NULL)); +UNSUPPORTED("1ggb495lty2zumaw3qh2d3ssd"); // N_style = NULL; +UNSUPPORTED("6hcb194pxn8upijardzdy3v2a"); // N_fontsize = (agattr(auxg,AGNODE,"fontsize",NULL)); +UNSUPPORTED("e1cg6m56w3uwo3m2dfdh71o5x"); // N_fontname = (agattr(auxg,AGNODE,"fontname",NULL)); +UNSUPPORTED("1gjzz1tv51zd3vsgyc6b8dfdz"); // N_fontcolor = NULL; +UNSUPPORTED("42y8wmut30tkdxrxdvh5v8xtz"); // N_label = (agattr(auxg,AGNODE,"label",NULL)); +UNSUPPORTED("7jni9lzv0nagk8mnil6vsgzpt"); // N_xlabel = NULL; +UNSUPPORTED("5hshk2a2mwuk7cjxsc4mzky7g"); // N_showboxes = NULL; +UNSUPPORTED("1j63bq1sarpj53iwvo4ynyeck"); // N_ordering = (agattr(auxg,AGNODE,"ordering",NULL)); +UNSUPPORTED("7yaoaugb8cqh7ksl8w4i4utlv"); // N_sides = (agattr(auxg,AGNODE,"sides",NULL)); +UNSUPPORTED("15x8xrchzah7wcc5ukej42hut"); // N_peripheries = (agattr(auxg,AGNODE,"peripheries",NULL)); +UNSUPPORTED("dcu49fws0uvo8falspy1lno4k"); // N_skew = (agattr(auxg,AGNODE,"skew",NULL)); +UNSUPPORTED("bvjg1ch1pmuvfhvf5ubyrqhl3"); // N_orientation = (agattr(auxg,AGNODE,"orientation",NULL)); +UNSUPPORTED("b67lzfds2wabbxqa4qaoj0iv8"); // N_distortion = (agattr(auxg,AGNODE,"distortion",NULL)); +UNSUPPORTED("yet2s8h61hoih7vba5lhvbn"); // N_fixed = (agattr(auxg,AGNODE,"fixed",NULL)); +UNSUPPORTED("dv9ccs2r6bgkfuzvquyym1z1k"); // N_nojustify = NULL; +UNSUPPORTED("7kwmsq3m3f4oe4jyi2hzkq544"); // N_group = NULL; +UNSUPPORTED("3lqtt3u3nf2945mjpkjcw6s48"); // G_ordering = (agattr(auxg,AGRAPH,"ordering",NULL)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 14hhte1l3zo45pzop5ugwahiv +// static graph_t* cloneGraph (graph_t* g, attr_state_t* attr_state) +public static Object cloneGraph(Object... arg) { +UNSUPPORTED("9bkg8lvj5zr49zg08g7iijeg0"); // static graph_t* +UNSUPPORTED("4uq8e6159vvwjuygnnrtonzjr"); // cloneGraph (graph_t* g, attr_state_t* attr_state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d4lkyrfdivg76lnwroshuwy1r"); // Agsym_t* sym; +UNSUPPORTED("8scmnlh4aqjfli9hjn7snnhb2"); // graph_t* auxg; +UNSUPPORTED("9wn75gbfikchs3m5ip8uqbqp9"); // if (agisdirected(g)) +UNSUPPORTED("bc2kavqqh860759qs0rw39g9w"); // auxg = agopen ("auxg",Agdirected, ((Agdisc_t *)0)); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("41dm8ksorga6af1u82vvp2o08"); // auxg = agopen ("auxg",Agundirected, ((Agdisc_t *)0)); +UNSUPPORTED("dvx3r3ba8ihb3ho0irr3iflz9"); // agbindrec(auxg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); +UNSUPPORTED("8o4tyxwwt6nurmyulizd8yx4h"); // agattr(auxg, AGRAPH, "rank", ""); +UNSUPPORTED("4azamavz8yei4klxixxjkjdzy"); // GD_drawing(auxg) = (layout_t*)zmalloc(sizeof(layout_t)); +UNSUPPORTED("bl2bbfcsejbdva171i3uuah14"); // GD_drawing(auxg)->quantum = GD_drawing(g)->quantum; +UNSUPPORTED("96jzn981deono0qtt4353wjnd"); // GD_drawing(auxg)->dpi = GD_drawing(g)->dpi; +UNSUPPORTED("am2ry0w98859w4vlnhjmoegj2"); // GD_charset(auxg) = GD_charset (g); +UNSUPPORTED("8qqdurbqk0iszxbs1xz13bx72"); // if (GD_flip(g)) +UNSUPPORTED("dldh0wwkfscuwx8vmqd78zne6"); // (GD_rankdir2(auxg) = 0); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("a1gxjxg6ob083fwqk6gac69va"); // (GD_rankdir2(auxg) = 1); +UNSUPPORTED("94df1x35koj4u57phwmdtoipp"); // GD_nodesep(auxg) = GD_nodesep(g); +UNSUPPORTED("m7a4df7fb58fj3qpf7ocrnth"); // GD_ranksep(auxg) = GD_ranksep(g); +UNSUPPORTED("ehand70vpsfxy8xo2usw3sdpd"); // //copy node attrs to auxg +UNSUPPORTED("ee6l5a5uekrqgzpa1tzzvn8lu"); // sym=agnxtattr(agroot(g),AGNODE,NULL); //get the first attr. +UNSUPPORTED("e9gle5ohw021fnltrv101u94f"); // for (; sym; sym = agnxtattr(agroot(g),AGNODE,sym)) +UNSUPPORTED("4mgrl284otjjxa13ifyvsix9o"); // agattr (auxg, AGNODE,sym->name, sym->defval); +UNSUPPORTED("8l0npxgg53xbodt3h5bsxaf1u"); // //copy edge attributes +UNSUPPORTED("d0l2zhgn9atu49ot95sjvnjx7"); // sym=agnxtattr(agroot(g),AGEDGE,NULL); //get the first attr. +UNSUPPORTED("2syhqyxjtl43g8k8nszcgv3qa"); // for (; sym; sym = agnxtattr(agroot(g),AGEDGE,sym)) +UNSUPPORTED("7ne23vf4nlppvlnjcbkj9xj7s"); // agattr (auxg, AGEDGE,sym->name, sym->defval); +UNSUPPORTED("dbdwjxpzch7ieese5oq712h84"); // if (!agattr(auxg,AGEDGE, "headport", NULL)) +UNSUPPORTED("8e9itu32gwm54e46x9vefuuc"); // agattr(auxg,AGEDGE, "headport", ""); +UNSUPPORTED("8d6592shcigbk3cnbs3g6zd5o"); // if (!agattr(auxg,AGEDGE, "tailport", NULL)) +UNSUPPORTED("1afdsvho7rpgcscq77epwq7h0"); // agattr(auxg,AGEDGE, "tailport", ""); +UNSUPPORTED("8g7yfvh0djzbxpsk11iys8s73"); // setState (auxg, attr_state); +UNSUPPORTED("84c7zokshe6lxrxoh1l48oh0b"); // return auxg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 75bd23hms71i6w46oddi0v7c7 +// static void cleanupCloneGraph (graph_t* g, attr_state_t* attr_state) +public static Object cleanupCloneGraph(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("8l276u9l2gpbol4c2u457ic4o"); // cleanupCloneGraph (graph_t* g, attr_state_t* attr_state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("81hz17qm480gekbimxzqp5917"); // /* restore main graph syms */ +UNSUPPORTED("dyp7mrvrp7pgbjcxvjp3k0rb0"); // E_constr = attr_state->E_constr; +UNSUPPORTED("8x6a3xddh4y42i73tahevx314"); // E_samehead = attr_state->E_samehead; +UNSUPPORTED("cr53qmp35pahyiy1lksf7pc7o"); // E_sametail = attr_state->E_sametail; +UNSUPPORTED("3x6ebo3n7gp5ys2ei418ehbmt"); // E_weight = attr_state->E_weight; +UNSUPPORTED("1ho97fsth1t5vvxc5xlwbtvyp"); // E_minlen = attr_state->E_minlen; +UNSUPPORTED("bfo2q1yt9zej3021f132mqwe6"); // E_fontcolor = attr_state->E_fontcolor; +UNSUPPORTED("caxxsouex07crddgxredl1u2p"); // E_fontname = attr_state->E_fontname; +UNSUPPORTED("etmu0sib2tphqwe1wujlnfrup"); // E_fontsize = attr_state->E_fontsize; +UNSUPPORTED("6gb56lwdjjgzcqilrpq8m22ns"); // E_headclip = attr_state->E_headclip; +UNSUPPORTED("7arkupsho8bk69qdlx5osz58q"); // E_headlabel = attr_state->E_headlabel; +UNSUPPORTED("8dbqaxdoyj9z0pkuwsg9vl0eu"); // E_label = attr_state->E_label; +UNSUPPORTED("k2wg526i4loudvbn7p6a8e68"); // E_label_float = attr_state->E_label_float; +UNSUPPORTED("2tux1z7sjyb58ty6c0bvgfn7u"); // E_labelfontcolor = attr_state->E_labelfontcolor; +UNSUPPORTED("exlraaiion456s8e3xwpxozb4"); // E_labelfontname = attr_state->E_labelfontname; +UNSUPPORTED("31yhqytdbu2odz0oi3cudffo1"); // E_labelfontsize = attr_state->E_labelfontsize; +UNSUPPORTED("frcohw4vy68cah25ckm1cobw"); // E_tailclip = attr_state->E_tailclip; +UNSUPPORTED("2z89ojbnte8kwtr9jotk499fc"); // E_taillabel = attr_state->E_taillabel; +UNSUPPORTED("3ujqfey1gvz17vmhn9w63qxob"); // E_xlabel = attr_state->E_xlabel; +UNSUPPORTED("atq6bae3mv1qr8egljjfsrit6"); // N_height = attr_state->N_height; +UNSUPPORTED("aiqf0nz6dfedq2jwgmajnranb"); // N_width = attr_state->N_width; +UNSUPPORTED("dt3zktdkst02y23fr3owwe9b9"); // N_shape = attr_state->N_shape; +UNSUPPORTED("6pul6vxncmyc96hnj7hoh9xlv"); // N_style = attr_state->N_style; +UNSUPPORTED("bbr363noiuq4fiv6dc11hrgki"); // N_fontsize = attr_state->N_fontsize; +UNSUPPORTED("5jr71bz21o8ex4piwuj7cyf35"); // N_fontname = attr_state->N_fontname; +UNSUPPORTED("muitbco7ytv8yr71bth3vd45"); // N_fontcolor = attr_state->N_fontcolor; +UNSUPPORTED("gz675ugjp8z2xgply33d6llr"); // N_label = attr_state->N_label; +UNSUPPORTED("3l56ed3d2ocqttxq2mwcaxrs"); // N_xlabel = attr_state->N_xlabel; +UNSUPPORTED("2fmh1t4tflmptq1d2wqygd7qt"); // N_showboxes = attr_state->N_showboxes; +UNSUPPORTED("br7qgmqsjpzi772b9wc7g00x0"); // N_ordering = attr_state->N_ordering; +UNSUPPORTED("cpjgwylhr8d4gvztykf36mf71"); // N_sides = attr_state->N_sides; +UNSUPPORTED("dzvcridjcoqlimn9odmlcn9ao"); // N_peripheries = attr_state->N_peripheries; +UNSUPPORTED("7wd3t9ok31e37hdqtnffwum66"); // N_skew = attr_state->N_skew; +UNSUPPORTED("bkocxpinr1crae21mcidps0"); // N_orientation = attr_state->N_orientation; +UNSUPPORTED("bni1bp9we328ofu8dqwnws3b8"); // N_distortion = attr_state->N_distortion; +UNSUPPORTED("9ni0gtudygio7exe31uyvwwxy"); // N_fixed = attr_state->N_fixed; +UNSUPPORTED("2ep79qyr9wgfu8hyateqngx4o"); // N_nojustify = attr_state->N_nojustify; +UNSUPPORTED("77t5uu3931h080u18f50zr0qw"); // N_group = attr_state->N_group; +UNSUPPORTED("1czw51da8yggj3mvb5v6dircs"); // G_ordering = attr_state->G_ordering; +UNSUPPORTED("60kkiysc7uy667s1kr04csskc"); // State = attr_state->State; +UNSUPPORTED("9wfeu3yikah30i1eq789pb1dc"); // free (attr_state); +UNSUPPORTED("2tv8es032rxzavamw0dgvm53h"); // dot_cleanup(g); +UNSUPPORTED("ego3r1tvwrpv2hie8y9p8vq4z"); // agclose(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 19tqa2ag8idq1y6l3zslax8e8 +// static node_t* cloneNode (graph_t* g, node_t* orign, int flipped) +public static Object cloneNode(Object... arg) { +UNSUPPORTED("b9dd3satxbh59hljdxzcxecc"); // static node_t* +UNSUPPORTED("o807sh2podu4gxrp6mweyg3p"); // cloneNode (graph_t* g, node_t* orign, int flipped) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9mlzre34kwhn9wm44mck7e8li"); // node_t* n = agnode(g, agnameof(orign),1); +UNSUPPORTED("21wqfabmz2qk7g2vnunyyw1n8"); // agbindrec(n, "Agnodeinfo_t", sizeof(Agnodeinfo_t), NOT(0)); +UNSUPPORTED("80tteudx6zbkyxy4erhh0fqeo"); // agcopyattr (orign, n); +UNSUPPORTED("65o4lsnpkxraq4wik0gzbv3g3"); // if (shapeOf(orign) == SH_RECORD) { +UNSUPPORTED("7w0wn4e9gizbzrsqcre4pnx7"); // int lbllen = strlen(ND_label(orign)->text); +UNSUPPORTED("3avq2zh3wpi2nrhofz3l9esev"); // char* buf = (char*)gmalloc((lbllen+3)*sizeof(char)); +UNSUPPORTED("bbilsao6wizinl5kripcoya9d"); // sprintf (buf, "{%s}", ND_label(orign)->text); +UNSUPPORTED("e93wd087tiy2p8rvqlme93ynm"); // agset (n, "label", buf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("69hc24ic55i66g8tf2ne42327"); // return n; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eqzwnj9u1k6ij1842mph3kly9 +// static edge_t* cloneEdge (graph_t* g, node_t* tn, node_t* hn, edge_t* orig) +public static Object cloneEdge(Object... arg) { +UNSUPPORTED("adyfsyiyu158mwhrtm33biik2"); // static edge_t* +UNSUPPORTED("cpg8ogbdq9zzrqiadh2q271ky"); // cloneEdge (graph_t* g, node_t* tn, node_t* hn, edge_t* orig) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("mdnixwzb9bm22acv2mbc4yo2"); // edge_t* e = agedge(g, tn, hn,NULL,1); +UNSUPPORTED("ce403szny1a2xoli6uh7ocakq"); // /* for (; ED_edge_type(orig) != NORMAL; orig = ED_to_orig(orig)); */ +UNSUPPORTED("554nt9t4qnutd0wixwbpok522"); // agbindrec(e, "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); +UNSUPPORTED("6yfr23jllhpfychz887mht80b"); // agcopyattr (orig, e); +UNSUPPORTED("4v614d3uabme2jyn0anuritbb"); // /* +UNSUPPORTED("jgkgn8228j52jq4wc7yo2q8t"); // if (orig->tail != ND_alg(tn)) { +UNSUPPORTED("86dayio2rrehbyot92z4xh4d1"); // char* hdport = agget (orig, HEAD_ID); +UNSUPPORTED("39vbjr08q96wugxyva077qpok"); // char* tlport = agget (orig, TAIL_ID); +UNSUPPORTED("3z0livr6yj8gkkuxtvqwrqy95"); // agset (e, TAIL_ID, (hdport ? hdport : "")); +UNSUPPORTED("dilecd9q5c2tj0pnl7tfwgixx"); // agset (e, HEAD_ID, (tlport ? tlport : "")); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bnetqzovnscxile7ao44kc0qd"); // */ +UNSUPPORTED("2bswif6w6ot01ynlvkimntfly"); // return e; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3zb2qrqaqzr6n3m7dgxp4pmrp +// static pointf transformf (pointf p, pointf del, int flip) +public static Object transformf(Object... arg) { +UNSUPPORTED("2zzd7mrm2u540dwuyzehozffj"); // static pointf +UNSUPPORTED("a59oomtgi9wbd42kpsaaref6e"); // transformf (pointf p, pointf del, int flip) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9wlzvfxuhvsgkkq6lvlrw01d2"); // if (flip) { +UNSUPPORTED("3vhnqvj1whk5vk9hofkhjtksr"); // double i = p.x; +UNSUPPORTED("9sla4yejg4e4tlklijoil9k4u"); // p.x = p.y; +UNSUPPORTED("688l858wkw5j2uqosjyesr15h"); // p.y = -i; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("890s36h0fh77q487p72cjtyz"); // return add_pointf(p, del); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bmsa24i3avg14po4sp17yh89k +// static int edgelblcmpfn(edge_t** ptr0, edge_t** ptr1) +public static int edgelblcmpfn(__ptr__ ptr0, __ptr__ ptr1) { +ENTERING("bmsa24i3avg14po4sp17yh89k","edgelblcmpfn"); +try { + Agedge_s e0, e1; + final __struct__ sz0 = __struct__.from(pointf.class), sz1 = __struct__.from(pointf.class); + e0 = (Agedge_s) ptr0.getPtr(); + e1 = (Agedge_s) ptr1.getPtr(); + if (ED_label(e0)!=null) { + if (ED_label(e1)!=null) { + sz0.____(ED_label(e0).getStruct("dimen")); + sz1.____(ED_label(e1).getStruct("dimen")); + if (sz0.getDouble("x") > sz1.getDouble("x")) return -1; + else if (sz0.getDouble("x") < sz1.getDouble("x")) return 1; + else if (sz0.getDouble("y") > sz1.getDouble("y")) return -1; + else if (sz0.getDouble("y") < sz1.getDouble("y")) return 1; + else return 0; + } + else + return -1; + } + else if (ED_label(e1)!=null) { + return 1; + } + else + return 0; +} finally { +LEAVING("bmsa24i3avg14po4sp17yh89k","edgelblcmpfn"); +} +} + + + + +//3 3xmylrnypvoqrj2yrxnomsj5k +// static void makeSimpleFlatLabels (node_t* tn, node_t* hn, edge_t** edges, int ind, int cnt, int et, int n_lbls) +public static void makeSimpleFlatLabels(Agnode_s tn, Agnode_s hn, __ptr__ edges, int ind, int cnt, int et, int n_lbls) { +ENTERING("3xmylrnypvoqrj2yrxnomsj5k","makeSimpleFlatLabels"); +try { + pointf ps; + final __struct__ poly = __struct__.from(Ppoly_t.class); + int pn[] = new int[1]; + Agedge_s e = (Agedge_s) edges.plus(ind).getPtr(); + final __array_of_struct__ points = __array_of_struct__.malloc(pointf.class, 10); + final __struct__ tp = __struct__.from(pointf.class), hp = __struct__.from(pointf.class); + int i, pointn; + double leftend, rightend, ctrx=0, ctry=0, miny, maxy; + double uminx=0, umaxx=0; + double lminx=0, lmaxx=0; + __ptr__ earray = zmalloc(sizeof_starstar_empty(Agedge_s.class, cnt)); + for (i = 0; i < cnt; i++) { + earray.plus(i).setPtr(edges.plus(ind + i).getPtr()); + } + qsort(earray, + cnt, + sizeof(earray.plus(0)), + function(dotsplines__c.class, "edgelblcmpfn")); + tp.____(add_pointf(ND_coord(tn), ED_tail_port(e).getStruct("p"))); + hp.____(add_pointf(ND_coord(hn), ED_head_port(e).getStruct("p"))); + leftend = tp.getDouble("x")+ND_rw(tn); + rightend = hp.getDouble("x")-ND_lw(hn); + ctrx = (leftend + rightend)/2.0; + /* do first edge */ + e = (Agedge_s) earray.plus(0).getPtr(); + pointn = 0; + points.plus(pointn++).setStruct(tp); + points.plus(pointn++).setStruct(tp); + points.plus(pointn++).setStruct(hp); + points.plus(pointn++).setStruct(hp); + clip_and_install(e, aghead(e), points.asPtr(), pointn, Z._().sinfo.amp()); + ED_label(e).getStruct("pos").setDouble("x", ctrx); + ED_label(e).getStruct("pos").setDouble("y", tp.getDouble("y") + (ED_label(e).getStruct("dimen").getDouble("y")+6)/2.0); + ED_label(e).setBoolean("set", NOT(false)); + miny = tp.getDouble("y") + 6/2.0; + maxy = miny + ED_label(e).getStruct("dimen").getDouble("y"); + uminx = ctrx - (ED_label(e).getStruct("dimen").getDouble("x"))/2.0; + umaxx = ctrx + (ED_label(e).getStruct("dimen").getDouble("x"))/2.0; + for (i = 1; i < n_lbls; i++) { + e = (Agedge_s) earray.plus(i).getPtr(); + if (i%2!=0) { /* down */ + if (i == 1) { + lminx = ctrx - (ED_label(e).getStruct("dimen").getDouble("x"))/2.0; + lmaxx = ctrx + (ED_label(e).getStruct("dimen").getDouble("x"))/2.0; + } + miny -= 6 + ED_label(e).getStruct("dimen").getDouble("y"); + points.plus(0).setStruct(tp); + points.plus(1).setDouble("x", tp.getDouble("x")); + points.plus(1).setDouble("y", miny - 6); + points.plus(2).setDouble("x", hp.getDouble("x")); + points.plus(2).setDouble("y", points.plus(1).getDouble("y")); + points.plus(3).setStruct(hp); + points.plus(4).setDouble("x", lmaxx); + points.plus(4).setDouble("y", hp.getDouble("y")); + points.plus(5).setDouble("x", lmaxx); + points.plus(5).setDouble("y", miny); + points.plus(6).setDouble("x", lminx); + points.plus(6).setDouble("y", miny); + points.plus(7).setDouble("x", lminx); + points.plus(7).setDouble("y", tp.getDouble("y")); + ctry = miny + (ED_label(e).getStruct("dimen").getDouble("y"))/2.0; + } + else { /* up */ +UNSUPPORTED("7owdudualx55z2cnm9x3iio0w"); // points[0] = tp; +UNSUPPORTED("43w0zont6q3y1axlcy96rzm5x"); // points[1].x = uminx; +UNSUPPORTED("285u4l65puy5nr3pgq6acl4i2"); // points[1].y = tp.y; +UNSUPPORTED("uctdrwzmec4w6vmirs9on197"); // points[2].x = uminx; +UNSUPPORTED("d9b8e2upja8koam9memys7nj1"); // points[2].y = maxy; +UNSUPPORTED("e8a8ucdpq7sgmbi3qyldleb1s"); // points[3].x = umaxx; +UNSUPPORTED("d7xd9vzbdbezltrxsp9a3byuc"); // points[3].y = maxy; +UNSUPPORTED("59abeyxxk9ow1g6m45t4ahih7"); // points[4].x = umaxx; +UNSUPPORTED("2lzgl5468xguophz9d5wyer2x"); // points[4].y = hp.y; +UNSUPPORTED("41u0uroraw4xanvpgg6l74kyh"); // points[5].x = hp.x; +UNSUPPORTED("cwkk5bnko3e1udrx4cb720zss"); // points[5].y = hp.y; +UNSUPPORTED("eev7hf3617k74bnq18uiedyb0"); // points[6].x = hp.x; +UNSUPPORTED("aqxt1dvgfq5zcptjwgx1b3mmq"); // points[6].y = maxy + 6; +UNSUPPORTED("5s3o04yf5lzca6ruuygfxngj2"); // points[7].x = tp.x; +UNSUPPORTED("56zheeat0b8mo4uvlcbvgbu80"); // points[7].y = maxy + 6; +UNSUPPORTED("ehcig8trxc4ble6pcochubv7z"); // ctry = maxy + (ED_label(e)->dimen.y)/2.0 + 6; +UNSUPPORTED("e2zgxycgqefryde9nbv6cqz1u"); // maxy += ED_label(e)->dimen.y + 6; + } + poly.setInt("pn", 8); + poly.setPtr("ps", points.asPtr()); + ps = simpleSplineRoute (tp, hp, poly, pn, et == (3 << 1)); + if (pn[0] == 0) return; + ED_label(e).getStruct("pos").setDouble("x", ctrx); + ED_label(e).getStruct("pos").setDouble("y", ctry); + ED_label(e).setBoolean("set", NOT(false)); + clip_and_install(e, aghead(e), ps, pn[0], Z._().sinfo.amp()); + } + /* edges with no labels */ + for (; i < cnt; i++) { + e = (Agedge_s) earray.plus(i).getPtr(); + if (i%2!=0) { /* down */ + if (i == 1) { + lminx = (2*leftend + rightend)/3.0; + lmaxx = (leftend + 2*rightend)/3.0; + } + miny -= 6; + points.plus(0).setStruct(tp); + points.plus(1).setDouble("x", tp.getDouble("x")); + points.plus(1).setDouble("y", miny - 6); + points.plus(2).setDouble("x", hp.getDouble("x")); + points.plus(2).setDouble("y", points.plus(1).getDouble("y")); + points.plus(3).setStruct(hp); + points.plus(4).setDouble("x", lmaxx); + points.plus(4).setDouble("y", hp.getDouble("y")); + points.plus(5).setDouble("x", lmaxx); + points.plus(5).setDouble("y", miny); + points.plus(6).setDouble("x", lminx); + points.plus(6).setDouble("y", miny); + points.plus(7).setDouble("x", lminx); + points.plus(7).setDouble("y", tp.getDouble("y")); + } + else { /* up */ +UNSUPPORTED("7owdudualx55z2cnm9x3iio0w"); // points[0] = tp; +UNSUPPORTED("43w0zont6q3y1axlcy96rzm5x"); // points[1].x = uminx; +UNSUPPORTED("285u4l65puy5nr3pgq6acl4i2"); // points[1].y = tp.y; +UNSUPPORTED("uctdrwzmec4w6vmirs9on197"); // points[2].x = uminx; +UNSUPPORTED("d9b8e2upja8koam9memys7nj1"); // points[2].y = maxy; +UNSUPPORTED("e8a8ucdpq7sgmbi3qyldleb1s"); // points[3].x = umaxx; +UNSUPPORTED("d7xd9vzbdbezltrxsp9a3byuc"); // points[3].y = maxy; +UNSUPPORTED("59abeyxxk9ow1g6m45t4ahih7"); // points[4].x = umaxx; +UNSUPPORTED("2lzgl5468xguophz9d5wyer2x"); // points[4].y = hp.y; +UNSUPPORTED("41u0uroraw4xanvpgg6l74kyh"); // points[5].x = hp.x; +UNSUPPORTED("cwkk5bnko3e1udrx4cb720zss"); // points[5].y = hp.y; +UNSUPPORTED("eev7hf3617k74bnq18uiedyb0"); // points[6].x = hp.x; +UNSUPPORTED("aqxt1dvgfq5zcptjwgx1b3mmq"); // points[6].y = maxy + 6; +UNSUPPORTED("5s3o04yf5lzca6ruuygfxngj2"); // points[7].x = tp.x; +UNSUPPORTED("56zheeat0b8mo4uvlcbvgbu80"); // points[7].y = maxy + 6; +UNSUPPORTED("7un2qk34mmmhqi296vl50bacs"); // maxy += + 6; + } + poly.setInt("pn", 8); + poly.setPtr("ps", points.asPtr()); + ps = simpleSplineRoute (tp, hp, poly, pn, et == (3 << 1)); + if (pn[0] == 0) return; + clip_and_install(e, aghead(e), ps, pn[0], Z._().sinfo.amp()); + } + Memory.free (earray); +} finally { +LEAVING("3xmylrnypvoqrj2yrxnomsj5k","makeSimpleFlatLabels"); +} +} + + + + +//3 8kqyzk43ovc2sq6jegua6ytp +// static void makeSimpleFlat (node_t* tn, node_t* hn, edge_t** edges, int ind, int cnt, int et) +public static void makeSimpleFlat(Agnode_s tn, Agnode_s hn, __ptr__ edges, int ind, int cnt, int et) { +ENTERING("8kqyzk43ovc2sq6jegua6ytp","makeSimpleFlat"); +try { + Agedge_s e = (Agedge_s) edges.plus(ind).getPtr(); + final __array_of_struct__ points = __array_of_struct__.malloc(pointf.class, 10); + final __struct__ tp = __struct__.from(pointf.class), hp = __struct__.from(pointf.class); + int i, pointn; + double stepy, dy; + tp.____(add_pointf(ND_coord(tn), ED_tail_port(e).getStruct("p"))); + hp.____(add_pointf(ND_coord(hn), ED_head_port(e).getStruct("p"))); + stepy = (cnt > 1) ? ND_ht(tn) / (double)(cnt - 1) : 0.; + dy = tp.getDouble("y") - ((cnt > 1) ? ND_ht(tn) / 2. : 0.); + for (i = 0; i < cnt; i++) { + e = (Agedge_s) edges.plus(ind + i).getPtr(); + pointn = 0; + if ((et == (5 << 1)) || (et == (1 << 1))) { + points.plus(pointn++).setStruct(tp); + points.plus(pointn++).setStruct(pointfof((2 * tp.getDouble("x") + hp.getDouble("x")) / 3, dy)); + points.plus(pointn++).setStruct(pointfof((2 * hp.getDouble("x") + tp.getDouble("x")) / 3, dy)); + points.plus(pointn++).setStruct(hp); + } + else { /* ET_PLINE */ +UNSUPPORTED("cai7diqq01v8vb92u4mx1xh38"); // points[pointn++] = tp; +UNSUPPORTED("cai7diqq01v8vb92u4mx1xh38"); // points[pointn++] = tp; +UNSUPPORTED("bnd7kao912fmo940u1gz3cmws"); // points[pointn++] = pointfof((2 * tp.x + hp.x) / 3, dy); +UNSUPPORTED("bnd7kao912fmo940u1gz3cmws"); // points[pointn++] = pointfof((2 * tp.x + hp.x) / 3, dy); +UNSUPPORTED("bnd7kao912fmo940u1gz3cmws"); // points[pointn++] = pointfof((2 * tp.x + hp.x) / 3, dy); +UNSUPPORTED("akir2i0ddpv2ombgdzzs9qqqa"); // points[pointn++] = pointfof((2 * hp.x + tp.x) / 3, dy); +UNSUPPORTED("akir2i0ddpv2ombgdzzs9qqqa"); // points[pointn++] = pointfof((2 * hp.x + tp.x) / 3, dy); +UNSUPPORTED("akir2i0ddpv2ombgdzzs9qqqa"); // points[pointn++] = pointfof((2 * hp.x + tp.x) / 3, dy); +UNSUPPORTED("59cwjy3j5e0igp278migykzi"); // points[pointn++] = hp; +UNSUPPORTED("59cwjy3j5e0igp278migykzi"); // points[pointn++] = hp; + } + dy += stepy; + clip_and_install(e, aghead(e), points.asPtr(), pointn, Z._().sinfo.amp()); + } +} finally { +LEAVING("8kqyzk43ovc2sq6jegua6ytp","makeSimpleFlat"); +} +} + + + + +//3 bhnjospwghq4plid12757c928 +// static void make_flat_adj_edges(graph_t* g, path* P, edge_t** edges, int ind, int cnt, edge_t* e0, int et) +public static void make_flat_adj_edges(Agraph_s g, path P, __ptr__ edges, int ind, int cnt, Agedge_s e0, int et) { +ENTERING("bhnjospwghq4plid12757c928","make_flat_adj_edges"); +try { + Agnode_s n; + Agnode_s tn, hn; + Agedge_s e; + int labels = 0, ports = 0; + Agraph_s auxg; + Agraph_s subg; + Agnode_s auxt, auxh; + Agedge_s auxe; + int i, j, midx, midy, leftx, rightx; + final __struct__ del = __struct__.from(pointf.class); + Agedge_s hvye = null; + attr_state_t attrs; + tn = agtail(e0); hn = aghead(e0); + for (i = 0; i < cnt; i++) { + e = (Agedge_s) edges.plus(ind + i).getPtr(); + if (ED_label(e)!=null) labels++; + if (ED_tail_port(e).getBoolean("defined") || ED_head_port(e).getBoolean("defined")) ports = 1; + } + if (ports == 0) { + /* flat edges without ports and labels can go straight left to right */ + if (labels == 0) { + makeSimpleFlat (tn, hn, edges, ind, cnt, et); + } + /* flat edges without ports but with labels take more work */ + else { + makeSimpleFlatLabels (tn, hn, edges, ind, cnt, et, labels); + } + return; + } +UNSUPPORTED("3ua0mgcwxnpymnpiv77owaur2"); // attrs = (attr_state_t*)zmalloc(sizeof(attr_state_t)); +UNSUPPORTED("5qcpchn65culafc5t2ibioksb"); // auxg = cloneGraph (g, attrs); +UNSUPPORTED("cwolismpef6l1w4xj5etx8w09"); // subg = agsubg (auxg, "xxx",1); +UNSUPPORTED("eocu0fte9egz381w3t8y5m64t"); // agbindrec(subg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); +UNSUPPORTED("er19m8huvnjjn1v6rreiisdf6"); // agset (subg, "rank", "source"); +UNSUPPORTED("du7zwfglureqnv5g2wiammuuu"); // rightx = ND_coord(hn).x; +UNSUPPORTED("5qa24lmumrg29fbtl0fo4d4z1"); // leftx = ND_coord(tn).x; +UNSUPPORTED("b2x6j7m1cmmkcmdl5jo9wn0ap"); // if (GD_flip(g)) { +UNSUPPORTED("2elvc001uux0vbe7sv4098e0c"); // node_t* n; +UNSUPPORTED("6m8k99c09zmhwgcdsgo33dugz"); // n = tn; +UNSUPPORTED("cenlfgoeymhe1am5z6632xniq"); // tn = hn; +UNSUPPORTED("cp2gf6c1xawd2yjbqerw98we3"); // hn = n; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1e98fnf9lsk7hwgjt70gh5r55"); // auxt = cloneNode(subg, tn, GD_flip(g)); +UNSUPPORTED("a4xa8i1nw83hhnknv84280z00"); // auxh = cloneNode(auxg, hn, GD_flip(g)); +UNSUPPORTED("1psokm6w9e7qw7fm2g1cayuk7"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("8hwholxjp08y4q0zbb561684q"); // e = edges[ind + i]; +UNSUPPORTED("b3w40fpgfj0j66yi6j582thq2"); // for (; ED_edge_type(e) != 0; e = ED_to_orig(e)); +UNSUPPORTED("bcu59ji1apn0rvv7aisl6e4pw"); // if (agtail(e) == tn) +UNSUPPORTED("4o3mq2ztiyxlbkpgcyygj4lny"); // auxe = cloneEdge (auxg, auxt, auxh, e); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("3a7m578mxun4c8zv0jurzh7ox"); // auxe = cloneEdge (auxg, auxh, auxt, e); +UNSUPPORTED("e6khamu7fhu5m7il9r2v06mui"); // ED_alg(e) = auxe; +UNSUPPORTED("64u9xrw8iwy3mtuupoktw7xoz"); // if (!hvye && !ED_tail_port(e).defined && !ED_head_port(e).defined) { +UNSUPPORTED("6t23nfzzldtl419g582pr0wjn"); // hvye = auxe; +UNSUPPORTED("3fi2uxwkmau5664gnhzyosan5"); // ED_alg(hvye) = e; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("co4n3cv6ybhgvm341r3re61vu"); // if (!hvye) { +UNSUPPORTED("a0sxhnruv0ip65j05wt7dciak"); // hvye = agedge (auxg, auxt, auxh,NULL,1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("26l323zwxztuc6sfnh36x7i9f"); // agxset (hvye, E_weight, "10000"); +UNSUPPORTED("4pj2d4pwf7wi9fcu4v0byk83z"); // GD_gvc(auxg) = GD_gvc(g); +UNSUPPORTED("b6dpjp9wgjzgoy0tq7b9kms74"); // GD_dotroot(auxg) = auxg; +UNSUPPORTED("e08t9bx8ldb1d5e0582wg82sx"); // setEdgeType (auxg, et); +UNSUPPORTED("8y4433lgybq35f4t7viqsvz5v"); // dot_init_node_edge(auxg); +UNSUPPORTED("13c2nt4jwumpvtwudz38a4sb3"); // dot_rank(auxg, 0); +UNSUPPORTED("6onnznyz9fof6r8we5z1e4r63"); // dot_mincross(auxg, 0); +UNSUPPORTED("4ry85qx5xmahkm0mdv9s65azo"); // dot_position(auxg, 0); +UNSUPPORTED("9921qakdgil2jvrvinke44xsz"); // /* reposition */ +UNSUPPORTED("ang8wy78872hvqkzvgfjwqwfl"); // midx = (ND_coord(tn).x - ND_rw(tn) + ND_coord(hn).x + ND_lw(hn))/2; +UNSUPPORTED("2r2ywte92l423tbcdfvbhz3zh"); // midy = (ND_coord(auxt).x + ND_coord(auxh).x)/2; +UNSUPPORTED("b8juh1dggb6sz4d9df42i150k"); // for (n = GD_nlist(auxg); n; n = ND_next(n)) { +UNSUPPORTED("4prtyy13ox1fif8vil3g86g87"); // if (n == auxt) { +UNSUPPORTED("7gvpia4yo3bfvh5dl7uwr3dbe"); // ND_coord(n).y = rightx; +UNSUPPORTED("2zsspnn0nfrdf9fx8sh3ld8j4"); // ND_coord(n).x = midy; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ba2aaoh9ujy4ww9luial39sya"); // else if (n == auxh) { +UNSUPPORTED("aoy1ze6hhjuym44mkasdt19qp"); // ND_coord(n).y = leftx; +UNSUPPORTED("2zsspnn0nfrdf9fx8sh3ld8j4"); // ND_coord(n).x = midy; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("80o8q2qh1hr671ladbyqzglnt"); // else ND_coord(n).y = midx; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("48hn94qz2y2kb6lqc3462vlco"); // dot_sameports(auxg); +UNSUPPORTED("bglhuc9grqkk9ozb97oeh0m3b"); // _dot_splines(auxg, 0); +UNSUPPORTED("euvfot8f7xxnibd223qgsylew"); // dotneato_postprocess(auxg); +UNSUPPORTED("4mg60pszj0s1anwg8zp0tq0ra"); // /* copy splines */ +UNSUPPORTED("b2x6j7m1cmmkcmdl5jo9wn0ap"); // if (GD_flip(g)) { +UNSUPPORTED("baukf0b2l91bkgnfdc04rvuxe"); // del.x = ND_coord(tn).x - ND_coord(auxt).y; +UNSUPPORTED("96sq686mw9bvj7dli7wb241au"); // del.y = ND_coord(tn).y + ND_coord(auxt).x; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("bxg8i1hqms0izrryxh2at6p7b"); // del.x = ND_coord(tn).x - ND_coord(auxt).x; +UNSUPPORTED("3xqgvdcxmu8e4eqtnhaa256tk"); // del.y = ND_coord(tn).y - ND_coord(auxt).y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1psokm6w9e7qw7fm2g1cayuk7"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("47ogn0fae1yuy3kefpawcgcmx"); // bezier* auxbz; +UNSUPPORTED("4mujfxtr0wy7m1rbm57rwigo4"); // bezier* bz; +UNSUPPORTED("8hwholxjp08y4q0zbb561684q"); // e = edges[ind + i]; +UNSUPPORTED("b3w40fpgfj0j66yi6j582thq2"); // for (; ED_edge_type(e) != 0; e = ED_to_orig(e)); +UNSUPPORTED("3ii7nnxg3x8jpdk6lcijbizvf"); // auxe = (edge_t*)ED_alg(e); +UNSUPPORTED("5rc7uvn4xqfetekcci1uwri5v"); // if ((auxe == hvye) & !ED_alg(auxe)) continue; /* pseudo-edge */ +UNSUPPORTED("52vy3jbu67nebznqkhxxqthih"); // auxbz = ED_spl(auxe)->list; +UNSUPPORTED("azr1tv8blnu3i6b7wstpqv2tc"); // bz = new_spline(e, auxbz->size); +UNSUPPORTED("df84ie4egl6l1i82tz1zp7hg"); // bz->sflag = auxbz->sflag; +UNSUPPORTED("49bzonc32mbuchcsmw7csexdw"); // bz->sp = transformf(auxbz->sp, del, GD_flip(g)); +UNSUPPORTED("9g1glpjjy5wmh7dyr6u0nb2cn"); // bz->eflag = auxbz->eflag; +UNSUPPORTED("44tftrsdjjuh1qjmxjpysmee3"); // bz->ep = transformf(auxbz->ep, del, GD_flip(g)); +UNSUPPORTED("w0xl6ghxoii2ze2xmbbunv4d"); // for (j = 0; j < auxbz->size; ) { +UNSUPPORTED("22zm6ljvhpz7j2kiqee31nx61"); // pointf cp[4]; +UNSUPPORTED("4c88sva3ojadip5w3ehu782tp"); // cp[0] = bz->list[j] = transformf(auxbz->list[j], del, GD_flip(g)); +UNSUPPORTED("5jqtd9htl25cd3if3pjtl8dpo"); // j++; +UNSUPPORTED("duk541biqshfomah8rlxeyigr"); // if ( j >= auxbz->size ) +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("2qrbm7mhicvoxzk91h9x3gq64"); // cp[1] = bz->list[j] = transformf(auxbz->list[j], del, GD_flip(g)); +UNSUPPORTED("5jqtd9htl25cd3if3pjtl8dpo"); // j++; +UNSUPPORTED("f4x9unnnofgnvy91ejtm90kw"); // cp[2] = bz->list[j] = transformf(auxbz->list[j], del, GD_flip(g)); +UNSUPPORTED("5jqtd9htl25cd3if3pjtl8dpo"); // j++; +UNSUPPORTED("6pldfj31dg88qzsa012v8auxn"); // cp[3] = transformf(auxbz->list[j], del, GD_flip(g)); +UNSUPPORTED("2xvehdctlpogpd7xhdf1pku00"); // update_bb_bz(&GD_bb(g), cp); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("8bokoh0vcnmvjcahn7de1z0kd"); // if (ED_label(e)) { +UNSUPPORTED("8ido4wfhvlqvczqfq5xz33kak"); // ED_label(e)->pos = transformf(ED_label(auxe)->pos, del, GD_flip(g)); +UNSUPPORTED("3tkba5lhpnujfu8lcz8lewsyn"); // ED_label(e)->set = NOT(0); +UNSUPPORTED("c62p0r1jj71ceakgzrv2gorvu"); // updateBB(g, ED_label(e)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("22prbnbyxmapn1fcer1sktez7"); // cleanupCloneGraph (auxg, attrs); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("bhnjospwghq4plid12757c928","make_flat_adj_edges"); +} +} + + + + +//3 fybar4mljnmkh3kure5k1eod +// static void makeFlatEnd (graph_t* g, spline_info_t* sp, path* P, node_t* n, edge_t* e, pathend_t* endp, boolean isBegin) +public static void makeFlatEnd(Agraph_s g, spline_info_t sp, path P, Agnode_s n, Agedge_s e, pathend_t endp, boolean isBegin) { +ENTERING("fybar4mljnmkh3kure5k1eod","makeFlatEnd"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.____(maximal_bbox(g, sp, n, null, e)); + endp.setStruct("nb", b); + endp.setInt("sidemask", 1<<2); + if (isBegin) beginpath(P, e, 2, endp, false); + else endpath(P, e, 2, endp, false); + b.getStruct("UR").setDouble("y", endp.getArrayOfStruct("boxes").plus(endp.getInt("boxn") - 1).getStruct().getStruct("UR").getDouble("y")); + b.getStruct("LL").setDouble("y", endp.getArrayOfStruct("boxes").plus(endp.getInt("boxn") - 1).getStruct().getStruct("LL").getDouble("y")); + b.____(makeregularend(b, (1<<2), ND_coord(n).getDouble("y") + GD_rank(g).plus(ND_rank(n)).getDouble("ht2"))); + if (b.getStruct("LL").getDouble("x") < b.getStruct("UR").getDouble("x") && b.getStruct("LL").getDouble("y") < b.getStruct("UR").getDouble("y")) +UNSUPPORTED("cmjm4y40vf7wklmgz0ae4k36v"); // endp->boxes[endp->boxn++] = b; +} finally { +LEAVING("fybar4mljnmkh3kure5k1eod","makeFlatEnd"); +} +} + + + + +//3 rfro0b2nsukdjenux3f6osgj +// static void makeBottomFlatEnd (graph_t* g, spline_info_t* sp, path* P, node_t* n, edge_t* e, pathend_t* endp, boolean isBegin) +public static Object makeBottomFlatEnd(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("8ai1jk8aigoqod7sj7pw1phw3"); // makeBottomFlatEnd (graph_t* g, spline_info_t* sp, path* P, node_t* n, edge_t* e, +UNSUPPORTED("25ij2tn6de7b481tpf1ac644s"); // pathend_t* endp, boolean isBegin) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("458vjrt5zjt6am715aiuxdlpo"); // b = endp->nb = maximal_bbox(g, sp, n, NULL, e); +UNSUPPORTED("9wzfokn3t7zckgoaxgywy6cbz"); // endp->sidemask = (1<<0); +UNSUPPORTED("c3u0b2z8mb4le2v1g6q8amjt"); // if (isBegin) beginpath(P, e, 2, endp, 0); +UNSUPPORTED("1e0zyjb03r85tgqddfnlk9e9"); // else endpath(P, e, 2, endp, 0); +UNSUPPORTED("7pwqqvagpkzye4cdmjlbrmt7a"); // b.UR.y = endp->boxes[endp->boxn - 1].UR.y; +UNSUPPORTED("1mefjjoto40rfwb1qhzvobhje"); // b.LL.y = endp->boxes[endp->boxn - 1].LL.y; +UNSUPPORTED("4sn8dc58suk2d3oqlu13cr7ic"); // b = makeregularend(b, (1<<0), ND_coord(n).y - GD_rank(g)[ND_rank(n)].ht2); +UNSUPPORTED("6xj9sv3inmj1rwtz76qp6p30n"); // if (b.LL.x < b.UR.x && b.LL.y < b.UR.y) +UNSUPPORTED("cmjm4y40vf7wklmgz0ae4k36v"); // endp->boxes[endp->boxn++] = b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 w8ptjibydq995d2lexg85mku +// static void make_flat_labeled_edge(graph_t* g, spline_info_t* sp, path* P, edge_t* e, int et) +public static void make_flat_labeled_edge(Agraph_s g, spline_info_t sp, path P, Agedge_s e, int et) { +ENTERING("w8ptjibydq995d2lexg85mku","make_flat_labeled_edge"); +try { + Agnode_s tn, hn, ln; + pointf ps = null; + final __struct__ tend = __struct__.from(pathend_t.class), hend = __struct__.from(pathend_t.class); + final __struct__ lb = __struct__.from(boxf.class); + int boxn, i, ydelta; + int pn[] = new int[1]; + Agedge_s f; + final __array_of_struct__ points = __array_of_struct__.malloc(pointf.class, 7); + tn = agtail(e); + hn = aghead(e); + for (f = ED_to_virt(e); ED_to_virt(f)!=null; f = ED_to_virt(f)); + ln = agtail(f); + ED_label(e).setStruct("pos", ND_coord(ln)); + ED_label(e).setBoolean("set", NOT(false)); + if (et == (1 << 1)) { +UNSUPPORTED("ataaqkehwb736ts2x6olzqokx"); // pointf startp, endp, lp; +UNSUPPORTED("48h6vk2e5niep4dmpua377248"); // startp = add_pointf(ND_coord(tn), ED_tail_port(e).p); +UNSUPPORTED("8fokfn1629eyiqnzi7mey9o2q"); // endp = add_pointf(ND_coord(hn), ED_head_port(e).p); +UNSUPPORTED("8zpih1olxdgp3sxk2br3lezzx"); // lp = ED_label(e)->pos; +UNSUPPORTED("1sblcap44288tmc3cr80iqpj5"); // lp.y -= (ED_label(e)->dimen.y)/2.0; +UNSUPPORTED("8ew9p3k3j0b33dnq0ntgbb6x8"); // points[1] = points[0] = startp; +UNSUPPORTED("16h577fdghqtaeot735guew4e"); // points[2] = points[3] = points[4] = lp; +UNSUPPORTED("9zjfovamhwwehbviws68s5woy"); // points[5] = points[6] = endp; +UNSUPPORTED("68ojpcos92c96bc0i5ag1yb6v"); // ps = points; +UNSUPPORTED("1uunj4jbr2uhiqxwor6rzmr3j"); // pn = 7; + } + else { + lb.getStruct("LL").setDouble("x", ND_coord(ln).getDouble("x") - ND_lw(ln)); + lb.getStruct("UR").setDouble("x", ND_coord(ln).getDouble("x") + ND_rw(ln)); + lb.getStruct("UR").setDouble("y", ND_coord(ln).getDouble("y") + ND_ht(ln)/2); + ydelta = (int)(ND_coord(ln).getDouble("y") - GD_rank(g).plus(ND_rank(tn)).getDouble("ht1") - + ND_coord(tn).getDouble("y") + GD_rank(g).plus(ND_rank(tn)).getDouble("ht2")); + ydelta = (int)(ydelta / 6.); + lb.getStruct("LL").setDouble("y", lb.getStruct("UR").getDouble("y") - MAX(5.,ydelta)); + boxn = 0; + makeFlatEnd (g, sp, P, tn, e, tend.amp(), NOT(false)); + makeFlatEnd (g, sp, P, hn, e, hend.amp(), false); + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("x", tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct().getStruct("LL").getDouble("x")); + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("y", tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct().getStruct("UR").getDouble("y")); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("x", lb.getStruct("LL").getDouble("x")); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("y", lb.getStruct("LL").getDouble("y")); + boxn++; + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("x", tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct().getStruct("LL").getDouble("x")); + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("y", lb.getStruct("LL").getDouble("y")); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("x", hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct().getStruct("UR").getDouble("x")); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("y", lb.getStruct("UR").getDouble("y")); + boxn++; + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("x", lb.getStruct("UR").getDouble("x")); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("y", lb.getStruct("LL").getDouble("y")); + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("y", hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct().getStruct("UR").getDouble("y")); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("x", hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct().getStruct("UR").getDouble("x")); + boxn++; + for (i = 0; i < tend.getInt("boxn"); i++) add_box(P, tend.getArrayOfStruct("boxes").plus(i).getStruct()); + for (i = 0; i < boxn; i++) add_box(P, Z._().boxes.plus(i).getStruct()); + for (i = hend.getInt("boxn") - 1; i >= 0; i--) add_box(P, hend.getArrayOfStruct("boxes").plus(i).getStruct()); + if (et == (5 << 1)) ps = routesplines(P, pn); + else ps = routepolylines(P, pn); + if (pn[0] == 0) return; + } + clip_and_install(e, aghead(e), ps, pn[0], Z._().sinfo.amp()); +} finally { +LEAVING("w8ptjibydq995d2lexg85mku","make_flat_labeled_edge"); +} +} + + + + +//3 d97ga7gm34rs6r0jo494nhhuo +// static void make_flat_bottom_edges(graph_t* g, spline_info_t* sp, path * P, edge_t ** edges, int ind, int cnt, edge_t* e, int splines) +public static Object make_flat_bottom_edges(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("bkp39vt080is6iiqobsw59sk9"); // make_flat_bottom_edges(graph_t* g, spline_info_t* sp, path * P, edge_t ** edges, int +UNSUPPORTED("2gat0ltxh7j57lspwmm9s9x7j"); // ind, int cnt, edge_t* e, int splines) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5np4z3gp6cfmicyuz91nownp8"); // node_t *tn, *hn; +UNSUPPORTED("3zgmm04g7gq65c57gco0id1eb"); // int j, i, r; +UNSUPPORTED("5wdd96amz7w1sym59mg5nfj51"); // double stepx, stepy, vspace; +UNSUPPORTED("63ozqzusft8gpehyaqrdjyr1"); // rank_t* nextr; +UNSUPPORTED("7hps2kejtrotcphg5gymma43b"); // int pn; +UNSUPPORTED("2rkzhui0essisp5zlw44vx4j9"); // pointf *ps; +UNSUPPORTED("32b8td88encjfj6yd1sp8bef"); // pathend_t tend, hend; +UNSUPPORTED("d0x4emyekwlcpua99voy3764p"); // tn = agtail(e); +UNSUPPORTED("axoua6xpo7xc40u2oj0a8dmr9"); // hn = aghead(e); +UNSUPPORTED("63jjxtcojh1aq4na9u4w2a6xe"); // r = ND_rank(tn); +UNSUPPORTED("atjnavwfg3xe4ygorslb4vvtv"); // if (r < GD_maxrank(g)) { +UNSUPPORTED("6b35lbhficoaf5216p3sdq1cj"); // nextr = GD_rank(g) + (r+1); +UNSUPPORTED("bj0cch0dmhpux7wm3fg4zg368"); // vspace = ND_coord(tn).y - GD_rank(g)[r].pht1 - +UNSUPPORTED("dqcrkagghulp8u9iuoyckepf7"); // (ND_coord(nextr->v[0]).y + nextr->pht2); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("1sai54q4zfayczfcrklgw4x17"); // vspace = GD_ranksep(g); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dyxkx5ftlgbeem7089pcu1qo4"); // stepx = ((double)(sp->Multisep)) / (cnt+1); +UNSUPPORTED("63qqo8mqbn6alfa5k3gfalz53"); // stepy = vspace / (cnt+1); +UNSUPPORTED("euw24sa4cgazdf9z7a3sretis"); // makeBottomFlatEnd (g, sp, P, tn, e, &tend, NOT(0)); +UNSUPPORTED("c8ip2hla7pb8tz4fhsj5m34wk"); // makeBottomFlatEnd (g, sp, P, hn, e, &hend, 0); +UNSUPPORTED("1psokm6w9e7qw7fm2g1cayuk7"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("3smlz0a87gj8w58rwau2ewq23"); // int boxn; +UNSUPPORTED("bg5tj2hjixth58v04043jb3do"); // boxf b; +UNSUPPORTED("8hwholxjp08y4q0zbb561684q"); // e = edges[ind + i]; +UNSUPPORTED("cpcqkqkhkaviy153h92apd82e"); // boxn = 0; +UNSUPPORTED("4wkbaj2424ug9j97efwu1r5mc"); // b = tend.boxes[tend.boxn - 1]; +UNSUPPORTED("3eyfj1o1bqxlfqw7tq76qiiiz"); // boxes[boxn].LL.x = b.LL.x; +UNSUPPORTED("dwlejn7xasxh4yyoq2xodqnyj"); // boxes[boxn].UR.y = b.LL.y; +UNSUPPORTED("10o1e4r5ux8d7cr6zg379ss59"); // boxes[boxn].UR.x = b.UR.x + (i + 1) * stepx; +UNSUPPORTED("79f4mryzkqqs3t4sxnet9jc7b"); // boxes[boxn].LL.y = b.LL.y - (i + 1) * stepy; +UNSUPPORTED("cbrsymd5wpvadg3ziz4dypa50"); // boxn++; +UNSUPPORTED("7n7f256w4ewtzexwfxjo28b2"); // boxes[boxn].LL.x = tend.boxes[tend.boxn - 1].LL.x; +UNSUPPORTED("6in0ql0upnjg00mgj5k8av2m4"); // boxes[boxn].UR.y = boxes[boxn-1].LL.y; +UNSUPPORTED("46ftsiqovpzo9r0mnlc4nf83"); // boxes[boxn].UR.x = hend.boxes[hend.boxn - 1].UR.x; +UNSUPPORTED("4bjnn4mhczzd1un9rbib5glch"); // boxes[boxn].LL.y = boxes[boxn].UR.y - stepy; +UNSUPPORTED("cbrsymd5wpvadg3ziz4dypa50"); // boxn++; +UNSUPPORTED("6oycftap8apw4glb1s5jzineu"); // b = hend.boxes[hend.boxn - 1]; +UNSUPPORTED("77c1sajrw9kfc7avomly90gm8"); // boxes[boxn].UR.x = b.UR.x; +UNSUPPORTED("e94nxsepfdq17q69drbro41je"); // boxes[boxn].UR.y = b.LL.y; +UNSUPPORTED("6cipt7th0uv2xfwyh4rvwignj"); // boxes[boxn].LL.x = b.LL.x - (i + 1) * stepx; +UNSUPPORTED("50uajtfbvgkrruywpjq9m4zoj"); // boxes[boxn].LL.y = boxes[boxn-1].UR.y; +UNSUPPORTED("cbrsymd5wpvadg3ziz4dypa50"); // boxn++; +UNSUPPORTED("eu29s7oeoca2yo9trhfhb9juy"); // for (j = 0; j < tend.boxn; j++) add_box(P, tend.boxes[j]); +UNSUPPORTED("b8xs00axp4lkksof6hmim3n3x"); // for (j = 0; j < boxn; j++) add_box(P, boxes[j]); +UNSUPPORTED("ahci7z910ypoj0e54wchvk54v"); // for (j = hend.boxn - 1; j >= 0; j--) add_box(P, hend.boxes[j]); +UNSUPPORTED("7r9nsxbfy7w3csc04nxo97xpq"); // if (splines) ps = routesplines(P, &pn); +UNSUPPORTED("dfku80ag90r137s9az9493oow"); // else ps = routepolylines(P, &pn); +UNSUPPORTED("919jubmuis4tp1c1f87rvfhog"); // if (pn == 0) +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("62oxk9cc5wf0f8gqbothfte1f"); // clip_and_install(e, aghead(e), ps, pn, &sinfo); +UNSUPPORTED("l1nh40fo9oar4mz31h14bc9i"); // P->nbox = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6yr3jfkljl5w0z6dv354ryx63 +// static void make_flat_edge(graph_t* g, spline_info_t* sp, path * P, edge_t ** edges, int ind, int cnt, int et) +public static void make_flat_edge(Agraph_s g, spline_info_t sp, path P, __ptr__ edges, int ind, int cnt, int et) { +ENTERING("6yr3jfkljl5w0z6dv354ryx63","make_flat_edge"); +try { + Agnode_s tn, hn; + final __struct__ fwdedgei = __struct__.from(Agedgeinfo_t.class); + final __struct__ fwdedge = __struct__.from(Agedgepair_s.class); + Agedge_s e; + int j, i, r, isAdjacent; + double stepx, stepy, vspace; + int tside, hside; + int pn[] = new int[] {0}; + pointf ps; + final __struct__ tend = __struct__.from(pathend_t.class), hend = __struct__.from(pathend_t.class); + fwdedge.getStruct("out").getStruct("base").setPtr("data", fwdedgei.amp()); + /* Get sample edge; normalize to go from left to right */ + e = (Agedge_s) edges.plus(ind).getPtr(); + isAdjacent = ED_adjacent(e); + if ((ED_tree_index(e) & 32)!=0) { + MAKEFWDEDGE(fwdedge.getStruct("out").amp(), e); + e = (Agedge_s) fwdedge.getStruct("out").amp(); + } + for (i = 1; i < cnt; i++) { + if (ED_adjacent(edges.plus(ind+i).getPtr())!=0) { + isAdjacent = 1; + break; + } + } + /* The lead edge edges[ind] might not have been marked earlier as adjacent, + * so check them all. + */ + if (isAdjacent!=0) { + make_flat_adj_edges (g, P, edges, ind, cnt, e, et); + return; + } + if (ED_label(e)!=null) { /* edges with labels aren't multi-edges */ + make_flat_labeled_edge (g, sp, P, e, et); + return; + } + if (et == (1 << 1)) { + makeSimpleFlat (agtail(e), aghead(e), edges, ind, cnt, et); + return; + } + tside = ED_tail_port(e).getInt("side"); + hside = ED_head_port(e).getInt("side"); + if (((tside == (1<<0)) && (hside != (1<<2))) || + ((hside == (1<<0)) && (tside != (1<<2)))) { + make_flat_bottom_edges (g, sp, P, edges, ind, cnt, e, et == (5 << 1)); + return; + } + tn = agtail(e); + hn = aghead(e); + r = ND_rank(tn); + if (r > 0) { + __ptr__ prevr; + if ((GD_has_labels(g) & (1 << 0))!=0) + prevr = GD_rank(g).plus(r-2); + else + prevr = GD_rank(g).plus(r-1); + vspace = ND_coord(prevr.getPtr().getArrayOfPtr("v").plus(0).getPtr()).getDouble("y") - prevr.getPtr().getDouble("ht1") + - ND_coord(tn).getDouble("y") - GD_rank(g).plus(r).getDouble("ht2"); + } + else { + vspace = GD_ranksep(g); + } + stepx = ((double)sp.getInt("Multisep")) / (cnt+1); + stepy = vspace / (cnt+1); + makeFlatEnd (g, sp, P, tn, e, tend.amp(), true); + makeFlatEnd (g, sp, P, hn, e, hend.amp(), false); + for (i = 0; i < cnt; i++) { + int boxn; + final __struct__ b = __struct__.from(boxf.class); + e = (Agedge_s) edges.plus(ind + i).getPtr(); + boxn = 0; + b.____(tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct()); + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("x", b.getStruct("LL").getDouble("x")); + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("y", b.getStruct("UR").getDouble("y")); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("x", b.getStruct("UR").getDouble("x") + (i + 1) * stepx); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("y", b.getStruct("UR").getDouble("y") + (i + 1) * stepy); + boxn++; + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("x", tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct().getStruct("LL").getDouble("x")); + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("y", Z._().boxes.plus(boxn-1).getStruct().getStruct("UR").getDouble("y")); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("x", hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct().getStruct("UR").getDouble("x")); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("y", Z._().boxes.plus(boxn).getStruct().getStruct("LL").getDouble("y") + stepy); + boxn++; + b.____(hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct()); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("x", b.getStruct("UR").getDouble("x")); + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("y", b.getStruct("UR").getDouble("y")); + Z._().boxes.plus(boxn).getStruct().getStruct("LL").setDouble("x", b.getStruct("LL").getDouble("x") - (i + 1) * stepx); + Z._().boxes.plus(boxn).getStruct().getStruct("UR").setDouble("y", Z._().boxes.plus(boxn-1).getStruct().getStruct("LL").getDouble("y")); + boxn++; + for (j = 0; j < tend.getInt("boxn"); j++) add_box(P, tend.getArrayOfStruct("boxes").plus(j).getStruct()); + for (j = 0; j < boxn; j++) add_box(P, Z._().boxes.plus(j).getStruct()); + for (j = hend.getInt("boxn") - 1; j >= 0; j--) add_box(P, hend.getArrayOfStruct("boxes").plus(j).getStruct()); + if (et == (5 << 1)) ps = (pointf) routesplines(P, pn); + else ps = (pointf) routepolylines(P, pn); + if (pn[0] == 0) + return; + clip_and_install(e, aghead(e), ps, pn[0], Z._().sinfo.amp()); + P.setInt("nbox", 0); + } +} finally { +LEAVING("6yr3jfkljl5w0z6dv354ryx63","make_flat_edge"); +} +} + + + + +//3 78oy7e2xm3t4de66du11ej05j +// static int leftOf (pointf p1, pointf p2, pointf p3) +public static Object leftOf(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("iqhj2moads3aafqx5xa8j44g"); // leftOf (pointf p1, pointf p2, pointf p3) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5azgw3jpyk2yccpp3p4s3q817"); // int d; +UNSUPPORTED("42n6sq1mbcvm3tugypozccbua"); // d = ((p1.y - p2.y) * (p3.x - p2.x)) - +UNSUPPORTED("7y9r79gtx363mln6v9yaisvz6"); // ((p3.y - p2.y) * (p1.x - p2.x)); +UNSUPPORTED("8y4f8e0mnow6139qoguzsxojx"); // return (d > 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2n9bpvx34fnukqu1f9u4v7v6n +// static int makeLineEdge(graph_t* g, edge_t* fe, pointf* points, node_t** hp) +public static int makeLineEdge(Agraph_s g, Agedge_s fe, __ptr__ points, __ptr__ hp) { +ENTERING("2n9bpvx34fnukqu1f9u4v7v6n","makeLineEdge"); +try { + UNSUPPORTED("d9cz56vtrl0ri6hz88cumukuf"); // static int +UNSUPPORTED("1act0rov08v6lg5ydqldks7d1"); // makeLineEdge(graph_t* g, edge_t* fe, pointf* points, node_t** hp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("awgar8whid8l1c7lyj8w53w3i"); // int delr, pn; +UNSUPPORTED("ewlm0dtv1gpudqhfx5nsr9d77"); // node_t* hn; +UNSUPPORTED("cncpk333257fxnc9w8kfl8m70"); // node_t* tn; +UNSUPPORTED("etezq0kgy6mttiwr53pna62d7"); // edge_t* e = fe; +UNSUPPORTED("3ll9r1mvzzbhqrs4dwsduif44"); // pointf startp, endp, lp; +UNSUPPORTED("bgjjpl6jaaa122twwwd0vif6x"); // pointf dimen; +UNSUPPORTED("gdtli7sq5cifvdpg3ecrudew"); // double width, height; +UNSUPPORTED("1pa1p9mnpooqack43qfpnoio2"); // while (ED_edge_type(e) != 0) +UNSUPPORTED("bdmai1d040qmubf08ds339v9x"); // e = ED_to_orig(e); +UNSUPPORTED("axoua6xpo7xc40u2oj0a8dmr9"); // hn = aghead(e); +UNSUPPORTED("d0x4emyekwlcpua99voy3764p"); // tn = agtail(e); +UNSUPPORTED("b4x4vd9cei4o3tjifzw7pdec6"); // delr = ABS(ND_rank(hn)-ND_rank(tn)); +UNSUPPORTED("447fk34earndyf1qvvzttsxtk"); // if ((delr == 1) || ((delr == 2) && (GD_has_labels(g) & (1 << 0)))) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("cbnarpi971ox21zdds7a60axh"); // if (agtail(fe) == agtail(e)) { +UNSUPPORTED("o7usaxh5vv7rla55dxzkfmk7"); // *hp = hn; +UNSUPPORTED("48h6vk2e5niep4dmpua377248"); // startp = add_pointf(ND_coord(tn), ED_tail_port(e).p); +UNSUPPORTED("8fokfn1629eyiqnzi7mey9o2q"); // endp = add_pointf(ND_coord(hn), ED_head_port(e).p); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("3uxftvwe3olgfi579s8izpl76"); // *hp = tn; +UNSUPPORTED("akhrhgryddg74jqispnh1j1nn"); // startp = add_pointf(ND_coord(hn), ED_head_port(e).p); +UNSUPPORTED("dqdai9l5thna19ynowkfwstuh"); // endp = add_pointf(ND_coord(tn), ED_tail_port(e).p); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("brrmfllffwlnqxljgrwy8x5pq"); // if (ED_label(e)) { +UNSUPPORTED("et7phi46cskfaxzpfo97e1s5s"); // dimen = ED_label(e)->dimen; +UNSUPPORTED("z26zaj60vrdy38k1c2vk7law"); // if (GD_flip(agraphof(hn))) { +UNSUPPORTED("6mcl7j0bp09d061f0dywd1ru8"); // width = dimen.y; +UNSUPPORTED("eax7dzvpgqzsiffa2dn2idrxe"); // height = dimen.x; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("de3o94hui5i4dbq9moun6h57f"); // width = dimen.x; +UNSUPPORTED("41ge1nnwfokwi43f6tlkgmvb0"); // height = dimen.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("d9umd1qjkl4kkybpd7se993ij"); // lp = ED_label(e)->pos, lp; +UNSUPPORTED("arxilpbzpy5a2s8skwl644jj2"); // if (leftOf (endp,startp,lp)) { +UNSUPPORTED("7bfb4rovu9obr4fje0hi95e67"); // lp.x += width/2.0; +UNSUPPORTED("7y2ejp6vr760aqh5qp4v5zdc8"); // lp.y -= height/2.0; +UNSUPPORTED("9l9roc1u8a03ljwm2mmeaiqq2"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("a4spf3n199lr00qkdb3vb8i6c"); // lp.x -= width/2.0; +UNSUPPORTED("f15m64yxj1oq475bvrt63d5gf"); // lp.y += height/2.0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8ew9p3k3j0b33dnq0ntgbb6x8"); // points[1] = points[0] = startp; +UNSUPPORTED("16h577fdghqtaeot735guew4e"); // points[2] = points[3] = points[4] = lp; +UNSUPPORTED("9zjfovamhwwehbviws68s5woy"); // points[5] = points[6] = endp; +UNSUPPORTED("1uunj4jbr2uhiqxwor6rzmr3j"); // pn = 7; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("8ew9p3k3j0b33dnq0ntgbb6x8"); // points[1] = points[0] = startp; +UNSUPPORTED("aztkfl5qctibiu6en7xf6xf3e"); // points[3] = points[2] = endp; +UNSUPPORTED("5rmgdadjn23z8djo32eh9bhzd"); // pn = 4; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("abnopd2ggrpdb538wf7zsmrhq"); // return pn; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("2n9bpvx34fnukqu1f9u4v7v6n","makeLineEdge"); +} +} + + + + +//3 30wfq1dby4t07hft9io52nq6z +// static void make_regular_edge(graph_t* g, spline_info_t* sp, path * P, edge_t ** edges, int ind, int cnt, int et) +//private static __ptr__ pointfs; +//private static __ptr__ pointfs2; +//private static int numpts; +//private static int numpts2; +public static void make_regular_edge(Agraph_s g, spline_info_t sp, path P, __ptr__ edges, int ind, int cnt, int et) { +ENTERING("30wfq1dby4t07hft9io52nq6z","make_regular_edge"); +try { + Agnode_s tn, hn = null; + final __struct__ fwdedgeai = __struct__.from(Agedgeinfo_t.class), fwdedgebi = __struct__.from(Agedgeinfo_t.class), fwdedgei = __struct__.from(Agedgeinfo_t.class); + final __struct__ fwdedgea = __struct__.from(Agedgepair_s.class), fwdedgeb = __struct__.from(Agedgepair_s.class), fwdedge = __struct__.from(Agedgepair_s.class); + Agedge_s e, fe, le, segfirst; + pointf ps = null; + final __struct__ tend = __struct__.from(pathend_t.class), hend = __struct__.from(pathend_t.class); + final __struct__ b = __struct__.from(boxf.class); + int boxn, sl, si, i, j, dx, hackflag, longedge; + boolean smode; + int pn[] = new int[] {0}; + int pointn[] = new int[] {0}; + fwdedgea.getStruct("out").getStruct("base").setPtr("data", fwdedgeai.amp()); + fwdedgeb.getStruct("out").getStruct("base").setPtr("data", fwdedgebi.amp()); + fwdedge.getStruct("out").getStruct("base").setPtr("data", fwdedgei.amp()); + if (N(Z._().pointfs)) { + Z._().pointfs = gmalloc(sizeof(pointf.class, 2000)); + Z._().pointfs2 = gmalloc(sizeof(pointf.class, 2000)); + Z._().numpts = 2000; + Z._().numpts2 = 2000; + } + sl = 0; + e = (Agedge_s) edges.plus(ind).getPtr(); + hackflag = 0; + if (ABS(ND_rank(agtail(e)) - ND_rank(aghead(e))) > 1) { +UNSUPPORTED("8f17srpa5iisomehrb4b01h51"); // fwdedgeai = *(Agedgeinfo_t*)e->base.data; +UNSUPPORTED("97znyysf99vzzwpgnqcpp5yek"); // fwdedgea.out = *e; +UNSUPPORTED("b6jipryp9p354gtq9lwa35lzj"); // fwdedgea.out.base.data = (Agrec_t*)&fwdedgeai; +UNSUPPORTED("568s5ftes1chv9n1s98g9cncf"); // if (ED_tree_index(e) & 32) { +UNSUPPORTED("9hw2l0eu91vauhvj3cxf3andc"); // MAKEFWDEDGE(&fwdedgeb.out, e); +UNSUPPORTED("1rql0qzotc0yyozcfkj9p8xkm"); // agtail(&fwdedgea.out) = aghead(e); +UNSUPPORTED("dw3p473qmkgjvxewsr8pimi2h"); // ED_tail_port(&fwdedgea.out) = ED_head_port(e); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("2gys0bodxz4fbasfnrvx6ivg2"); // fwdedgebi = *(Agedgeinfo_t*)e->base.data; +UNSUPPORTED("1qqbo2mfls7xhbdno0no8xq54"); // fwdedgeb.out = *e; +UNSUPPORTED("980ksnsma7kvvr9755ge8bhzh"); // fwdedgeb.out.base.data = (Agrec_t*)&fwdedgebi; +UNSUPPORTED("6le0rehxs2odmv3zg1qg5wvd4"); // agtail(&fwdedgea.out) = agtail(e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3p0d08nntark676jlv1jl0j27"); // le = getmainedge(e); +UNSUPPORTED("6tmwmfqoz3y8k44xamrpv82tl"); // while (ED_to_virt(le)) +UNSUPPORTED("1c19c7ftue4zoibf7d2tm6uxy"); // le = ED_to_virt(le); +UNSUPPORTED("d29k9lzj5g3d8dfxigwogdnoe"); // aghead(&fwdedgea.out) = aghead(le); +UNSUPPORTED("36l0czce101bg0wbmu68xjd7z"); // ED_head_port(&fwdedgea.out).defined = 0; +UNSUPPORTED("497rb9p6jdgdoyem0y42ecy6c"); // ED_edge_type(&fwdedgea.out) = 1; +UNSUPPORTED("4tjj1vbw4mog2qlouazrdirvw"); // ED_head_port(&fwdedgea.out).p.x = ED_head_port(&fwdedgea.out).p.y = 0; +UNSUPPORTED("8kdma1vi9aibo7isrge0lunrh"); // ED_to_orig(&fwdedgea.out) = e; +UNSUPPORTED("eih8eaai768x1un5mixrtgstp"); // e = &fwdedgea.out; +UNSUPPORTED("bxkpl0bp0qhtxaj6rspd19d1k"); // hackflag = NOT(0); + } else { + if ((ED_tree_index(e) & 32)!=0) { + MAKEFWDEDGE(fwdedgea.getPtr("out"), e); + e = (Agedge_s) fwdedgea.getPtr("out"); + } + } + fe = e; + /* compute the spline points for the edge */ + if ((et == (1 << 1)) && (pointn[0] = makeLineEdge (g, fe, Z._().pointfs, hn.unsupported()))!=0) { + } + else { + boolean splines = (et == (5 << 1)); + boxn = 0; + pointn[0] = 0; + segfirst = e; + tn = agtail(e); + hn = aghead(e); + b.____(maximal_bbox(g, sp, tn, null, e)); + tend.getStruct("nb").____(b); + beginpath(P, e, 1, tend.amp(), spline_merge(tn)); + b.getStruct("UR").setDouble("y", + tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct().getStruct("UR").getDouble("y")); + b.getStruct("LL").setDouble("y", + tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct().getStruct("LL").getDouble("y")); + b.____(makeregularend(b, (1<<0), + ND_coord(tn).getDouble("y") - GD_rank(g).plus(ND_rank(tn)).getDouble("ht1"))); + if (b.getStruct("LL").getDouble("x") < b.getStruct("UR").getDouble("x") && b.getStruct("LL").getDouble("y") < b.getStruct("UR").getDouble("y")) + { + tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn")).setStruct(b); + tend.setInt("boxn", tend.getInt("boxn") + 1); + } + longedge = 0; + smode = false; si = -1; + while (ND_node_type(hn) == 1 && N(((Boolean)Z._().sinfo.call("splineMerge", hn)).booleanValue())) { + longedge = 1; + Z._().boxes.plus(boxn++).setStruct(rank_box(sp, g, ND_rank(tn))); + if (N(smode) + && ((sl = straight_len(hn)) >= + ((GD_has_labels(g) & (1 << 0))!=0 ? 4 + 1 : 2 + 1))) { + smode = NOT(false); + si = 1; sl -= 2; + } + if (N(smode) || si > 0) { + si--; + Z._().boxes.plus(boxn++).setStruct( maximal_bbox(g, sp, hn, e, (Agedge_s) ND_out(hn).getArrayOfPtr("list").plus(0).getPtr())); + e = (Agedge_s) ND_out(hn).getArrayOfPtr("list").plus(0).getPtr(); + tn = agtail(e); + hn = aghead(e); + continue; + } + hend.setStruct("nb", maximal_bbox(g, sp, hn, e, (Agedge_s) ND_out(hn).getArrayOfPtr("list").plus(0).getPtr())); + endpath(P, e, 1, hend.amp(), spline_merge(aghead(e))); + b.____(makeregularend(hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct(), (1<<2), + ND_coord(hn).getDouble("y") + GD_rank(g).plus(ND_rank(hn)).getDouble("ht2"))); + if (b.getStruct("LL").getDouble("x") < b.getStruct("UR").getDouble("x") && b.getStruct("LL").getDouble("y") < b.getStruct("UR").getDouble("y")) +UNSUPPORTED("1crhubfzekx1qi2ti9ajqsfoc"); // hend.boxes[hend.boxn++] = b; + P.getStruct("end").setDouble("theta", M_PI / 2); + P.getStruct("end").setBoolean("constrained", NOT(false)); + completeregularpath(P, segfirst, e, tend.amp(), hend.amp(), Z._().boxes, boxn, 1); + if (splines) ps = routesplines(P, pn); + else { +UNSUPPORTED("biyp75vm751j3qmqacagfej4b"); // ps = routepolylines (P, &pn); +UNSUPPORTED("4fmdmgg43suu7ppgrcaofwqzh"); // if ((et == (1 << 1)) && (pn > 4)) { +UNSUPPORTED("2ftwbx9nsy10ldzds3ej4hxi7"); // ps[1] = ps[0]; +UNSUPPORTED("2fedie0btpk43e74p462n0y4n"); // ps[3] = ps[2] = ps[pn-1]; +UNSUPPORTED("3fwatldph3opctz8aieqd214d"); // pn = 4; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } + } + if (pn[0] == 0) + return; + if (pointn[0] + pn[0] > Z._().numpts) { + /* This should be enough to include 3 extra points added by + * straight_path below. + */ +UNSUPPORTED("k37sqlxbjikqg4xdonnvefo3"); // numpts = 2*(pointn+pn); +UNSUPPORTED("8kbxhk7qirj3tr7hn1ukwar3h"); // pointfs = RALLOC(numpts, pointfs, pointf); + } + for (i = 0; i < pn[0]; i++) { + Z._().pointfs.plus(pointn[0]++).setStruct(ps.plus(i).getStruct()); + } + e = straight_path((Agedge_s)ND_out(hn).getArrayOfPtr("list").plus(0).getPtr(), sl, Z._().pointfs, pointn); + recover_slack(segfirst, P); + segfirst = e; + tn = agtail(e); + hn = aghead(e); + boxn = 0; + tend.setStruct("nb", maximal_bbox(g, sp, tn, (Agedge_s) ND_in(tn).getArrayOfPtr("list").plus(0).getPtr(), e)); + beginpath(P, e, 1, tend.amp(), spline_merge(tn)); + b.____(makeregularend(tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct(), (1<<0), + ND_coord(tn).getDouble("y") - GD_rank(g).plus(ND_rank(tn)).getDouble("ht1"))); + if (b.getStruct("LL").getDouble("x") < b.getStruct("UR").getDouble("x") && b.getStruct("LL").getDouble("y") < b.getStruct("UR").getDouble("y")) +UNSUPPORTED("cjx6tldge3otk1pk6ks1pkn2w"); // tend.boxes[tend.boxn++] = b; + P.getStruct("start").setDouble("theta", -M_PI / 2); + P.getStruct("start").setBoolean("constrained", NOT(false)); + smode = false; + } + Z._().boxes.plus(boxn++).setStruct(rank_box(sp, g, ND_rank(tn))); + b.____(maximal_bbox(g, sp, hn, e, null)); + hend.getStruct("nb").____(b); + endpath(P, hackflag!=0 ? fwdedgeb.getStruct("out").amp() : e, 1, hend.amp(), spline_merge(aghead(e))); + b.getStruct("UR").setDouble("y", hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct().getStruct("UR").getDouble("y")); + b.getStruct("LL").setDouble("y", hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct().getStruct("LL").getDouble("y")); + b.____(makeregularend(b, (1<<2), + ND_coord(hn).getDouble("y") + GD_rank(g).plus(ND_rank(hn)).getDouble("ht2"))); + if (b.getStruct("LL").getDouble("x") < b.getStruct("UR").getDouble("x") && b.getStruct("LL").getDouble("y") < b.getStruct("UR").getDouble("y")) + { + hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn")).setStruct(b); + hend.setInt("boxn", hend.getInt("boxn")+1); + } + completeregularpath(P, segfirst, e, tend.amp(), hend.amp(), Z._().boxes, boxn, + longedge); + if (splines) ps = routesplines(P, pn); + else ps = routepolylines (P, pn); + if ((et == (1 << 1)) && (pn[0] > 4)) { + /* Here we have used the polyline case to handle + * an edge between two nodes on adjacent ranks. If the + * results really is a polyline, straighten it. + */ +UNSUPPORTED("1u7e6lrkiipml54kkm7ylw56t"); // ps[1] = ps[0]; +UNSUPPORTED("76bh6z0xok01d0gdybxcx4ful"); // ps[3] = ps[2] = ps[pn-1]; +UNSUPPORTED("95b6xp8h5ai070bekyjhmiehh"); // pn = 4; + } + if (pn[0] == 0) + return; + if (pointn[0] + pn[0] > Z._().numpts) { +UNSUPPORTED("c6ux5effs02grz7xh3k8ernda"); // numpts = 2*(pointn+pn); +UNSUPPORTED("bedaqcn9h03q6ia6zbezuee1m"); // pointfs = RALLOC(numpts, pointfs, pointf); + } + for (i = 0; i < pn[0]; i++) { + Z._().pointfs.plus(pointn[0]).setStruct(ps.plus(i).getStruct()); + pointn[0]++; + } + recover_slack(segfirst, P); + hn = hackflag!=0 ? aghead(fwdedgeb.getStruct("out").amp()) : aghead(e); + } + /* make copies of the spline points, one per multi-edge */ + if (cnt == 1) { + clip_and_install(fe, hn, Z._().pointfs, pointn[0], Z._().sinfo.amp()); + return; + } + dx = sp.getInt("Multisep") * (cnt - 1) / 2; + for (i = 1; i < pointn[0] - 1; i++) + Z._().pointfs.plus(i).setDouble("x", Z._().pointfs.plus(i).getDouble("x") - dx); + if (Z._().numpts > Z._().numpts2) { +UNSUPPORTED("9ubr4m7bdv5f5ldk2ta6yw3up"); // numpts2 = numpts; +UNSUPPORTED("8qwp7ddy5ztgam63fzfjmu890"); // pointfs2 = RALLOC(numpts2, pointfs2, pointf); + } + for (i = 0; i < pointn[0]; i++) + Z._().pointfs2.plus(i).setStruct(Z._().pointfs.plus(i).getStruct()); + clip_and_install(fe, hn, Z._().pointfs2, pointn[0], Z._().sinfo.amp()); + for (j = 1; j < cnt; j++) { + e = (Agedge_s) edges.plus(ind + j).getPtr(); + if ((ED_tree_index(e) & 32)!=0) { + MAKEFWDEDGE(fwdedge.getStruct("out").amp(), e); + e = (Agedge_s) fwdedge.getStruct("out").amp(); + } + for (i = 1; i < pointn[0] - 1; i++) + Z._().pointfs.plus(i).setDouble("x", Z._().pointfs.plus(i).getDouble("x") + sp.getInt("Multisep")); + for (i = 0; i < pointn[0]; i++) + Z._().pointfs2.plus(i).setStruct(Z._().pointfs.plus(i).getStruct()); + clip_and_install(e, aghead(e), Z._().pointfs2, pointn[0], Z._().sinfo.amp()); + } +} finally { +LEAVING("30wfq1dby4t07hft9io52nq6z","make_regular_edge"); +} +} + + + + +//3 va61hggynvb6z6j34w7otmab +// static void completeregularpath(path * P, edge_t * first, edge_t * last, pathend_t * tendp, pathend_t * hendp, boxf * boxes, int boxn, int flag) +public static void completeregularpath(path P, Agedge_s first, Agedge_s last, pathend_t tendp, pathend_t hendp, __array_of_struct__ boxes, int boxn, int flag) { +ENTERING("va61hggynvb6z6j34w7otmab","completeregularpath"); +try { + Agedge_s uleft, uright, lleft, lright; + int i, fb, lb; + splines spl; + pointf pp; + int pn; + fb = lb = -1; + uleft = uright = null; + uleft = top_bound(first, -1); + uright = top_bound(first, 1); + if (uleft!=null) { + if (N(spl = getsplinepoints(uleft))) return; + pp = (pointf) spl.getArrayOfPtr("list").plus(0).getPtr().getPtr("list"); + pn = spl.getArrayOfPtr("list").plus(0).getPtr().getInt("size"); + } + if (uright!=null) { + if (N(spl = getsplinepoints(uright))) return; + pp = (pointf) spl.getArrayOfPtr("list").plus(0).getPtr().getPtr("list"); + pn = spl.getArrayOfPtr("list").plus(0).getPtr().getInt("size"); + } + lleft = lright = null; + lleft = bot_bound(last, -1); + lright = bot_bound(last, 1); + if (lleft!=null) { + if (N(spl = getsplinepoints(lleft))) return; + pp = (pointf) spl.getArrayOfPtr("list").plus(spl.getInt("size") - 1).getPtr().getPtr("list"); + pn = spl.getArrayOfPtr("list").plus(spl.getInt("size") - 1).getPtr().getInt("size"); + } + if (lright!=null) { + if (N(spl = getsplinepoints(lright))) return; + pp = (pointf) spl.getArrayOfPtr("list").plus(spl.getInt("size") - 1).getPtr().getPtr("list"); + pn = spl.getArrayOfPtr("list").plus(spl.getInt("size") - 1).getPtr().getInt("size"); + } + for (i = 0; i < tendp.getInt("boxn"); i++) + add_box(P, tendp.getArrayOfStruct("boxes").plus(i).getStruct()); + fb = P.getInt("nbox") + 1; + lb = fb + boxn - 3; + for (i = 0; i < boxn; i++) + add_box(P, boxes.plus(i).getStruct()); + for (i = hendp.getInt("boxn") - 1; i >= 0; i--) + add_box(P, hendp.getArrayOfStruct("boxes").plus(i).getStruct()); + adjustregularpath(P, fb, lb); +} finally { +LEAVING("va61hggynvb6z6j34w7otmab","completeregularpath"); +} +} + + + + +//3 3wwhczhpkcnflwr1l9wcga7tq +// static boxf makeregularend(boxf b, int side, double y) +public static __struct__ makeregularend(final __struct__ b, int side, double y) { +// WARNING!! STRUCT +return makeregularend_w_(b.copy(), side, y).copy(); +} +private static __struct__ makeregularend_w_(final __struct__ b, int side, double y) { +ENTERING("3wwhczhpkcnflwr1l9wcga7tq","makeregularend"); +try { + final __struct__ newb = __struct__.from(boxf.class); + switch (side) { + case (1<<0): + newb.____(boxfof(b.getStruct("LL").getDouble("x"), y, b.getStruct("UR").getDouble("x"), b.getStruct("LL").getDouble("y"))); + break; + case (1<<2): + newb.____(boxfof(b.getStruct("LL").getDouble("x"), b.getStruct("UR").getDouble("y"), b.getStruct("UR").getDouble("x"), y)); + break; + } + return newb; +} finally { +LEAVING("3wwhczhpkcnflwr1l9wcga7tq","makeregularend"); +} +} + + + + +//3 88xrlzjovkxcnay9b2y5zyiid +// static void adjustregularpath(path * P, int fb, int lb) +public static void adjustregularpath(path P, int fb, int lb) { +ENTERING("88xrlzjovkxcnay9b2y5zyiid","adjustregularpath"); +try { + boxf bp1, bp2; + int i, x; + for (i = fb-1; i < lb+1; i++) { + bp1 = P.getArrayOfPtr("boxes").plus(i).getStruct().amp(); + if ((i - fb) % 2 == 0) { + if (bp1.getStruct("LL").getDouble("x") >= bp1.getStruct("UR").getDouble("x")) { + x = (int)((bp1.getStruct("LL").getDouble("x") + bp1.getStruct("UR").getDouble("x")) / 2); + bp1.getStruct("LL").setDouble("x", x - 8); + bp1.getStruct("UR").setDouble("x", x + 8); + } + } else { + if (bp1.getStruct("LL").getDouble("x") + 16 > bp1.getStruct("UR").getDouble("x")) { + x = (int)((bp1.getStruct("LL").getDouble("x") + bp1.getStruct("UR").getDouble("x")) / 2); + bp1.getStruct("LL").setDouble("x", x - 8); + bp1.getStruct("UR").setDouble("x", x + 8); + } + } + } + for (i = 0; i < P.getInt("nbox") - 1; i++) { + bp1 = P.getArrayOfPtr("boxes").plus(i).getStruct().amp(); + bp2 = P.getArrayOfPtr("boxes").plus(i+1).getStruct().amp(); + if (i >= fb && i <= lb && (i - fb) % 2 == 0) { + if (bp1.getStruct("LL").getDouble("x") + 16 > bp2.getStruct("UR").getDouble("x")) + bp2.getStruct("UR").setDouble("x", bp1.getStruct("LL").getDouble("x") + 16); + if (bp1.getStruct("UR").getDouble("x") - 16 < bp2.getStruct("LL").getDouble("x")) + bp2.getStruct("LL").setDouble("x", bp1.getStruct("UR").getDouble("x") - 16); + } else if (i + 1 >= fb && i < lb && (i + 1 - fb) % 2 == 0) { + if (bp1.getStruct("LL").getDouble("x") + 16 > bp2.getStruct("UR").getDouble("x")) + bp1.getStruct("LL").setDouble("x", bp2.getStruct("UR").getDouble("x") - 16); + if (bp1.getStruct("UR").getDouble("x") - 16 < bp2.getStruct("LL").getDouble("x")) + bp1.getStruct("UR").setDouble("x", bp2.getStruct("LL").getDouble("x") + 16); + } + } +} finally { +LEAVING("88xrlzjovkxcnay9b2y5zyiid","adjustregularpath"); +} +} + + + + +//3 bajn5vx0isu427n6dh131b985 +// static boxf rank_box(spline_info_t* sp, graph_t * g, int r) +public static __struct__ rank_box(spline_info_t sp, Agraph_s g, int r) { +// WARNING!! STRUCT +return rank_box_w_(sp, g, r).copy(); +} +private static __struct__ rank_box_w_(spline_info_t sp, Agraph_s g, int r) { +ENTERING("bajn5vx0isu427n6dh131b985","rank_box"); +try { + final __struct__ b = __struct__.from(boxf.class); + Agnode_s /* *right0, *right1, */ left0, left1; + b.____(sp.getPtr("Rank_box").plus(r).getStruct()); + if (b.getStruct("LL").getDouble("x") == b.getStruct("UR").getDouble("x")) { + left0 = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr(); + /* right0 = GD_rank(g)[r].v[GD_rank(g)[r].n - 1]; */ + left1 = (Agnode_s) GD_rank(g).plus(r + 1).getArrayOfPtr("v").plus(0).getPtr(); + /* right1 = GD_rank(g)[r + 1].v[GD_rank(g)[r + 1].n - 1]; */ + b.getStruct("LL").setDouble("x", sp.getInt("LeftBound")); + b.getStruct("LL").setDouble("y", ND_coord(left1).getDouble("y") + GD_rank(g).plus(r + 1).getDouble("ht2")); + b.getStruct("UR").setDouble("x", sp.getInt("RightBound")); + b.getStruct("UR").setDouble("y", ND_coord(left0).getDouble("y") - GD_rank(g).plus(r).getDouble("ht1")); + sp.getPtr("Rank_box").plus(r).setStruct(b); + } + return b; +} finally { +LEAVING("bajn5vx0isu427n6dh131b985","rank_box"); +} +} + + + + +//3 6qwcnugx2ytjrvi5rgxzyzg5i +// static int straight_len(node_t * n) +public static int straight_len(Agnode_s n) { +ENTERING("6qwcnugx2ytjrvi5rgxzyzg5i","straight_len"); +try { + int cnt = 0; + Agnode_s v; + v = n; + while (true) { + v = (Agnode_s) aghead(ND_out(v).getArrayOfPtr("list").plus(0).getPtr()); + if (ND_node_type(v) != 1) + break; + if ((ND_out(v).getInt("size") != 1) || (ND_in(v).getInt("size") != 1)) + break; + if (ND_coord(v).getDouble("x") != ND_coord(n).getDouble("x")) + break; + cnt++; + } + return cnt; +} finally { +LEAVING("6qwcnugx2ytjrvi5rgxzyzg5i","straight_len"); +} +} + + + + +//3 15pgjjuil2c1rjldu29j07gbz +// static edge_t *straight_path(edge_t * e, int cnt, pointf * plist, int *np) +public static Agedge_s straight_path(Agedge_s e, int cnt, __ptr__ plist, int np[]) { +ENTERING("15pgjjuil2c1rjldu29j07gbz","straight_path"); +try { + int n = np[0]; + Agedge_s f = e; + while ((cnt--)!=0) + f = (Agedge_s) ND_out(aghead(f)).getArrayOfPtr("list").plus(0).getPtr(); + plist.plus(np[0]++).setStruct(plist.plus(n - 1).getStruct()); + plist.plus(np[0]++).setStruct(plist.plus(n - 1).getStruct()); + plist.plus(np[0]).setStruct(ND_coord(agtail(f))); /* will be overwritten by next spline */ + return f; +} finally { +LEAVING("15pgjjuil2c1rjldu29j07gbz","straight_path"); +} +} + + + + +//3 4ilkzqtegd5uffawb4qcjthu1 +// static void recover_slack(edge_t * e, path * p) +public static void recover_slack(Agedge_s e, path p) { +ENTERING("4ilkzqtegd5uffawb4qcjthu1","recover_slack"); +try { + int b; + Agnode_s vn; + b = 0; /* skip first rank box */ + for (vn = aghead(e); + ND_node_type(vn) == 1 && N(((Boolean)Z._().sinfo.call("splineMerge", vn)).booleanValue()); + vn = aghead(ND_out(vn).getArrayOfPtr("list").plus(0).getPtr())) { + while ((b < p.getInt("nbox")) && (p.getPtr("boxes").plus(b).getStruct("LL").getDouble("y") > ND_coord(vn).getDouble("y"))) + b++; + if (b >= p.getInt("nbox")) + break; + if (p.getPtr("boxes").plus(b).getStruct("UR").getDouble("y") < ND_coord(vn).getDouble("y")) + continue; + if (ND_label(vn)!=null) + resize_vn(vn, (int)p.getPtr("boxes").plus(b).getStruct("LL").getDouble("x"), (int)p.getPtr("boxes").plus(b).getStruct("UR").getDouble("x"), + (int)(p.getPtr("boxes").plus(b).getStruct("UR").getDouble("x") + ND_rw(vn))); + else + resize_vn(vn, (int)p.getPtr("boxes").plus(b).getStruct("LL").getDouble("x"), (int)((p.getPtr("boxes").plus(b).getStruct("LL").getDouble("x") + + p.getPtr("boxes").plus(b).getStruct("UR").getDouble("x")) / 2), + (int)p.getPtr("boxes").plus(b).getStruct("UR").getDouble("x")); + } +} finally { +LEAVING("4ilkzqtegd5uffawb4qcjthu1","recover_slack"); +} +} + + + + +//3 3vmg1q1r0eb14etvjdk4cukpd +// static void resize_vn(vn, lx, cx, rx) node_t *vn +public static void resize_vn(Agnode_s vn, int lx, int cx, int rx) { +ENTERING("3vmg1q1r0eb14etvjdk4cukpd","resize_vn"); +try { + ND_coord(vn).setDouble("x", cx); + ND_lw(vn, cx - lx); + ND_rw(vn, rx - cx); +} finally { +LEAVING("3vmg1q1r0eb14etvjdk4cukpd","resize_vn"); +} +} + + + + +//3 9t0v5wicmjuc3ij9hko6iawle +// static edge_t *top_bound(edge_t * e, int side) +public static Agedge_s top_bound(Agedge_s e, int side) { +ENTERING("9t0v5wicmjuc3ij9hko6iawle","top_bound"); +try { + Agedge_s f, ans = null; + int i; + for (i = 0; (f = (Agedge_s) ND_out(agtail(e)).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if (side * (ND_order(aghead(f)) - ND_order(aghead(e))) <= 0) + continue; + if ((ED_spl(f) == null) + && ((ED_to_orig(f) == null) || (ED_spl(ED_to_orig(f)) == null))) + continue; + if ((ans == null) + || (side * (ND_order(aghead(ans)) - ND_order(aghead(f))) > 0)) + ans = f; + } + return ans; +} finally { +LEAVING("9t0v5wicmjuc3ij9hko6iawle","top_bound"); +} +} + + + + +//3 9fsg0uiyhtrayd4mimmc0i25e +// static edge_t *bot_bound(edge_t * e, int side) +public static Agedge_s bot_bound(Agedge_s e, int side) { +ENTERING("9fsg0uiyhtrayd4mimmc0i25e","bot_bound"); +try { + Agedge_s f, ans = null; + int i; + for (i = 0; (f = (Agedge_s) ND_in(aghead(e)).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if (side * (ND_order(agtail(f)) - ND_order(agtail(e))) <= 0) + continue; + if ((ED_spl(f) == null) + && ((ED_to_orig(f) == null) || (ED_spl(ED_to_orig(f)) == null))) + continue; + if ((ans == null) + || (side * (ND_order(agtail(ans)) - ND_order(agtail(f))) > 0)) + ans = f; + } + return ans; +} finally { +LEAVING("9fsg0uiyhtrayd4mimmc0i25e","bot_bound"); +} +} + + + + +//3 65uvkv1mextaah5m997ibe3qs +// static int cl_vninside(graph_t * cl, node_t * n) +public static boolean cl_vninside(Agraph_s cl, Agnode_s n) { +ENTERING("65uvkv1mextaah5m997ibe3qs","cl_vninside"); +try { + return (BETWEEN(GD_bb(cl).getStruct("LL").getDouble("x"), (double)(ND_coord(n).getDouble("x")), GD_bb(cl).getStruct("UR").getDouble("x")) && + BETWEEN(GD_bb(cl).getStruct("LL").getDouble("y"), (double)(ND_coord(n).getDouble("y")), GD_bb(cl).getStruct("UR").getDouble("y"))); +} finally { +LEAVING("65uvkv1mextaah5m997ibe3qs","cl_vninside"); +} +} + + + + +//3 dzvvmxkya868w5x78lkvchigk +// static Agraph_t *cl_bound(graph_t* g, node_t *n, node_t *adj) +public static Agraph_s cl_bound(Agraph_s g, Agnode_s n, Agnode_s adj) { +ENTERING("dzvvmxkya868w5x78lkvchigk","cl_bound"); +try { + Agraph_s rv, cl, tcl, hcl; + Agedge_s orig; + rv = null; + if (ND_node_type(n) == 0) + tcl = hcl = ND_clust(n); + else { + orig = ED_to_orig(ND_out(n).getArrayOfPtr("list").plus(0).getPtr()); + tcl = ND_clust(agtail(orig)); + hcl = ND_clust(aghead(orig)); + } + if (ND_node_type(adj) == 0) { + cl = ( EQ(ND_clust(adj), g) ? null:ND_clust(adj)); + if (cl!=null && NEQ(cl, tcl) && NEQ(cl, hcl)) + rv = cl; + } else { + orig = ED_to_orig(ND_out(adj).getArrayOfPtr("list").plus(0).getPtr()); + cl = ( EQ(ND_clust(agtail(orig)), g) ? null:ND_clust(agtail(orig))); + if (cl!=null && NEQ(cl, tcl) && NEQ(cl, hcl) && cl_vninside(cl, adj)) + rv = cl; + else { + cl = ( EQ(ND_clust(aghead(orig)), g) ? null:ND_clust(aghead(orig))); + if (cl!=null && NEQ(cl, tcl) && NEQ(cl, hcl) && cl_vninside(cl, adj)) + rv = cl; + } + } + return rv; +} finally { +LEAVING("dzvvmxkya868w5x78lkvchigk","cl_bound"); +} +} + + + + +//3 6qwgl36ugfnduc5x59ohuewv1 +// static boxf maximal_bbox(graph_t* g, spline_info_t* sp, node_t* vn, edge_t* ie, edge_t* oe) +public static __struct__ maximal_bbox(Agraph_s g, spline_info_t sp, Agnode_s vn, Agedge_s ie, Agedge_s oe) { +// WARNING!! STRUCT +return maximal_bbox_w_(g, sp, vn, ie, oe).copy(); +} +private static __struct__ maximal_bbox_w_(Agraph_s g, spline_info_t sp, Agnode_s vn, Agedge_s ie, Agedge_s oe) { +ENTERING("6qwgl36ugfnduc5x59ohuewv1","maximal_bbox"); +try { + double b, nb; + Agraph_s left_cl, right_cl; + Agnode_s left, right; + final __struct__ rv = __struct__.from(boxf.class); + left_cl = right_cl = null; + /* give this node all the available space up to its neighbors */ + b = (double)(ND_coord(vn).getDouble("x") - ND_lw(vn) - 4); + if ((left = neighbor(g, vn, ie, oe, -1))!=null) { + if ((left_cl = cl_bound(g, vn, left))!=null) + nb = GD_bb(left_cl).getStruct("UR").getDouble("x") + (double)(sp.getInt("Splinesep")); + else { + nb = (double)(ND_coord(left).getDouble("x") + ND_mval(left)); + if (ND_node_type(left) == 0) + nb += GD_nodesep(g) / 2.; + else + nb += (double)(sp.getInt("Splinesep")); + } + if (nb < b) + b = nb; + rv.getStruct("LL").setDouble("x", ROUND(b)); + } else + rv.getStruct("LL").setDouble("x", MIN(ROUND(b), sp.getInt("LeftBound"))); + /* we have to leave room for our own label! */ + if ((ND_node_type(vn) == 1) && (ND_label(vn)!=null)) + b = (double)(ND_coord(vn).getDouble("x") + 10); + else + b = (double)(ND_coord(vn).getDouble("x") + ND_rw(vn) + 4); + if ((right = neighbor(g, vn, ie, oe, 1))!=null) { + if ((right_cl = cl_bound(g, vn, right))!=null) + nb = GD_bb(right_cl).getStruct("LL").getDouble("x") - (double)(sp.getInt("Splinesep")); + else { + nb = ND_coord(right).getDouble("x") - ND_lw(right); + if (ND_node_type(right) == 0) + nb -= GD_nodesep(g) / 2.; + else + nb -= (double)(sp.getInt("Splinesep")); + } + if (nb > b) + b = nb; + rv.getStruct("UR").setDouble("x", ROUND(b)); + } else + rv.getStruct("UR").setDouble("x", MAX(ROUND(b), sp.getInt("RightBound"))); + if ((ND_node_type(vn) == 1) && (ND_label(vn)!=null)) { + rv.getStruct("UR").setDouble("x", rv.getStruct("UR").getDouble("x") - ND_rw(vn)); + if (rv.getStruct("UR").getDouble("x") < rv.getStruct("LL").getDouble("x")) rv.getStruct("UR").setDouble("x", ND_coord(vn).getDouble("x")); + } + rv.getStruct("LL").setDouble("y", ND_coord(vn).getDouble("y") - GD_rank(g).plus(ND_rank(vn)).getDouble("ht1")); + rv.getStruct("UR").setDouble("y", ND_coord(vn).getDouble("y") + GD_rank(g).plus(ND_rank(vn)).getDouble("ht2")); + return rv; +} finally { +LEAVING("6qwgl36ugfnduc5x59ohuewv1","maximal_bbox"); +} +} + + + + +//3 18pm6r3xcy90f0xi5hpm9jdhk +// static node_t * neighbor(graph_t* g, node_t *vn, edge_t *ie, edge_t *oe, int dir) +public static Agnode_s neighbor(Agraph_s g, Agnode_s vn, Agedge_s ie, Agedge_s oe, int dir) { +ENTERING("18pm6r3xcy90f0xi5hpm9jdhk","neighbor"); +try { + int i; + Agnode_s n, rv = null; + __ptr__ rank = GD_rank(g).plus(ND_rank(vn)); + for (i = ND_order(vn) + dir; ((i >= 0) && (i < rank.getInt("n"))); i += dir) { + n = (Agnode_s) rank.getArrayOfPtr("v").plus(i).getPtr(); + if ((ND_node_type(n) == 1) && (ND_label(n)!=null)) { + rv = n; + break; + } + if (ND_node_type(n) == 0) { + rv = n; + break; + } + if (pathscross(n, vn, ie, oe) == false) { + rv = n; + break; + } + } + return rv; +} finally { +LEAVING("18pm6r3xcy90f0xi5hpm9jdhk","neighbor"); +} +} + + + + +//3 f4q0oqe165s9pl5k0th5noeyv +// static boolean pathscross(n0, n1, ie1, oe1) node_t *n0, *n1 +public static boolean pathscross(Agnode_s n0, Agnode_s n1, Agedge_s ie1, Agedge_s oe1) { +ENTERING("f4q0oqe165s9pl5k0th5noeyv","pathscross"); +try { + Agedge_s e0, e1; + Agnode_s na, nb; + boolean order; + int cnt; + order = (ND_order(n0) > ND_order(n1)); + if ((ND_out(n0).getInt("size") != 1) && (ND_out(n0).getInt("size") != 1)) + return false; + e1 = oe1; + if (ND_out(n0).getInt("size") == 1 && e1!=null) { + e0 = (Agedge_s) ND_out(n0).getArrayOfPtr("list").plus(0).getPtr(); + for (cnt = 0; cnt < 2; cnt++) { + if (EQ(na = aghead(e0), nb = aghead(e1))) + break; + if (order != (ND_order(na) > ND_order(nb))) + return NOT(false); + if ((ND_out(na).getInt("size") != 1) || (ND_node_type(na) == 0)) + break; + e0 = (Agedge_s) ND_out(na).getArrayOfPtr("list").plus(0).getPtr(); + if ((ND_out(nb).getInt("size") != 1) || (ND_node_type(nb) == 0)) + break; + e1 = (Agedge_s) ND_out(nb).getArrayOfPtr("list").plus(0).getPtr(); + } + } + e1 = ie1; + if (ND_in(n0).getInt("size") == 1 && e1!=null) { + e0 = (Agedge_s) ND_in(n0).getArrayOfPtr("list").plus(0).getPtr(); + for (cnt = 0; cnt < 2; cnt++) { + if (EQ(na = agtail(e0), nb = agtail(e1))) + break; + if (order != (ND_order(na) > ND_order(nb))) + return NOT(false); + if ((ND_in(na).getInt("size") != 1) || (ND_node_type(na) == 0)) + break; + e0 = (Agedge_s) ND_in(na).getArrayOfPtr("list").plus(0).getPtr(); + if ((ND_in(nb).getInt("size") != 1) || (ND_node_type(nb) == 0)) + break; + e1 = (Agedge_s) ND_in(nb).getArrayOfPtr("list").plus(0).getPtr(); + } + } + return false; +} finally { +LEAVING("f4q0oqe165s9pl5k0th5noeyv","pathscross"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/fastgr__c.java plantuml-8039/src/gen/lib/dotgen/fastgr__c.java --- plantuml-8024/src/gen/lib/dotgen/fastgr__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/fastgr__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1208 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.common.memory__c.zmalloc; +import static gen.lib.dotgen.dotinit__c.dot_root; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGINEDGE; +import static smetana.core.Macro.AGNODE; +import static smetana.core.Macro.AGOUTEDGE; +import static smetana.core.Macro.AGSEQ; +import static smetana.core.Macro.AGTYPE; +import static smetana.core.Macro.ED_count; +import static smetana.core.Macro.ED_edge_type; +import static smetana.core.Macro.ED_head_port; +import static smetana.core.Macro.ED_minlen; +import static smetana.core.Macro.ED_tail_port; +import static smetana.core.Macro.ED_to_orig; +import static smetana.core.Macro.ED_to_virt; +import static smetana.core.Macro.ED_weight; +import static smetana.core.Macro.ED_xpenalty; +import static smetana.core.Macro.GD_has_flat_edges; +import static smetana.core.Macro.GD_n_nodes; +import static smetana.core.Macro.GD_nlist; +import static smetana.core.Macro.ND_UF_size; +import static smetana.core.Macro.ND_flat_in; +import static smetana.core.Macro.ND_flat_out; +import static smetana.core.Macro.ND_ht; +import static smetana.core.Macro.ND_in; +import static smetana.core.Macro.ND_lw; +import static smetana.core.Macro.ND_next; +import static smetana.core.Macro.ND_node_type; +import static smetana.core.Macro.ND_other; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.ND_prev; +import static smetana.core.Macro.ND_rw; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import static smetana.core.Macro.aghead; +import static smetana.core.Macro.agtail; +import static smetana.core.Macro.alloc_elist; +import static smetana.core.Macro.elist_append; +import h.Agedge_s; +import h.Agedgeinfo_t; +import h.Agedgepair_s; +import h.Agnode_s; +import h.Agnodeinfo_t; +import h.Agraph_s; +import h.Agrec_s; +import h.boxf; +import h.elist; +import h.pointf; +import smetana.core.__struct__; + +public class fastgr__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 econbrl314rr46qnvvw5e32j7 +// static edge_t *ffe(node_t * u, elist uL, node_t * v, elist vL) +public static Agedge_s ffe(Agnode_s u, final __struct__ uL, Agnode_s v, final __struct__ vL) { +// WARNING!! STRUCT +return ffe_w_(u, uL.copy(), v, vL.copy()); +} +private static Agedge_s ffe_w_(Agnode_s u, final __struct__ uL, Agnode_s v, final __struct__ vL) { +ENTERING("econbrl314rr46qnvvw5e32j7","ffe"); +try { + int i; + Agedge_s e = null; + if ((uL.getInt("size") > 0) && (vL.getInt("size") > 0)) { + if (uL.getInt("size") < vL.getInt("size")) { + for (i = 0; (e = (Agedge_s) uL.getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + if (EQ(aghead(e), v)) + break; + } else { + for (i = 0; (e = (Agedge_s) vL.getArrayOfPtr("list").plus(i).getPtr())!=null; i++) + if (EQ(agtail(e), u)) + break; + } + } else + e = null; + return e; +} finally { +LEAVING("econbrl314rr46qnvvw5e32j7","ffe"); +} +} + + + + +//3 1uygfrgur73lfy9vsjozwwupm +// edge_t *find_fast_edge(node_t * u, node_t * v) +public static Agedge_s find_fast_edge(Agnode_s u, Agnode_s v) { +ENTERING("1uygfrgur73lfy9vsjozwwupm","find_fast_edge"); +try { + return ffe(u, ND_out(u), v, ND_in(v)); +} finally { +LEAVING("1uygfrgur73lfy9vsjozwwupm","find_fast_edge"); +} +} + + + + +//3 1yw7ahdnxnexnicj552zqyyej +// static node_t* find_fast_node(graph_t * g, node_t * n) +public static Agnode_s find_fast_node(Agraph_s g, Agnode_s n) { +ENTERING("1yw7ahdnxnexnicj552zqyyej","find_fast_node"); +try { + Agnode_s v; + for (v = GD_nlist(g); v!=null; v = ND_next(v)) + if (EQ(v, n)) + break; + return v; +} finally { +LEAVING("1yw7ahdnxnexnicj552zqyyej","find_fast_node"); +} +} + + + + +//3 bf1j97keudu416avridkj9fpb +// edge_t *find_flat_edge(node_t * u, node_t * v) +public static Agedge_s find_flat_edge(Agnode_s u, Agnode_s v) { +ENTERING("bf1j97keudu416avridkj9fpb","find_flat_edge"); +try { + return ffe(u, ND_flat_out(u), v, ND_flat_in(v)); +} finally { +LEAVING("bf1j97keudu416avridkj9fpb","find_flat_edge"); +} +} + + + + +//3 cttswsffgmw1g710jzvdd3wzn +// static void safe_list_append(edge_t * e, elist * L) +public static Object safe_list_append(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("3kdqf9wvozj4zu6wrv6ur2k47"); // safe_list_append(edge_t * e, elist * L) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("dhvbzrcz6s76mme3x94begmvr"); // for (i = 0; i < L->size; i++) +UNSUPPORTED("c0a4ruccwt5263vw39xrttm0y"); // if (e == L->list[i]) +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("cslejjtgepjdwlcykfas4fmvz"); // elist_append(e, (*L)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8t6gpubo908pz1pqnt1s88lnt +// edge_t *fast_edge(edge_t * e) +public static Agedge_s fast_edge(Agedge_s e) { +ENTERING("8t6gpubo908pz1pqnt1s88lnt","fast_edge"); +try { + elist_append(e, ND_out(agtail(e))); + elist_append(e, ND_in(aghead(e))); + return e; +} finally { +LEAVING("8t6gpubo908pz1pqnt1s88lnt","fast_edge"); +} +} + + + + +//3 dxb0q8ajb7iv25aj6zdqnbwh5 +// void zapinlist(elist * L, edge_t * e) +public static void zapinlist(elist L, Agedge_s e) { +ENTERING("dxb0q8ajb7iv25aj6zdqnbwh5","zapinlist"); +try { + int i; + for (i = 0; i < L.getInt("size"); i++) { + if (EQ(L.getArrayOfPtr("list").plus(i).getPtr(), e)) { + L.setInt("size", L.getInt("size")-1); + L.getArrayOfPtr("list").plus(i).setPtr(L.getArrayOfPtr("list").plus(L.getInt("size")).getPtr()); + L.getArrayOfPtr("list").plus(L.getInt("size")).setPtr(null); + break; + } + } +} finally { +LEAVING("dxb0q8ajb7iv25aj6zdqnbwh5","zapinlist"); +} +} + + + + +//3 dkv97rr4ytpehp291etaxe9gc +// void delete_fast_edge(edge_t * e) +public static void delete_fast_edge(Agedge_s e) { +ENTERING("dkv97rr4ytpehp291etaxe9gc","delete_fast_edge"); +try { + //assert(e != NULL); + zapinlist((ND_out(agtail(e))).amp(), e); + zapinlist((ND_in(aghead(e))).amp(), e); +} finally { +LEAVING("dkv97rr4ytpehp291etaxe9gc","delete_fast_edge"); +} +} + + + + +//3 b8a9hlxts1y43x7r4f31vwee6 +// static void safe_delete_fast_edge(edge_t * e) +public static Object safe_delete_fast_edge(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("bw8hdfe3bql5qxhdyxjh12iaf"); // safe_delete_fast_edge(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("6ag74vz3kjmohe4bp89fktey4"); // edge_t *f; +UNSUPPORTED("axei6r4pdvrumkaqc9p82yzjh"); // assert(e != NULL); +UNSUPPORTED("f10apexer8zzjd53hdc3kc6l5"); // for (i = 0; (f = ND_out(agtail(e)).list[i]); i++) +UNSUPPORTED("dibajtvzac9fny0wd51x9jto8"); // if (f == e) +UNSUPPORTED("8jj8ar5kwgfuzsk5nd6eyfcmc"); // zapinlist(&(ND_out(agtail(e))), e); +UNSUPPORTED("7h2ym5qzjdgt4gg6uscho1z1e"); // for (i = 0; (f = ND_in(aghead(e)).list[i]); i++) +UNSUPPORTED("dibajtvzac9fny0wd51x9jto8"); // if (f == e) +UNSUPPORTED("dyemtglp4tpava0oysdm66am8"); // zapinlist(&(ND_in(aghead(e))), e); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 73oebfcfiescklohgt8mddswc +// void other_edge(edge_t * e) +public static void other_edge(Agedge_s e) { +ENTERING("73oebfcfiescklohgt8mddswc","other_edge"); +try { + elist_append(e, ND_other(agtail(e))); +} finally { +LEAVING("73oebfcfiescklohgt8mddswc","other_edge"); +} +} + + + + +//3 4zg1fp1b7bhnx2tbeaij8yeel +// void safe_other_edge(edge_t * e) +public static Object safe_other_edge(Object... arg) { +UNSUPPORTED("3cc9ux78ad0yjajm0nkpos345"); // void safe_other_edge(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bn816jsdz3qke6htvbwvztrpc"); // safe_list_append(e, &(ND_other(agtail(e)))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4gd9tmpq70q0rij5otj0k6sn2 +// edge_t *new_virtual_edge(node_t * u, node_t * v, edge_t * orig) +public static Agedge_s new_virtual_edge(Agnode_s u, Agnode_s v, Agedge_s orig) { +ENTERING("4gd9tmpq70q0rij5otj0k6sn2","new_virtual_edge"); +try { + Agedge_s e; + Agedgepair_s e2 = (Agedgepair_s)zmalloc(sizeof(Agedgepair_s.class)); + AGTYPE(e2.getStruct("in").amp(), AGINEDGE); + AGTYPE(e2.getStruct("out").amp(), AGOUTEDGE); + e2.getStruct("out").getStruct("base").setPtr("data", zmalloc(sizeof(Agedgeinfo_t.class)).castTo(Agedgeinfo_t.class).castTo(Agrec_s.class)); + e = (Agedge_s) e2.getStruct("out").amp(); + agtail(e, u); + aghead(e, v); + ED_edge_type(e, 1); + if (orig!=null) { + AGSEQ(e, AGSEQ(orig)); + AGSEQ(e2.getStruct("in").amp(), AGSEQ(orig)); + ED_count(e, ED_count(orig)); + ED_xpenalty(e, ED_xpenalty(orig)); + ED_weight(e, ED_weight(orig)); + ED_minlen(e, ED_minlen(orig)); + if (EQ(agtail(e), agtail(orig))) + ED_tail_port(e, ED_tail_port(orig)); + else if (EQ(agtail(e), aghead(orig))) + ED_tail_port(e, ED_head_port(orig)); + if (EQ(aghead(e), aghead(orig))) + ED_head_port(e, ED_head_port(orig)); + else if (EQ(aghead(e), agtail(orig))) + ED_head_port(e, ED_tail_port(orig)); + if (ED_to_virt(orig) == null) + ED_to_virt(orig, e); + ED_to_orig(e, orig); + } else { + ED_minlen(e, 1); + ED_count(e, 1); + ED_xpenalty(e, 1); + ED_weight(e, 1); + } + return e; +} finally { +LEAVING("4gd9tmpq70q0rij5otj0k6sn2","new_virtual_edge"); +} +} + + + + +//3 9obdfflzw4cs2z9r0dng26mvw +// edge_t *virtual_edge(node_t * u, node_t * v, edge_t * orig) +public static Agedge_s virtual_edge(Agnode_s u, Agnode_s v, Agedge_s orig) { +ENTERING("9obdfflzw4cs2z9r0dng26mvw","virtual_edge"); +try { + return fast_edge(new_virtual_edge(u, v, orig)); +} finally { +LEAVING("9obdfflzw4cs2z9r0dng26mvw","virtual_edge"); +} +} + + + + +//3 98hkec8t6fjk10bjpstumw0ey +// void fast_node(graph_t * g, Agnode_t * n) +public static void fast_node(Agraph_s g, Agnode_s n) { +ENTERING("98hkec8t6fjk10bjpstumw0ey","fast_node"); +try { + ND_next(n, GD_nlist(g)); + if (ND_next(n)!=null) + ND_prev(ND_next(n), n); + GD_nlist(g, n); + ND_prev(n, null); + //assert(n != ND_next(n)); +} finally { +LEAVING("98hkec8t6fjk10bjpstumw0ey","fast_node"); +} +} + + + + +//3 66jdzhjfa6kx3ntfyl5t7cehm +// void fast_nodeapp(node_t * u, node_t * v) +public static Object fast_nodeapp(Object... arg) { +UNSUPPORTED("24rf80znlmwn6xx6m03vqyykr"); // void fast_nodeapp(node_t * u, node_t * v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8g450a5aruflexr2yn977dnjz"); // assert(u != v); +UNSUPPORTED("dw67xh0kd304grgqkgiffmejh"); // assert(ND_next(v) == NULL); +UNSUPPORTED("1tm9zh31fbm0sufjyg78ke83i"); // ND_next(v) = ND_next(u); +UNSUPPORTED("cswodtimhknr7wxlbmhxfzutw"); // if (ND_next(u)) +UNSUPPORTED("7aukr7lwtj4wnis5h9ciserpd"); // ND_prev(ND_next(u)) = v; +UNSUPPORTED("6oaowqmk3llh0vp3h096bo6nq"); // ND_prev(v) = u; +UNSUPPORTED("5ymiaen2fr7qzsn4uotyf2eqy"); // ND_next(u) = v; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 emsq7b6s5100lscckzy3ileqd +// void delete_fast_node(graph_t * g, node_t * n) +public static void delete_fast_node(Agraph_s g, Agnode_s n) { +ENTERING("emsq7b6s5100lscckzy3ileqd","delete_fast_node"); +try { + assert(find_fast_node(g, n)!=null); + if (ND_next(n)!=null) + ND_prev(ND_next(n), ND_prev(n)); + if (ND_prev(n)!=null) + ND_next(ND_prev(n), ND_next(n)); + else + GD_nlist(g, ND_next(n)); +} finally { +LEAVING("emsq7b6s5100lscckzy3ileqd","delete_fast_node"); +} +} + + + + +//3 eg08ajzojsm0224btmfi7kdxt +// node_t *virtual_node(graph_t * g) +public static Agnode_s virtual_node(Agraph_s g) { +ENTERING("eg08ajzojsm0224btmfi7kdxt","virtual_node"); +try { + Agnode_s n; + n = (Agnode_s)zmalloc(sizeof(Agnode_s.class)); +// agnameof(n) = "virtual"; + AGTYPE(n, AGNODE); + n.getStruct("base").setPtr("data", (Agnodeinfo_t)zmalloc(sizeof(Agnodeinfo_t.class))); + n.setPtr("root", agroot(g)); + ND_node_type(n, 1); + ND_rw(n, 1); + ND_lw(n, 1); + ND_ht(n, 1); + ND_UF_size(n, 1); + alloc_elist(4, ND_in(n), Agnode_s.class); + alloc_elist(4, ND_out(n), Agnode_s.class); + fast_node(g, n); + GD_n_nodes(g, GD_n_nodes(g)+1); + return n; +} finally { +LEAVING("eg08ajzojsm0224btmfi7kdxt","virtual_node"); +} +} + + + + +//3 8dvukicq96g5t3xgdl0ue35mj +// void flat_edge(graph_t * g, edge_t * e) +public static void flat_edge(Agraph_s g, Agedge_s e) { +ENTERING("8dvukicq96g5t3xgdl0ue35mj","flat_edge"); +try { + elist_append(e, ND_flat_out(agtail(e))); + elist_append(e, ND_flat_in(aghead(e))); + GD_has_flat_edges(g, NOT(false)); + GD_has_flat_edges(dot_root(g), NOT(false)); +} finally { +LEAVING("8dvukicq96g5t3xgdl0ue35mj","flat_edge"); +} +} + + + + +//3 clspalhiuedfnk9g9rlvfqpg7 +// void delete_flat_edge(edge_t * e) +public static void delete_flat_edge(Agedge_s e) { +ENTERING("clspalhiuedfnk9g9rlvfqpg7","delete_flat_edge"); +try { + assert(e != null); + if (ED_to_orig(e)!=null && EQ(ED_to_virt(ED_to_orig(e)), e)) + ED_to_virt(ED_to_orig(e), null); + zapinlist((ND_flat_out(agtail(e))).amp(), e); + zapinlist((ND_flat_in(aghead(e))).amp(), e); +} finally { +LEAVING("clspalhiuedfnk9g9rlvfqpg7","delete_flat_edge"); +} +} + + + + +//3 dcfpol11cvlt6aaa6phqbp6fo +// static void basic_merge(edge_t * e, edge_t * rep) +public static void basic_merge(Agedge_s e, Agedge_s rep) { +ENTERING("dcfpol11cvlt6aaa6phqbp6fo","basic_merge"); +try { + if (ED_minlen(rep) < ED_minlen(e)) + ED_minlen(rep, ED_minlen(e)); + while (rep!=null) { + ED_count(rep, ED_count(rep) + ED_count(e)); + ED_xpenalty(rep, ED_xpenalty(rep) +ED_xpenalty(e)); + ED_weight(rep, ED_weight(rep) + ED_weight(e)); + rep = ED_to_virt(rep); + } +} finally { +LEAVING("dcfpol11cvlt6aaa6phqbp6fo","basic_merge"); +} +} + + + + +//3 6dxgtoii76tmonlnvz4rmiytd +// void merge_oneway(edge_t * e, edge_t * rep) +public static void merge_oneway(Agedge_s e, Agedge_s rep) { +ENTERING("6dxgtoii76tmonlnvz4rmiytd","merge_oneway"); +try { + if (EQ(rep, ED_to_virt(e))) { +UNSUPPORTED("84xxsh1cgsif42hgizyxw36ul"); // agerr(AGWARN, "merge_oneway glitch\n"); +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; + } + //assert(ED_to_virt(e) == NULL); + ED_to_virt(e, rep); + basic_merge(e, rep); +} finally { +LEAVING("6dxgtoii76tmonlnvz4rmiytd","merge_oneway"); +} +} + + + + +//3 656h1u18x3gommk50i4bak8wi +// static void unrep(edge_t * rep, edge_t * e) +public static Object unrep(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("1cysdqgx90krtmp6pc8358byz"); // unrep(edge_t * rep, edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("az4p9xxo3dhparzmtf3co61n"); // ED_count(rep) -= ED_count(e); +UNSUPPORTED("bf8f3cgvxc5n9ixbj4d1z94r0"); // ED_xpenalty(rep) -= ED_xpenalty(e); +UNSUPPORTED("5m9h7kqjxjgizf3o1i6udm3c5"); // ED_weight(rep) -= ED_weight(e); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 62io7qyqg9kqthfkbotnjdq49 +// void unmerge_oneway(edge_t * e) +public static Object unmerge_oneway(Object... arg) { +UNSUPPORTED("3rlflkkd29cm53ssikvrqx06v"); // void unmerge_oneway(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3we8ga4x5k2sj4s20xlwumjq5"); // edge_t *rep, *nextrep; +UNSUPPORTED("e23vpxy61ysfsjvp3u2boafhb"); // for (rep = ED_to_virt(e); rep; rep = nextrep) { +UNSUPPORTED("bifyf7jydjlvj8u8hc9tqwutm"); // unrep(rep, e); +UNSUPPORTED("eyjz7xjwxabdlqhyvuzfkks49"); // nextrep = ED_to_virt(rep); +UNSUPPORTED("4h71tbcobl3o6put6h58thpgu"); // if (ED_count(rep) == 0) +UNSUPPORTED("c87nxr35m1again4xqc8x4rhh"); // safe_delete_fast_edge(rep); /* free(rep)? */ +UNSUPPORTED("9np2sz8r74ucvij23elgzxkr4"); // /* unmerge from a virtual edge chain */ +UNSUPPORTED("5wohy8hhosadqtj6712ufa10t"); // while ((ED_edge_type(rep) == 1) +UNSUPPORTED("9nortwuccpr0jx3z027d2jcyh"); // && (ND_node_type(aghead(rep)) == 1) +UNSUPPORTED("drowv2sbxmbe2b6632mn3luww"); // && (ND_out(aghead(rep)).size == 1)) { +UNSUPPORTED("6f9b53obe00vhcbxj865xc57u"); // rep = ND_out(aghead(rep)).list[0]; +UNSUPPORTED("11fxzls2ru6go1mcuza6i8zhv"); // unrep(rep, e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bm31ww0y2fu2w9n5nyi04ad76"); // ED_to_virt(e) = NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/flat__c.java plantuml-8039/src/gen/lib/dotgen/flat__c.java --- plantuml-8024/src/gen/lib/dotgen/flat__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/flat__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1093 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.common.memory__c.zmalloc; +import static gen.lib.dotgen.dotinit__c.dot_root; +import static gen.lib.dotgen.fastgr__c.virtual_edge; +import static gen.lib.dotgen.fastgr__c.virtual_node; +import static gen.lib.dotgen.mincross__c.rec_reset_vlists; +import static gen.lib.dotgen.mincross__c.rec_save_vlists; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.sizeof_starstar_empty; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ALLOC; +import static smetana.core.Macro.ED_adjacent; +import static smetana.core.Macro.ED_dist; +import static smetana.core.Macro.ED_edge_type; +import static smetana.core.Macro.ED_head_port; +import static smetana.core.Macro.ED_label; +import static smetana.core.Macro.ED_tail_port; +import static smetana.core.Macro.ED_to_virt; +import static smetana.core.Macro.GD_flip; +import static smetana.core.Macro.GD_maxrank; +import static smetana.core.Macro.GD_minrank; +import static smetana.core.Macro.GD_n_cluster; +import static smetana.core.Macro.GD_nlist; +import static smetana.core.Macro.GD_rank; +import static smetana.core.Macro.GD_ranksep; +import static smetana.core.Macro.MAX; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_alg; +import static smetana.core.Macro.ND_coord; +import static smetana.core.Macro.ND_flat_in; +import static smetana.core.Macro.ND_flat_out; +import static smetana.core.Macro.ND_ht; +import static smetana.core.Macro.ND_in; +import static smetana.core.Macro.ND_label; +import static smetana.core.Macro.ND_lw; +import static smetana.core.Macro.ND_next; +import static smetana.core.Macro.ND_node_type; +import static smetana.core.Macro.ND_order; +import static smetana.core.Macro.ND_other; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.ND_rank; +import static smetana.core.Macro.ND_rw; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.boxf; +import h.pointf; +import h.rank_t; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class flat__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e0gtvsxlvztmwu8yy44wfvf97 +// static node_t *make_vn_slot(graph_t * g, int r, int pos) +public static Agnode_s make_vn_slot(Agraph_s g, int r, int pos) { +ENTERING("e0gtvsxlvztmwu8yy44wfvf97","make_vn_slot"); +try { + int i; + __ptr__ v; + Agnode_s n; + v = ALLOC(GD_rank(g).plus(r).getInt("n") + 2, GD_rank(g).plus(r).getPtr("v"), Agnode_s.class); + GD_rank(g).plus(r).setPtr("v", v); + for (i = GD_rank(g).plus(r).getInt("n"); i > pos; i--) { + v.plus(i).setPtr(v.plus(i - 1).getPtr()); + ND_order(v.plus(i).getPtr(), ND_order(v.plus(i).getPtr())+1); + } + n = virtual_node(g); + v.plus(pos).setPtr(n); + ND_order(n, pos); + ND_rank(n, r); + GD_rank(g).plus(r).setInt("n", GD_rank(g).plus(r).getInt("n")+1); + v.plus(GD_rank(g).plus(r).getInt("n")).setPtr(null); + return (Agnode_s) v.plus(pos).getPtr(); +} finally { +LEAVING("e0gtvsxlvztmwu8yy44wfvf97","make_vn_slot"); +} +} + + + + +//3 d64wt9oqphauv3hp4axbg2ep3 +// static void findlr(node_t * u, node_t * v, int *lp, int *rp) +public static void findlr(Agnode_s u, Agnode_s v, int lp[], int rp[]) { +ENTERING("d64wt9oqphauv3hp4axbg2ep3","findlr"); +try { + int l, r; + l = ND_order(u); + r = ND_order(v); + if (l > r) { + int t = l; + l = r; + r = t; + } + lp[0] = l; + rp[0] = r; +} finally { +LEAVING("d64wt9oqphauv3hp4axbg2ep3","findlr"); +} +} + + + + +//3 bwjjmaydx5a2fnpeoligkha0r +// static void setbounds(node_t * v, int *bounds, int lpos, int rpos) +public static void setbounds(Agnode_s v, int bounds[], int lpos[], int rpos[]) { +ENTERING("bwjjmaydx5a2fnpeoligkha0r","setbounds"); +try { + int i, ord; + int[] l = new int[1], r = new int[1]; + Agedge_s f; + if (ND_node_type(v) == 1) { + ord = ND_order(v); + if (ND_in(v).getInt("size") == 0) { /* flat */ + assert(ND_out(v).getInt("size") == 2); + findlr((Agnode_s) aghead(ND_out(v).getArrayOfPtr("list").plus(0).getPtr()), (Agnode_s) aghead(ND_out(v).getArrayOfPtr("list").plus(1).getPtr()), l, + r); + /* the other flat edge could be to the left or right */ + if (r[0] <= lpos[0]) + bounds[2] = bounds[0] = ord; + else if (l[0] >= rpos[0]) + bounds[3] = bounds[1] = ord; + /* could be spanning this one */ + else if ((l[0] < lpos[0]) && (r[0] > rpos[0])); /* ignore */ + /* must have intersecting ranges */ + else { + if ((l[0] < lpos[0]) || ((l[0] == lpos[0]) && (r[0] < rpos[0]))) + bounds[2] = ord; + if ((r[0] > rpos[0]) || ((r[0] == rpos[0]) && (l[0] > lpos[0]))) + bounds[3] = ord; + } + } else { /* forward */ + boolean onleft, onright; + onleft = onright = false; + for (i = 0; (f = (Agedge_s) ND_out(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if (ND_order(aghead(f)) <= lpos[0]) { + onleft = NOT(false); + continue; + } + if (ND_order(aghead(f)) >= rpos[0]) { + onright = NOT(false); + continue; + } + } + if (onleft && (onright == false)) + bounds[0] = ord + 1; + if (onright && (onleft == false)) + bounds[1] = ord - 1; + } + } +} finally { +LEAVING("bwjjmaydx5a2fnpeoligkha0r","setbounds"); +} +} + + + + +//3 3bc4otcsxj1dujj49ydbb19oa +// static int flat_limits(graph_t * g, edge_t * e) +public static int flat_limits(Agraph_s g, Agedge_s e) { +ENTERING("3bc4otcsxj1dujj49ydbb19oa","flat_limits"); +try { + int lnode, rnode, r, pos; + int[] lpos = new int[1], rpos = new int[1]; + int bounds[] = new int[4]; + __ptr__ rank; + r = ND_rank(agtail(e)) - 1; + rank = GD_rank(g).plus(r).getPtr("v"); + lnode = 0; + rnode = GD_rank(g).plus(r).getInt("n") - 1; + bounds[0] = bounds[2] = lnode - 1; + bounds[1] = bounds[3] = rnode + 1; + findlr(agtail(e), aghead(e), lpos, rpos); + while (lnode <= rnode) { + setbounds((Agnode_s)rank.plus(lnode).getPtr(), bounds, lpos, rpos); + if (lnode != rnode) + setbounds((Agnode_s)rank.plus(rnode).getPtr(), bounds, lpos, rpos); + lnode++; + rnode--; + if (bounds[1] - bounds[0] <= 1) + break; + } + if (bounds[0] <= bounds[1]) + pos = (bounds[0] + bounds[1] + 1) / 2; + else + pos = (bounds[2] + bounds[3] + 1) / 2; + return pos; +} finally { +LEAVING("3bc4otcsxj1dujj49ydbb19oa","flat_limits"); +} +} + + + + +//3 4cw9yo9ap8ze1r873v6jat4yc +// static void flat_node(edge_t * e) +public static void flat_node(Agedge_s e) { +ENTERING("4cw9yo9ap8ze1r873v6jat4yc","flat_node"); +try { + int r, place, ypos, h2; + Agraph_s g; + Agnode_s n, vn; + Agedge_s ve; + final __struct__ dimen = __struct__.from(pointf.class); + if (ED_label(e) == null) + return; + g = dot_root(agtail(e)); + r = ND_rank(agtail(e)); + place = flat_limits(g, e); + /* grab ypos = LL.y of label box before make_vn_slot() */ + if ((n = (Agnode_s) GD_rank(g).plus(r - 1).getArrayOfPtr("v").plus(0).getPtr())!=null) + ypos = (int)(ND_coord(n).getDouble("y") - GD_rank(g).plus(r - 1).getDouble("ht1")); + else { + n = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr(); + ypos = (int)(ND_coord(n).getDouble("y") + GD_rank(g).plus(r).getDouble("ht2") + GD_ranksep(g)); + } + vn = make_vn_slot(g, r - 1, place); + dimen.____(ED_label(e).getStruct("dimen")); + if (GD_flip(g)!=0) { + double f = dimen.getDouble("x"); + dimen.setDouble("x", dimen.getDouble("y")); + dimen.setDouble("y", f); + } + ND_ht(vn, dimen.getDouble("y")); + h2 = (int)(ND_ht(vn) / 2); + ND_rw(vn, dimen.getDouble("x") / 2); + ND_lw(vn, ND_rw(vn)); + ND_label(vn, ED_label(e)); + ND_coord(vn).setDouble("y", ypos + h2); + ve = virtual_edge(vn, agtail(e), e); /* was NULL? */ + ED_tail_port(ve).getStruct("p").setDouble("x", -ND_lw(vn)); + ED_head_port(ve).getStruct("p").setDouble("x", ND_rw(agtail(e))); + ED_edge_type(ve, 4); + ve = virtual_edge(vn, aghead(e), e); + ED_tail_port(ve).getStruct("p").setDouble("x", ND_rw(vn)); + ED_head_port(ve).getStruct("p").setDouble("x", ND_lw(aghead(e))); + ED_edge_type(ve, 4); + /* another assumed symmetry of ht1/ht2 of a label node */ + if (GD_rank(g).plus(r - 1).getDouble("ht1") < h2) + GD_rank(g).plus(r - 1).setDouble("ht1", h2); + if (GD_rank(g).plus(r - 1).getDouble("ht2") < h2) + GD_rank(g).plus(r - 1).setDouble("ht2", h2); + ND_alg(vn, e); +} finally { +LEAVING("4cw9yo9ap8ze1r873v6jat4yc","flat_node"); +} +} + + + + +//3 1lopavodoru6ee52snd5l6swd +// static void abomination(graph_t * g) +public static void abomination(Agraph_s g) { +ENTERING("1lopavodoru6ee52snd5l6swd","abomination"); +try { + int r; + __ptr__ rptr; + assert(GD_minrank(g) == 0); + /* 3 = one for new rank, one for sentinel, one for off-by-one */ + r = GD_maxrank(g) + 3; + rptr = ALLOC(r, GD_rank(g), rank_t.class); + GD_rank(g, rptr.plus(1)); + for (r = GD_maxrank(g); r >= 0; r--) + GD_rank(g).plus(r).getPtr().setStruct(GD_rank(g).plus(r - 1).getPtr().getStruct()); + GD_rank(g).plus(r).setInt("n", 0); + GD_rank(g).plus(r).setInt("an", 0); + GD_rank(g).plus(r).setPtr("v", zmalloc(sizeof_starstar_empty(Agnode_s.class, 2))); + GD_rank(g).plus(r).setPtr("av", GD_rank(g).plus(r).getPtr("v")); + GD_rank(g).plus(r).setPtr("flat", null); + GD_rank(g).plus(r).setDouble("ht1", 1); + GD_rank(g).plus(r).setDouble("ht2", 1); + GD_rank(g).plus(r).setDouble("pht1", 1); + GD_rank(g).plus(r).setDouble("pht2", 1); + GD_minrank(g, GD_minrank(g)-1); +} finally { +LEAVING("1lopavodoru6ee52snd5l6swd","abomination"); +} +} + + + + +//3 ctujx6e8k3rzv08h6gswdcaqs +// static void checkFlatAdjacent (edge_t* e) +public static void checkFlatAdjacent(Agedge_s e) { +ENTERING("ctujx6e8k3rzv08h6gswdcaqs","checkFlatAdjacent"); +try { + Agnode_s tn = agtail(e); + Agnode_s hn = aghead(e); + int i, lo, hi; + Agnode_s n; + __ptr__ rank; + if (ND_order(tn) < ND_order(hn)) { + lo = ND_order(tn); + hi = ND_order(hn); + } + else { + lo = ND_order(hn); + hi = ND_order(tn); + } + rank = GD_rank(dot_root(tn)).plus(ND_rank(tn)); + for (i = lo + 1; i < hi; i++) { + n = (Agnode_s) rank.getArrayOfPtr("v").plus(i).getPtr(); + if ((ND_node_type(n) == 1 && ND_label(n)!=null) || + ND_node_type(n) == 0) + break; + } + if (i == hi) { /* adjacent edge */ + do { + ED_adjacent(e, 1); + e = ED_to_virt(e); + } while (e!=null); + } +} finally { +LEAVING("ctujx6e8k3rzv08h6gswdcaqs","checkFlatAdjacent"); +} +} + + + + +//3 bjwwj6ftkm0gv04cf1edqeaw6 +// int flat_edges(graph_t * g) +public static int flat_edges(Agraph_s g) { +ENTERING("bjwwj6ftkm0gv04cf1edqeaw6","flat_edges"); +try { + int i, j, reset = 0; + Agnode_s n; + Agedge_s e; + int found = 0; + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + if (ND_flat_out(n).getPtr("list")!=null) { + for (j = 0; (e = (Agedge_s) ND_flat_out(n).getArrayOfPtr("list").plus(j).getPtr())!=null; j++) { + checkFlatAdjacent (e); + } + } + for (j = 0; j < ND_other(n).getInt("size"); j++) { + e = (Agedge_s) ND_other(n).getArrayOfPtr("list").plus(j).getPtr(); + if (ND_rank(aghead(e)) == ND_rank(agtail(e))) + checkFlatAdjacent (e); + } + } + if ((GD_rank(g).plus(0).getPtr("flat")!=null) || (GD_n_cluster(g) > 0)) { + for (i = 0; (n = (Agnode_s) GD_rank(g).plus(0).getArrayOfPtr("v").plus(i).getPtr())!=null; i++) { + for (j = 0; (e = (Agedge_s) ND_flat_in(n).getArrayOfPtr("list").plus(j).getPtr())!=null; j++) { + if ((ED_label(e)!=null) && N(ED_adjacent(e))) { + abomination(g); + found = 1; + break; + } + } + if (found!=0) + break; + } + } + rec_save_vlists(g); + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + /* if n is the tail of any flat edge, one will be in flat_out */ + if (ND_flat_out(n).getPtr("list")!=null) { + for (i = 0; (e = (Agedge_s) ND_flat_out(n).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if (ED_label(e)!=null) { + if (ED_adjacent(e)!=0) { + if (GD_flip(g)!=0) ED_dist(e, ED_label(e).getStruct("dimen").getDouble("y")); + else ED_dist(e, ED_label(e).getStruct("dimen").getDouble("x")); + } + else { + reset = 1; + flat_node(e); + } + } + } + /* look for other flat edges with labels */ + for (j = 0; j < ND_other(n).getInt("size"); j++) { + Agedge_s le; + e = (Agedge_s) ND_other(n).getArrayOfPtr("list").plus(j).getPtr(); + if (ND_rank(agtail(e)) != ND_rank(aghead(e))) continue; + if (EQ(agtail(e), aghead(e))) continue; /* skip loops */ + le = e; + while (ED_to_virt(le)!=null) le = ED_to_virt(le); + ED_adjacent(e, ED_adjacent(le)); + if (ED_label(e)!=null) { + if (ED_adjacent(e)!=0) { + double lw; + if (GD_flip(g)!=0) lw = ED_label(e).getStruct("dimen").getDouble("y"); + else lw = ED_label(e).getStruct("dimen").getDouble("x"); + ED_dist(le, MAX(lw,ED_dist(le))); + } + else { + reset = 1; + flat_node(e); + } + } + } + } + } + if (reset!=0) + rec_reset_vlists(g); + return reset; +} finally { +LEAVING("bjwwj6ftkm0gv04cf1edqeaw6","flat_edges"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/mincross__c.java plantuml-8039/src/gen/lib/dotgen/mincross__c.java --- plantuml-8024/src/gen/lib/dotgen/mincross__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/mincross__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,2778 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.attr__c.agget; +import static gen.lib.cgraph.edge__c.agfstout; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agnxtout; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.graph__c.agnedges; +import static gen.lib.cgraph.node__c.agfstnode; +import static gen.lib.cgraph.node__c.agnxtnode; +import static gen.lib.cgraph.obj__c.agcontains; +import static gen.lib.common.memory__c.zmalloc; +import static gen.lib.common.utils__c.dequeue; +import static gen.lib.common.utils__c.enqueue; +import static gen.lib.common.utils__c.free_queue; +import static gen.lib.common.utils__c.mapbool; +import static gen.lib.common.utils__c.new_queue; +import static gen.lib.dotgen.class2__c.class2; +import static gen.lib.dotgen.cluster__c.expand_cluster; +import static gen.lib.dotgen.cluster__c.install_cluster; +import static gen.lib.dotgen.cluster__c.mark_lowclusters; +import static gen.lib.dotgen.decomp__c.decompose; +import static gen.lib.dotgen.dotinit__c.dot_root; +import static gen.lib.dotgen.fastgr__c.delete_flat_edge; +import static gen.lib.dotgen.fastgr__c.flat_edge; +import static gen.lib.dotgen.fastgr__c.merge_oneway; +import static gen.lib.dotgen.fastgr__c.new_virtual_edge; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.atof; +import static smetana.core.JUtils.function; +import static smetana.core.JUtils.qsort; +import static smetana.core.JUtils.size_t_array_of_integer; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtils.sizeof_starstar_empty; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ALLOC; +import static smetana.core.Macro.ALLOC_INT; +import static smetana.core.Macro.ED_edge_type; +import static smetana.core.Macro.ED_head_port; +import static smetana.core.Macro.ED_label; +import static smetana.core.Macro.ED_tail_port; +import static smetana.core.Macro.ED_to_orig; +import static smetana.core.Macro.ED_to_virt; +import static smetana.core.Macro.ED_weight; +import static smetana.core.Macro.ED_xpenalty; +import static smetana.core.Macro.GD_clust; +import static smetana.core.Macro.GD_comp; +import static smetana.core.Macro.GD_flags; +import static smetana.core.Macro.GD_flip; +import static smetana.core.Macro.GD_has_flat_edges; +import static smetana.core.Macro.GD_maxrank; +import static smetana.core.Macro.GD_minrank; +import static smetana.core.Macro.GD_n_cluster; +import static smetana.core.Macro.GD_n_nodes; +import static smetana.core.Macro.GD_nlist; +import static smetana.core.Macro.GD_rank; +import static smetana.core.Macro.GD_rankleader; +import static smetana.core.Macro.INT_MAX; +import static smetana.core.Macro.MIN; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_clust; +import static smetana.core.Macro.ND_coord; +import static smetana.core.Macro.ND_flat_in; +import static smetana.core.Macro.ND_flat_out; +import static smetana.core.Macro.ND_has_port; +import static smetana.core.Macro.ND_in; +import static smetana.core.Macro.ND_low; +import static smetana.core.Macro.ND_mark; +import static smetana.core.Macro.ND_mval; +import static smetana.core.Macro.ND_next; +import static smetana.core.Macro.ND_node_type; +import static smetana.core.Macro.ND_onstack; +import static smetana.core.Macro.ND_order; +import static smetana.core.Macro.ND_other; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.ND_prev; +import static smetana.core.Macro.ND_rank; +import static smetana.core.Macro.ND_ranktype; +import static smetana.core.Macro.ND_weight_class; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import static smetana.core.Macro.agtail; +import static smetana.core.Macro.elist_append; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.adjmatrix_t; +import h.boxf; +import h.elist; +import h.nodequeue; +import h.pointf; +import h.rank_t; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__array_of_ptr__; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class mincross__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7ye0tsa8kll1jntdcqzsgjp0q +// static int gd_minrank(Agraph_t *g) +public static Object gd_minrank(Object... arg) { +UNSUPPORTED("7wnr5wvv8mw2d3mfdyvdz5kz9"); // static int gd_minrank(Agraph_t *g) {return GD_minrank(g);} + +throw new UnsupportedOperationException(); +} + + + + +//3 c7dhattawtph3qv1eeoafltk0 +// static int gd_maxrank(Agraph_t *g) +public static Object gd_maxrank(Object... arg) { +UNSUPPORTED("b89n5iyqsgra9z559023bf23e"); // static int gd_maxrank(Agraph_t *g) {return GD_maxrank(g);} + +throw new UnsupportedOperationException(); +} + + + + +//3 8g2can1ih1668s30s6d7wny5b +// static rank_t *gd_rank(Agraph_t *g, int r) +public static Object gd_rank(Object... arg) { +UNSUPPORTED("bxd4rm18v4y2x6fo30vh9pauo"); // static rank_t *gd_rank(Agraph_t *g, int r) {return &GD_rank(g)[r];} + +throw new UnsupportedOperationException(); +} + + + + +//3 8pjrnrvidhpqcubvkk5lsfp6 +// static int nd_order(Agnode_t *v) +public static Object nd_order(Object... arg) { +UNSUPPORTED("f4zvlmxyp6gei8iiu33hpz4oe"); // static int nd_order(Agnode_t *v) { return ND_order(v); } + +throw new UnsupportedOperationException(); +} + + +//1 eusjqny3hma23wvcznk9arpgr +// static int MinQuit +//private static int MinQuit; + +//1 eykidmlm64erbhaultu3js822 +// static double Convergence +//private static double Convergence; + +//1 f2ssditidb9f1cgp7r1kslp0e +// static graph_t *Root +//private static Agraph_s Root; + +//1 ager0orj38x5rjuhzv1o2cxuc +// static int GlobalMinRank, GlobalMaxRank +//private static int GlobalMinRank, GlobalMaxRank; + +//1 dag2n5hcww3ada79u52a8yha6 +// static edge_t **TE_list +//private static __ptr__ TE_list; + +//1 agrg82s0nsmuokh0t3h5q6h90 +// static int *TI_list +// private static __ptr__ TI_list; + +//1 7x0e0qfe96o5elb6lxt8mfmho +// static boolean ReMincross +//private static boolean ReMincross; + + + +//3 e876vp4hgkzshluz6qk77cjwk +// void dot_mincross(graph_t * g, int doBalance) +public static void dot_mincross(Agraph_s g, boolean doBalance) { +ENTERING("e876vp4hgkzshluz6qk77cjwk","dot_mincross"); +try { + int c, nc; + CString s; + init_mincross(g); + for (nc = c = 0; c < GD_comp(g).getInt("size"); c++) { + init_mccomp(g, c); + nc += mincross_(g, 0, 2, doBalance); + } + merge2(g); + /* run mincross on contents of each cluster */ + for (c = 1; c <= GD_n_cluster(g); c++) { + nc += mincross_clust(g, (Agraph_s) GD_clust(g).plus(c).getPtr(), doBalance); + } + if ((GD_n_cluster(g) > 0) + && (N(s = agget(g, new CString("remincross"))) || (mapbool(s)))) { + mark_lowclusters(g); + Z._().ReMincross = NOT(0); + nc = mincross_(g, 2, 2, doBalance); + } + cleanup2(g, nc); +} finally { +LEAVING("e876vp4hgkzshluz6qk77cjwk","dot_mincross"); +} +} + + + + +//3 756bre1tpxb1tq68p7xhkrxkc +// static adjmatrix_t *new_matrix(int i, int j) +public static adjmatrix_t new_matrix(int i, int j) { +ENTERING("756bre1tpxb1tq68p7xhkrxkc","new_matrix"); +try { + adjmatrix_t rv = (adjmatrix_t) Memory.malloc(adjmatrix_t.class); + rv.setInt("nrows", i); + rv.setInt("ncols", j); + rv.setPtr("data", zmalloc(size_t_array_of_integer(i*j))); + return rv; +} finally { +LEAVING("756bre1tpxb1tq68p7xhkrxkc","new_matrix"); +} +} + + + + +//3 1n1e0k0wtlbugwm3cb4na6av6 +// static void free_matrix(adjmatrix_t * p) +public static void free_matrix(adjmatrix_t p) { +ENTERING("1n1e0k0wtlbugwm3cb4na6av6","free_matrix"); +try { + if (p!=null) { + Memory.free(p.getPtr("data")); + Memory.free(p); + } +} finally { +LEAVING("1n1e0k0wtlbugwm3cb4na6av6","free_matrix"); +} +} + + + + +//3 49vw7fkn99wbojtfksugvuruh +// static void init_mccomp(graph_t * g, int c) +public static void init_mccomp(Agraph_s g, int c) { +ENTERING("49vw7fkn99wbojtfksugvuruh","init_mccomp"); +try { + int r; + GD_nlist(g, GD_comp(g).getArrayOfPtr("list").plus(c).getPtr()); + if (c > 0) { + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + GD_rank(g).plus(r).setPtr("v", GD_rank(g).plus(r).getPtr("v").plus(GD_rank(g).plus(r).getInt("n"))); + GD_rank(g).plus(r).setInt("n", 0); + } + } +} finally { +LEAVING("49vw7fkn99wbojtfksugvuruh","init_mccomp"); +} +} + + + + +//3 72v5zs502m1of3vsofyfo15ap +// static int betweenclust(edge_t * e) +public static Object betweenclust(Object... arg) { +UNSUPPORTED("6k6r73j7gctt4ntepjubrlfze"); // static int betweenclust(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1z9f8ptfggp4qlwv5cdd55i3j"); // while (ED_to_orig(e)) +UNSUPPORTED("bdmai1d040qmubf08ds339v9x"); // e = ED_to_orig(e); +UNSUPPORTED("eq2o4v9qo3xx42in97ssadek"); // return (ND_clust(agtail(e)) != ND_clust(aghead(e))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 760bwoz4twwy2jr1b32r6zefi +// static void do_ordering_node (graph_t * g, node_t* n, int outflag) +public static Object do_ordering_node(Object... arg) { +UNSUPPORTED("ajn55zvrzf8njqkshll3kaz88"); // static void do_ordering_node (graph_t * g, node_t* n, int outflag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bp5tdulayknsvyv8a2j2tinh"); // int i, ne; +UNSUPPORTED("5yrhx4blosxo5xnc1nh1kzhfs"); // node_t *u, *v; +UNSUPPORTED("9cbk3ly04nbzqoxmmjwptqq9a"); // edge_t *e, *f, *fe; +UNSUPPORTED("5ol5beitdgh7axwpk35pc9trm"); // edge_t **sortlist = TE_list; +UNSUPPORTED("aeria2or5qpnnrr9wm15k588l"); // if (ND_clust(n)) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("442hvc4h32o6e3cvzm5y5y3oq"); // if (outflag) { +UNSUPPORTED("7xi4jdz18dyv740agfh5uwtxv"); // for (i = ne = 0; (e = ND_out(n).list[i]); i++) +UNSUPPORTED("24smn55xhvkklh2do2cfcmy98"); // if (!betweenclust(e)) +UNSUPPORTED("ouas2w3lk54dwigzgglm3w7r"); // sortlist[ne++] = e; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("6dgl0skwzmsi69ugcewc5vwaf"); // for (i = ne = 0; (e = ND_in(n).list[i]); i++) +UNSUPPORTED("24smn55xhvkklh2do2cfcmy98"); // if (!betweenclust(e)) +UNSUPPORTED("ouas2w3lk54dwigzgglm3w7r"); // sortlist[ne++] = e; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("hdnqvw2crdbzt2uenqso4l7k"); // if (ne <= 1) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("4zkjvsomlyhcl06ummf4gz0d2"); // /* write null terminator at end of list. +UNSUPPORTED("2zx16rdu8hp86z3z36natgy8t"); // requires +1 in TE_list alloccation */ +UNSUPPORTED("6dp57feioscwstrfmhqhrz1jx"); // sortlist[ne] = 0; +UNSUPPORTED("4wqnlh6z9lr2xvmjp95nozn84"); // qsort(sortlist, ne, sizeof(sortlist[0]), (qsort_cmpf) edgeidcmpf); +UNSUPPORTED("d6aia9q03brt8otnyu5m3tlxj"); // for (ne = 1; (f = sortlist[ne]); ne++) { +UNSUPPORTED("1b9ylnvr8zscovbyrxoe9ypax"); // e = sortlist[ne - 1]; +UNSUPPORTED("4nbrepm0pmohxxml0csb9j5xc"); // if (outflag) { +UNSUPPORTED("2rcn453iomwvou108kjr2rboc"); // u = aghead(e); +UNSUPPORTED("96i3kysq5lfoyukhe65vpiah2"); // v = aghead(f); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("96jttvtco2oqt3y3qr5fbhu1j"); // u = agtail(e); +UNSUPPORTED("8g5mzwux62x43bjzeslylyi0g"); // v = agtail(f); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("a7mygw39shaa9w4l8fdlgqr0i"); // if (find_flat_edge(u, v)) +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("aoa2embk8eaij29q6nbl4e5tk"); // fe = new_virtual_edge(u, v, NULL); +UNSUPPORTED("67t5g8eu9tdqbnwj4s4g6ah6u"); // ED_edge_type(fe) = 4; +UNSUPPORTED("b32n066t1nkgj646wvo7vuwlq"); // flat_edge(g, fe); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 815nmj2gcomtex4yfclqde12j +// static void do_ordering(graph_t * g, int outflag) +public static Object do_ordering(Object... arg) { +UNSUPPORTED("9v68euuxlii02rb5mhlyd8alp"); // static void do_ordering(graph_t * g, int outflag) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5y5mm5obhrqt745c4fx4o0r56"); // /* Order all nodes in graph */ +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("bicm0b87pp2rusaezmk6qigjq"); // do_ordering_node (g, n, outflag); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 svq3i3c6yw3cbfwaeip5dfuy +// static void do_ordering_for_nodes(graph_t * g) +public static Object do_ordering_for_nodes(Object... arg) { +UNSUPPORTED("7yd9vingwgdcdtrx0p38jti00"); // static void do_ordering_for_nodes(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("887aairlqk73reuayo3hz67v3"); // /* Order nodes which have the "ordered" attribute */ +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("cbbfhy5qk3dailijtedj1czut"); // const char *ordering; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("ekvbu44bbrdwkw71yd21dbns9"); // if ((ordering = late_string(n, N_ordering, NULL))) { +UNSUPPORTED("7jueg5punlemj6mfbpgltb5u8"); // if ((*(ordering)==*("out")&&!strcmp(ordering,"out"))) +UNSUPPORTED("302oz5j9wva90otn6jq513bme"); // do_ordering_node(g, n, NOT(0)); +UNSUPPORTED("1dt1hft3eak5ytycs6dh7yk0"); // else if ((*(ordering)==*("in")&&!strcmp(ordering,"in"))) +UNSUPPORTED("dnig45so0x904azp9fhxymqjn"); // do_ordering_node(g, n, 0); +UNSUPPORTED("2rxgmu8cktngvqtsex2rlbjed"); // else if (ordering[0]) +UNSUPPORTED("axk3fxl1bh09n475kmcx42kdu"); // agerr(AGERR, "ordering '%s' not recognized for node '%s'.\n", ordering, agnameof(n)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 hzoz2czb672i0nbjvjhbc3na +// static void ordered_edges(graph_t * g) +public static void ordered_edges(Agraph_s g) { +ENTERING("hzoz2czb672i0nbjvjhbc3na","ordered_edges"); +try { + CString ordering; + if (N(Z._().G_ordering) && N(Z._().N_ordering)) + return; +UNSUPPORTED("98iqppixxkdndoz210i5ejppy"); // if ((ordering = late_string(g, G_ordering, NULL))) { +UNSUPPORTED("lhhw62wj3on36enoy6ug6u1p"); // if ((*(ordering)==*("out")&&!strcmp(ordering,"out"))) +UNSUPPORTED("ctbadiyd3jjtlt2f5t9p94au7"); // do_ordering(g, NOT(0)); +UNSUPPORTED("259y9uhqwc8w6jhrpm1eaa7hf"); // else if ((*(ordering)==*("in")&&!strcmp(ordering,"in"))) +UNSUPPORTED("312ij4z5d42rye9s30l9io097"); // do_ordering(g, 0); +UNSUPPORTED("25yw5chxmy54pmo88tre1w2ir"); // else if (ordering[0]) +UNSUPPORTED("5ugg9zy8378pijqru97mxmen5"); // agerr(AGERR, "ordering '%s' not recognized.\n", ordering); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("50itbchatjp61haxvg3xnhvoo"); // graph_t *subg; +UNSUPPORTED("evzjoqkm2xukapjvpccu2f23e"); // for (subg = agfstsubg(g); subg; subg = agnxtsubg(subg)) { +UNSUPPORTED("1016hqxaexp4j33vmkzvdpq80"); // /* clusters are processed by separate calls to ordered_edges */ +UNSUPPORTED("7ah0zlu96u6g6cquxebenj4z3"); // if (!is_cluster(subg)) +UNSUPPORTED("7sqzaehh40dvpm11hlxhef6cw"); // ordered_edges(subg); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("h2b3ao18r091ie7yk9v20pqq"); // if (N_ordering) do_ordering_for_nodes (g); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("hzoz2czb672i0nbjvjhbc3na","ordered_edges"); +} +} + + + + +//3 crwc5qe7fmrpgcqh1a80toyvo +// static int mincross_clust(graph_t * par, graph_t * g, int doBalance) +public static int mincross_clust(Agraph_s par, Agraph_s g, boolean doBalance) { +ENTERING("crwc5qe7fmrpgcqh1a80toyvo","mincross_clust"); +try { + int c, nc; + expand_cluster(g); + ordered_edges(g); + flat_breakcycles(g); + flat_reorder(g); + nc = mincross_(g, 2, 2, doBalance); + for (c = 1; c <= GD_n_cluster(g); c++) + nc += mincross_clust(g, (Agraph_s) GD_clust(g).plus(c).getPtr(), doBalance); + save_vlist(g); + return nc; +} finally { +LEAVING("crwc5qe7fmrpgcqh1a80toyvo","mincross_clust"); +} +} + + + + +//3 657v773m21j5w3g3v94o7464t +// static int left2right(graph_t * g, node_t * v, node_t * w) +public static boolean left2right(Agraph_s g, Agnode_s v, Agnode_s w) { +ENTERING("657v773m21j5w3g3v94o7464t","left2right"); +try { + adjmatrix_t M; + boolean rv=false; + /* CLUSTER indicates orig nodes of clusters, and vnodes of skeletons */ + if (Z._().ReMincross == false) { + if (NEQ(ND_clust(v), ND_clust(w)) && (ND_clust(v)!=null) && (ND_clust(w)!=null)) { + /* the following allows cluster skeletons to be swapped */ + if ((ND_ranktype(v) == 7) + && (ND_node_type(v) == 1)) + return false; + if ((ND_ranktype(w) == 7) + && (ND_node_type(w) == 1)) + return false; + return NOT(false); + /*return ((ND_ranktype(v) != CLUSTER) && (ND_ranktype(w) != CLUSTER)); */ + } + } else { +UNSUPPORTED("8lltx4lxwrqossx8qw1khzwf9"); // if ((ND_clust(v)) != (ND_clust(w))) +UNSUPPORTED("9qhn9m3123s8n6wwxjfo8awlm"); // return NOT(0); + } + M = (adjmatrix_t) GD_rank(g).plus(ND_rank(v)).getPtr().getPtr("flat"); + if (M == null) + rv = false; + else { + if (GD_flip(g)!=0) { + Agnode_s t = v; + v = w; + w = t; + } + rv = (M.getArrayOfInteger("data").plus(((ND_low(v))*M.getInt("ncols"))+(ND_low(w))).getInt())!=0; + } + return rv; +} finally { +LEAVING("657v773m21j5w3g3v94o7464t","left2right"); +} +} + + + + +//3 daknncpjy7g5peiicolbmh55i +// static int in_cross(node_t * v, node_t * w) +public static int in_cross(Agnode_s v, Agnode_s w) { +ENTERING("daknncpjy7g5peiicolbmh55i","in_cross"); +try { + __array_of_ptr__ e1; + __array_of_ptr__ e2; + int inv, cross = 0, t; + for (e2 = ND_in(w).getArrayOfPtr("list"); e2.getPtr()!=null; e2=e2.plus(1)) { + int cnt = ED_xpenalty(e2.getPtr()); + inv = ND_order((agtail(e2.getPtr()))); + for (e1 = ND_in(v).getArrayOfPtr("list"); e1.getPtr()!=null; e1=e1.plus(1)) { + t = ND_order(agtail(e1.getPtr())) - inv; + if ((t > 0) + || ((t == 0) + && ( ED_tail_port(e1.getPtr()).getStruct("p").getDouble("x") > ED_tail_port(e2.getPtr()).getStruct("p").getDouble("x")))) + cross += ED_xpenalty(e1.getPtr()) * cnt; + } + } + return cross; +} finally { +LEAVING("daknncpjy7g5peiicolbmh55i","in_cross"); +} +} + + + + +//3 b7mf74np8ewrgzwd5u0o8fqod +// static int out_cross(node_t * v, node_t * w) +public static int out_cross(Agnode_s v, Agnode_s w) { +ENTERING("b7mf74np8ewrgzwd5u0o8fqod","out_cross"); +try { + __array_of_ptr__ e1, e2; + int inv, cross = 0, t; + for (e2 = ND_out(w).getArrayOfPtr("list"); e2.getPtr()!=null; e2=e2.plus(1)) { + int cnt = ED_xpenalty((Agedge_s)e2.getPtr()); + inv = ND_order(aghead(e2.getPtr())); + for (e1 = ND_out(v).getArrayOfPtr("list"); e1.getPtr()!=null; e1=e1.plus(1)) { + t = ND_order(aghead(e1.getPtr())) - inv; + if ((t > 0) + || ((t == 0) + && ((ED_head_port(e1.getPtr())).getStruct("p").getDouble("x") > (ED_head_port(e2.getPtr())).getStruct("p").getDouble("x")))) + cross += ((ED_xpenalty(e1.getPtr())) * cnt); + } + } + return cross; +} finally { +LEAVING("b7mf74np8ewrgzwd5u0o8fqod","out_cross"); +} +} + + + + +//3 ba4tbr57wips1dzpgxzx3b6ja +// static void exchange(node_t * v, node_t * w) +public static void exchange(Agnode_s v, Agnode_s w) { +ENTERING("ba4tbr57wips1dzpgxzx3b6ja","exchange"); +try { + int vi, wi, r; + r = ND_rank(v); + vi = ND_order(v); + wi = ND_order(w); + ND_order(v, wi); + GD_rank(Z._().Root).plus(r).getArrayOfPtr("v").plus(wi).setPtr(v); + ND_order(w, vi); + GD_rank(Z._().Root).plus(r).getArrayOfPtr("v").plus(vi).setPtr(w); +} finally { +LEAVING("ba4tbr57wips1dzpgxzx3b6ja","exchange"); +} +} + + + + +//3 dzkv88lq5zv0g3yo7bf90qgr7 +// static void balanceNodes(graph_t * g, int r, node_t * v, node_t * w) +public static Object balanceNodes(Object... arg) { +UNSUPPORTED("504qsj6detmzllj50pno6sdx4"); // static void balanceNodes(graph_t * g, int r, node_t * v, node_t * w) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dor7xumwnqvymg7xdesa6pxqn"); // node_t *s; /* separator node */ +UNSUPPORTED("c6s55weiu8hc4voeunxf2utru"); // int sepIndex; +UNSUPPORTED("6gqdkaiir2naiawry8cnlpf4a"); // int nullType; /* type of null nodes */ +UNSUPPORTED("2dqxr1ujg381s9ugf0367iici"); // int cntDummy = 0, cntOri = 0; +UNSUPPORTED("7yj94w2zpwdubyzymyljw490a"); // int k = 0, m = 0, k1 = 0, m1 = 0, i = 0; +UNSUPPORTED("6mq7c2z232o8kvpp371lfmewh"); // /* we only consider v and w of different types */ +UNSUPPORTED("53kjkk6c0h35zpbikj9y2q6b4"); // if (ND_node_type(v) == ND_node_type(w)) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("5ylcsv8rwps97qz7sdftpwrka"); // /* count the number of dummy and original nodes */ +UNSUPPORTED("5025o4uc5dkbxf3smi3kmfoit"); // for (i = 0; i < GD_rank(g)[r].n; i++) { +UNSUPPORTED("d87qjwxc2qjvh6hb9fmi9y9vq"); // if (ND_node_type(GD_rank(g)[r].v[i]) == 0) +UNSUPPORTED("dcny4syjny1sh20jyjjl7jj62"); // cntOri++; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("bbpsgrsgquajs3xxqzeqvgv6n"); // cntDummy++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2qx27p3loyln3i09ycwf5p1dh"); // if (cntOri < cntDummy) { +UNSUPPORTED("ex9drrxqg8zalagzrnvrulrlb"); // if (ND_node_type(v) == 0) +UNSUPPORTED("jtm789r1sqidxc39d09n9det"); // s = v; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("c31t0vnbzvj9zml7p91syjzep"); // s = w; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("ex9drrxqg8zalagzrnvrulrlb"); // if (ND_node_type(v) == 0) +UNSUPPORTED("c31t0vnbzvj9zml7p91syjzep"); // s = w; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("jtm789r1sqidxc39d09n9det"); // s = v; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ejbeaepbxwawm7mvtusyi2x57"); // /* get the separator node index */ +UNSUPPORTED("5025o4uc5dkbxf3smi3kmfoit"); // for (i = 0; i < GD_rank(g)[r].n; i++) { +UNSUPPORTED("afetrkwabtn6v07evr5japsk5"); // if (GD_rank(g)[r].v[i] == s) +UNSUPPORTED("bvwqg08b9hn6rfdx11sjq0hgc"); // sepIndex = i; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ecis6irl9vire6ejfrshttjk4"); // nullType = (ND_node_type(s) == 0) ? 1 : 0; +UNSUPPORTED("1i78b3w9omzkba0pmafwfunbj"); // /* count the number of null nodes to the left and +UNSUPPORTED("1f2jn45p7wv1ud964k43lgdss"); // * right of the separator node +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("5l8w7t0ta6p6hnfp72l7lbqey"); // for (i = sepIndex - 1; i >= 0; i--) { +UNSUPPORTED("49j09cv8f8ien7kqoguzywjmw"); // if (ND_node_type(GD_rank(g)[r].v[i]) == nullType) +UNSUPPORTED("borg3y7rgdooetc6ckrsrg9fc"); // k++; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cuj70hyout6yv30drqkjiwllo"); // for (i = sepIndex + 1; i < GD_rank(g)[r].n; i++) { +UNSUPPORTED("49j09cv8f8ien7kqoguzywjmw"); // if (ND_node_type(GD_rank(g)[r].v[i]) == nullType) +UNSUPPORTED("d35zlcj7podjjns9eg2ttocr7"); // m++; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9r0b42aqwdlx2cg7aqsxgle1o"); // /* now exchange v,w and calculate the same counts */ +UNSUPPORTED("cvktng9nwm6futhlv28bqbqy"); // exchange(v, w); +UNSUPPORTED("ejbeaepbxwawm7mvtusyi2x57"); // /* get the separator node index */ +UNSUPPORTED("5025o4uc5dkbxf3smi3kmfoit"); // for (i = 0; i < GD_rank(g)[r].n; i++) { +UNSUPPORTED("afetrkwabtn6v07evr5japsk5"); // if (GD_rank(g)[r].v[i] == s) +UNSUPPORTED("bvwqg08b9hn6rfdx11sjq0hgc"); // sepIndex = i; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1i78b3w9omzkba0pmafwfunbj"); // /* count the number of null nodes to the left and +UNSUPPORTED("1f2jn45p7wv1ud964k43lgdss"); // * right of the separator node +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("5l8w7t0ta6p6hnfp72l7lbqey"); // for (i = sepIndex - 1; i >= 0; i--) { +UNSUPPORTED("49j09cv8f8ien7kqoguzywjmw"); // if (ND_node_type(GD_rank(g)[r].v[i]) == nullType) +UNSUPPORTED("eer25fyjj3njh33v709xj07lk"); // k1++; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cuj70hyout6yv30drqkjiwllo"); // for (i = sepIndex + 1; i < GD_rank(g)[r].n; i++) { +UNSUPPORTED("49j09cv8f8ien7kqoguzywjmw"); // if (ND_node_type(GD_rank(g)[r].v[i]) == nullType) +UNSUPPORTED("80ptwhmp1gyks2xfkcjub24o9"); // m1++; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6yjcl5tugkib89c3p3beoi0cs"); // if (abs(k1 - m1) > abs(k - m)) { +UNSUPPORTED("4hhzcihijbcjb2mo6eop9g855"); // exchange(v, w); //revert to the original ordering +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 72rj5xs4qh00oh2yi1h5qaadu +// static int balance(graph_t * g) +public static Object balance(Object... arg) { +UNSUPPORTED("4223t6rekw3qd8eksvz9kjcqh"); // static int balance(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("970giwpms1ljmt0px5djlqs0z"); // int i, c0, c1, rv; +UNSUPPORTED("8xqnhjfdqnlwlyld1ep6hpnmb"); // node_t *v, *w; +UNSUPPORTED("p6jnh7nvcpnl3zbz636pskbs"); // int r; +UNSUPPORTED("yy0fwjrmxw3jbi85mvwrka7f"); // rv = 0; +UNSUPPORTED("9ey19t6tw2srzaedeng4sq96z"); // for (r = GD_maxrank(g); r >= GD_minrank(g); r--) { +UNSUPPORTED("2nlemgjbnd1ygry42bcbuwo9y"); // GD_rank(g)[r].candidate = 0; +UNSUPPORTED("91gzxbmcoy5xbvf8nlhmlj4eh"); // for (i = 0; i < GD_rank(g)[r].n - 1; i++) { +UNSUPPORTED("5ekdr3i8niy7x2ohi7ftgmjke"); // v = GD_rank(g)[r].v[i]; +UNSUPPORTED("efwyjm6j3e7byt6z83lrhgd1r"); // w = GD_rank(g)[r].v[i + 1]; +UNSUPPORTED("8ey6umhtefcrb61ncgis82hw6"); // assert(ND_order(v) < ND_order(w)); +UNSUPPORTED("ddkyq74d5rjfcofczt4hmkxsj"); // if (left2right(g, v, w)) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("cdpfb5fmlhe0831jf96pjp9s0"); // c0 = c1 = 0; +UNSUPPORTED("3l676z6ajeugxvie4r957jap3"); // if (r > 0) { +UNSUPPORTED("ennnd5cl9xhh55j2bni58iuxv"); // c0 += in_cross(v, w); +UNSUPPORTED("bk4dl2r7nw7j8xvkpg7g7x0z9"); // c1 += in_cross(w, v); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("f0ordylgf44hx2l90eof067yo"); // if (GD_rank(g)[r + 1].n > 0) { +UNSUPPORTED("d945airzpo5xbu0fz68ylmgql"); // c0 += out_cross(v, w); +UNSUPPORTED("e6ez0uwca50uwo7i7i4vak4f2"); // c1 += out_cross(w, v); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("884yfwkgyw57w5ivpfrggmq15"); // if (c1 <= c0) { +UNSUPPORTED("c2sevxb1gtyc2olq8akmvs40u"); // balanceNodes(g, r, v, w); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxwzx4m9ejausu58u7abr6fm0 +// static int transpose_step(graph_t * g, int r, int reverse) +public static int transpose_step(Agraph_s g, int r, boolean reverse) { +ENTERING("bxwzx4m9ejausu58u7abr6fm0","transpose_step"); +try { + int i, c0, c1, rv; + Agnode_s v, w; + rv = 0; + GD_rank(g).plus(r).getPtr().setBoolean("candidate", false); + for (i = 0; i < GD_rank(g).plus(r).getInt("n") - 1; i++) { + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + w = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i + 1).getPtr(); + //assert(ND_order(v) < ND_order(w)); + if (left2right(g, v, w)) + continue; + c0 = c1 = 0; + if (r > 0) { + c0 += in_cross(v, w); + c1 += in_cross(w, v); + } + if (GD_rank(g).plus(r + 1).getInt("n") > 0) { + c0 += out_cross(v, w); + c1 += out_cross(w, v); + } + if ((c1 < c0) || ((c0 > 0) && reverse && (c1 == c0))) { + exchange(v, w); + rv += (c0 - c1); + GD_rank(Z._().Root).plus(r).getPtr().setBoolean("valid", false); + GD_rank(g).plus(r).getPtr().setBoolean("candidate", NOT(false)); + if (r > GD_minrank(g)) { + GD_rank(Z._().Root).plus(r - 1).getPtr().setBoolean("valid", false); + GD_rank(g).plus(r - 1).getPtr().setBoolean("candidate", NOT(false)); + } + if (r < GD_maxrank(g)) { + GD_rank(Z._().Root).plus(r + 1).getPtr().setBoolean("valid", false); + GD_rank(g).plus(r + 1).getPtr().setBoolean("candidate", NOT(false)); + } + } + } + return rv; +} finally { +LEAVING("bxwzx4m9ejausu58u7abr6fm0","transpose_step"); +} +} + + + + +//3 2i22bxgg5y7v5c5d40k5zppky +// static void transpose(graph_t * g, int reverse) +public static void transpose(Agraph_s g, boolean reverse) { +ENTERING("2i22bxgg5y7v5c5d40k5zppky","transpose"); +try { + int r, delta; + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) + GD_rank(g).plus(r).getPtr().setBoolean("candidate", NOT(false)); + do { + delta = 0; + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + if (GD_rank(g).plus(r).getPtr().getBoolean("candidate")) { + delta += transpose_step(g, r, reverse); + } + } + /*} while (delta > ncross(g)*(1.0 - Convergence)); */ + } while (delta >= 1); +} finally { +LEAVING("2i22bxgg5y7v5c5d40k5zppky","transpose"); +} +} + + + + +//3 7lrk2rxqnwwdau8cx85oqkpmv +// static int mincross(graph_t * g, int startpass, int endpass, int doBalance) +public static int mincross_(Agraph_s g, int startpass, int endpass, boolean doBalance) { +ENTERING("7lrk2rxqnwwdau8cx85oqkpmv","mincross"); +try { + int maxthispass=0, iter, trying, pass; + int cur_cross, best_cross; + if (startpass > 1) { + cur_cross = best_cross = ncross(g); + save_best(g); + } else + cur_cross = best_cross = INT_MAX; + for (pass = startpass; pass <= endpass; pass++) { + if (pass <= 1) { + maxthispass = MIN(4, Z._().MaxIter); + if (EQ(g, dot_root(g))) + build_ranks(g, pass); + if (pass == 0) + flat_breakcycles(g); + flat_reorder(g); + if ((cur_cross = ncross(g)) <= best_cross) { + save_best(g); + best_cross = cur_cross; + } + trying = 0; + } else { + maxthispass = Z._().MaxIter; + if (cur_cross > best_cross) + restore_best(g); + cur_cross = best_cross; + } + trying = 0; + for (iter = 0; iter < maxthispass; iter++) { + /*if (Verbose) + fprintf(stderr, + "mincross: pass %d iter %d trying %d cur_cross %d best_cross %d\n", + pass, iter, trying, cur_cross, best_cross);*/ + if (trying++ >= Z._().MinQuit) + break; + if (cur_cross == 0) + break; + mincross_step(g, iter); + if ((cur_cross = ncross(g)) <= best_cross) { + save_best(g); + if (cur_cross < Z._().Convergence * best_cross) + trying = 0; + best_cross = cur_cross; + } + } + if (cur_cross == 0) + break; + } + if (cur_cross > best_cross) + restore_best(g); + if (best_cross > 0) { + transpose(g, false); + best_cross = ncross(g); + } + if (doBalance) { + for (iter = 0; iter < maxthispass; iter++) + balance(g); + } + return best_cross; +} finally { +LEAVING("7lrk2rxqnwwdau8cx85oqkpmv","mincross"); +} +} + + + + +//3 520049zkz9mafaeklgvm6s8e5 +// static void restore_best(graph_t * g) +public static void restore_best(Agraph_s g) { +ENTERING("520049zkz9mafaeklgvm6s8e5","restore_best"); +try { + Agnode_s n; + int r; + for (n = GD_nlist(g); n!=null; n = ND_next(n)) + ND_order(n, (int)ND_coord(n).getDouble("x")); + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + GD_rank(Z._().Root).plus(r).setBoolean("valid", false); + qsort(GD_rank(g).plus(r).getPtr("v"), + GD_rank(g).plus(r).getInt("n"), + sizeof(GD_rank(g).plus(r).getPtr("v").plus(0)), + function(mincross__c.class, "nodeposcmpf")); + } +} finally { +LEAVING("520049zkz9mafaeklgvm6s8e5","restore_best"); +} +} + + + + +//3 8uyqc48j0oul206l3np85wj9p +// static void save_best(graph_t * g) +public static void save_best(Agraph_s g) { +ENTERING("8uyqc48j0oul206l3np85wj9p","save_best"); +try { + Agnode_s n; + for (n = GD_nlist(g); n!=null; n = ND_next(n)) + (ND_coord(n)).setDouble("x", ND_order(n)); +} finally { +LEAVING("8uyqc48j0oul206l3np85wj9p","save_best"); +} +} + + + + +//3 6d08fwi4dsk6ikk5d0gy6rq2h +// static void merge_components(graph_t * g) +public static void merge_components(Agraph_s g) { +ENTERING("6d08fwi4dsk6ikk5d0gy6rq2h","merge_components"); +try { + int c; + Agnode_s u, v; + if (GD_comp(g).getInt("size") <= 1) + return; + u = null; + for (c = 0; c < GD_comp(g).getInt("size"); c++) { + v = (Agnode_s) GD_comp(g).getArrayOfPtr("list").plus(c).getPtr(); + if (u!=null) + ND_next(u, v); + ND_prev(v, u); + while (ND_next(v)!=null) { + v = ND_next(v); + } + u = v; + } + GD_comp(g).setInt("size", 1); + GD_nlist(g, GD_comp(g).getArrayOfPtr("list").plus(0).getPtr()); + GD_minrank(g, Z._().GlobalMinRank); + GD_maxrank(g, Z._().GlobalMaxRank); +} finally { +LEAVING("6d08fwi4dsk6ikk5d0gy6rq2h","merge_components"); +} +} + + + + +//3 91vebcdl3q3y0uyxef0iw71n9 +// static void merge2(graph_t * g) +public static void merge2(Agraph_s g) { +ENTERING("91vebcdl3q3y0uyxef0iw71n9","merge2"); +try { + int i, r; + Agnode_s v; + /* merge the components and rank limits */ + merge_components(g); + /* install complete ranks */ + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + GD_rank(g).plus(r).setInt("n", GD_rank(g).plus(r).getInt("an")); + GD_rank(g).plus(r).setPtr("v", GD_rank(g).plus(r).getPtr("av")); + for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) { + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + if (v == null) { + /*if (Verbose) + fprintf(stderr, + "merge2: graph %s, rank %d has only %d < %d nodes\n", + agnameof(g), r, i, GD_rank(g)[r].n);*/ + GD_rank(g).plus(r).setInt("n", i); + break; + } + ND_order(v, i); + } + } +} finally { +LEAVING("91vebcdl3q3y0uyxef0iw71n9","merge2"); +} +} + + + + +//3 3cwiyyk1d1jkoo9iqwb5bge4x +// static void cleanup2(graph_t * g, int nc) +public static void cleanup2(Agraph_s g, int nc) { +ENTERING("3cwiyyk1d1jkoo9iqwb5bge4x","cleanup2"); +try { + int i, j, r, c; + Agnode_s v; + Agedge_s e; + if (Z._().TI_list!=null) { + Memory.free(Z._().TI_list); + Z._().TI_list = null; + } + if (Z._().TE_list!=null) { + Memory.free(Z._().TE_list); + Z._().TE_list = null; + } + /* fix vlists of clusters */ + for (c = 1; c <= GD_n_cluster(g); c++) + rec_reset_vlists((Agraph_s) GD_clust(g).plus(c).getPtr()); + /* remove node temporary edges for ordering nodes */ + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) { + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + ND_order(v, i); + if (ND_flat_out(v).getPtr("list")!=null) { + for (j = 0; (e = (Agedge_s) ND_flat_out(v).getArrayOfPtr("list").plus(j).getPtr())!=null; j++) + if (ED_edge_type(e) == 4) { + delete_flat_edge(e); + Memory.free(e.getPtr("base.data")); + Memory.free(e); + j--; + } + } + } + free_matrix((adjmatrix_t) GD_rank(g).plus(r).getPtr("flat")); + } + /*if (Verbose) + fprintf(stderr, "mincross %s: %d crossings, %.2f secs.\n", + agnameof(g), nc, elapsed_sec());*/ +} finally { +LEAVING("3cwiyyk1d1jkoo9iqwb5bge4x","cleanup2"); +} +} + + + + +//3 arax68kzcf86dr2xu0gp962gq +// static node_t *neighbor(node_t * v, int dir) +public static Agnode_s neighbor(Agnode_s v, int dir) { +ENTERING("arax68kzcf86dr2xu0gp962gq","neighbor"); +try { + Agnode_s rv; + rv = null; +assert(v!=null); + if (dir < 0) { + if (ND_order(v) > 0) + rv = (Agnode_s) GD_rank(Z._().Root).plus(ND_rank(v)).getArrayOfPtr("v").plus(ND_order(v) - 1).getPtr(); + } else + rv = (Agnode_s) GD_rank(Z._().Root).plus(ND_rank(v)).getArrayOfPtr("v").plus(ND_order(v) + 1).getPtr(); +assert((rv == null) || (ND_order(rv)-ND_order(v))*dir > 0); + return rv; +} finally { +LEAVING("arax68kzcf86dr2xu0gp962gq","neighbor"); +} +} + + + + +//3 1waqm8z71hi389dt1wqh0bmhr +// static int is_a_normal_node_of(graph_t * g, node_t * v) +public static boolean is_a_normal_node_of(Agraph_s g, Agnode_s v) { +ENTERING("1waqm8z71hi389dt1wqh0bmhr","is_a_normal_node_of"); +try { + return ((ND_node_type(v) == 0) && agcontains(g, v)); +} finally { +LEAVING("1waqm8z71hi389dt1wqh0bmhr","is_a_normal_node_of"); +} +} + + + + +//3 9f8atyi1unmleplge3rijdt4s +// static int is_a_vnode_of_an_edge_of(graph_t * g, node_t * v) +public static boolean is_a_vnode_of_an_edge_of(Agraph_s g, Agnode_s v) { +ENTERING("9f8atyi1unmleplge3rijdt4s","is_a_vnode_of_an_edge_of"); +try { + if ((ND_node_type(v) == 1) + && (ND_in(v).getInt("size") == 1) && (ND_out(v).getInt("size") == 1)) { + Agedge_s e = (Agedge_s) ND_out(v).getArrayOfPtr("list").plus(0).getPtr(); + while (ED_edge_type(e) != 0) + e = ED_to_orig(e); + if (agcontains(g, e)) + return NOT(false); + } + return false; +} finally { +LEAVING("9f8atyi1unmleplge3rijdt4s","is_a_vnode_of_an_edge_of"); +} +} + + + + +//3 eo7ulc8vwmoaig0j479yapve2 +// static int inside_cluster(graph_t * g, node_t * v) +public static boolean inside_cluster(Agraph_s g, Agnode_s v) { +ENTERING("eo7ulc8vwmoaig0j479yapve2","inside_cluster"); +try { + return (is_a_normal_node_of(g, v) | is_a_vnode_of_an_edge_of(g, v)); +} finally { +LEAVING("eo7ulc8vwmoaig0j479yapve2","inside_cluster"); +} +} + + + + +//3 8xkmkt4r6gfqj8gk0mokszoz0 +// static node_t *furthestnode(graph_t * g, node_t * v, int dir) +public static Agnode_s furthestnode(Agraph_s g, Agnode_s v, int dir) { +ENTERING("8xkmkt4r6gfqj8gk0mokszoz0","furthestnode"); +try { + Agnode_s u, rv; + rv = u = v; + while ((u = neighbor(u, dir))!=null) { + if (is_a_normal_node_of(g, u)) + rv = u; + else if (is_a_vnode_of_an_edge_of(g, u)) + rv = u; + } + return rv; +} finally { +LEAVING("8xkmkt4r6gfqj8gk0mokszoz0","furthestnode"); +} +} + + + + +//3 bwmu2hkwud40601oq5vgo2f1h +// void save_vlist(graph_t * g) +public static void save_vlist(Agraph_s g) { +ENTERING("bwmu2hkwud40601oq5vgo2f1h","save_vlist"); +try { + int r; + if (GD_rankleader(g)!=null) + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + GD_rankleader(g).plus(r).setPtr(GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr()); + } +} finally { +LEAVING("bwmu2hkwud40601oq5vgo2f1h","save_vlist"); +} +} + + + + +//3 hwdxg97sefkuyd25x2q4pgzg +// void rec_save_vlists(graph_t * g) +public static void rec_save_vlists(Agraph_s g) { +ENTERING("hwdxg97sefkuyd25x2q4pgzg","rec_save_vlists"); +try { + int c; + save_vlist(g); + for (c = 1; c <= GD_n_cluster(g); c++) + rec_save_vlists((Agraph_s) GD_clust(g).plus(c).getPtr()); +} finally { +LEAVING("hwdxg97sefkuyd25x2q4pgzg","rec_save_vlists"); +} +} + + + + +//3 f3b4wat4uxn5oil720i5mwq4v +// void rec_reset_vlists(graph_t * g) +public static void rec_reset_vlists(Agraph_s g) { +ENTERING("f3b4wat4uxn5oil720i5mwq4v","rec_reset_vlists"); +try { + int r, c; + Agnode_s u, v, w; + /* fix vlists of sub-clusters */ + for (c = 1; c <= GD_n_cluster(g); c++) + rec_reset_vlists((Agraph_s) GD_clust(g).plus(c).getPtr()); + if (GD_rankleader(g)!=null) + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + v = (Agnode_s) GD_rankleader(g).plus(r).getPtr(); + u = furthestnode(g, v, -1); + w = furthestnode(g, v, 1); + GD_rankleader(g).plus(r).setPtr(u); + GD_rank(g).plus(r).setPtr("v", GD_rank(dot_root(g)).plus(r).getPtr("v").plus(ND_order(u))); + GD_rank(g).plus(r).setInt("n", ND_order(w) - ND_order(u) + 1); + } +} finally { +LEAVING("f3b4wat4uxn5oil720i5mwq4v","rec_reset_vlists"); +} +} + + + + +//3 pv0rbbdopo4hmkbl5916qys1 +// static Agraph_t* realFillRanks (Agraph_t* g, int rnks[], int rnks_sz, Agraph_t* sg) +public static Agraph_s realFillRanks(Agraph_s g, __ptr__ rnks, int rnks_sz, Agraph_s sg) { +ENTERING("pv0rbbdopo4hmkbl5916qys1","realFillRanks"); +try { + UNSUPPORTED("2o2sf6xi2aumo5k0vglp4ik2y"); // static Agraph_t* +UNSUPPORTED("3pmsfb0uhqmy5u141c932dtn1"); // realFillRanks (Agraph_t* g, int rnks[], int rnks_sz, Agraph_t* sg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("apiu3v3f9zs9yrq8e25nd2rti"); // int i, c; +UNSUPPORTED("6yramhpyls8c6kexupyqip8oq"); // Agedge_t* e; +UNSUPPORTED("ci2zh69w6nhi0q816i1ixuy9k"); // Agnode_t* n; +UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++) +UNSUPPORTED("wqxqmv4he79njsw6r7sludv"); // sg = realFillRanks (GD_clust(g)[c], rnks, rnks_sz, sg); +UNSUPPORTED("8htor72y55gsejjdeh0e8gdrs"); // if (dot_root(g) == g) +UNSUPPORTED("bjae04ek2s3o50399zti5a1jh"); // return sg; +UNSUPPORTED("bqfhaopbxlwv8h4zfae1lhx6s"); // memset (rnks, 0, sizeof(int)*rnks_sz); +UNSUPPORTED("7wq24g054kmx3aw25vk5ksj4"); // for (n = agfstnode(g); n; n = agnxtnode(g,n)) { +UNSUPPORTED("do7v5atqor4gnpwgo18ibgjha"); // rnks[ND_rank(n)] = 1; +UNSUPPORTED("9fo44dng5uojukw2kj0z8vvdu"); // for (e = agfstout(g,n); e; e = agnxtout(g,e)) { +UNSUPPORTED("emlgvc6yzuboae72y6vxpn8z7"); // for (i = ND_rank(n)+1; i <= ND_rank(aghead(e)); i++) +UNSUPPORTED("d3fd9x50ix980jjw3old2jrcr"); // rnks[i] = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7gfo0rr0un3w2026kt6ipknty"); // for (i = GD_minrank(g); i <= GD_maxrank(g); i++) { +UNSUPPORTED("6mjvdb94lywg8d7ui6873f18p"); // if (rnks[i] == 0) { +UNSUPPORTED("8g0zxrf8w2zly4wln02j3lbnb"); // if (!sg) { +UNSUPPORTED("eqx93butvb7swnxbz9j29winp"); // sg = agsubg (dot_root(g), "_new_rank", 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("9h7suegjozc071a939rh9apw1"); // n = agnode (sg, NULL, 1); +UNSUPPORTED("8kclviftszfxkowsmlqq31u8"); // agbindrec(n, "Agnodeinfo_t", sizeof(Agnodeinfo_t), NOT(0)); +UNSUPPORTED("8wiry1vcdwy6bzdp98nmxss7c"); // ND_rank(n) = i; +UNSUPPORTED("dy16sxtk3jj6127wavfcdx4yw"); // ND_lw(n) = ND_rw(n) = 0.5; +UNSUPPORTED("6jr3li9af4sp0uxnpnoe8dqh8"); // ND_ht(n) = 1; +UNSUPPORTED("c47fetnb62mx46qzuk9ag3qmu"); // ND_UF_size(n) = 1; +UNSUPPORTED("899cyghezv8oxs0iomu58zncj"); // alloc_elist(4, ND_in(n)); +UNSUPPORTED("btfqtg58rqwdh7o4cc0gbaaai"); // alloc_elist(4, ND_out(n)); +UNSUPPORTED("9zap4z819hsiogrgmekh15f00"); // agsubnode (g, n, 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1jw141gg4omv8r72xcbl5ln0o"); // return sg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("pv0rbbdopo4hmkbl5916qys1","realFillRanks"); +} +} + + + + +//3 1qy9bupreg1pax62owznr98k +// static void fillRanks (Agraph_t* g) +public static void fillRanks(Agraph_s g) { +ENTERING("1qy9bupreg1pax62owznr98k","fillRanks"); +try { + Agraph_s sg; + int rnks_sz = GD_maxrank(g) + 2; + __ptr__ rnks = zmalloc(size_t_array_of_integer(rnks_sz)); + sg = realFillRanks (g, rnks, rnks_sz, null); + Memory.free (rnks); +} finally { +LEAVING("1qy9bupreg1pax62owznr98k","fillRanks"); +} +} + + + + +//3 7fy4chyk12o7bgp1rv3h27yl3 +// static void init_mincross(graph_t * g) +public static void init_mincross(Agraph_s g) { +ENTERING("7fy4chyk12o7bgp1rv3h27yl3","init_mincross"); +try { + int size; + //if (Verbose) + //start_timer(); + Z._().ReMincross = false; + Z._().Root = g; + /* alloc +1 for the null terminator usage in do_ordering() */ + /* also, the +1 avoids attempts to alloc 0 sizes, something + that efence complains about */ + size = agnedges(dot_root(g)) + 1; + Z._().TE_list = zmalloc(sizeof_starstar_empty(Agedge_s.class, size)); + Z._().TI_list = zmalloc(size_t_array_of_integer(size)); + mincross_options(g); + if ((GD_flags(g) & (1 << 4))!=0) + fillRanks (g); + class2(g); + decompose(g, 1); + allocate_ranks(g); + ordered_edges(g); + Z._().GlobalMinRank = GD_minrank(g); + Z._().GlobalMaxRank = GD_maxrank(g); +} finally { +LEAVING("7fy4chyk12o7bgp1rv3h27yl3","init_mincross"); +} +} + + + + +//3 6fprrp93vmz0jn3l4ro0iropp +// void flat_rev(Agraph_t * g, Agedge_t * e) +public static void flat_rev(Agraph_s g, Agedge_s e) { +ENTERING("6fprrp93vmz0jn3l4ro0iropp","flat_rev"); +try { + int j; + Agedge_s rev; + if (N(ND_flat_out(aghead(e)).getArrayOfPtr("list"))) + rev = null; + else + for (j = 0; (rev = (Agedge_s) ND_flat_out(aghead(e)).getArrayOfPtr("list").plus(j).getPtr())!=null; j++) + if (EQ(aghead(rev), agtail(e))) + break; + if (rev!=null) { + merge_oneway(e, rev); + if (ED_to_virt(e) == null) + ED_to_virt(e, rev); + if ((ED_edge_type(rev) == 4) + && (ED_to_orig(rev) == null)) + ED_to_orig(rev, e); + elist_append(e, ND_other(agtail(e))); + } else { + rev = new_virtual_edge(aghead(e), agtail(e), e); + if (ED_edge_type(e) == 4) + ED_edge_type(rev, 4); + else + ED_edge_type(rev, 3); + ED_label(rev, ED_label(e)); + flat_edge(g, rev); + } +} finally { +LEAVING("6fprrp93vmz0jn3l4ro0iropp","flat_rev"); +} +} + + + + +//3 63ol0ch6cgln1nvl5oiz6n1v0 +// static void flat_search(graph_t * g, node_t * v) +public static void flat_search(Agraph_s g, Agnode_s v) { +ENTERING("63ol0ch6cgln1nvl5oiz6n1v0","flat_search"); +try { + int i; + boolean hascl; + Agedge_s e; + adjmatrix_t M = (adjmatrix_t) GD_rank(g).plus(ND_rank(v)).getPtr("flat"); + ND_mark(v, NOT(false)); + ND_onstack(v, NOT(false)); + hascl = (GD_n_cluster(dot_root(g)) > 0); + if (ND_flat_out(v).getArrayOfPtr("list")!=null) + for (i = 0; (e = (Agedge_s) ND_flat_out(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if (hascl + && NOT(agcontains(g, agtail(e)) && agcontains(g, aghead(e)))) + continue; + if (ED_weight(e) == 0) + continue; + if (ND_onstack(aghead(e)) == NOT(false)) { + assert(ND_low(aghead(e)) < M.getInt("nrows")); + assert(ND_low(agtail(e)) < M.getInt("ncols")); + M.getArrayOfInteger("data").plus(ND_low(aghead(e))*M.getInt("ncols")+ND_low(agtail(e))).setInt(1); + delete_flat_edge(e); + i--; + if (ED_edge_type(e) == 4) + continue; + flat_rev(g, e); + } else { + assert(ND_low(aghead(e)) < M.getInt("nrows")); + assert(ND_low(agtail(e)) < M.getInt("ncols")); + M.getArrayOfInteger("data").plus(ND_low(agtail(e))*M.getInt("ncols")+ND_low(aghead(e))).setInt(1); + if (ND_mark(aghead(e)) == 0) + flat_search(g, aghead(e)); + } + } + ND_onstack(v, 0); +} finally { +LEAVING("63ol0ch6cgln1nvl5oiz6n1v0","flat_search"); +} +} + + + + +//3 3v5h7z4vqivibvpt913lg8at0 +// static void flat_breakcycles(graph_t * g) +public static void flat_breakcycles(Agraph_s g) { +ENTERING("3v5h7z4vqivibvpt913lg8at0","flat_breakcycles"); +try { + int i, r, flat; + Agnode_s v; + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + flat = 0; + for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) { + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + ND_mark(v, 0); + ND_onstack(v, 0); + ND_low(v, i); + if ((ND_flat_out(v).getInt("size") > 0) && (flat == 0)) { + GD_rank(g).plus(r).setPtr("flat", + new_matrix(GD_rank(g).plus(r).getInt("n"), GD_rank(g).plus(r).getInt("n"))); + flat = 1; + } + } + if (flat!=0) { + for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) { + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + if (ND_mark(v) == 0) + flat_search(g, v); + } + } + } +} finally { +LEAVING("3v5h7z4vqivibvpt913lg8at0","flat_breakcycles"); +} +} + + + + +//3 d5vb6jiw8mhkaa8gjwn4eqfyn +// void allocate_ranks(graph_t * g) +public static void allocate_ranks(Agraph_s g) { +ENTERING("d5vb6jiw8mhkaa8gjwn4eqfyn","allocate_ranks"); +try { + // REVIEW 17/01/2016 + int r, low, high; + __ptr__ cn; + Agnode_s n; + Agedge_s e; + cn = zmalloc(size_t_array_of_integer(GD_maxrank(g) + 2)); + /* must be 0 based, not GD_minrank */ + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) { + cn.plus(ND_rank(n)).setInt(1+cn.plus(ND_rank(n)).getInt()); + for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) { + low = ND_rank(agtail(e)); + high = ND_rank(aghead(e)); + if (low > high) { + int t = low; + low = high; + high = t; + } + for (r = low + 1; r < high; r++) + cn.plus(r).setInt(1+cn.plus(r).getInt()); + } + } + GD_rank(g, zmalloc(sizeof(rank_t.class, GD_maxrank(g) + 2))); + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + GD_rank(g).plus(r).setInt("n", cn.plus(r).getInt()); + GD_rank(g).plus(r).setInt("an", cn.plus(r).getInt()); + __ptr__ tmp = zmalloc(sizeof_starstar_empty(Agnode_s.class, cn.plus(r).getInt() + 1)); + GD_rank(g).plus(r).setPtr("v", tmp); + GD_rank(g).plus(r).setPtr("av", tmp); + } + Memory.free(cn); +} finally { +LEAVING("d5vb6jiw8mhkaa8gjwn4eqfyn","allocate_ranks"); +} +} + + + + +//3 3lxoqxhiri9fgt20zc5jz3aa5 +// void install_in_rank(graph_t * g, node_t * n) +public static void install_in_rank(Agraph_s g, Agnode_s n) { +ENTERING("3lxoqxhiri9fgt20zc5jz3aa5","install_in_rank"); +try { + int i, r; + r = ND_rank(n); + i = GD_rank(g).plus(r).getInt("n"); + if (GD_rank(g).plus(r).getInt("an") <= 0) { +UNSUPPORTED("8qk1xhvvb994zhv9aq10k4v12"); // agerr(AGERR, "install_in_rank, line %d: %s %s rank %d i = %d an = 0\n", +UNSUPPORTED("53h8d82ax23hys2k21hjswp72"); // 1034, agnameof(g), agnameof(n), r, i); + return; + } + GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).setPtr(n); + ND_order(n, i); + GD_rank(g).plus(r).setInt("n", 1+GD_rank(g).plus(r).getInt("n")); + // assert(GD_rank(g)[r].n <= GD_rank(g)[r].an); + if (ND_order(n) > GD_rank(Z._().Root).plus(r).getInt("an")) { +UNSUPPORTED("399szcw1txekt1xssyw7s2x07"); // agerr(AGERR, "install_in_rank, line %d: ND_order(%s) [%d] > GD_rank(Root)[%d].an [%d]\n", +UNSUPPORTED("9puojrmsk6vb1qc0jtr8ge4g8"); // 1052, agnameof(n), ND_order(n), r, GD_rank(Root)[r].an); + return; + } + if ((r < GD_minrank(g)) || (r > GD_maxrank(g))) { +UNSUPPORTED("7o1thnqda767wqpe2lh9mj03t"); // agerr(AGERR, "install_in_rank, line %d: rank %d not in rank range [%d,%d]\n", +UNSUPPORTED("d2ugluzf7bmj7osicgitgy3sr"); // 1057, r, GD_minrank(g), GD_maxrank(g)); + return; + } + if (GD_rank(g).plus(r).getPtr("v").plus(ND_order(n)).comparePointer( + GD_rank(g).plus(r).getPtr("av").plus(GD_rank(Z._().Root).plus(r).getInt("an")))>0) { +UNSUPPORTED("3eb32nc5czs5auwzz5p5mtl04"); // agerr(AGERR, "install_in_rank, line %d: GD_rank(g)[%d].v + ND_order(%s) [%d] > GD_rank(g)[%d].av + GD_rank(Root)[%d].an [%d]\n", +UNSUPPORTED("3qe3qpw5h6vse39xs1ca9sjmo"); // 1062, r, agnameof(n),GD_rank(g)[r].v + ND_order(n), r, r, GD_rank(g)[r].av+GD_rank(Root)[r].an); + return; + } +} finally { +LEAVING("3lxoqxhiri9fgt20zc5jz3aa5","install_in_rank"); +} +} + + + + +//3 7t49bz6lfcbd9v63ds2x3518z +// void build_ranks(graph_t * g, int pass) +public static void build_ranks(Agraph_s g, int pass) { +ENTERING("7t49bz6lfcbd9v63ds2x3518z","build_ranks"); +try { + int i, j; + Agnode_s n, n0 = null; + __ptr__ otheredges; + nodequeue q; + q = new_queue(GD_n_nodes(g)); + for (n = GD_nlist(g); n!=null; n = ND_next(n)) + ND_mark(n, 0); + for (i = GD_minrank(g); i <= GD_maxrank(g); i++) + GD_rank(g).plus(i).setInt("n", 0); + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + otheredges = ((pass == 0) ? ND_in(n).getPtr("list") : ND_out(n).getPtr("list")); + if (otheredges.plus(0).getPtr() != null) + continue; + if ((ND_mark(n)) == 0) { + ND_mark(n, 1); + enqueue(q, n); + while ((n0 = dequeue(q))!=null) { + if (ND_ranktype(n0) != 7) { + install_in_rank(g, n0); + enqueue_neighbors(q, n0, pass); + } else { + install_cluster(g, n0, pass, q); + } + } + } + } + if (dequeue(q)!=null) +UNSUPPORTED("1b3hbd5artrq77i58q2o9kgz3"); // agerr(AGERR, "surprise\n"); + for (i = GD_minrank(g); i <= GD_maxrank(g); i++) { + GD_rank(Z._().Root).plus(i).setInt("valid", 0); + if (GD_flip(g)!=0 && (GD_rank(g).plus(i).getInt("n") > 0)) { + int nn, ndiv2; + __ptr__ vlist = GD_rank(g).plus(i).getPtr("v"); + nn = GD_rank(g).plus(i).getInt("n") - 1; + ndiv2 = nn / 2; + for (j = 0; j <= ndiv2; j++) + exchange((Agnode_s)vlist.plus(j).getPtr(), (Agnode_s)vlist.plus(nn - j).getPtr()); + } + } + if (EQ(g, dot_root(g)) && ncross(g) > 0) + transpose(g, false); + free_queue(q); +} finally { +LEAVING("7t49bz6lfcbd9v63ds2x3518z","build_ranks"); +} +} + + + + +//3 bmjlneqxex6a9silzkkidkx6s +// void enqueue_neighbors(nodequeue * q, node_t * n0, int pass) +public static void enqueue_neighbors(nodequeue q, Agnode_s n0, int pass) { +ENTERING("bmjlneqxex6a9silzkkidkx6s","enqueue_neighbors"); +try { + int i; + Agedge_s e; + if (pass == 0) { + for (i = 0; i < ND_out(n0).getInt("size"); i++) { + e = (Agedge_s) ND_out(n0).getArrayOfPtr("list").plus(i).getPtr(); + if (((ND_mark(aghead(e)))) == 0) { + ND_mark(aghead(e), 1); + enqueue(q, aghead(e)); + } + } + } else { + for (i = 0; i < ND_in(n0).getInt("size"); i++) { + e = (Agedge_s) ND_in(n0).getArrayOfPtr("list").plus(i).getPtr(); + if (((ND_mark(agtail(e)))) == 0) { + ND_mark(agtail(e), 1); + enqueue(q, agtail(e)); + } + } + } +} finally { +LEAVING("bmjlneqxex6a9silzkkidkx6s","enqueue_neighbors"); +} +} + + + + +//3 c8nqj0v20api63pikohsbx92u +// static int constraining_flat_edge(Agraph_t *g, Agnode_t *v, Agedge_t *e) +public static boolean constraining_flat_edge(Agraph_s g, Agnode_s v, Agedge_s e) { +ENTERING("c8nqj0v20api63pikohsbx92u","constraining_flat_edge"); +try { + if (ED_weight(e) == 0) return false; + if (N(inside_cluster(g,agtail(e)))) return false; + if (N(inside_cluster(g,aghead(e)))) return false; + return NOT(false); +} finally { +LEAVING("c8nqj0v20api63pikohsbx92u","constraining_flat_edge"); +} +} + + + + +//3 46to0pkk188af2dlkik2ab7e3 +// static int postorder(graph_t * g, node_t * v, node_t ** list, int r) +public static int postorder(Agraph_s g, Agnode_s v, __ptr__ list, int r) { +ENTERING("46to0pkk188af2dlkik2ab7e3","postorder"); +try { + Agedge_s e; + int i, cnt = 0; + ND_mark(v, NOT(false)); + if (ND_flat_out(v).getInt("size") > 0) { + for (i = 0; (e = (Agedge_s) ND_flat_out(v).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if (N(constraining_flat_edge(g,v,e))) continue; + if ((ND_mark(aghead(e))) == 0) + cnt += postorder(g, aghead(e), list.plus(cnt), r); + } + } + assert(ND_rank(v) == r); + list.plus(cnt++).setPtr(v); + return cnt; +} finally { +LEAVING("46to0pkk188af2dlkik2ab7e3","postorder"); +} +} + + + + +//3 zuxoswju917kyl08a5f0gtp6 +// static void flat_reorder(graph_t * g) +public static void flat_reorder(Agraph_s g) { +ENTERING("zuxoswju917kyl08a5f0gtp6","flat_reorder"); +try { + int i, j, r, pos, n_search, local_in_cnt, local_out_cnt, base_order; + Agnode_s v, t; + __ptr__ left, right; + __ptr__ temprank = null; + Agedge_s flat_e, e; + if (GD_has_flat_edges(g) == 0) + return; + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + if (GD_rank(g).plus(r).getInt("n") == 0) continue; + base_order = ND_order(GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr()); + for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) + ND_mark(GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr(), 0); + temprank = ALLOC(i + 1, temprank, Agnode_s.class); + pos = 0; + /* construct reverse topological sort order in temprank */ + for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) { + if (GD_flip(g)!=0) v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + else v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(GD_rank(g).plus(r).getInt("n") - i - 1).getPtr(); + local_in_cnt = local_out_cnt = 0; + for (j = 0; j < ND_flat_in(v).getInt("size"); j++) { + flat_e = (Agedge_s) ND_flat_in(v).getArrayOfPtr("list").plus(j).getPtr(); + if (constraining_flat_edge(g,v,flat_e)) local_in_cnt++; + } + for (j = 0; j < ND_flat_out(v).getInt("size"); j++) { + flat_e = (Agedge_s) ND_flat_out(v).getArrayOfPtr("list").plus(j).getPtr(); + if (constraining_flat_edge(g,v,flat_e)) local_out_cnt++; + } + if ((local_in_cnt == 0) && (local_out_cnt == 0)) + temprank.plus(pos++).setPtr(v); + else { + if (((ND_mark(v)) == 0) && (local_in_cnt == 0)) { + left = temprank.plus(pos); + n_search = postorder(g, v, left, r); + pos += n_search; + } + } + } + if (pos!=0) { + if (GD_flip(g) == 0) { + left = temprank; + right = temprank.plus(pos - 1); + while (left.comparePointer(right) < 0) { + t = (Agnode_s) left.getPtr(); + left.setPtr(right.getPtr()); + right.setPtr(t); + left = left.plus(1); + right = right.plus(-1); + } + } + for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) { + v = (Agnode_s) temprank.plus(i).getPtr(); + GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).setPtr(v); + ND_order(v, i + base_order); + } + /* nonconstraint flat edges must be made LR */ + for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) { + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + if (ND_flat_out(v).getArrayOfPtr("list")!=null) { + for (j = 0; (e = (Agedge_s) ND_flat_out(v).getArrayOfPtr("list").plus(j).getPtr())!=null; j++) { + if ( ((GD_flip(g) == 0) && (ND_order(aghead(e)) < ND_order(agtail(e)))) || + ( (GD_flip(g)!=0) && (ND_order(aghead(e)) > ND_order(agtail(e)) ))) { + assert(constraining_flat_edge(g,v,e) == false); + delete_flat_edge(e); + j--; + flat_rev(g, e); + } + } + } + } + /* postprocess to restore intended order */ + } + /* else do no harm! */ + GD_rank(Z._().Root).plus(r).setInt("valid", 0); + } + if (temprank!=null) + Memory.free(temprank); +} finally { +LEAVING("zuxoswju917kyl08a5f0gtp6","flat_reorder"); +} +} + + + + +//3 inv6wazjcnh4xkzzphsdcmg4 +// static void reorder(graph_t * g, int r, int reverse, int hasfixed) +public static void reorder(Agraph_s g, int r, boolean reverse, boolean hasfixed) { +ENTERING("inv6wazjcnh4xkzzphsdcmg4","reorder"); +try { + boolean changed = false; + int nelt; + boolean muststay, sawclust; + __ptr__ vlist = GD_rank(g).plus(r).getPtr("v"); + __ptr__ lp, rp=null, ep = vlist.plus(GD_rank(g).plus(r).getInt("n")); + for (nelt = GD_rank(g).plus(r).getInt("n") - 1; nelt >= 0; nelt--) { + lp = vlist; + while (lp.comparePointer(ep)<0) { + /* find leftmost node that can be compared */ + while ((lp.comparePointer(ep) < 0) && (ND_mval(lp.getPtr()) < 0)) + lp = lp.plus(1); + if (lp.comparePointer(ep) >= 0) + break; + /* find the node that can be compared */ + sawclust = muststay = false; + for (rp = lp.plus(1); rp.comparePointer(ep) < 0; rp=rp.plus(1)) { + if (sawclust && ND_clust(rp.getPtr())!=null) + continue; /* ### */ + if (left2right(g, (Agnode_s) lp.getPtr(), (Agnode_s) rp.getPtr())) { + muststay = NOT(false); + break; + } + if (ND_mval(rp.getPtr()) >= 0) + break; + if (ND_clust(rp.getPtr())!=null) + sawclust = NOT(false); /* ### */ + } + if (rp.comparePointer(ep) >= 0) + break; + if (muststay == false) { + int p1 = (int) (ND_mval(lp.getPtr())); + int p2 = (int) (ND_mval(rp.getPtr())); + if ((p1 > p2) || ((p1 == p2) && (reverse))) { + exchange((Agnode_s)lp.getPtr(), (Agnode_s)rp.getPtr()); + changed=true; + } + } + lp = rp; + } + if ((hasfixed == false) && (reverse == false)) + ep = ep.plus(-1); + } + if (changed) { + GD_rank(Z._().Root).plus(r).setBoolean("valid", false); + if (r > 0) + GD_rank(Z._().Root).plus(r - 1).setBoolean("valid", false); + } +} finally { +LEAVING("inv6wazjcnh4xkzzphsdcmg4","reorder"); +} +} + + + + +//3 14t80owwvm7io4ou6czb9ba9 +// static void mincross_step(graph_t * g, int pass) +public static void mincross_step(Agraph_s g, int pass) { +ENTERING("14t80owwvm7io4ou6czb9ba9","mincross_step"); +try { + int r, other, first, last, dir; + boolean hasfixed, reverse; + if ((pass % 4) < 2) + reverse = NOT(false); + else + reverse = false; + if ((pass % 2)!=0) { + r = GD_maxrank(g) - 1; + dir = -1; + } /* up pass */ + else { + r = 1; + dir = 1; + } /* down pass */ + if (pass % 2 == 0) { /* down pass */ + first = GD_minrank(g) + 1; + if (GD_minrank(g) > GD_minrank(Z._().Root)) + first--; + last = GD_maxrank(g); + dir = 1; + } else { /* up pass */ + first = GD_maxrank(g) - 1; + last = GD_minrank(g); + if (GD_maxrank(g) < GD_maxrank(Z._().Root)) + first++; + dir = -1; + } + for (r = first; r != last + dir; r += dir) { + other = r - dir; + hasfixed = medians(g, r, other); + reorder(g, r, reverse, hasfixed); + } + transpose(g, NOT(reverse)); +} finally { +LEAVING("14t80owwvm7io4ou6czb9ba9","mincross_step"); +} +} + + + + +//3 aq18oa4k4grixvfjx7r2qnl6r +// static int local_cross(elist l, int dir) +public static int local_cross(final __struct__ l, int dir) { +// WARNING!! STRUCT +return local_cross_w_(l.copy(), dir); +} +private static int local_cross_w_(final __struct__ l, int dir) { +ENTERING("aq18oa4k4grixvfjx7r2qnl6r","local_cross"); +try { + UNSUPPORTED("3jmndo6p8u1x5wp297qpt0jto"); // static int local_cross(elist l, int dir) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2gmuwkiycm22in3d9obd7bzll"); // int i, j, is_out; +UNSUPPORTED("bcforqedbns82qhgqkocjbvm"); // int cross = 0; +UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f; +UNSUPPORTED("8az9seos08f2sa39127q6yo9"); // if (dir > 0) +UNSUPPORTED("8xj2loay6suplxyiun7hlye39"); // is_out = NOT(0); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("56xhe3qw67sg923dvr87k8hho"); // is_out = 0; +UNSUPPORTED("16t717mqlhfn3egmgor8are83"); // for (i = 0; (e = l.list[i]); i++) { +UNSUPPORTED("3lbek06034x2gsimhxwfmgf0r"); // if (is_out) +UNSUPPORTED("2pkmgz4cm8lwpwxgcg3znjm90"); // for (j = i + 1; (f = l.list[j]); j++) { +UNSUPPORTED("8wj6phwqlmunjcua9abo6093d"); // if ((ND_order(aghead(f)) - ND_order(aghead(e))) +UNSUPPORTED("pt12knuv94kokmtrwpdp1m0j"); // * (ED_tail_port(f).p.x - ED_tail_port(e).p.x) < 0) +UNSUPPORTED("bw8rwv11yqzss88pad7ljil8a"); // cross += ED_xpenalty(e) * ED_xpenalty(f); +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("2pkmgz4cm8lwpwxgcg3znjm90"); // for (j = i + 1; (f = l.list[j]); j++) { +UNSUPPORTED("bza83c6rmihrkzyllwf0jm4tn"); // if ((ND_order(agtail(f)) - ND_order(agtail(e))) +UNSUPPORTED("csrxg0y1azmvde7t833lm13sp"); // * (ED_head_port(f).p.x - ED_head_port(e).p.x) < 0) +UNSUPPORTED("bw8rwv11yqzss88pad7ljil8a"); // cross += ED_xpenalty(e) * ED_xpenalty(f); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8dm5o3tsfvxtjilyob6q5ndi1"); // return cross; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("aq18oa4k4grixvfjx7r2qnl6r","local_cross"); +} +} + + + + +//3 bk5nklhfqgg0uwkv7tv6dn8r2 +// static int rcross(graph_t * g, int r) +//static __ptr__ Count; +//static int C; +public static int rcross(Agraph_s g, int r) { +ENTERING("bk5nklhfqgg0uwkv7tv6dn8r2","rcross"); +try { + int top, bot, cross, max, i, k; + Agnode_s v; + __ptr__ rtop; + cross = 0; + max = 0; + rtop = GD_rank(g).plus(r).getPtr("v"); + if (Z._().C <= GD_rank(Z._().Root).plus(r + 1).getInt("n")) { + Z._().C = GD_rank(Z._().Root).plus(r + 1).getInt("n") + 1; + Z._().Count = ALLOC_INT(Z._().C, Z._().Count); + } + for (i = 0; i < GD_rank(g).plus(r + 1).getInt("n"); i++) + Z._().Count.plus(i).setInt(0); + for (top = 0; top < GD_rank(g).plus(r).getInt("n"); top++) { + Agedge_s e; + if (max > 0) { + for (i = 0; (e = (Agedge_s) ND_out(rtop.plus(top).getPtr()).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + for (k = ND_order(aghead(e)) + 1; k <= max; k++) + cross += Z._().Count.plus(k).getInt() * ED_xpenalty(e); + } + } + for (i = 0; (e = (Agedge_s) ND_out(rtop.plus(top).getPtr()).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + int inv = ND_order(aghead(e)); + if (inv > max) + max = inv; + Z._().Count.plus(inv).setInt(Z._().Count.plus(inv).getInt() + ED_xpenalty(e)); + } + } + for (top = 0; top < GD_rank(g).plus(r).getInt("n"); top++) { + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(top).getPtr(); + if (ND_has_port(v)) + cross += local_cross(ND_out(v), 1); + } + for (bot = 0; bot < GD_rank(g).plus(r + 1).getInt("n"); bot++) { + v = (Agnode_s) GD_rank(g).plus(r + 1).getArrayOfPtr("v").plus(bot).getPtr(); + if (ND_has_port(v)) + cross += local_cross(ND_in(v), -1); + } + return cross; +} finally { +LEAVING("bk5nklhfqgg0uwkv7tv6dn8r2","rcross"); +} +} + + + + +//3 dbjmz2tnii2pn9sxg26ap6w5r +// int ncross(graph_t * g) +public static int ncross(Agraph_s g) { +ENTERING("dbjmz2tnii2pn9sxg26ap6w5r","ncross"); +try { + int r, count, nc; + g = Z._().Root; + count = 0; + for (r = GD_minrank(g); r < GD_maxrank(g); r++) { + if (GD_rank(g).plus(r).getBoolean("valid")) + count += GD_rank(g).plus(r).getInt("cache_nc"); + else { + nc = rcross(g, r); + GD_rank(g).plus(r).getInt("cache_nc"); + count += nc; + GD_rank(g).plus(r).setInt("valid", 1); + } + } + return count; +} finally { +LEAVING("dbjmz2tnii2pn9sxg26ap6w5r","ncross"); +} +} + + + + +//3 8wrsq8a2vooekcm3cdtv5x3ke +// static int ordercmpf(int *i0, int *i1) +public static int ordercmpf(__ptr__ i0, __ptr__ i1) { +ENTERING("8wrsq8a2vooekcm3cdtv5x3ke","ordercmpf"); +try { + return (i0.getInt()) - (i1.getInt()); +} finally { +LEAVING("8wrsq8a2vooekcm3cdtv5x3ke","ordercmpf"); +} +} + + + + +//3 7397kynkpqf2m1jkpmi8pgf0n +// static int flat_mval(node_t * n) +public static boolean flat_mval(Agnode_s n) { +ENTERING("7397kynkpqf2m1jkpmi8pgf0n","flat_mval"); +try { + int i; + Agedge_s e; + __ptr__ fl; + Agnode_s nn; + if (ND_flat_in(n).getInt("size") > 0) { + fl = ND_flat_in(n).getPtr("list"); + nn = agtail(fl.plus(0).getPtr()); + for (i = 1; (e = (Agedge_s) fl.plus(i).getPtr())!=null; i++) + if (ND_order(agtail(e)) > ND_order(nn)) + nn = agtail(e); + if (ND_mval(nn) >= 0) { + ND_mval(n, ND_mval(nn) + 1); + return false; + } + } else if (ND_flat_out(n).getInt("size") > 0) { + fl = ND_flat_out(n).getPtr("list"); + nn = aghead(fl.plus(0).getPtr()); + for (i = 1; (e = (Agedge_s) fl.plus(i).getPtr())!=null; i++) + if (ND_order(aghead(e)) < ND_order(nn)) + nn = aghead(e); + if (ND_mval(nn) > 0) { + ND_mval(n, ND_mval(nn) - 1); + return false; + } + } + return NOT(false); +} finally { +LEAVING("7397kynkpqf2m1jkpmi8pgf0n","flat_mval"); +} +} + + + + +//3 azvdpixwwxspl31wp7f4k4fmh +// static boolean medians(graph_t * g, int r0, int r1) +public static boolean medians(Agraph_s g, int r0, int r1) { +ENTERING("azvdpixwwxspl31wp7f4k4fmh","medians"); +try { + int i, j, j0, lm, rm, lspan, rspan; + __ptr__ list; + Agnode_s n; + __ptr__ v; + Agedge_s e; + boolean hasfixed = false; + list = Z._().TI_list; + v = GD_rank(g).plus(r0).getPtr("v"); + for (i = 0; i < GD_rank(g).plus(r0).getInt("n"); i++) { + n = (Agnode_s) v.plus(i).getPtr(); + j = 0; + if (r1 > r0) + for (j0 = 0; (e = (Agedge_s) ND_out(n).getArrayOfPtr("list").plus(j0).getPtr())!=null; j0++) { + if (ED_xpenalty(e) > 0) + list.plus(j++).setInt((256 * ND_order(aghead(e)) + (ED_head_port(e)).getInt("order"))); + } else + for (j0 = 0; (e = (Agedge_s) ND_in(n).getArrayOfPtr("list").plus(j0).getPtr())!=null; j0++) { + if (ED_xpenalty(e) > 0) + list.plus(j++).setInt((256 * ND_order(agtail(e)) + (ED_tail_port(e)).getInt("order"))); + } + switch (j) { + case 0: + ND_mval(n, -1); + break; + case 1: + ND_mval(n, list.plus(0).getInt()); + break; + case 2: + ND_mval(n, (list.plus(0).getInt() + list.plus(1).getInt()) / 2); + break; + default: + qsort(list, + j, + sizeof(list.plus(0)), + function(mincross__c.class, "ordercmpf")); + if (j % 2!=0) + ND_mval(n, list.plus(j / 2).getInt()); + else { + /* weighted median */ + rm = j / 2; + lm = rm - 1; + rspan = list.plus(j - 1).getInt() - list.plus(rm).getInt(); + lspan = list.plus(lm).getInt() - list.plus(0).getInt(); + if (lspan == rspan) + ND_mval(n, (list.plus(lm).getInt() + list.plus(rm).getInt()) / 2); + else { + int w = list.plus(lm).getInt() * rspan + list.plus(rm).getInt() * lspan; + ND_mval(n, w / (lspan + rspan)); + } + } + } + } + for (i = 0; i < GD_rank(g).plus(r0).getInt("n"); i++) { + n = (Agnode_s) v.plus(i).getPtr(); + if ((ND_out(n).getInt("size") == 0) && (ND_in(n).getInt("size") == 0)) + hasfixed |= flat_mval(n); + } + return hasfixed; +} finally { +LEAVING("azvdpixwwxspl31wp7f4k4fmh","medians"); +} +} + + + + +//3 2vdhpcykq508ma83aif8sxcbd +// static int nodeposcmpf(node_t ** n0, node_t ** n1) +public static Object nodeposcmpf(__ptr__ n0, __ptr__ n1) { +ENTERING("2vdhpcykq508ma83aif8sxcbd","nodeposcmpf"); +try { + return (ND_order(n0.getPtr()) - ND_order(n1.getPtr())); +} finally { +LEAVING("2vdhpcykq508ma83aif8sxcbd","nodeposcmpf"); +} +} + + + + +//3 87c98ld9c4hv87ekcxdyojx8l +// static int edgeidcmpf(edge_t ** e0, edge_t ** e1) +public static Object edgeidcmpf(Object... arg) { +UNSUPPORTED("apvyql25ya1p7w7i7396gucdg"); // static int edgeidcmpf(edge_t ** e0, edge_t ** e1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9gjc2rit3ezq4il0t5aymk1z"); // return (AGSEQ(*e0) - AGSEQ(*e1)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 40as9opn4mzq4gp4nkmp4dj8w +// static int table[3][3] = +private static int table[][] = new int[][]{ + /* ordinary */ {1, 1, 1}, + /* singleton */ {1, 2, 2}, + /* virtual */ {1, 2, 4} +}; + + + +//3 7j638prioxd97f74v1v4adbsf +// static int endpoint_class(node_t * n) +public static int endpoint_class(Agnode_s n) { +ENTERING("7j638prioxd97f74v1v4adbsf","endpoint_class"); +try { + if (ND_node_type(n) == 1) + return 2; + if (ND_weight_class(n) <= 1) + return 1; + return 0; +} finally { +LEAVING("7j638prioxd97f74v1v4adbsf","endpoint_class"); +} +} + + + + +//3 es57bn7ga4wc9tqtcixpn0451 +// void virtual_weight(edge_t * e) +public static void virtual_weight(Agedge_s e) { +ENTERING("es57bn7ga4wc9tqtcixpn0451","virtual_weight"); +try { + int t; + t = table[endpoint_class(agtail(e))][endpoint_class(aghead(e))]; + ED_weight(e, ED_weight(e) * t); +} finally { +LEAVING("es57bn7ga4wc9tqtcixpn0451","virtual_weight"); +} +} + + + + +//3 7ru09oqbudpeofsthzveig2m2 +// static void mincross_options(graph_t * g) +public static void mincross_options(Agraph_s g) { +ENTERING("7ru09oqbudpeofsthzveig2m2","mincross_options"); +try { + CString p; + double f; + /* set default values */ + Z._().MinQuit = 8; + Z._().MaxIter = 24; + Z._().Convergence = .995; + p = agget(g, new CString("mclimit")); + if (p!=null && ((f = atof(p)) > 0.0)) { +UNSUPPORTED("4iu53eiz077u6joqgwawca8ya"); // MinQuit = ((1)>(MinQuit * f)?(1):(MinQuit * f)); +UNSUPPORTED("38po81l36cibw6jc3qlsscpcu"); // MaxIter = ((1)>(MaxIter * f)?(1):(MaxIter * f)); + } +} finally { +LEAVING("7ru09oqbudpeofsthzveig2m2","mincross_options"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/position__c.java plantuml-8039/src/gen/lib/dotgen/position__c.java --- plantuml-8024/src/gen/lib/dotgen/position__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/position__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,2162 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.attr__c.agget; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agtail; +import static gen.lib.cgraph.graph__c.agnnodes; +import static gen.lib.cgraph.obj__c.agcontains; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.common.memory__c.zmalloc; +import static gen.lib.common.ns__c.rank; +import static gen.lib.common.splines__c.selfRightSpace; +import static gen.lib.common.utils__c.late_int; +import static gen.lib.dotgen.cluster__c.mark_lowclusters; +import static gen.lib.dotgen.conc__c.dot_concentrate; +import static gen.lib.dotgen.dotinit__c.dot_root; +import static gen.lib.dotgen.fastgr__c.fast_edge; +import static gen.lib.dotgen.fastgr__c.find_fast_edge; +import static gen.lib.dotgen.fastgr__c.virtual_node; +import static gen.lib.dotgen.fastgr__c.zapinlist; +import static gen.lib.dotgen.flat__c.flat_edges; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.USHRT_MAX; +import static smetana.core.JUtils.atof; +import static smetana.core.JUtils.enumAsInt; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGINEDGE; +import static smetana.core.Macro.AGOUTEDGE; +import static smetana.core.Macro.AGTYPE; +import static smetana.core.Macro.ALLOC_empty; +import static smetana.core.Macro.ED_dist; +import static smetana.core.Macro.ED_head_port; +import static smetana.core.Macro.ED_label; +import static smetana.core.Macro.ED_minlen; +import static smetana.core.Macro.ED_tail_port; +import static smetana.core.Macro.ED_to_orig; +import static smetana.core.Macro.ED_weight; +import static smetana.core.Macro.GD_bb; +import static smetana.core.Macro.GD_border; +import static smetana.core.Macro.GD_clust; +import static smetana.core.Macro.GD_drawing; +import static smetana.core.Macro.GD_exact_ranksep; +import static smetana.core.Macro.GD_flip; +import static smetana.core.Macro.GD_has_labels; +import static smetana.core.Macro.GD_ht1; +import static smetana.core.Macro.GD_ht2; +import static smetana.core.Macro.GD_label; +import static smetana.core.Macro.GD_ln; +import static smetana.core.Macro.GD_maxrank; +import static smetana.core.Macro.GD_minrank; +import static smetana.core.Macro.GD_n_cluster; +import static smetana.core.Macro.GD_nlist; +import static smetana.core.Macro.GD_nodesep; +import static smetana.core.Macro.GD_rank; +import static smetana.core.Macro.GD_ranksep; +import static smetana.core.Macro.GD_rn; +import static smetana.core.Macro.INT_MAX; +import static smetana.core.Macro.MAX; +import static smetana.core.Macro.MIN; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_UF_size; +import static smetana.core.Macro.ND_alg; +import static smetana.core.Macro.ND_clust; +import static smetana.core.Macro.ND_coord; +import static smetana.core.Macro.ND_flat_out; +import static smetana.core.Macro.ND_ht; +import static smetana.core.Macro.ND_in; +import static smetana.core.Macro.ND_inleaf; +import static smetana.core.Macro.ND_lw; +import static smetana.core.Macro.ND_mval; +import static smetana.core.Macro.ND_next; +import static smetana.core.Macro.ND_node_type; +import static smetana.core.Macro.ND_order; +import static smetana.core.Macro.ND_other; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.ND_outleaf; +import static smetana.core.Macro.ND_prev; +import static smetana.core.Macro.ND_rank; +import static smetana.core.Macro.ND_ranktype; +import static smetana.core.Macro.ND_rw; +import static smetana.core.Macro.ND_save_in; +import static smetana.core.Macro.ND_save_out; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.ROUND; +import static smetana.core.Macro.UNSUPPORTED; +import static smetana.core.Macro.aghead; +import static smetana.core.Macro.agtail; +import static smetana.core.Macro.alloc_elist; +import static smetana.core.Macro.free_list; +import h.Agedge_s; +import h.Agedgeinfo_t; +import h.Agedgepair_s; +import h.Agnode_s; +import h.Agraph_s; +import h.aspect_t; +import h.boxf; +import h.point; +import h.pointf; +import h.ratio_t; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class position__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6knxbdrmgk6294aw61s2lpvvf +// static double largeMinlen (double l) +public static double largeMinlen(double l) { +ENTERING("6knxbdrmgk6294aw61s2lpvvf","largeMinlen"); +try { + UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("e2f0xhw6om2fpgt48xyjjg3i"); // largeMinlen (double l) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dad2o3vzemegi5fywxl7hcezk"); // agerr (AGERR, "Edge length %f larger than maximum %u allowed.\nCheck for overwide node(s).\n", l, USHRT_MAX); +UNSUPPORTED("dlasv24dnuygpwagcamhyg15w"); // return (double)USHRT_MAX; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("6knxbdrmgk6294aw61s2lpvvf","largeMinlen"); +} +} + + + + +//3 ccowbxkwmrj75tojopmhcmubx +// static void connectGraph (graph_t* g) +public static void connectGraph(Agraph_s g) { +ENTERING("ccowbxkwmrj75tojopmhcmubx","connectGraph"); +try { + int i, j, r, found; + Agnode_s tp; + Agnode_s hp; + Agnode_s sn; + Agedge_s e; + __ptr__ rp; + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + rp = GD_rank(g).plus(r); + found =0; + tp = null; + for (i = 0; i < rp.getPtr().getInt("n"); i++) { + tp = (Agnode_s) rp.getPtr().getArrayOfPtr("v").plus(i).getPtr(); + if (ND_save_out(tp).getPtr("list")!=null) { + for (j = 0; (e = (Agedge_s) ND_save_out(tp).getArrayOfPtr("list").plus(j).getPtr())!=null; j++) { + if ((ND_rank(aghead(e)) > r) || (ND_rank(agtail(e)) > r)) { + found = 1; + break; + } + } + if (found!=0) break; + } + if (ND_save_in(tp).getPtr("list")!=null) { + for (j = 0; (e = (Agedge_s) ND_save_in(tp).getArrayOfPtr("list").plus(j).getPtr())!=null; j++) { + if ((ND_rank(agtail(e)) > r) || (ND_rank(aghead(e)) > r)) { + found = 1; + break; + } + } + if (found!=0) break; + } + } + if (found!=0 || N(tp)) continue; + tp = (Agnode_s) rp.getPtr().getArrayOfPtr("v").plus(0).getPtr(); + if (r < GD_maxrank(g)) hp = (Agnode_s) rp.plus(1).getPtr().getArrayOfPtr("v").plus(0).getPtr(); + else hp = (Agnode_s) rp.plus(-1).getPtr().getArrayOfPtr("v").plus(0).getPtr(); + //assert (hp); + sn = virtual_node(g); + ND_node_type(sn, 2); + make_aux_edge(sn, tp, 0, 0); + make_aux_edge(sn, hp, 0, 0); + ND_rank(sn, MIN(ND_rank(tp), ND_rank(hp))); + } +} finally { +LEAVING("ccowbxkwmrj75tojopmhcmubx","connectGraph"); +} +} + + + + +//3 33snzyd9z0loienur06dnily9 +// void dot_position(graph_t * g, aspect_t* asp) +public static void dot_position(Agraph_s g, aspect_t asp) { +ENTERING("33snzyd9z0loienur06dnily9","dot_position"); +try { + if (GD_nlist(g) == null) + return; /* ignore empty graph */ + mark_lowclusters(g); /* we could remove from splines.c now */ + set_ycoords(g); + if (Z._().Concentrate) + dot_concentrate(g); + expand_leaves(g); + if (flat_edges(g)!=0) + set_ycoords(g); + create_aux_edges(g); + if (rank(g, 2, nsiter2(g))!=0) { /* LR balance == 2 */ + connectGraph (g); + //assert(rank(g, 2, nsiter2(g)) == 0); + } + set_xcoords(g); + set_aspect(g, asp); + remove_aux_edges(g); /* must come after set_aspect since we now + * use GD_ln and GD_rn for bbox width. + */ +} finally { +LEAVING("33snzyd9z0loienur06dnily9","dot_position"); +} +} + + + + +//3 90vn63m6v0w9fn9a2dgfxxx3h +// static int nsiter2(graph_t * g) +public static int nsiter2(Agraph_s g) { +ENTERING("90vn63m6v0w9fn9a2dgfxxx3h","nsiter2"); +try { + int maxiter = INT_MAX; + CString s; + if ((s = agget(g, new CString("nslimit")))!=null) + maxiter = (int)(atof(s) * agnnodes(g)); + return maxiter; +} finally { +LEAVING("90vn63m6v0w9fn9a2dgfxxx3h","nsiter2"); +} +} + + + + +//3 5bax8ut6nnk4pr7yxdumk9chl +// static int go(node_t * u, node_t * v) +public static boolean go(Agnode_s u, Agnode_s v) { +ENTERING("5bax8ut6nnk4pr7yxdumk9chl","go"); +try { + int i; + Agedge_s e; + if (EQ(u, v)) + return NOT(false); + for (i = 0; (e = (Agedge_s) ND_out(u).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if (go(aghead(e), v)) + return NOT(false); + } + return false; +} finally { +LEAVING("5bax8ut6nnk4pr7yxdumk9chl","go"); +} +} + + + + +//3 9xz8numztzj4qsq85pziahv1k +// static int canreach(node_t * u, node_t * v) +public static boolean canreach(Agnode_s u, Agnode_s v) { +ENTERING("9xz8numztzj4qsq85pziahv1k","canreach"); +try { + return go(u, v); +} finally { +LEAVING("9xz8numztzj4qsq85pziahv1k","canreach"); +} +} + + + + +//3 4cvgiatny97ou6mhqoq6aqwek +// edge_t *make_aux_edge(node_t * u, node_t * v, double len, int wt) +public static Agedge_s make_aux_edge(Agnode_s u, Agnode_s v, double len, int wt) { +ENTERING("4cvgiatny97ou6mhqoq6aqwek","make_aux_edge"); +try { + Agedge_s e; + Agedgepair_s e2 = (Agedgepair_s) zmalloc(sizeof(Agedgepair_s.class)); + AGTYPE(e2.getStruct("in").amp(), AGINEDGE); + AGTYPE(e2.getStruct("out").amp(), AGOUTEDGE); + e2.getStruct("out").getStruct("base").setPtr("data", zmalloc(sizeof(Agedgeinfo_t.class))); + e = (Agedge_s) e2.getStruct("out").amp(); + agtail(e, u); + aghead(e, v); + if (len > USHRT_MAX) + len = largeMinlen (len); + ED_minlen(e, ROUND(len)); + ED_weight(e, wt); + fast_edge(e); + return e; +} finally { +LEAVING("4cvgiatny97ou6mhqoq6aqwek","make_aux_edge"); +} +} + + + + +//3 53fvij7oun7aezlb7x66vzuyb +// static void allocate_aux_edges(graph_t * g) +public static void allocate_aux_edges(Agraph_s g) { +ENTERING("53fvij7oun7aezlb7x66vzuyb","allocate_aux_edges"); +try { + int i, j, n_in; + Agnode_s n; + /* allocate space for aux edge lists */ + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + ND_save_in(n, ND_in(n)); + ND_save_out(n, ND_out(n)); + for (i = 0; ND_out(n).getArrayOfPtr("list").plus(i).getPtr()!=null; i++); + for (j = 0; ND_in(n).getArrayOfPtr("list").plus(j).getPtr()!=null; j++); + n_in = i + j; + alloc_elist(n_in + 3, ND_in(n), Agnode_s.class); + alloc_elist(3, ND_out(n), Agnode_s.class); + } +} finally { +LEAVING("53fvij7oun7aezlb7x66vzuyb","allocate_aux_edges"); +} +} + + + + +//3 ah28nr6mxpjeosr85bhmzd3si +// static void make_LR_constraints(graph_t * g) +public static void make_LR_constraints(Agraph_s g) { +ENTERING("ah28nr6mxpjeosr85bhmzd3si","make_LR_constraints"); +try { + int i, j, k; + int sw; /* self width */ + int m0, m1; + double width; + int sep[] = new int[2]; + int nodesep; /* separation between nodes on same rank */ + Agedge_s e, e0, e1, ff; + Agnode_s u, v, t0, h0; + __ptr__ rank = GD_rank(g); + /* Use smaller separation on odd ranks if g has edge labels */ + if ((GD_has_labels(g) & (1 << 0))!=0) { + sep[0] = GD_nodesep(g); + sep[1] = 5; + } + else { + sep[1] = sep[0] = GD_nodesep(g); + } + /* make edges to constrain left-to-right ordering */ + for (i = GD_minrank(g); i <= GD_maxrank(g); i++) { + double last; + ND_rank(rank.plus(i).getArrayOfPtr("v").plus(0).getPtr(), 0); + last = 0; + nodesep = sep[i & 1]; + for (j = 0; j < rank.plus(i).getInt("n"); j++) { + u = (Agnode_s) rank.plus(i).getArrayOfPtr("v").plus(j).getPtr(); + ND_mval(u, ND_rw(u)); /* keep it somewhere safe */ + if (ND_other(u).getInt("size") > 0) { /* compute self size */ + /* FIX: dot assumes all self-edges go to the right. This + * is no longer true, though makeSelfEdge still attempts to + * put as many as reasonable on the right. The dot code + * should be modified to allow a box reflecting the placement + * of all self-edges, and use that to reposition the nodes. + * Note that this would not only affect left and right + * positioning but may also affect interrank spacing. + */ + sw = 0; + for (k = 0; (e = (Agedge_s) ND_other(u).getArrayOfPtr("list").plus(k).getPtr())!=null; k++) { + if (EQ(agtail(e), aghead(e))) { + sw += selfRightSpace (e); + } + } + ND_rw(u, ND_rw(u) + sw); /* increment to include self edges */ + } + v = (Agnode_s) rank.plus(i).getArrayOfPtr("v").plus(j + 1).getPtr(); + if (v!=null) { + width = ND_rw(u) + ND_lw(v) + nodesep; + e0 = make_aux_edge(u, v, width, 0); + ND_rank(v, (int)(last + width)); + last = (int)(last + width); + } + /* constraints from labels of flat edges on previous rank */ + if ((e = (Agedge_s) ND_alg(u))!=null) { + e0 = (Agedge_s) ND_save_out(u).getArrayOfPtr("list").plus(0).getPtr(); + e1 = (Agedge_s) ND_save_out(u).getArrayOfPtr("list").plus(1).getPtr(); + if (ND_order(aghead(e0)) > ND_order(aghead(e1))) { + ff = e0; + e0 = e1; + e1 = ff; + } + m0 = (ED_minlen(e) * GD_nodesep(g)) / 2; + m1 = m0 + ((int)(ND_rw(aghead(e0)) + ND_lw(agtail(e0)))); + /* these guards are needed because the flat edges + * work very poorly with cluster layout */ + if (canreach(agtail(e0), aghead(e0)) == false) + make_aux_edge(aghead(e0), agtail(e0), m1, + ED_weight(e)); + m1 = m0 + ((int)(ND_rw(agtail(e1)) + ND_lw(aghead(e1)))); + if (canreach(aghead(e1), agtail(e1)) == false) + make_aux_edge(agtail(e1), aghead(e1), m1, + ED_weight(e)); + } + /* position flat edge endpoints */ + for (k = 0; k < ND_flat_out(u).getInt("size"); k++) { + e = (Agedge_s) ND_flat_out(u).getArrayOfPtr("list").plus(k).getPtr(); + if (ND_order(agtail(e)) < ND_order(aghead(e))) { + t0 = agtail(e); + h0 = aghead(e); + } else { + t0 = aghead(e); + h0 = agtail(e); + } + width = ND_rw(t0) + ND_lw(h0); + m0 = (int) (ED_minlen(e) * GD_nodesep(g) + width); + if ((e0 = find_fast_edge(t0, h0))!=null) { + /* flat edge between adjacent neighbors + * ED_dist contains the largest label width. + */ + m0 = MAX(m0, (int)(width + GD_nodesep(g) + ROUND(ED_dist(e)))); + if (m0 > USHRT_MAX) + m0 = (int) largeMinlen (m0); + ED_minlen(e0, MAX(ED_minlen(e0), m0)); + ED_weight(e0, MAX(ED_weight(e0), ED_weight(e))); + } + else if (N(ED_label(e))) { + /* unlabeled flat edge between non-neighbors + * ED_minlen(e) is max of ED_minlen of all equivalent + * edges. + */ + make_aux_edge(t0, h0, m0, ED_weight(e)); + } + /* labeled flat edges between non-neighbors have already + * been constrained by the label above. + */ + } + } + } +} finally { +LEAVING("ah28nr6mxpjeosr85bhmzd3si","make_LR_constraints"); +} +} + + + + +//3 6uruo8mutxgcni9fm8jcrw4cr +// static void make_edge_pairs(graph_t * g) +public static void make_edge_pairs(Agraph_s g) { +ENTERING("6uruo8mutxgcni9fm8jcrw4cr","make_edge_pairs"); +try { + int i, m0, m1; + Agnode_s n, sn; + Agedge_s e; + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + if (ND_save_out(n).getPtr("list")!=null) + for (i = 0; (e = (Agedge_s) ND_save_out(n).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + sn = virtual_node(g); + ND_node_type(sn, 2); + m0 = (int)(ED_head_port(e).getStruct("p").getDouble("x") - ED_tail_port(e).getStruct("p").getDouble("x")); + if (m0 > 0) + m1 = 0; + else { + m1 = -m0; + m0 = 0; + } + make_aux_edge(sn, agtail(e), m0 + 1, ED_weight(e)); + make_aux_edge(sn, aghead(e), m1 + 1, ED_weight(e)); + ND_rank(sn, + MIN(ND_rank(agtail(e)) - m0 - 1, + ND_rank(aghead(e)) - m1 - 1)); + } + } +} finally { +LEAVING("6uruo8mutxgcni9fm8jcrw4cr","make_edge_pairs"); +} +} + + + + +//3 79v3omwzni0nm3h05l3onjsbz +// static void contain_clustnodes(graph_t * g) +public static void contain_clustnodes(Agraph_s g) { +ENTERING("79v3omwzni0nm3h05l3onjsbz","contain_clustnodes"); +try { + int c; + Agedge_s e; + if (NEQ(g, dot_root(g))) { + contain_nodes(g); + if ((e = find_fast_edge(GD_ln(g),GD_rn(g)))!=null) /* maybe from lrvn()?*/ + ED_weight(e, ED_weight(e) + 128); + else + make_aux_edge(GD_ln(g), GD_rn(g), 1, 128); /* clust compaction edge */ + } + for (c = 1; c <= GD_n_cluster(g); c++) + contain_clustnodes((Agraph_s) GD_clust(g).plus(c).getPtr()); +} finally { +LEAVING("79v3omwzni0nm3h05l3onjsbz","contain_clustnodes"); +} +} + + + + +//3 24yfgklubun581fbfyx62lzsm +// static int vnode_not_related_to(graph_t * g, node_t * v) +public static boolean vnode_not_related_to(Agraph_s g, Agnode_s v) { +ENTERING("24yfgklubun581fbfyx62lzsm","vnode_not_related_to"); +try { + Agedge_s e; + if (ND_node_type(v) != 1) + return false; + for (e = (Agedge_s) ND_save_out(v).getArrayOfPtr("list").plus(0).getPtr(); ED_to_orig(e)!=null; e = ED_to_orig(e)); + if (agcontains(g, agtail(e))) + return false; + if (agcontains(g, aghead(e))) + return false; + return NOT(false); +} finally { +LEAVING("24yfgklubun581fbfyx62lzsm","vnode_not_related_to"); +} +} + + + + +//3 73cdgjl47ohty2va766evbo4 +// static void keepout_othernodes(graph_t * g) +public static void keepout_othernodes(Agraph_s g) { +ENTERING("73cdgjl47ohty2va766evbo4","keepout_othernodes"); +try { + int i, c, r, margin; + Agnode_s u, v; + margin = late_int (g, Z._().G_margin, 8, 0); + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + if (GD_rank(g).plus(r).getInt("n") == 0) + continue; + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr(); + if (v == null) + continue; + for (i = ND_order(v) - 1; i >= 0; i--) { + u = (Agnode_s) GD_rank(dot_root(g)).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + /* can't use "is_a_vnode_of" because elists are swapped */ + if ((ND_node_type(u) == 0) || vnode_not_related_to(g, u)) { + make_aux_edge(u, GD_ln(g), margin + ND_rw(u), 0); + break; + } + } + for (i = ND_order(v) + GD_rank(g).plus(r).getInt("n"); i < GD_rank(dot_root(g)).plus(r).getInt("n"); + i++) { + u = (Agnode_s) GD_rank(dot_root(g)).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + if ((ND_node_type(u) == 0) || vnode_not_related_to(g, u)) { + make_aux_edge(GD_rn(g), u, margin + ND_lw(u), 0); + break; + } + } + } + for (c = 1; c <= GD_n_cluster(g); c++) + keepout_othernodes((Agraph_s) GD_clust(g).plus(c).getPtr()); +} finally { +LEAVING("73cdgjl47ohty2va766evbo4","keepout_othernodes"); +} +} + + + + +//3 c734mx1638sfqtl7vh7itaxyx +// static void contain_subclust(graph_t * g) +public static void contain_subclust(Agraph_s g) { +ENTERING("c734mx1638sfqtl7vh7itaxyx","contain_subclust"); +try { + int margin, c; + Agraph_s subg; + margin = late_int (g, Z._().G_margin, 8, 0); + make_lrvn(g); + for (c = 1; c <= GD_n_cluster(g); c++) { + subg = (Agraph_s) GD_clust(g).plus(c).getPtr(); + make_lrvn(subg); + make_aux_edge(GD_ln(g), GD_ln(subg), + margin + GD_border(g).plus(3).getStruct().getDouble("x"), 0); + make_aux_edge(GD_rn(subg), GD_rn(g), + margin + GD_border(g).plus(1).getStruct().getDouble("x"), 0); + contain_subclust(subg); + } +} finally { +LEAVING("c734mx1638sfqtl7vh7itaxyx","contain_subclust"); +} +} + + + + +//3 6oruu1p1b7kxr5moh3kmcmvr3 +// static void separate_subclust(graph_t * g) +public static void separate_subclust(Agraph_s g) { +ENTERING("6oruu1p1b7kxr5moh3kmcmvr3","separate_subclust"); +try { + int i, j, margin; + Agraph_s low, high; + Agraph_s left, right; + margin = late_int (g, Z._().G_margin, 8, 0); + for (i = 1; i <= GD_n_cluster(g); i++) + make_lrvn((Agraph_s) GD_clust(g).plus(i).getPtr()); + for (i = 1; i <= GD_n_cluster(g); i++) { + for (j = i + 1; j <= GD_n_cluster(g); j++) { + low = (Agraph_s) GD_clust(g).plus(i).getPtr(); + high = (Agraph_s) GD_clust(g).plus(j).getPtr(); + if (GD_minrank(low) > GD_minrank(high)) { + Agraph_s temp = low; + low = high; + high = temp; + } + if (GD_maxrank(low) < GD_minrank(high)) + continue; + if (ND_order(GD_rank(low).plus(GD_minrank(high)).getPtr("v").plus(0).getPtr()) + < ND_order(GD_rank(high).plus(GD_minrank(high)).getPtr("v").plus(0).getPtr())) { + left = low; + right = high; + } else { + left = high; + right = low; + } + make_aux_edge(GD_rn(left), GD_ln(right), margin, 0); + } + separate_subclust((Agraph_s) GD_clust(g).plus(i).getPtr()); + } +} finally { +LEAVING("6oruu1p1b7kxr5moh3kmcmvr3","separate_subclust"); +} +} + + + + +//3 8f8gs2zivo4pnd3hmtb9g23x4 +// static void pos_clusters(graph_t * g) +public static void pos_clusters(Agraph_s g) { +ENTERING("8f8gs2zivo4pnd3hmtb9g23x4","pos_clusters"); +try { + if (GD_n_cluster(g) > 0) { + contain_clustnodes(g); + keepout_othernodes(g); + contain_subclust(g); + separate_subclust(g); + } +} finally { +LEAVING("8f8gs2zivo4pnd3hmtb9g23x4","pos_clusters"); +} +} + + + + +//3 fywsxto7yvl5wa2dfu7u7jj1 +// static void compress_graph(graph_t * g) +public static void compress_graph(Agraph_s g) { +ENTERING("fywsxto7yvl5wa2dfu7u7jj1","compress_graph"); +try { + double x; + pointf p = (pointf) Memory.malloc(pointf.class); + if (GD_drawing(g).getInt("ratio_kind") != enumAsInt(ratio_t.class, "R_COMPRESS")) + return; +UNSUPPORTED("79oeaf0u32si2chjcpas5whjl"); // p = GD_drawing(g)->size; +UNSUPPORTED("6a2ue1i6kvwvpgapb4z8l27jn"); // if (p.x * p.y <= 1) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("5f3k9yz6btwxc8r5t8exytqqt"); // contain_nodes(g); +UNSUPPORTED("4mvbrmj6dfhaz3burnpac7zsx"); // if (GD_flip(g) == 0) +UNSUPPORTED("dzkztznjq2andjnjzqh8i5tij"); // x = p.x; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("ddzjdkqij3y4gq9i3hikpoqvj"); // x = p.y; +UNSUPPORTED("e1xij2jh66kyaiikenemo1qza"); // /* Guard against huge size attribute since max. edge length is USHRT_MAX +UNSUPPORTED("5ilmnsqirjhzn5q6s3f9pkgi3"); // * A warning might be called for. Also, one could check that the graph +UNSUPPORTED("1nhxkt9jijvhw5gsp2pluh8g8"); // * already fits GD_drawing(g)->size and return immediately. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("dkqac1chvtsaao23vr43xqs5r"); // x = MIN(x,USHRT_MAX); +UNSUPPORTED("5es2j3xrdatvha5uea2wlqcxp"); // make_aux_edge(GD_ln(g), GD_rn(g), x, 1000); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("fywsxto7yvl5wa2dfu7u7jj1","compress_graph"); +} +} + + + + +//3 b7y0htx4svbhaqb1a12dihlue +// static void create_aux_edges(graph_t * g) +public static void create_aux_edges(Agraph_s g) { +ENTERING("b7y0htx4svbhaqb1a12dihlue","create_aux_edges"); +try { + allocate_aux_edges(g); + make_LR_constraints(g); + make_edge_pairs(g); + pos_clusters(g); + compress_graph(g); +} finally { +LEAVING("b7y0htx4svbhaqb1a12dihlue","create_aux_edges"); +} +} + + + + +//3 euzeilq92ry8a4tcrij5s52t5 +// static void remove_aux_edges(graph_t * g) +public static void remove_aux_edges(Agraph_s g) { +ENTERING("euzeilq92ry8a4tcrij5s52t5","remove_aux_edges"); +try { + int i; + Agnode_s n, nnext, nprev; + Agedge_s e; + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + for (i = 0; (e = (Agedge_s) ND_out(n).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + Memory.free(e.getStruct("base").getPtr("data")); + Memory.free(e); + } + free_list(ND_out(n)); + free_list(ND_in(n)); + ND_out(n, ND_save_out(n)); + ND_in(n, ND_save_in(n)); + } + /* cannot be merged with previous loop */ + nprev = null; + for (n = GD_nlist(g); n!=null; n = nnext) { + nnext = ND_next(n); + if (ND_node_type(n) == 2) { + if (nprev!=null) + ND_next(nprev, nnext); + else + GD_nlist(g, nnext); + Memory.free(n.getStruct("base").getPtr("data")); + Memory.free(n); + } else + nprev = n; + } + ND_prev(GD_nlist(g), null); +} finally { +LEAVING("euzeilq92ry8a4tcrij5s52t5","remove_aux_edges"); +} +} + + + + +//3 1oobmglea9t819y95xeel37h8 +// static void set_xcoords(graph_t * g) +public static void set_xcoords(Agraph_s g) { +ENTERING("1oobmglea9t819y95xeel37h8","set_xcoords"); +try { + int i, j; + Agnode_s v; + __ptr__ rank = GD_rank(g); + for (i = GD_minrank(g); i <= GD_maxrank(g); i++) { + for (j = 0; j < rank.plus(i).getInt("n"); j++) { + v = (Agnode_s) rank.plus(i).getArrayOfPtr("v").plus(j).getPtr(); + ND_coord(v).setDouble("x", ND_rank(v)); + ND_rank(v, i); + } + } +} finally { +LEAVING("1oobmglea9t819y95xeel37h8","set_xcoords"); +} +} + + + + +//3 6mip7s1k9xt9tp6x6nnsbt34p +// static void adjustSimple(graph_t * g, int delta, int margin_total) +public static Object adjustSimple(Object... arg) { +UNSUPPORTED("6b5zs45snahyh3bzod53vasjx"); // static void adjustSimple(graph_t * g, int delta, int margin_total) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4dxxcgj8emjoyp2vlrcw5xmwl"); // int r, bottom, deltop, delbottom; +UNSUPPORTED("6i5o0pm41tgebv48wcngsxwqd"); // graph_t *root = dot_root(g); +UNSUPPORTED("2clvms28da6dp56nhcz1fw6l8"); // rank_t *rank = GD_rank(root); +UNSUPPORTED("3fkjf35jwcy291suh6fv3lnu"); // int maxr = GD_maxrank(g); +UNSUPPORTED("be5w8b0upg8swanznmjl6ml56"); // int minr = GD_minrank(g); +UNSUPPORTED("enzyy8zeeg6bsgsuwm86u5bwb"); // bottom = (delta+1) / 2; +UNSUPPORTED("9jp6b6z7el15spss761fh4rgx"); // delbottom = GD_ht1(g) + bottom - (rank[maxr].ht1 - margin_total); +UNSUPPORTED("ckra1b9nceo8q21bwo5iu3rap"); // if (delbottom > 0) { +UNSUPPORTED("3jotxrk6oermksl3is78mj0e2"); // for (r = maxr; r >= minr; r--) { +UNSUPPORTED("b905w55w58349wk9aktevaljm"); // if (rank[r].n > 0) +UNSUPPORTED("bjuzvkc8hhlni54hkaef0j0xa"); // ND_coord(rank[r].v[0]).y += delbottom; +UNSUPPORTED("e9yhkch195gia8gdiu6vb4rbn"); // } +UNSUPPORTED("bdmop8bk7tvltc7z16xj07kqn"); // deltop = GD_ht2(g) + (delta-bottom) + delbottom - (rank[minr].ht2 - margin_total); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("cw3vv20i8np95bafexnuhhpdg"); // deltop = GD_ht2(g) + (delta-bottom) - (rank[minr].ht2 - margin_total); +UNSUPPORTED("49prm57gvpenehfkcxz9xuxu4"); // if (deltop > 0) { +UNSUPPORTED("axexjgvfow9k3x1l6j2my6cd"); // for (r = minr-1; r >= GD_minrank(root); r--) { +UNSUPPORTED("b905w55w58349wk9aktevaljm"); // if (rank[r].n > 0) +UNSUPPORTED("1nebaz06hwqknqrqcnwf03z2"); // ND_coord(rank[r].v[0]).y += deltop; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7o49wizb9vp55xhz88lycavep"); // GD_ht2(g) += (delta - bottom); +UNSUPPORTED("4mq1sot7a9bxpobj9602hyyl5"); // GD_ht1(g) += bottom; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9sv968rni5moio662r9kjzai3 +// static void adjustRanks(graph_t * g, int margin_total) +public static Object adjustRanks(Object... arg) { +UNSUPPORTED("47ywar141vmwjartmboxs38cz"); // static void adjustRanks(graph_t * g, int margin_total) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cbyzaxb8pmtp6lo2y4tajk45s"); // double lht; /* label height */ +UNSUPPORTED("3r7yt838qvvliagprkv30uka1"); // double rht; /* height between top and bottom ranks */ +UNSUPPORTED("n5e6qzpiyv4zvlemheyvbky7"); // int maxr, minr, margin; +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("7p11k11wgq46szos3u4lfa5a4"); // double delta, ht1, ht2; +UNSUPPORTED("39w5issxrjmte1dn2qnt8gpbj"); // rank_t *rank = GD_rank(dot_root(g)); +UNSUPPORTED("aerooskq9gwysw6euktdqjmaq"); // if (g == dot_root(g)) +UNSUPPORTED("8tm7x791luf0uq7v2q53kfuqk"); // margin = 0; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("182pb9igel0aoytgtoiguek4x"); // margin = late_int (g, G_margin, 8, 0); +UNSUPPORTED("8bcey7cvczgf3t3ominh7ye1b"); // ht1 = GD_ht1(g); +UNSUPPORTED("1ac5605x86vam4z4spx361rpd"); // ht2 = GD_ht2(g); +UNSUPPORTED("99d9j6m0161wdv2tu4wbf3ifi"); // for (c = 1; c <= GD_n_cluster(g); c++) { +UNSUPPORTED("6wacplh886lzcey0jjkfo5jcn"); // graph_t *subg = GD_clust(g)[c]; +UNSUPPORTED("6jkyxr322md2frf0pic57ak6e"); // adjustRanks(subg, margin+margin_total); +UNSUPPORTED("41b09kckthwa070wznf9tneej"); // if (GD_maxrank(subg) == GD_maxrank(g)) +UNSUPPORTED("7gbj2fwymn5k7pywbjc1kbhmb"); // ht1 = MAX(ht1, GD_ht1(subg) + margin); +UNSUPPORTED("clsf4pg9bdlkzghw3oq7fpo7c"); // if (GD_minrank(subg) == GD_minrank(g)) +UNSUPPORTED("9vmpt65t8kavsz1zoorcr5ik"); // ht2 = MAX(ht2, GD_ht2(subg) + margin); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9lx88c3pk4z5zxca5orq7v2yf"); // GD_ht1(g) = ht1; +UNSUPPORTED("2p0gs3kpty9mg9ymk70kjekh0"); // GD_ht2(g) = ht2; +UNSUPPORTED("34p29mvxtmpuzcgzh4s03lixs"); // if ((g != dot_root(g)) && GD_label(g)) { +UNSUPPORTED("ak9x1j2bu2d8zr8tls942u42r"); // lht = MAX(GD_border(g)[3].y, GD_border(g)[1].y); +UNSUPPORTED("ehkev01oc7ynzwkbjbzclaqj6"); // maxr = GD_maxrank(g); +UNSUPPORTED("2906nnve3dmqroo2jsq13wfex"); // minr = GD_minrank(g); +UNSUPPORTED("8s9tksg226ob1ti8o5ljo1gbg"); // rht = ND_coord(rank[minr].v[0]).y - ND_coord(rank[maxr].v[0]).y; +UNSUPPORTED("b0dxtg7jama7mgqccujsbb97n"); // delta = lht - (rht + ht1 + ht2); +UNSUPPORTED("bfapr2l9berlmq4ubgk0zp7qf"); // if (delta > 0) { +UNSUPPORTED("3zllny0pp0nf7gzw7829oqexo"); // adjustSimple(g, delta, margin_total); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a86aoq62oyhhkqpyzz0um3pvq"); // /* update the global ranks */ +UNSUPPORTED("1pmq9pca155672xcv1ow2cbfy"); // if (g != dot_root(g)) { +UNSUPPORTED("1kgp3b6qifeit9n2i2k8oc8qv"); // rank[GD_minrank(g)].ht2 = MAX(rank[GD_minrank(g)].ht2, GD_ht2(g)); +UNSUPPORTED("8f7gccnlt6m8v3k1ijaznaew3"); // rank[GD_maxrank(g)].ht1 = MAX(rank[GD_maxrank(g)].ht1, GD_ht1(g)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 emtrqv582hdma5aajqtjd76m1 +// static int clust_ht(Agraph_t * g) +public static int clust_ht(Agraph_s g) { +ENTERING("emtrqv582hdma5aajqtjd76m1","clust_ht"); +try { + int c; + double ht1, ht2; + Agraph_s subg; + __ptr__ rank = GD_rank(dot_root(g)); + int margin, haveClustLabel = 0; + if (EQ(g, dot_root(g))) + margin = 8; + else + margin = late_int (g, Z._().G_margin, 8, 0); + ht1 = GD_ht1(g); + ht2 = GD_ht2(g); + /* account for sub-clusters */ + for (c = 1; c <= GD_n_cluster(g); c++) { + subg = (Agraph_s) GD_clust(g).plus(c).getPtr(); + haveClustLabel |= clust_ht(subg); + if (GD_maxrank(subg) == GD_maxrank(g)) + ht1 = MAX(ht1, GD_ht1(subg) + margin); + if (GD_minrank(subg) == GD_minrank(g)) + ht2 = MAX(ht2, GD_ht2(subg) + margin); + } + /* account for a possible cluster label in clusters */ + /* room for root graph label is handled in dotneato_postprocess */ + if (NEQ(g, dot_root(g)) && GD_label(g)!=null) { + haveClustLabel = 1; + if (N(GD_flip(agroot(g)))) { + ht1 += GD_border(g).plus(0).getDouble("y"); + ht2 += GD_border(g).plus(2).getDouble("y"); + } + } + GD_ht1(g, ht1); + GD_ht2(g, ht2); + /* update the global ranks */ + if (NEQ(g, dot_root(g))) { + rank.plus(GD_minrank(g)).setDouble("ht2", MAX(rank.plus(GD_minrank(g)).getDouble("ht2"), ht2)); + rank.plus(GD_maxrank(g)).setDouble("ht1", MAX(rank.plus(GD_maxrank(g)).getDouble("ht1"), ht1)); + } + return haveClustLabel; +} finally { +LEAVING("emtrqv582hdma5aajqtjd76m1","clust_ht"); +} +} + + + + +//3 bp8vmol4ncadervcfossysdtd +// static void set_ycoords(graph_t * g) +public static void set_ycoords(Agraph_s g) { +ENTERING("bp8vmol4ncadervcfossysdtd","set_ycoords"); +try { + int i, j, r; + double ht2, maxht, delta, d0, d1; + Agnode_s n; + Agedge_s e; + __ptr__ rank = GD_rank(g); + Agraph_s clust; + int lbl; + ht2 = maxht = 0; + /* scan ranks for tallest nodes. */ + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + for (i = 0; i < rank.plus(r).getInt("n"); i++) { + n = (Agnode_s) rank.plus(r).getArrayOfPtr("v").plus(i).getPtr(); + /* assumes symmetry, ht1 = ht2 */ + ht2 = ND_ht(n) / 2; + /* have to look for high self-edge labels, too */ + if (ND_other(n).getPtr("list")!=null) + for (j = 0; (e = (Agedge_s) ND_other(n).getArrayOfPtr("list").plus(j).getPtr())!=null; j++) { + if (EQ(agtail(e), aghead(e))) { + if (ED_label(e)!=null) + ht2 = MAX(ht2, ED_label(e).getStruct("dimen").getDouble("y") / 2); + } + } + /* update global rank ht */ + if (rank.plus(r).getDouble("pht2") < ht2) { + rank.plus(r).setDouble("ht2", ht2); + rank.plus(r).setDouble("pht2", ht2); + } + if (rank.plus(r).getDouble("pht1") < ht2) { + rank.plus(r).setDouble("ht1", ht2); + rank.plus(r).setDouble("pht1", ht2); + } + /* update nearest enclosing cluster rank ht */ + if ((clust = ND_clust(n))!=null) { + int yoff = (clust == g ? 0 : late_int (clust, Z._().G_margin, 8, 0)); + if (ND_rank(n) == GD_minrank(clust)) + GD_ht2(clust, MAX(GD_ht2(clust), ht2 + yoff)); + if (ND_rank(n) == GD_maxrank(clust)) + GD_ht1(clust, MAX(GD_ht1(clust), ht2 + yoff)); + } + } + } + /* scan sub-clusters */ + lbl = clust_ht(g); + /* make the initial assignment of ycoords to leftmost nodes by ranks */ + maxht = 0; + r = GD_maxrank(g); + (ND_coord(rank.plus(r).getArrayOfPtr("v").plus(0).getPtr())).setDouble("y", rank.plus(r).getDouble("ht1")); + while (--r >= GD_minrank(g)) { + d0 = rank.plus(r + 1).getDouble("pht2") + rank.plus(r).getDouble("pht1") + GD_ranksep(g); /* prim node sep */ + d1 = rank.plus(r + 1).getDouble("ht2") + rank.plus(r).getDouble("ht1") + 8; /* cluster sep */ + delta = MAX(d0, d1); + if (rank.plus(r).getInt("n") > 0) /* this may reflect some problem */ + (ND_coord(rank.plus(r).getArrayOfPtr("v").plus(0).getPtr())).setDouble("y", (ND_coord(rank.plus(r + 1).getArrayOfPtr("v").plus(0).getPtr())).getDouble("y") + delta); + maxht = MAX(maxht, delta); + } + /* If there are cluster labels and the drawing is rotated, we need special processing to + * allocate enough room. We use adjustRanks for this, and then recompute the maxht if + * the ranks are to be equally spaced. This seems simpler and appears to work better than + * handling equal spacing as a special case. + */ + if (lbl!=0 && GD_flip(g)!=0) { +UNSUPPORTED("bxjqk5nu40mwo1156dicr9tur"); // adjustRanks(g, 0); +UNSUPPORTED("6vy9qfed3u61pmvy12724s9l4"); // if (GD_exact_ranksep(g)) { /* recompute maxht */ +UNSUPPORTED("74f5n6u4x39ngn0gsan7fgzyr"); // maxht = 0; +UNSUPPORTED("2pd9g1n9b0746fgt892degls3"); // r = GD_maxrank(g); +UNSUPPORTED("8dils3hlxottsbf2iuapvhqeq"); // d0 = (ND_coord(rank[r].v[0])).y; +UNSUPPORTED("cw5accmrcan3lqfc789udgcka"); // while (--r >= GD_minrank(g)) { +UNSUPPORTED("6bxo7bknt38qh9t31zr7p6kie"); // d1 = (ND_coord(rank[r].v[0])).y; +UNSUPPORTED("b1ta7vjm5i7swyklhfwy27w35"); // delta = d1 - d0; +UNSUPPORTED("65l8hg0imd48bfdu614k2kylt"); // maxht = MAX(maxht, delta); +UNSUPPORTED("5irf6cp6xdzi2ik033azsbauo"); // d0 = d1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } + /* re-assign if ranks are equally spaced */ + if (GD_exact_ranksep(g)!=0) { +UNSUPPORTED("cyxbyjrdzywkc46nl8lkrngai"); // for (r = GD_maxrank(g) - 1; r >= GD_minrank(g); r--) +UNSUPPORTED("5sd5ltavyp6llt0t2t0xmqwj5"); // if (rank[r].n > 0) /* this may reflect the same problem :-() */ +UNSUPPORTED("5zoeqpznt31feqxjcx2rg0o1f"); // (ND_coord(rank[r].v[0])).y= +UNSUPPORTED("e6dfx5uesysjaefb0djyfp7f"); // (ND_coord(rank[r + 1].v[0])).y + maxht; + } + /* copy ycoord assignment from leftmost nodes to others */ + for (n = GD_nlist(g); n!=null; n = ND_next(n)) + ND_coord(n).setDouble("y", (ND_coord(rank.plus(ND_rank(n)).getArrayOfPtr("v").plus(0).getPtr())).getDouble("y")); +} finally { +LEAVING("bp8vmol4ncadervcfossysdtd","set_ycoords"); +} +} + + + + +//3 9ay2xnnmh407i32pfokujfda5 +// static void dot_compute_bb(graph_t * g, graph_t * root) +public static void dot_compute_bb(Agraph_s g, Agraph_s root) { +ENTERING("9ay2xnnmh407i32pfokujfda5","dot_compute_bb"); +try { + int r, c; + double x, offset; + Agnode_s v; + final __struct__ LL = __struct__.from(pointf.class); + final __struct__ UR = __struct__.from(pointf.class); + if (EQ(g, dot_root(g))) { + LL.setDouble("x", INT_MAX); + UR.setDouble("x", -((double)INT_MAX)); + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + int rnkn = GD_rank(g).plus(r).getInt("n"); + if (rnkn == 0) + continue; + if ((v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr()) == null) + continue; + for (c = 1; (ND_node_type(v) != 0) && c < rnkn; c++) + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(c).getPtr(); + if (ND_node_type(v) == 0) { + x = ND_coord(v).getDouble("x") - ND_lw(v); + LL.setDouble("x", MIN(LL.getDouble("x"), x)); + } + else continue; + /* At this point, we know the rank contains a NORMAL node */ + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(rnkn - 1).getPtr(); + for (c = rnkn-2; ND_node_type(v) != 0; c--) + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(c).getPtr(); + x = ND_coord(v).getDouble("x") + ND_rw(v); + UR.setDouble("x", MAX(UR.getDouble("x"), x)); + } + offset = 8; + for (c = 1; c <= GD_n_cluster(g); c++) { + x = (double)(GD_bb(GD_clust(g).plus(c)).getStruct("LL").getDouble("x") - offset); + LL.setDouble("x", MIN(LL.getDouble("x"), x)); + x = (double)(GD_bb(GD_clust(g).plus(c)).getStruct("UR").getDouble("x") + offset); + UR.setDouble("x", MAX(UR.getDouble("x"), x)); + } + } else { + LL.setDouble("x", (double)(ND_rank(GD_ln(g)))); + UR.setDouble("x", (double)(ND_rank(GD_rn(g)))); + } + LL.setDouble("y", ND_coord(GD_rank(root).plus(GD_maxrank(g)).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y") - GD_ht1(g)); + UR.setDouble("y", ND_coord(GD_rank(root).plus(GD_minrank(g)).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y") + GD_ht2(g)); + GD_bb(g).setStruct("LL", LL); + GD_bb(g).setStruct("UR", UR); +} finally { +LEAVING("9ay2xnnmh407i32pfokujfda5","dot_compute_bb"); +} +} + + + + +//3 dlbpiimh9g9ff9w7wjoabf817 +// static void rec_bb(graph_t * g, graph_t * root) +public static void rec_bb(Agraph_s g, Agraph_s root) { +ENTERING("dlbpiimh9g9ff9w7wjoabf817","rec_bb"); +try { + int c; + for (c = 1; c <= GD_n_cluster(g); c++) + rec_bb((Agraph_s) GD_clust(g).plus(c).getPtr(), root); + dot_compute_bb(g, root); +} finally { +LEAVING("dlbpiimh9g9ff9w7wjoabf817","rec_bb"); +} +} + + + + +//3 2p3nacev7k2jft9xov90nke50 +// static void scale_bb(graph_t * g, graph_t * root, double xf, double yf) +public static Object scale_bb(Object... arg) { +UNSUPPORTED("9zkkf6x8cj12vuzqrjaoxfn8s"); // static void scale_bb(graph_t * g, graph_t * root, double xf, double yf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++) +UNSUPPORTED("7leh3r5v7roon4liia73wue7e"); // scale_bb(GD_clust(g)[c], root, xf, yf); +UNSUPPORTED("duz0iqmos1i372cztpjtsemab"); // GD_bb(g).LL.x *= xf; +UNSUPPORTED("ja25041s2x99bhwj5wcliok0"); // GD_bb(g).LL.y *= yf; +UNSUPPORTED("7mpnp4j7m1ymn1zdbxzeh5xxd"); // GD_bb(g).UR.x *= xf; +UNSUPPORTED("4ahigy1a10wsl6lvc90lpax5e"); // GD_bb(g).UR.y *= yf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 53z9yhpfixulhgqsauulkllvc +// static void adjustAspectRatio (graph_t* g, aspect_t* asp) +public static Object adjustAspectRatio(Object... arg) { +UNSUPPORTED("ezldb6r0csirv1fmkq5itw1v2"); // static void adjustAspectRatio (graph_t* g, aspect_t* asp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7rtldqefvdgcf4u50kulbxtvn"); // double AR = (GD_bb(g).UR.x - GD_bb(g).LL.x)/(GD_bb(g).UR.y - GD_bb(g).LL.y); +UNSUPPORTED("cve2on8gll5i0vomy8lnwhai2"); // if (Verbose) { +UNSUPPORTED("6z0q1m3yc6o11ejsa59eghqag"); // fprintf(stderr, "AR=%0.4lf\t Area= %0.4lf\t", AR, (double)(GD_bb(g).UR.x - GD_bb(g).LL.x)*(GD_bb(g).UR.y - GD_bb(g).LL.y)/10000.0); +UNSUPPORTED("2uealcdkjdgg8ne1cijkbagpu"); // fprintf(stderr, "Dummy=%d\n", countDummyNodes(g)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("96mqnzcfbfghxkxkn1x8kdh8i"); // if (AR > 1.1*asp->targetAR) { +UNSUPPORTED("6gq7uj15zh138zyae50c8nh2z"); // asp->nextIter = (int)(asp->targetAR * (double)(asp->curIterations - asp->prevIterations)/(AR)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e1443w2cx49ogpsf5m59zy4fq"); // else if (AR <= 0.8 * asp->targetAR) { +UNSUPPORTED("5awa0x1pxpta5wou27bzrtvoc"); // asp->nextIter = -1; +UNSUPPORTED("5xdo0sx20rmxgmdkrm1giaige"); // if (Verbose) +UNSUPPORTED("du5ztjo6nfo54ailmk1tqs05b"); // fprintf(stderr, "Going to apply another expansion.\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("757eq4638npmb5w5e39iemxfo"); // asp->nextIter = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose) +UNSUPPORTED("29wdml7g4931q8kgah8hgwjd0"); // fprintf(stderr, "next#iter=%d\n", asp->nextIter); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7effq6z6ur101wrch6ttozr26 +// static void set_aspect(graph_t * g, aspect_t* asp) +public static void set_aspect(Agraph_s g, aspect_t asp) { +ENTERING("7effq6z6ur101wrch6ttozr26","set_aspect"); +try { + double xf = 0.0, yf = 0.0, actual, desired; + Agnode_s n; + boolean scale_it, filled; + point sz = (point) Memory.malloc(point.class); + rec_bb(g, g); + if ((GD_maxrank(g) > 0) && (GD_drawing(g).getInt("ratio_kind")!=0)) { +UNSUPPORTED("5wbmy4x78flo2ztfabki9lyjf"); // sz.x = GD_bb(g).UR.x - GD_bb(g).LL.x; +UNSUPPORTED("catd6eu5oc282ln95k9zz52f3"); // sz.y = GD_bb(g).UR.y - GD_bb(g).LL.y; /* normalize */ +UNSUPPORTED("21zvq2qx1j34j1i1879zyhzpj"); // if (GD_flip(g)) { +UNSUPPORTED("d55uzald1tvs7xodnua67pxv6"); // int t = sz.x; +UNSUPPORTED("47s1klx0pfzda4e311w53ou7e"); // sz.x = sz.y; +UNSUPPORTED("3tx1mj7j0rqw33y24a0gu4ali"); // sz.y = t; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4ct8ztqxnsskgphsp1v3aw5ec"); // scale_it = NOT(0); +UNSUPPORTED("8v772n1u4wqlmskqfswlzcz2o"); // if (GD_drawing(g)->ratio_kind == R_AUTO) +UNSUPPORTED("8mtmgag5dxj8ttlcabbpd865p"); // filled = idealsize(g, .5); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("bxtk5e5ls8qsd36eucvhufg9y"); // filled = (GD_drawing(g)->ratio_kind == R_FILL); +UNSUPPORTED("2atgu691bmn6h9jvk8lve5qzc"); // if (filled) { +UNSUPPORTED("1zx5etcjofceqjvogfn8urkdj"); // /* fill is weird because both X and Y can stretch */ +UNSUPPORTED("7ezqjon4u21dwg4qvxssrnwfc"); // if (GD_drawing(g)->size.x <= 0) +UNSUPPORTED("dao0fnoi65upcdtr9csqhhy41"); // scale_it = 0; +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("6ifkww34s7php908n9wg0oiju"); // xf = (double) GD_drawing(g)->size.x / (double) sz.x; +UNSUPPORTED("6faiikvxwdge2ydblv90976hb"); // yf = (double) GD_drawing(g)->size.y / (double) sz.y; +UNSUPPORTED("5xkzvdrdnfd5afhhxgajbywya"); // if ((xf < 1.0) || (yf < 1.0)) { +UNSUPPORTED("cvkvyq93xp1itpomhj1r2xlzy"); // if (xf < yf) { +UNSUPPORTED("capfpf4tncicsp81elmwvf0l"); // yf = yf / xf; +UNSUPPORTED("7sdzyzqj65rbq6edfgf5x6xht"); // xf = 1.0; +UNSUPPORTED("d86r93g8nz9a1kfzgi7f8j8nh"); // } else { +UNSUPPORTED("emwaipsi6kyqbpk2y26k3cxfw"); // xf = xf / yf; +UNSUPPORTED("1s91x56ftedjsc3m32dqgspqn"); // yf = 1.0; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("c48w89y9jw5baxqqucmiyfha7"); // } else if (GD_drawing(g)->ratio_kind == R_EXPAND) { +UNSUPPORTED("7ezqjon4u21dwg4qvxssrnwfc"); // if (GD_drawing(g)->size.x <= 0) +UNSUPPORTED("dao0fnoi65upcdtr9csqhhy41"); // scale_it = 0; +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("akfs904fsk7cyl8wbv0x7fnvz"); // xf = (double) GD_drawing(g)->size.x / +UNSUPPORTED("1ewqbc4kglc2kg1n13euxrxzh"); // (double) GD_bb(g).UR.x; +UNSUPPORTED("6fmkpg9ypaxceugi24gklvdra"); // yf = (double) GD_drawing(g)->size.y / +UNSUPPORTED("8mskb0mqou89myfbiihsjpbg6"); // (double) GD_bb(g).UR.y; +UNSUPPORTED("a2jzgqbpoanzqdqc7vjk32vmz"); // if ((xf > 1.0) && (yf > 1.0)) { +UNSUPPORTED("6np8qfg5qnlaypikhw0bdx84j"); // double scale = MIN(xf, yf); +UNSUPPORTED("272bmuv1row7l9tla5bhot840"); // xf = yf = scale; +UNSUPPORTED("738mi6h8ef0itznt34ngxe25o"); // } else +UNSUPPORTED("b5qs3ho2fcywk3sd5cw3m88kw"); // scale_it = 0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("d7deewhp6akdb13j7ry364hbd"); // } else if (GD_drawing(g)->ratio_kind == R_VALUE) { +UNSUPPORTED("fpejwrlknxizaxxibhuyaxdt"); // desired = GD_drawing(g)->ratio; +UNSUPPORTED("douwz2voka0puoeooqjn8kijk"); // actual = ((double) sz.y) / ((double) sz.x); +UNSUPPORTED("7u9yvuqazzo19geppiphd9rfh"); // if (actual < desired) { +UNSUPPORTED("apqq3m2rezfl96zbvk7lut02"); // yf = desired / actual; +UNSUPPORTED("8po0oizki4figodjv9xku16gq"); // xf = 1.0; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("84c3pp9xgnii11clyyxblqmy6"); // xf = actual / desired; +UNSUPPORTED("1tr1b9rp1b00pcafss87kadfe"); // yf = 1.0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("csvnhx5mo535o6ue1tg3ktjhs"); // scale_it = 0; +UNSUPPORTED("bh2d68e9s7cr7k1bl0h9fmr9a"); // if (scale_it) { +UNSUPPORTED("b8symsgdtoq84y3j1151pv0g4"); // if (GD_flip(g)) { +UNSUPPORTED("bi983gfofc0blj8r4yetj14kb"); // double t = xf; +UNSUPPORTED("69pmocxfvmk0urni4fg0x4na5"); // xf = yf; +UNSUPPORTED("cyt895z1pa5arxz4d1kv0hqgq"); // yf = t; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("crtcqz91ff5l8ntjbne40b5x4"); // for (n = GD_nlist(g); n; n = ND_next(n)) { +UNSUPPORTED("brs6nych5z9m0a75ixbe5l80o"); // ND_coord(n).x = ROUND(ND_coord(n).x * xf); +UNSUPPORTED("cpe0pjsilppgrp2ofysn4y54w"); // ND_coord(n).y = ROUND(ND_coord(n).y * yf); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8f0d3etdet1pk8ikvltmz5h2s"); // scale_bb(g, g, xf, yf); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } + if (asp!=null) adjustAspectRatio (g, asp); +} finally { +LEAVING("7effq6z6ur101wrch6ttozr26","set_aspect"); +} +} + + + + +//3 41mmud7cyx1rwhd0k7g7weaf8 +// static point resize_leaf(node_t * leaf, point lbound) +public static Object resize_leaf(Object... arg) { +UNSUPPORTED("alcqddrml4aj55twvzwyyvfjh"); // static point resize_leaf(node_t * leaf, point lbound) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dnj5vqe4cb2yzzx75ubwrxvav"); // gv_nodesize(leaf, GD_flip(agraphof(leaf))); +UNSUPPORTED("bxig9t3r62l84xejntt3x96kv"); // ND_coord(leaf).y = lbound.y; +UNSUPPORTED("bx00ps5hied5a63922sqqpvhi"); // ND_coord(leaf).x = lbound.x + ND_lw(leaf); +UNSUPPORTED("euhijhn76fi66yqoh8gxk5nq0"); // lbound.x = lbound.x + ND_lw(leaf) + ND_rw(leaf) + GD_nodesep(agraphof(leaf)); +UNSUPPORTED("1xmj5l8g8znua01mljujyh61i"); // return lbound; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4jx34mwc4aby8v45omelmfluv +// static point place_leaf(graph_t* ing, node_t * leaf, point lbound, int order) +public static Object place_leaf(Object... arg) { +UNSUPPORTED("cetlk9m8mjd69vuru3rjho0lw"); // static point place_leaf(graph_t* ing, node_t * leaf, point lbound, int order) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b1ht34ftmnpsuxflrqun4ptkr"); // node_t *leader; +UNSUPPORTED("aqfu9qyb55o3lehhaqmxag540"); // graph_t *g = dot_root(ing); +UNSUPPORTED("1b5u4ut4j70lu60geogmkv572"); // leader = UF_find(leaf); +UNSUPPORTED("3urvo2e4w7312r8scg44o0hqw"); // if (leaf != leader) +UNSUPPORTED("azdkjz4shu49j3fzjpazxrpwz"); // fast_nodeapp(leader, leaf); +UNSUPPORTED("95h5y689udztblrtgdwc8y2ei"); // ND_order(leaf) = order; +UNSUPPORTED("cvsh6pf3vxzxd2zn1u8ykd8hx"); // ND_rank(leaf) = ND_rank(leader); +UNSUPPORTED("6k8r94a4chbol18r2rnbi9haj"); // GD_rank(g)[ND_rank(leaf)].v[ND_order(leaf)] = leaf; +UNSUPPORTED("7ku2dbhi28rhi6dtag1v4zung"); // return resize_leaf(leaf, lbound); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1lejhh3evsa10auyj7cgqj8ub +// static void make_leafslots(graph_t * g) +public static void make_leafslots(Agraph_s g) { +ENTERING("1lejhh3evsa10auyj7cgqj8ub","make_leafslots"); +try { + int i, j, r; + Agnode_s v; + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + j = 0; + for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) { + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + ND_order(v, j); + if (ND_ranktype(v) == 6) + j = j + ND_UF_size(v); + else + j++; + } + if (j <= GD_rank(g).plus(r).getInt("n")) + continue; + GD_rank(g).plus(r).setPtr("v", ALLOC_empty(j + 1, GD_rank(g).plus(r).getPtr("v"), Agnode_s.class)); + for (i = GD_rank(g).plus(r).getInt("n") - 1; i >= 0; i--) { + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr(); + GD_rank(g).plus(r).getArrayOfPtr("v").plus(ND_order(v)).setPtr(v); + } + GD_rank(g).plus(r).setInt("n", j); + GD_rank(g).plus(r).getArrayOfPtr("v").plus(j).setPtr(null); + } +} finally { +LEAVING("1lejhh3evsa10auyj7cgqj8ub","make_leafslots"); +} +} + + + + +//3 wb2wvxthkr2sp9u8113go3j3 +// static void do_leaves(graph_t * g, node_t * leader) +public static Object do_leaves(Object... arg) { +UNSUPPORTED("5nmyuqyhfqfwbmgdj5aot9fp4"); // static void do_leaves(graph_t * g, node_t * leader) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bs0wcp6367dz1o5x166ec7l8"); // int j; +UNSUPPORTED("4bxv0pw87c31sbbz6x6s1cq9d"); // point lbound; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("b9upgllg8zjx49090hr3afv91"); // if (ND_UF_size(leader) <= 1) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("9m0hiwybw3dr0lcxmgq833heo"); // lbound.x = ND_coord(leader).x - ND_lw(leader); +UNSUPPORTED("ev0phf24gpqz3xtvtueq72f7g"); // lbound.y = ND_coord(leader).y; +UNSUPPORTED("90r9xqe4faj7b1g8907ord1x3"); // lbound = resize_leaf(leader, lbound); +UNSUPPORTED("66ue8mvk3axhgbkcg3xqo94tb"); // if (ND_out(leader).size > 0) { /* in-edge leaves */ +UNSUPPORTED("9lq5udq73fgfeqyqsxw6i3pgm"); // n = aghead(ND_out(leader).list[0]); +UNSUPPORTED("4vp9ny4udt1jcmibfgpwgrnqo"); // j = ND_order(leader) + 1; +UNSUPPORTED("3ml0tasns5tz6d5xc2xdb6nc"); // for (e = agfstin(g, n); e; e = agnxtin(g, e)) { +UNSUPPORTED("e2y71fdc15yxylowp6ohlal9a"); // edge_t *e1 = AGMKOUT(e); +UNSUPPORTED("ew4udmdawt257gbk5kzmi1n1"); // if ((agtail(e1) != leader) && (UF_find(agtail(e1)) == leader)) { +UNSUPPORTED("d2r94m7xk4qa9hn6s2td5nb6h"); // lbound = place_leaf(g, agtail(e1), lbound, j++); +UNSUPPORTED("5xk9d4ra447xucksge6c9mgos"); // unmerge_oneway(e1); +UNSUPPORTED("4dqun0n52lcyerkebva2hxh15"); // elist_append(e1, ND_in(aghead(e1))); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6owoaz61uf3928omhuf3rqjoa"); // } else { /* out edge leaves */ +UNSUPPORTED("4lbkem8hb4jy3gdg6nt3cbtl9"); // n = agtail(ND_in(leader).list[0]); +UNSUPPORTED("4vp9ny4udt1jcmibfgpwgrnqo"); // j = ND_order(leader) + 1; +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("38a98cy0214odvsa98hgyce8q"); // if ((aghead(e) != leader) && (UF_find(aghead(e)) == leader)) { +UNSUPPORTED("9j9o79r2bdc6npidu38aq0cym"); // lbound = place_leaf(g, aghead(e), lbound, j++); +UNSUPPORTED("6wbwzuqqh5vxume7ga2kuejcf"); // unmerge_oneway(e); +UNSUPPORTED("dv9vv9pfcd3cibfjn258toxyv"); // elist_append(e, ND_out(agtail(e))); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 alpljm8o6nsam95ly6leelnbp +// int ports_eq(edge_t * e, edge_t * f) +public static boolean ports_eq(Agedge_s e, Agedge_s f) { +ENTERING("alpljm8o6nsam95ly6leelnbp","ports_eq"); +try { + return ((ED_head_port(e).getBoolean("defined") == ED_head_port(f).getBoolean("defined")) + && (((ED_head_port(e).getStruct("p").getDouble("x") == ED_head_port(f).getStruct("p").getDouble("x")) && + (ED_head_port(e).getStruct("p").getDouble("y") == ED_head_port(f).getStruct("p").getDouble("y"))) + || (ED_head_port(e).getBoolean("defined") == false)) + && (((ED_tail_port(e).getStruct("p").getDouble("x") == ED_tail_port(f).getStruct("p").getDouble("x")) && + (ED_tail_port(e).getStruct("p").getDouble("y") == ED_tail_port(f).getStruct("p").getDouble("y"))) + || (ED_tail_port(e).getBoolean("defined") == false)) + ); +} finally { +LEAVING("alpljm8o6nsam95ly6leelnbp","ports_eq"); +} +} + + + + +//3 cfotmdif5xv7n6oauyvzv0qwa +// static void expand_leaves(graph_t * g) +public static void expand_leaves(Agraph_s g) { +ENTERING("cfotmdif5xv7n6oauyvzv0qwa","expand_leaves"); +try { + int i, d; + Agnode_s n; + Agedge_s e, f; + make_leafslots(g); + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + if (ND_inleaf(n)!=null) + do_leaves(g, ND_inleaf(n)); + if (ND_outleaf(n)!=null) + do_leaves(g, ND_outleaf(n)); + if (ND_other(n).getPtr("list")!=null) + for (i = 0; (e = (Agedge_s) ND_other(n).getArrayOfPtr("list").plus(i).getPtr())!=null; i++) { + if ((d = ND_rank(aghead(e)) - ND_rank(aghead(e))) == 0) + continue; + f = ED_to_orig(e); + if (ports_eq(e, f) == false) { + zapinlist(ND_other(n).amp(), e); + if (d == 1) + fast_edge(e); + /*else unitize(e); ### */ + i--; + } + } + } +} finally { +LEAVING("cfotmdif5xv7n6oauyvzv0qwa","expand_leaves"); +} +} + + + + +//3 d4b57ugpwxy567pfmxn14ed8d +// static void make_lrvn(graph_t * g) +public static void make_lrvn(Agraph_s g) { +ENTERING("d4b57ugpwxy567pfmxn14ed8d","make_lrvn"); +try { + Agnode_s ln, rn; + if (GD_ln(g)!=null) + return; + ln = virtual_node(dot_root(g)); + ND_node_type(ln, 2); + rn = virtual_node(dot_root(g)); + ND_node_type(rn, 2); + if (GD_label(g)!=null && NEQ(g, dot_root(g)) && N(GD_flip(agroot(g)))) { + int w = MAX((int)GD_border(g).plus(0).getDouble("x"), (int)GD_border(g).plus(2).getDouble("x")); + make_aux_edge(ln, rn, w, 0); + } + GD_ln(g, ln); + GD_rn(g, rn); +} finally { +LEAVING("d4b57ugpwxy567pfmxn14ed8d","make_lrvn"); +} +} + + + + +//3 daz786541idcxnywckcbncazb +// static void contain_nodes(graph_t * g) +public static void contain_nodes(Agraph_s g) { +ENTERING("daz786541idcxnywckcbncazb","contain_nodes"); +try { + int margin, r; + Agnode_s ln, rn, v; + margin = late_int (g, Z._().G_margin, 8, 0); + make_lrvn(g); + ln = GD_ln(g); + rn = GD_rn(g); + for (r = GD_minrank(g); r <= GD_maxrank(g); r++) { + if (GD_rank(g).plus(r).getInt("n") == 0) + continue; + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr(); + if (v == null) { +UNSUPPORTED("1f2esoodtcrdhljk1cq1klyao"); // agerr(AGERR, "contain_nodes clust %s rank %d missing node\n", +UNSUPPORTED("7w6lv4ywtczwz2y1mg0p3jdav"); // agnameof(g), r); +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; + } + make_aux_edge(ln, v, + ND_lw(v) + margin + GD_border(g).plus(3).getStruct().getDouble("x"), 0); + v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(GD_rank(g).plus(r).getInt("n") - 1).getPtr(); + make_aux_edge(v, rn, + ND_rw(v) + margin + GD_border(g).plus(1).getStruct().getDouble("x"), 0); + } +} finally { +LEAVING("daz786541idcxnywckcbncazb","contain_nodes"); +} +} + + + + +//3 betdvb8dk8icvqkn6e6y5h94x +// static boolean idealsize(graph_t * g, double minallowed) +public static Object idealsize(Object... arg) { +UNSUPPORTED("74m5dgfkgpr7bq7elj8bk5w6z"); // static boolean idealsize(graph_t * g, double minallowed) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bp9bpmgkh2gsdynqe5wio0i32"); // double xf, yf, f, R; +UNSUPPORTED("8404v5b2qtn2x2mlgbyxidbx4"); // pointf b, relpage, margin; +UNSUPPORTED("a3ke28asz3w87p4n8bgil541i"); // /* try for one page */ +UNSUPPORTED("avi96122npbhja9hwa4goidp"); // relpage = GD_drawing(g)->page; +UNSUPPORTED("19uch6jfal0x385xni41gqam6"); // if (relpage.x < 0.001 || relpage.y < 0.001) +UNSUPPORTED("52kuioyxcuboss35kg15wudvt"); // return 0; /* no page was specified */ +UNSUPPORTED("d6i2metpbkzakq2abzgvcdzle"); // margin = GD_drawing(g)->margin; +UNSUPPORTED("asgqm8o7cruxxpfx9lobsif1c"); // relpage = sub_pointf(relpage, margin); +UNSUPPORTED("asgqm8o7cruxxpfx9lobsif1c"); // relpage = sub_pointf(relpage, margin); +UNSUPPORTED("aqhjsr7rv4ig7d1vagm74jpmo"); // b.x = GD_bb(g).UR.x; +UNSUPPORTED("30xemhqjxz13hiyv2o2r8mol1"); // b.y = GD_bb(g).UR.y; +UNSUPPORTED("cv2s8vkuet41gdoms8vue473z"); // xf = relpage.x / b.x; +UNSUPPORTED("rvfej1l4o57i17le73vt80cf"); // yf = relpage.y / b.y; +UNSUPPORTED("4f2ksj9hf0fi9wnzrz20eswmo"); // if ((xf >= 1.0) && (yf >= 1.0)) +UNSUPPORTED("e64anddwrzfgr4xoopjelwqg1"); // return 0; /* fits on one page */ +UNSUPPORTED("9vakpuy3iri2q9upsuy7lqhln"); // f = MIN(xf, yf); +UNSUPPORTED("ccu6nxd64lwxm1h8x0sbrkdv7"); // xf = yf = MAX(f, minallowed); +UNSUPPORTED("yc64sd7yr28zgjqrr734fc7i"); // R = ceil((xf * b.x) / relpage.x); +UNSUPPORTED("aht5rw6872hwmg7vaop0eairh"); // xf = ((R * relpage.x) / b.x); +UNSUPPORTED("asw2ato73u7m4kb07x2mr2snv"); // R = ceil((yf * b.y) / relpage.y); +UNSUPPORTED("76j6b15q20gswxka8cglflbym"); // yf = ((R * relpage.y) / b.y); +UNSUPPORTED("49gpvau7p2bvvkp6oemyqyjev"); // GD_drawing(g)->size.x = b.x * xf; +UNSUPPORTED("7gewumkvzgtqon1jqxp8yf0kk"); // GD_drawing(g)->size.y = b.y * yf; +UNSUPPORTED("8fwlqtemsmckleh6946lyd8mw"); // return NOT(0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/rank__c.java plantuml-8039/src/gen/lib/dotgen/rank__c.java --- plantuml-8024/src/gen/lib/dotgen/rank__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/rank__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,2130 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.attr__c.agget; +import static gen.lib.cgraph.edge__c.agfstout; +import static gen.lib.cgraph.edge__c.aghead; +import static gen.lib.cgraph.edge__c.agnxtout; +import static gen.lib.cgraph.edge__c.agsubedge; +import static gen.lib.cgraph.id__c.agnameof; +import static gen.lib.cgraph.node__c.agfstnode; +import static gen.lib.cgraph.node__c.agnxtnode; +import static gen.lib.cgraph.obj__c.agcontains; +import static gen.lib.cgraph.obj__c.agdelete; +import static gen.lib.cgraph.subg__c.agfstsubg; +import static gen.lib.cgraph.subg__c.agnxtsubg; +import static gen.lib.common.input__c.do_graph_label; +import static gen.lib.common.ns__c.rank; +import static gen.lib.common.utils__c.UF_find; +import static gen.lib.common.utils__c.UF_singleton; +import static gen.lib.common.utils__c.UF_union; +import static gen.lib.common.utils__c.maptoken; +import static gen.lib.dotgen.acyclic__c.acyclic_; +import static gen.lib.dotgen.aspect__c.rank3; +import static gen.lib.dotgen.class1__c.class1_; +import static gen.lib.dotgen.decomp__c.decompose; +import static gen.lib.dotgen.dotinit__c.dot_root; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.LOG2; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.strncmp; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.ED_minlen; +import static smetana.core.Macro.ED_to_orig; +import static smetana.core.Macro.ED_to_virt; +import static smetana.core.Macro.GD_clust; +import static smetana.core.Macro.GD_comp; +import static smetana.core.Macro.GD_flags; +import static smetana.core.Macro.GD_has_labels; +import static smetana.core.Macro.GD_leader; +import static smetana.core.Macro.GD_maxrank; +import static smetana.core.Macro.GD_maxset; +import static smetana.core.Macro.GD_minrank; +import static smetana.core.Macro.GD_minset; +import static smetana.core.Macro.GD_n_cluster; +import static smetana.core.Macro.GD_nlist; +import static smetana.core.Macro.GD_parent; +import static smetana.core.Macro.GD_ranksep; +import static smetana.core.Macro.GD_set_type; +import static smetana.core.Macro.MAXSHORT; +import static smetana.core.Macro.N; +import static smetana.core.Macro.ND_clust; +import static smetana.core.Macro.ND_in; +import static smetana.core.Macro.ND_mark; +import static smetana.core.Macro.ND_next; +import static smetana.core.Macro.ND_node_type; +import static smetana.core.Macro.ND_out; +import static smetana.core.Macro.ND_rank; +import static smetana.core.Macro.ND_ranktype; +import static smetana.core.Macro.UNSUPPORTED; +import static smetana.core.Macro.ZALLOC; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.aspect_t; +import h.boxf; +import h.elist; +import h.point; +import h.pointf; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__struct__; + +public class rank__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3f1re3nfkhxwjjb90kppwuupr +// static void renewlist(elist * L) +public static void renewlist(elist L) { +ENTERING("3f1re3nfkhxwjjb90kppwuupr","renewlist"); +try { + int i; + for (i = L.getInt("size"); i >= 0; i--) + L.getArrayOfPtr("list").plus(i).setPtr(null); + L.setInt("size", 0); +} finally { +LEAVING("3f1re3nfkhxwjjb90kppwuupr","renewlist"); +} +} + + + + +//3 1xov2qhuxj1f9nbzu3xsa6679 +// static void cleanup1(graph_t * g) +public static void cleanup1(Agraph_s g) { +ENTERING("1xov2qhuxj1f9nbzu3xsa6679","cleanup1"); +try { + Agnode_s n; + Agedge_s e, f; + int c; + for (c = 0; c < GD_comp(g).getInt("size"); c++) { + GD_nlist(g, GD_comp(g).getArrayOfPtr("list").plus(c).getPtr()); + for (n = GD_nlist(g); n!=null; n = ND_next(n)) { + renewlist(ND_in(n).amp()); + renewlist(ND_out(n).amp()); + ND_mark(n, 0); + } + } + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) { + for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) { + f = ED_to_virt(e); + /* Null out any other references to f to make sure we don't + * handle it a second time. For example, parallel multiedges + * share a virtual edge. + */ + if (f!=null && (EQ(e, ED_to_orig(f)))) { + Agedge_s e1, f1; + Agnode_s n1; + for (n1 = agfstnode(g); n1!=null; n1 = agnxtnode(g, n1)) { + for (e1 = agfstout(g, n1); e1!=null; e1 = agnxtout(g, e1)) { + if (NEQ(e, e1)) { + f1 = ED_to_virt(e1); + if (f1!=null && EQ(f, f1)) { + ED_to_virt(e1, null); + } + } + } + } + Memory.free(f.getStruct("base").getPtr("data")); + Memory.free(f); + } + ED_to_virt(e, null); + } + } + Memory.free(GD_comp(g).getPtr("list")); + GD_comp(g).setPtr("list", null); + GD_comp(g).setInt("size", 0); +} finally { +LEAVING("1xov2qhuxj1f9nbzu3xsa6679","cleanup1"); +} +} + + + + +//3 bxjf5g7g953ii1hfodl1j0y4u +// static void edgelabel_ranks(graph_t * g) +public static void edgelabel_ranks(Agraph_s g) { +ENTERING("bxjf5g7g953ii1hfodl1j0y4u","edgelabel_ranks"); +try { + Agnode_s n; + Agedge_s e; + if ((GD_has_labels(g) & (1 << 0))!=0) { + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) + for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) + ED_minlen(e, ED_minlen(e) * 2); + GD_ranksep(g, (GD_ranksep(g) + 1) / 2); + } +} finally { +LEAVING("bxjf5g7g953ii1hfodl1j0y4u","edgelabel_ranks"); +} +} + + + + +//3 9kjpoxcxoy3nhqd9rflwclo7c +// static void collapse_rankset(graph_t * g, graph_t * subg, int kind) +public static Object collapse_rankset(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("8hizp29cxh1rnp84yrlv4nl8x"); // collapse_rankset(graph_t * g, graph_t * subg, int kind) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5yrhx4blosxo5xnc1nh1kzhfs"); // node_t *u, *v; +UNSUPPORTED("nbvmqthk0lqbm00ekylf0l0g"); // u = v = agfstnode(subg); +UNSUPPORTED("5q27ub494lpst2s18bizunri0"); // if (u) { +UNSUPPORTED("97vrl7utckj5ct78d81xyhhjl"); // ND_ranktype(u) = kind; +UNSUPPORTED("99ruvdyom1mcyir0v7i8zq8eh"); // while ((v = agnxtnode(subg, v))) { +UNSUPPORTED("7f9cf0wfrirgdoty4qy5pfuj9"); // UF_union(u, v); +UNSUPPORTED("5jt25she9etuqjk6nrkrt3059"); // ND_ranktype(v) = ND_ranktype(u); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9ty5l2g646lrkxz43tcnhcsk8"); // switch (kind) { +UNSUPPORTED("b8vgbvwzllfs4lrqmmqyr1spk"); // case 2: +UNSUPPORTED("1640m8as34e90xhvvtl877cmo"); // case 3: +UNSUPPORTED("2crlxhvtrgd5ohsriopqywv1m"); // if (GD_minset(g) == NULL) +UNSUPPORTED("9py54j3v52y5qevrsi1omdoq7"); // GD_minset(g) = u; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("1cqwn2xb41g0dsm2oltj15dsd"); // GD_minset(g) = UF_union(GD_minset(g), u); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("495y0cnvj5vci19wsufg88rrq"); // case 4: +UNSUPPORTED("1wjv2f7dql1ddky1us3a7q5jq"); // case 5: +UNSUPPORTED("1myv9cwrp9n535g9xsalgmg7n"); // if (GD_maxset(g) == NULL) +UNSUPPORTED("45gr04d25a1qxrh4hm1kiip5v"); // GD_maxset(g) = u; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("d5a4ohz8nh8xso8ovij23zsxi"); // GD_maxset(g) = UF_union(GD_maxset(g), u); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9ty5l2g646lrkxz43tcnhcsk8"); // switch (kind) { +UNSUPPORTED("1640m8as34e90xhvvtl877cmo"); // case 3: +UNSUPPORTED("j5ay8vao16zse2bq0etmlhua"); // ND_ranktype(GD_minset(g)) = kind; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1wjv2f7dql1ddky1us3a7q5jq"); // case 5: +UNSUPPORTED("9dtrubjv4hiv1k3dq24skxdb8"); // ND_ranktype(GD_maxset(g)) = kind; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 65qi5f0bxp6d6vahhlcolpk88 +// static int rank_set_class(graph_t * g) +public static int rank_set_class(Agraph_s g) { +ENTERING("65qi5f0bxp6d6vahhlcolpk88","rank_set_class"); +try { + CString name[] = new CString[] { new CString("same"), new CString("min"), new CString("source"), new CString("max"), new CString("sink"), null }; + int class_[] = new int[] { 1, 2, 3, 4, 5, 0 }; + int val; + if (is_cluster(g)) + return 7; + val = maptoken(agget(g, new CString("rank")), name, class_); + GD_set_type(g, val); + return val; +} finally { +LEAVING("65qi5f0bxp6d6vahhlcolpk88","rank_set_class"); +} +} + + + + +//3 5189iviqj57iztftckz86y6jj +// static int make_new_cluster(graph_t * g, graph_t * subg) +public static int make_new_cluster(Agraph_s g, Agraph_s subg) { +ENTERING("5189iviqj57iztftckz86y6jj","make_new_cluster"); +try { + int cno; + GD_n_cluster(g, GD_n_cluster(g)+1); + cno = GD_n_cluster(g); + GD_clust(g, ZALLOC(cno + 1, GD_clust(g), Agraph_s.class, GD_n_cluster(g))); + GD_clust(g).plus(cno).setPtr(subg); + do_graph_label(subg); + return cno; +} finally { +LEAVING("5189iviqj57iztftckz86y6jj","make_new_cluster"); +} +} + + + + +//3 9lvm2ufqjzl2bsbpo0zg9go58 +// static void node_induce(graph_t * par, graph_t * g) +public static void node_induce(Agraph_s par, Agraph_s g) { +ENTERING("9lvm2ufqjzl2bsbpo0zg9go58","node_induce"); +try { + Agnode_s n, nn; + Agedge_s e; + int i; + LOG2("node_induce"); + /* enforce that a node is in at most one cluster at this level */ + for (n = agfstnode(g); n!=null; n = nn) { + nn = agnxtnode(g, n); + if (ND_ranktype(n)!=0) { + agdelete(g, n); + continue; + } + for (i = 1; i < GD_n_cluster(par); i++) + if (agcontains((Agraph_s) GD_clust(par).plus(i).getPtr(), n)) + break; + if (i < GD_n_cluster(par)) + agdelete(g, n); + ND_clust(n, null); + } + for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) { + for (e = agfstout(dot_root(g), n); e!=null; e = agnxtout(dot_root(g), e)) { + if (agcontains(g, aghead(e))) + agsubedge(g,e,true); + } + } +} finally { +LEAVING("9lvm2ufqjzl2bsbpo0zg9go58","node_induce"); +} +} + + + + +//3 650rxyqioihwhhqkex61prwfs +// void dot_scan_ranks(graph_t * g) +public static Object dot_scan_ranks(Object... arg) { +UNSUPPORTED("347dderd02mvlozoheqo4ejwo"); // void +UNSUPPORTED("3qe2zolxii33gr1krcjkgygwm"); // dot_scan_ranks(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dkbxmqzr28yu8rswd5vubd3ha"); // node_t *n, *leader = NULL; +UNSUPPORTED("65ovv0jsp2kemyp7179cotrqh"); // GD_minrank(g) = MAXSHORT; +UNSUPPORTED("4rx9wnlw0uumqfzcjtyg9rpfl"); // GD_maxrank(g) = -1; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("68vv0lam9vxeuk3fg60ad5w6g"); // if (GD_maxrank(g) < ND_rank(n)) +UNSUPPORTED("2v65dy95gqvsnppoelwwl8ayh"); // GD_maxrank(g) = ND_rank(n); +UNSUPPORTED("3ozq6tqfxcegom34qkyrrxnfg"); // if (GD_minrank(g) > ND_rank(n)) +UNSUPPORTED("duyud2jy9uf1rbcis84c3lsj6"); // GD_minrank(g) = ND_rank(n); +UNSUPPORTED("5j9c428shih0wjw2salkxw0qm"); // if (leader == NULL) +UNSUPPORTED("73jlqlf2bn3kx7i020menpfcw"); // leader = n; +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("bwqhlzu5ifbhdg1jral42ycdx"); // if (ND_rank(n) < ND_rank(leader)) +UNSUPPORTED("7h663p7xpn4qn3l6bs6vxze7i"); // leader = n; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5j1zsofmtglx1esxwbstti1un"); // GD_leader(g) = leader; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2rbs5deyvlh5s7lkhv6zouqbe +// static void cluster_leader(graph_t * clust) +public static void cluster_leader(Agraph_s clust) { +ENTERING("2rbs5deyvlh5s7lkhv6zouqbe","cluster_leader"); +try { + Agnode_s leader, n; + int maxrank = 0; + /* find number of ranks and select a leader */ + leader = null; + for (n = GD_nlist(clust); n!=null; n = ND_next(n)) { + if ((ND_rank(n) == 0) && (ND_node_type(n) == 0)) + leader = n; + if (maxrank < ND_rank(n)) + maxrank = ND_rank(n); + } + assert(leader != null); + GD_leader(clust, leader); + for (n = agfstnode(clust); n!=null; n = agnxtnode(clust, n)) { + //assert((ND_UF_size(n) <= 1) || (n == leader)); + UF_union(n, leader); + ND_ranktype(n, 7); + } +} finally { +LEAVING("2rbs5deyvlh5s7lkhv6zouqbe","cluster_leader"); +} +} + + + + +//3 f3sl627dqmre3kru883bpdxc3 +// static void collapse_cluster(graph_t * g, graph_t * subg) +public static void collapse_cluster(Agraph_s g, Agraph_s subg) { +ENTERING("f3sl627dqmre3kru883bpdxc3","collapse_cluster"); +try { + if (GD_parent(subg)!=null) { + return; + } + GD_parent(subg, g); + node_induce(g, subg); + if (agfstnode(subg) == null) + return; + make_new_cluster(g, subg); + if (Z._().CL_type == 100) { + dot1_rank(subg, null); + cluster_leader(subg); + } else +UNSUPPORTED("1os84mtyrb110i4sd8bdjrwk"); // dot_scan_ranks(subg); +} finally { +LEAVING("f3sl627dqmre3kru883bpdxc3","collapse_cluster"); +} +} + + + + +//3 din4qnipewrwnelaimzvlplft +// static void collapse_sets(graph_t *rg, graph_t *g) +public static void collapse_sets(Agraph_s rg, Agraph_s g) { +ENTERING("din4qnipewrwnelaimzvlplft","collapse_sets"); +try { + int c; + Agraph_s subg; + for (subg = agfstsubg(g); subg!=null; subg = agnxtsubg(subg)) { + c = rank_set_class(subg); + if (c!=0) { + if ((c == 7) && Z._().CL_type == 100) + collapse_cluster(rg, subg); + else + collapse_rankset(rg, subg, c); + } + else collapse_sets(rg, subg); + } +} finally { +LEAVING("din4qnipewrwnelaimzvlplft","collapse_sets"); +} +} + + + + +//3 5n9mgh7vlru5mb1j9oienvbvs +// static void find_clusters(graph_t * g) +public static Object find_clusters(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("cdsgmo50taekqgk95mfn25930"); // find_clusters(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8uujemixuhlf040icq3zsh7j8"); // graph_t *subg; +UNSUPPORTED("39msf2samfrjyh2h1a0nh0bnq"); // for (subg = agfstsubg(dot_root(g)); subg; subg = agnxtsubg(subg)) { +UNSUPPORTED("zmexivcsx1b4oppz6cjwhzd9"); // if (GD_set_type(subg) == 7) +UNSUPPORTED("xqwyd1xyo86onxfw4s7p8at4"); // collapse_cluster(g, subg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 12fw0esv4unfin6waf9mknc1o +// static void set_minmax(graph_t * g) +public static void set_minmax(Agraph_s g) { +ENTERING("12fw0esv4unfin6waf9mknc1o","set_minmax"); +try { + int c; + GD_minrank(g, GD_minrank(g) + ND_rank(GD_leader(g))); + GD_maxrank(g, GD_maxrank(g) + ND_rank(GD_leader(g))); + for (c = 1; c <= GD_n_cluster(g); c++) + set_minmax((Agraph_s) GD_clust(g).plus(c).getPtr()); +} finally { +LEAVING("12fw0esv4unfin6waf9mknc1o","set_minmax"); +} +} + + + + +//3 3bcr1748gqnu8ogb73jeja7ly +// static point minmax_edges(graph_t * g) +public static __struct__ minmax_edges(Agraph_s g) { +// WARNING!! STRUCT +return minmax_edges_w_(g).copy(); +} +private static __struct__ minmax_edges_w_(Agraph_s g) { +ENTERING("3bcr1748gqnu8ogb73jeja7ly","minmax_edges"); +try { + Agnode_s n; + Agedge_s e; + final __struct__ slen = __struct__.from(point.class); + slen.setInt("x", 0); + slen.setInt("y", 0); + if ((GD_maxset(g) == null) && (GD_minset(g) == null)) + return slen; +UNSUPPORTED("d0tnzm7aw9504y1w1oqoesw64"); // if ((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset) != NULL) +UNSUPPORTED("9esfh1bqntzgyk7zcq16k9f96"); // (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset) = UF_find((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset)); +UNSUPPORTED("2szhe8u8hvuy7p23r4p4zcb83"); // if ((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset) != NULL) +UNSUPPORTED("tufrhwafgfvg5vepfqo9dpwg"); // (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset) = UF_find((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset)); +UNSUPPORTED("3num56yubfb33g0m56jntiy0x"); // if ((n = (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset))) { +UNSUPPORTED("d60rrtpfeuylcbp2490sojfjq"); // slen.y = ((((Agnodeinfo_t*)(((Agobj_t*)((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset)))->data))->ranktype) == 5); +UNSUPPORTED("79ls52ss65f22xrsubkcofzz"); // while ((e = (((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->out).list[0])) { +UNSUPPORTED("chd9prkphze2z32e98mbxhqyd"); // assert(((((((Agobj_t*)(e))->tag).objtype) == 2? (e): ((e)-1))->node) == UF_find(((((((Agobj_t*)(e))->tag).objtype) == 2? (e): ((e)-1))->node))); +UNSUPPORTED("829yx3b7rjn7ptz89mz4dj5yo"); // reverse_edge(e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8us4psjv2ebkgcp54fvjbuhj8"); // if ((n = (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset))) { +UNSUPPORTED("7uri9lp9wjgo20ram4gfo974w"); // slen.x = ((((Agnodeinfo_t*)(((Agobj_t*)((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset)))->data))->ranktype) == 3); +UNSUPPORTED("5up69q1rp9ts32jvunwg9hlrr"); // while ((e = (((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->in).list[0])) { +UNSUPPORTED("4t476gsg37fhfa2fdrokupx2c"); // assert(((((((Agobj_t*)(e))->tag).objtype) == 3? (e): ((e)+1))->node) == UF_find(((((((Agobj_t*)(e))->tag).objtype) == 3? (e): ((e)+1))->node))); +UNSUPPORTED("829yx3b7rjn7ptz89mz4dj5yo"); // reverse_edge(e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("erz19oifq072tdfzgz6dxa9i4"); // return slen; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("3bcr1748gqnu8ogb73jeja7ly","minmax_edges"); +} +} + + + + +//3 1rmlm1wo3t94wyet9rlwrmith +// static int minmax_edges2(graph_t * g, point slen) +public static boolean minmax_edges2(Agraph_s g, final __struct__ slen) { +// WARNING!! STRUCT +return minmax_edges2_w_(g, slen.copy()); +} +private static boolean minmax_edges2_w_(Agraph_s g, final __struct__ slen) { +ENTERING("1rmlm1wo3t94wyet9rlwrmith","minmax_edges2"); +try { + Agnode_s n; + Agedge_s e = null; + if ((GD_maxset(g)!=null) || (GD_minset(g)!=null)) { +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("8y47p29z0c2f1xpkrsb8w8re8"); // if (n != UF_find(n)) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("49yt5gs5xlk2yzmiulvp7iqrd"); // if (((((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->out).size == 0) && (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset) && (n != (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset))) { +UNSUPPORTED("9ksut17itonzpk3hp57jn4d1s"); // e = virtual_edge(n, (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset), NULL); +UNSUPPORTED("7dlot3nkpploeywkumjt3erop"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->minlen) = slen.y; +UNSUPPORTED("5ddkb181unkbg63gxqjx85fzq"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->weight) = 0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5b66s1jsuwe7l2e8p6o1xpnab"); // if (((((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->in).size == 0) && (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset) && (n != (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset))) { +UNSUPPORTED("c00g90uqqonkk08nncvi45c8f"); // e = virtual_edge((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset), n, NULL); +UNSUPPORTED("cxdsqlq2h35nyz65uc4eifchp"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->minlen) = slen.x; +UNSUPPORTED("5ddkb181unkbg63gxqjx85fzq"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->weight) = 0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } + return (e != null); +} finally { +LEAVING("1rmlm1wo3t94wyet9rlwrmith","minmax_edges2"); +} +} + + + + +//3 3vpthwso788idvycelpnqijys +// void rank1(graph_t * g) +public static void rank1(Agraph_s g) { +ENTERING("3vpthwso788idvycelpnqijys","rank1"); +try { + int maxiter = Integer.MAX_VALUE; + int c; + CString s; + if ((s = agget(g, new CString("nslimit1")))!=null) +UNSUPPORTED("9tp2zk1tsr4ce9rwsr0is9u3o"); // maxiter = atof(s) * agnnodes(g); + for (c = 0; c < GD_comp(g).getInt("size"); c++) { + GD_nlist(g, GD_comp(g).getArrayOfPtr("list").plus(c).getPtr()); + rank(g, (GD_n_cluster(g) == 0 ? 1 : 0), maxiter); /* TB balance */ + } +} finally { +LEAVING("3vpthwso788idvycelpnqijys","rank1"); +} +} + + + + +//3 cdh8wnb99v90dy6efpbzmrjix +// static void expand_ranksets(graph_t * g, aspect_t* asp) +public static void expand_ranksets(Agraph_s g, aspect_t asp) { +ENTERING("cdh8wnb99v90dy6efpbzmrjix","expand_ranksets"); +try { + int c; + Agnode_s n, leader; + if ((n = agfstnode(g))!=null) { + GD_minrank(g, MAXSHORT); + GD_maxrank(g, -1); + while (n!=null) { + leader = UF_find(n); + /* The following works because ND_rank(n) == 0 if n is not in a + * cluster, and ND_rank(n) = the local rank offset if n is in + * a cluster. */ + if (NEQ(leader, n) && (N(asp) || (ND_rank(n) == 0))) + ND_rank(n, ND_rank(n) + ND_rank(leader)); + if (GD_maxrank(g) < ND_rank(n)) + GD_maxrank(g, ND_rank(n)); + if (GD_minrank(g) > ND_rank(n)) + GD_minrank(g, ND_rank(n)); + if (ND_ranktype(n)!=0 && (ND_ranktype(n) != 6)) + UF_singleton(n); + n = agnxtnode(g, n); + } + if (EQ(g, dot_root(g))) { + if (Z._().CL_type == 100) { + for (c = 1; c <= GD_n_cluster(g); c++) + set_minmax((Agraph_s) GD_clust(g).plus(c).getPtr()); + } else { + find_clusters(g); + } + } + } else { + GD_maxrank(g, 0); + GD_minrank(g, 0); + } +} finally { +LEAVING("cdh8wnb99v90dy6efpbzmrjix","expand_ranksets"); +} +} + + + + +//3 2o4rmb4o6f6zh46ak3se91rwr +// static void dot1_rank(graph_t * g, aspect_t* asp) +public static void dot1_rank(Agraph_s g, aspect_t asp) { +ENTERING("2o4rmb4o6f6zh46ak3se91rwr","dot1_rank"); +try { + final __struct__ p = __struct__.from(point.class); + edgelabel_ranks(g); + if (asp!=null) { +UNSUPPORTED("kh7e20nqwuserrnpf3zpvuyl"); // init_UF_size(g); +UNSUPPORTED("d88j5oswhz0d3yvd4wlvxohmu"); // initEdgeTypes(g); + } + collapse_sets(g,g); + /*collapse_leaves(g); */ + class1_(g); + p.____(minmax_edges(g)); + decompose(g, 0); + if (asp!=null && ((GD_comp(g).getInt("size") > 1)||(GD_n_cluster(g) > 0))) { +UNSUPPORTED("evcjt85irnaa02v8cam07i009"); // asp->badGraph = 1; +UNSUPPORTED("45nxv6kczal9hnytkfcyt2jk8"); // asp = NULL; + } + acyclic_(g); + if (minmax_edges2(g, p)) +UNSUPPORTED("800vpyk6y4hcx2txwyrr2boxu"); // decompose(g, 0); + if (asp!=null) + rank3(g, asp); + else + rank1(g); + expand_ranksets(g, asp); + cleanup1(g); +} finally { +LEAVING("2o4rmb4o6f6zh46ak3se91rwr","dot1_rank"); +} +} + + + + +//3 asyfujgwqa407ffvqn5psbtsc +// void dot_rank(graph_t * g, aspect_t* asp) +public static void dot_rank(Agraph_s g, aspect_t asp) { +ENTERING("asyfujgwqa407ffvqn5psbtsc","dot_rank"); +try { + if (agget (g, new CString("newrank"))!=null) { + GD_flags(g, GD_flags(g) | (1 << 4)); + dot2_rank (g, asp); + } + else + dot1_rank (g, asp); + //if (Verbose) + //fprintf (stderr, "Maxrank = %d, minrank = %d\n", (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxrank), (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minrank)); +} finally { +LEAVING("asyfujgwqa407ffvqn5psbtsc","dot_rank"); +} +} + + + + +//3 cdncou6d2ng5i48rd1mk2cpnw +// int is_cluster(graph_t * g) +public static boolean is_cluster(Agraph_s g) { +ENTERING("cdncou6d2ng5i48rd1mk2cpnw","is_cluster"); +try { + return (strncmp(agnameof(g), new CString("cluster"), 7) == 0); +} finally { +LEAVING("cdncou6d2ng5i48rd1mk2cpnw","is_cluster"); +} +} + + + + +//3 29qzn29glqnhg14z5cwt9i8ds +// static void set_parent(graph_t* g, graph_t* p) +public static Object set_parent(Object... arg) { +UNSUPPORTED("blcrnfwfdmb15y0sduplfd1kd"); // static void set_parent(graph_t* g, graph_t* p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("761elco9es28q1el1h87c9q8w"); // GD_parent(g) = p; +UNSUPPORTED("84dx27r05ns2c0pm7idum25td"); // make_new_cluster(p, g); +UNSUPPORTED("65op19ofyxj4vywwg8hovy2yh"); // node_induce(p, g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3qlca4afaxtwu0r2v22ccpfy9 +// static int is_empty(graph_t * g) +public static Object is_empty(Object... arg) { +UNSUPPORTED("1bkrdpgwmb75nr2g9ooqfc79r"); // static int is_empty(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8bgakhvkt8exvi70zpvdvwrt4"); // return (!agfstnode(g)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 sxmrpf4e3wi4vzeiu486heyw +// static int is_a_strong_cluster(graph_t * g) +public static Object is_a_strong_cluster(Object... arg) { +UNSUPPORTED("251zndmdq92kg3zmfr3akrrmn"); // static int is_a_strong_cluster(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv; +UNSUPPORTED("9l9qe4o3ak62d2r6cbq90e5g"); // char *str = agget(g, "compact"); +UNSUPPORTED("5zgcjj66562k7c4z26hmps9jr"); // /* rv = mapBool((str), TRUE); */ +UNSUPPORTED("7k6ls7carz5knwiocbejouapm"); // rv = mapBool((str), 0); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 954bo7mrh993f96ujb8u3e8vt +// static int rankset_kind(graph_t * g) +public static Object rankset_kind(Object... arg) { +UNSUPPORTED("5vyg261oak77cq7e9dmvw2omc"); // static int rankset_kind(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("70l71erfhd26e1u7dnnxpa6i"); // char *str = agget(g, "rank"); +UNSUPPORTED("4ml2m315k80oi1eww739kxwgi"); // if (str && str[0]) { +UNSUPPORTED("7j0qc9ibr6niawo611kvm2swb"); // if (!strcmp(str, "min")) +UNSUPPORTED("avnuwo0ld6vqw4bdve4ku0kwr"); // return 2; +UNSUPPORTED("8q0yyecb20k2nm2qnluagpkcv"); // if (!strcmp(str, "source")) +UNSUPPORTED("1xt8eg4imiwilo2bv2i5shg7g"); // return 3; +UNSUPPORTED("7dkmgopul9nxw7arr5odhh641"); // if (!strcmp(str, "max")) +UNSUPPORTED("ajqfmduyeyu16131ii3itnjx7"); // return 4; +UNSUPPORTED("4f7keu82iifj10rf0thee5c4s"); // if (!strcmp(str, "sink")) +UNSUPPORTED("f45x5jzpirzixrsp3utlgrddo"); // return 5; +UNSUPPORTED("kjtw0fdz1jophwulunsrgzdb"); // if (!strcmp(str, "same")) +UNSUPPORTED("btmwubugs9vkexo4yb7a5nqel"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ds4c38px5ikyzcv8pbtfcfg8h"); // return 6; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ej4vtw2e6g22jzlypo03buuob +// static int is_nonconstraint(edge_t * e) +public static Object is_nonconstraint(Object... arg) { +UNSUPPORTED("cdj60nbfp2uc9emgj9bb9tuq4"); // static int is_nonconstraint(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5bdi9u1cut03m2rbxpkmjg38w"); // char *constr; +UNSUPPORTED("ipmkcv3n8rnco04rgte3qrlh"); // if (E_constr && (constr = agxget(e, E_constr))) { +UNSUPPORTED("cnlkffmn4nysfcmoyktn3wvrx"); // if (constr[0] && mapbool(constr) == 0) +UNSUPPORTED("9qhn9m3123s8n6wwxjfo8awlm"); // return NOT(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8pb7znv8q3ikfulus8sprsrb8 +// static node_t *find(node_t * n) +public static Object find(Object... arg) { +UNSUPPORTED("420nqb6oiuhh8qfg7ick8eb5j"); // static node_t *find(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dxloerh79kcplsvqy37g3kwx1"); // node_t *set; +UNSUPPORTED("ch7ucg4bhoyhb0yswbbtjy53"); // if ((set = ND_set(n))) { +UNSUPPORTED("e20g6f3inc2t1acfqffb0ksqe"); // if (set != n) +UNSUPPORTED("3lalmwvgf54uou021ltj0hfqg"); // set = ND_set(n) = find(set); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("45wb5d7uba8g13ojkskeug5v2"); // set = ND_set(n) = n; +UNSUPPORTED("d5jffopzvq1b1jnhb3jadtkkb"); // return set; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 tgndl91vjf2dvnepj15uye32 +// static node_t *union_one(node_t * leader, node_t * n) +public static Object union_one(Object... arg) { +UNSUPPORTED("bk1ys5rvc0fqcssw437mw03pk"); // static node_t *union_one(node_t * leader, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("vkwoakpy0gnbvzgy8gprpluu"); // if (n) +UNSUPPORTED("879p5fay2s7f829lo6qaxs62y"); // return (ND_set(find(n)) = find(leader)); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("o1psslvh23yuu288xx1nzbv6"); // return leader; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1ku7zqljp4yk6j8pqxa19ko4u +// static node_t *union_all(graph_t * g) +public static Object union_all(Object... arg) { +UNSUPPORTED("1bddf3dbho07f9di3ae5tdn2z"); // static node_t *union_all(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d5wzfazsul6ns71kurzu097zq"); // node_t *n, *leader; +UNSUPPORTED("42x5vqk9aw9a2ld3duvpmp7u9"); // n = agfstnode(g); +UNSUPPORTED("b23lxt0h34yyivnau77kavofl"); // if (!n) +UNSUPPORTED("bp96fem54xcxrw16cmnlpell9"); // return n; +UNSUPPORTED("c7r16vtue9uiodzk7n9ybdegz"); // leader = find(n); +UNSUPPORTED("1azt0yldbuvzvyhftheine5bv"); // while ((n = agnxtnode(g, n))) +UNSUPPORTED("aygpegbyw6isjunzjiq2efa8e"); // union_one(leader, n); +UNSUPPORTED("d2vvjehoyl5rcjodzjl8q0xne"); // return leader; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dehfujiq2i24w0y9qcoq88gbd +// static void compile_samerank(graph_t * ug, graph_t * parent_clust) +public static Object compile_samerank(Object... arg) { +UNSUPPORTED("52xc1gml0ynibrpu4r03l9cs"); // static void compile_samerank(graph_t * ug, graph_t * parent_clust) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5prtalowcftfpc3phfgtdwxe1"); // graph_t *s; /* subgraph being scanned */ +UNSUPPORTED("6rya07j39ddlbnek0cawgbdxq"); // graph_t *clust; /* cluster that contains the rankset */ +UNSUPPORTED("d5wzfazsul6ns71kurzu097zq"); // node_t *n, *leader; +UNSUPPORTED("3j62rndf411nak99bxbvwogwg"); // if (is_empty(ug)) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("116sd790xqr0sm9prs44dhdi9"); // if (is_a_cluster(ug)) { +UNSUPPORTED("anfjvlosf3592vmzm64wp9ukv"); // clust = ug; +UNSUPPORTED("a4nj79aw8gc4rsc6qh4h1j3ca"); // if (parent_clust) { +UNSUPPORTED("2cme4svj15jnccy2a5my2k0vk"); // GD_level(ug) = GD_level(parent_clust) + 1; +UNSUPPORTED("92dkw1fscsyjwrbkjnllcmsiz"); // set_parent(ug, parent_clust); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("1f3tsi2calw640ylv89zufnqg"); // GD_level(ug) = 0; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("f2eqknbcu7dkt0mk3aa0nseps"); // clust = parent_clust; +UNSUPPORTED("2jowbcd45wf29ysq00oxpb9qh"); // /* process subgraphs of this subgraph */ +UNSUPPORTED("cpub3vrdy1soy50cezvowuqp8"); // for (s = agfstsubg(ug); s; s = agnxtsubg(s)) +UNSUPPORTED("6y2vizzx42iva8zf3ndgfxuoo"); // compile_samerank(s, clust); +UNSUPPORTED("4st45szka4kxyf5afpt9r2lr7"); // /* process this subgraph as a cluster */ +UNSUPPORTED("116sd790xqr0sm9prs44dhdi9"); // if (is_a_cluster(ug)) { +UNSUPPORTED("4pm26v2jo8qeolmy8246h5zal"); // for (n = agfstnode(ug); n; n = agnxtnode(ug, n)) { +UNSUPPORTED("dpma84q2zbh96nqex4fp8bs5a"); // if (ND_clust(n) == 0) +UNSUPPORTED("9ov8qga72kqj7lnxefrlneehb"); // ND_clust(n) = ug; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b6vj39735t21yl5ayiouei3ea"); // /* process this subgraph as a rankset */ +UNSUPPORTED("bt28cwea3vaqopki07c2rians"); // switch (rankset_kind(ug)) { +UNSUPPORTED("33l7a58zp8vj6fuliwdkk2nkn"); // case 3: +UNSUPPORTED("btl4oqew40wl0bqc9bhe1qshq"); // GD_has_sourcerank(clust) = NOT(0); /* fall through */ +UNSUPPORTED("4u5xz2u3urj13y0aw30fdyup5"); // case 2: +UNSUPPORTED("9shvnosp4rfl2zcu1mk8mt6k"); // leader = union_all(ug); +UNSUPPORTED("6o42rb3i5w3jv1861oa077ahy"); // GD_minrep(clust) = union_one(leader, GD_minrep(clust)); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("94bjfk0blg9ugkinwopclju8t"); // case 5: +UNSUPPORTED("b9tzw03kknh7ged56o6llxdh0"); // GD_has_sinkrank(clust) = NOT(0); /* fall through */ +UNSUPPORTED("7gwyze795m9aa2915n3bou49x"); // case 4: +UNSUPPORTED("9shvnosp4rfl2zcu1mk8mt6k"); // leader = union_all(ug); +UNSUPPORTED("dumvmo0mkc9khfmooiadflzuz"); // GD_maxrep(clust) = union_one(leader, GD_maxrep(clust)); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("d0gk15gzj4wz8nv54zbr285hm"); // case 1: +UNSUPPORTED("9shvnosp4rfl2zcu1mk8mt6k"); // leader = union_all(ug); +UNSUPPORTED("aukepn75qomcnwetlwyvziwx1"); // /* do we need to record these ranksets? */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4ak4rwp0nsvc9n89y3dnvoiy9"); // case 6: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("b7b3qf9gm8yinsl7rq2tcvamg"); // default: /* unrecognized - warn and do nothing */ +UNSUPPORTED("dsg015rva622f29whl6b5ner1"); // agerr(AGWARN, "%s has unrecognized rank=%s", agnameof(ug), +UNSUPPORTED("7gjdlew6rtq0dsdxc6uyc7v48"); // agget(ug, "rank")); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8z2hxrvowojvpioiz41x8djhw"); // /* a cluster may become degenerate */ +UNSUPPORTED("bg6be1cr97nd4blhxwc8577cz"); // if (is_a_cluster(ug) && GD_minrep(ug)) { +UNSUPPORTED("7z1ki4lb1ja4hai3qi68hlg72"); // if (GD_minrep(ug) == GD_maxrep(ug)) { +UNSUPPORTED("6d3xnrwrzibz1hajej296nhj4"); // node_t *up = union_all(ug); +UNSUPPORTED("bisonxzfe0vx9x9xtsvv27rq9"); // GD_minrep(ug) = up; +UNSUPPORTED("esz48qzeb3f3oomg8wb4drmrn"); // GD_maxrep(ug) = up; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6mzsthkzz214du9ljfc7ijlf3 +// static graph_t *dot_lca(graph_t * c0, graph_t * c1) +public static Object dot_lca(Object... arg) { +UNSUPPORTED("egnw42d8jhfdyl5zqlzqffv17"); // static graph_t *dot_lca(graph_t * c0, graph_t * c1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8qmvk29gersospxrjeukh5zdn"); // while (c0 != c1) { +UNSUPPORTED("9395225iwl078vpfdl5fz3q1i"); // if (GD_level(c0) >= GD_level(c1)) +UNSUPPORTED("ud0xxtx626m6p44f5ybl28oz"); // c0 = GD_parent(c0); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("1z7wsarh0nlwq4y04yizw1pbj"); // c1 = GD_parent(c1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("aqd6v9mqxnbx6er4fkhkmhusr"); // return c0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7fwe6cym6k60fw6f2gkbftvh8 +// static int is_internal_to_cluster(edge_t * e) +public static Object is_internal_to_cluster(Object... arg) { +UNSUPPORTED("esoedecj682cdsbz3i9026zfo"); // static int is_internal_to_cluster(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bf7f1i4wj7cvj82os2h0somln"); // graph_t *par, *ct, *ch; +UNSUPPORTED("pzh3wmhacvb8baamh8d0x2j5"); // ct = ND_clust(agtail(e)); +UNSUPPORTED("1yxzewahgac4khyfwgegotstb"); // ch = ND_clust(aghead(e)); +UNSUPPORTED("c0hxl5pgz9bgngw9cw54a6y8z"); // if (ct == ch) +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("b4gos5u06phmhqll71bg7znsl"); // par = dot_lca(ct, ch); +UNSUPPORTED("32a491a5jyr0gaudx2odlyl1x"); // /* if (par == agroot(par)) */ +UNSUPPORTED("4ugp2o11w5qr2tr0vjcqlm5xu"); // /* return FALSE; */ +UNSUPPORTED("1vb9z2lsj8ote2lis1nzqfq98"); // if ((par == ct) || (par == ch)) +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 ca279jzn1n2k40bv7mz55ccx7 +// static node_t* Last_node +//private static Agnode_s Last_node; + + +//3 6odjfuoywf6x6xpuz14xn1w07 +// static node_t* makeXnode (graph_t* G, char* name) +public static Object makeXnode(Object... arg) { +UNSUPPORTED("bpc5db7ozsqpc73t2xl0qmpnr"); // static node_t* makeXnode (graph_t* G, char* name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("as7pt6rau89ac05ml4zp39xgj"); // node_t *n = agnode(G, name, 1); +UNSUPPORTED("6b9ymcqm4d2w42w6dvlhb7hio"); // alloc_elist(4, ND_in(n)); +UNSUPPORTED("b0ocdkprm41g10emqffwvovpd"); // alloc_elist(4, ND_out(n)); +UNSUPPORTED("e32lwhe8aj8zbofa5hl91g94x"); // if (Last_node) { +UNSUPPORTED("ctnbewkujd0gitkeptmdjrc5e"); // ND_prev(n) = Last_node; +UNSUPPORTED("efpj513jkepv1eb6ehj5cyuqy"); // ND_next(Last_node) = n; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("d73xo1uhf9960attqraecy18q"); // ND_prev(n) = NULL; +UNSUPPORTED("bd7fe5nmcvdfwgbbuzoxzk59n"); // GD_nlist(G) = n; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7gutgf5zbme88t9ueyzvir9yh"); // Last_node = n; +UNSUPPORTED("9tl9ztdpfpeb900t5gagch4eg"); // ND_next(n) = NULL; +UNSUPPORTED("69hc24ic55i66g8tf2ne42327"); // return n; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cd3kauuz11z03xym1la7ze5e6 +// static void compile_nodes(graph_t * g, graph_t * Xg) +public static Object compile_nodes(Object... arg) { +UNSUPPORTED("12jh8m3jnppgzqcx642zkv20x"); // static void compile_nodes(graph_t * g, graph_t * Xg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dm6k18yfspisvs0pl8f3kp9j4"); // /* build variables */ +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("hibhvgkp511r6u6ips8yb0un"); // Last_node = NULL; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("2f2poxq5fr9k7bgerylsq6dkm"); // if (find(n) == n) +UNSUPPORTED("9xe9wxas5cxrrzpmqtkfavbuj"); // ND_rep(n) = makeXnode (Xg, agnameof(n)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("cfjmkdzc5nj1nbp2ckl0mejra"); // if (ND_rep(n) == 0) +UNSUPPORTED("2u4sgiv3zkgh3t4r1ksk76oyl"); // ND_rep(n) = ND_rep(find(n)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e1guv5kmb9i30k71e66mdxo3y +// static void merge(edge_t * e, int minlen, int weight) +public static Object merge(Object... arg) { +UNSUPPORTED("1npguevtdh47xfz698yahzrqb"); // static void merge(edge_t * e, int minlen, int weight) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("acr0hvlhebqp3iieup5bti0r6"); // ED_minlen(e) = MAX(ED_minlen(e), minlen); +UNSUPPORTED("eq9oxzgg08304c8ph77144cpu"); // ED_weight(e) += weight; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c6dqhr5u2wv75vxz5cgbkui +// static void strong(graph_t * g, node_t * t, node_t * h, edge_t * orig) +public static Object strong(Object... arg) { +UNSUPPORTED("6vzggze9zva4h232s9hd64r27"); // static void strong(graph_t * g, node_t * t, node_t * h, edge_t * orig) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("bqayp53mx8tl3a9owcil2sfpy"); // if ((e = (agedge(g,t,h,NULL,0))) || +UNSUPPORTED("4bkprvzfmfr1nlqmvqcd1xpg"); // (e = (agedge(g,h,t,NULL,0))) || (e = agedge(g, t, h, 0, 1))) +UNSUPPORTED("9otcshlag9drzks2p4q4bz1z8"); // merge(e, ED_minlen(orig), ED_weight(orig)); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("1qsfg1so4d9ee0f799ylbtkyp"); // agerr(AGERR, "ranking: failure to create strong constraint edge between nodes %s and %s\n", +UNSUPPORTED("347820654uihcls8om0v8c3g1"); // agnameof(t), agnameof(h)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a1kjm11iwgfl824pakzcm8kuu +// static void weak(graph_t * g, node_t * t, node_t * h, edge_t * orig) +public static Object weak(Object... arg) { +UNSUPPORTED("e0f6tf4pkq822l7f10u2xromd"); // static void weak(graph_t * g, node_t * t, node_t * h, edge_t * orig) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aigogf44ojtcesuy4xs7inqbn"); // node_t *v; +UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f; +UNSUPPORTED("3kkq8fnz3moxvyriighzr9v70"); // static int id; +UNSUPPORTED("hbaoyuj2oi8c7iuzviuukgb7"); // char buf[100]; +UNSUPPORTED("5n9mmbpgpmin1li1s5wxfn0j7"); // for (e = agfstin(g, t); e; e = agnxtin(g, e)) { +UNSUPPORTED("blrs1fuvxzbs20bdqz7btw4yt"); // /* merge with existing weak edge (e,f) */ +UNSUPPORTED("cccrsacwb6lshsxm8g9vpqdvo"); // v = agtail(e); +UNSUPPORTED("657evjbfij6x36pli6d9g15lg"); // if ((f = agfstout(g, v)) && (aghead(f) == h)) { +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dhdmfarapbytpy4h24lgqslbi"); // if (!e) { +UNSUPPORTED("blf0483ca5ufq6yh26qqww4wv"); // sprintf (buf, "_weak_%d", id++); +UNSUPPORTED("9gu1nn0ir6yx53fj7kawo6xtw"); // v = makeXnode(g, buf); +UNSUPPORTED("7us6c9ykrtln0besnd67v5cer"); // e = agedge(g, v, t, 0, 1); +UNSUPPORTED("atd2wygaazfzcta0bus6bs4uu"); // f = agedge(g, v, h, 0, 1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7nn4pn4dj4nuo71wfp1byijpx"); // ED_minlen(e) = MAX(ED_minlen(e), 0); /* effectively a nop */ +UNSUPPORTED("drqgauf89xr1mpyydaxqfg694"); // ED_weight(e) += ED_weight(orig) * 1000; +UNSUPPORTED("halhvp8h6olsu4tb4b5zb8ys"); // ED_minlen(f) = MAX(ED_minlen(f), ED_minlen(orig)); +UNSUPPORTED("dyyu1myirsx00xvfvqq97f6dt"); // ED_weight(f) += ED_weight(orig); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 68dc7hsp2siu9in566grx5h8l +// static void compile_edges(graph_t * ug, graph_t * Xg) +public static Object compile_edges(Object... arg) { +UNSUPPORTED("57s72j3dqfa0fdsi9zu6yqbxe"); // static void compile_edges(graph_t * ug, graph_t * Xg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("1dgz401xgus10wp90qpgfmm84"); // node_t *Xt, *Xh; +UNSUPPORTED("c37x0xox8y9eba9wy6d00j14i"); // graph_t *tc, *hc; +UNSUPPORTED("lp2eyq9typ14npscbcmds97c"); // /* build edge constraints */ +UNSUPPORTED("1rgbf8esuu21jsnjy0ozcv2nx"); // for (n = agfstnode(ug); n; n = agnxtnode(ug, n)) { +UNSUPPORTED("36jgu4l53q07scrzxtbzu9ws1"); // Xt = ND_rep(n); +UNSUPPORTED("1huyj2j0jo6l60j1121l0cenn"); // for (e = agfstout(ug, n); e; e = agnxtout(ug, e)) { +UNSUPPORTED("eihgt2jen0ohii72jzayossof"); // if (is_nonconstraint(e)) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("21s68hvg9tcok9mc1yj0cxyo8"); // Xh = ND_rep(find(aghead(e))); +UNSUPPORTED("5c9s9jmoqhby2u29zb0g9neqn"); // if (Xt == Xh) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("enlmoet02jwyseh462fspj7kr"); // tc = ND_clust(agtail(e)); +UNSUPPORTED("47ba8c5wv42664v4uk20dcxui"); // hc = ND_clust(aghead(e)); +UNSUPPORTED("7o1ut6pe3ws38101s6x9jv08k"); // if (is_internal_to_cluster(e)) { +UNSUPPORTED("61gy4yt9v1l4586kvpqtacmur"); // /* determine if graph requires reversed edge */ +UNSUPPORTED("cuivzwkiwyl1njm43k0v3zig3"); // if ((find(agtail(e)) == GD_maxrep(ND_clust(agtail(e)))) +UNSUPPORTED("9xxo59da6q1v90ljd3h8apc3j"); // || (find(aghead(e)) == GD_minrep(ND_clust(aghead(e))))) { +UNSUPPORTED("4mdqa1pib7sml5socnk5zj1jn"); // node_t *temp = Xt; +UNSUPPORTED("edto6lxzuam8lv9gvigp2bnnh"); // Xt = Xh; +UNSUPPORTED("edahfvolx6t8a93b1jzop0prz"); // Xh = temp; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("eap1t3wskyfghhrwqv5fzgiye"); // strong(Xg, Xt, Xh, e); +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("73tu1coi87ooqzro2vtdezlut"); // if (is_a_strong_cluster(tc) || is_a_strong_cluster(hc)) +UNSUPPORTED("1qlyasf525g29jx5adouyjjaf"); // weak(Xg, Xt, Xh, e); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("dtnnxvw72r9ajw35rh6sh0twe"); // strong(Xg, Xt, Xh, e); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1nzwhja8l48xyfliiyqjsvegu +// static void compile_clusters(graph_t* g, graph_t* Xg, node_t* top, node_t* bot) +public static Object compile_clusters(Object... arg) { +UNSUPPORTED("4w43o1w7rtbr7a1ewf1ai3ynx"); // static void compile_clusters(graph_t* g, graph_t* Xg, node_t* top, node_t* bot) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("tppzioyoeodu2sq7fsqife44"); // node_t *rep; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("evmjaaqcnbnbnogx8aaw70ura"); // graph_t *sub; +UNSUPPORTED("73bera1w406yjis65313aefau"); // if (is_a_cluster(g) && is_a_strong_cluster(g)) { +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("cpkj2qkslx3blfoouey105509"); // if (agfstin(g, n) == 0) { +UNSUPPORTED("eqsuud7jsawkoiswwrrru1r3a"); // rep = ND_rep(find(n)); +UNSUPPORTED("4fbgaoqhx6tmezixpndizn8ee"); // if (!top) top = makeXnode(Xg,"\177top"); +UNSUPPORTED("bp6fj85jbfmup51iezb1m0ceo"); // agedge(Xg, top, rep, 0, 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("f5bjshz39kvzzthd7dqnbg81p"); // if (agfstout(g, n) == 0) { +UNSUPPORTED("eqsuud7jsawkoiswwrrru1r3a"); // rep = ND_rep(find(n)); +UNSUPPORTED("46t01tbbri501pur6cw0iwvs3"); // if (!bot) bot = makeXnode(Xg,"\177bot"); +UNSUPPORTED("5hobrjtzylmppobf8pdnq7rhk"); // agedge(Xg, rep, bot, 0, 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6qtb53kac7myad1p5cy3wf89i"); // if (top && bot) { +UNSUPPORTED("2ydmagof3r394ooo3v0twq5us"); // e = agedge(Xg, top, bot, 0, 1); +UNSUPPORTED("5s7xl2rvkq0dxxapwrubcmv9p"); // merge(e, 0, 1000); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bkafc0cyfhu7g619r30g2vtmg"); // for (sub = agfstsubg(g); sub; sub = agnxtsubg(sub)) +UNSUPPORTED("br6bnlza0f68fwkd0sbsfznv5"); // compile_clusters(sub, Xg, top, bot); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 93ycqhupenif7m6n70yj2rptv +// static void reverse_edge2(graph_t * g, edge_t * e) +public static Object reverse_edge2(Object... arg) { +UNSUPPORTED("aa57ihhjujmpk9d1fjnh7uhn2"); // static void reverse_edge2(graph_t * g, edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("32j70piql6r327tbseq7o0k28"); // edge_t *rev; +UNSUPPORTED("ankp6nch7e9a18lqb2heot7yf"); // rev = (agedge(g,aghead(e),agtail(e),NULL,0)); +UNSUPPORTED("8c5hijvd5kr4lynpc8zoa0b9l"); // if (!rev) +UNSUPPORTED("3tf0rz74jsukbjti74suklmrr"); // rev = agedge(g, aghead(e), agtail(e), 0, 1); +UNSUPPORTED("a37ttwpda0n66ej1agvpbx9u"); // merge(rev, ED_minlen(e), ED_weight(e)); +UNSUPPORTED("ae7ymr0zymf63zpp3vzny1kw5"); // agdelete(g, e); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 75994nd7ifrh2xjk0eei7kj04 +// static void dfs(graph_t * g, node_t * v) +public static Object dfs(Object... arg) { +UNSUPPORTED("e728nuv7n4wyffryp1y6ny8no"); // static void dfs(graph_t * g, node_t * v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f; +UNSUPPORTED("9cx417bj13sr8qn5zfj0zllwm"); // node_t *w; +UNSUPPORTED("701du899u3x4bjilnoar3a2me"); // if (ND_mark(v)) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("3dxrqgsmycugkp3qprexbuawx"); // ND_mark(v) = NOT(0); +UNSUPPORTED("9z9a3g70rwq874kmknu0re0w0"); // ND_onstack(v) = NOT(0); +UNSUPPORTED("3twcq4i177ymcmm9hj6l996fr"); // for (e = agfstout(g, v); e; e = f) { +UNSUPPORTED("9oaziib9dhmc3xyk6ku5rco5a"); // f = agnxtout(g, e); +UNSUPPORTED("bqi3fu38n0i7mblfl3ycwdjuo"); // w = aghead(e); +UNSUPPORTED("1pq8rawujka41xkc0ujz0c4jl"); // if (ND_onstack(w)) +UNSUPPORTED("cxzlqoajcjsygpeg1218t5uh8"); // reverse_edge2(g, e); +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("1w7s47988wvu89n176ee6lnii"); // if (ND_mark(w) == 0) +UNSUPPORTED("d5xmvav6dfdviu7ikabr84w6g"); // dfs(g, w); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8o0qmsv6vkvey8j3nrtn0z3nd"); // ND_onstack(v) = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dt90swbhv55qox6i9anmtxctb +// static void break_cycles(graph_t * g) +public static Object break_cycles(Object... arg) { +UNSUPPORTED("d7jjxsr59cimfe921b021ndni"); // static void break_cycles(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("3hbdxz1mh0xcb0h1e1gea41u4"); // ND_mark(n) = ND_onstack(n) = 0; +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("15bqemmbeo0l42s4hi394weuz"); // dfs(g, n); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8wnczo1mkpxdobt1qmszr6m9f +// static void setMinMax (graph_t* g, int doRoot) +public static Object setMinMax(Object... arg) { +UNSUPPORTED("5hvfkvu5sx7btm870992ll8rq"); // static void setMinMax (graph_t* g, int doRoot) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1cpavh3irbeilfgefcbzvnl04"); // int c, v; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("eygm2jbvlhvevem9cgvzdsnoi"); // node_t* leader; +UNSUPPORTED("8lepc7wxus3ce9jmpjg54nxtw"); // /* Do child clusters */ +UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++) +UNSUPPORTED("8r4qwge4bz0777mdq5rt0ojei"); // setMinMax(GD_clust(g)[c], 0); +UNSUPPORTED("3x63fs1jyz7xhzx9gygufh7wx"); // if (!GD_parent(g) && !doRoot) // root graph +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("65ovv0jsp2kemyp7179cotrqh"); // GD_minrank(g) = MAXSHORT; +UNSUPPORTED("4rx9wnlw0uumqfzcjtyg9rpfl"); // GD_maxrank(g) = -1; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("5wsvwyjckf81tdlqonfb9nvhu"); // v = ND_rank(n); +UNSUPPORTED("bbcqt8euig2s31zz814pp52cw"); // if (GD_maxrank(g) < v) +UNSUPPORTED("3cfkrpa6pt2hni0tkp45ybvtz"); // GD_maxrank(g) = v; +UNSUPPORTED("3vjkf11cl59z0q8i5mfju17se"); // if (GD_minrank(g) > v) { +UNSUPPORTED("cze1fj82fd8cmalgawkse3gy"); // GD_minrank(g) = v; +UNSUPPORTED("73jlqlf2bn3kx7i020menpfcw"); // leader = n; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5j1zsofmtglx1esxwbstti1un"); // GD_leader(g) = leader; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1rsds60zu7vl5g6sqr3ielup6 +// static void readout_levels(graph_t * g, graph_t * Xg, int ncc) +public static Object readout_levels(Object... arg) { +UNSUPPORTED("5rkflwuoyx87w4zl80k9x22hy"); // static void readout_levels(graph_t * g, graph_t * Xg, int ncc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("889z71siph20icfcbycjqnicp"); // node_t *xn; +UNSUPPORTED("a76n98ruj81c10y11ge1t5f71"); // int* minrk = NULL; +UNSUPPORTED("8kdgedl9jvch9df0ltm68vfas"); // int doRoot = 0; +UNSUPPORTED("65ovv0jsp2kemyp7179cotrqh"); // GD_minrank(g) = MAXSHORT; +UNSUPPORTED("4rx9wnlw0uumqfzcjtyg9rpfl"); // GD_maxrank(g) = -1; +UNSUPPORTED("almasgzi7eeks0c5qj1cne0ma"); // if (ncc > 1) { +UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i; +UNSUPPORTED("dl79ga1rb2mw8udgcp9s69msx"); // minrk = (int*)zmalloc((ncc+1)*sizeof(int)); +UNSUPPORTED("2e6gemf3dl8erdtw782hcarc0"); // for (i = 1; i <= ncc; i++) +UNSUPPORTED("dd010jlvkjz1z7fowihz8s25o"); // minrk[i] = MAXSHORT; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("dfofew00g6pxf2nxt4l881l0i"); // xn = ND_rep(find(n)); +UNSUPPORTED("qp65iwqtnpliswz9lpihtuzc"); // ND_rank(n) = ND_rank(xn); +UNSUPPORTED("68vv0lam9vxeuk3fg60ad5w6g"); // if (GD_maxrank(g) < ND_rank(n)) +UNSUPPORTED("2v65dy95gqvsnppoelwwl8ayh"); // GD_maxrank(g) = ND_rank(n); +UNSUPPORTED("3ozq6tqfxcegom34qkyrrxnfg"); // if (GD_minrank(g) > ND_rank(n)) +UNSUPPORTED("duyud2jy9uf1rbcis84c3lsj6"); // GD_minrank(g) = ND_rank(n); +UNSUPPORTED("5hf6jaqj5exe9r41fzbjl28ys"); // if (minrk) { +UNSUPPORTED("2m02fq9wavpk0rfm07klg50p0"); // ND_hops(n) = ND_hops(xn); +UNSUPPORTED("1kpcg7olwm9sb9fw0cw9xov8p"); // minrk[ND_hops(n)] = MIN(minrk[ND_hops(n)],ND_rank(n)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6grm8jag5924kjntwhi98yt6v"); // if (minrk) { +UNSUPPORTED("eg21iwn9eqyjsoisl58nl8i36"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("1xy7cyvcmd5jh134wfd4hkd73"); // ND_rank(n) -= minrk[ND_hops(n)]; +UNSUPPORTED("3h50jqntcutttxjjqk9e7qrp9"); // /* Non-uniform shifting, so recompute maxrank/minrank of root graph */ +UNSUPPORTED("7cxmg4tvzh3us2wx1hpur4ify"); // doRoot = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("19s4z0qdne7jghr6qco9pewkb"); // else if (GD_minrank(g) > 0) { /* should never happen */ +UNSUPPORTED("ekheljktcnka7fv7odg7w4w0b"); // int delta = GD_minrank(g); +UNSUPPORTED("eg21iwn9eqyjsoisl58nl8i36"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("6xuxsgiblao234kr6ifzzngj"); // ND_rank(n) -= delta; +UNSUPPORTED("205yra8usg0d60ou7fdef8sb8"); // GD_minrank(g) -= delta; +UNSUPPORTED("1l0r03kgtm5wfa9w1tb2o6pst"); // GD_maxrank(g) -= delta; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bfa83r7gfvl4so45ea11h6hs8"); // setMinMax(g, doRoot); +UNSUPPORTED("1oeld9qf035o8gav2314scxai"); // /* release fastgraph memory from Xg */ +UNSUPPORTED("4uue9kqy9xt1y7qinhilyp73p"); // for (n = agfstnode(Xg); n; n = agnxtnode(Xg, n)) { +UNSUPPORTED("6uowedfybay0zqxujx4izx5eb"); // free_list(ND_in(n)); +UNSUPPORTED("9ma0k3ktcua915egahxrgo1f"); // free_list(ND_out(n)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("13jrnqbzc7n4ujm1kc140syrh"); // free(ND_alg(agfstnode(g))); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("6acp2mmds4i0gjn21ospjdm1i"); // ND_alg(n) = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("xlaantr4lfd0cf3p6fhyfjii"); // if (minrk) +UNSUPPORTED("2quf4kce4g997p8lptbe0s678"); // free (minrk); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6wyn9t7y4rni0tldyaap4zsg4 +// static void dfscc(graph_t * g, node_t * n, int cc) +public static Object dfscc(Object... arg) { +UNSUPPORTED("9rlus4sokq2q7mrelfhcyeq9t"); // static void dfscc(graph_t * g, node_t * n, int cc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("6xj79bn6cjnne89udj4eccjbq"); // if (ND_hops(n) == 0) { +UNSUPPORTED("2ug68j3zfpl1hhipj43mlacw4"); // ND_hops(n) = cc; +UNSUPPORTED("8gbd6b2ssf51om8neirzzr6rw"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) +UNSUPPORTED("1petrc5reriuz99j26l6kvk9g"); // dfscc(g, aghead(e), cc); +UNSUPPORTED("c9yz11pm5cux1tvh62xx2kwle"); // for (e = agfstin(g, n); e; e = agnxtin(g, e)) +UNSUPPORTED("4gm4tqnmznd5xu1jmel9vdwu0"); // dfscc(g, agtail(e), cc); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4n4sn2k04eosjc6v3amau8l89 +// static int connect_components(graph_t * g) +public static Object connect_components(Object... arg) { +UNSUPPORTED("93546dpzyvd2lgopztw3kyszh"); // static int connect_components(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3zjt2iwedrvoc4tjrhcgrj2kp"); // int cc = 0; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("5yepsj8ho954ywprktudr66m8"); // ND_hops(n) = 0; +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("12mke9q9ufte7dz3juk9xj03o"); // if (ND_hops(n) == 0) +UNSUPPORTED("1hzimiukrcikr5ja8r8jsy6mg"); // dfscc(g, n, ++cc); +UNSUPPORTED("16hhes6efkztzuw8ooeyr7duq"); // if (cc > 1) { +UNSUPPORTED("aen3uv1t10s8e76c30y8j0051"); // node_t *root = makeXnode(g, "\177root"); +UNSUPPORTED("bzbr2vqual2twjcg2p2sffsd4"); // int ncc = 1; +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("eci2j6e8io07039308zl0no88"); // if (ND_hops(n) == ncc) { +UNSUPPORTED("7rj8qzz8d2u85i7gf6c4rs62m"); // (void) agedge(g, root, n, 0, 1); +UNSUPPORTED("cgm8ehtyoyn2ybwnrxvfx1cv8"); // ncc++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("95z6nz9mlol4p31l239u0zyz1"); // return (cc); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lj0r4q3ulap7ly9cvvqn3d0t +// static void add_fast_edges (graph_t * g) +public static Object add_fast_edges(Object... arg) { +UNSUPPORTED("9od2j2a8s9ki669jghjqrkcym"); // static void add_fast_edges (graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("1xm961cuv38vb1rckbyfsk5a8"); // elist_append(e, ND_out(n)); +UNSUPPORTED("30covjl73nxramgd8lw1apbkm"); // elist_append(e, ND_in(aghead(e))); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2xyhunzw903dytfpyy63oznhz +// static void my_init_graph(Agraph_t *g, Agobj_t *graph, void *arg) +public static Object my_init_graph(Object... arg) { +UNSUPPORTED("3s5gmr0i7qaf8sa79h9ek2t42"); // static void my_init_graph(Agraph_t *g, Agobj_t *graph, void *arg) +UNSUPPORTED("12ubgsqsc8d2oeobshclx2e9m"); // { int *sz = arg; agbindrec(graph,"level graph rec",sz[0],NOT(0)); } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vibj3ycvfkl07m1a2dzr3qf3 +// static void my_init_node(Agraph_t *g, Agobj_t *node, void *arg) +public static Object my_init_node(Object... arg) { +UNSUPPORTED("448m4h3oktm1kylrq3iss782r"); // static void my_init_node(Agraph_t *g, Agobj_t *node, void *arg) +UNSUPPORTED("3mooa3mwczxhc97acdygow0sx"); // { int *sz = arg; agbindrec(node,"level node rec",sz[1],NOT(0)); } + +throw new UnsupportedOperationException(); +} + + + + +//3 avor9syqevkn2jo4yf8whbg5f +// static void my_init_edge(Agraph_t *g, Agobj_t *edge, void *arg) +public static Object my_init_edge(Object... arg) { +UNSUPPORTED("bo6poh3fcfvu02sod3dyzjhsi"); // static void my_init_edge(Agraph_t *g, Agobj_t *edge, void *arg) +UNSUPPORTED("4f0jw3wys20zimucjor8qrhzg"); // { int *sz = arg; agbindrec(edge,"level edge rec",sz[2],NOT(0)); } + +throw new UnsupportedOperationException(); +} + + +//1 46nx7przjp7fn42o28hqdaj9k +// static Agcbdisc_t mydisc = + + +//1 9quqxw3oujl7u6bymimr5be7t +// int infosizes[] = + + + + +//3 590k5zi3mrpwbc3lib0w3rmr2 +// void dot2_rank(graph_t * g, aspect_t* asp) +public static Object dot2_rank(Object... arg) { +UNSUPPORTED("d8gu9ua6rerpv9vz9ctco1ca2"); // void dot2_rank(graph_t * g, aspect_t* asp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("23k65agnd27tv4ix9teds9e2t"); // int ssize; +UNSUPPORTED("dx1unsp79t4ji8dh8idt48jrc"); // int ncc, maxiter = INT_MAX; +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("dxlxz9md3d6r12wog4x5sc7td"); // graph_t *Xg; +UNSUPPORTED("hibhvgkp511r6u6ips8yb0un"); // Last_node = NULL; +UNSUPPORTED("ey4p0fjtw4ac18jh9svmzjs23"); // Xg = agopen("level assignment constraints", Agstrictdirected, 0); +UNSUPPORTED("e4j7z7nfe33svydzyn4w6abcy"); // agbindrec(Xg,"level graph rec",sizeof(Agraphinfo_t),NOT(0)); +UNSUPPORTED("4j4bkw2k5v7xlf7ycqcrz8qip"); // agpushdisc(Xg,&mydisc,infosizes); +UNSUPPORTED("d4pjn5ef0ywzmhe2fshhm8bvn"); // edgelabel_ranks(g); +UNSUPPORTED("e0rdg08m66a12fiixgkjnyrbj"); // if ((s = agget(g, "nslimit1"))) +UNSUPPORTED("9tp2zk1tsr4ce9rwsr0is9u3o"); // maxiter = atof(s) * agnnodes(g); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("dapt7hf1vwq593la2oydyrv27"); // maxiter = INT_MAX; +UNSUPPORTED("62k95fm4s1z2wzcyg28ir0x7u"); // compile_samerank(g, 0); +UNSUPPORTED("bh9imh5owlj1c9ad7mime392x"); // compile_nodes(g, Xg); +UNSUPPORTED("3kxtahvovojtzi6qqnrricpoo"); // compile_edges(g, Xg); +UNSUPPORTED("9twf7u3r2hzeic9w0gmvh10bc"); // compile_clusters(g, Xg, 0, 0); +UNSUPPORTED("cwrov5g30logh4g9omvkblonh"); // break_cycles(Xg); +UNSUPPORTED("3ficrpbhiwichejg6n1hshz7k"); // ncc = connect_components(Xg); +UNSUPPORTED("9x72se4xuqwfv27jlqpmivrwb"); // add_fast_edges (Xg); +UNSUPPORTED("2yazmwrpb1ni51wuck3ruvi2j"); // if (asp) { +UNSUPPORTED("8ow3lzc6gh107g9bcn4szm7hj"); // init_UF_size(Xg); +UNSUPPORTED("9503vlimf1i2zv76ua88ooepc"); // initEdgeTypes(Xg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b65fc1791mzxccp9zzxi8vk12"); // if ((s = agget(g, "searchsize"))) +UNSUPPORTED("aqd144wenl3zq15bwc41u9aha"); // ssize = atoi(s); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("2n4z8w1w3il45lik0kraspkud"); // ssize = -1; +UNSUPPORTED("aotd35u0hficqt6hlkw8xof03"); // rank2(Xg, 1, maxiter, ssize); +UNSUPPORTED("4x9mvgxbdou6xj4n98rwzucgi"); // /* fastgr(Xg); */ +UNSUPPORTED("8un6x92pzddrzsnq8y95af4m6"); // readout_levels(g, Xg, ncc); +UNSUPPORTED("6rs6sp7mefzzbf02kfmvycnaq"); // agclose(Xg); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/dotgen/sameport__c.java plantuml-8039/src/gen/lib/dotgen/sameport__c.java --- plantuml-8024/src/gen/lib/dotgen/sameport__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/dotgen/sameport__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,890 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.dotgen; +import static gen.lib.cgraph.attr__c.agattr; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGEDGE; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agedge_s; +import h.Agnode_s; +import h.Agraph_s; +import h.boxf; +import h.pointf; +import smetana.core.CString; +import smetana.core.Z; +import smetana.core.__struct__; + +public class sameport__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eu2yvovb9xx4rzic3gllij2bv +// void dot_sameports(graph_t * g) +public static void dot_sameports(Agraph_s g) { +ENTERING("eu2yvovb9xx4rzic3gllij2bv","dot_sameports"); +try { + Agnode_s n; + Agedge_s e; + CString id; + //same_t samehead[5]; + //same_t sametail[5]; + int n_samehead; /* number of same_t groups on current node */ + int n_sametail; /* number of same_t groups on current node */ + int i; + Z._().E_samehead = agattr(g, AGEDGE, new CString("samehead"),null); + Z._().E_sametail = agattr(g, AGEDGE, new CString("sametail"),null); + if (N(Z._().E_samehead!=null || Z._().E_sametail!=null)) + return; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("4roxmr5lxkjz6gn1j9mndurq2"); // n_samehead = n_sametail = 0; +UNSUPPORTED("8oxob1qbbkbjh0jjcogk42jfl"); // for (e = agfstedge(g, n); e; e = agnxtedge(g, e, n)) { +UNSUPPORTED("4gy7rakqurxvound05crezka2"); // if (aghead(e) == agtail(e)) continue; /* Don't support same* for loops */ +UNSUPPORTED("2r5fkddp1ey0fvpok2scgkk99"); // if (aghead(e) == n && E_samehead && +UNSUPPORTED("d38ofiemhq37ykyauh9wync84"); // (id = agxget(e, E_samehead))[0]) +UNSUPPORTED("18y7dy98psh7ultlx0jugsfu2"); // n_samehead = sameedge(samehead, n_samehead, n, e, id); +UNSUPPORTED("5snv0fee5roi91irdwv8x51xi"); // else if (agtail(e) == n && E_sametail && +UNSUPPORTED("8xvjbvzldkn1yksprzfexgsjs"); // (id = agxget(e, E_sametail))[0]) +UNSUPPORTED("cdn1fgq1pke9ekyar2b4r6e91"); // n_sametail = sameedge(sametail, n_sametail, n, e, id); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c96gtgvp5uw8ktp389l2s9l4u"); // for (i = 0; i < n_samehead; i++) { +UNSUPPORTED("b2s9feywib1q9pxw4h31yz6dk"); // if (samehead[i].l.size > 1) +UNSUPPORTED("1xvsmwfz2hihjki8tsqiaa1g8"); // sameport(n, &samehead[i].l, samehead[i].arr_len); +UNSUPPORTED("cpzvkkchr60qet357b9gg1e5q"); // free_list(samehead[i].l); +UNSUPPORTED("6cnsuklvjftdyhzat6za4qggi"); // /* I sure hope I don't need to free the char* id */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9ktz8j6cseb5w7jkfhrj5r19t"); // for (i = 0; i < n_sametail; i++) { +UNSUPPORTED("5vcqm1irqrqcg4f6ldrqkikq8"); // if (sametail[i].l.size > 1) +UNSUPPORTED("dcjzqns8bm1o766uqi8dy72qf"); // sameport(n, &sametail[i].l, sametail[i].arr_len); +UNSUPPORTED("13a7frulpyheo0h4ajbfja7ph"); // free_list(sametail[i].l); +UNSUPPORTED("6cnsuklvjftdyhzat6za4qggi"); // /* I sure hope I don't need to free the char* id */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("eu2yvovb9xx4rzic3gllij2bv","dot_sameports"); +} +} + + + + +//3 e6phoefj4ujntgmpiclbnmliw +// static int sameedge(same_t * same, int n_same, node_t * n, edge_t * e, char *id) +public static Object sameedge(Object... arg) { +UNSUPPORTED("4pviw1spiyvhdz8yvl4ho6qkx"); // static int sameedge(same_t * same, int n_same, node_t * n, edge_t * e, char *id) +UNSUPPORTED("bz7wamuuo5855unp564487v13"); // /* register E in the SAME structure of N under ID. Uses static int N_SAME */ +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ddmbnep3k060w2rgslisky5vw"); // int i, sflag, eflag, flag; +UNSUPPORTED("4yhtj0buzrukmv0lwrz77s5oa"); // for (i = 0; i < n_same; i++) +UNSUPPORTED("6htdinsa3h8aamp1e6pvd6ig5"); // if ((*(same[i].id)==*(id)&&!strcmp(same[i].id,id))) { +UNSUPPORTED("bqrcn2qjykhnd6fuwneng85h"); // elist_append(e, same[i].l); +UNSUPPORTED("g5anfkdhikcxt42clvstq6hm"); // goto set_arrow; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8ac5s7v71vxuj2d2r4t989b1c"); // if (++n_same > 5) { +UNSUPPORTED("c29filv0jivh50blpbuqjk5ib"); // n_same--; +UNSUPPORTED("3uf43hfdusyzm1vp3dq12qu29"); // agerr(AGERR, "too many (> %d) same{head,tail} groups for node %s\n", +UNSUPPORTED("ciwytw61x3j4anugbarxaa7m"); // 5, agnameof(n)); +UNSUPPORTED("3lrnrroeosc48ilq0azgtzyna"); // return n_same; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("36d7os443e3k5gf7g7zvi3vfs"); // alloc_elist(1, same[i].l); +UNSUPPORTED("3s0n702bprlxue4xtghqv3nad"); // elist_fastapp(e, same[i].l); +UNSUPPORTED("cwxcw0cnsxpwkd7l94pmw1dfg"); // same[i].id = id; +UNSUPPORTED("4y2b9aw2a57zud1ncpiw2fihn"); // same[i].n_arr = 0; +UNSUPPORTED("2lemlhm6qdqemg83e6xwyzd01"); // same[i].arr_len = 0; +UNSUPPORTED("3k68ve2sycumnr4ncfzymgyli"); // set_arrow: +UNSUPPORTED("4028w60fcyzgcb6qh4kf8090j"); // arrow_flags(e, &sflag, &eflag); +UNSUPPORTED("1rkfoax4tin2ccbtpc8w1tnpv"); // if ((flag = aghead(e) == n ? eflag : sflag)) +UNSUPPORTED("bhh3lvo0knve8fiod7js8o8oy"); // same[i].arr_len = +UNSUPPORTED("b7yh5042d5o8u6iso9bm39glf"); // /* only consider arrows if there's exactly one arrow */ +UNSUPPORTED("5r1jxkep2wvpcpjz1e6n0dxo7"); // (++same[i].n_arr == 1) ? arrow_length(e, flag) : 0; +UNSUPPORTED("59a2z18u4tje6r407a6psdqy8"); // return n_same; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2mnqx0mihpyo94rckzyvqd3ha +// static void sameport(node_t * u, elist * l, double arr_len) +public static Object sameport(Object... arg) { +UNSUPPORTED("5h4o73bwixguohs97owrtr8ef"); // static void sameport(node_t * u, elist * l, double arr_len) +UNSUPPORTED("d5nznmmgnjszlfjdd61kps3jx"); // /* make all edges in L share the same port on U. The port is placed on the +UNSUPPORTED("bo9mbi1sf1ycc8zr8zucow3sz"); // node boundary and the average angle between the edges. FIXME: this assumes +UNSUPPORTED("4jpc10q4iiglyfgqc4t0rvtce"); // naively that the edges are straight lines, which is wrong if they are long. +UNSUPPORTED("wh2ex8xlk21eu1y33pacj3v2"); // In that case something like concentration could be done. +UNSUPPORTED("4c9tqu2byiozzo2mzc1fbvda9"); // An arr_port is also computed that's ARR_LEN away from the node boundary. +UNSUPPORTED("atdcc5pbds8mqzssaq6v0r6rw"); // It's used for edges that don't themselves have an arrow. +UNSUPPORTED("bnetqzovnscxile7ao44kc0qd"); // */ +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aigogf44ojtcesuy4xs7inqbn"); // node_t *v; +UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("e39yybz8f8dk5960upp4t7e85"); // double x = 0, y = 0, x1, y1, x2, y2, r; +UNSUPPORTED("cmzlbdlia0ky3ulmkmhw731vo"); // port prt; +UNSUPPORTED("lnwbe9uftcv8uw5w72tyaim6"); // int sflag, eflag; +UNSUPPORTED("3s75qjxnr416bs4xwntk5wjey"); // /* Compute the direction vector (x,y) of the average direction. We compute +UNSUPPORTED("168uvy6red5coj19cfwdg74w4"); // with direction vectors instead of angles because else we have to first +UNSUPPORTED("byd7rdw7ogomu0h8xa3cngptx"); // bring the angles within PI of each other. av(a,b)!=av(a,b+2*PI) */ +UNSUPPORTED("7qdtxp882tja3q4pjpimsdpz2"); // for (i = 0; i < l->size; i++) { +UNSUPPORTED("9a2w9ypg4zbrmt9mwxerl9ku9"); // e = l->list[i]; +UNSUPPORTED("dmcddmsjj52vhbo0p72d20r7x"); // if (aghead(e) == u) +UNSUPPORTED("4gg5n60ynsciy3te5bmvsjdu0"); // v = agtail(e); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("39bh91n8ucstjr8vmtx3ynvcd"); // v = aghead(e); +UNSUPPORTED("3bzvithkkr721ghsi2ljswz41"); // x1 = ND_coord(v).x - ND_coord(u).x; +UNSUPPORTED("2b884aalfpupcphtkwlw7fh1p"); // y1 = ND_coord(v).y - ND_coord(u).y; +UNSUPPORTED("2bo8vt6om92qnyd8ajsur7839"); // r = hypot(x1, y1); +UNSUPPORTED("8ldeax6x9cgrmbfybuxbl5n3o"); // x += x1 / r; +UNSUPPORTED("lvaxvfnj6g12uz2apxvc32bt"); // y += y1 / r; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a1mnn3lz9vym0mycdnjtnqt50"); // r = hypot(x, y); +UNSUPPORTED("en33l6y6hjb8cbouawh4qgny1"); // x /= r; +UNSUPPORTED("7ogy0bdt0ghq60m7dyzb48vku"); // y /= r; +UNSUPPORTED("1zwmby4z9dnptpyvedi7zqx1y"); // /* (x1,y1),(x2,y2) is a segment that must cross the node boundary */ +UNSUPPORTED("aezmu3kg51jsv6vuj8yl2vgx0"); // x1 = ND_coord(u).x; +UNSUPPORTED("b9lds1fhngov0656kxk71v6o"); // y1 = ND_coord(u).y; /* center of node */ +UNSUPPORTED("a47id67bq23txqyol6w89ohg8"); // r = MAX(ND_lw(u) + ND_rw(u), ND_ht(u) + GD_ranksep(agraphof(u))); /* far away */ +UNSUPPORTED("632ifec281b8hg0vql6w66fd0"); // x2 = x * r + ND_coord(u).x; +UNSUPPORTED("tpm4a8o4c87dctdvop70l3gg"); // y2 = y * r + ND_coord(u).y; +UNSUPPORTED("9axcwk1yl7elzq5ch7zzsg2b"); // { /* now move (x1,y1) to the node boundary */ +UNSUPPORTED("6qp76u7xiuyi81ocft3zna7rw"); // pointf curve[4]; /* bezier control points for a straight line */ +UNSUPPORTED("d2banip9m2nhni4tcg0ub95sb"); // curve[0].x = x1; +UNSUPPORTED("jy2q28s2gzpbigtocfoo6cy6"); // curve[0].y = y1; +UNSUPPORTED("90jm80vushtpjetfmrlks5tr6"); // curve[1].x = (2 * x1 + x2) / 3; +UNSUPPORTED("ah6xwuv1rqq311cmwhnrs4p7g"); // curve[1].y = (2 * y1 + y2) / 3; +UNSUPPORTED("5nzdtvblt406q4j887woceaso"); // curve[2].x = (2 * x2 + x1) / 3; +UNSUPPORTED("8ccq8nqc6cwcgqyrls16i5n1x"); // curve[2].y = (2 * y2 + y1) / 3; +UNSUPPORTED("9e73i3zoi98jcem56ovsw95mw"); // curve[3].x = x2; +UNSUPPORTED("bt1idr0p5w37ehw0ca5qvh2d0"); // curve[3].y = y2; +UNSUPPORTED("4hvdnsqv9gvg89n449ivew89w"); // shape_clip(u, curve); +UNSUPPORTED("e8zqbvvz0hnmxynqrsi4tq6z9"); // x1 = curve[0].x - ND_coord(u).x; +UNSUPPORTED("10uhdsyhabakyucrrlkpxmy39"); // y1 = curve[0].y - ND_coord(u).y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ftxzqcd66xy9t3i1shc08phg"); // /* compute PORT on the boundary */ +UNSUPPORTED("egqrua11zla4ilqnv8fe2rqa9"); // prt.p.x = ROUND(x1); +UNSUPPORTED("3j43h2ta90714rhr89dxd9bly"); // prt.p.y = ROUND(y1); +UNSUPPORTED("72f3ncaut57fflmrrrd7g625i"); // prt.bp = 0; +UNSUPPORTED("86dw0xu09q0vf963rwyhthsga"); // prt.order = +UNSUPPORTED("bi7e99txixk5vn16uz1ewze60"); // (256 * (ND_lw(u) + prt.p.x)) / (ND_lw(u) + ND_rw(u)); +UNSUPPORTED("2ssajop92yd2a8y22o22ea36z"); // prt.constrained = 0; +UNSUPPORTED("6oy9nbi9ensh5cuoda16glfkk"); // prt.defined = NOT(0); +UNSUPPORTED("9vfrhc8s3bav5vsioug70ec8a"); // prt.clip = 0; +UNSUPPORTED("58u5npq8vw06285kpx39zg9us"); // prt.dyna = 0; +UNSUPPORTED("26hzjlrn2f97g04rs41bxd6cp"); // prt.theta = 0; +UNSUPPORTED("6r9ivoxmq49o3gv1yto4zyvi3"); // prt.side = 0; +UNSUPPORTED("aujriwmmb49o2fxrmsjoedap6"); // prt.name = NULL; +UNSUPPORTED("3ff91qop4adzc4f4h1lnljqyp"); // /* assign one of the ports to every edge */ +UNSUPPORTED("7qdtxp882tja3q4pjpimsdpz2"); // for (i = 0; i < l->size; i++) { +UNSUPPORTED("9a2w9ypg4zbrmt9mwxerl9ku9"); // e = l->list[i]; +UNSUPPORTED("84n057olv326z2v8k45silocb"); // arrow_flags(e, &sflag, &eflag); +UNSUPPORTED("2csv6mfvww0031xz126km61c5"); // for (; e; e = ED_to_virt(e)) { /* assign to all virt edges of e */ +UNSUPPORTED("9rrwjg2l48y4n9w7ymrr9udrs"); // for (f = e; f; +UNSUPPORTED("cd9trmrmocvmp9gcd5yhpi8j2"); // f = ED_edge_type(f) == 1 && +UNSUPPORTED("c609sm2glgudtov2qxajroomq"); // ND_node_type(aghead(f)) == 1 && +UNSUPPORTED("ez0iln0wthfexsk2addlvf968"); // ND_out(aghead(f)).size == 1 ? +UNSUPPORTED("3c7kng7zq5tuk7q0g4368f83a"); // ND_out(aghead(f)).list[0] : NULL) { +UNSUPPORTED("au8chupq2urgaefasiz9q9p4"); // if (aghead(f) == u) +UNSUPPORTED("9n4w8egcjmjwmkgptavq9x8on"); // ED_head_port(f) = prt; +UNSUPPORTED("ckzw343313p1917g5yol8mget"); // if (agtail(f) == u) +UNSUPPORTED("es5btobfx5kd4ziscx7ym4kf7"); // ED_tail_port(f) = prt; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("9rrwjg2l48y4n9w7ymrr9udrs"); // for (f = e; f; +UNSUPPORTED("cd9trmrmocvmp9gcd5yhpi8j2"); // f = ED_edge_type(f) == 1 && +UNSUPPORTED("9po6nu7kgaeigs2afm08whv2o"); // ND_node_type(agtail(f)) == 1 && +UNSUPPORTED("49xjryc5nmnom413y2dy0v7gh"); // ND_in(agtail(f)).size == 1 ? +UNSUPPORTED("91kaqt4bbz94s6de4uf9wept7"); // ND_in(agtail(f)).list[0] : NULL) { +UNSUPPORTED("au8chupq2urgaefasiz9q9p4"); // if (aghead(f) == u) +UNSUPPORTED("9n4w8egcjmjwmkgptavq9x8on"); // ED_head_port(f) = prt; +UNSUPPORTED("ckzw343313p1917g5yol8mget"); // if (agtail(f) == u) +UNSUPPORTED("es5btobfx5kd4ziscx7ym4kf7"); // ED_tail_port(f) = prt; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d7reofoel6ngjj7zza32cdi0w"); // ND_has_port(u) = NOT(0); /* kinda pointless, because mincross is already done */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/fdpgen/clusteredges__c.java plantuml-8039/src/gen/lib/fdpgen/clusteredges__c.java --- plantuml-8024/src/gen/lib/fdpgen/clusteredges__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/fdpgen/clusteredges__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,960 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.fdpgen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class clusteredges__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cazo65w26cb7zxlhvziqega3u +// static void addObj(objlist * l, Ppoly_t * obj) +public static Object addObj(Object... arg) { +UNSUPPORTED("68ir75ozfvgoainxyrw5vv6u"); // static void addObj(objlist * l, Ppoly_t * obj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("56aokw43ym6k5yrowmz4auad6"); // if (l->sz == l->cnt) { +UNSUPPORTED("9w4469475x6atzc9cxogvrgf0"); // if (l->obs) { +UNSUPPORTED("aodoni8dj9928k2u2pvprijoo"); // l->sz *= 2; +UNSUPPORTED("9lucolec5stqwgfeiajr80rd0"); // l->obs = RALLOC(l->sz, l->obs, Ppoly_t *); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("6155khghdropbhobvg4z91wtz"); // l->obs = (Ppoly_t **)gmalloc((100)*sizeof(Ppoly_t *)); +UNSUPPORTED("2kyhgdz2n2rqq9v50pve6mrcc"); // l->sz = 100; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9fec1if3p7yqy365qx9r0tgnd"); // l->obs[l->cnt++] = obj; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2hc0lli1r9xqarid48ykcsmrb +// static void freeObjlist(objlist * l) +public static Object freeObjlist(Object... arg) { +UNSUPPORTED("5rlrs2szsmt9tyh4nxy15b6nm"); // static void freeObjlist(objlist * l) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7e3dhprbb95exqm0bcdah0xm"); // if (l) { +UNSUPPORTED("497v1edoyig8dqncswxyve9hv"); // free(l->obs); +UNSUPPORTED("asw773mx15gzsz3jglklf2cy0"); // free(l); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 db462cnfr9mcvhrrbcq5kjb3c +// static void resetObjlist(objlist * l) +public static Object resetObjlist(Object... arg) { +UNSUPPORTED("bkfjyf4x65xmnacovlbfl7irl"); // static void resetObjlist(objlist * l) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("sdwhemlfzdg8pxghx7xntzqk"); // l->cnt = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7u5410kfyxwz50qdc35k0biva +// static Ppoly_t *makeClustObs(graph_t * g, expand_t* pm) +public static Object makeClustObs(Object... arg) { +UNSUPPORTED("1atdy1ccj3vpva8swri61dxuh"); // static Ppoly_t *makeClustObs(graph_t * g, expand_t* pm) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("n3ntnupxz7s82qxid8l5zqh7"); // Ppoly_t *obs = (Ppoly_t*)zmalloc(sizeof(Ppoly_t)); +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("bkqli6ffyitb67sucragfrm1n"); // boxf newbb; +UNSUPPORTED("21zakluzci2pyeegdamklrhah"); // Ppoint_t ctr; +UNSUPPORTED("3pb1rp6yt77fdctds9bv6t2q4"); // bb = GD_bb(g); +UNSUPPORTED("76n2ysymty762fc53vtvx69tb"); // obs->pn = 4; +UNSUPPORTED("1nhlegzatoioft31pryhg7git"); // obs->ps = (Ppoint_t*)zmalloc((4)*sizeof(Ppoint_t)); +UNSUPPORTED("6kdtobe8mpjvnkwsrxtbqzry0"); // ctr.x = (bb.UR.x + bb.LL.x) / 2.0; +UNSUPPORTED("52v681rkx2cyhu5tj7bl6b87q"); // ctr.y = (bb.UR.y + bb.LL.y) / 2.0; +UNSUPPORTED("b9ylh019dga6kmwgg8s918v2b"); // if (pm->doAdd) { +UNSUPPORTED("2jzl6aoalcx6szthm1yfscowk"); // newbb.UR.x = bb.UR.x + pm->x; +UNSUPPORTED("ti2qjcce1u6duftqdkaez2ha"); // newbb.UR.y = bb.UR.y + pm->y; +UNSUPPORTED("4xk2pvd5wdu2oqhcd96hku34h"); // newbb.LL.x = bb.LL.x - pm->x; +UNSUPPORTED("a194yx3lgzokre6nw7edhwl0g"); // newbb.LL.y = bb.LL.y - pm->y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("9iveb47ye8bn2ufeytxql6j8o"); // double deltax = pm->x - 1.0; +UNSUPPORTED("33o91x85qnvttc9p0urfisnn9"); // double deltay = pm->y - 1.0; +UNSUPPORTED("57q4i6f9mewdma9hnw006mhcf"); // newbb.UR.x = pm->x * bb.UR.x - deltax * ctr.x; +UNSUPPORTED("3anxiwmvjxkga8exnqnpa7ryy"); // newbb.UR.y = pm->y * bb.UR.y - deltay * ctr.y; +UNSUPPORTED("6lsi4f3jib8g8rgb30okpoaiq"); // newbb.LL.x = pm->x * bb.LL.x - deltax * ctr.x; +UNSUPPORTED("aumjykojfbh0nmb4yjmj24v4g"); // newbb.LL.y = pm->y * bb.LL.y - deltay * ctr.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("wl74iy49jslxcn6y04gz6lh6"); // /* CW order */ +UNSUPPORTED("6lurznrzif0rqk9j3nnydvf9l"); // obs->ps[0].x = newbb.LL.x; +UNSUPPORTED("ezndie34wvqtl89309tiv0qzm"); // obs->ps[0].y = newbb.LL.y; +UNSUPPORTED("alhjwe58p3zhewutc80g6owl"); // obs->ps[1].x = newbb.LL.x; +UNSUPPORTED("b92a4mym5jehuzrijjz8fx1tf"); // obs->ps[1].y = newbb.UR.y; +UNSUPPORTED("7zlq35pok991k3uqnzlrjrd22"); // obs->ps[2].x = newbb.UR.x; +UNSUPPORTED("dicjthx9ai41sc20rp2zrdy2c"); // obs->ps[2].y = newbb.UR.y; +UNSUPPORTED("9eh3ezpywhc0lvjx9azkomdp2"); // obs->ps[3].x = newbb.UR.x; +UNSUPPORTED("89s7csqkxbkhvlh3ryr2mpej"); // obs->ps[3].y = newbb.LL.y; +UNSUPPORTED("6h5c8fawl46f3z6k52c5evlck"); // return obs; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2tuxeyw0y73k5wh1niznsmt5r +// static void addGraphObjs(objlist * l, graph_t * g, void *tex, void *hex, expand_t* pm) +public static Object addGraphObjs(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("9ppvdniopgcaxvsicl8xxyash"); // addGraphObjs(objlist * l, graph_t * g, void *tex, void *hex, expand_t* pm) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5wyi0wasd5kecf6rhsqdjk7v2"); // graph_t *sg; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("afg3odhlqg7cs72be9dopel53"); // if (((ND_clust(n)) == g) && (n != tex) && (n != hex) +UNSUPPORTED("5kytxdtwbd0v3ca7a34qluom7"); // && !(ND_clustnode(n))) { +UNSUPPORTED("1o7vmgytpeh209omedfz7wilg"); // addObj(l, makeObstacle(n, pm, 0)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7naa6f8pevjidfr7m41eli6xj"); // for (i = 1; i <= GD_n_cluster(g); i++) { +UNSUPPORTED("5va1fb20aidhd4ogxkydxr82v"); // sg = GD_clust(g)[i]; +UNSUPPORTED("b98h20dc2b9r360etgk7ifsts"); // if ((sg != tex) && (sg != hex)) { +UNSUPPORTED("4luk87lqntyj05goqup0cvyly"); // addObj(l, makeClustObs(sg, pm)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dnf5oh64u2taegrsdrqjwzjtl +// static void raiseLevel(objlist * l, int maxlvl, void *ex, int minlvl, graph_t ** gp, expand_t* pm) +public static Object raiseLevel(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("cffe7klesfnzw4ihflgw1kcx2"); // raiseLevel(objlist * l, int maxlvl, void *ex, int minlvl, graph_t ** gp, +UNSUPPORTED("cv6gwbc45ynoxegpiqrlc2xmc"); // expand_t* pm) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aaouwma9zh64fj26pawnrmy0p"); // graph_t *g = *gp; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("eh1xg7smmmszocw99zkv3a594"); // for (i = maxlvl; i > minlvl; i--) { +UNSUPPORTED("4o6m0fsp2ufber2muchghzceh"); // addGraphObjs(l, g, ex, NULL, pm); +UNSUPPORTED("2xhhwh2osv9qp0iz6tkqhkbjf"); // ex = g; +UNSUPPORTED("3roly1bhe7j0bcti8qwa0ybiw"); // g = (((gdata*)(GD_alg(g)))->parent); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bupe6i1evov3u4g754y05h4c3"); // *gp = (graph_t *) ex; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1j5lpgrus3ksq04e4n13s4yfg +// static objlist *objectList(edge_t * ep, expand_t* pm) +public static Object objectList(Object... arg) { +UNSUPPORTED("afy03o9x8nl4yzvaizo1dscco"); // static objlist *objectList(edge_t * ep, expand_t* pm) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("75zd1aauvrffvfdpyfwwcoswd"); // node_t *h = aghead(ep); +UNSUPPORTED("br3wb25zvrbmmm732vy1lixsy"); // node_t *t = agtail(ep); +UNSUPPORTED("hf0qw8fizjiqe82qyzeqwkfg"); // graph_t *hg = (ND_clust(h)); +UNSUPPORTED("4wvcxq0r8t7vnjbb8f985m0r4"); // graph_t *tg = (ND_clust(t)); +UNSUPPORTED("6tujxck9mfc4xr1sngv012c0q"); // int hlevel; +UNSUPPORTED("a4drnmepoxpz8ds5apcwe53nc"); // int tlevel; +UNSUPPORTED("b963c6bsts6y4pmam1dfutk1q"); // void *hex; /* Objects to be excluded from list */ +UNSUPPORTED("39nw57ol4dfiath5kwuh1ms6j"); // void *tex; +UNSUPPORTED("evjwqb60yu11cr2t3w4w8gz9q"); // objlist *list = (objlist*)zmalloc(sizeof(objlist)); +UNSUPPORTED("ehs9zskwfbobvbp4e1jc9gh2r"); // /* If either endpoint is a cluster node, we move up one level */ +UNSUPPORTED("dutddcq97o2fasizi03xeqj5k"); // if ((ND_clustnode(h))) { +UNSUPPORTED("bxzk3hw9ey0f3bfnv6wti4fk4"); // hex = hg; +UNSUPPORTED("augf1sgt6l2ix99x9b08g8wzz"); // hg = (((gdata*)(GD_alg(hg)))->parent); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("616d768zb2wgz3eg67szch1ld"); // hex = h; +UNSUPPORTED("bx8ud3i22jfi2yp76cyl0gz7z"); // if ((ND_clustnode(t))) { +UNSUPPORTED("bt0av95w1kbo7oy03hadoiwu7"); // tex = tg; +UNSUPPORTED("dgktvvmo6c3p47c8wk7x50sa1"); // tg = (((gdata*)(GD_alg(tg)))->parent); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("bt7neotqw8vmtctxgkppgj1vk"); // tex = t; +UNSUPPORTED("6jekyhq0r4t21vi40i2swnbbl"); // hlevel = (((gdata*)(GD_alg(hg)))->level); +UNSUPPORTED("4wub4zmd7w34rplc5o7l499wo"); // tlevel = (((gdata*)(GD_alg(tg)))->level); +UNSUPPORTED("4o25v8wcis0loju3kjakvcut0"); // if (hlevel > tlevel) { +UNSUPPORTED("abqhza09xtoj2awnzzuaj0uct"); // raiseLevel(list, hlevel, hex, tlevel, &hg, pm); +UNSUPPORTED("bxzk3hw9ey0f3bfnv6wti4fk4"); // hex = hg; +UNSUPPORTED("augf1sgt6l2ix99x9b08g8wzz"); // hg = (((gdata*)(GD_alg(hg)))->parent); +UNSUPPORTED("alm7w50a8u7dgdn5qzfgtx9l"); // } else if (tlevel > hlevel) { +UNSUPPORTED("c0ph47igemykx602d77ndmzr3"); // raiseLevel(list, tlevel, tex, hlevel, &tg, pm); +UNSUPPORTED("bt0av95w1kbo7oy03hadoiwu7"); // tex = tg; +UNSUPPORTED("dgktvvmo6c3p47c8wk7x50sa1"); // tg = (((gdata*)(GD_alg(tg)))->parent); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6gfz0blpmhfhryh0miheyhwmw"); // /* hg and tg always have the same level */ +UNSUPPORTED("4cqw2xpgdoy4yuz900dtzfr1r"); // while (hg != tg) { +UNSUPPORTED("80mk8v0cx150evwxng8ymnaz"); // addGraphObjs(list, hg, NULL, hex, pm); +UNSUPPORTED("1qlnt7mo46ts0saenbfjbofo5"); // addGraphObjs(list, tg, tex, NULL, pm); +UNSUPPORTED("bxzk3hw9ey0f3bfnv6wti4fk4"); // hex = hg; +UNSUPPORTED("augf1sgt6l2ix99x9b08g8wzz"); // hg = (((gdata*)(GD_alg(hg)))->parent); +UNSUPPORTED("bt0av95w1kbo7oy03hadoiwu7"); // tex = tg; +UNSUPPORTED("dgktvvmo6c3p47c8wk7x50sa1"); // tg = (((gdata*)(GD_alg(tg)))->parent); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("86qllxibrbyszf6r61j4hu0kl"); // addGraphObjs(list, tg, tex, hex, pm); +UNSUPPORTED("1a5vgaasp2bunvu19mvepzcny"); // return list; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dgkvqt2x290bk07kz6s531cuo +// int compoundEdges(graph_t * g, expand_t* pm, int edgetype) +public static Object compoundEdges(Object... arg) { +UNSUPPORTED("bvb0sqdwsn4omgjuez7agj54o"); // int compoundEdges(graph_t * g, expand_t* pm, int edgetype) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("8i0kwb8r6a2sj6nuvcy3bg9rx"); // node_t *head; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("7pmvaj5a5w3pee9zkh22s4jt5"); // edge_t *e0; +UNSUPPORTED("86j3yivva2m3p6g760sw6i0cg"); // objlist *objl = NULL; +UNSUPPORTED("djnngdue38swhvzvoqm5166v6"); // path *P = NULL; +UNSUPPORTED("dvk7iox35qj3qa3xbspg5hqnn"); // vconfig_t *vconfig; +UNSUPPORTED("en7ch189nkys76f42mlo1s5zz"); // int rv = 0; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("dgi8r72g1zk34a8ly7d64gncs"); // head = aghead(e); +UNSUPPORTED("7uq3zfs24n5p1ihf2wifv4b1l"); // if ((n == head) && ED_count(e)) { /* self arc */ +UNSUPPORTED("a5pr04ndliead24094tmar1ml"); // if (!P) { +UNSUPPORTED("3g11syr88ddnmz3lq6kmj0e3n"); // P = (path*)zmalloc(sizeof(path)); +UNSUPPORTED("8dqikeo83rdwy8rnrg37xxbk9"); // P->boxes = (boxf*)zmalloc((agnnodes(g) + 20 * 2 * 9)*sizeof(boxf)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("es85wqx90iunzzrxy2k42tf99"); // makeSelfArcs(P, e, GD_nodesep(g)); +UNSUPPORTED("cx6gnk6ll0lr8dfgovw0z3lur"); // } else if (ED_count(e)) { +UNSUPPORTED("eqplgkahppm0zko85vi46hab4"); // objl = objectList(e, pm); +UNSUPPORTED("6fd50jntewhnp34pz0b3aajmu"); // if (Plegal_arrangement(objl->obs, objl->cnt)) { +UNSUPPORTED("1qiv0092hkt9k6zxbquairfjf"); // vconfig = Pobsopen(objl->obs, objl->cnt); +UNSUPPORTED("dxywoqtwov4um1apdcswwb7zq"); // if (!vconfig) { +UNSUPPORTED("9xl0srrgybppyi6ol0y50yyy0"); // agerr(AGWARN, "compoundEdges: could not construct obstacles - falling back to straight line edges\n"); +UNSUPPORTED("cqc3m4qhi46li5mfx2qdexj8q"); // rv = 1; +UNSUPPORTED("91ilj0e8yph90t7k4ijuq5rb0"); // continue; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("3mulqmfnxjxs42xwnb59mqt6y"); // if (Verbose) +UNSUPPORTED("3iwc3dzplzj2jkbze5cd6zfh9"); // fprintf(stderr, +UNSUPPORTED("9iegisgtluexa2sr114kytpqc"); // "nodes touch - falling back to straight line edges\n"); +UNSUPPORTED("e6aksd0p810vl5p3c3h5lovai"); // rv = 1; +UNSUPPORTED("2yi9az7ibt7j9bwztjilyo0v2"); // continue; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("e4oyynu5hf90ng4f0r2us3wmc"); // /* For efficiency, it should be possible to copy the spline +UNSUPPORTED("36zsk1mialyq6t7ivlj6q1yhl"); // * from the first edge to the rest. However, one has to deal +UNSUPPORTED("f0ndikqn12reipr44xzqc0ykk"); // * with change in direction, different arrowheads, labels, etc. +UNSUPPORTED("edw1ss2r31mqgsvca2gowi52v"); // */ +UNSUPPORTED("1hznlgq1yzt68zolmi2w25f5w"); // for (e0 = e; e0; e0 = ED_to_virt(e0)) { +UNSUPPORTED("1y9zs9um7yp6dcgn46nvokkpe"); // ED_path(e0) = +UNSUPPORTED("4fkrs58bve6iqkgwp7h0bhgoi"); // getPath(e0, vconfig, 0, objl->obs, objl->cnt); +UNSUPPORTED("6bohug52xb2tutfbvdn6syse0"); // makeSpline(g, e0, objl->obs, objl->cnt, 0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("706x5p8ey0bol4upbc7p6frj3"); // resetObjlist(objl); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ofxvx8hqutive5l908wrhawa"); // freeObjlist(objl); +UNSUPPORTED("4hk7dqllv8ni5iyynz17a2zrw"); // if (P) { +UNSUPPORTED("cemgtepdat8xa7jzngmujlly1"); // free(P->boxes); +UNSUPPORTED("dgq5kszfp504quv2x88lenes3"); // free(P); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/fdpgen/comp__c.java plantuml-8039/src/gen/lib/fdpgen/comp__c.java --- plantuml-8024/src/gen/lib/fdpgen/comp__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/fdpgen/comp__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,801 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.fdpgen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class comp__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 exy2l03ceq9zw4vf01bbd4d3o +// typedef unsigned int packval_t + + + + +//3 3wxd4nol8sdk1izeau40e12lc +// static void dfs(Agraph_t * g, Agnode_t * n, Agraph_t * out, char *marks) +public static Object dfs(Object... arg) { +UNSUPPORTED("dwem5syem1fups7zf2l7f5y01"); // static void dfs(Agraph_t * g, Agnode_t * n, Agraph_t * out, char *marks) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("cbgfck2y57x0eyijt2684hs46"); // Agnode_t *other; +UNSUPPORTED("ezj8fvmaq6dn90bmzmo87qnm4"); // (marks[ND_id(n)]) = 1; +UNSUPPORTED("bgrddosnxu9lc4f03vw6vnggv"); // agsubnode(out,n,1); +UNSUPPORTED("dcuhjbsiioawp6zspvonwd4px"); // for (e = agfstedge(g, n); e; e = agnxtedge(g, e, n)) { +UNSUPPORTED("9lpc3hmx5rkbpyq1ngqm2e9ll"); // if ((other = agtail(e)) == n) +UNSUPPORTED("6r89rozzmm23ba9w3rvcsuqzj"); // other = aghead(e); +UNSUPPORTED("4iqzo6mw9ngjyk6xve5fxl3qj"); // if (!(marks[ND_id(other)])) +UNSUPPORTED("6yfk0mbr13kxutkwu7j7scg3z"); // dfs(g, other, out, marks); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 b0kgq3gcod0aeoboli87hdowh +// static int C_cnt = 0 + + + + +//3 dk8v4s29y4lqqa5yfgmgawohy +// graph_t **findCComp(graph_t * g, int *cnt, int *pinned) +public static Object findCComp(Object... arg) { +UNSUPPORTED("1t3w31ofjtfgxiomyr6leku62"); // graph_t **findCComp(graph_t * g, int *cnt, int *pinned) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("8uujemixuhlf040icq3zsh7j8"); // graph_t *subg; +UNSUPPORTED("78gq1jdufena2r9rigvse5178"); // char name[128]; +UNSUPPORTED("azrybezo3qgwcugn67vwwsfjq"); // int c_cnt = 0; +UNSUPPORTED("f2dt0a0nzfee7j8nqcycasjdy"); // char *marks; +UNSUPPORTED("dj8wp6znctlnc9ae1rgvqwtj0"); // bport_t *pp; +UNSUPPORTED("8hqi7khjhietsxup488fqrvwe"); // graph_t **comps; +UNSUPPORTED("5wu5b4gtzhb4lm85gxf9z12lj"); // graph_t **cp; +UNSUPPORTED("92buvw4cj80pu14nq2qqel9ub"); // int pinflag = 0; +UNSUPPORTED("dq3faqa6qbjxl9chbr58vuex2"); // /* fprintf (stderr, "comps of %s starting at %d \n", g->name, c_cnt); */ +UNSUPPORTED("6kbc1217he2quh22i34jhmw22"); // marks = (char*)zmalloc((agnnodes(g))*sizeof(char)); /* freed below */ +UNSUPPORTED("989ybqq7bs6sjhctufsdu30y5"); // /* Create component based on port nodes */ +UNSUPPORTED("arzhsqp3brokvqx05l8jfw34z"); // subg = 0; +UNSUPPORTED("ac4pgb337ukder3sujg5h9q5t"); // if ((pp = (((gdata*)(GD_alg(g)))->ports))) { +UNSUPPORTED("9p8s2eohajaqdl4mczna0s983"); // sprintf(name, "cc%s_%d", agnameof(g), c_cnt++ + C_cnt); +UNSUPPORTED("9i5sv6x6r0p1qrp7ty1mc00ea"); // subg = agsubg(g, name,1); +UNSUPPORTED("5n5jfmilqbkyayq7lh6xh7s9m"); // agbindrec(subg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); +UNSUPPORTED("9yqqv6kvxc925xh9tnhrftd06"); // GD_alg(subg) = (void *) (gdata*)zmalloc(sizeof(gdata)); +UNSUPPORTED("4ociwu00qk6aoto1zgcrr4elp"); // (((gdata*)(GD_alg(subg)))->ports) = pp; +UNSUPPORTED("38c98uts6nnk0rayxcv13666d"); // (((gdata*)(GD_alg(subg)))->nports) = (((gdata*)(GD_alg(g)))->nports); +UNSUPPORTED("8g3u41gyjy3xgu6no88qltcot"); // for (; pp->n; pp++) { +UNSUPPORTED("2bjcen08xkp1cb1ru9ncv3ezs"); // if ((marks[ND_id(pp->n)])) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("d5txkv4bhocgj35bmkcm0b1vj"); // dfs(g, pp->n, subg, marks); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2nfrlvbwd355cpcvpx1uolgpd"); // /* Create/extend component based on pinned nodes */ +UNSUPPORTED("bkxd6kh6mxs8em68sr95l9jyq"); // /* Note that ports cannot be pinned */ +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("bdqqgre8keh4qdlqrfhuh8cpb"); // if ((marks[ND_id(n)])) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("agw2fc76qwvm6ocrl4vmuiapv"); // if (ND_pinned(n) != 3) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("7l15bq07ecygidzbwavui39f0"); // if (!subg) { +UNSUPPORTED("2cz3u5akxwje0q6gj4ok1cdzf"); // sprintf(name, "cc%s_%d", agnameof(g), c_cnt++ + C_cnt); +UNSUPPORTED("275mxlgljq0ig5t02qautmnhy"); // subg = agsubg(g, name,1); +UNSUPPORTED("6vwf6t5b0bzzu3xsveq6yyuvo"); // agbindrec(subg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); +UNSUPPORTED("esue60nq75q8btod0krfr7vie"); // GD_alg(subg) = (void *) (gdata*)zmalloc(sizeof(gdata)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ab5icv3nb6wdj9zx38y7q1af3"); // pinflag = 1; +UNSUPPORTED("ee35kbvoh52bly4vf6i610a1l"); // dfs(g, n, subg, marks); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dzulue3lttopupuz464kf1lm0"); // if (subg) +UNSUPPORTED("8gblfruxmc6fa94vsjn14gh7k"); // nodeInduce(subg); +UNSUPPORTED("9xhrumkhlsx4ct87at2fnxvje"); // /* Pick up remaining components */ +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("bdqqgre8keh4qdlqrfhuh8cpb"); // if ((marks[ND_id(n)])) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("ddp8f7g25wx0qchz3a2w0kgt7"); // sprintf(name, "cc%s+%d", agnameof(g), c_cnt++ + C_cnt); +UNSUPPORTED("9i5sv6x6r0p1qrp7ty1mc00ea"); // subg = agsubg(g, name,1); +UNSUPPORTED("3r9xp1t6fdie66rze9q0tv6v0"); // agbindrec(subg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); //node custom data +UNSUPPORTED("9yqqv6kvxc925xh9tnhrftd06"); // GD_alg(subg) = (void *) (gdata*)zmalloc(sizeof(gdata)); +UNSUPPORTED("ee35kbvoh52bly4vf6i610a1l"); // dfs(g, n, subg, marks); +UNSUPPORTED("8gblfruxmc6fa94vsjn14gh7k"); // nodeInduce(subg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("18dltpx3tu2pqvilaktop4ad5"); // free(marks); +UNSUPPORTED("cu7zqck3rhc3afqhr0foi0m05"); // C_cnt += c_cnt; +UNSUPPORTED("a7n5zesoh5kzlhdz7rg32y9hu"); // if (cnt) +UNSUPPORTED("23d0dv93w9s983tu0k7elewtw"); // *cnt = c_cnt; +UNSUPPORTED("6howpdzencjv7b5n10thwlg1d"); // if (pinned) +UNSUPPORTED("6kh8e01nm3b6v444qvzsxpb9t"); // *pinned = pinflag; +UNSUPPORTED("d5ngoekhsqlhhhlia2x11hgqx"); // /* freed in layout */ +UNSUPPORTED("39hmtpztikfd0e1o8smgla7kf"); // comps = cp = (graph_t **)zmalloc((c_cnt + 1)*sizeof(graph_t *)); +UNSUPPORTED("92vjk6rjnnnji7bcczz51lwfx"); // for (subg = agfstsubg(g); subg; subg = agnxtsubg(subg)) { +UNSUPPORTED("d3hurhvw5zilk1i6yygjxph4i"); // *cp++ = subg; +UNSUPPORTED("cd4x12weu20efbi2fts8474md"); // c_cnt--; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1l6qy19soaj9ggx3hd2btwwz4"); // assert(c_cnt == 0); +UNSUPPORTED("dzrgvvzfrht1b5nmfcyc94b0o"); // *cp = 0; +UNSUPPORTED("745wm3c5sblj16fadasnxf1r0"); // return comps; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/fdpgen/dbg__c.java plantuml-8039/src/gen/lib/fdpgen/dbg__c.java --- plantuml-8024/src/gen/lib/fdpgen/dbg__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/fdpgen/dbg__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,44 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.fdpgen; + +public class dbg__c { +} diff -Nru plantuml-8024/src/gen/lib/fdpgen/fdpinit__c.java plantuml-8039/src/gen/lib/fdpgen/fdpinit__c.java --- plantuml-8024/src/gen/lib/fdpgen/fdpinit__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/fdpgen/fdpinit__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,870 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.fdpgen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class fdpinit__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f3e0cgrfbxtmm17pgxr2cduj +// static void initialPositions(graph_t * g) +public static Object initialPositions(Object... arg) { +UNSUPPORTED("esw1s5txtkrnu1rq1heu3tcse"); // static void initialPositions(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("embgw30vqico8gdmn2r6ywcb0"); // node_t *np; +UNSUPPORTED("74210hb6op2fnqz19qbx7ngwz"); // attrsym_t *possym; +UNSUPPORTED("4xvjup0t4i1teu5lezu8k7ebt"); // attrsym_t *pinsym; +UNSUPPORTED("evvfote9pox5gpnsuk75gu9zi"); // double *pvec; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("wrvu9u7a8j6i6y6552zncxfk"); // char c; +UNSUPPORTED("1b5dcjh2a9g5zp8c3gpg13sg1"); // possym = agattr(g,AGNODE, "pos", NULL); +UNSUPPORTED("3eb0ujxfacue4y5vg6rgwnsir"); // if (!possym) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("4eh9a5dorzn9gh1cq1joh60da"); // pinsym = agattr(g,AGNODE, "pin", NULL); +UNSUPPORTED("9p1urpmsbdtel9f0hyftha4vp"); // for (i = 0; (np = GD_neato_nlist(g)[i]); i++) { +UNSUPPORTED("82hus3nxk252ryfmgsj0jd4oe"); // p = agxget(np, possym); +UNSUPPORTED("2jgl1gjczjnfj98lx3fumetzb"); // if (p[0]) { +UNSUPPORTED("nlhfvpbbwzdx6jcdqg6ibdes"); // pvec = ND_pos(np); +UNSUPPORTED("8wtaqjit9awt7xd08vuifknry"); // c = '\0'; +UNSUPPORTED("1u1tfrl07xhxpprnxuslpv871"); // if (sscanf(p, "%lf,%lf%c", pvec, pvec + 1, &c) >= 2) { +UNSUPPORTED("aywxrq10m6uazx25fiwcfs46u"); // if (PSinputscale > 0.0) { +UNSUPPORTED("7si28y5woaw38yg693vh15d32"); // int i; +UNSUPPORTED("bvgbqo619j5i3oq2sqvbzu4y2"); // for (i = 0; i < 2; i++) +UNSUPPORTED("2oeepwgdoynykl1trrb0p94wm"); // pvec[i] = pvec[i] / PSinputscale; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7djjlwbyom7gt69719c2ge441"); // ND_pinned(np) = 1; +UNSUPPORTED("bjsz2shzg2mue2wxe8yrvtkrp"); // if ((c == '!') +UNSUPPORTED("238kv6u6hkwuawnjm6dx78ej9"); // || (pinsym && mapbool(agxget(np, pinsym)))) +UNSUPPORTED("5vhe98mbf3x3wwvl7dgaiyysi"); // ND_pinned(np) = 3; +UNSUPPORTED("afk9bpom7x393euamnvwwkx6b"); // } else +UNSUPPORTED("18zn34qcs4vsdhhh831gn9vc9"); // fprintf(stderr, +UNSUPPORTED("cvnihzmupmxdhfo91phffr4iz"); // "Warning: node %s, position %s, expected two floats\n", +UNSUPPORTED("8vr7f9s0nt8dkq7nt7fi7td6m"); // agnameof(np), p); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eycycj92hbah3h1imwibcgg3l +// static void init_edge(edge_t * e, attrsym_t * E_len) +public static Object init_edge(Object... arg) { +UNSUPPORTED("5chfc4167yxwq5u0yf9jtf5am"); // static void init_edge(edge_t * e, attrsym_t * E_len) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9egiculslq6sjkjl1r3i2xhyw"); // agbindrec(e, "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); //node custom data +UNSUPPORTED("6asvm3mgvrgkcyl9tgnl3h63l"); // ED_factor(e) = late_double(e, E_weight, 1.0, 0.0); +UNSUPPORTED("5874wxxfzdznlt3lo55st6eph"); // ED_dist(e) = late_double(e, E_len, fdp_parms->K, 0.0); +UNSUPPORTED("dwvquwksg1mxo6dxl7r7gaxpe"); // common_init_edge(e); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 egbpmyvr9o80vaci8zr1y9n7g +// static void init_node(node_t * n) +public static Object init_node(Object... arg) { +UNSUPPORTED("dfmrunqjpz6te9temyeon7r7v"); // static void init_node(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8n5p3ldt0mx3i3tvjjmpm15le"); // common_init_node(n); +UNSUPPORTED("ayxex1urbqyoea700lpxltl6l"); // ND_pos(n) = (double*)zmalloc((GD_ndim(agraphof(n)))*sizeof(double)); +UNSUPPORTED("axannqky1100m3o7i9up0h4i7"); // gv_nodesize(n, GD_flip(agraphof(n))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 492ger2hkdmjpreugs1rmtqii +// void fdp_init_node_edge(graph_t * g) +public static Object fdp_init_node_edge(Object... arg) { +UNSUPPORTED("7ng2gj5lv35z4xskaobhf7j7m"); // void fdp_init_node_edge(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6h1xqgehy44gsat105vaw9u8e"); // attrsym_t *E_len; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("5u3xxjr10ujhhn53156wch9ow"); // int nn; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("990mg1wm4x3ml804cdp4f62sb"); // /* ndata* alg; */ +UNSUPPORTED("c23zlqic6a88lbl9vw9fsm73r"); // aginit(g, AGNODE, "Agnodeinfo_t", sizeof(Agnodeinfo_t), NOT(0)); +UNSUPPORTED("erjahdn9un5js4yg5l9izpj7u"); // processClusterEdges(g); +UNSUPPORTED("4d0qmlrvhtb8f9v7jt8x6o30n"); // /* Get node count after processClusterEdges(), as this function may +UNSUPPORTED("39up5s15uvyc7wguh1chdya40"); // * add new nodes. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("6r0jyge14l6tevl2zdwwqb38s"); // nn = agnnodes(g); +UNSUPPORTED("1jmigyhvbvc50ig7tvyz8r3h0"); // /* alg = N_NEW(nn, ndata); */ +UNSUPPORTED("45z3wlw30d4v3obmp251psyml"); // GD_neato_nlist(g) = (node_t **)zmalloc((nn + 1)*sizeof(node_t *)); +UNSUPPORTED("9bt5ega0wnm605esgklnofthl"); // for (i = 0, n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("4otfzd04ih23fldz5z9kjz13r"); // init_node (n); +UNSUPPORTED("57olun5nyb91u25vsjs21iqpz"); // /* ND_alg(n) = alg + i; */ +UNSUPPORTED("6fp8pp1mhoz2oz6b7bjmnivdq"); // GD_neato_nlist(g)[i] = n; +UNSUPPORTED("9ku3nzm6ui1ttnjtw2tlxeape"); // ND_id(n) = i++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8luf7vywtg9kvvk1yugl5rnrj"); // E_len = agattr(g,AGEDGE, "len", NULL); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("afzh0se3bdul27kfeb72zmccv"); // init_edge(e, E_len); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("68vimdeays5ksioyhl9g0a64u"); // initialPositions(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8xyco70otbzpy5o0gn0ccbh81 +// static void cleanup_subgs(graph_t * g) +public static Object cleanup_subgs(Object... arg) { +UNSUPPORTED("84hk43pxgtn24h4d5ia4mibtn"); // static void cleanup_subgs(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8uujemixuhlf040icq3zsh7j8"); // graph_t *subg; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("7naa6f8pevjidfr7m41eli6xj"); // for (i = 1; i <= GD_n_cluster(g); i++) { +UNSUPPORTED("cpbcovu6u9jpbhniuwko58sge"); // subg = GD_clust(g)[i]; +UNSUPPORTED("7yh9n8er7gmkbcvlm9ycl42jp"); // free_label(GD_label(subg)); +UNSUPPORTED("1lpwhqj7l6h0eiutrhkf2i3i6"); // if (GD_alg(subg)) { +UNSUPPORTED("109zmijlgkrcmnkcf5quh13se"); // free((((gdata*)(GD_alg(subg)))->ports)); +UNSUPPORTED("25vpswadzwfupxfn703fb46m5"); // free(GD_alg(subg)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3gp1a1mkjuw28fwl3bc0rwzkf"); // cleanup_subgs(subg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a5yc031gavhkkx3wq5g726g76"); // free (GD_clust(g)); +UNSUPPORTED("8rovagjt3lviwrx7aa3axkgwc"); // if (g != agroot(g)) +UNSUPPORTED("jhltskmtad5k9xortu6d6gql"); // agdelrec(g, "Agraphinfo_t"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bnzpam8o3xnj3b7f516ic3nvd +// static void fdp_cleanup_graph(graph_t * g) +public static Object fdp_cleanup_graph(Object... arg) { +UNSUPPORTED("e14i566vhsvk5mmi72i9cyrym"); // static void fdp_cleanup_graph(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4l9vavpqrn41woq5aj74iefbp"); // cleanup_subgs(g); +UNSUPPORTED("dxp41biia9zas5nfacx5m4vhp"); // free(GD_neato_nlist(g)); +UNSUPPORTED("n2gf06weiher7ar8g5amqip1"); // free(GD_alg(g)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7jmdev7p125ntxi63iz9b6p04 +// void fdp_cleanup(graph_t * g) +public static Object fdp_cleanup(Object... arg) { +UNSUPPORTED("bnvo5l60gvjkaw227hbmo7zuw"); // void fdp_cleanup(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("5otoqd7o1zz8ni50urywr7yjy"); // gv_cleanup_edge(e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ec2wg4tpq1npq2mtdbc154ylh"); // gv_cleanup_node(n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("evkzftlt6qna42mjdlknscgk5"); // fdp_cleanup_graph(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/fdpgen/grid__c.java plantuml-8039/src/gen/lib/fdpgen/grid__c.java --- plantuml-8024/src/gen/lib/fdpgen/grid__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/fdpgen/grid__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,966 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.fdpgen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class grid__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 48p9xkptvlsxtb58ffyzjbdrn +// static block_t *newBlock(int size) +public static Object newBlock(Object... arg) { +UNSUPPORTED("cqgp9t633c4vidjdixwk62b8x"); // static block_t *newBlock(int size) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("95ide6up3fa3s5xowco8ih2g7"); // block_t *newb; +UNSUPPORTED("21xtar9o7c5sw48e7jv8o2f68"); // newb = (block_t*)gmalloc(sizeof(block_t)); +UNSUPPORTED("er72usde489r8t38im7xyffgd"); // newb->next = 0; +UNSUPPORTED("bfs7wf3xzbwhtv7x2g5cr3lcp"); // newb->mem = (cell*)gmalloc((size)*sizeof(cell)); +UNSUPPORTED("77q90euct9sn46uzd5qr13611"); // newb->endp = newb->mem + size; +UNSUPPORTED("8jjwt46o919i2b5oo9jqz6g2h"); // newb->cur = newb->mem; +UNSUPPORTED("dfk4c476i87s9isvbvzpxvmhk"); // return newb; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1xzd2mgk4xjc5b9hmcv72lyv6 +// static void freeBlock(block_t * b) +public static Object freeBlock(Object... arg) { +UNSUPPORTED("b8d6imvvp6lydokdtr2rhempo"); // static void freeBlock(block_t * b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4itlioqs70mihymynwfmznxvd"); // if (b) { +UNSUPPORTED("av0qnyr2at3ebsltm59bkmgri"); // block_t *next = b->next; +UNSUPPORTED("cm5cwn22f12c1plyhxex1an5v"); // free(b->mem); +UNSUPPORTED("wg03d53tifx6b8xxlazj2y66"); // free(b); +UNSUPPORTED("79t7h3r6ynnwnpdmjg4vsmesg"); // freeBlock(next); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dwz1fog5nktaeg1ryc2wyk40s +// static cell *getCell(Grid * g) +public static Object getCell(Object... arg) { +UNSUPPORTED("8uzl60unaw1orsi1po0j9a0ut"); // static cell *getCell(Grid * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ao9xdgmlrsclq6kqohovivqwe"); // cell *cp; +UNSUPPORTED("d1zkaxy757i5imyupkpiscaph"); // block_t *bp = g->cellCur; /* current block */ +UNSUPPORTED("7ze7jw2uphs568sjmewq9uk4c"); // if (bp->cur == bp->endp) { /* current block is full */ +UNSUPPORTED("1uqfbvmtqqjgymjtij5qofscl"); // if (bp->next == 0) { +UNSUPPORTED("e6n3vvoi4bmf5x1j8jnf8dxxe"); // bp->next = newBlock(2 * (bp->endp - bp->mem)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1am3lqqsk187zkoqvdmaz621v"); // bp = g->cellCur = bp->next; +UNSUPPORTED("79uvfoqwkd9pziekx02rqdd7i"); // bp->cur = bp->mem; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("aifisi1jld6nxlwnsuwuccfuy"); // cp = bp->cur++; +UNSUPPORTED("az4lr3wfzqu3df9wce5kcyady"); // return cp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a6oz4rf4ts6rry8veop9yyim7 +// static int ijcmpf(Dt_t * d, gridpt * p1, gridpt * p2, Dtdisc_t * disc) +public static Object ijcmpf(Object... arg) { +UNSUPPORTED("qqmv1dxqcqyeh7lttfs5l1ov"); // static int ijcmpf(Dt_t * d, gridpt * p1, gridpt * p2, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1wmjkf3r3rua2n9n6v1glz64z"); // int diff; +UNSUPPORTED("6z29omss9ay00bqf6xael7t6t"); // (void) d; +UNSUPPORTED("8l8wg6vltx6d7vc9dzqb6n3wi"); // (void) disc; +UNSUPPORTED("ce3bx4bdswb0p58b461byzfps"); // if ((diff = (p1->i - p2->i))) +UNSUPPORTED("bq5dcp2mozeoz1g1zcxcu5h27"); // return diff; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("eeqlt2jh61y7nvci218gnox6b"); // return (p1->j - p2->j); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 5s4sj50h3vdrqw1wswkqpule7 +// static Grid *_grid + + + + +//3 dbgusqi6yak0s3w8po4yfwlew +// static void *newCell(Dt_t * d, void *obj, Dtdisc_t * disc) +public static Object newCell(Object... arg) { +UNSUPPORTED("a8p5x7a752ihuz53ssf35670w"); // static void *newCell(Dt_t * d, void *obj, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dd28b94hbwrv5c3yq6npacxxu"); // cell *cellp = (cell *) obj; +UNSUPPORTED("eu3li4jorpplvuws8ukseoh0f"); // cell *newp; +UNSUPPORTED("8l8wg6vltx6d7vc9dzqb6n3wi"); // (void) disc; +UNSUPPORTED("96hm6wof9428lgosvgu7yxvbc"); // newp = getCell(_grid); +UNSUPPORTED("1uoj9xhbbmz92x537ikscy72z"); // newp->p.i = cellp->p.i; +UNSUPPORTED("81yllhqexfyf0e2w7ifmycjc7"); // newp->p.j = cellp->p.j; +UNSUPPORTED("9mpisqlyz5gwc22v3dykoc2kb"); // newp->nodes = 0; +UNSUPPORTED("4enxnv484o23jodrkf81rxdg0"); // return newp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 btvo93i71mj5s7jx37y7gpy0q +// static node_list *newNode(Grid * g, Agnode_t * n, node_list * nxt) +public static Object newNode(Object... arg) { +UNSUPPORTED("ehleji79hws4ndms74ucrfug8"); // static node_list *newNode(Grid * g, Agnode_t * n, node_list * nxt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("kv1qgi81221bvfutkp6848gs"); // node_list *newp; +UNSUPPORTED("bxz8t60ho4syqfxokqwjomd70"); // newp = g->listCur++; +UNSUPPORTED("732w7veecg92msg7cxi48mx18"); // newp->node = n; +UNSUPPORTED("6udm0lve1wrpnonls06gpijkr"); // newp->next = nxt; +UNSUPPORTED("4enxnv484o23jodrkf81rxdg0"); // return newp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 cp8gjlfyqcmfdqxvn4slvnmpl +// static Dtdisc_t gridDisc = + + + + +//3 dq3rb6lltgxkztrppf4e4ob0a +// Grid *mkGrid(int cellHint) +public static Object mkGrid(Object... arg) { +UNSUPPORTED("9u1txx36o09gsufmfta5bh4xd"); // Grid *mkGrid(int cellHint) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eclpdj3kal4j8s4p5xnir9cqf"); // Grid *g; +UNSUPPORTED("80ack44l9uaf0bmvg194jqe48"); // g = (Grid*)gmalloc(sizeof(Grid)); +UNSUPPORTED("3ybxv0gvukf27njzufcqqo81a"); // _grid = g; /* see comment above */ +UNSUPPORTED("ak5cvv3gc1lfiql31r16xnq4v"); // g->data = dtopen(&gridDisc, Dtoset); +UNSUPPORTED("4gem6adq1i3ecl23otyak99c9"); // g->listMem = 0; +UNSUPPORTED("1nipmfwxobw0s6w14g6dr5foh"); // g->listSize = 0; +UNSUPPORTED("chv70wjlygxy67t8tybh66cwf"); // g->cellMem = newBlock(cellHint); +UNSUPPORTED("2syri7q5tc0jyvwq8ecyfo3vr"); // return g; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6bd29u5mwagwt7ghjyyccorh1 +// void adjustGrid(Grid * g, int nnodes) +public static Object adjustGrid(Object... arg) { +UNSUPPORTED("baeey6xmz933iy3d36anps428"); // void adjustGrid(Grid * g, int nnodes) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e4nu416e8phfhoe9opmjt6zxk"); // int nsize; +UNSUPPORTED("e7egb5b9opseomve33z4nopvk"); // if (nnodes > g->listSize) { +UNSUPPORTED("402jdeovmofgfjapuyzda90w3"); // nsize = MAX(nnodes, 2 * (g->listSize)); +UNSUPPORTED("18otakb57uiccyf9ze0ckh1ou"); // if (g->listMem) +UNSUPPORTED("cgvx3psdqmzfsscsi6k5qry2c"); // free(g->listMem); +UNSUPPORTED("7lk84snr3t4u3ycduwbfdkuo2"); // g->listMem = (node_list*)gmalloc((nsize)*sizeof(node_list)); +UNSUPPORTED("2v7eyjzzl6jefj3hhetn64pxo"); // g->listSize = nsize; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 amb9vt2m5v9s58v2odngax7wv +// void clearGrid(Grid * g) +public static Object clearGrid(Object... arg) { +UNSUPPORTED("e7s6yogkps2xb76gikyo7hurp"); // void clearGrid(Grid * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6zxdah94hm76bo0zhiwt1vf9q"); // (*(((Dt_t*)(g->data))->searchf))((g->data),(void*)(0),0000100); +UNSUPPORTED("379e5nuyb9hsd83249pxe9zl0"); // g->listCur = g->listMem; +UNSUPPORTED("57510i3xz9n6gyrcri6m2x31v"); // g->cellCur = g->cellMem; +UNSUPPORTED("8houbh0qth244ekpzfyghstms"); // g->cellCur->cur = g->cellCur->mem; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9pepovt0gwd2trihhc2b9d7kf +// void delGrid(Grid * g) +public static Object delGrid(Object... arg) { +UNSUPPORTED("2hljfnpiz5yvaz8r14pmxlgyx"); // void delGrid(Grid * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3h7tk3hujmu6hb01n5p4qb399"); // dtclose(g->data); +UNSUPPORTED("75a1xgp2awtr3p9seu6lq7tor"); // freeBlock(g->cellMem); +UNSUPPORTED("ek2bqwr219isf5zhfqksg81yv"); // free(g->listMem); +UNSUPPORTED("4r69ldzt3t7hqa8bckw1rmbk4"); // free(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1cotlm44aq5nf1awt6rlrt73f +// void addGrid(Grid * g, int i, int j, Agnode_t * n) +public static Object addGrid(Object... arg) { +UNSUPPORTED("cw8y5dhctcam2kaat5iu7dt32"); // void addGrid(Grid * g, int i, int j, Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f2dlaown2kdact6tryrhjt4wp"); // cell *cellp; +UNSUPPORTED("6bzsq12nf65b3f8dvi83to0ev"); // cell key; +UNSUPPORTED("afbyqq6mkn219h05byghxl4nd"); // key.p.i = i; +UNSUPPORTED("egewjz5xsyhudbf0fb3vd8qyb"); // key.p.j = j; +UNSUPPORTED("bqrlni0ru8q9ywz6u62wjfkw3"); // cellp = (*(((Dt_t*)(g->data))->searchf))((g->data),(void*)(&key),0000001); +UNSUPPORTED("cu3pr0ujlmxmo3hxkmzouhk3h"); // cellp->nodes = newNode(g, n, cellp->nodes); +UNSUPPORTED("85z5t8b0aaiij1mlbipg4mw5d"); // if (Verbose >= 3) { +UNSUPPORTED("9jniybnacu91k5lj5tsrc1wuq"); // fprintf(stderr, "grid(%d,%d): %s\n", i, j, agnameof(n)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4g0z7jopk0t99z409uj832wp5 +// void walkGrid(Grid * g, int (*walkf) (Dt_t *, cell *, Grid *)) +public static Object walkGrid(Object... arg) { +UNSUPPORTED("7tlnrgcgro6algvrxp8r7gtmk"); // void walkGrid(Grid * g, int (*walkf) (Dt_t *, cell *, Grid *)) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f3rit8rz1s1ghahuis92gm6k1"); // dtwalk(g->data, (walkfn_t) walkf, g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dku539xf3no0yqw8yd7nxcbt6 +// cell *findGrid(Grid * g, int i, int j) +public static Object findGrid(Object... arg) { +UNSUPPORTED("32b65siusleul2gdaegn2mm9f"); // cell *findGrid(Grid * g, int i, int j) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6bzsq12nf65b3f8dvi83to0ev"); // cell key; +UNSUPPORTED("afbyqq6mkn219h05byghxl4nd"); // key.p.i = i; +UNSUPPORTED("egewjz5xsyhudbf0fb3vd8qyb"); // key.p.j = j; +UNSUPPORTED("2pi5ab8p3o6tsbggtnotsl4ax"); // return ((cell *) (*(((Dt_t*)(g->data))->searchf))((g->data),(void*)(&key),0000004)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1z3w6m5x4gw4pr5cibsbv8ew5 +// int gLength(cell * p) +public static Object gLength(Object... arg) { +UNSUPPORTED("1udy11biurmpvqgnt7nc07594"); // int gLength(cell * p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bsj3r19ko668lwj5fqk8tlbhc"); // int len = 0; +UNSUPPORTED("deylrmnd4q7aqkk29acrjt3j0"); // node_list *nodes = p->nodes; +UNSUPPORTED("3h2gfuk0qna3lemnipafx7eu9"); // while (nodes) { +UNSUPPORTED("1blvazlbh0hbzpw2y1i3ejivl"); // len++; +UNSUPPORTED("d4fniru4onrxa8hv51ov2h6dj"); // nodes = nodes->next; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ji4xmwppaalf0z5xzgfw9h36"); // return len; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/fdpgen/layout__c.java plantuml-8039/src/gen/lib/fdpgen/layout__c.java --- plantuml-8024/src/gen/lib/fdpgen/layout__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/fdpgen/layout__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1748 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.fdpgen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; +import smetana.core.jmp_buf; + +public class layout__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 exy2l03ceq9zw4vf01bbd4d3o +// typedef unsigned int packval_t + + +//1 540u5gu9i0x1wzoxqqx5n2vwp +// static jmp_buf jbuf +private static jmp_buf jbuf = new jmp_buf(); + + + +//3 cyfvrx8rigx5zgh4a4b53zpnh +// static void finalCC(graph_t * g, int c_cnt, graph_t ** cc, point * pts, graph_t * rg, layout_info* infop) +public static Object finalCC(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("5j5ejv8p34k05gcm75fmh1xhf"); // finalCC(graph_t * g, int c_cnt, graph_t ** cc, point * pts, graph_t * rg, +UNSUPPORTED("4pqsw04lulyzrk7rq7bblsonr"); // layout_info* infop) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9b4o90u710skovvrp9jqdgitp"); // attrsym_t * G_width = infop->G_width; +UNSUPPORTED("bqvw4kmde2f4oa4oi0h9hydsn"); // attrsym_t * G_height = infop->G_height; +UNSUPPORTED("e75aepnaqkzqf68ewt7a4zqfi"); // graph_t *cg; +UNSUPPORTED("a78eza87s0b98d5urftsa25st"); // box b, bb; +UNSUPPORTED("8l1eldlly6rdv04k0fzzkmb68"); // boxf bbf; +UNSUPPORTED("tkw5izt69wl0695g5qfi9sug"); // point pt; +UNSUPPORTED("15vcjwivk85sj24txzc1mf1gj"); // int margin; +UNSUPPORTED("uxzh5927shath4hsa8qeq0vg"); // graph_t **cp = cc; +UNSUPPORTED("dgxbjvgw9qxehkxtda1tet15c"); // point *pp = pts; +UNSUPPORTED("93l4pivvf6nscv0y64nax0dq7"); // int isRoot = (rg == infop->rootg); +UNSUPPORTED("tv1kheyodc68lbqkk90hbfrp"); // int isEmpty = 0; +UNSUPPORTED("ebsljzk06lfmoo5yrjxixc0op"); // /* compute graph bounding box in points */ +UNSUPPORTED("as51hq9p7apf0yper42ncmv5d"); // if (c_cnt) { +UNSUPPORTED("hdi48v81u3904xw6mr33ncuu"); // cg = *cp++; +UNSUPPORTED("doqnyqj8oanwl6cloo1nprp6f"); // BF2B(GD_bb(cg), bb); +UNSUPPORTED("5aaxht3vfvg8txbt3utwmslrp"); // if (c_cnt > 1) { +UNSUPPORTED("9t8rt3bdzsa84ucezrmt14ub6"); // pt = *pp++; +UNSUPPORTED("d4he392l7lu60f0c3cfgxrxdc"); // bb.LL.x += pt.x; +UNSUPPORTED("4depz3wycfkln7j4l5xklhc9u"); // bb.LL.y += pt.y; +UNSUPPORTED("4107b6l6fs0ipw7clehsluvj7"); // bb.UR.x += pt.x; +UNSUPPORTED("89fikk6obhaq1qqenedqkj3ee"); // bb.UR.y += pt.y; +UNSUPPORTED("3yuvbcdyw38sj04mc19gsblta"); // while ((cg = *cp++)) { +UNSUPPORTED("5pgtu6u0dsae0m5olw147upw7"); // BF2B(GD_bb(cg), b); +UNSUPPORTED("sk2e9ft63ktyi9torljewy1d"); // pt = *pp++; +UNSUPPORTED("exwmgih14x6egeiqtbdao9oig"); // b.LL.x += pt.x; +UNSUPPORTED("6s65g13bf25olokd3e9mkk2r0"); // b.LL.y += pt.y; +UNSUPPORTED("b947zhl0549npzprxodym6pnv"); // b.UR.x += pt.x; +UNSUPPORTED("egzsssfx1cuziklqf0gbha0pg"); // b.UR.y += pt.y; +UNSUPPORTED("8tx35iz0n5i30gl1aoykewx2a"); // bb.LL.x = MIN(bb.LL.x, b.LL.x); +UNSUPPORTED("1y9hace0nolseswt8ndb04qzp"); // bb.LL.y = MIN(bb.LL.y, b.LL.y); +UNSUPPORTED("448anewcsr42vjlqt7bu41gml"); // bb.UR.x = MAX(bb.UR.x, b.UR.x); +UNSUPPORTED("8186gsf6v091wiyyfl50wo3pz"); // bb.UR.y = MAX(bb.UR.y, b.UR.y); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("et2gdc4td9f7dgpy4vi5nubcj"); // } else { /* empty graph */ +UNSUPPORTED("1usofyibgze1w58108ljx8vlk"); // bb.LL.x = 0; +UNSUPPORTED("2x25hiswosyet6n52bfoj0bgb"); // bb.LL.y = 0; +UNSUPPORTED("8odqguy5gqxsc924fzt8tugyj"); // bb.UR.x = late_int(rg, G_width, (ROUND((0.75)*72)), 3); +UNSUPPORTED("1bcc9n645fsrh3v9qouu2mnnt"); // bb.UR.y = late_int(rg, G_height, (ROUND((0.5)*72)), 3); +UNSUPPORTED("oy1o6qaafscd06oaah6skuq8"); // isEmpty = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8bafmwpwdcr8mxkd0349uwj8n"); // if (GD_label(rg)) { +UNSUPPORTED("2g3x5xo2qnpun7vilpctpknlc"); // point p; +UNSUPPORTED("bo6u5udaa5jm0by3gh04omxwd"); // int d; +UNSUPPORTED("dmkzb0rxnfsoon56m8o6st0o1"); // isEmpty = 0; +UNSUPPORTED("7fm4t6vqmkowryalb4olpluvi"); // PF2P(GD_label(rg)->dimen, p); +UNSUPPORTED("60137a9c14v715u0roc06c7f0"); // d = p.x - (bb.UR.x - bb.LL.x); +UNSUPPORTED("ut9vmlliumj6hoam9erca50j"); // if (d > 0) { /* height of label added below */ +UNSUPPORTED("dzc85pslju1xdcidb5xsgd63n"); // d /= 2; +UNSUPPORTED("5lr6tdfl85phpnr2cjc94rmfk"); // bb.LL.x -= d; +UNSUPPORTED("eiysf7bb0jo4knxnnsptfd17o"); // bb.UR.x += d; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dds8500ykadjn0z2mcnznhjfg"); // if (isRoot || isEmpty) +UNSUPPORTED("8tm7x791luf0uq7v2q53kfuqk"); // margin = 0; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("182pb9igel0aoytgtoiguek4x"); // margin = late_int (g, G_margin, 8, 0); +UNSUPPORTED("dwo09u5p3lixrxqu485pwy6r7"); // pt.x = -bb.LL.x + margin; +UNSUPPORTED("3tyf1d65hn5e7kko770etaay1"); // pt.y = -bb.LL.y + margin + GD_border(rg)[0].y; +UNSUPPORTED("dze4vn5sf7tdouljozbaukja6"); // bb.LL.x = 0; +UNSUPPORTED("5zsax7rqaxnemqxnwgiyn72ga"); // bb.LL.y = 0; +UNSUPPORTED("c4rw2sm67jiequg14myrfct0h"); // bb.UR.x += pt.x + margin; +UNSUPPORTED("e61322oo73i9nj7nipw8m2zv"); // bb.UR.y += pt.y + margin + GD_border(rg)[2].y; +UNSUPPORTED("7tzvnafah7jf93mzxqs95rwrr"); // /* translate nodes */ +UNSUPPORTED("as51hq9p7apf0yper42ncmv5d"); // if (c_cnt) { +UNSUPPORTED("egz9kmr1h0lairr84fdl6xyb4"); // cp = cc; +UNSUPPORTED("1vvyrx201r2ig8es037wn2mfh"); // pp = pts; +UNSUPPORTED("c5isnr2v3wtcqtcbjku7pygr1"); // while ((cg = *cp++)) { +UNSUPPORTED("8hzx2qlxefkohtl8vzpf4yzof"); // point p; +UNSUPPORTED("d55u571q0xu2m8hidf7qm4i0h"); // node_t *n; +UNSUPPORTED("ej168lfnr08xgzgaf1gsii95s"); // pointf del; +UNSUPPORTED("2u09xj9tpivs6e840bfjna2zc"); // if (pp) { +UNSUPPORTED("1rmxuvgazhdv7nv3q5deh14ci"); // p = *pp++; +UNSUPPORTED("7w2yxcg7syqzmsu21h1rdu7gv"); // p.x += pt.x; +UNSUPPORTED("ct8eacmyhxwe4itxmq5ksle6c"); // p.y += pt.y; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("q29o1awbh8ddg8k9cz591mwc"); // p = pt; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("9wya7e1n1v02ba29i88qevv7d"); // del.x = ((p.x)/(double)72); +UNSUPPORTED("2r2n5gssapyxktpmw0tiaplpt"); // del.y = ((p.y)/(double)72); +UNSUPPORTED("bhlsqxfst7yx1df4cylgi92p6"); // for (n = agfstnode(cg); n; n = agnxtnode(cg, n)) { +UNSUPPORTED("7ljco3d2d5dh0dhrs9qoqvvia"); // ND_pos(n)[0] += del.x; +UNSUPPORTED("41qrgy6u1jqqw1qpjqg4c6657"); // ND_pos(n)[1] += del.y; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("exoex2j0qrw664qhzf4cxauq1"); // bbf.LL.x = ((bb.LL.x)/(double)72); +UNSUPPORTED("7yprpz6bhlv15uimyl9x7mwyf"); // bbf.LL.y = ((bb.LL.y)/(double)72); +UNSUPPORTED("42ps8exnijgn7j0xn3omzdsbp"); // bbf.UR.x = ((bb.UR.x)/(double)72); +UNSUPPORTED("2kied7iqt4m348v7idvxdzrfr"); // bbf.UR.y = ((bb.UR.y)/(double)72); +UNSUPPORTED("4bavz003b6k3610qxalof3nls"); // (((gdata*)(GD_alg(g)))->bb) = bbf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 byskndejdx3u2hdwh3qbm4apq +// static node_t *mkDeriveNode(graph_t * dg, char *name) +public static Object mkDeriveNode(Object... arg) { +UNSUPPORTED("74hp673smot0qq6e71pnny6um"); // static node_t *mkDeriveNode(graph_t * dg, char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cuxjodqo53rx3gt9t353c352r"); // node_t *dn; +UNSUPPORTED("9rsk130zxprz1jr0i0wnjspka"); // dn = agnode(dg, name,1); +UNSUPPORTED("2pahd30hmnc5ga3juber1p8rc"); // agbindrec(dn, "Agnodeinfo_t", sizeof(Agnodeinfo_t), NOT(0)); //node custom data +UNSUPPORTED("2pbxy8q5lnf7p7rgcaw6q8wky"); // ND_alg(dn) = (void *) (dndata*)zmalloc(sizeof(dndata)); /* free in freeDeriveNode */ +UNSUPPORTED("at012b854w3r2woadh9tov0wf"); // ND_pos(dn) = (double*)gmalloc((GD_ndim(dg))*sizeof(double)); +UNSUPPORTED("39wajg9uefc99hzbtsfg9trto"); // /* fprintf (stderr, "Creating %s\n", dn->name); */ +UNSUPPORTED("7h1byav4bse2wj5qnw2q1myd4"); // return dn; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3iz2r401jxiz372cjszyuoanq +// static void freeDeriveNode(node_t * n) +public static Object freeDeriveNode(Object... arg) { +UNSUPPORTED("1whqjlpv0n0dca6sq85o9cdae"); // static void freeDeriveNode(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5074s0w7ptt9jifu6hn9mei67"); // free(ND_alg(n)); +UNSUPPORTED("dblzkmbbygvj7xygvxtoq8tio"); // free(ND_pos(n)); +UNSUPPORTED("akue26s9c0sd4k550tyw3sk5n"); // agdelrec(n, "Agnodeinfo_t"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 29x3224gy6v4xzpd3raiirugf +// static void freeGData(graph_t * g) +public static Object freeGData(Object... arg) { +UNSUPPORTED("4qayy728oj2bq4zy8lej3fsth"); // static void freeGData(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("n2gf06weiher7ar8g5amqip1"); // free(GD_alg(g)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cf633ztfyd6ttfwuav4giyi76 +// static void freeDerivedGraph(graph_t * g, graph_t ** cc) +public static Object freeDerivedGraph(Object... arg) { +UNSUPPORTED("cgyg74gyxx6sheskknx21gz3l"); // static void freeDerivedGraph(graph_t * g, graph_t ** cc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e75aepnaqkzqf68ewt7a4zqfi"); // graph_t *cg; +UNSUPPORTED("cuxjodqo53rx3gt9t353c352r"); // node_t *dn; +UNSUPPORTED("302ixhh6hnlijtkp0oelxikef"); // node_t *dnxt; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("7febwjhfjikg0bvb24i85inl3"); // while ((cg = *cc++)) { +UNSUPPORTED("cijqtcfm7sci705u1z4k582tp"); // freeGData(cg); +UNSUPPORTED("xmk71ie22xvx7nhgngqacfp9"); // agdelrec(cg, "Agraphinfo_t"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9ef1tmkqo6s5sssnuq8lfknqq"); // if ((((gdata*)(GD_alg(g)))->ports)) +UNSUPPORTED("8af0kjmbjyg70lta4awrjjesc"); // free((((gdata*)(GD_alg(g)))->ports)); +UNSUPPORTED("cwxxae37yzne0ly0kop5ml6mx"); // freeGData(g); +UNSUPPORTED("c2ncz5mhklw8a78yq0pq0wmo"); // agdelrec(g, "Agraphinfo_t"); +UNSUPPORTED("4rp7mjl1clntxri8tw8pytsbj"); // for (dn = agfstnode(g); dn; dn = dnxt) { +UNSUPPORTED("31j4zdjpamckm6fc2s29x82k1"); // dnxt = agnxtnode(g, dn); +UNSUPPORTED("3y0pwms7qy4blq5v99c8qjteh"); // for (e = agfstout(g, dn); e; e = agnxtout(g, e)) { +UNSUPPORTED("4xbv3tolbid1n0zz7n3eamn00"); // free (ED_to_virt(e)); +UNSUPPORTED("8w3d3ji4u0lki4coi2qpmpskg"); // agdelrec(e, "Agedgeinfo_t"); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("f4nskiqzun441c5ex40ie8gw0"); // freeDeriveNode(dn); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ego3r1tvwrpv2hie8y9p8vq4z"); // agclose(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 84isuvczdhvikhhnui9e3kzra +// static void evalPositions(graph_t * g, graph_t* rootg) +public static Object evalPositions(Object... arg) { +UNSUPPORTED("1oa3ftxfgwenys84ezoeabexx"); // static void evalPositions(graph_t * g, graph_t* rootg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("8uujemixuhlf040icq3zsh7j8"); // graph_t *subg; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("4s8yf152w1bykvv0sazjkgfxz"); // boxf sbb; +UNSUPPORTED("an5yuorm1sh0abvgomq1s0db9"); // bb = (((gdata*)(GD_alg(g)))->bb); +UNSUPPORTED("2cvzps80tb9p8pvei2bhwj0us"); // /* translate nodes in g */ +UNSUPPORTED("31atml91kblm6c59dury75e81"); // if (g != rootg) { +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("5jodw5fl7pfp4w8nn8t3x81jr"); // if ((ND_clust(n)) != g) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("4jnp2t03todyz1wxbgdvmlesd"); // ND_pos(n)[0] += bb.LL.x; +UNSUPPORTED("228b94b3kuel3j0i7j3cz181h"); // ND_pos(n)[1] += bb.LL.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7ogmi241wudfqnsslcsy6hjus"); // /* translate top-level clusters and recurse */ +UNSUPPORTED("7naa6f8pevjidfr7m41eli6xj"); // for (i = 1; i <= GD_n_cluster(g); i++) { +UNSUPPORTED("cpbcovu6u9jpbhniuwko58sge"); // subg = GD_clust(g)[i]; +UNSUPPORTED("dm5tht2ocq023it8nf3hu6qh5"); // if (g != rootg) { +UNSUPPORTED("7405elpmfo8oyjglcsdlje8uw"); // sbb = (((gdata*)(GD_alg(subg)))->bb); +UNSUPPORTED("7ed3aflu4lv2rtcdee3mijand"); // sbb.LL.x += bb.LL.x; +UNSUPPORTED("7ghwc2c7027s57f40x9doldp8"); // sbb.LL.y += bb.LL.y; +UNSUPPORTED("czucbxjkl4ejgixorzhl9szxi"); // sbb.UR.x += bb.LL.x; +UNSUPPORTED("68wba2rnx2qf1yb1zwl7emyom"); // sbb.UR.y += bb.LL.y; +UNSUPPORTED("6vyufad5w3ewjk847wfvet74d"); // (((gdata*)(GD_alg(subg)))->bb) = sbb; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bj0ndzvvsqfftb69nsf5gwgo"); // evalPositions(subg, rootg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6ptl3bkajdnlcqjtcc65lvzn4 +// static void initCList(clist_t * clist) +public static Object initCList(Object... arg) { +UNSUPPORTED("426b4jcrii041onjvleavkg6a"); // static void initCList(clist_t * clist) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("64bbojzoaaau1t7cl5l5hxdbc"); // clist->cl = 0; +UNSUPPORTED("auxbos07f2t0rtf8w8sziaka1"); // clist->sz = 0; +UNSUPPORTED("27dd5xcxwffb51e9kt8smvs5v"); // clist->cnt = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 39dqbok6w7dzecbztpcwr2sss +// static void addCluster(clist_t * clist, graph_t * subg) +public static Object addCluster(Object... arg) { +UNSUPPORTED("ch4ooh4zms6v4wnaeg3mu7crr"); // static void addCluster(clist_t * clist, graph_t * subg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ecw34rlkdj1yxbju8tntke1q7"); // clist->cnt++; +UNSUPPORTED("11sdiyvywz6e8huzmiae0luxe"); // if (clist->cnt >= clist->sz) { +UNSUPPORTED("bw2tzb3640mp9g0yqkt1qriuo"); // clist->sz += 10; +UNSUPPORTED("3br43nvgjghg5cl8w55jb575c"); // clist->cl = RALLOC(clist->sz, clist->cl, graph_t *); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2ppf11sr4a47a0hsns9fy4ss"); // clist->cl[clist->cnt] = subg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 blvez04enibnb1urti8nypr3m +// static char *portName(graph_t * g, bport_t * p) +public static Object portName(Object... arg) { +UNSUPPORTED("2okvscqwpqqezrovvu7ckzyu4"); // static char *portName(graph_t * g, bport_t * p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2l3sv6t0gt2fzfwgwp413xane"); // edge_t *e = p->e; +UNSUPPORTED("7sdvsuo2rbo6of75bzleek8qf"); // node_t *h = aghead(e); +UNSUPPORTED("7jj1xtfi4cbw5y6yhlzh0mli4"); // node_t *t = agtail(e); +UNSUPPORTED("8sd9gndpjspq37480rd49es9t"); // static char buf[1000 + 1]; +UNSUPPORTED("41orbbs9l9t5osihlly2avycl"); // int len = 8; +UNSUPPORTED("2kipzrn24xz111kc3wsad5y0a"); // len += strlen(agnameof(g)) + strlen(agnameof(h)) + strlen(agnameof(t)); +UNSUPPORTED("5oxm695jqpgfl1ixyyoi3befn"); // if (len >= 1000) +UNSUPPORTED("8e5b7vlvn7ipfcpws1u55nbno"); // sprintf(buf, "_port_%s_%s_%s_%ld", agnameof(g), agnameof(t), agnameof(h), +UNSUPPORTED("22t9pdxhzto354ya2hq6wuba4"); // (unsigned long)AGSEQ(e)); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("e6kgc72n0x7sdm9oybcsvjew7"); // sprintf(buf, "_port_%s_(%d)_(%d)_%ld",agnameof(g), ND_id(t), ND_id(h), +UNSUPPORTED("22t9pdxhzto354ya2hq6wuba4"); // (unsigned long)AGSEQ(e)); +UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9xly1bqcrp9nnod8k5jfwbp5g +// static void chkPos(graph_t* g, node_t* n, layout_info* infop, boxf* bbp) +public static Object chkPos(Object... arg) { +UNSUPPORTED("3o5p4sqo0s46cn3vz2s0dfh29"); // static void chkPos(graph_t* g, node_t* n, layout_info* infop, boxf* bbp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("d8yqhxb1cnge86592ge3ahdkf"); // char *pp; +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("wrvu9u7a8j6i6y6552zncxfk"); // char c; +UNSUPPORTED("em08bsddr0lwo4o5yqu8utzgq"); // graph_t *parent; +UNSUPPORTED("8m5vv3nw7eyhv8rf2b8p0zzie"); // attrsym_t *G_coord = infop->G_coord; +UNSUPPORTED("429m2pc45k6skac7p443tbpac"); // p = agxget(g, G_coord); +UNSUPPORTED("3f1sat0g6anyggfla96go23ep"); // if (p[0]) { +UNSUPPORTED("7hmevhd9t0vhoilb7b7z5rtru"); // if (g != infop->rootg) { +UNSUPPORTED("zq8n2wn96yv1mbobk1qu5rmj"); // parent =agparent(g); +UNSUPPORTED("89aks9kqee96aw168b43hfrtq"); // pp = agxget(parent, G_coord); +UNSUPPORTED("9dhvu3xnw93fbt644b52o03to"); // if ((pp == p) || !strcmp(p, pp)) +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cr1dg3johqjxamg5latzq2tdv"); // c = '\0'; +UNSUPPORTED("ej59cehhf9pgaw8t6st82pwfv"); // if (sscanf(p, "%lf,%lf,%lf,%lf%c", +UNSUPPORTED("9o8oz4nmdyu2kqdek3kb6q226"); // &bb.LL.x, &bb.LL.y, &bb.UR.x, &bb.UR.y, &c) >= 4) { +UNSUPPORTED("4lxmr7172n4y4nnubzchbq96t"); // if (PSinputscale > 0.0) { +UNSUPPORTED("1c7k9urwuwp7p7vxoy4q7r4sp"); // bb.LL.x /= PSinputscale; +UNSUPPORTED("441y7dez7jdhtc56rhx61f0tv"); // bb.LL.y /= PSinputscale; +UNSUPPORTED("65wvxshjtzdc9zocf9xsl2gvv"); // bb.UR.x /= PSinputscale; +UNSUPPORTED("5v7ndgkjn1ruevu0a06twp7mc"); // bb.UR.y /= PSinputscale; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("9qnr8qmbz7pf3mmpebux0p08m"); // if (c == '!') +UNSUPPORTED("a2of0q0fgez6ppasmwdujr5lc"); // ND_pinned(n) = 3; +UNSUPPORTED("3nlo9d762yf47jmo6mddv2rhj"); // else if (c == '?') +UNSUPPORTED("6jh0kyj5b3x2wq1r7hzqizihz"); // ND_pinned(n) = 2; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("56ez5c0ki8jup5kllwhd9zxdc"); // ND_pinned(n) = 1; +UNSUPPORTED("a5ap9hnosv5rv8rwk7ba8won1"); // *bbp = bb; +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("ezi6sqatds0b2fgekxfupde82"); // agerr(AGWARN, "graph %s, coord %s, expected four doubles\n", +UNSUPPORTED("5hu65ilq398d3ey6pxk0s0em9"); // agnameof(g), p); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5fn3mtocch1b26irypnr09t9m +// static void addEdge(edge_t * de, edge_t * e) +public static Object addEdge(Object... arg) { +UNSUPPORTED("1grpxuhc4kibkdljhpys1kapl"); // static void addEdge(edge_t * de, edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e5trxwbwododl3veoj1lp6b7c"); // short cnt = ED_count(de); +UNSUPPORTED("5iu5ll9p8cttx85mphqz03ncq"); // edge_t **el; +UNSUPPORTED("1bndnrccbbggbh4tnw3a6zabs"); // el = (edge_t **) (ED_to_virt(de)); +UNSUPPORTED("eoxhjwtyx2ujqsjoaaarclfrj"); // el = ALLOC(cnt + 1, el, edge_t *); +UNSUPPORTED("1ttlm7ew26jwfoq2o0170ns27"); // el[cnt] = e; +UNSUPPORTED("8teacoxlhsm20661x85b70o6c"); // ED_to_virt(de) = (edge_t *) el; +UNSUPPORTED("b3lq6k9r48uakki9aciefl1b0"); // ED_count(de)++; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7agb5w2cnyvb0z8q9nihjbsxp +// static void copyAttr (graph_t* g, graph_t* dg, char* attr) +public static Object copyAttr(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("9hbiavk3r6a6bq4cvcry8dscw"); // copyAttr (graph_t* g, graph_t* dg, char* attr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2na6lh852kcxird2ho1vichf5"); // char* ov_val; +UNSUPPORTED("848o3cjndi1v3xpwjjiebzbvp"); // Agsym_t* ov; +UNSUPPORTED("ca8z7ma72fqedls8lj4qi01ra"); // if ((ov = agattr(g,AGRAPH, attr, NULL))) { +UNSUPPORTED("emj7axj812hks27wjzvj3e5yt"); // ov_val = agxget(g,ov); +UNSUPPORTED("3pu4oq8u9tlqnjo0bc5vcowjl"); // ov = agattr(dg,AGRAPH, attr, NULL); +UNSUPPORTED("2rypj3m1cr0g1qbrw8fbn1q6g"); // if (ov) +UNSUPPORTED("9l6gavxujo2qkhfh7jwwgriu0"); // agxset (dg, ov, ov_val); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("3iuelryhfjpm6rm2im7gc5j5z"); // agattr(dg, AGRAPH, attr, ov_val); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6vdt9ftxoj8z4xb5zvray3g1m +// static graph_t *deriveGraph(graph_t * g, layout_info * infop) +public static Object deriveGraph(Object... arg) { +UNSUPPORTED("2sd6al0j42gndvdmp4rzw18jd"); // static graph_t *deriveGraph(graph_t * g, layout_info * infop) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("36r1dzbbxcnyuanwl0580q4nw"); // graph_t *dg; +UNSUPPORTED("cuxjodqo53rx3gt9t353c352r"); // node_t *dn; +UNSUPPORTED("8uujemixuhlf040icq3zsh7j8"); // graph_t *subg; +UNSUPPORTED("4tltvvpkm9lkmh7xst5u0auxy"); // char name[100]; +UNSUPPORTED("dj8wp6znctlnc9ae1rgvqwtj0"); // bport_t *pp; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("8u0qg8saz2tni323ov8v7ym8g"); // edge_t *de; +UNSUPPORTED("cbj0me372w66gi341wwhu1uxz"); // int i, id = 0; +UNSUPPORTED("5o8czyuixfuavbsljaqx0o0co"); // sprintf(name, "_dg_%d", infop->gid++); +UNSUPPORTED("41xjj6amd58fjieqo5xy29iwq"); // if (Verbose >= 2) +UNSUPPORTED("2jw7n9j1r26v41dzbriysfuph"); // fprintf(stderr, "derive graph %s of %s\n", name, agnameof(g)); +UNSUPPORTED("ass9x7oye1kqh43r99fe134rc"); // dg = agopen("derived", Agstrictdirected,((Agdisc_t *)0)); +UNSUPPORTED("8u7x1w8qeiknrzdmu54br8hgh"); // agbindrec(dg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); +UNSUPPORTED("1drj83vu125frg9jj9i95swg0"); // GD_alg(dg) = (void *) (gdata*)zmalloc(sizeof(gdata)); /* freed in freeDeriveGraph */ +UNSUPPORTED("4d4xxxlu1ervuob2lrn7bp8w7"); // GD_ndim(dg) = GD_ndim(g); +UNSUPPORTED("ad3gj6lsuor2yei2uael49jhb"); // /* Copy attributes from g. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("134w8vcs8qk4v9vf1z1wp9vg0"); // copyAttr(g,dg,"overlap"); +UNSUPPORTED("5fwoygmjkymrgxdkfmkutsvuz"); // copyAttr(g,dg,"sep"); +UNSUPPORTED("433rnj6ixonm6y9ctmp9h9lgs"); // copyAttr(g,dg,"K"); +UNSUPPORTED("449dsc5wrhyuj3iwozcdd7sdd"); // /* create derived nodes from clusters */ +UNSUPPORTED("7naa6f8pevjidfr7m41eli6xj"); // for (i = 1; i <= GD_n_cluster(g); i++) { +UNSUPPORTED("9ddxwk9qkst1jg6m81vwuwn81"); // boxf fix_bb = {{ MAXDOUBLE, MAXDOUBLE },{ -MAXDOUBLE, -MAXDOUBLE }}; +UNSUPPORTED("cpbcovu6u9jpbhniuwko58sge"); // subg = GD_clust(g)[i]; +UNSUPPORTED("cxmz2wd4fqxujrjcaogvck4n7"); // do_graph_label(subg); +UNSUPPORTED("d25721erilxnl8e6wgtvwwf4j"); // dn = mkDeriveNode(dg, agnameof(subg)); +UNSUPPORTED("2p0a7ndqiu7hj4i6qiv1snx4l"); // ND_clust(dn) = subg; +UNSUPPORTED("6nxi4co9zclo5acd9emsgntyw"); // ND_id(dn) = id++; +UNSUPPORTED("bt358jfwmn2uq27qg8kgtungu"); // if (infop->G_coord) +UNSUPPORTED("7f7y9g4k5ts6wgqw0qenbhtu0"); // chkPos(subg, dn, infop, &fix_bb); +UNSUPPORTED("cy3v8r735frrrifffladjezdu"); // for (n = agfstnode(subg); n; n = agnxtnode(subg, n)) { +UNSUPPORTED("1xlso3piaeev0go6meyr8boiz"); // (ND_next(n)) = dn; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("80rcuwseddkt07frvwz9n17vt"); // if (ND_pinned(dn)) { +UNSUPPORTED("8a2zdxi6udoat007cfp9w4bkw"); // ND_pos(dn)[0] = (fix_bb.LL.x + fix_bb.UR.x) / 2; +UNSUPPORTED("c69q3ml4t91kgitsc44ogkoa5"); // ND_pos(dn)[1] = (fix_bb.LL.y + fix_bb.UR.y) / 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("617ecq2paqeo8ldlt01h7q0oz"); // /* create derived nodes from remaining nodes */ +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("2ix5xgrr9i5zasv51xrt8rdxb"); // if (!(ND_next(n))) { +UNSUPPORTED("chh77aumtkozm98s2n3hq6ntm"); // if ((ND_clust(n)) && ((ND_clust(n)) != (((gdata*)(GD_alg(g)))->parent))) { +UNSUPPORTED("eox2yyzidryds7lm2todgq3g2"); // agerr (AGERR, "node \"%s\" is contained in two non-comparable clusters \"%s\" and \"%s\"\n", agnameof(n), agnameof(g), agnameof((ND_clust(n)))); +UNSUPPORTED("5igby0q9jkycahnikpdleoyio"); // longjmp (jbuf, 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8dikkgctkq3s35v4tz9q2ejit"); // (ND_clust(n)) = g; +UNSUPPORTED("9rhp942iykmc0yotzfkotd12d"); // if ((ND_clustnode(n))) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("bv8j18oa5brhrd164npw7573f"); // dn = mkDeriveNode(dg, agnameof(n)); +UNSUPPORTED("1xlso3piaeev0go6meyr8boiz"); // (ND_next(n)) = dn; +UNSUPPORTED("2agpwv8n236x82s259zsvvbjc"); // ND_id(dn) = id++; +UNSUPPORTED("3tgv5xfy7e1q5y0rl8zogrrsz"); // ND_width(dn) = ND_width(n); +UNSUPPORTED("32riuc0tbefhrw67o8opdcooo"); // ND_height(dn) = ND_height(n); +UNSUPPORTED("7hfs579l04890tsdi5zlthon2"); // ND_lw(dn) = ND_lw(n); +UNSUPPORTED("cwno1a7tk3plxczie8ckeo13v"); // ND_rw(dn) = ND_rw(n); +UNSUPPORTED("eueztzwym8i21m59nw8oo4il7"); // ND_ht(dn) = ND_ht(n); +UNSUPPORTED("3lmyb3a76s2d2fy2t62go74vl"); // ND_shape(dn) = ND_shape(n); +UNSUPPORTED("2xf64jj50n2mfjsjxqv38kqvb"); // ND_shape_info(dn) = ND_shape_info(n); +UNSUPPORTED("6b4uf9mvh7xmc7zlfisy84j5z"); // if (ND_pinned(n)) { +UNSUPPORTED("3wkwtu9wns6c4a2skfpx1c4ox"); // ND_pos(dn)[0] = ND_pos(n)[0]; +UNSUPPORTED("319nx1xdjcjnbkoi5vxe2wowp"); // ND_pos(dn)[1] = ND_pos(n)[1]; +UNSUPPORTED("42b5qiqttjn7ragj9irug02py"); // ND_pinned(dn) = ND_pinned(n); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("jq9juku0mxk2dheeaietg5jj"); // (((dndata*)(ND_alg(dn)))->dn) = n; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e8fak2kgyre9b18od8wyrjlw2"); // /* add edges */ +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("ak952thd788dbr90m2fvaklyu"); // edge_t *e; +UNSUPPORTED("25r3mrk84sqvejk2q2dd81aa1"); // node_t *hd; +UNSUPPORTED("bp7hjq9fr800l7cjn5hojjyos"); // node_t *tl = (ND_next(n)); +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("bkfde9mm61hzm3azi6xouz3pv"); // hd = (ND_next(aghead(e))); +UNSUPPORTED("2zvgmnv71vkplklm2dmwu24o6"); // if (hd == tl) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("7yvps7igfif7acnwp70cumlel"); // if (hd > tl) +UNSUPPORTED("1g6uo9qs73mwhukefmo4sngv5"); // de = agedge(dg, tl, hd, NULL,1); +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("1022owhcb88r8unps1boedbh4"); // de = agedge(dg, hd, tl, NULL,1); +UNSUPPORTED("7hwwfug2934h5tg5e3qmi8m3w"); // agbindrec(de, "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); +UNSUPPORTED("22z76uz4xfa28nyk5h3d1gsj3"); // ED_dist(de) = ED_dist(e); +UNSUPPORTED("bcw18t5zay7blame1o4bs12tq"); // ED_factor(de) = ED_factor(e); +UNSUPPORTED("c9nabs4xy7r0fpfmurplkrldy"); // /* fprintf (stderr, "edge %s -- %s\n", tl->name, hd->name); */ +UNSUPPORTED("8625nhoiscdsh67j2rus26bgp"); // (((dndata*)(ND_alg(hd)))->wdeg)++; +UNSUPPORTED("1arf55zpaosytbk2doe07hiqh"); // (((dndata*)(ND_alg(tl)))->wdeg)++; +UNSUPPORTED("3sndhzronf938mbr4kohylk4l"); // if ((ED_to_virt(de) == 0)) { +UNSUPPORTED("dp31c14fxs9t515jf1j36ihhw"); // (((dndata*)(ND_alg(hd)))->deg)++; +UNSUPPORTED("eymwfx8dwyyyryw89ninijw61"); // (((dndata*)(ND_alg(tl)))->deg)++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("cic1cuypauxmkiv3txyydlocu"); // addEdge(de, e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5tn7h1exp6stahb3elxmbtchg"); // /* transform ports */ +UNSUPPORTED("ac4pgb337ukder3sujg5h9q5t"); // if ((pp = (((gdata*)(GD_alg(g)))->ports))) { +UNSUPPORTED("34rzfa5kqpuclqyhx08ql0nhp"); // bport_t *pq; +UNSUPPORTED("5a0euc7zkzo97d75q8yv5hf9t"); // node_t *m; +UNSUPPORTED("b3nm6dhki6i23iyz1l344asp2"); // int sz = (((gdata*)(GD_alg(g)))->nports); +UNSUPPORTED("6ppwml6ylufuxfg2zrxs0z2ru"); // /* freed in freeDeriveGraph */ +UNSUPPORTED("axu3u8881pm5plosjerpfoefx"); // (((gdata*)(GD_alg(dg)))->ports) = pq = (bport_t*)zmalloc((sz + 1)*sizeof(bport_t)); +UNSUPPORTED("11mr8ytde2yz4td1bzjpdypro"); // sz = 0; +UNSUPPORTED("ejmu2tqe004hmad7z3uen9sbd"); // while (pp->e) { +UNSUPPORTED("1dd25u4wqgu3t9n27w1glf2z4"); // m = (ND_next(pp->n)); +UNSUPPORTED("d4z9wura62xq75gxmoywpoeos"); // /* Create port in derived graph only if hooks to internal node */ +UNSUPPORTED("8j32lcooudgseo85a0j51vz55"); // if (m) { +UNSUPPORTED("am8i6svk94imehfp9byv7j5wc"); // dn = mkDeriveNode(dg, portName(g, pp)); +UNSUPPORTED("aciu287d4ri031b89kgg3xz6x"); // sz++; +UNSUPPORTED("bhfdahdflxt9gaf1pj0afw7jy"); // ND_id(dn) = id++; +UNSUPPORTED("3aues0xosdqt23ymmjcziopg4"); // if (dn > m) +UNSUPPORTED("7em53cu4xxwoel9gqq82t7lle"); // de = agedge(dg, m, dn, NULL,1); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("e951yp20hzuifh083f6spalcu"); // de = agedge(dg, dn, m, NULL,1); +UNSUPPORTED("2j1ohh7g5vwkdgxp5t9t3ny2"); // agbindrec(de, "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); +UNSUPPORTED("5fe058fybewaey90x4td3ppc9"); // ED_dist(de) = ED_dist(pp->e); +UNSUPPORTED("7a43n1n8dskthaivv69xyb698"); // ED_factor(de) = ED_factor(pp->e); +UNSUPPORTED("3f4oahnf205anxmrm685rba8f"); // addEdge(de, pp->e); +UNSUPPORTED("9tchk5ojkcxw2gm68riqvjif8"); // (((dndata*)(ND_alg(dn)))->wdeg)++; +UNSUPPORTED("9q4bhzgr7c0e098pbmmvhqmg0"); // (((dndata*)(ND_alg(m)))->wdeg)++; +UNSUPPORTED("7j33x9kn3fots2djc9yah9goz"); // (((dndata*)(ND_alg(dn)))->deg)++; /* ports are unique, so this will be the first and */ +UNSUPPORTED("55lin4yd4sfuoga01gowno3xn"); // (((dndata*)(ND_alg(m)))->deg)++; /* only time the edge is touched. */ +UNSUPPORTED("b0lwy0fznsomw5chpbt1nj5h0"); // pq->n = dn; +UNSUPPORTED("bykxehfnrgknuf93a5cvk1qyd"); // pq->alpha = pp->alpha; +UNSUPPORTED("9r66gr9ec26zwd6yk7l3f05a"); // pq->e = de; +UNSUPPORTED("4ylj4yiwdkddsiqns5j3vq7m3"); // pq++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4t42c85s64mps71a1sjc7yoey"); // pp++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5bhygv54mbde0tmajhaqwxznv"); // (((gdata*)(GD_alg(dg)))->nports) = sz; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7t6k0j9ffr522l0t8a1atpxqy"); // return dg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 33v5v2wokaumqudm0d0qlk1t6 +// static int ecmp(const void *v1, const void *v2) +public static Object ecmp(Object... arg) { +UNSUPPORTED("cglhxc83kobq6uvln39iefpub"); // static int ecmp(const void *v1, const void *v2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2s7x8car3i6c4lrri2g00b10o"); // erec *e1 = (erec *) v1; +UNSUPPORTED("ea12jvnp6iz8kr6o8prqn92b5"); // erec *e2 = (erec *) v2; +UNSUPPORTED("esrrdcedcjc2527zw88yyq6l3"); // if (e1->alpha > e2->alpha) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("29zqx7u24t3hbc2w6nsv43a6z"); // else if (e1->alpha < e2->alpha) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("8ix5otcc1qjwrnv4bmhq4d4qo"); // else if (e1->dist2 > e2->dist2) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("8rbp65y6jnfq1kcqsvoq98f9g"); // else if (e1->dist2 < e2->dist2) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9yzpataeczxhgj2u09bsbpk1k +// static erec *getEdgeList(node_t * n, graph_t * g) +public static Object getEdgeList(Object... arg) { +UNSUPPORTED("4js6nnzf22zxc98rmxu2sy0m5"); // static erec *getEdgeList(node_t * n, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5wjozc08ggypzjbs49uzfopou"); // erec *erecs; +UNSUPPORTED("zc25c5rgocmjnco9wlpa090t"); // int deg = (((dndata*)(ND_alg(n)))->deg); +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("an5v3e2oy9hxck46bwp0l8a0k"); // double dx, dy; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("8rdaar71kdkz8cpsoil3hqta0"); // node_t *m; +UNSUPPORTED("cbmm4fkvgxlhv0t133owcx0jn"); // /* freed in expandCluster */ +UNSUPPORTED("250grrs502e0mg71llqz7y3ey"); // erecs = (erec*)zmalloc((deg + 1)*sizeof(erec)); +UNSUPPORTED("9z3er49pc4h2rxja5r9grdo0h"); // i = 0; +UNSUPPORTED("dcuhjbsiioawp6zspvonwd4px"); // for (e = agfstedge(g, n); e; e = agnxtedge(g, e, n)) { +UNSUPPORTED("cyvbvhb35lmo87fsomu1d96zj"); // if (aghead(e) == n) +UNSUPPORTED("d7s4k8dv2n952zh2uzy586rlg"); // m = agtail(e); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("1f958q8a7vsixzpgoltd50ck9"); // m = aghead(e); +UNSUPPORTED("230hngcg1h0kimh2x9qmw8aa6"); // dx = ND_pos(m)[0] - ND_pos(n)[0]; +UNSUPPORTED("cp7yivxkc1o2123e3fj4fld40"); // dy = ND_pos(m)[1] - ND_pos(n)[1]; +UNSUPPORTED("ebc0qzcdpyvo9hv477ji0d4ld"); // erecs[i].e = e; +UNSUPPORTED("9ot3jasi873r93jjz3q7k0xl"); // erecs[i].alpha = atan2(dy, dx); +UNSUPPORTED("ai500wq75tl9pns9eu0ebhnp2"); // erecs[i].dist2 = dx * dx + dy * dy; +UNSUPPORTED("chd2f5z6rt19lbaye25ej7q6j"); // i++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("eo3y5e9msr0sbf98a9oq70rlx"); // assert(i == deg); +UNSUPPORTED("4jcqtkewsctxthnbzmwkgsef1"); // qsort(erecs, deg, sizeof(erec), ecmp); +UNSUPPORTED("19r2qn10360fdoz0ctd9swuhi"); // /* ensure no two angles are equal */ +UNSUPPORTED("6xfuj7a6ekpi0iz8v543s6enb"); // if (deg >= 2) { +UNSUPPORTED("3y61w6tgxj0gpwvw3bw2rtq34"); // int j; +UNSUPPORTED("armuznkqp0y34r5qokhqwfiiw"); // double a, inc, delta, bnd; +UNSUPPORTED("5or0zebpgtvozlmal8j2q1ymh"); // i = 0; +UNSUPPORTED("b9y24dq92kvg4bpwzicghrrl9"); // while (i < deg - 1) { +UNSUPPORTED("a8npf73y75uu4rqo3f0hnw1hj"); // a = erecs[i].alpha; +UNSUPPORTED("2rrc6js2pfjyzqzzjj6rg6kpa"); // j = i + 1; +UNSUPPORTED("7yy089fn32r4vqha2r41wd3ia"); // while ((j < deg) && (erecs[j].alpha == a)) +UNSUPPORTED("ebt0qwigtq6akhjzerdy8d52b"); // j++; +UNSUPPORTED("6owp0mbm26f3nqj1fmbqw05yl"); // if (j == i + 1) +UNSUPPORTED("3c95efoun51kjpyj1cz86clhq"); // i = j; +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("1mjvaixyabzfkloamfs33m997"); // if (j == deg) +UNSUPPORTED("93m0uslkw81crhho73k7j0iyw"); // bnd = M_PI; /* all values equal up to end */ +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("38sca4776wdqbui5fjgg0rhj"); // bnd = erecs[j].alpha; +UNSUPPORTED("ekjte0x5h4d5chvnzxb8syu3g"); // delta = (bnd - a) / (j - i); +UNSUPPORTED("9vvs5ywf8o7pulajli26ynshh"); // if (delta > (M_PI/90)) +UNSUPPORTED("dlu9lh11lmhhkokx86hq43rek"); // delta = (M_PI/90); +UNSUPPORTED("cl85s8tfki4o6j9rxhi27ibob"); // inc = 0; +UNSUPPORTED("an7nwlp3eq8f7mnv3seg9zcoz"); // for (; i < j; i++) { +UNSUPPORTED("2dznixqoe5fhu0xxwy0li9j0j"); // erecs[i].alpha += inc; +UNSUPPORTED("31c8klms0zg7ed5pbia4p7ue7"); // inc += delta; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4c2yyc1h799tvjuqrd5sikjsk"); // return erecs; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5f5sxn4g2wwqsa042183bnkkb +// static int genPorts(node_t * n, erec * er, bport_t * pp, int idx, double bnd) +public static Object genPorts(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("a7opwz89ty2fab6t5020fxepv"); // genPorts(node_t * n, erec * er, bport_t * pp, int idx, double bnd) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dxz8gujppjqsa63merjuwp9ak"); // node_t *other; +UNSUPPORTED("6iv4xusq3ncisurzdtlt8lhe9"); // int cnt; +UNSUPPORTED("nvb8xxeb5opdi1chqigr5ll8"); // edge_t *e = er->e; +UNSUPPORTED("bdbvy4bgsn8d0vzx18gusxheq"); // edge_t *el; +UNSUPPORTED("54sqpcif3uwzim5rzj2yfvcv"); // edge_t **ep; +UNSUPPORTED("etdgofjtpee3ial3gmpgysso0"); // double angle, delta; +UNSUPPORTED("u5aovpvnb8qg67qiutwqcinb"); // int i, j, inc; +UNSUPPORTED("7x9qeha2xtvr3yc8vzkquaayt"); // cnt = ED_count(e); +UNSUPPORTED("6qn90nw5pl3r7g62aowp7ktsb"); // if (aghead(e) == n) +UNSUPPORTED("5a60qbv8r5b666nfetu7fbotj"); // other = agtail(e); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("ddn2u7jjuy674veth7q72p0sb"); // other = aghead(e); +UNSUPPORTED("ancvozx0amrnu89ky41goacj3"); // delta = (bnd - er->alpha) / cnt; +UNSUPPORTED("5iv4gni7wdiw3u34jy7iefzel"); // angle = er->alpha; +UNSUPPORTED("524im1x5zfkbrj2y3uvtc0o2q"); // if (delta > (M_PI/90)) +UNSUPPORTED("5hvdfsr5lwj48jc8ne066wis3"); // delta = (M_PI/90); +UNSUPPORTED("dmzdo20j5ywmevv4pucm657dl"); // if (n < other) { +UNSUPPORTED("efntztef5scb94lalziv9p74c"); // i = idx; +UNSUPPORTED("59w8ipq1hfgjppab0ne4vt5rn"); // inc = 1; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("9108b9iyl0c19by2pv8n8pxm5"); // i = idx + cnt - 1; +UNSUPPORTED("a7uocrd0csmarv70416d9ro6d"); // inc = -1; +UNSUPPORTED("1d5i6ukso5ctxozysewfhh2ji"); // angle += delta * (cnt - 1); +UNSUPPORTED("9mml7cxrkh63582n90i7pmpri"); // delta = -delta; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4jwzdjf4m5joh6ns1sik7sefr"); // ep = (edge_t **) (el = ED_to_virt(e)); +UNSUPPORTED("87erwse4muo7uek029fa7troo"); // for (j = 0; j < ED_count(e); j++, ep++) { +UNSUPPORTED("6vqzt3ohw6lxk2qzpwjo6b3yu"); // el = *ep; +UNSUPPORTED("4c8uyhenmzmpllixxgxerkicn"); // pp[i].e = el; +UNSUPPORTED("aqj2zus52vmgjzmi8fjoaj8fy"); // pp[i].n = ((ND_next(agtail(el))) == n ? agtail(el) : aghead(el)); +UNSUPPORTED("7j2e3e5y1jlynpdt66xosutmf"); // pp[i].alpha = angle; +UNSUPPORTED("2zobp3cnpuyfg0efxtuusws2c"); // i += inc; +UNSUPPORTED("aeyh09i9hn8lki7e6pkmnl3t7"); // angle += delta; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ahjledpa6jcj7ra1dv3nto2b0"); // return (idx + cnt); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1pzmadkv6kzksm5zd4naotpzn +// static graph_t *expandCluster(node_t * n, graph_t * cg) +public static Object expandCluster(Object... arg) { +UNSUPPORTED("riju9qc2n42gxw3wilvyq5zs"); // static graph_t *expandCluster(node_t * n, graph_t * cg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2wfwicsc3edie6yyd9xhtjbnv"); // erec *es; +UNSUPPORTED("1pmrh42jv7qy6796ro7kb0kvf"); // erec *ep; +UNSUPPORTED("3kc67b1kq37hwnadtpynyn0w1"); // erec *next; +UNSUPPORTED("f5k50h9iahfqirvly6e9mlu39"); // graph_t *sg = ND_clust(n); +UNSUPPORTED("dj8wp6znctlnc9ae1rgvqwtj0"); // bport_t *pp; +UNSUPPORTED("6spducho5ji2ipuw64ubl7x70"); // int sz = (((dndata*)(ND_alg(n)))->wdeg); +UNSUPPORTED("716hjbifedt25yhusduvy5hlt"); // int idx = 0; +UNSUPPORTED("7zng16j5qq8oz1p14ahsi4o2b"); // double bnd; +UNSUPPORTED("8eti18xdz2mo8tqmx9hea5gj"); // if (sz != 0) { +UNSUPPORTED("5ee465jmjebzumoi8t37ajkni"); // /* freed in cleanup_subgs */ +UNSUPPORTED("dhgbh72vlj9t041pgvr8b4pz1"); // pp = (bport_t*)zmalloc((sz + 1)*sizeof(bport_t)); +UNSUPPORTED("6uv9zk4so2vyd8eyt5yk7u224"); // /* create sorted list of edges of n */ +UNSUPPORTED("5h94e1eoc5lgyf8oryr168kk7"); // es = ep = getEdgeList(n, cg); +UNSUPPORTED("5pjygnv0w421soihur3j2n19s"); // /* generate ports from edges */ +UNSUPPORTED("cv0otlibqhj5qkcyd9j21cjyw"); // while (ep->e) { +UNSUPPORTED("16gz4mmyn1cns1ghgi4jnxtjz"); // next = ep + 1; +UNSUPPORTED("epalo8tlkkido0vcxo64ti05o"); // if (next->e) +UNSUPPORTED("8wo10h6flofq3f62vy4o7kbfs"); // bnd = next->alpha; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("biobr00aq48njyaoumysv2mdt"); // bnd = 2 * M_PI + es->alpha; +UNSUPPORTED("dzv1s960k4mmyjifb39ofyf4w"); // idx = genPorts(n, ep, pp, idx, bnd); +UNSUPPORTED("77abayl2usgy0cb19tv6lfa0a"); // ep = next; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7pzx73jx9fdlfpom5fvuisf30"); // assert(idx == sz); +UNSUPPORTED("5yg1wxrsyr26qkpfg5hb6ox69"); // (((gdata*)(GD_alg(sg)))->ports) = pp; +UNSUPPORTED("2pte1i8la6fqapoqo9i6jq2jd"); // (((gdata*)(GD_alg(sg)))->nports) = sz; +UNSUPPORTED("4vjbnrhp6sp81ysgpigk0w9fe"); // free(es); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1jw141gg4omv8r72xcbl5ln0o"); // return sg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 y2v1e8mlrtal0inmqimbmwil +// static void setClustNodes(graph_t* root) +public static Object setClustNodes(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("a1xr13co28v2x7itvx57ckyjv"); // setClustNodes(graph_t* root) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("2n9wv2dwa543h4bdjd6u9qil3"); // graph_t* p; +UNSUPPORTED("43ygqm2wusmc5ufanrf2tywuv"); // pointf ctr; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("3qdhpefftpzkhd1uimovgz5jh"); // double w, h, h_pts; +UNSUPPORTED("d0p8olt4t1x5mfdfjmckju3y8"); // double h2, w2; +UNSUPPORTED("d9xe8rt1gktknfj0nxqb22eba"); // pointf *vertices; +UNSUPPORTED("8uyptmsbxy8cnb2yc5e1zjy93"); // for (n = agfstnode(root); n; n = agnxtnode(root, n)) { +UNSUPPORTED("4b1hbbxns6t6oevwjsbv4513z"); // if (!(ND_clustnode(n))) continue; +UNSUPPORTED("2m6wdm3211yoi47ht9uwrwgsm"); // p = (ND_clust(n)); +UNSUPPORTED("5b9nka9jqnnowwqftn354445m"); // bb = (((gdata*)(GD_alg(p)))->bb); /* bbox in parent cluster's coordinates */ +UNSUPPORTED("ehx0x2r1iwiwqns4hwag5ww6q"); // w = bb.UR.x - bb.LL.x; +UNSUPPORTED("ecqr8i6dhetdps522wjdfb2c"); // h = bb.UR.y - bb.LL.y; +UNSUPPORTED("aqt54dcfuupky9j2d2wlh5rd8"); // ctr.x = w / 2.0; +UNSUPPORTED("vyxkz174l2mhl7ztncntmmsz"); // ctr.y = h / 2.0; +UNSUPPORTED("1olcqhh2kmzq3hpz80wh71gcr"); // w2 = ((w / 2.0)*(double)72); +UNSUPPORTED("c25hsrybs7p3ee3xen5qd13gj"); // h2 = ((h / 2.0)*(double)72); +UNSUPPORTED("lcz07cdtav0i5pkdm4ulyeif"); // h_pts = ((h)*(double)72); +UNSUPPORTED("bw4ulfhcuzvtfy8f1a0fjmiug"); // ND_pos(n)[0] = ctr.x; +UNSUPPORTED("ec6oo47jscvlloh5x7u26ompb"); // ND_pos(n)[1] = ctr.y; +UNSUPPORTED("6as0e9whx5epwmgr5h91oood0"); // ND_width(n) = w; +UNSUPPORTED("exytwm9csyh4wkam8a94p7hd7"); // ND_height(n) = h; +UNSUPPORTED("2izyeakwnte2k0f1rym0focld"); // /* ND_xsize(n) = POINTS(w); */ +UNSUPPORTED("928hx9xiah08q2u08vu7ukgpt"); // ND_lw(n) = ND_rw(n) = w2; +UNSUPPORTED("d0yspu392ttmkkqljtfb2eskr"); // ND_ht(n) = h_pts; +UNSUPPORTED("22vsci7n08rkutzk5kh2yhl7c"); // vertices = ((polygon_t *) ND_shape_info(n))->vertices; +UNSUPPORTED("dtnoqplb6f5t6rjoetdbn7dpt"); // vertices[0].x = ND_rw(n); +UNSUPPORTED("no8acgmdosrbl407jbxil2zz"); // vertices[0].y = h2; +UNSUPPORTED("5l5suyq7b3qoi5470ao9b1ihn"); // vertices[1].x = -ND_lw(n); +UNSUPPORTED("4edoiulp1b902plttl0pprjs9"); // vertices[1].y = h2; +UNSUPPORTED("b0yvqxi6n1vwbsngtqj8o03fp"); // vertices[2].x = -ND_lw(n); +UNSUPPORTED("exj9asgcw08vxfr39ityozdfc"); // vertices[2].y = -h2; +UNSUPPORTED("79hj8e9phwhpt992ut5q0iczf"); // vertices[3].x = ND_rw(n); +UNSUPPORTED("93e6r0lx82k87elewlj8r4an5"); // vertices[3].y = -h2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2uewd3mw1hgw96jr7xtn0ic0j +// static void layout(graph_t * g, layout_info * infop) +public static Object layout(Object... arg) { +UNSUPPORTED("9wf2yhzjprzwjjvfeh8z88me2"); // static +UNSUPPORTED("dh8zvn9r31zuya7cuy1pahkna"); // void layout(graph_t * g, layout_info * infop) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("88zvgip6mka5eie52temi7ynd"); // point *pts = NULL; +UNSUPPORTED("36r1dzbbxcnyuanwl0580q4nw"); // graph_t *dg; +UNSUPPORTED("cuxjodqo53rx3gt9t353c352r"); // node_t *dn; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("e75aepnaqkzqf68ewt7a4zqfi"); // graph_t *cg; +UNSUPPORTED("5wyi0wasd5kecf6rhsqdjk7v2"); // graph_t *sg; +UNSUPPORTED("9qoemozuf8uc27tr5yncxluhz"); // graph_t **cc; +UNSUPPORTED("8gobe9nq2l5rtdvjoqtow0smk"); // graph_t **pg; +UNSUPPORTED("bgwb4n61b6v6hggxzjxkzyyhh"); // int c_cnt; +UNSUPPORTED("d8w902k7y57534m1l3mqq9o65"); // int pinned; +UNSUPPORTED("737jd5uo7xo54hyd5aao8g0aw"); // xparams xpms; +UNSUPPORTED("cve2on8gll5i0vomy8lnwhai2"); // if (Verbose) { +UNSUPPORTED("rheewzyfvag1kqk93eajs451"); // fprintf (stderr, "layout %s\n", agnameof(g)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cixz5s3nezkl0juedeg7g84v"); // /* initialize derived node pointers */ +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("b11q9bnts0snyhhzbw1jj9miy"); // (ND_next(n)) = 0; +UNSUPPORTED("7hk4syj6pc3qquqkt2x0z7ia3"); // dg = deriveGraph(g, infop); +UNSUPPORTED("1ed3c4bs6xzjsg99joywylwdz"); // cc = pg = findCComp(dg, &c_cnt, &pinned); +UNSUPPORTED("bzg4jbqclh75xauf8ahwwlqeu"); // while ((cg = *pg++)) { +UNSUPPORTED("6p7xfvlw6j6ymy8dd4rtsex4c"); // fdp_tLayout(cg, &xpms); +UNSUPPORTED("4kwu1qpsymozefbkw7esfkp0s"); // for (n = agfstnode(cg); n; n = agnxtnode(cg, n)) { +UNSUPPORTED("19hq5zcwrpz3kbanolctt1rga"); // if (ND_clust(n)) { +UNSUPPORTED("ehq21whkkcc52880147xdb98t"); // pointf pt; +UNSUPPORTED("f3yuqnp4vbccljwzhl5z97asc"); // sg = expandCluster(n, cg); /* attach ports to sg */ +UNSUPPORTED("cpdfu4kunfnauzugdp79ygbed"); // layout(sg, infop); +UNSUPPORTED("8vfg96ob62g74ognc7r4pyolw"); // /* bb.LL == origin */ +UNSUPPORTED("9og4fo5ydbv2iekdwdiithgp7"); // ND_width(n) = (((gdata*)(GD_alg(sg)))->bb).UR.x; +UNSUPPORTED("ar5b8mgij9tdpbvonzvniy4w9"); // ND_height(n) = (((gdata*)(GD_alg(sg)))->bb).UR.y; +UNSUPPORTED("m7uq67pf5n4kny8dsfqyvlgz"); // pt.x = 72 * (((gdata*)(GD_alg(sg)))->bb).UR.x; +UNSUPPORTED("7qqo12s2ly8pftx69v9ho2fpx"); // pt.y = 72 * (((gdata*)(GD_alg(sg)))->bb).UR.y; +UNSUPPORTED("6su2k057bgfgqwapl1bq6re22"); // ND_rw(n) = ND_lw(n) = pt.x/2; +UNSUPPORTED("37rbzv83unu3wx38yhpqt3mfm"); // ND_ht(n) = pt.y; +UNSUPPORTED("1lbnffsi0sqewlhnfr306b5os"); // } else if ((!(((dndata*)(ND_alg(n)))->dn) && !ND_clust(n))) +UNSUPPORTED("12ovzyxhse31ofvnedz9rnbmi"); // agdelete(cg, n); /* remove ports from component */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2hwmcp6r05fwoszwknajwr4e"); // /* Remove overlaps */ +UNSUPPORTED("bd30sghv773eh25e8172kcp79"); // if (agnnodes(cg) >= 2) { +UNSUPPORTED("dde6icyk8p097navhq7n3d4rv"); // if (g == infop->rootg) +UNSUPPORTED("o91hsoxdu3977z0no3btqze1"); // normalize (cg); +UNSUPPORTED("9us3yztqv6awyy06jb3151pyz"); // fdp_xLayout(cg, &xpms); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6mqatxukn8l6algw6wnicdq1h"); // /* set bounding box but don't use ports */ +UNSUPPORTED("6n9q6i2oz0h5lg51ne8sgdjd7"); // /* setBB (cg); */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ach533dwiyc833o0pcf45m8ey"); // /* At this point, each connected component has its nodes correctly +UNSUPPORTED("dtlaursnpahyf5yquwl2hogzu"); // * positioned. If we have multiple components, we pack them together. +UNSUPPORTED("cm4nzlpqz8bqyrm7er7yidp10"); // * All nodes will be moved to their new positions. +UNSUPPORTED("8y4iimz4emw890c9cxiq368e7"); // * NOTE: packGraphs uses nodes in components, so if port nodes are +UNSUPPORTED("8fxnvrdauinzrmk5b92vzkmwb"); // * not removed, it won't work. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("2dnakiplqvzvuwlmi04ym76w5"); // /* Handle special cases well: no ports to real internal nodes +UNSUPPORTED("3ngzsmdezip2r5y6yu5ven665"); // * Place cluster edges separately, after layout. +UNSUPPORTED("d7ob3q5h2kihofcd4ddnyn9ge"); // * How to combine parts, especially with disparate components? +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("69t9ynphg2g4zqbfhks86yntc"); // if (c_cnt > 1) { +UNSUPPORTED("3i3alyfv4qh2fz47okmy66eyf"); // boolean *bp; +UNSUPPORTED("rf0rb7e28dtuppfrbea2pr6i"); // if (pinned) { +UNSUPPORTED("c0t0fbfp6yuwwowbu3c3qzmmf"); // bp = (boolean*)zmalloc((c_cnt)*sizeof(boolean)); +UNSUPPORTED("3bzp377yjo1rz02ji0pcubqdg"); // bp[0] = NOT(0); +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("e3vi166v7e69g73awva2677ii"); // bp = 0; +UNSUPPORTED("6oq7dybkkhotxhmrffm6zq654"); // infop->pack.fixed = bp; +UNSUPPORTED("3kwssq0p8kfzn8oj843c4sadv"); // pts = putGraphs(c_cnt, cc, NULL, &infop->pack); +UNSUPPORTED("ba9wjjntjmbkmsqme4dmd6vly"); // if (bp) +UNSUPPORTED("12zvaavn1p29dn5i0f00qjmvj"); // free(bp); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("b6puqm8dbf47p8okgmwft9wm8"); // pts = NULL; +UNSUPPORTED("80omcjjgczpgh78ubtnewnqeo"); // if (c_cnt == 1) +UNSUPPORTED("d1p8uifde77cs8ru5l0jthcor"); // compute_bb(cc[0]); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8uqxq2wibo1qumfk9jb959hw0"); // /* set bounding box of dg and reposition nodes */ +UNSUPPORTED("a49nqy0s2t1fsx52x7a00ng6m"); // finalCC(dg, c_cnt, cc, pts, g, infop); +UNSUPPORTED("1yomvtf3njcprecdmp7eq33o7"); // free (pts); +UNSUPPORTED("4rqo60r491fsqgbni456x6hci"); // /* record positions from derived graph to input graph */ +UNSUPPORTED("b0scw6vikd2qnty4kh34khl6q"); // /* At present, this does not record port node info */ +UNSUPPORTED("7nwtte44n9k20ku652pjxaf79"); // /* In fact, as noted above, we have removed port nodes */ +UNSUPPORTED("9v9aifyc1wn6fmqno12jtgowg"); // for (dn = agfstnode(dg); dn; dn = agnxtnode(dg, dn)) { +UNSUPPORTED("6ta70illj6ohfmqkcmf1wmybj"); // if ((sg = ND_clust(dn))) { +UNSUPPORTED("burgcn0sab271m2e67b9vs4e8"); // (((gdata*)(GD_alg(sg)))->bb).LL.x = ND_pos(dn)[0] - ND_width(dn) / 2; +UNSUPPORTED("45rvs2t96msophfe1x3mvh9uc"); // (((gdata*)(GD_alg(sg)))->bb).LL.y = ND_pos(dn)[1] - ND_height(dn) / 2; +UNSUPPORTED("1alcqvbu6g0lg3qq1qd411k4n"); // (((gdata*)(GD_alg(sg)))->bb).UR.x = (((gdata*)(GD_alg(sg)))->bb).LL.x + ND_width(dn); +UNSUPPORTED("296pr00pchso0t5tx7ml91gjg"); // (((gdata*)(GD_alg(sg)))->bb).UR.y = (((gdata*)(GD_alg(sg)))->bb).LL.y + ND_height(dn); +UNSUPPORTED("5tzeb32o52lqrqrfnrsdvlp6w"); // } else if ((n = (((dndata*)(ND_alg(dn)))->dn))) { +UNSUPPORTED("1topwhb5x9qma92g5gds1klvz"); // ND_pos(n)[0] = ND_pos(dn)[0]; +UNSUPPORTED("dvh5pxzw5ug0vj9xh6t0kbzmx"); // ND_pos(n)[1] = ND_pos(dn)[1]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("96o7eqvvi7yfzjh5cihnlmik1"); // (((gdata*)(GD_alg(g)))->bb) = (((gdata*)(GD_alg(dg)))->bb); +UNSUPPORTED("55phil4i9byyqk021s75t7jm5"); // /* clean up temp graphs */ +UNSUPPORTED("3oko0jiuaxgco73omavewl6ul"); // freeDerivedGraph(dg, cc); +UNSUPPORTED("799nquje2u0787f1v6vg7jeo4"); // free(cc); +UNSUPPORTED("cve2on8gll5i0vomy8lnwhai2"); // if (Verbose) { +UNSUPPORTED("egyar87ti23k1trkd58y9x5mn"); // fprintf (stderr, "end %s\n", agnameof(g)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e6vpkhzs8vppi1ddy6378h69x +// static void setBB(graph_t * g) +public static Object setBB(Object... arg) { +UNSUPPORTED("9gihlzux5i75iigxxvzci8y95"); // static void setBB(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("66b1xztgh3k2s120ukvbxb0oe"); // bb.LL.x = 72 * (((gdata*)(GD_alg(g)))->bb).LL.x; +UNSUPPORTED("pkikrl9ki5yy5rjpuhzhi6a4"); // bb.LL.y = 72 * (((gdata*)(GD_alg(g)))->bb).LL.y; +UNSUPPORTED("33pghp4flcuky4frryba6nm6n"); // bb.UR.x = 72 * (((gdata*)(GD_alg(g)))->bb).UR.x; +UNSUPPORTED("btca3fazt152tlo4fumfshra6"); // bb.UR.y = 72 * (((gdata*)(GD_alg(g)))->bb).UR.y; +UNSUPPORTED("8pjanfm12ixxbeb7k86g3z5p4"); // GD_bb(g) = bb; +UNSUPPORTED("7naa6f8pevjidfr7m41eli6xj"); // for (i = 1; i <= GD_n_cluster(g); i++) { +UNSUPPORTED("elctwbyabxid1y9nbaea8sjun"); // setBB(GD_clust(g)[i]); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dn6oox23u0h8iskougokslo7e +// void init_info(graph_t * g, layout_info * infop) +public static Object init_info(Object... arg) { +UNSUPPORTED("2lc3y7r4ks1cm6hql04o6t4hh"); // void init_info(graph_t * g, layout_info * infop) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("nw5y54zwq0b2slyao5wjz11m"); // infop->G_coord = agattr(g,AGRAPH, "coords", NULL); +UNSUPPORTED("9p4le4vmrhg113rhwle53g00s"); // infop->G_width = agattr(g,AGRAPH, "width", NULL); +UNSUPPORTED("a3bto8c232ov09lrrt8ffqjc0"); // infop->G_height = agattr(g, AGRAPH,"height", NULL); +UNSUPPORTED("56qpputejr9qv8j4odoy6niiq"); // infop->rootg = g; +UNSUPPORTED("1et75ypywlqixo81s24gievh1"); // infop->gid = 0; +UNSUPPORTED("713zzachlarjpl7ntk2ri17xs"); // infop->pack.mode = getPackInfo(g, l_node, 8 / 2, &(infop->pack)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5hmw0raf7fo7e1651a9c86ux6 +// static void mkClusters (graph_t * g, clist_t* pclist, graph_t* parent) +public static Object mkClusters(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("2eeb6d0sgy6unuutphirljrg0"); // mkClusters (graph_t * g, clist_t* pclist, graph_t* parent) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("33i6ihl97ygnd0nu3vshtyus2"); // graph_t* subg; +UNSUPPORTED("91n1af2pl9y3luspzlro6hvdn"); // clist_t list; +UNSUPPORTED("2yst7zq83i4vw7r2zd3r3obg8"); // clist_t* clist; +UNSUPPORTED("7uhikpp332vk10cbtpsbobb3w"); // if (pclist == NULL) { +UNSUPPORTED("1kigmw3i0vf7adlel77srggyr"); // clist = &list; +UNSUPPORTED("7q1y8ow8ah030fwaax0yka8dy"); // initCList(clist); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("2q6kb44buc8u4fiiy6rp8mde0"); // clist = pclist; +UNSUPPORTED("8us9duq9qebqx3gvmv2fhsz0s"); // for (subg = agfstsubg(g); subg; subg = agnxtsubg(subg)) +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("6wyv62qz1rfx3aa2yjoud4bb7"); // if (!strncmp(agnameof(subg), "cluster", 7)) { +UNSUPPORTED("20b6qijqfhqydfwqqvyon57vd"); // agbindrec(subg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); +UNSUPPORTED("p26065ja2s9vjrvvkxphqak"); // GD_alg(subg) = (void *) (gdata*)zmalloc(sizeof(gdata)); /* freed in cleanup_subgs */ +UNSUPPORTED("3qq65xelnxow982faji3nenpa"); // GD_ndim(subg) = GD_ndim(parent); +UNSUPPORTED("3qr6sbufeim9aivvukgupx9a3"); // (((gdata*)(GD_alg(subg)))->level) = (((gdata*)(GD_alg(parent)))->level) + 1; +UNSUPPORTED("dzlcmy7mlo7g4wu0zvt1l1sv"); // (((gdata*)(GD_alg(subg)))->parent) = parent; +UNSUPPORTED("bm1io3f9athvso30b940cla38"); // addCluster(clist, subg); +UNSUPPORTED("dz15beivtnurizqg4yb0m8rr9"); // mkClusters(subg, NULL, subg); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("ddr2v8k95yipuuxr863ke1923"); // mkClusters(subg, clist, parent); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7uhikpp332vk10cbtpsbobb3w"); // if (pclist == NULL) { +UNSUPPORTED("bqzv2ql6ssjrc7lsmutbooo9n"); // GD_n_cluster(g) = list.cnt; +UNSUPPORTED("bsoxsryrl38t4p726ewlt8yr1"); // if (list.cnt) +UNSUPPORTED("872193cmr79m1328w6lutgco7"); // GD_clust(g) = RALLOC(list.cnt + 1, list.cl, graph_t*); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7oqb0h6e96vm35r62xv92siyl +// void fdp_init_graph(Agraph_t * g) +public static Object fdp_init_graph(Object... arg) { +UNSUPPORTED("621hzpi43swuc9vu12w0otup0"); // void fdp_init_graph(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6vmhwvwf0v01vufgz8qcmh7jb"); // setEdgeType (g, (1 << 1)); +UNSUPPORTED("3tux5uqf6wyphewj4a0h8vq7s"); // GD_alg(g) = (void *) (gdata*)zmalloc(sizeof(gdata)); /* freed in cleanup_graph */ +UNSUPPORTED("11cpzbmfepql0mlmxdvdo8quh"); // GD_ndim(g) = late_int(g, agattr(g,AGRAPH, "dim", NULL), 2, 2); +UNSUPPORTED("5hw8vplqatvcs4dw99m6zzbbk"); // Ndim = GD_ndim(g) = MIN(GD_ndim(g), 10); +UNSUPPORTED("amlqsqhvjj73xf83yl2mywxer"); // mkClusters (g, NULL, g); +UNSUPPORTED("8tbconrtghd0w4280y1tkzkvx"); // fdp_initParams(g); +UNSUPPORTED("33lin92n8p2oh85qu0o1hqfcd"); // fdp_init_node_edge(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1hxcjip1yvpy0vhiewttmat3j +// void fdpLayout(graph_t * g) +public static Object fdpLayout(Object... arg) { +UNSUPPORTED("5ru9qe1nkqhsen6gakyhzl1ng"); // void fdpLayout(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3jv589is1bq9fpn36dwhl6isb"); // layout_info info; +UNSUPPORTED("anrb4m1f1yn0xk25k5mc990zu"); // init_info(g, &info); +UNSUPPORTED("3upqmz8ajc4vakmhu805h1nid"); // layout(g, &info); +UNSUPPORTED("2e4rkfcememj12fx7tqwo25cy"); // setClustNodes(g); +UNSUPPORTED("8lkjllp8rvxmyhf0fjdcgql3g"); // evalPositions(g,g); +UNSUPPORTED("2yd4d5risg5xlhmke0mny96lg"); // /* Set bbox info for g and all clusters. This is needed for +UNSUPPORTED("7so57s6gz0qrbj48s1eakmyr5"); // * spline drawing. We already know the graph bbox is at the origin. +UNSUPPORTED("3my4yyass50pbs1pq6igaklqg"); // * On return from spline drawing, all bounding boxes should be correct. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("6n08gtkj0lfkzg6sfp4v5uv33"); // setBB(g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9zkwo8rvwdaqntt5ydgovptz9 +// static void fdpSplines (graph_t * g) +public static Object fdpSplines(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("ahpw08he4of3u3skdihhfb5m1"); // fdpSplines (graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("61qimfo86uhktkmgc2eifmw44"); // int trySplines = 0; +UNSUPPORTED("cx1drb9eui5nioe70lvmlgm79"); // int et = (GD_flags(g) & (7 << 1)); +UNSUPPORTED("d2c1pvg1dcyjaomjapjw58o8k"); // if (et != (1 << 1)) { +UNSUPPORTED("c7ki4bp5938htpzwurqejskt2"); // if (et == (6 << 1)) { +UNSUPPORTED("7x5gv7elnffza5po9q275o72c"); // trySplines = splineEdges(g, compoundEdges, (5 << 1)); +UNSUPPORTED("7afs76n061qxddl4wd0mx7syj"); // /* When doing the edges again, accept edges done by compoundEdges */ +UNSUPPORTED("28gf4qun1djy3on0kdkalq4wd"); // if (trySplines) +UNSUPPORTED("f2wu54s3ntexz8vxnbbybck31"); // Nop = 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5iqpclxiba6in78dwhhfrkh7j"); // if (trySplines || (et != (6 << 1))) { +UNSUPPORTED("3qn4hkiudvmupsge77wfj3h3w"); // if ((GD_flags(g) & 1)) { +UNSUPPORTED("5l8jenkv77ax02t47zzxyv1k0"); // agerr(AGWARN, +UNSUPPORTED("71igsnumhcmopapvl2ht62nhw"); // "splines and cluster edges not supported - using line segments\n"); +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("bckhi2az2g64mgp2okezfc8cm"); // spline_edges1(g, et); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("44lb25xxc9dc38to4r88d3e7i"); // Nop = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("edduytjcanjblib6cohib6vvl"); // if (State < 1) +UNSUPPORTED("5g20bnuugvhmfkeu6mwq9admo"); // spline_edges1(g, (1 << 1)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f3fkbzm2by9n9gfyca5lm4mzf +// void fdp_layout(graph_t * g) +public static Object fdp_layout(Object... arg) { +UNSUPPORTED("a64yhnsx9rfi5rarfg5ajgxvx"); // void fdp_layout(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1por4locm3w6858i1hecz1ua5"); // /* Agnode_t* n; */ +UNSUPPORTED("6n1wvk34us0rs8w6bpl2j60jb"); // double save_scale = PSinputscale; +UNSUPPORTED("3pp4o4xb7kzgf0eutciesk63j"); // PSinputscale = get_inputscale (g); +UNSUPPORTED("d3r3xu1e0xm8eldryvatkn73d"); // fdp_init_graph(g); +UNSUPPORTED("ci9r8sj8tbc6yer5c8cebb0cm"); // if (setjmp(jbuf)) { +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ewx6xn7zd488a9txulkv17tcd"); // fdpLayout(g); +UNSUPPORTED("8gq1pwiarmm40a109fontod36"); // neato_set_aspect(g); +UNSUPPORTED("6ea8nkfyo4o4tnrlq1fr5lk19"); // if ((GD_flags(g) & (7 << 1)) != (0 << 1)) fdpSplines (g); +UNSUPPORTED("dlehwmfi69wv6xm8yxld35dtj"); // gv_postprocess(g, 0); +UNSUPPORTED("cfv32gj5wy5tzsqp22byr9tbf"); // PSinputscale = save_scale; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/fdpgen/tlayout__c.java plantuml-8039/src/gen/lib/fdpgen/tlayout__c.java --- plantuml-8024/src/gen/lib/fdpgen/tlayout__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/fdpgen/tlayout__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1303 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.fdpgen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class tlayout__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 3re0e5qgyflcireefp7lbqns8 +// static parms_t parms + + + + +//3 ap3ziys4lgccfv5b9hoqgoh0g +// static double cool(double temp, int t) +public static Object cool(Object... arg) { +UNSUPPORTED("5sgre4bc2ydv6l6svk8ek0txc"); // static double cool(double temp, int t) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dw9g5rx4w1ndvm14dmyd1mvas"); // return ((parms.T0) * ((parms.maxIters) - t)) / (parms.maxIters); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1hfj27tv640d0ffqfnm4vb1rz +// static void reset_params(void) +public static Object reset_params(Object... arg) { +UNSUPPORTED("75qf9l8ygyuzzh8vd1n83vj0z"); // static void reset_params(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c8a8jp11ftz446uf6uszgoze8"); // (parms.T0) = -1.0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3nh9css07393fmibnbovph2hs +// static int init_params(graph_t * g, xparams * xpms) +public static Object init_params(Object... arg) { +UNSUPPORTED("48xs4ljefx0vremqgw3ve2odl"); // static int init_params(graph_t * g, xparams * xpms) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6c0or74do22mjnqxo3amn9k4o"); // int ret = 0; +UNSUPPORTED("crp6otfgw6p0ubcoh1qm3lb05"); // if ((parms.T0) == -1.0) { +UNSUPPORTED("yl9q627kjvgs8jal076bp3sd"); // int nnodes = agnnodes(g); +UNSUPPORTED("5s1s7y81lrpy2vnfgv10ur6ri"); // (parms.T0) = (parms.Tfact) * (parms.K) * sqrt(nnodes) / 5; +UNSUPPORTED("6bhqrgwycmijdx6y0w0h24lje"); // ret = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bea2sjliujeywzkofbu5g6wrm"); // xpms->T0 = cool((parms.T0), (parms.pass1)); +UNSUPPORTED("15szw8lxycu1ph1797eh963av"); // xpms->K = (parms.K); +UNSUPPORTED("bb08968msejsgq6ax6cukmdqq"); // xpms->C = (parms.C); +UNSUPPORTED("ajd01g9u5dg1lmf1dc37lh7n5"); // xpms->numIters = (parms.maxIters) - (parms.pass1); +UNSUPPORTED("7c02dgjlmmmvkkyv8re4trtae"); // if ((parms.numIters) >= 0) { +UNSUPPORTED("b7eb7h431oevllb0el5ljwhf5"); // if ((parms.numIters) <= (parms.pass1)) { +UNSUPPORTED("1k1km56qkkjfno0nynnso12qb"); // (parms.loopcnt) = (parms.numIters); +UNSUPPORTED("7orupvg2v93yn9ayi6934agib"); // xpms->loopcnt = 0; +UNSUPPORTED("clivi4vn6ilbnz8nzb0yczlkz"); // } else if ((parms.numIters) <= (parms.maxIters)) { +UNSUPPORTED("195qeklys8cc9ohbnb5jijys"); // (parms.loopcnt) = (parms.pass1); +UNSUPPORTED("4gno9zp0ukr0oiqr36ju16pr2"); // xpms->loopcnt = (parms.numIters) - (parms.pass1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("d2ke7mqdgmzme2foml7d52wyi"); // (parms.loopcnt) = (parms.pass1); +UNSUPPORTED("72avjgv71z4fub3c90yugg1be"); // xpms->loopcnt = xpms->numIters; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f3b7mj138albdr4lodyomke0z"); // return ret; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 67nwkqs1o8ak0ust8y6xuptkc +// void fdp_initParams(graph_t * g) +public static Object fdp_initParams(Object... arg) { +UNSUPPORTED("1lc6n2kc85uu13nos0984xf29"); // void fdp_initParams(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dhkv7nf2l5so3osfttpwqe9jb"); // (parms.useGrid) = (fdp_parms->useGrid); +UNSUPPORTED("7emjshxcasuzcjusb8bbxzdf7"); // (parms.useNew) = (fdp_parms->useNew); +UNSUPPORTED("4mrcfc63ungaf44a4vj2uro2c"); // (parms.numIters) = (fdp_parms->numIters); +UNSUPPORTED("1nx5n5st3t3nnx7yqzo6ozup6"); // (parms.unscaled) = (fdp_parms->unscaled); +UNSUPPORTED("j5zv0n6wl3u586ysr1qqerue"); // (parms.Cell) = 0.0; +UNSUPPORTED("dprq8f5x3ovtoay3nlztqt4pw"); // (parms.C) = (fdp_parms->C); +UNSUPPORTED("5decfbdk7yhmkg3xgrg7f71sk"); // (parms.Tfact) = (fdp_parms->Tfact); +UNSUPPORTED("36qd34h5uzomu0sxgh57rwyb1"); // (parms.maxIters) = late_int(g, agattr(g,AGRAPH, "maxiter", NULL), 600, 0); +UNSUPPORTED("1ekk36jjcc8amkk8t0kk5xzqw"); // (fdp_parms->K) = (parms.K) = late_double(g, agattr(g,AGRAPH, "K", NULL), 0.3, 0.0); +UNSUPPORTED("5w12po5gw20qkeg6lm9wuqf8b"); // if ((fdp_parms->T0) == -1.0) { +UNSUPPORTED("5ei2wdbmgw6tsc1knlgsi5est"); // (parms.T0) = late_double(g, agattr(g,AGRAPH, "T0", NULL), -1.0, 0.0); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("ey5pnbvbq4sdlnwyww4ufkgdl"); // (parms.T0) = (fdp_parms->T0); +UNSUPPORTED("2dwfvel7mvtxuo89r4qyi9nd1"); // (parms.seed) = 1; +UNSUPPORTED("chz814s9ux42fqrmt8jyt4bbo"); // (parms.smode) = setSeed (g, INIT_RANDOM, &(parms.seed)); +UNSUPPORTED("1ziuxskpjtlf6j1n77u8fazho"); // if ((parms.smode) == INIT_SELF) { +UNSUPPORTED("562i07uf5ntbjykofj7kehkl4"); // agerr(AGWARN, "fdp does not support start=self - ignoring\n"); +UNSUPPORTED("3a789qzz25t3knjgbg1p6pmmc"); // (parms.seed) = INIT_RANDOM; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("73xh7m64drhf1ddu78yp29z9r"); // (parms.pass1) = ((parms.unscaled) * (parms.maxIters)) / 100; +UNSUPPORTED("8iuaxpbl74yddrfynyul5uc8i"); // (parms.K2) = (parms.K) * (parms.K); +UNSUPPORTED("5mn14gy4taomtxfb9fvba9s6"); // if ((parms.useGrid)) { +UNSUPPORTED("8ukoelkh4qqn1mp0ues4sqdax"); // if ((parms.Cell) <= 0.0) +UNSUPPORTED("2hn437nbrh7orkpd3flaakc4q"); // (parms.Cell) = 3 * (parms.K); +UNSUPPORTED("evqkx9xtnwhnmrs6eak9kct5j"); // (parms.Cell2) = (parms.Cell) * (parms.Cell); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1mwp8luigyyz0ugh8bwajvy1p +// static void doRep(node_t * p, node_t * q, double xdelta, double ydelta, double dist2) +public static Object doRep(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("ci8iet8xei7zuq6iwdwmnfie2"); // doRep(node_t * p, node_t * q, double xdelta, double ydelta, double dist2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7xmrzkoismbw37gye9vc6jbi9"); // double force; +UNSUPPORTED("6ri5yxqbfur0r77yjjezxcpf1"); // double dist; +UNSUPPORTED("9eyts7dlroeintksamasblz0m"); // while (dist2 == 0.0) { +UNSUPPORTED("a1kln2sh5ckxy9qbqw7ur6m89"); // xdelta = 5 - rand() % 10; +UNSUPPORTED("5utygemiryo6q9jilsrhyspq1"); // ydelta = 5 - rand() % 10; +UNSUPPORTED("9cv1lvbstloqs0iz3qbvzcbmx"); // dist2 = xdelta * xdelta + ydelta * ydelta; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2n97ejly0ms3mgkyc9mfw25dq"); // if ((parms.useNew)) { +UNSUPPORTED("l1nxn0z1e5oz3ibg3ruc80qz"); // dist = sqrt(dist2); +UNSUPPORTED("5hk3sr13w9lnqpnp9r7m0lswq"); // force = (parms.K2) / (dist * dist2); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("ew8igrf3420bqug5dgydzcj44"); // force = (parms.K2) / dist2; +UNSUPPORTED("ez9csfef9y6to70k15uttsiav"); // if ((!(((dndata*)(ND_alg(p)))->dn) && !ND_clust(p)) && (!(((dndata*)(ND_alg(q)))->dn) && !ND_clust(q))) +UNSUPPORTED("dakbbyvagw597rpiubgw87lde"); // force *= 10.0; +UNSUPPORTED("evkb6fsw3t47cwgrg7xefbqgt"); // (((dndata*)(ND_alg(q)))->disp)[0] += xdelta * force; +UNSUPPORTED("47honvuz7ve5pvt9lba48wv53"); // (((dndata*)(ND_alg(q)))->disp)[1] += ydelta * force; +UNSUPPORTED("adgrqasjyy2ekyp2z2g84w46v"); // (((dndata*)(ND_alg(p)))->disp)[0] -= xdelta * force; +UNSUPPORTED("4ynq3yqyvpqd2e9jy2ky9g7m3"); // (((dndata*)(ND_alg(p)))->disp)[1] -= ydelta * force; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1l5u1c7g8sv7pkutpmed1onix +// static void applyRep(Agnode_t * p, Agnode_t * q) +public static Object applyRep(Object... arg) { +UNSUPPORTED("djgrzdg0i7c81rt5ozd4fy6hy"); // static void applyRep(Agnode_t * p, Agnode_t * q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("fwy8i5zbwxhddxrcwdkd8w1g"); // double xdelta, ydelta; +UNSUPPORTED("1gexoq8hut0hmb4k5ef2tvif7"); // xdelta = ND_pos(q)[0] - ND_pos(p)[0]; +UNSUPPORTED("bwmnzroxk4eq5fdyzazcmagjs"); // ydelta = ND_pos(q)[1] - ND_pos(p)[1]; +UNSUPPORTED("2od246ddg7nl8jg2vbe8w04jx"); // doRep(p, q, xdelta, ydelta, xdelta * xdelta + ydelta * ydelta); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6f5oevq3a3fan12vx9fd8sxig +// static void doNeighbor(Grid * grid, int i, int j, node_list * nodes) +public static Object doNeighbor(Object... arg) { +UNSUPPORTED("9f2tkmlc1n9h3w8lqufgwmcu6"); // static void doNeighbor(Grid * grid, int i, int j, node_list * nodes) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bhnwogekrkz0g5g73xj7vst6t"); // cell *cellp = findGrid(grid, i, j); +UNSUPPORTED("j7t2j63o6ph4jsh8zms26jia"); // node_list *qs; +UNSUPPORTED("79qovd7yt2ksk0181m08pcblr"); // Agnode_t *p; +UNSUPPORTED("26lkxbr2p03cdcyjp6mi5cdx0"); // Agnode_t *q; +UNSUPPORTED("fwy8i5zbwxhddxrcwdkd8w1g"); // double xdelta, ydelta; +UNSUPPORTED("a48uqm39jxw8xxk12bzq76zhe"); // double dist2; +UNSUPPORTED("tvnd12y5b19iotifqmutyeto"); // if (cellp) { +UNSUPPORTED("c22my4o1dz0d0w2h43rfo0whg"); // for (; nodes != 0; nodes = nodes->next) { +UNSUPPORTED("e56s6kjmmhjpytxlariesqqdw"); // p = nodes->node; +UNSUPPORTED("5rq3ugymaj6pf0dvsx6dz5w4h"); // for (qs = cellp->nodes; qs != 0; qs = qs->next) { +UNSUPPORTED("1mj1hju2nppgtuoqv8ol5rvwr"); // q = qs->node; +UNSUPPORTED("d26xtmkxvpccm7sq2vb7etugl"); // xdelta = (ND_pos(q))[0] - (ND_pos(p))[0]; +UNSUPPORTED("5swigfg8ax2mrrfeth3ty0g2"); // ydelta = (ND_pos(q))[1] - (ND_pos(p))[1]; +UNSUPPORTED("bmdm7zgfvy74ykfhpqs4mv0jz"); // dist2 = xdelta * xdelta + ydelta * ydelta; +UNSUPPORTED("12ef6u3079vohtjab5738nb2o"); // if (dist2 < (parms.Cell2)) +UNSUPPORTED("np3ryxjwz0n7fopro629q72k"); // doRep(p, q, xdelta, ydelta, dist2); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cs1mbkztfifrfwd3mxcwg1c2d +// static int gridRepulse(Dt_t * dt, cell * cellp, Grid * grid) +public static Object gridRepulse(Object... arg) { +UNSUPPORTED("dmawgb7u402yluzrrnfgssfuf"); // static int gridRepulse(Dt_t * dt, cell * cellp, Grid * grid) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("esxthhmuxuie3avpfm2495114"); // node_list *nodes = cellp->nodes; +UNSUPPORTED("6w5k8ca6easfov2mqqlrdb0dh"); // int i = cellp->p.i; +UNSUPPORTED("3s6odfuh8voqpi0e47rmmpr95"); // int j = cellp->p.j; +UNSUPPORTED("5t1k1070z2y2ulal5irpeh13r"); // node_list *p; +UNSUPPORTED("26ois8lzf5gf4rlc7j1v07nrk"); // node_list *q; +UNSUPPORTED("f47xyq0g5jc32mlw2w6176cj8"); // (void) dt; +UNSUPPORTED("7bt8fvdfprnhldu94wzsjr1p8"); // for (p = nodes; p != 0; p = p->next) { +UNSUPPORTED("9dtqsbgqhq08w8uqr6q8iu1zo"); // for (q = nodes; q != 0; q = q->next) +UNSUPPORTED("3mqa4rk942u6cme7lx916c3e7"); // if (p != q) +UNSUPPORTED("f4yngxzrsobxrx4qdgnbjuu7y"); // applyRep(p->node, q->node); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("39oj5x7p4uzn9pmrn291fb89e"); // doNeighbor(grid, i - 1, j - 1, nodes); +UNSUPPORTED("4x5ymv4kpnjjlwgslb8y54wsf"); // doNeighbor(grid, i - 1, j, nodes); +UNSUPPORTED("92c3ombzuprs207hb0839euz4"); // doNeighbor(grid, i - 1, j + 1, nodes); +UNSUPPORTED("7x17d3x93lfyweou33msckmp3"); // doNeighbor(grid, i, j - 1, nodes); +UNSUPPORTED("axuq727bu6dm67ozulydd2z8b"); // doNeighbor(grid, i, j + 1, nodes); +UNSUPPORTED("aprvh8muazan9bg5c6s7zyh3k"); // doNeighbor(grid, i + 1, j - 1, nodes); +UNSUPPORTED("6re8faddp09jcpaw086aebyak"); // doNeighbor(grid, i + 1, j, nodes); +UNSUPPORTED("4vnxtoqrs66b93cw2r079w5uc"); // doNeighbor(grid, i + 1, j + 1, nodes); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cj85ae9twpl1qbvg8q1a5tkoy +// static void applyAttr(Agnode_t * p, Agnode_t * q, Agedge_t * e) +public static Object applyAttr(Object... arg) { +UNSUPPORTED("awgsi6lurgqk8uwub4vivjq1j"); // static void applyAttr(Agnode_t * p, Agnode_t * q, Agedge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("fwy8i5zbwxhddxrcwdkd8w1g"); // double xdelta, ydelta; +UNSUPPORTED("7xmrzkoismbw37gye9vc6jbi9"); // double force; +UNSUPPORTED("6ri5yxqbfur0r77yjjezxcpf1"); // double dist; +UNSUPPORTED("a48uqm39jxw8xxk12bzq76zhe"); // double dist2; +UNSUPPORTED("1gexoq8hut0hmb4k5ef2tvif7"); // xdelta = ND_pos(q)[0] - ND_pos(p)[0]; +UNSUPPORTED("bwmnzroxk4eq5fdyzazcmagjs"); // ydelta = ND_pos(q)[1] - ND_pos(p)[1]; +UNSUPPORTED("cmcav5u77frmj6i50z471aqvo"); // dist2 = xdelta * xdelta + ydelta * ydelta; +UNSUPPORTED("9eyts7dlroeintksamasblz0m"); // while (dist2 == 0.0) { +UNSUPPORTED("a1kln2sh5ckxy9qbqw7ur6m89"); // xdelta = 5 - rand() % 10; +UNSUPPORTED("5utygemiryo6q9jilsrhyspq1"); // ydelta = 5 - rand() % 10; +UNSUPPORTED("9cv1lvbstloqs0iz3qbvzcbmx"); // dist2 = xdelta * xdelta + ydelta * ydelta; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dh786i3lrxpciiafxwi5hohar"); // dist = sqrt(dist2); +UNSUPPORTED("4ba6s6456ep2phb9pwqjbc4b9"); // if ((parms.useNew)) +UNSUPPORTED("87l88wtd7xyepuhmf35a6bbw2"); // force = (ED_factor(e) * (dist - ED_dist(e))) / dist; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("8wx917t05wq9rcvtqmvooz31z"); // force = (ED_factor(e) * dist) / ED_dist(e); +UNSUPPORTED("ef256m9rw2e3kva0vy4mrt4pn"); // (((dndata*)(ND_alg(q)))->disp)[0] -= xdelta * force; +UNSUPPORTED("de0dfwmddjz26z7cw76x9uejs"); // (((dndata*)(ND_alg(q)))->disp)[1] -= ydelta * force; +UNSUPPORTED("9us8cvhguukd2iasv7c2crzho"); // (((dndata*)(ND_alg(p)))->disp)[0] += xdelta * force; +UNSUPPORTED("e4teme92uacnxx36to3g3mdco"); // (((dndata*)(ND_alg(p)))->disp)[1] += ydelta * force; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6klhq8hd2uw9zsfrxwtv1ocnk +// static void updatePos(Agraph_t * g, double temp, bport_t * pp) +public static Object updatePos(Object... arg) { +UNSUPPORTED("2u9aj6rjmowhmurab0vf3r69l"); // static void updatePos(Agraph_t * g, double temp, bport_t * pp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("sg55m1c2s3xuubzzp8n0sw3f"); // double temp2; +UNSUPPORTED("25uak17ioz04l0iqfpc2rqjmq"); // double len2; +UNSUPPORTED("65672t6c1pgmsnn9zxy9mwvwd"); // double x, y, d; +UNSUPPORTED("an5v3e2oy9hxck46bwp0l8a0k"); // double dx, dy; +UNSUPPORTED("amlnzp2bleh099q3wlzlmj8zn"); // temp2 = temp * temp; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("20k00hmq2eea97ngndk1rg61o"); // if (ND_pinned(n) & 2) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("1gq3st2z4k9zoet70m3v6x80b"); // dx = (((dndata*)(ND_alg(n)))->disp)[0]; +UNSUPPORTED("aodqj11npmkk0fsuybgf620ln"); // dy = (((dndata*)(ND_alg(n)))->disp)[1]; +UNSUPPORTED("5qw5xdnfn43mxsapjp20js30k"); // len2 = dx * dx + dy * dy; +UNSUPPORTED("66bgqva7s9uk7ly4ar3frkuh1"); // /* limit by temperature */ +UNSUPPORTED("baq9cdzymvavytsen7guap4p5"); // if (len2 < temp2) { +UNSUPPORTED("e7qusmcrgbdr7i06hhwr6283y"); // x = ND_pos(n)[0] + dx; +UNSUPPORTED("1m9xpejjuhy1uxvymyx53pxff"); // y = ND_pos(n)[1] + dy; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("9docoydbw13ckdwmcicezwzu8"); // double fact = temp / (sqrt(len2)); +UNSUPPORTED("3qb2m4ym37kunjqqvftkozjbo"); // x = ND_pos(n)[0] + dx * fact; +UNSUPPORTED("4xldvbdbn4zcpg8itxhyo9mgc"); // y = ND_pos(n)[1] + dy * fact; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ewgha6n93ins88bgq7rcr4y1o"); // /* if ports, limit by boundary */ +UNSUPPORTED("2tfzz986e4p2bid5m9sdnwfl7"); // if (pp) { +UNSUPPORTED("2h2fbkvwazh0sjetv7njnauhb"); // d = sqrt((x * x) / (parms.Wd2) + (y * y) / (parms.Ht2)); +UNSUPPORTED("ebgj1his6d8t4264yeael6ol7"); // if ((!(((dndata*)(ND_alg(n)))->dn) && !ND_clust(n))) { +UNSUPPORTED("asq65gxobhrigft4q2hps44ae"); // ND_pos(n)[0] = x / d; +UNSUPPORTED("c1q4rpgqya1cg62hjsznhcx7k"); // ND_pos(n)[1] = y / d; +UNSUPPORTED("3zvvzyjqdnyczr8j3l63hduy7"); // } else if (d >= 1.0) { +UNSUPPORTED("d0mnxdfz9aqy4chwtknduvqhm"); // ND_pos(n)[0] = 0.95 * x / d; +UNSUPPORTED("3n2nm2hlcv949f84l1yk1ouvn"); // ND_pos(n)[1] = 0.95 * y / d; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("bzcs5gjg4p7i9fed154arg1dl"); // ND_pos(n)[0] = x; +UNSUPPORTED("62gf754isfr8v6h4kxxwi7it"); // ND_pos(n)[1] = y; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("430348dqvn3b36o02ezqbp1uw"); // ND_pos(n)[0] = x; +UNSUPPORTED("d4yvjj58oi9ryj1jplnst6s5g"); // ND_pos(n)[1] = y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2n34xldqlccwhpm8nh1rljs3p +// static void gAdjust(Agraph_t * g, double temp, bport_t * pp, Grid * grid) +public static Object gAdjust(Object... arg) { +UNSUPPORTED("556yrn9aufakg2ifo3g1h6pwf"); // static void gAdjust(Agraph_t * g, double temp, bport_t * pp, Grid * grid) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("f1vdo4z4mtgqh7lb8t6qfv8gu"); // if (temp <= 0.0) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("644hq2ff42fduad6ofrcnnr3z"); // clearGrid(grid); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("d4x7a0ncmwpuitrfyisphry1f"); // (((dndata*)(ND_alg(n)))->disp)[0] = (((dndata*)(ND_alg(n)))->disp)[1] = 0; +UNSUPPORTED("5390epov6m7vcinu815ghkhf2"); // addGrid(grid, ((int)floor((ND_pos(n))[0] / (parms.Cell))), ((int)floor((ND_pos(n))[1] / (parms.Cell))), +UNSUPPORTED("23mwr8qy9p56xnfsgsetr6kdu"); // n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("8gbd6b2ssf51om8neirzzr6rw"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) +UNSUPPORTED("2rz6z5yfu3wqj4z4t81p4m1a5"); // if (n != aghead(e)) +UNSUPPORTED("9jgj9dhgjvujbr4f06kroynor"); // applyAttr(n, aghead(e), e); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3f3jqejsuoefgdz3m3vpdl620"); // walkGrid(grid, gridRepulse); +UNSUPPORTED("6ucbf08xinzfcptpt2mc495jh"); // updatePos(g, temp, pp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3tt7ro82g74d4dhvgbd5rb9yf +// static void adjust(Agraph_t * g, double temp, bport_t * pp) +public static Object adjust(Object... arg) { +UNSUPPORTED("lv445mknryp4zqtin641m8cs"); // static void adjust(Agraph_t * g, double temp, bport_t * pp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("4rip97cgvbcrlgycxl0wajpuh"); // Agnode_t *n1; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("f1vdo4z4mtgqh7lb8t6qfv8gu"); // if (temp <= 0.0) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("d4x7a0ncmwpuitrfyisphry1f"); // (((dndata*)(ND_alg(n)))->disp)[0] = (((dndata*)(ND_alg(n)))->disp)[1] = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("d5vhk45d87pvhm7ey0xmi5all"); // for (n1 = agnxtnode(g, n); n1; n1 = agnxtnode(g, n1)) { +UNSUPPORTED("5r2borrugfgx76x385o64g6uq"); // applyRep(n, n1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("2rz6z5yfu3wqj4z4t81p4m1a5"); // if (n != aghead(e)) +UNSUPPORTED("9jgj9dhgjvujbr4f06kroynor"); // applyAttr(n, aghead(e), e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6ucbf08xinzfcptpt2mc495jh"); // updatePos(g, temp, pp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5udrim0k65x88jcd6im7jsk0m +// static pointf initPositions(graph_t * g, bport_t * pp) +public static Object initPositions(Object... arg) { +UNSUPPORTED("5zigfg3p1puzt2mnml8cp2xq9"); // static pointf initPositions(graph_t * g, bport_t * pp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7ne6dk4gevmg9bpajywpl0sld"); // int nG = agnnodes(g) - (((gdata*)(GD_alg(g)))->nports); +UNSUPPORTED("cmbn2mebw9i4zvae8o1naka1f"); // double size; +UNSUPPORTED("4dnqwjhhs92m1h2q7ld3cpbxw"); // Agnode_t *np; +UNSUPPORTED("84res63gkgrpokqhvh08l25gq"); // int n_pos = 0; /* no. of nodes with position info */ +UNSUPPORTED("as3veqd6dj01fepy5iqhc3cwb"); // box bb = { {0, 0}, {0, 0} }; +UNSUPPORTED("p0gtnc9vtxwu59vjacxfq8q2"); // pointf ctr; /* center of boundary ellipse */ +UNSUPPORTED("3cikqmw6ngedc2tcueu4k6kpn"); // long local_seed; +UNSUPPORTED("f10pmsxbkh8gwvxc87ikaru1r"); // double PItimes2 = M_PI * 2.0; +UNSUPPORTED("73rfwkv8ws65l7qgnz7jw27gf"); // for (np = agfstnode(g); np; np = agnxtnode(g, np)) { +UNSUPPORTED("2p5byh0c6jasf3brw2ocfjljl"); // if (ND_pinned(np)) { +UNSUPPORTED("b67kqz24hhewea5tyda1wyaeh"); // if (n_pos) { +UNSUPPORTED("2ox2wzszwg6uksxze1jyo984e"); // bb.LL.x = MIN(ND_pos(np)[0], bb.LL.x); +UNSUPPORTED("19mnog7trnfv3bhe0e066xv21"); // bb.LL.y = MIN(ND_pos(np)[1], bb.LL.y); +UNSUPPORTED("7w96keir9silerc8qngpqjosk"); // bb.UR.x = MAX(ND_pos(np)[0], bb.UR.x); +UNSUPPORTED("7k6ussgds4bd3z6eesr8fepbd"); // bb.UR.y = MAX(ND_pos(np)[1], bb.UR.y); +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("cprc9p2lim8mn728cjqcd9t8r"); // bb.UR.x = bb.LL.x = ND_pos(np)[0]; +UNSUPPORTED("58a3mthmfxdro6hqr8iaekbzo"); // bb.UR.y = bb.LL.y = ND_pos(np)[1]; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("39bza2s3i3py75vnpuv0lahjr"); // n_pos++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("be13vd6vbtkm7vgtqhjrm3pnj"); // size = (parms.K) * (sqrt((double) nG) + 1.0); +UNSUPPORTED("dyxxnbmtkvjmqulh7thgktg4s"); // (parms.Wd) = (parms.Ht) = 1.2 * (size / 2.0); +UNSUPPORTED("5eg3rzhm9wggbsty8r3wbvqcy"); // if (n_pos == 1) { +UNSUPPORTED("aqxuib6x0ru2lex5kbbxipidc"); // ctr.x = bb.LL.x; +UNSUPPORTED("c2lyy587nd1u5om969mofy0lc"); // ctr.y = bb.LL.y; +UNSUPPORTED("d6bvkxrex3rfetbazxs07ui79"); // } else if (n_pos > 1) { +UNSUPPORTED("2o5vlil7etjeflp3478cnk1t1"); // double alpha, area, width, height, quot; +UNSUPPORTED("e2bursa13trq43it5r42b5wxl"); // ctr.x = (bb.LL.x + bb.UR.x) / 2.0; +UNSUPPORTED("8lkxdcp40t9kxlgfv6bmgopxw"); // ctr.y = (bb.LL.y + bb.UR.y) / 2.0; +UNSUPPORTED("3j4sganaq9068n1er45ib9t0w"); // width = 1.2 * (bb.UR.x - bb.LL.x); +UNSUPPORTED("31cw3gk0lnuv66j4rb6b76ujq"); // height = 1.2 * (bb.UR.y - bb.LL.y); +UNSUPPORTED("9a1dqbpz59walt2lnrapoj8w9"); // area = 4.0 * (parms.Wd) * (parms.Ht); +UNSUPPORTED("7sqr95ttttva9uhvsz8m37gb8"); // quot = (width * height) / area; +UNSUPPORTED("aqxjptqp5qo65pns1mqxi1lvp"); // if (quot >= 1.0) { /* If bbox has large enough area, use it */ +UNSUPPORTED("12mid8wvcpmwh4m3zoym9p3r6"); // (parms.Wd) = width / 2.0; +UNSUPPORTED("4qrpy054cs5u0vzvebcrn5dda"); // (parms.Ht) = height / 2.0; +UNSUPPORTED("c3u6g89kxfo9iluy5yos1quyx"); // } else if (quot > 0.0) { /* else scale up to have enough area */ +UNSUPPORTED("dr733vgdfmc172xhjf47jwaxm"); // quot = 2.0 * sqrt(quot); +UNSUPPORTED("8ogpn0wn3ja6jhfkziqwlr6ay"); // (parms.Wd) = width / quot; +UNSUPPORTED("8ft1ybryais2vfkvvcur2sxgk"); // (parms.Ht) = height / quot; +UNSUPPORTED("8of28fn1ted6krkmk2yjpau60"); // } else { /* either width or height is 0 */ +UNSUPPORTED("2jkl72eptn2faso4y1tmn9uze"); // if (width > 0) { +UNSUPPORTED("ckrjc637785ohj82zmyw9e5ik"); // height = area / width; +UNSUPPORTED("eqttpym94omzt6oujyzbqa0n5"); // (parms.Wd) = width / 2.0; +UNSUPPORTED("5jplytikh5trxma41nredtj3z"); // (parms.Ht) = height / 2.0; +UNSUPPORTED("gseug6cie81aibj66xfmvo8j"); // } else if (height > 0) { +UNSUPPORTED("8e54vo4hp4yrklm62vgkn5v5n"); // width = area / height; +UNSUPPORTED("eqttpym94omzt6oujyzbqa0n5"); // (parms.Wd) = width / 2.0; +UNSUPPORTED("5jplytikh5trxma41nredtj3z"); // (parms.Ht) = height / 2.0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6hle4w7nbewioh1h57a8j8cvt"); // /* If width = height = 0, use Wd and Ht as defined above for +UNSUPPORTED("7kk74syx1ba2ernmbirp3uwr9"); // * the case the n_pos == 0. +UNSUPPORTED("20m1lc1moer8x00tx9ceto0iw"); // */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3o6kj172y1xphtpj6jabh2e94"); // /* Construct enclosing ellipse */ +UNSUPPORTED("c0l603qzgyy1ql72a9qrgdals"); // alpha = atan2((parms.Ht), (parms.Wd)); +UNSUPPORTED("bbydl25432avreznfwgihdyfq"); // (parms.Wd) = (parms.Wd) / cos(alpha); +UNSUPPORTED("3f6cb7sp9a4of125y0697hp9n"); // (parms.Ht) = (parms.Ht) / sin(alpha); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("74pm3pn6axjjr00p1dklum3ja"); // ctr.x = ctr.y = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3pog5nekvf3aruzlqlqacxbn2"); // (parms.Wd2) = (parms.Wd) * (parms.Wd); +UNSUPPORTED("9ppyltk2jjqg9furyd77w6fkd"); // (parms.Ht2) = (parms.Ht) * (parms.Ht); +UNSUPPORTED("373lcxow3iqe10bnh9zo88csa"); // /* Set seed value */ +UNSUPPORTED("w2sxuedcee1wo3s82gme86q1"); // if ((parms.smode) == INIT_RANDOM) +UNSUPPORTED("j2hetou7f381kf2tbyh0rukg"); // local_seed = (parms.seed); +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("12svuafktwb2m6pdhnicft7ub"); // local_seed = getpid() ^ time(NULL); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("215ot7whw18pm35pop5udep50"); // srand(local_seed); +UNSUPPORTED("dxe9gllri26lww3f475hmq5nv"); // /* If ports, place ports on and nodes within an ellipse centered at origin +UNSUPPORTED("60rwp4z0fh34nnarv4wfcspx6"); // * with halfwidth Wd and halfheight Ht. +UNSUPPORTED("1l0ild17ow39w4dmixs71gawy"); // * If no ports, place nodes within a rectangle centered at origin +UNSUPPORTED("aircln8xkn5pw90ncdh2nng3a"); // * with halfwidth Wd and halfheight Ht. Nodes with a given position +UNSUPPORTED("co3h8562l1uwhysdbeef7tn3u"); // * are translated. Wd and Ht are set to contain all positioned points. +UNSUPPORTED("2hb260bbb3rvns3j0rfqnr4z"); // * The reverse translation will be applied to all +UNSUPPORTED("bwk8qf4fezca0u8904a51fsgb"); // * nodes at the end of the layout. +UNSUPPORTED("9tiugqaffj1brmkrm9mufk3cj"); // * TODO: place unfixed points using adjacent ports or fixed pts. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("7x3hp5csomjoow8l3cdyqhlp8"); // if (pp) { +UNSUPPORTED("e5k8d4zlp85wal3b0r02pdece"); // /* fprintf (stderr, "initPos %s ctr (%g,%g) Wd %g Ht %g\n", g->name, ctr.x, ctr.y, Wd, Ht); */ +UNSUPPORTED("28fuw97soxmhn0392piuj5ivk"); // while (pp->e) { /* position ports on ellipse */ +UNSUPPORTED("ct66kbzehcaoegmxd9hvb8twk"); // np = pp->n; +UNSUPPORTED("33uoc3m7i8cwcxcw7n38fx2w7"); // ND_pos(np)[0] = (parms.Wd) * cos(pp->alpha) + ctr.x; +UNSUPPORTED("43in1oaf03hy0xtdyq6z7ecz"); // ND_pos(np)[1] = (parms.Ht) * sin(pp->alpha) + ctr.y; +UNSUPPORTED("24z7oorb6gt8mp5y06u5kqb3x"); // ND_pinned(np) = 1; +UNSUPPORTED("c2lbmfsz86m50be60annui55t"); // /* fprintf (stderr, "%s pt (%g,%g) %g\n", np->name, ND_pos(np)[0], ND_pos(np)[1], pp->alpha); */ +UNSUPPORTED("4t42c85s64mps71a1sjc7yoey"); // pp++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1731abd7psvbovg3sdrrz3alu"); // for (np = agfstnode(g); np; np = agnxtnode(g, np)) { +UNSUPPORTED("6spla98dm5djs2srzlwnx02sv"); // if ((!(((dndata*)(ND_alg(np)))->dn) && !ND_clust(np))) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("acza7ojsifjul54q5l29o3te7"); // if (ND_pinned(np)) { +UNSUPPORTED("bu6tbcasyqkgeqjew2fi9bit2"); // ND_pos(np)[0] -= ctr.x; +UNSUPPORTED("88ypktdzp7sxkfmj7plhbudbh"); // ND_pos(np)[1] -= ctr.y; +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("4f01a8ivg0evqlhaplulzh9ek"); // pointf p = { 0.0, 0.0 }; +UNSUPPORTED("e7zdyie228r4jun06bay4grdk"); // int cnt = 0; +UNSUPPORTED("8i69mg2gjp2bd2vd19kwy3vox"); // node_t *op; +UNSUPPORTED("39iaqnad631pzrqic9r3emgwy"); // edge_t *ep; +UNSUPPORTED("aw2lxucqcgjz8l1b9e12bcsdd"); // for (ep = agfstedge(g, np); ep; ep = agnxtedge(g, ep, np)) { +UNSUPPORTED("b5s94n8kk03c84n5vt353ibcy"); // if (aghead(ep) == agtail(ep)) +UNSUPPORTED("91ilj0e8yph90t7k4ijuq5rb0"); // continue; +UNSUPPORTED("z31psezyu92bc3yi9dvq6tc4"); // op = (aghead(ep) == np ? agtail(ep) : aghead(ep)); +UNSUPPORTED("1y3r5jidx8ix3zux535zj5pyi"); // if (!(ND_pinned(op) > 0)) +UNSUPPORTED("91ilj0e8yph90t7k4ijuq5rb0"); // continue; +UNSUPPORTED("4ef5myoqgaf9zgbcn2wujxw1a"); // if (cnt) { +UNSUPPORTED("7lebyzde5wb7xt11nsqzupefh"); // p.x = (p.x * cnt + ND_pos(op)[0]) / (cnt + 1); +UNSUPPORTED("f0rtqxd7s2m0x7hxoa13q9kwj"); // p.y = (p.y * cnt + ND_pos(op)[1]) / (cnt + 1); +UNSUPPORTED("d86r93g8nz9a1kfzgi7f8j8nh"); // } else { +UNSUPPORTED("c0sc4z04s46uhshkw3ozqvnmd"); // p.x = ND_pos(op)[0]; +UNSUPPORTED("eiuhticsuick7ct9uaxwjdsqo"); // p.y = ND_pos(op)[1]; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("ah6qookjy3kxxu2ll7p2wqkr5"); // cnt++; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3ky7wkxaat443ni0lypyci7ds"); // if (cnt > 1) { +UNSUPPORTED("5hf76y58zaxsd5yfbwr67v1pl"); // ND_pos(np)[0] = p.x; +UNSUPPORTED("65iv8m1taebcnnh2f9dl3tzvd"); // ND_pos(np)[1] = p.y; +UNSUPPORTED("22fwdoz45bfh8gcgd0uvdzwqi"); // /* fprintf (stderr, "%s 1 (%g,%g)\n", np->name, p.x, p.y); */ +UNSUPPORTED("cuhpsk6avu7u4s1o3uouiyrwn"); // } else if (cnt == 1) { +UNSUPPORTED("bshbnvfbvodmqx28tn1ekh68u"); // ND_pos(np)[0] = 0.98 * p.x + 0.1 * ctr.x; +UNSUPPORTED("7es44punnuei8vk9a6zi6mfcr"); // ND_pos(np)[1] = 0.9 * p.y + 0.1 * ctr.y; +UNSUPPORTED("ewww84n7ov6xly1rad9dphi8m"); // /* fprintf (stderr, "%s %d (%g,%g)\n", np->name, cnt, ND_pos(np)[0], ND_pos(np)[1]); */ +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("4m9h4qwahwza1l0lhm457zudx"); // double angle = PItimes2 * drand48(); +UNSUPPORTED("3rvzprwz2t47pyqh60oqsw17j"); // double radius = 0.9 * drand48(); +UNSUPPORTED("at7x0p3otimkmhsxqkambua5t"); // ND_pos(np)[0] = radius * (parms.Wd) * cos(angle); +UNSUPPORTED("8e62lq0w9ogdd5bpizalws1x8"); // ND_pos(np)[1] = radius * (parms.Ht) * sin(angle); +UNSUPPORTED("6p3ya6o9y82x4xvoubqk3sn9r"); // /* fprintf (stderr, "%s 0 (%g,%g)\n", np->name, ND_pos(np)[0], ND_pos(np)[1]); */ +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7djjlwbyom7gt69719c2ge441"); // ND_pinned(np) = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("cj35dr9ue5hdfys90rl806ohk"); // if (n_pos) { /* If positioned nodes */ +UNSUPPORTED("10u5z5m937fskvpiibijz5mn3"); // for (np = agfstnode(g); np; np = agnxtnode(g, np)) { +UNSUPPORTED("1zfcoj5p8ibbitj9jx20klypu"); // if (ND_pinned(np)) { +UNSUPPORTED("8r9mj2cdquw9apcge0rrsdvo4"); // ND_pos(np)[0] -= ctr.x; +UNSUPPORTED("5p6xqo5ilca5hndjyy1rixyo6"); // ND_pos(np)[1] -= ctr.y; +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("4zftore6zkehqgal2xf22rsxm"); // ND_pos(np)[0] = (parms.Wd) * (2.0 * drand48() - 1.0); +UNSUPPORTED("bi87ypmmvt5js8xtssxgkcztn"); // ND_pos(np)[1] = (parms.Ht) * (2.0 * drand48() - 1.0); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("7q4mtrigf95au3k1wtqedxeie"); // } else { /* No ports or positions; place randomly */ +UNSUPPORTED("10u5z5m937fskvpiibijz5mn3"); // for (np = agfstnode(g); np; np = agnxtnode(g, np)) { +UNSUPPORTED("8y3ekg5ooz7pty0anyx14u1a0"); // ND_pos(np)[0] = (parms.Wd) * (2.0 * drand48() - 1.0); +UNSUPPORTED("9ytn7cf1z9nt38i4r4qxkfb8y"); // ND_pos(np)[1] = (parms.Ht) * (2.0 * drand48() - 1.0); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("48suit55vfvla133oj7youe6x"); // return ctr; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 63jai1t1xyfwqxq5g2yca6qwo +// void dumpstat(graph_t * g) +public static Object dumpstat(Object... arg) { +UNSUPPORTED("20tbhzs2675qjcj5182bnwe3"); // void dumpstat(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("an5v3e2oy9hxck46bwp0l8a0k"); // double dx, dy; +UNSUPPORTED("carv9c7ltra9s7bn7325yl1ca"); // double l, max2 = 0.0; +UNSUPPORTED("embgw30vqico8gdmn2r6ywcb0"); // node_t *np; +UNSUPPORTED("akibnb2rnde6cxd49pthk2vaf"); // edge_t *ep; +UNSUPPORTED("73rfwkv8ws65l7qgnz7jw27gf"); // for (np = agfstnode(g); np; np = agnxtnode(g, np)) { +UNSUPPORTED("237pehjbrsfpqsziagl7ruflr"); // dx = (((dndata*)(ND_alg(np)))->disp)[0]; +UNSUPPORTED("3k3sgrq13y7dqtox9yw9buweb"); // dy = (((dndata*)(ND_alg(np)))->disp)[1]; +UNSUPPORTED("2f9eablv6mecibn7seya1pzo1"); // l = dx * dx + dy * dy; +UNSUPPORTED("4qnd3kdyfpakhf236u1fc7u3n"); // if (l > max2) +UNSUPPORTED("8f9u1ocg2krmsv0et27dgbsho"); // max2 = l; +UNSUPPORTED("djec9oesza03ze2suze0ecri6"); // fprintf(stderr, "%s: (%f,%f) (%f,%f)\n", agnameof(np), +UNSUPPORTED("2dwhsgsw146t923oie4ner05n"); // ND_pos(np)[0], ND_pos(np)[1], (((dndata*)(ND_alg(np)))->disp)[0], (((dndata*)(ND_alg(np)))->disp)[1]); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("atgvw5qqam8q772joifsaroa6"); // fprintf(stderr, "max delta = %f\n", sqrt(max2)); +UNSUPPORTED("73rfwkv8ws65l7qgnz7jw27gf"); // for (np = agfstnode(g); np; np = agnxtnode(g, np)) { +UNSUPPORTED("9ogvgwje5yfel4p010a2ngel2"); // for (ep = agfstout(g, np); ep; ep = agnxtout(g, ep)) { +UNSUPPORTED("iwctvaad280jc0xmmwtwb8t4"); // dx = ND_pos(np)[0] - ND_pos(aghead(ep))[0]; +UNSUPPORTED("a0kmxxudbdd32pjrdm7h80n7j"); // dy = ND_pos(np)[1] - ND_pos(aghead(ep))[1]; +UNSUPPORTED("2luk1bzlvxvsu4yaq14jpq63e"); // fprintf(stderr, " %s -- %s (%f)\n", agnameof(np), +UNSUPPORTED("5mdn4gi1x1ejrr8dc8ptp7j2b"); // agnameof(aghead(ep)), sqrt(dx * dx + dy * dy)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d496llwnjlxt7wx0sw80xr3h +// void fdp_tLayout(graph_t * g, xparams * xpms) +public static Object fdp_tLayout(Object... arg) { +UNSUPPORTED("4vartheayhc02p8abhpueur8k"); // void fdp_tLayout(graph_t * g, xparams * xpms) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("4yyiedehyodxqynt9nk46f3qx"); // int reset; +UNSUPPORTED("5nprjii4b4t1tqwfa7blveqzl"); // bport_t *pp = (((gdata*)(GD_alg(g)))->ports); +UNSUPPORTED("cdwiwyvrwcamy7fd5h8v4ctix"); // double temp; +UNSUPPORTED("afeqt1r4ifq10hbcu0lkvgtcc"); // Grid *grid; +UNSUPPORTED("43ygqm2wusmc5ufanrf2tywuv"); // pointf ctr; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("9glfmd12pu2aocf0x89qyiagz"); // reset = init_params(g, xpms); +UNSUPPORTED("51hmas0k3ztao4lklbnmgb1z4"); // temp = (parms.T0); +UNSUPPORTED("e6aongyerd2z90gw4058nn9no"); // ctr = initPositions(g, pp); +UNSUPPORTED("5mn14gy4taomtxfb9fvba9s6"); // if ((parms.useGrid)) { +UNSUPPORTED("9gg2q890dm8rk01ln2soy9q07"); // grid = mkGrid(agnnodes(g)); +UNSUPPORTED("99u5ex4brl0v72kblltu29qrp"); // adjustGrid(grid, agnnodes(g)); +UNSUPPORTED("2fwoci0dajsurbv4llksgko0m"); // for (i = 0; i < (parms.loopcnt); i++) { +UNSUPPORTED("8jwip4lpb66zrs8yg95kcyksu"); // temp = cool(temp, i); +UNSUPPORTED("54329047fhts0pe5obmee52ea"); // gAdjust(g, temp, pp, grid); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4j3wd9re4wtkkphmr45m55lv2"); // delGrid(grid); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("2fwoci0dajsurbv4llksgko0m"); // for (i = 0; i < (parms.loopcnt); i++) { +UNSUPPORTED("8jwip4lpb66zrs8yg95kcyksu"); // temp = cool(temp, i); +UNSUPPORTED("767555czr5rvuel3gvb17yhzz"); // adjust(g, temp, pp); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7n6pc2ga10preyiyao295oubn"); // if ((ctr.x != 0.0) || (ctr.y != 0.0)) { +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("a5q2n8etykpay9dc2nx2w6mbz"); // ND_pos(n)[0] += ctr.x; +UNSUPPORTED("hr4c300wuhcjouckus3x3s8z"); // ND_pos(n)[1] += ctr.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("943t36gae0nxvl615sqll9s1g"); // /* dumpstat (g); */ +UNSUPPORTED("d4menyaoqjljh2lz18bl9t9se"); // if (reset) +UNSUPPORTED("7goawf09215kg8vtuk4nqmodn"); // reset_params(); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/fdpgen/xlayout__c.java plantuml-8039/src/gen/lib/fdpgen/xlayout__c.java --- plantuml-8024/src/gen/lib/fdpgen/xlayout__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/fdpgen/xlayout__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1043 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.fdpgen; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class xlayout__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 cvpqgsec3tmr0h6kegatvdo2o +// static xparams xParams = + + +//1 8f9xdlbcpihdbur9naj231v5t +// static double K2 + + +//1 5aob4wghdkq1e28nt4oyrvddh +// static expand_t X_marg + + +//1 7l32vac8fp98do10cuqzpsl4l +// static double X_nonov + + +//1 e5ye4unps2rfrha39ipukbu5e +// static double X_ov + + + + +//3 5bxdoearankwgwnh7ieev1f2t +// void pr2graphs(Agraph_t *g0, Agraph_t *g1) +public static Object pr2graphs(Object... arg) { +UNSUPPORTED("8ob5e3tj3qqkxk707z4sva7dz"); // void pr2graphs(Agraph_t *g0, Agraph_t *g1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("m4sd0gipecvy276t1dajif14"); // fprintf(stderr,"%s",agnameof(g0)); +UNSUPPORTED("aq42dms9d1zaqtfyso8yls5l6"); // fprintf(stderr,"(%s)",agnameof(g1)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9ezskcr89rqd729rtrbqk4blk +// static double RAD(Agnode_t * n) +public static Object RAD(Object... arg) { +UNSUPPORTED("oc162pur08qfqvc6kkdwcgw"); // static double RAD(Agnode_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("anaablhvhkpfruhh6q7k9lfwn"); // double w = (X_marg.doAdd ? (ND_width(n)/2.0 + X_marg.x): ND_width(n)*X_marg.x/2.0); +UNSUPPORTED("zp1pznlvmbw2pfi4j7brjwh5"); // double h = (X_marg.doAdd ? (ND_height(n)/2.0 + X_marg.y): ND_height(n)*X_marg.y/2.0); +UNSUPPORTED("9trl22mhp4axgmgirik14gr6u"); // return sqrt(w * w + h * h); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 35nd9lhu27rtjq5z85w20sqxk +// static void xinit_params(graph_t* g, int n, xparams * xpms) +public static Object xinit_params(Object... arg) { +UNSUPPORTED("2yuaxdm4eoik8go49xh4jyliq"); // static void xinit_params(graph_t* g, int n, xparams * xpms) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7d3dcu9gn67sf4j6ofdlzd9e2"); // xParams.K = xpms->K; +UNSUPPORTED("bzscxmdiib054y1b13fn8y6vb"); // xParams.numIters = xpms->numIters; +UNSUPPORTED("96uw87kt0m77qnixaozfrlmeb"); // xParams.T0 = xpms->T0; +UNSUPPORTED("edcnua4znlcko2ncehdp01ux9"); // xParams.loopcnt = xpms->loopcnt; +UNSUPPORTED("cmz7xoetbuvn90unm99tcjrhz"); // if (xpms->C > 0.0) +UNSUPPORTED("44asfxa3iqq1cwctk3z80y6mn"); // xParams.C = xpms->C; +UNSUPPORTED("74kcpkkqnpr70f5ns8e0ylhwy"); // K2 = xParams.K * xParams.K; +UNSUPPORTED("9y1fegjaeqd8rpw0k4gxl17ry"); // if (xParams.T0 == 0.0) +UNSUPPORTED("9g259lfbcjl150015cll6r9jn"); // xParams.T0 = xParams.K * sqrt(n) / 5; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4evkrutya1m77f44ifcv5ul6k +// static double cool(int t) +public static Object cool(Object... arg) { +UNSUPPORTED("95xloz3za5b4e2j9eok82tdtc"); // static double cool(int t) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("16z464o3q66yekgwi2p39a8pb"); // return (xParams.T0 * (xParams.numIters - t)) / xParams.numIters; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6jgb6820mp4qkxw4s0i7ep80q +// static int overlap(node_t * p, node_t * q) +public static Object overlap(Object... arg) { +UNSUPPORTED("1gajvytagqemoeeempry9wuse"); // static int overlap(node_t * p, node_t * q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("fwy8i5zbwxhddxrcwdkd8w1g"); // double xdelta, ydelta; +UNSUPPORTED("2kjx8618avzvxvykmg255vf7n"); // int ret; +UNSUPPORTED("1gexoq8hut0hmb4k5ef2tvif7"); // xdelta = ND_pos(q)[0] - ND_pos(p)[0]; +UNSUPPORTED("a56zgftjqv6dl2mm95rkt5mh0"); // if (xdelta < 0) +UNSUPPORTED("f1yrmo110089rce2g7b5jgxi2"); // xdelta = -xdelta; +UNSUPPORTED("bwmnzroxk4eq5fdyzazcmagjs"); // ydelta = ND_pos(q)[1] - ND_pos(p)[1]; +UNSUPPORTED("6p9797iiupvo9d8qdjagdayiw"); // if (ydelta < 0) +UNSUPPORTED("6q3ayjopnn4trdnypm5ntd819"); // ydelta = -ydelta; +UNSUPPORTED("a1v2usm8o9axh44ndj4urb3vc"); // ret = ((xdelta <= ((X_marg.doAdd ? (ND_width(p)/2.0 + X_marg.x): ND_width(p)*X_marg.x/2.0) + (X_marg.doAdd ? (ND_width(q)/2.0 + X_marg.x): ND_width(q)*X_marg.x/2.0))) && (ydelta <= ((X_marg.doAdd ? (ND_height(p)/2.0 + X_marg.y): ND_height(p)*X_marg.y/2.0) + (X_marg.doAdd ? (ND_height(q)/2.0 + X_marg.y): ND_height(q)*X_marg.y/2.0)))); +UNSUPPORTED("f3b7mj138albdr4lodyomke0z"); // return ret; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8pxjya6r06g8bxhmlw8bd0fsn +// static int cntOverlaps(graph_t * g) +public static Object cntOverlaps(Object... arg) { +UNSUPPORTED("31o5xe9u8gbzv8w7pouydcktx"); // static int cntOverlaps(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("enbpte8r795n45mzb78meqjac"); // node_t *p; +UNSUPPORTED("aic5rmpwe0z0iycem3zwnz54z"); // node_t *q; +UNSUPPORTED("behjm5bjsenezpg3f7cncvteu"); // int cnt = 0; +UNSUPPORTED("1tf4b5zc506wr6frwwc6uiqh1"); // for (p = agfstnode(g); p; p = agnxtnode(g, p)) { +UNSUPPORTED("cr44g0ehxj0z2z6zs1l1joab"); // for (q = agnxtnode(g, p); q; q = agnxtnode(g, q)) { +UNSUPPORTED("2p4utan0wd6zdw72yy5h9mse2"); // cnt += overlap(p, q); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3zkt5kbq3sockq663o3s3ync7"); // return cnt; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4gtfyi31c5pyuram2ujkjtuxb +// static int doRep(node_t * p, node_t * q, double xdelta, double ydelta, double dist2) +public static Object doRep(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("ci8iet8xei7zuq6iwdwmnfie2"); // doRep(node_t * p, node_t * q, double xdelta, double ydelta, double dist2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("283tteroothnz184tu51u1gqa"); // int ov; +UNSUPPORTED("7xmrzkoismbw37gye9vc6jbi9"); // double force; +UNSUPPORTED("d8u93tbiftet7gnascai5xf56"); // /* double dout, din; */ +UNSUPPORTED("engxau4wuazigk2udq499mfjr"); // /* double factor; */ +UNSUPPORTED("9eyts7dlroeintksamasblz0m"); // while (dist2 == 0.0) { +UNSUPPORTED("a1kln2sh5ckxy9qbqw7ur6m89"); // xdelta = 5 - rand() % 10; +UNSUPPORTED("5utygemiryo6q9jilsrhyspq1"); // ydelta = 5 - rand() % 10; +UNSUPPORTED("9cv1lvbstloqs0iz3qbvzcbmx"); // dist2 = xdelta * xdelta + ydelta * ydelta; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2teit5gznfwgcf6yt9p4yi8b6"); // if ((ov = overlap(p, q))) +UNSUPPORTED("1ji431yv135ypqsxj7mfuq6kz"); // force = X_ov / dist2; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("3jh1msv7a592c7w2o1htjy9f2"); // force = X_nonov / dist2; +UNSUPPORTED("evkb6fsw3t47cwgrg7xefbqgt"); // (((dndata*)(ND_alg(q)))->disp)[0] += xdelta * force; +UNSUPPORTED("47honvuz7ve5pvt9lba48wv53"); // (((dndata*)(ND_alg(q)))->disp)[1] += ydelta * force; +UNSUPPORTED("adgrqasjyy2ekyp2z2g84w46v"); // (((dndata*)(ND_alg(p)))->disp)[0] -= xdelta * force; +UNSUPPORTED("4ynq3yqyvpqd2e9jy2ky9g7m3"); // (((dndata*)(ND_alg(p)))->disp)[1] -= ydelta * force; +UNSUPPORTED("82m5sgzq9tf80cg4je6sb0dt3"); // return ov; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 vo7a7zssw9meiu7cbd9bc2w2 +// static int applyRep(Agnode_t * p, Agnode_t * q) +public static Object applyRep(Object... arg) { +UNSUPPORTED("42w4fs067face6ybhdbc4dm7e"); // static int applyRep(Agnode_t * p, Agnode_t * q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("fwy8i5zbwxhddxrcwdkd8w1g"); // double xdelta, ydelta; +UNSUPPORTED("1gexoq8hut0hmb4k5ef2tvif7"); // xdelta = ND_pos(q)[0] - ND_pos(p)[0]; +UNSUPPORTED("bwmnzroxk4eq5fdyzazcmagjs"); // ydelta = ND_pos(q)[1] - ND_pos(p)[1]; +UNSUPPORTED("abv0h9yqlurn14oo0x5uv9zy4"); // return doRep(p, q, xdelta, ydelta, xdelta * xdelta + ydelta * ydelta); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e7n8inn8axpewkqle5kltm5vc +// static void applyAttr(Agnode_t * p, Agnode_t * q) +public static Object applyAttr(Object... arg) { +UNSUPPORTED("3ae1kegpe2zjt3moizp0poajn"); // static void applyAttr(Agnode_t * p, Agnode_t * q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("fwy8i5zbwxhddxrcwdkd8w1g"); // double xdelta, ydelta; +UNSUPPORTED("7xmrzkoismbw37gye9vc6jbi9"); // double force; +UNSUPPORTED("6ri5yxqbfur0r77yjjezxcpf1"); // double dist; +UNSUPPORTED("ctt5nlvrv7m0w0nxaxij6cj8o"); // double dout; +UNSUPPORTED("c8ob5j0wpqrszphxp6loxhay1"); // double din; +UNSUPPORTED("4cwjdr47kafqn8kx0zhzvpr5d"); // if (overlap(p, q)) { +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1gexoq8hut0hmb4k5ef2tvif7"); // xdelta = ND_pos(q)[0] - ND_pos(p)[0]; +UNSUPPORTED("bwmnzroxk4eq5fdyzazcmagjs"); // ydelta = ND_pos(q)[1] - ND_pos(p)[1]; +UNSUPPORTED("bw1sesuw4cy90zcv9krq4bph2"); // dist = sqrt(xdelta * xdelta + ydelta * ydelta); +UNSUPPORTED("2v56dw0jdzzlhxk831vkn0s6z"); // din = RAD(p) + RAD(q); +UNSUPPORTED("3pghx81y2dpapjaw4o5itdft3"); // dout = dist - din; +UNSUPPORTED("3f80v9p7jk2aow03la9ntwhhj"); // force = (dout * dout) / ((xParams.K + din) * dist); +UNSUPPORTED("ef256m9rw2e3kva0vy4mrt4pn"); // (((dndata*)(ND_alg(q)))->disp)[0] -= xdelta * force; +UNSUPPORTED("de0dfwmddjz26z7cw76x9uejs"); // (((dndata*)(ND_alg(q)))->disp)[1] -= ydelta * force; +UNSUPPORTED("9us8cvhguukd2iasv7c2crzho"); // (((dndata*)(ND_alg(p)))->disp)[0] += xdelta * force; +UNSUPPORTED("e4teme92uacnxx36to3g3mdco"); // (((dndata*)(ND_alg(p)))->disp)[1] += ydelta * force; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 72lfwy94e8xghh1pg6o51jx5d +// static int adjust(Agraph_t * g, double temp) +public static Object adjust(Object... arg) { +UNSUPPORTED("bblnro80uf4l58mz89n7uwroc"); // static int adjust(Agraph_t * g, double temp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("4rip97cgvbcrlgycxl0wajpuh"); // Agnode_t *n1; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("sg55m1c2s3xuubzzp8n0sw3f"); // double temp2; +UNSUPPORTED("83zpklqoz4hkcpabg6bg1meo4"); // double len; +UNSUPPORTED("25uak17ioz04l0iqfpc2rqjmq"); // double len2; +UNSUPPORTED("101m7lg3fvv7bt3cqnrr3ugkz"); // double disp[2]; /* incremental displacement */ +UNSUPPORTED("dh4blwzy2gol2haq0zvq0r4mt"); // int overlaps = 0; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("d4x7a0ncmwpuitrfyisphry1f"); // (((dndata*)(ND_alg(n)))->disp)[0] = (((dndata*)(ND_alg(n)))->disp)[1] = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("8cdovd65kzu7c0gyi9f0vjomk"); // int ov; +UNSUPPORTED("d5vhk45d87pvhm7ey0xmi5all"); // for (n1 = agnxtnode(g, n); n1; n1 = agnxtnode(g, n1)) { +UNSUPPORTED("5d1miakuqe3pufhyrg2nfemab"); // ov = applyRep(n, n1); +UNSUPPORTED("7p6d73ee50u1l78lhlmnrroih"); // /* if (V && ov) */ +UNSUPPORTED("d8rl8vfx944ljvxg4cz14lwoq"); // /* fprintf (stderr,"%s ov %s\n", n->name, n1->name); */ +UNSUPPORTED("6ihxid42li0vto0p3fy18ygc5"); // overlaps += ov; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("9xhw7ldujjd4t38b8enpnbcbe"); // applyAttr(n,aghead(e)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5j0o204tpirp5i0dda3kpel8c"); // if (overlaps == 0) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("amlnzp2bleh099q3wlzlmj8zn"); // temp2 = temp * temp; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("etksonx8xl1ocsnrpk6da3ob1"); // if (ND_pinned(n) == 3) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("46f36xeqr50orzwaaehnyahja"); // disp[0] = (((dndata*)(ND_alg(n)))->disp)[0]; +UNSUPPORTED("7vl0plbi2jk05jpu82kk9vkxk"); // disp[1] = (((dndata*)(ND_alg(n)))->disp)[1]; +UNSUPPORTED("6fr8xh0dd39sdf9ksk754u0uv"); // len2 = disp[0] * disp[0] + disp[1] * disp[1]; +UNSUPPORTED("baq9cdzymvavytsen7guap4p5"); // if (len2 < temp2) { +UNSUPPORTED("eylgn5y6582ba3grgy9oubk2r"); // ND_pos(n)[0] += disp[0]; +UNSUPPORTED("5w0804th0mpm0jxustn7azku9"); // ND_pos(n)[1] += disp[1]; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("9eeklbdqa894l9ixhki8ipa39"); // /* to avoid sqrt, consider abs(x) + abs(y) */ +UNSUPPORTED("4wg0pbkksylkittc56p4xy5y7"); // len = sqrt(len2); +UNSUPPORTED("bbb6yt3aurbnw54oonsao9aco"); // ND_pos(n)[0] += (disp[0] * temp) / len; +UNSUPPORTED("coudu8xt3dyzuw0r88wv26yk4"); // ND_pos(n)[1] += (disp[1] * temp) / len; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("eku6aljbiz6b4mrk8fh010m8o"); // return overlaps; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ebgb1mbfxrbsgxba0h76yoghu +// static int x_layout(graph_t * g, xparams * pxpms, int tries) +public static Object x_layout(Object... arg) { +UNSUPPORTED("d8r2vtws8cszfcp0lp6lpsdtr"); // static int x_layout(graph_t * g, xparams * pxpms, int tries) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("j2awxnit81f2pqilevoqwbi7"); // int try; +UNSUPPORTED("283tteroothnz184tu51u1gqa"); // int ov; +UNSUPPORTED("cdwiwyvrwcamy7fd5h8v4ctix"); // double temp; +UNSUPPORTED("brufdedflymb56undhz1cvxzw"); // int nnodes = agnnodes(g); +UNSUPPORTED("bfnlke01bf5uxsciju0esym0d"); // int nedges = agnedges(g); +UNSUPPORTED("9paqg2y24fs0c7o8fshi8r9gb"); // double K; +UNSUPPORTED("737jd5uo7xo54hyd5aao8g0aw"); // xparams xpms; +UNSUPPORTED("39wpa4jkntkm79hvns271igky"); // X_marg = sepFactor (g); +UNSUPPORTED("ad4bj6umsvvvn9iafmyfski0v"); // if (X_marg.doAdd) { +UNSUPPORTED("1h84n92mhpi0w98m7y86cl09m"); // X_marg.x = ((X_marg.x)/(double)72); /* sepFactor is in points */ +UNSUPPORTED("9ue6xcyhni986kwvxugnza6h5"); // X_marg.y = ((X_marg.y)/(double)72); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a0v0gkh4wqz2jv2jt98llzuzy"); // ov = cntOverlaps(g); +UNSUPPORTED("3uozzdw2fmo6jyna2cqdv2kri"); // if (ov == 0) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("9by4tgha5w5entt0s1o6syehv"); // try = 0; +UNSUPPORTED("93av4lg9y3aedu1bn00moi8mn"); // xpms = *pxpms; +UNSUPPORTED("17eaxg4hlw5ok3b139srbiy37"); // K = xpms.K; +UNSUPPORTED("w7qba5butfj3jdoufrabtvld"); // while (ov && (try < tries)) { +UNSUPPORTED("ctek1x05f6b50pk0hokcaoeoq"); // xinit_params(g, nnodes, &xpms); +UNSUPPORTED("d36bht2b7d3wsqamzk5bp13bn"); // X_ov = xParams.C * K2; +UNSUPPORTED("7jigut7zop8kgoolvtmty4hbj"); // X_nonov = (nedges*X_ov*2.0)/(nnodes*(nnodes-1)); +UNSUPPORTED("jsk5uethwlbnb51ehgow3soh"); // for (i = 0; i < xParams.loopcnt; i++) { +UNSUPPORTED("44wdm4c0q0pht0o3u6v5i07px"); // temp = cool(i); +UNSUPPORTED("2iwdbgfwhz54bkmiukcxxvpz5"); // if (temp <= 0.0) +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("aenxo7m2fi02ngnhda071yjwl"); // ov = adjust(g, temp); +UNSUPPORTED("9p3cpbzv9p8k1ka57xqhalk4s"); // if (ov == 0) +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4o9sjijafemzfi2l116taidm7"); // try++; +UNSUPPORTED("br971gk7pewl58gm56w8ubyx2"); // xpms.K += K; /* increase distance */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("82m5sgzq9tf80cg4je6sb0dt3"); // return ov; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7za1p2k71h4y3ogllxkyx2ih5 +// void fdp_xLayout(graph_t * g, xparams * xpms) +public static Object fdp_xLayout(Object... arg) { +UNSUPPORTED("8t1bcmgwg6m0lep3eprv8adb7"); // void fdp_xLayout(graph_t * g, xparams * xpms) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4o4ua8zjnqs0c2322m5lyi6a4"); // int tries; +UNSUPPORTED("1m8fw6ftw1xq6k4uyghckh81h"); // char* ovlp = agget (g, "overlap"); +UNSUPPORTED("4ktkev652k4fyfzl4rmv5049p"); // char* cp; +UNSUPPORTED("2wtobqhf44rke68jbttqcua4a"); // char* rest; +UNSUPPORTED("cve2on8gll5i0vomy8lnwhai2"); // if (Verbose) { +UNSUPPORTED("2ccn2srthr0pt1isjelqgdyii"); // fprintf (stderr, "xLayout "); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("11agdz7dh5ieet8ctmk1umnfv"); // if (!ovlp || (*ovlp == '\0')) { +UNSUPPORTED("910m35r8c28nhc79emy2xg5xv"); // ovlp = "9:prism"; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ebztm1i3wjnjwd5ujqq4ovjz0"); // /* look for optional ":" or "number:" */ +UNSUPPORTED("f3qk7qrm8j0z7wfwtlqrw9vz3"); // if ((cp = strchr(ovlp, ':')) && ((cp == ovlp) || isdigit(*ovlp))) { +UNSUPPORTED("7wgdzf2gqck3j2qyt8jfply93"); // cp++; +UNSUPPORTED("50lz7fpr4xwh0sg144lh8bsa9"); // rest = cp; +UNSUPPORTED("4yn5gen1je7znx1qfggjf49if"); // tries = atoi (ovlp); +UNSUPPORTED("1wypiyf7bw4lnnglss90nuhq2"); // if (tries < 0) tries = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("1ptbm9147387jdxujy59wugbp"); // tries = 0; +UNSUPPORTED("64lbvqheko14zbss8st4mnx7u"); // rest = ovlp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cve2on8gll5i0vomy8lnwhai2"); // if (Verbose) { +UNSUPPORTED("3w0rxu0bhoiq71ksp1um5148m"); // fprintf (stderr, "tries = %d, mode = %s\n", tries, rest); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3u031ze4x604nx7ic6wal9vqk"); // if (tries && !x_layout(g, xpms, tries)) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("6k7hqqqf1pb0lcyjk0boq5680"); // removeOverlapAs(g, rest); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvbuffstderr__c.java plantuml-8039/src/gen/lib/gvc/gvbuffstderr__c.java --- plantuml-8024/src/gen/lib/gvc/gvbuffstderr__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvbuffstderr__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,102 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvbuffstderr__c { + + +//3 8e1sa6f5ejc0r49gfiuv32aul +// void *buffstderr(void) +public static Object buffstderr(Object... arg) { +UNSUPPORTED("bel1uzbdqhzbiuqj5bt2lxzqq"); // void *buffstderr(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("38cr9skhy4jrzhg3wj3bc20yu"); // struct buff_s *b; +UNSUPPORTED("28m0s1mo38itho1au29oy5rv9"); // assert ((b = malloc(sizeof(struct buff_s)))); +UNSUPPORTED("6rlbco8yzervnvmq2m0r611c1"); // assert ((b->template = strdup("/tmp/stderr_buffer_XXXXXX"))); +UNSUPPORTED("bcqwp3my2rhtv5cf0oviy8odz"); // assert ((p = mktemp(b->template))); +UNSUPPORTED("aw4nnvbir9iy1nuq4aukql0de"); // fflush(stderr); +UNSUPPORTED("62lg711j2rddmpadkk7qhn7o7"); // fgetpos(stderr, &(b->pos)); +UNSUPPORTED("1eysolcc2x8f6m0otum5r2501"); // b->fd = dup(fileno(stderr)); +UNSUPPORTED("6hw12z5dqv9hheh1gxxpmwey0"); // freopen(b->template, "w+", stderr); +UNSUPPORTED("2d461iz08h1aqinzmgs197s94"); // return (void *)b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c9716hxgrfzvnokv7hw8islwa +// char *unbuffstderr(struct buff_s *b) +public static Object unbuffstderr(Object... arg) { +UNSUPPORTED("evux4jdjx4b2zi15ma1m76h5d"); // char *unbuffstderr(struct buff_s *b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eywfpf1qo3rooyuerxrc41h5p"); // long sz; +UNSUPPORTED("71fkgwtjx5c4orpsdy7jkyr86"); // char *t = NULL; +UNSUPPORTED("3al75fenupx704zal37z61c8b"); // FILE *f; +UNSUPPORTED("aw4nnvbir9iy1nuq4aukql0de"); // fflush(stderr); +UNSUPPORTED("2s4h3spdm3ti16pnbbiw5wl7h"); // sz = ftell(stderr); +UNSUPPORTED("sy0yol0bacbdtlzdr1qewlj9"); // dup2(b->fd, fileno(stderr)); +UNSUPPORTED("15iuj8qt4zyy6idhhvkhw7kyy"); // close(b->fd); +UNSUPPORTED("6vd38rt8w7l0uxuayeny4pb4"); // clearerr(stderr); +UNSUPPORTED("elgraii0bqskacqp0kwicgtfj"); // fsetpos(stderr, &(b->pos)); +UNSUPPORTED("9zb4lfjglf6mq4qwh8w8tysh9"); // if (sz) { +UNSUPPORTED("61z9k4t8590rqr4gbjt7udecr"); // /* stderr has been restored; these asserts use normal stderr output */ +UNSUPPORTED("2mznswy9uou17ncks1p4of2f7"); // assert((t = malloc(sz+1))); +UNSUPPORTED("4vbq5cvor2on52t1v9dbok91h"); // assert((f = fopen(b->template, "r"))); +UNSUPPORTED("8s2fk8360i1yh41rn73tpnhj"); // assert( fread(t, 1, sz, f) == sz); +UNSUPPORTED("dk3j3n9fv8k10vlyl1mk71gbf"); // fclose(f); +UNSUPPORTED("7w549vhurh491724lsxzvdx0f"); // t[sz]='\0'; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1iabjly523zdwdwqm9s4pz5vc"); // unlink(b->template); +UNSUPPORTED("1xawfl1gbhijvti6c9mg6k3bi"); // free(b->template); +UNSUPPORTED("am24176ien70yg0oq7iticngs"); // free(b); +UNSUPPORTED("6lv6zglsw62ek6eoecn583mc9"); // return t; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvc__c.java plantuml-8039/src/gen/lib/gvc/gvc__c.java --- plantuml-8024/src/gen/lib/gvc/gvc__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvc__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,440 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static gen.lib.cgraph.attr__c.agattr; +import static gen.lib.gvc.gvconfig__c.gvconfig; +import static gen.lib.gvc.gvcontext__c.gvNEWcontext; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.AGNODE; +import static smetana.core.Macro.NOT; +import static smetana.core.Macro.UNSUPPORTED; +import h.GVC_s; +import smetana.core.CString; + +public class gvc__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + + + +//3 f3vdhir2c7dz3pvmx9d3m4lx1 +// GVC_t *gvContext(void) +public static GVC_s gvContext(Object... arg) { +ENTERING("f3vdhir2c7dz3pvmx9d3m4lx1","gvContext"); +try { + GVC_s gvc; + agattr(null, AGNODE, new CString("label"), new CString("\\N")); + /* default to no builtins, demand loading enabled */ + gvc = (GVC_s) gvNEWcontext(null, (NOT(0))); + gvconfig(gvc, false); /* configure for available plugins */ + return gvc; +} finally { +LEAVING("f3vdhir2c7dz3pvmx9d3m4lx1","gvContext"); +} +} + + + + +//3 71uhxq27gz2h6tw2jii3pv0m1 +// GVC_t *gvContextPlugins(const lt_symlist_t *builtins, int demand_loading) +public static Object gvContextPlugins(Object... arg) { +UNSUPPORTED("ed1o9q8yu974j7v5vbap4dlsk"); // GVC_t *gvContextPlugins(const lt_symlist_t *builtins, int demand_loading) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8f3ds00y6y855lum5r1q8iguu"); // GVC_t *gvc; +UNSUPPORTED("8808fnx5fweuiso27n5bmlach"); // agattr(NULL, AGNODE, "label", "\\N"); +UNSUPPORTED("1n7k6h7whkgv2pc7hm2vxrtlz"); // gvc = gvNEWcontext(builtins, demand_loading); +UNSUPPORTED("36nskub1lmc5t5yi3kt1v69ot"); // gvconfig(gvc, 0); /* configure for available plugins */ +UNSUPPORTED("8vhd87hbzyu5ic6asaqlo81d5"); // return gvc; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dnud6ljljblwvlx76imgoo8i8 +// int gvLayout(GVC_t *gvc, graph_t *g, const char *engine) +public static Object gvLayout(Object... arg) { +UNSUPPORTED("6y1to7xw4qcx9wxk34th6ze7q"); // int gvLayout(GVC_t *gvc, graph_t *g, const char *engine) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9cn2lsc78g1edtf7fifdb4iqx"); // char buf[256]; +UNSUPPORTED("1bh3yj957he6yv2dkeg4pzwdk"); // int rc; +UNSUPPORTED("ajvhg377bzgyjw1u7fc6ynufe"); // rc = gvlayout_select(gvc, engine); +UNSUPPORTED("5wvj0ph8uqfgg8jl3g39jsf51"); // if (rc == 999) { +UNSUPPORTED("bqcqxlaqnxiukaofkbaeohlrc"); // agerr (AGERR, "Layout type: \"%s\" not recognized. Use one of:%s\n", +UNSUPPORTED("6vb5xjowxadh06keqoi8xkixl"); // engine, gvplugin_list(gvc, API_layout, engine)); +UNSUPPORTED("f3a98gxettwtewduvje9y3524"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2zgcvtw13j4ii0vfdebphrdmh"); // if (gvLayoutJobs(gvc, g) == -1) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("1cg49iv90v5mueolzbu69xy3q"); // /* set bb attribute for basic layout. +UNSUPPORTED("a7i33czrx785isv8bnwlpc39h"); // * doesn't yet include margins, scaling or page sizes because +UNSUPPORTED("25x3oqnrohvx47gdi47wjsvje"); // * those depend on the renderer being used. */ +UNSUPPORTED("2cxu41gtx0x2822685tf09ctd"); // if (GD_drawing(g)->landscape) +UNSUPPORTED("bw86vkkrgie6ys9mgl56wng55"); // sprintf(buf, "%d %d %d %d", +UNSUPPORTED("bejqbur89cau7q2a7x8pbuhd7"); // ROUND(GD_bb(g).LL.y), ROUND(GD_bb(g).LL.x), +UNSUPPORTED("3ey1j2uf8t8xsknqe7zba77pt"); // ROUND(GD_bb(g).UR.y), ROUND(GD_bb(g).UR.x)); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("bw86vkkrgie6ys9mgl56wng55"); // sprintf(buf, "%d %d %d %d", +UNSUPPORTED("7r04i6r8wgv29cf9sh4x0os5v"); // ROUND(GD_bb(g).LL.x), ROUND(GD_bb(g).LL.y), +UNSUPPORTED("buvo4ybvfnr1ki5uxao1rrf74"); // ROUND(GD_bb(g).UR.x), ROUND(GD_bb(g).UR.y)); +UNSUPPORTED("dpbq2928p9qeg5a464f8e2yjy"); // agsafeset(g, "bb", buf, ""); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2kh108ndzn77vjo1ch0gt1bak +// int gvRender(GVC_t *gvc, graph_t *g, const char *format, FILE *out) +public static Object gvRender(Object... arg) { +UNSUPPORTED("e2g1sf67k7u629a0lf4qtd4w8"); // int gvRender(GVC_t *gvc, graph_t *g, const char *format, FILE *out) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1bh3yj957he6yv2dkeg4pzwdk"); // int rc; +UNSUPPORTED("1ag9dz4apxn0w3cz8w2bfm6se"); // GVJ_t *job; +UNSUPPORTED("8msotrfl0cngiua3j57ylm26b"); // g = g->root; +UNSUPPORTED("exts51afuertju5ed5v7pdpg7"); // /* create a job for the required format */ +UNSUPPORTED("dn6z1r1bbrtmr58m8dnfgfnm0"); // rc = gvjobs_output_langname(gvc, format); +UNSUPPORTED("5apijrijm2r8b1g2l4x7iee7s"); // job = gvc->job; +UNSUPPORTED("5wvj0ph8uqfgg8jl3g39jsf51"); // if (rc == 999) { +UNSUPPORTED("4lkoedjryn54aff3fyrsewwu5"); // agerr (AGERR, "Format: \"%s\" not recognized. Use one of:%s\n", +UNSUPPORTED("2pjgp86rkudo6mihbako5yps2"); // format, gvplugin_list(gvc, API_device, format)); +UNSUPPORTED("f3a98gxettwtewduvje9y3524"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ect62lxc3zm51lhzifift55m"); // job->output_lang = gvrender_select(job, job->output_langname); +UNSUPPORTED("ewlceg1k4gs2e6syq4ear5kzo"); // if (!(agbindrec(g, "Agraphinfo_t", 0, NOT(0)) && GD_drawing(g)) && !(job->flags & (1<<26))) { +UNSUPPORTED("3yo4xyapbp7osp8uyz4kff98s"); // agerrorf( "Layout was not done\n"); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2ai20uylya195fbdqwjy9bz0n"); // job->output_file = out; +UNSUPPORTED("10kpqi6pvibjsxjyg0g76lix3"); // if (out == NULL) +UNSUPPORTED("d47ukby9krmz2k8ycmzzynnfr"); // job->flags |= (1<<27); +UNSUPPORTED("9szsye4q9jykqvtk0bc1r91d0"); // rc = gvRenderJobs(gvc, g); +UNSUPPORTED("7l8ugws8ptgtlxc1ymmh3cf18"); // gvrender_end_job(job); +UNSUPPORTED("a9p7yonln7g91ge7xab3xf9dr"); // gvjobs_delete(gvc); +UNSUPPORTED("5bc9k4vsl6g7wejc5xefc5964"); // return rc; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2e8uwmja1nq8v3iktli5cq851 +// int gvRenderFilename(GVC_t *gvc, graph_t *g, const char *format, const char *filename) +public static Object gvRenderFilename(Object... arg) { +UNSUPPORTED("9xxpjotl5x2p5wtwqunca24kv"); // int gvRenderFilename(GVC_t *gvc, graph_t *g, const char *format, const char *filename) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1bh3yj957he6yv2dkeg4pzwdk"); // int rc; +UNSUPPORTED("1ag9dz4apxn0w3cz8w2bfm6se"); // GVJ_t *job; +UNSUPPORTED("8msotrfl0cngiua3j57ylm26b"); // g = g->root; +UNSUPPORTED("exts51afuertju5ed5v7pdpg7"); // /* create a job for the required format */ +UNSUPPORTED("dn6z1r1bbrtmr58m8dnfgfnm0"); // rc = gvjobs_output_langname(gvc, format); +UNSUPPORTED("5apijrijm2r8b1g2l4x7iee7s"); // job = gvc->job; +UNSUPPORTED("5wvj0ph8uqfgg8jl3g39jsf51"); // if (rc == 999) { +UNSUPPORTED("cpui2f5hfk3cihua2ie59746n"); // agerr(AGERR, "Format: \"%s\" not recognized. Use one of:%s\n", +UNSUPPORTED("2pjgp86rkudo6mihbako5yps2"); // format, gvplugin_list(gvc, API_device, format)); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ect62lxc3zm51lhzifift55m"); // job->output_lang = gvrender_select(job, job->output_langname); +UNSUPPORTED("ewlceg1k4gs2e6syq4ear5kzo"); // if (!(agbindrec(g, "Agraphinfo_t", 0, NOT(0)) && GD_drawing(g)) && !(job->flags & (1<<26))) { +UNSUPPORTED("3yo4xyapbp7osp8uyz4kff98s"); // agerrorf( "Layout was not done\n"); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("23iaqajrvbemalclzlgih1a09"); // gvjobs_output_filename(gvc, filename); +UNSUPPORTED("9szsye4q9jykqvtk0bc1r91d0"); // rc = gvRenderJobs(gvc, g); +UNSUPPORTED("7l8ugws8ptgtlxc1ymmh3cf18"); // gvrender_end_job(job); +UNSUPPORTED("dql0bth0nzsrpiu9vnffonrhf"); // gvdevice_finalize(job); +UNSUPPORTED("a9p7yonln7g91ge7xab3xf9dr"); // gvjobs_delete(gvc); +UNSUPPORTED("5bc9k4vsl6g7wejc5xefc5964"); // return rc; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e73ju97kxz883q0hp1udq4rd7 +// int gvRenderContext(GVC_t *gvc, graph_t *g, const char *format, void *context) +public static Object gvRenderContext(Object... arg) { +UNSUPPORTED("6bxfu9f9cshxn0i97berfl9bw"); // int gvRenderContext(GVC_t *gvc, graph_t *g, const char *format, void *context) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1bh3yj957he6yv2dkeg4pzwdk"); // int rc; +UNSUPPORTED("1ag9dz4apxn0w3cz8w2bfm6se"); // GVJ_t *job; +UNSUPPORTED("8msotrfl0cngiua3j57ylm26b"); // g = g->root; +UNSUPPORTED("exts51afuertju5ed5v7pdpg7"); // /* create a job for the required format */ +UNSUPPORTED("dn6z1r1bbrtmr58m8dnfgfnm0"); // rc = gvjobs_output_langname(gvc, format); +UNSUPPORTED("5apijrijm2r8b1g2l4x7iee7s"); // job = gvc->job; +UNSUPPORTED("5wvj0ph8uqfgg8jl3g39jsf51"); // if (rc == 999) { +UNSUPPORTED("8r1a6szpsnku0jhatqkh0qo75"); // agerr(AGERR, "Format: \"%s\" not recognized. Use one of:%s\n", +UNSUPPORTED("2pj79j8toe6bactkaedt54xcv"); // format, gvplugin_list(gvc, API_device, format)); +UNSUPPORTED("b0epxudfxjm8kichhaautm2qi"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ect62lxc3zm51lhzifift55m"); // job->output_lang = gvrender_select(job, job->output_langname); +UNSUPPORTED("ewlceg1k4gs2e6syq4ear5kzo"); // if (!(agbindrec(g, "Agraphinfo_t", 0, NOT(0)) && GD_drawing(g)) && !(job->flags & (1<<26))) { +UNSUPPORTED("3yo4xyapbp7osp8uyz4kff98s"); // agerrorf( "Layout was not done\n"); +UNSUPPORTED("b0epxudfxjm8kichhaautm2qi"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ex1rhur9nlj950oe8r621uxxk"); // job->context = context; +UNSUPPORTED("3hvm1mza6yapsb3hi7bkw03cs"); // job->external_context = NOT(0); +UNSUPPORTED("9szsye4q9jykqvtk0bc1r91d0"); // rc = gvRenderJobs(gvc, g); +UNSUPPORTED("7l8ugws8ptgtlxc1ymmh3cf18"); // gvrender_end_job(job); +UNSUPPORTED("dql0bth0nzsrpiu9vnffonrhf"); // gvdevice_finalize(job); +UNSUPPORTED("a9p7yonln7g91ge7xab3xf9dr"); // gvjobs_delete(gvc); +UNSUPPORTED("5bc9k4vsl6g7wejc5xefc5964"); // return rc; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2p4eja1ksp0cdz8qxl7wpzez9 +// int gvRenderData(GVC_t *gvc, graph_t *g, const char *format, char **result, unsigned int *length) +public static Object gvRenderData(Object... arg) { +UNSUPPORTED("epzew3wavf5f9mykc38usb6r9"); // int gvRenderData(GVC_t *gvc, graph_t *g, const char *format, char **result, unsigned int *length) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1bh3yj957he6yv2dkeg4pzwdk"); // int rc; +UNSUPPORTED("1ag9dz4apxn0w3cz8w2bfm6se"); // GVJ_t *job; +UNSUPPORTED("8msotrfl0cngiua3j57ylm26b"); // g = g->root; +UNSUPPORTED("exts51afuertju5ed5v7pdpg7"); // /* create a job for the required format */ +UNSUPPORTED("dn6z1r1bbrtmr58m8dnfgfnm0"); // rc = gvjobs_output_langname(gvc, format); +UNSUPPORTED("5apijrijm2r8b1g2l4x7iee7s"); // job = gvc->job; +UNSUPPORTED("5wvj0ph8uqfgg8jl3g39jsf51"); // if (rc == 999) { +UNSUPPORTED("cpui2f5hfk3cihua2ie59746n"); // agerr(AGERR, "Format: \"%s\" not recognized. Use one of:%s\n", +UNSUPPORTED("2pjgp86rkudo6mihbako5yps2"); // format, gvplugin_list(gvc, API_device, format)); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ect62lxc3zm51lhzifift55m"); // job->output_lang = gvrender_select(job, job->output_langname); +UNSUPPORTED("ewlceg1k4gs2e6syq4ear5kzo"); // if (!(agbindrec(g, "Agraphinfo_t", 0, NOT(0)) && GD_drawing(g)) && !(job->flags & (1<<26))) { +UNSUPPORTED("3yo4xyapbp7osp8uyz4kff98s"); // agerrorf( "Layout was not done\n"); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e2razcqp20hymeukedg9bannu"); // /* page size on Linux, Mac OS X and Windows */ +UNSUPPORTED("78h54wwr6x96fwwes4nhn1tnu"); // if(!result || !(*result = malloc(4096))) { +UNSUPPORTED("48p1xzjf31myn1slku76g3c8j"); // agerr(AGERR, "failure malloc'ing for result string"); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f3ljfuaa9qaj4cd1xhojgsd7d"); // job->output_data = *result; +UNSUPPORTED("619t5sjk3c37ujk3ndu91wamv"); // job->output_data_allocated = 4096; +UNSUPPORTED("dbvvz39zyfsbhofeha2hb1wpf"); // job->output_data_position = 0; +UNSUPPORTED("9szsye4q9jykqvtk0bc1r91d0"); // rc = gvRenderJobs(gvc, g); +UNSUPPORTED("7l8ugws8ptgtlxc1ymmh3cf18"); // gvrender_end_job(job); +UNSUPPORTED("78jlu7v0o8b8itbx8ri5ptkc7"); // if (rc == 0) { +UNSUPPORTED("2w0i2qgohz8ogcqrg43r585dh"); // *result = job->output_data; +UNSUPPORTED("cnqap0ow188zdpvtqu6bfrmyr"); // *length = job->output_data_position; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a9p7yonln7g91ge7xab3xf9dr"); // gvjobs_delete(gvc); +UNSUPPORTED("5bc9k4vsl6g7wejc5xefc5964"); // return rc; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9dmqkq749nve1m6f0uz279w5x +// void gvFreeRenderData (char* data) +public static Object gvFreeRenderData(Object... arg) { +UNSUPPORTED("4zoblerqjutmiyqrcnymyvo8"); // void gvFreeRenderData (char* data) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("23jg3jufd8h5n6iqw6jh5trop"); // free (data); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 63riwkqx5e0b3n3yyjalaveuy +// void gvAddLibrary(GVC_t *gvc, gvplugin_library_t *lib) +public static Object gvAddLibrary(Object... arg) { +UNSUPPORTED("31dpjbojh15wnjppy2p096exn"); // void gvAddLibrary(GVC_t *gvc, gvplugin_library_t *lib) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eawa3cjrrmhe2wb24kkblkv6k"); // gvconfig_plugin_install_from_library(gvc, NULL, lib); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bpzhymnb55ana0o9q691it06 +// char **gvcInfo(GVC_t* gvc) +public static Object gvcInfo(Object... arg) { +UNSUPPORTED("4o912yqrgsuc4t2uym0i2siv3"); // char **gvcInfo(GVC_t* gvc) { return gvc->common.info; } + +throw new UnsupportedOperationException(); +} + + + + +//3 6gnk937rtz89xtqqmf7nb8mod +// char *gvcVersion(GVC_t* gvc) +public static Object gvcVersion(Object... arg) { +UNSUPPORTED("34219rcx2cc7lx28xxwdo2zic"); // char *gvcVersion(GVC_t* gvc) { return gvc->common.info[1]; } + +throw new UnsupportedOperationException(); +} + + + + +//3 if7qohbqqln8g7vnhx128b1k +// char *gvcBuildDate(GVC_t* gvc) +public static Object gvcBuildDate(Object... arg) { +UNSUPPORTED("7r5j1w6y3ov7ta18s257h2rqv"); // char *gvcBuildDate(GVC_t* gvc) { return gvc->common.info[2]; } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvconfig__c.java plantuml-8039/src/gen/lib/gvc/gvconfig__c.java --- plantuml-8024/src/gen/lib/gvc/gvconfig__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvconfig__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,236 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static gen.lib.common.textspan__c.textfont_dict_open; +import static gen.lib.gvc.gvtextlayout__c.gvtextlayout_select; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.GVC_s; +import h.lt_symlist_t; +import smetana.core.CString; + +public class gvconfig__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + + + +//3 btaticnvqvav6giyqk5dhvl0b +// static gvplugin_package_t * gvplugin_package_record(GVC_t * gvc, char *path, char *name) +public static Object gvplugin_package_record(Object... arg) { +UNSUPPORTED("d0v4w7mmhzyohr3cydmk39msc"); // static gvplugin_package_t * gvplugin_package_record(GVC_t * gvc, char *path, char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3l201ckgkdpkadl64dgd5t34a"); // gvplugin_package_t *package = gmalloc(sizeof(gvplugin_package_t)); +UNSUPPORTED("e1ux222fnf2pzhlllspc0n9z6"); // package->path = (path) ? strdup(path) : NULL; +UNSUPPORTED("6tx9kbkb680t4nrzo9h6wmxt7"); // package->name = strdup(name); +UNSUPPORTED("2ddoa0el03kdry52dvxdp02xi"); // package->next = gvc->packages; +UNSUPPORTED("2wtcp1phunrqzsy2eyeelnisd"); // gvc->packages = package; +UNSUPPORTED("1cvdn1usbhmpxzhmfo5t0qhv0"); // return package; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7b32j8w9cd211oy7f26zd2ld6 +// void gvconfig_plugin_install_from_library(GVC_t * gvc, char *path, gvplugin_library_t *library) +public static Object gvconfig_plugin_install_from_library(Object... arg) { +UNSUPPORTED("9qlio5kiswebv40u9nmcxh1um"); // void gvconfig_plugin_install_from_library(GVC_t * gvc, char *path, gvplugin_library_t *library) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1tb07tzg54jallfz0upl62c1g"); // gvplugin_api_t *apis; +UNSUPPORTED("2ihbo5t1nbmg4dq1qvwi9sqoh"); // gvplugin_installed_t *types; +UNSUPPORTED("as58mgqb4uw4c8n4sdq7m0qz3"); // gvplugin_package_t *package; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("21xt0dglbm2xme4gg1b8b9tfl"); // package = gvplugin_package_record(gvc, path, library->packagename); +UNSUPPORTED("44g9muiwx72zahb9xx5xzmfyv"); // for (apis = library->apis; (types = apis->types); apis++) { +UNSUPPORTED("bslr2lh149d2y32qozijhg1pj"); // for (i = 0; types[i].type; i++) { +UNSUPPORTED("7xl5c8mkdfmtazqddql72rl4l"); // gvplugin_install(gvc, apis->api, types[i].type, +UNSUPPORTED("81elyir1t9mhizwx6bh2dy6fc"); // types[i].quality, package, &types[i]); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a0u25p4ndz2d3mpylo4jnz9cc +// static void gvconfig_plugin_install_builtins(GVC_t * gvc) +public static void gvconfig_plugin_install_builtins(GVC_s gvc) { +ENTERING("a0u25p4ndz2d3mpylo4jnz9cc","gvconfig_plugin_install_builtins"); +try { + lt_symlist_t s; + CString name; + if (gvc.getStruct("common").getPtr("builtins") == null) return; +UNSUPPORTED("5h6ty7bll7yb1rvxiy8b1a17y"); // for (s = gvc->common.builtins; (name = s->name); s++) +UNSUPPORTED("efvffxomvrmz7nbrcbcvananw"); // if (name[0] == 'g' && strstr(name, "_LTX_library")) +UNSUPPORTED("95pie5przmmzrwnym8ye97v2e"); // gvconfig_plugin_install_from_library(gvc, NULL, +UNSUPPORTED("ezsy5hnc71vs70pla8x24w5py"); // (gvplugin_library_t *)(s->address)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("a0u25p4ndz2d3mpylo4jnz9cc","gvconfig_plugin_install_builtins"); +} +} + + + + +//3 f5fyxnkmknydgjt6dtc035z9w +// void gvconfig(GVC_t * gvc, boolean rescan) +public static void gvconfig(GVC_s gvc, boolean rescan) { +ENTERING("f5fyxnkmknydgjt6dtc035z9w","gvconfig"); +try { + /* builtins don't require LTDL */ + gvconfig_plugin_install_builtins(gvc); + gvc.setInt("config_found", 0); + gvtextlayout_select(gvc); /* choose best available textlayout plugin immediately */ + textfont_dict_open(gvc); /* initialize font dict */ +} finally { +LEAVING("f5fyxnkmknydgjt6dtc035z9w","gvconfig"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvcontext__c.java plantuml-8039/src/gen/lib/gvc/gvcontext__c.java --- plantuml-8024/src/gen/lib/gvc/gvcontext__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvcontext__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,234 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static gen.lib.common.memory__c.zmalloc; +import static smetana.core.JUtils.function; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.GVC_s; +import h.lt_symlist_t; +import smetana.core.__ptr__; + +public class gvcontext__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 9xccaaawyqf5atj8e59ems07n +// static char *LibInfo[] = +//public static java.util.List LibInfo = java.util.Arrays.asList(new CString("graphviz"),new CString("PACKAGE_VERSION"),new CString("BUILDDATE")); +public static __ptr__ LibInfo = null; + + + +//3 8jwauh4lo3kcvxhomy40s94b +// GVC_t *gvNEWcontext(const lt_symlist_t *builtins, int demand_loading) +public static GVC_s gvNEWcontext(lt_symlist_t builtins, boolean demand_loading) { +ENTERING("8jwauh4lo3kcvxhomy40s94b","gvNEWcontext"); +try { + GVC_s gvc = (GVC_s) zmalloc(sizeof(GVC_s.class)); + if (gvc!=null) { + gvc.getStruct("common").setPtr("info", LibInfo); + gvc.getStruct("common").setPtr("errorfn", function(gen.lib.cgraph.agerror__c.class, "agerrorf")); + gvc.getStruct("common").setPtr("builtins", builtins); + gvc.getStruct("common").setBoolean("demand_loading", demand_loading); + } + return gvc; +} finally { +LEAVING("8jwauh4lo3kcvxhomy40s94b","gvNEWcontext"); +} +} + + + + +//3 7i8lj0jlmprrj5kmbegtkh46n +// void gvFinalize(GVC_t * gvc) +public static Object gvFinalize(Object... arg) { +UNSUPPORTED("1dio7yofln4lzxco3d0eucybt"); // void gvFinalize(GVC_t * gvc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("72t0pmaautwuw3vb1xwa2grxz"); // if (gvc->active_jobs) +UNSUPPORTED("dtzx65g0vmdvgplajdnqct44o"); // gvrender_end_job(gvc->active_jobs); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ctg42qeu1yvs2g9r5wcv4zzrl +// int gvFreeContext(GVC_t * gvc) +public static Object gvFreeContext(Object... arg) { +UNSUPPORTED("cdc5p7gur1o2qu1rfaiwrhdyj"); // int gvFreeContext(GVC_t * gvc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5hwchhks73n6p0p7iu2dhstho"); // GVG_t *gvg, *gvg_next; +UNSUPPORTED("adwgvl59jz4qsr1d7xxq5rsng"); // gvplugin_package_t *package, *package_next; +UNSUPPORTED("arvwlcmlxzvpwvk7s223e2w8"); // emit_once_reset(); +UNSUPPORTED("eutrfc45t7pr7snzd0yrns61e"); // gvg_next = gvc->gvgs; +UNSUPPORTED("egtqgis45r50r0vpmklawt86c"); // while ((gvg = gvg_next)) { +UNSUPPORTED("een7xpunmqq9r51mgh694gxvi"); // gvg_next = gvg->next; +UNSUPPORTED("4iv5fzitlc63rdpf954w6dbax"); // free(gvg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("aemtpukkty8b8p02pq9n1pe12"); // package_next = gvc->packages; +UNSUPPORTED("6bhwk4v49u06ll2918aiuelsp"); // while ((package = package_next)) { +UNSUPPORTED("17d6nsylkka56jdgieafhw3cl"); // package_next = package->next; +UNSUPPORTED("37qv8a4u1yiip7ecavr8qkzkm"); // free(package->path); +UNSUPPORTED("7pxw8ghhb5xxlpdd1jv7osfhz"); // free(package->name); +UNSUPPORTED("aimh83a3k7a6ayfix3ppi8nqx"); // free(package); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a9p7yonln7g91ge7xab3xf9dr"); // gvjobs_delete(gvc); +UNSUPPORTED("7rlh9wuy2qrh0ehtb3gdalado"); // if (gvc->config_path) +UNSUPPORTED("757mqdb4lingk1bymuktrnevh"); // free(gvc->config_path); +UNSUPPORTED("85h1etabgqi4o3qi83c7cprtf"); // if (gvc->input_filenames) +UNSUPPORTED("58u4di4bdc3xnuj9x373q03z"); // free(gvc->input_filenames); +UNSUPPORTED("2wnuuoxkpo409qiqqaihby1z9"); // textfont_dict_close(gvc); +UNSUPPORTED("beuj2gz4oz0esqo5psm1l653c"); // free(gvc); +UNSUPPORTED("41ok9shf9o21b8omrjo4s42gl"); // return (graphviz_errors + agerrors()); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvdevice__c.java plantuml-8039/src/gen/lib/gvc/gvdevice__c.java --- plantuml-8024/src/gen/lib/gvc/gvdevice__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvdevice__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,604 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvdevice__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 eru7ktmd59gl3fcbs2oilhvbl +// static const int PAGE_ALIGN = 4095 + + + + +//3 2bgvvqltcp240iwsswb2msc4b +// static size_t gvwrite_no_z (GVJ_t * job, const char *s, size_t len) +public static Object gvwrite_no_z(Object... arg) { +UNSUPPORTED("avituu19zqjw7jh9tfrcm2vaa"); // static size_t gvwrite_no_z (GVJ_t * job, const char *s, size_t len) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6thhrxbooxwjzs6lvh7tmii55"); // if (job->gvc->write_fn) /* externally provided write dicipline */ +UNSUPPORTED("ajwhqhqyqpwentvna296wopdr"); // return (job->gvc->write_fn)(job, (char*)s, len); +UNSUPPORTED("lih0ttredmrxsoz6mrlvzubo"); // if (job->output_data) { +UNSUPPORTED("bnah2gb2ufomx7jjnzd97mbzm"); // if (len > job->output_data_allocated - (job->output_data_position + 1)) { +UNSUPPORTED("3hrbwji40pio192kzij9cn7v1"); // /* ensure enough allocation for string = null terminator */ +UNSUPPORTED("1ezdnr79jqff920zcjfu0ppqk"); // job->output_data_allocated = (job->output_data_position + len + 1 + PAGE_ALIGN) & ~PAGE_ALIGN; +UNSUPPORTED("b67xdfs465mphgzhwe78lbfbu"); // job->output_data = realloc(job->output_data, job->output_data_allocated); +UNSUPPORTED("4xh16lf1s9kh9dcfg8f9fkvfb"); // if (!job->output_data) { +UNSUPPORTED("ec5pxlqld1kcgdncsj3us6t3s"); // (job->common->errorfn) ("memory allocation failure\n"); +UNSUPPORTED("7ujm7da8xuut83e2rygja0n9d"); // exit(1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c02x4fbrjzoq9hakupjq645pz"); // memcpy(job->output_data + job->output_data_position, s, len); +UNSUPPORTED("bmmkwdo5fdxd026lky22ivss6"); // job->output_data_position += len; +UNSUPPORTED("9akolspkl84209r7uz2tjd6dd"); // job->output_data[job->output_data_position] = '\0'; /* keep null termnated */ +UNSUPPORTED("38a44j47si8lvew9i7jutukn9"); // return len; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("8n04i1xqzj3xqxz7bhsek9vn7"); // return fwrite(s, sizeof(char), len, job->output_file); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cc376t4uiy6qsmjtdc2stei85 +// static void auto_output_filename(GVJ_t *job) +public static Object auto_output_filename(Object... arg) { +UNSUPPORTED("7bmm5yx4a4rufskcsnxv6wl0z"); // static void auto_output_filename(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8kywmm7f51dmrjngxwvnpsd4o"); // static char *buf; +UNSUPPORTED("ej9a738oun75yfz0fwi5yrr5"); // static size_t bufsz; +UNSUPPORTED("92ye5npa3uq0ky5glgy35w5sk"); // char gidx[100]; /* large enough for '.' plus any integer */ +UNSUPPORTED("4qa1e25as4n8qmsddpuz660zr"); // char *fn, *p, *q; +UNSUPPORTED("do481ti1ubw0ltflx52iweigu"); // size_t len; +UNSUPPORTED("8siu0oojewru3x36pkpq3rtcm"); // if (job->graph_index) +UNSUPPORTED("36vwk7ry5ee8fz8vvvxhsa53y"); // sprintf(gidx, ".%d", job->graph_index + 1); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("11rmpw063nwapibztle1uicb4"); // gidx[0] = '\0'; +UNSUPPORTED("bdnmi5g7zugx6oqb8oim4qkk6"); // if (!(fn = job->input_filename)) +UNSUPPORTED("1461mo4l6w379jk7almrmjggq"); // fn = "noname.gv"; +UNSUPPORTED("eo5ffy7jun0ei6jtmk8u4kwo5"); // len = strlen(fn) /* typically "something.gv" */ +UNSUPPORTED("1ujivh2ss3ln7xyoufm1icu1s"); // + strlen(gidx) /* "", ".2", ".3", ".4", ... */ +UNSUPPORTED("kjjd1xhi7gp11bp4k1e57wxd"); // + 1 /* "." */ +UNSUPPORTED("eygwbha2x1l4n5rzyomr2dbqz"); // + strlen(job->output_langname) /* e.g. "png" */ +UNSUPPORTED("6smfmxycsc2mrvcsl6mrgi727"); // + 1; /* null terminaor */ +UNSUPPORTED("55qowwh2rcv2v2uu70hde9ct4"); // if (bufsz < len) { +UNSUPPORTED("12hyi8sdel7zfnt9c20av1tp8"); // bufsz = len + 10; +UNSUPPORTED("7ms5jdr5m50uzo3lxyt1gq0cj"); // buf = realloc(buf, bufsz * sizeof(char)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3czlpsj98ep2bccpqdudm2bej"); // strcpy(buf, fn); +UNSUPPORTED("5iz9z9zc85yv4b16sbx2lywny"); // strcat(buf, gidx); +UNSUPPORTED("5uqzbiefai050ewcqnxnhzyd2"); // strcat(buf, "."); +UNSUPPORTED("erqd7hdzmwkcvzz2s1bjfhgwr"); // p = strdup(job->output_langname); +UNSUPPORTED("4n8ktnhzjg21hh167bu9kbvuh"); // while ((q = strrchr(p, ':'))) { +UNSUPPORTED("18g9wxzxu3k31c0stdr62a2r6"); // strcat(buf, q+1); +UNSUPPORTED("3d0me2fe34rtpbmdfbbp9zyvk"); // strcat(buf, "."); +UNSUPPORTED("cxlp7boqg1gqp4ii26w29519a"); // *q = '\0'; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("94ysqimvfahimlahyh4amvdd8"); // strcat(buf, p); +UNSUPPORTED("bo0y3vz195pcz24vm46pixpb2"); // free(p); +UNSUPPORTED("eif3727zpcgrby865izuy2bam"); // job->output_filename = buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9zdt3xvyjnxhf42eizyfy29ly +// int gvdevice_initialize(GVJ_t * job) +public static Object gvdevice_initialize(Object... arg) { +UNSUPPORTED("2same1m1pu1ldefe93fodijcl"); // int gvdevice_initialize(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("44r8xaau6kv13q6liujnhwe0i"); // gvdevice_engine_t *gvde = job->device.engine; +UNSUPPORTED("eyew5ay5wwktz4fysz0b78ugv"); // GVC_t *gvc = job->gvc; +UNSUPPORTED("2p848auysctbpp02yxskwgoef"); // if (gvde && gvde->initialize) { +UNSUPPORTED("3vrhe9vyw7wj2er55do0u371j"); // gvde->initialize(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8gs9pxngjqg7knaxiacx0x8tq"); // else if (job->output_data) { +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("359rwgnb349m83fzxkva3v46w"); // /* if the device has no initialization then it uses file output */ +UNSUPPORTED("33oebivtpnjqlipt0pt25chff"); // else if (!job->output_file) { /* if not yet opened */ +UNSUPPORTED("dp33ygrqgmzkpm08snkc1ervb"); // if (gvc->common.auto_outfile_names) +UNSUPPORTED("e114zl89x5x9bx0p6tnctzh9z"); // auto_output_filename(job); +UNSUPPORTED("a7zftzoyvxtzvya1m1b2ttg72"); // if (job->output_filename) { +UNSUPPORTED("v1eei32rad2oq6s98de4ew05"); // job->output_file = fopen(job->output_filename, "w"); +UNSUPPORTED("afw1ljocg5i7vzl6ghbj5joaq"); // if (job->output_file == (void *)0) { +UNSUPPORTED("3kbjb2hiznrrr74oirsmjdsjy"); // (job->common->errorfn) ("Could not open \"%s\" for writing : %s\n", +UNSUPPORTED("2lce20ttxmbpd5czpm6pd2mv6"); // job->output_filename, strerror(errno)); +UNSUPPORTED("ef12rdptgkbtbbvkzn1djihki"); // /* perror(job->output_filename); */ +UNSUPPORTED("6jf2l4v31jakvckptxdonjqpl"); // return(1); +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("35nw1pbiz2p3s6qwlam5eoo3m"); // else +UNSUPPORTED("9c37ox95uc5viasrpewfi74ew"); // job->output_file = stdout; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("146f5u2dl3dt3devy0qnn6ylz"); // if (job->flags & (1<<10)) { +UNSUPPORTED("98ow53mx94n2jxerk4g3xuyju"); // (job->common->errorfn) ("No libz support.\n"); +UNSUPPORTED("atcj5la5r4ghvn5xk7kx25y7f"); // return(1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ajhncfer509k2pk55o2k8w9aw +// size_t gvwrite (GVJ_t * job, const char *s, size_t len) +public static Object gvwrite(Object... arg) { +UNSUPPORTED("bwx5n843dguc728qqcypic3er"); // size_t gvwrite (GVJ_t * job, const char *s, size_t len) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cmn7vwsif1z0j2gjyq9v1u4pc"); // size_t ret, olen; +UNSUPPORTED("bhgtpxgp12b1cvyt6ozbjx6yy"); // if (!len || !s) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("146f5u2dl3dt3devy0qnn6ylz"); // if (job->flags & (1<<10)) { +UNSUPPORTED("98ow53mx94n2jxerk4g3xuyju"); // (job->common->errorfn) ("No libz support.\n"); +UNSUPPORTED("dtw3cma0ziyha0w534bszl0tx"); // exit(1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8k95edr042llogz6nqedj70ic"); // else { /* uncompressed write */ +UNSUPPORTED("3dfkzetcm152gosaspkplit3e"); // ret = gvwrite_no_z (job, s, len); +UNSUPPORTED("couxfse3y39odtdvb0dsftko7"); // if (ret != len) { +UNSUPPORTED("d5gw78oi8bl5tvl05pegfx7do"); // (job->common->errorfn) ("gvwrite_no_z problem %d\n", len); +UNSUPPORTED("6f1y0d5qfp1r9zpw0r7m6xfb4"); // exit(1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ji4xmwppaalf0z5xzgfw9h36"); // return len; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 38q4ri7dsm0ur36bqkxqeeu6y +// int gvferror (FILE* stream) +public static Object gvferror(Object... arg) { +UNSUPPORTED("bw6pcxpys8yj8g1611fjiq85f"); // int gvferror (FILE* stream) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3g3bthpqcv2dm7v2g4agrgksv"); // GVJ_t *job = (GVJ_t*)stream; +UNSUPPORTED("e7b7ktlmv7bf41ah2uirp0wr4"); // if (!job->gvc->write_fn && !job->output_data) +UNSUPPORTED("k1l61wmfzzg66hb7gu3ouzpe"); // return ferror(job->output_file); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ejkm659i2t9ni9abwvls81srg +// size_t gvfwrite (const void *ptr, size_t size, size_t nmemb, FILE *stream) +public static Object gvfwrite(Object... arg) { +UNSUPPORTED("9jmr6dp0tzh6pynfebkrgg0qu"); // size_t gvfwrite (const void *ptr, size_t size, size_t nmemb, FILE *stream) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2fw95dei1ujeec0ctcdy57c1x"); // assert(size = sizeof(char)); +UNSUPPORTED("bnwpx03tbl086znf32xqomw8m"); // return gvwrite((GVJ_t*)stream, ptr, nmemb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 baq4lnmy9b8h5r38t5kac1wfp +// int gvputs(GVJ_t * job, const char *s) +public static Object gvputs(Object... arg) { +UNSUPPORTED("1p5e428gxaoorzh5qz00rfy0k"); // int gvputs(GVJ_t * job, const char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6sarrx22njzxoct1tqx2jnqwz"); // size_t len = strlen(s); +UNSUPPORTED("ebjgxf9iw1qng39s9u5strvc4"); // if (gvwrite (job, s, len) != len) { +UNSUPPORTED("5c6r4edgvaov4ot4iejbv50ew"); // return EOF; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("68vhwhq54lavtuaojheojvecm"); // return +1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dmzoqt3ukt72kvftmdjotritt +// int gvputc(GVJ_t * job, int c) +public static Object gvputc(Object... arg) { +UNSUPPORTED("9mag55jpuhl60bjf9unj7xp92"); // int gvputc(GVJ_t * job, int c) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("79xkgu0m0ig0jh2o4v92li22p"); // const char cc = c; +UNSUPPORTED("fkmtzb4a1u4ktyy2bnjez0jd"); // if (gvwrite (job, &cc, 1) != 1) { +UNSUPPORTED("5c6r4edgvaov4ot4iejbv50ew"); // return EOF; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bskm24m9z4b23box60oxnymv"); // return c; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cv9w48stixnm7kbet4eftjadx +// int gvflush (GVJ_t * job) +public static Object gvflush(Object... arg) { +UNSUPPORTED("5ckii4epkwj83v2nnt54ofh8d"); // int gvflush (GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f23odcxaxyzdd27mwuhiizdj4"); // if (job->output_file +UNSUPPORTED("3bjid3e6jo6zuivokehya58qk"); // && ! job->external_context +UNSUPPORTED("8z4jf2igc0co6dh6zx1110nbs"); // && ! job->gvc->write_fn) { +UNSUPPORTED("5x7mdmw0x73vwxz61fk2yrvdm"); // return fflush(job->output_file); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 330e9khckra3n5ssrwak5tfea +// static void gvdevice_close(GVJ_t * job) +public static Object gvdevice_close(Object... arg) { +UNSUPPORTED("1kd1owjv512h3o8vja7myre50"); // static void gvdevice_close(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1id7d9wccsfisc4cede1yqiu2"); // if (job->output_filename +UNSUPPORTED("3d4zs0j1uyhbel5t3tudtwj7i"); // && job->output_file != stdout +UNSUPPORTED("9q0a541k3fxrd3zi25ga414vc"); // && ! job->external_context) { +UNSUPPORTED("cn3fn60ccz3zrmkt743v9paw1"); // if (job->output_file) { +UNSUPPORTED("3hu3ukt7mqj5b5sj0atl2z0f3"); // fclose(job->output_file); +UNSUPPORTED("80vq4s94ms6swfrhmfvi3b7w9"); // job->output_file = (void *)0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("54nje7askf5ueua9t49ftz331"); // job->output_filename = (void *)0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b8iwpcj6eij03r64m0360e7qs +// void gvdevice_format(GVJ_t * job) +public static Object gvdevice_format(Object... arg) { +UNSUPPORTED("6z5f8fkhpqc1bo4eeaxujv2lr"); // void gvdevice_format(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("44r8xaau6kv13q6liujnhwe0i"); // gvdevice_engine_t *gvde = job->device.engine; +UNSUPPORTED("9ohvvtakp5ajym21rtdihk6v3"); // if (gvde && gvde->format) +UNSUPPORTED("39cv29fv2w96rfomdzkfzjvyq"); // gvde->format(job); +UNSUPPORTED("4jpzlipnntejeqtwox13wbkj6"); // gvflush (job); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 46sqk4d6tbspekxqa4h32d301 +// void gvdevice_finalize(GVJ_t * job) +public static Object gvdevice_finalize(Object... arg) { +UNSUPPORTED("e4zp9r9c2a5l12d2tadisfxsi"); // void gvdevice_finalize(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("44r8xaau6kv13q6liujnhwe0i"); // gvdevice_engine_t *gvde = job->device.engine; +UNSUPPORTED("2524ggmnv8w9jo35baux304v2"); // boolean finalized_p = 0; +UNSUPPORTED("146f5u2dl3dt3devy0qnn6ylz"); // if (job->flags & (1<<10)) { +UNSUPPORTED("crmqlvwk4eg6ed4abp1762kia"); // (job->common->errorfn) ("No libz support\n"); +UNSUPPORTED("dtw3cma0ziyha0w534bszl0tx"); // exit(1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("79baddj51af049jts2lck9hor"); // if (gvde) { +UNSUPPORTED("aw6mxvr3p8qyvr6ia2k3985n3"); // if (gvde->finalize) { +UNSUPPORTED("3ey2j155dc6rd51zymyvmijuc"); // gvde->finalize(job); +UNSUPPORTED("351335dca88m4t8cwizgrx480"); // finalized_p = (!(0)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7rzmcwo03kb19vozyklhbkc51"); // if (! finalized_p) { +UNSUPPORTED("1gp40nfjzceqr97tmcdvl9pmp"); // /* if the device has no finalization then it uses file output */ +UNSUPPORTED("f0b7hjoakoas2g2gn6tq5mmj"); // gvflush (job); +UNSUPPORTED("18z7v2vnzihvtt5nnbj4q3vpo"); // gvdevice_close(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1egirdomc1btc6kjc3dgard3o +// void gvprintf(GVJ_t * job, const char *format, ...) +public static Object gvprintf(Object... arg) { +UNSUPPORTED("6fhkk7sp6y4sbd7qnk0vy9c"); // void gvprintf(GVJ_t * job, const char *format, ...) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("do481ti1ubw0ltflx52iweigu"); // size_t len; +UNSUPPORTED("6kugk1wk3bh66t9k1cisj3wws"); // va_list argp; +UNSUPPORTED("dylk0k9c053zb6dp6be1l1vlz"); // char* bp = buf; +UNSUPPORTED("6kwm594sixkxroywvqwfb048w"); // va_start(argp, format); +UNSUPPORTED("35tuv43una070zfa0wiq1t98n"); // len = vsprintf((char *)buf, format, argp); +UNSUPPORTED("9ndja25a5zuub02u8harxnr00"); // va_end(argp); +UNSUPPORTED("2h330v6zn1h7y9gty8zh7alu6"); // gvwrite(job, bp, len); +UNSUPPORTED("d89vwxhq1gwui8as32g4iyoqu"); // if (bp != buf) +UNSUPPORTED("e2oio1w9ngi670q15wq9lrmhg"); // free (bp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 1x6fpuyldpyrhmc2wjnt9r3t5 +// static double maxnegnum = -999999999999999.99 + + +//1 8lsntfgdc1tpzcdl8okf4a3xl +// static char maxnegnumstr[] = + + + + +//3 alkcimcmn7kdav5dab3x68rin +// static char * gvprintnum (size_t *len, double number) +public static Object gvprintnum(Object... arg) { +UNSUPPORTED("3sz3rah6s15fileyrygtyvsy4"); // static char * gvprintnum (size_t *len, double number) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4mh7wqzk1u55blr6bw1de1tu9"); // static char tmpbuf[sizeof(maxnegnumstr)]; /* buffer big enough for worst case */ +UNSUPPORTED("6kv4u88wo0shex0a589kl7n3l"); // char *result = tmpbuf+sizeof(maxnegnumstr); /* init result to end of tmpbuf */ +UNSUPPORTED("bryisyhf57o6i69bxu4ctbqn5"); // long int N; +UNSUPPORTED("do2ytzai3ubppaq9z7gm00438"); // boolean showzeros, negative; +UNSUPPORTED("9qzqrvquucu9whxj9cncldfww"); // int digit, i; +UNSUPPORTED("9gsgfs2guis9c3c3oi57mxpq2"); // /* +UNSUPPORTED("2xdl5tkxrstua20058b47xnir"); // number limited to a working range: maxnegnum >= n >= -maxnegnum +UNSUPPORTED("c4rjwybrx6rdpn7mwcxhhdt39"); // N = number * DECPLACES_SCALE rounded towards zero, +UNSUPPORTED("2p9kws9yqndurf6n81x7xull6"); // printing to buffer in reverse direction, +UNSUPPORTED("7ewnrrb059kj4ko3zan8jdop3"); // printing "." after DECPLACES +UNSUPPORTED("d35t12puy1knexzxrcyxbfpzj"); // suppressing trailing "0" and "." +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("3ivxbhh2hb2hdvn4pqede8m41"); // if (number < maxnegnum) { /* -ve limit */ +UNSUPPORTED("ddh4m6vpzx2sr0pr1nvcd9c1t"); // *len = sizeof(maxnegnumstr)-1; /* len doesn't include terminator */ +UNSUPPORTED("103x8qz3872e9w56yknxqpcn6"); // return maxnegnumstr;; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9txbbc6xpk58kk4py9kg3n19n"); // if (number > -maxnegnum) { /* +ve limit */ +UNSUPPORTED("epuuqnbsnn45v3ldhyk2vcdr1"); // *len = sizeof(maxnegnumstr)-2; /* len doesn't include terminator or sign */ +UNSUPPORTED("bsifggy4hjlok1u06o96n8wbn"); // return maxnegnumstr+1; /* +1 to skip the '-' sign */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dvimjkoyeydgr0k6m42r5slva"); // number *= 100; /* scale by DECPLACES_SCALE */ +UNSUPPORTED("2d934k0h3vqdzcfu8c1eroycs"); // if (number < 0.0) /* round towards zero */ +UNSUPPORTED("c5rejlqioi39lspbd8otnd6yi"); // N = number - 0.5; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("8j9oa3w53bozqg7s4ajlxsnts"); // N = number + 0.5; +UNSUPPORTED("8qqpzh7dl5q2wsuc67kne6ply"); // if (N == 0) { /* special case for exactly 0 */ +UNSUPPORTED("e6psxu2ksijx06nl6oyb12m0f"); // *len = 1; +UNSUPPORTED("5l47ei1ksik36ffjsvqzl5yt6"); // return "0"; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("disxlfqxvj0f745ce20slp755"); // if ((negative = (N < 0))) /* avoid "-0" by testing rounded int */ +UNSUPPORTED("nr08nn1obuklfiybvxp8gdik"); // N = -N; /* make number +ve */ +UNSUPPORTED("wlrwbcx0owaybg2agqhp29n"); // showzeros = 0; /* don't print trailing zeros */ +UNSUPPORTED("cikkkc06rloyghq0l2srb8vix"); // for (i = 2; N || i > 0; i--) { /* non zero remainder, +UNSUPPORTED("23hzgib77z0odvb23kw58z50s"); // or still in fractional part */ +UNSUPPORTED("mbh9mebm1pcpg3owc2q4v5xe"); // digit = N % 10; /* next least-significant digit */ +UNSUPPORTED("dzqyilj008a4yb3o3xb49ycd2"); // N /= 10; +UNSUPPORTED("dcdutieoro6hdlcma5oe5l944"); // if (digit || showzeros) { /* if digit is non-zero, +UNSUPPORTED("2bm81grz43tgyhv4jyvdtmsxu"); // or if we are printing zeros */ +UNSUPPORTED("dycrtr22pmd5lb4j8fj4yi49o"); // *--result = digit | '0'; /* convert digit to ascii */ +UNSUPPORTED("4pqd87ba27akvu14kome4tjze"); // showzeros = (!(0)); /* from now on we must print zeros */ +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("akn9rdzphyrql4nu286ezauux"); // if (i == 1) { /* if completed fractional part */ +UNSUPPORTED("c98gv4lvkslivtou8sp5gjgv5"); // if (showzeros) /* if there was a non-zero fraction */ +UNSUPPORTED("4e396qblfhvqsvgrwhjm4ucsw"); // *--result = '.'; /* print decimal point */ +UNSUPPORTED("byd8n8dae1hujyrmzmt6sl0a6"); // showzeros = (!(0)); /* print all digits in int part */ +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c1bnjfpib859s8q27bm1enmy3"); // if (negative) /* print "-" if needed */ +UNSUPPORTED("cttlmjpav2o8r87erigjvs5ss"); // *--result = '-'; +UNSUPPORTED("do3t8frc2ui33ozznu6u8jfyd"); // *len = tmpbuf+sizeof(maxnegnumstr) - result; +UNSUPPORTED("coko8du03f3lw8bdkapbks750"); // return result; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bmeyiwkpu2qs7dejvs5sh6o8v +// void gvprintdouble(GVJ_t * job, double num) +public static Object gvprintdouble(Object... arg) { +UNSUPPORTED("cn6ds26lgsd3ujjqzrqcox1x5"); // void gvprintdouble(GVJ_t * job, double num) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6ik3p99apk5rihypipg0uxu8i"); // char *buf; +UNSUPPORTED("do481ti1ubw0ltflx52iweigu"); // size_t len; +UNSUPPORTED("8yb00gp3xzh6a9lvd5mwcrg08"); // buf = gvprintnum(&len, num); +UNSUPPORTED("56nuv66m5jb3tmogpfyb3w2e9"); // gvwrite(job, buf, len); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5duaexp4igxjoostpe3eattxa +// void gvprintpointf(GVJ_t * job, pointf p) +public static Object gvprintpointf(Object... arg) { +UNSUPPORTED("ctyuokdenka2j9jhskd3ql9px"); // void gvprintpointf(GVJ_t * job, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6ik3p99apk5rihypipg0uxu8i"); // char *buf; +UNSUPPORTED("do481ti1ubw0ltflx52iweigu"); // size_t len; +UNSUPPORTED("1gpnnoam3bzp9eo5m7opks45t"); // buf = gvprintnum(&len, p.x); +UNSUPPORTED("56nuv66m5jb3tmogpfyb3w2e9"); // gvwrite(job, buf, len); +UNSUPPORTED("4t98op6wrpqegev92jt8qeuma"); // gvwrite(job, " ", 1); +UNSUPPORTED("2lggxf5etbmynuok5wquoc4h1"); // buf = gvprintnum(&len, p.y); +UNSUPPORTED("56nuv66m5jb3tmogpfyb3w2e9"); // gvwrite(job, buf, len); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9mtarrxfoqaaz8anygvcs0eni +// void gvprintpointflist(GVJ_t * job, pointf *p, int n) +public static Object gvprintpointflist(Object... arg) { +UNSUPPORTED("bbdhtxxtsiyz2al9t7saa9yqh"); // void gvprintpointflist(GVJ_t * job, pointf *p, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7s165b75za7edl3pgyc01kxis"); // int i = 0; +UNSUPPORTED("5owjshc6gmd9o9lmekzcl6rvg"); // while ((!(0))) { +UNSUPPORTED("5xxbbxkf0cife9hhrjjzgkvjt"); // gvprintpointf(job, p[i]); +UNSUPPORTED("e8aux6mfyxrmvk370dq1a2tt9"); // if (++i >= n) break; +UNSUPPORTED("1rgsln2lih3ohh497shfjlgye"); // gvwrite(job, " ", 1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvevent__c.java plantuml-8039/src/gen/lib/gvc/gvevent__c.java --- plantuml-8024/src/gen/lib/gvc/gvevent__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvevent__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,972 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvevent__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 a81i1bteklxko8gquxchac0x8 +// static char *s_digraph = + + +//1 dgsqnb0c5b6pm90dh3pmafwo1 +// static char *s_graph = + + +//1 49ytazp10pvtr6nmtx9h5jkr4 +// static char *s_subgraph = + + +//1 49rjw4ovuqev4ekbir1njgrg3 +// static char *s_node = + + +//1 exvb7xidqhdzk58w9bccovd1s +// static char *s_edge = + + +//1 6b5ql2pwr2ula2263lt2fw60j +// static char *s_tooltip = + + +//1 e8yh8l7wzzyhpxv1fk7mdnri1 +// static char *s_href = + + +//1 c37wnv95zfw9hla1px6mp8c8v +// static char *s_URL = + + +//1 9ihbjjrb6baxg03ds8e7dqyeu +// static char *s_tailport = + + +//1 8vucxsazfgxu7fsgq699pfgwb +// static char *s_headport = + + +//1 4vtu2e7ieao83dief8qy6vy1o +// static char *s_key = + + + + +//3 4u7xeq4u9gjav5v1ds6xt32a7 +// static void gv_graph_state(GVJ_t *job, graph_t *g) +public static Object gv_graph_state(Object... arg) { +UNSUPPORTED("qi2r1zf56fhta95dbdc4uqh7"); // static void gv_graph_state(GVJ_t *job, graph_t *g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bs0wcp6367dz1o5x166ec7l8"); // int j; +UNSUPPORTED("6fh2f49mjcser5usqcg36hkjn"); // Agsym_t *a; +UNSUPPORTED("d9khxorqmza778g5yq0oti4m9"); // gv_argvlist_t *list; +UNSUPPORTED("dffw7bunufdqdcx3vwbsa36uq"); // list = &(job->selected_obj_type_name); +UNSUPPORTED("1khyaul8b149n1iaylpif58pr"); // j = 0; +UNSUPPORTED("ackx3cor82a94trjk4owh3083"); // if (g == agroot(g)) { +UNSUPPORTED("e7utna7qhqjns0cncypyq6ypu"); // if (agisdirected(g)) +UNSUPPORTED("325cc23s82vex998qq2zet30n"); // gv_argvlist_set_item(list, j++, s_digraph); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("4iceu5v0jkso1pfbd8cptcm26"); // gv_argvlist_set_item(list, j++, s_graph); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("8wbgd0tpi9vafdu305mh891pm"); // gv_argvlist_set_item(list, j++, s_subgraph); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e3m8xakuuoavpc0yzsdz0ttbf"); // gv_argvlist_set_item(list, j++, agnameof(g)); +UNSUPPORTED("2g9vk1xhep19zd9rw2ptwgf0n"); // list->argc = j; +UNSUPPORTED("d089fe3vpvfvcq6nx8i2de8za"); // list = &(job->selected_obj_attributes); +UNSUPPORTED("e1417dqpw5biex3lmgeebcz3z"); // a = NULL; +UNSUPPORTED("b7p49ht5isujlq1r0zeqn522z"); // while ((a = agnxtattr(g, AGRAPH, a))) { +UNSUPPORTED("99t26p59tgmrccdh9d222241q"); // gv_argvlist_set_item(list, j++, a->name); +UNSUPPORTED("cd5io6q45mx69v63k1okoerbk"); // gv_argvlist_set_item(list, j++, agxget(g, a)); +UNSUPPORTED("1ji9sink8yrqbo5f75etmnjvw"); // gv_argvlist_set_item(list, j++, (char*)GVATTR_STRING); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2g9vk1xhep19zd9rw2ptwgf0n"); // list->argc = j; +UNSUPPORTED("9bqz6abzufgggy4kgl58ohww2"); // a = (agattr(g,AGRAPH,s_href,NULL)); +UNSUPPORTED("ad7g9pfuiyqph0mif8l1dkp14"); // if (!a) +UNSUPPORTED("31vhl15c44ic03bkyj4plz9tc"); // a = (agattr(g,AGRAPH,s_URL,NULL)); +UNSUPPORTED("d0iv30h00si3pq8x1pcdz16i4"); // if (a) +UNSUPPORTED("19box3udlik0aynca1mdbgli1"); // job->selected_href = strdup_and_subst_obj(agxget(g, a), (void*)g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1tqun4sawrqin1i1cpsek6xis +// static void gv_node_state(GVJ_t *job, node_t *n) +public static Object gv_node_state(Object... arg) { +UNSUPPORTED("a6a2p7o7hjze8ck9u2wsgbhnz"); // static void gv_node_state(GVJ_t *job, node_t *n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bs0wcp6367dz1o5x166ec7l8"); // int j; +UNSUPPORTED("6fh2f49mjcser5usqcg36hkjn"); // Agsym_t *a; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("d9khxorqmza778g5yq0oti4m9"); // gv_argvlist_t *list; +UNSUPPORTED("dffw7bunufdqdcx3vwbsa36uq"); // list = &(job->selected_obj_type_name); +UNSUPPORTED("1khyaul8b149n1iaylpif58pr"); // j = 0; +UNSUPPORTED("av2271m76wgi05dd4jp9ko29m"); // gv_argvlist_set_item(list, j++, s_node); +UNSUPPORTED("32mps9ctk2avgj3psm456ch9c"); // gv_argvlist_set_item(list, j++, agnameof(n)); +UNSUPPORTED("2g9vk1xhep19zd9rw2ptwgf0n"); // list->argc = j; +UNSUPPORTED("d089fe3vpvfvcq6nx8i2de8za"); // list = &(job->selected_obj_attributes); +UNSUPPORTED("5c0nzsud433f31yaxkbl4z4gs"); // g = agroot(agraphof(n)); +UNSUPPORTED("e1417dqpw5biex3lmgeebcz3z"); // a = NULL; +UNSUPPORTED("b1vxpowujnp7icf7z1f5ys6fn"); // while ((a = agnxtattr(g, AGNODE, a))) { +UNSUPPORTED("99t26p59tgmrccdh9d222241q"); // gv_argvlist_set_item(list, j++, a->name); +UNSUPPORTED("bxew0xo3hzemjvs8jsh4vd1fe"); // gv_argvlist_set_item(list, j++, agxget(n, a)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2g9vk1xhep19zd9rw2ptwgf0n"); // list->argc = j; +UNSUPPORTED("cop3693r14mtc5cxtwlnfobn7"); // a = (agattr(agraphof(n),AGNODE,s_href,NULL)); +UNSUPPORTED("ad7g9pfuiyqph0mif8l1dkp14"); // if (!a) +UNSUPPORTED("9vhpq0kaqba5axovooitmksjj"); // a = (agattr(agraphof(n),AGNODE,s_URL,NULL)); +UNSUPPORTED("d0iv30h00si3pq8x1pcdz16i4"); // if (a) +UNSUPPORTED("17hpyw5vd28ys378heoyue1al"); // job->selected_href = strdup_and_subst_obj(agxget(n, a), (void*)n); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ermyhp9u235dyyeyqapv0xkc7 +// static void gv_edge_state(GVJ_t *job, edge_t *e) +public static Object gv_edge_state(Object... arg) { +UNSUPPORTED("bd6orj26b0p27h7kfbrazb9io"); // static void gv_edge_state(GVJ_t *job, edge_t *e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bs0wcp6367dz1o5x166ec7l8"); // int j; +UNSUPPORTED("6fh2f49mjcser5usqcg36hkjn"); // Agsym_t *a; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("4t73a9bkotedn8x3fxn53j1km"); // gv_argvlist_t *nlist, *alist; +UNSUPPORTED("43j7ne9o1w0oq59jkh0ogpfi8"); // nlist = &(job->selected_obj_type_name); +UNSUPPORTED("bvhhwpgurwsvqf00mufgp5jei"); // /* only tail, head, and key are strictly identifying properties, +UNSUPPORTED("87w6733styjgjzh7edfba0cpw"); // * but we commonly alse use edge kind (e.g. "->") and tailport,headport +UNSUPPORTED("ez2eakrubjtgnn4onqt5ah5mo"); // * in edge names */ +UNSUPPORTED("1khyaul8b149n1iaylpif58pr"); // j = 0; +UNSUPPORTED("231pmh9ndbj9bl0iq4dwm34ad"); // gv_argvlist_set_item(nlist, j++, s_edge); +UNSUPPORTED("cj85zmjfg6vwon6ebadi1utxi"); // gv_argvlist_set_item(nlist, j++, agnameof(agtail(e))); +UNSUPPORTED("6gfg10q9wfhddmrxtfaijxc6e"); // j++; /* skip tailport slot for now */ +UNSUPPORTED("ab8kmscdvmhs0oz9laxreinrs"); // gv_argvlist_set_item(nlist, j++, agisdirected(agraphof(agtail(e)))?"->":"--"); +UNSUPPORTED("3r7da1j0hfzm49kscuyu25bjw"); // gv_argvlist_set_item(nlist, j++, agnameof(aghead(e))); +UNSUPPORTED("48ci0f2hgcb9fxqoqhqhvtur0"); // j++; /* skip headport slot for now */ +UNSUPPORTED("bu93gjys845yepca55pifkr30"); // j++; /* skip key slot for now */ +UNSUPPORTED("227buoijhb0gn22caje4pxv9e"); // nlist->argc = j; +UNSUPPORTED("636g3h756buq2y5ye5swbaq80"); // alist = &(job->selected_obj_attributes); +UNSUPPORTED("43dcim6z0v0a251vkqsnqej3q"); // g = agroot(agraphof(aghead(e))); +UNSUPPORTED("e1417dqpw5biex3lmgeebcz3z"); // a = NULL; +UNSUPPORTED("33gb50lyoy7ck2t6qrjkyzo7u"); // while ((a = agnxtattr(g, AGEDGE, a))) { +UNSUPPORTED("706s3vyqe37ps1epbb4kq2zg2"); // /* tailport and headport can be shown as part of the name, but they +UNSUPPORTED("ae0evldnekm3vq9oe8m0lnt3w"); // * are not identifying properties of the edge so we +UNSUPPORTED("1ebad5w1kcs91baie24l37lr3"); // * also list them as modifyable attributes. */ +UNSUPPORTED("9kgmn2eeefbu32xw5r0wyockk"); // if (strcmp(a->name,s_tailport) == 0) +UNSUPPORTED("69icrfew1qyyma8r8q0sjvcw5"); // gv_argvlist_set_item(nlist, 2, agxget(e, a)); +UNSUPPORTED("24i31ghgq3gjhdby4wkzz5zx1"); // else if (strcmp(a->name,s_headport) == 0) +UNSUPPORTED("1ylpsr67giqnbh13nsgrwy1a0"); // gv_argvlist_set_item(nlist, 5, agxget(e, a)); +UNSUPPORTED("7fflw2yp36ncnjh65hgmcnc2i"); // /* key is strictly an identifying property to distinguish multiple +UNSUPPORTED("9hs0myrjsg7n4p9jmyl0r5r7p"); // * edges between the same node pair. Its non-writable, so +UNSUPPORTED("3043zukc6eme3vgtc3vm1rkev"); // * no need to list it as an attribute as well. */ +UNSUPPORTED("5kvauax0vbqn56b0t22oh5xd6"); // else if (strcmp(a->name,s_key) == 0) { +UNSUPPORTED("e8n9jcj9q9h0mq4h3bb6p979i"); // gv_argvlist_set_item(nlist, 6, agxget(e, a)); +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("crs1h0cch6rim4e1iixiii9jq"); // gv_argvlist_set_item(alist, j++, a->name); +UNSUPPORTED("azjfqodmy73s2zkayx9j4sj8j"); // gv_argvlist_set_item(alist, j++, agxget(e, a)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3jw4ujbxwhc57nozkshgx5rxt"); // alist->argc = j; +UNSUPPORTED("486bp2rr3wk0zelkdw41tofx1"); // a = (agattr(agraphof(aghead(e)),AGEDGE,s_href,NULL)); +UNSUPPORTED("ad7g9pfuiyqph0mif8l1dkp14"); // if (!a) +UNSUPPORTED("99c3vwky3ugp7vv44mkpscky1"); // a = (agattr(agraphof(aghead(e)),AGEDGE,s_URL,NULL)); +UNSUPPORTED("d0iv30h00si3pq8x1pcdz16i4"); // if (a) +UNSUPPORTED("8egqarzi4ta3gz1dcxesfrghx"); // job->selected_href = strdup_and_subst_obj(agxget(e, a), (void*)e); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8ukey801l8kyj584x8r8s19fn +// static void gvevent_refresh(GVJ_t * job) +public static Object gvevent_refresh(Object... arg) { +UNSUPPORTED("60f7iu3hlagh8mzyzi1gzv2do"); // static void gvevent_refresh(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("budkdxy4ehaaoj6mevg8mts0k"); // graph_t *g = job->gvc->g; +UNSUPPORTED("5imw9vxmcslbvur5jcmeiu666"); // if (!job->selected_obj) { +UNSUPPORTED("azy0m0vmtvbtf9smncd59ni1f"); // job->selected_obj = g; +UNSUPPORTED("17j63u144fs4ppk3srq2ksaq4"); // GD_gui_state(g) |= (1<<1); +UNSUPPORTED("1jgisizs53om7ychvjg7vpfyh"); // gv_graph_state(job, g); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("11vg0v0lz31me44yr8gzuq1ig"); // emit_graph(job, g); +UNSUPPORTED("avsp09o6v1ddidlj3obkxmudm"); // job->has_been_rendered = NOT(0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4s1y5j1ypefa3r6swg9s4epez +// static graph_t *gvevent_find_cluster(graph_t *g, boxf b) +public static Object gvevent_find_cluster(Object... arg) { +UNSUPPORTED("efgiax9xi0giix6ubrt3ygjvi"); // static graph_t *gvevent_find_cluster(graph_t *g, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("5wyi0wasd5kecf6rhsqdjk7v2"); // graph_t *sg; +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("7naa6f8pevjidfr7m41eli6xj"); // for (i = 1; i <= GD_n_cluster(g); i++) { +UNSUPPORTED("4qqwxfj8r5wlw1qefrqdy0n93"); // sg = gvevent_find_cluster(GD_clust(g)[i], b); +UNSUPPORTED("7dfwj1tgop4l8xzqfh1vpckki"); // if (sg) +UNSUPPORTED("3e86a95m950jzhe4zgu9hyh49"); // return(sg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3mns1dvab55ltos5d414fxujy"); // B2BF(GD_bb(g), bb); +UNSUPPORTED("9o2ymndf5rcl0lrzb3mpd7bjg"); // if (OVERLAP(b, bb)) +UNSUPPORTED("4s6kjfhn4k2eg7whh6ebugifg"); // return g; +UNSUPPORTED("o68dp934ebg4cplebgc5hv4v"); // return NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 10ow7fob9ddjkodlmx7wb3vlm +// static void * gvevent_find_obj(graph_t *g, boxf b) +public static Object gvevent_find_obj(Object... arg) { +UNSUPPORTED("3kn145oul66bpk12w0lrsexgk"); // static void * gvevent_find_obj(graph_t *g, boxf b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5wyi0wasd5kecf6rhsqdjk7v2"); // graph_t *sg; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("7pal7ga4vmcz68u4ug0hj2sdc"); // /* edges might overlap nodes, so search them first */ +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("8gbd6b2ssf51om8neirzzr6rw"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) +UNSUPPORTED("eho7nl2fpak2f3plplt40xxj"); // if (overlap_edge(e, b)) +UNSUPPORTED("dwep52v1bdkluympomyk9i0ht"); // return (void *)e; +UNSUPPORTED("espt12fa1hnstulykcqj7naca"); // /* search graph backwards to get topmost node, in case of overlap */ +UNSUPPORTED("27f2ji1mu3qyl3byjq0qs4vd2"); // for (n = aglstnode(g); n; n = agprvnode(g, n)) +UNSUPPORTED("3zwvpzb0u2yuv8hrgr513spuw"); // if (overlap_node(n, b)) +UNSUPPORTED("dzrsq580bfkcuikl48wyapfj9"); // return (void *)n; +UNSUPPORTED("3si0g6jo8cy92kb3olhbz5yjm"); // /* search for innermost cluster */ +UNSUPPORTED("7fupgm5yrt8w31ak393pj40fl"); // sg = gvevent_find_cluster(g, b); +UNSUPPORTED("apxupu23wl3o8oxx7pkbsgpky"); // if (sg) +UNSUPPORTED("34r930zbeg8mvb169774t3vbs"); // return (void *)sg; +UNSUPPORTED("4qfi0cgg83t97134rn90jaq0u"); // /* otherwise - we're always in the graph */ +UNSUPPORTED("avkvcekelud44sahe2wnjjpp4"); // return (void *)g; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5b9dwyqfdvc0ntrai28ti5pry +// static void gvevent_leave_obj(GVJ_t * job) +public static Object gvevent_leave_obj(Object... arg) { +UNSUPPORTED("2udbvguh4g3rx7hlo1neqvx58"); // static void gvevent_leave_obj(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7fhlvhrelhp8czzhodjpv852t"); // void *obj = job->current_obj; +UNSUPPORTED("41wzimn2d65vativ6f19m0scl"); // if (obj) { +UNSUPPORTED("bo62maae4sou42p2mt2qkourh"); // switch (agobjkind(obj)) { +UNSUPPORTED("5wlxto4vyt8ldlvedarc2ayo5"); // case AGRAPH: +UNSUPPORTED("92q8wsc5f6zpyree4vbax8cgz"); // GD_gui_state((graph_t*)obj) &= ~(1<<0); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("9pxpc0v20pz0zlioyzyi3liz"); // case AGNODE: +UNSUPPORTED("cvmmjonbzluiek0tgu10677br"); // ND_gui_state((node_t*)obj) &= ~(1<<0); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("64ioinqgxud7s90lisfnn9l9z"); // case AGEDGE: +UNSUPPORTED("1vtuqgfc8o6ssdm54seohnhgz"); // ED_gui_state((edge_t*)obj) &= ~(1<<0); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9xg2rumuo2tlvz2ggq2nk8yxt"); // job->active_tooltip = NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9bgq52z2yvkxbxgkigzxo155j +// static void gvevent_enter_obj(GVJ_t * job) +public static Object gvevent_enter_obj(Object... arg) { +UNSUPPORTED("1j8b2x22wexvd0rg7rsvrcvdc"); // static void gvevent_enter_obj(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e5pb9fhb9rq54eedma7yjmh4k"); // void *obj; +UNSUPPORTED("djl3ek9tn11htu3vj4zglczzz"); // graph_t *g; +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("6fh2f49mjcser5usqcg36hkjn"); // Agsym_t *a; +UNSUPPORTED("d85592gsof8mrrwh92c43cs7f"); // if (job->active_tooltip) { +UNSUPPORTED("84wfl59jqbmf5pil5wayrrn6v"); // free(job->active_tooltip); +UNSUPPORTED("52xuc6ug71hj23vrl2dg6e69x"); // job->active_tooltip = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4wr2gujkr9cuqpfogwyvtl6ve"); // obj = job->current_obj; +UNSUPPORTED("41wzimn2d65vativ6f19m0scl"); // if (obj) { +UNSUPPORTED("bo62maae4sou42p2mt2qkourh"); // switch (agobjkind(obj)) { +UNSUPPORTED("5wlxto4vyt8ldlvedarc2ayo5"); // case AGRAPH: +UNSUPPORTED("5ww62hqfywcpculirwqpvugv4"); // g = (graph_t*)obj; +UNSUPPORTED("5kvw2y807unke5dvr69a1cxtt"); // GD_gui_state(g) |= (1<<0); +UNSUPPORTED("am1gx79uny2n1upipes6lycqc"); // a = (agattr(g,AGRAPH,s_tooltip,NULL)); +UNSUPPORTED("9qz40i0064xica1x2lm4xs62b"); // if (a) +UNSUPPORTED("86bd5sstgfox932dk4j5ctawx"); // job->active_tooltip = strdup_and_subst_obj(agxget(g, a), obj); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("9pxpc0v20pz0zlioyzyi3liz"); // case AGNODE: +UNSUPPORTED("68c51l5dq12wn0ye4kkxvxvli"); // n = (node_t*)obj; +UNSUPPORTED("3o0b9nkrxqjsirceenjg84yhu"); // ND_gui_state(n) |= (1<<0); +UNSUPPORTED("3dqzz9izp2l3j72cm22vxnxz3"); // a = (agattr(agraphof(n),AGNODE,s_tooltip,NULL)); +UNSUPPORTED("9qz40i0064xica1x2lm4xs62b"); // if (a) +UNSUPPORTED("192ludujzp8wewqginadgo6sh"); // job->active_tooltip = strdup_and_subst_obj(agxget(n, a), obj); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("64ioinqgxud7s90lisfnn9l9z"); // case AGEDGE: +UNSUPPORTED("1sfsn5gjybpvn8ecor2j6ia72"); // e = (edge_t*)obj; +UNSUPPORTED("5a5lk7ama2h4rs90rp4md4ive"); // ED_gui_state(e) |= (1<<0); +UNSUPPORTED("a83370r56wwtq6yvlqqz4x6mg"); // a = (agattr(agraphof(aghead(e)),AGEDGE,s_tooltip,NULL)); +UNSUPPORTED("9qz40i0064xica1x2lm4xs62b"); // if (a) +UNSUPPORTED("4ib9lz9n3e9d9ruzlftax0tze"); // job->active_tooltip = strdup_and_subst_obj(agxget(e, a), obj); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3bfngnj00p5wmq3vn6ezfbf94 +// static pointf pointer2graph (GVJ_t *job, pointf pointer) +public static Object pointer2graph(Object... arg) { +UNSUPPORTED("f3p1sbwml36d6avt439q10bzv"); // static pointf pointer2graph (GVJ_t *job, pointf pointer) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("7hiilb9xpwzl7zzlvutjvty6v"); // /* transform position in device units to position in graph units */ +UNSUPPORTED("3h1yo631e2fq69mxwoggya716"); // if (job->rotation) { +UNSUPPORTED("30ofcuacpdvu0ywex5uyutuzj"); // p.x = pointer.y / (job->zoom * job->devscale.y) - job->translation.x; +UNSUPPORTED("1fl2nifv1w54jg4mkvhzqy622"); // p.y = -pointer.x / (job->zoom * job->devscale.x) - job->translation.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("6g5n8h3dlw9ip1cdkdazows22"); // p.x = pointer.x / (job->zoom * job->devscale.x) - job->translation.x; +UNSUPPORTED("as5nwpslv0m20j4m91fxdn7qn"); // p.y = pointer.y / (job->zoom * job->devscale.y) - job->translation.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 60qzqk2f8g5r608jr61n4m8fl +// static void gvevent_find_current_obj(GVJ_t * job, pointf pointer) +public static Object gvevent_find_current_obj(Object... arg) { +UNSUPPORTED("73itu563p91qxc75le40uri3v"); // static void gvevent_find_current_obj(GVJ_t * job, pointf pointer) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e5pb9fhb9rq54eedma7yjmh4k"); // void *obj; +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("bn82a8um6s6q9kv8xhz0y4532"); // double closeenough; +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("e90p0pfjf8awf9o8saz5zeg1p"); // p = pointer2graph (job, pointer); +UNSUPPORTED("4yw8v5qer8c35skrnab7qvzar"); // /* convert window point to graph coordinates */ +UNSUPPORTED("ed3b1vw5anajzc04hkpj8tpln"); // closeenough = 1 / job->zoom; +UNSUPPORTED("2jwwft3e122mczo9voml0jvyj"); // b.UR.x = p.x + closeenough; +UNSUPPORTED("evkhbbm8g1x40j4cz0d3v7prs"); // b.UR.y = p.y + closeenough; +UNSUPPORTED("68oj02o1giw3jceus44ixnxm8"); // b.LL.x = p.x - closeenough; +UNSUPPORTED("e9aorl9o9qnkn8mfdfzpzy60t"); // b.LL.y = p.y - closeenough; +UNSUPPORTED("ayptl6u6apxfce7alpeck5smt"); // obj = gvevent_find_obj(job->gvc->g, b); +UNSUPPORTED("3owfawe3qbxrv9mxsn7fkyqpv"); // if (obj != job->current_obj) { +UNSUPPORTED("90lan2ouldugywinbb3grjf3x"); // gvevent_leave_obj(job); +UNSUPPORTED("bh8osiivcr3uzxhjf46i0mpfu"); // job->current_obj = obj; +UNSUPPORTED("5ppo0fv5d3bhkhkyc2nh1llwq"); // gvevent_enter_obj(job); +UNSUPPORTED("8so9jtnfbj4rh32qoan7atzqd"); // job->needs_refresh = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 56do4vqpnbnmg3ft0lfzt4eny +// static void gvevent_select_current_obj(GVJ_t * job) +public static Object gvevent_select_current_obj(Object... arg) { +UNSUPPORTED("d4h54hfakl4a6svzusjuvsqkx"); // static void gvevent_select_current_obj(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e5pb9fhb9rq54eedma7yjmh4k"); // void *obj; +UNSUPPORTED("d5fzsj1jcer8417dmj6ucf9js"); // obj = job->selected_obj; +UNSUPPORTED("41wzimn2d65vativ6f19m0scl"); // if (obj) { +UNSUPPORTED("bo62maae4sou42p2mt2qkourh"); // switch (agobjkind(obj)) { +UNSUPPORTED("5wlxto4vyt8ldlvedarc2ayo5"); // case AGRAPH: +UNSUPPORTED("1i9nwrkfuqhgca5dxmsumixwr"); // GD_gui_state((graph_t*)obj) |= (1<<2); +UNSUPPORTED("79uerqxetp1ko0aj4yetyj0y3"); // GD_gui_state((graph_t*)obj) &= ~(1<<1); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("9pxpc0v20pz0zlioyzyi3liz"); // case AGNODE: +UNSUPPORTED("5ot4q2aa7yyy1g83h7bv9udsb"); // ND_gui_state((node_t*)obj) |= (1<<2); +UNSUPPORTED("48546mtoje2ca7wf2x0uvej8v"); // ND_gui_state((node_t*)obj) &= ~(1<<1); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("64ioinqgxud7s90lisfnn9l9z"); // case AGEDGE: +UNSUPPORTED("apwapkeiw3ich5muguhdwqg6l"); // ED_gui_state((edge_t*)obj) |= (1<<2); +UNSUPPORTED("e4zgcxcfg2dgy09byo2wzrauh"); // ED_gui_state((edge_t*)obj) &= ~(1<<1); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b63ukicafdpen83mpxp42b9ha"); // if (job->selected_href) { +UNSUPPORTED("8vjgoeh45krs5nlc431jkmoc5"); // free(job->selected_href); +UNSUPPORTED("uxywfn5fme945tooe7ybes33"); // job->selected_href = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("82ds4to6mlgnz1hudzp8txutz"); // obj = job->selected_obj = job->current_obj; +UNSUPPORTED("41wzimn2d65vativ6f19m0scl"); // if (obj) { +UNSUPPORTED("bo62maae4sou42p2mt2qkourh"); // switch (agobjkind(obj)) { +UNSUPPORTED("5wlxto4vyt8ldlvedarc2ayo5"); // case AGRAPH: +UNSUPPORTED("dgh6iielec5vwkfe73s6dl0dm"); // GD_gui_state((graph_t*)obj) |= (1<<1); +UNSUPPORTED("92cql7151gbg5s7txp1qtzxcr"); // gv_graph_state(job, (graph_t*)obj); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("9pxpc0v20pz0zlioyzyi3liz"); // case AGNODE: +UNSUPPORTED("4o58dr1al4d1df95cudpf50va"); // ND_gui_state((node_t*)obj) |= (1<<1); +UNSUPPORTED("asc1h0xpooldmbd3qr3egpi4t"); // gv_node_state(job, (node_t*)obj); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("64ioinqgxud7s90lisfnn9l9z"); // case AGEDGE: +UNSUPPORTED("8sqrwwvrd8cd3xhgq8jenn5uy"); // ED_gui_state((edge_t*)obj) |= (1<<1); +UNSUPPORTED("burs8yypr2qjea6o5p2afz6su"); // gv_edge_state(job, (edge_t*)obj); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ex60hox8s3z8id5zo7lak7xbi +// static void gvevent_button_press(GVJ_t * job, int button, pointf pointer) +public static Object gvevent_button_press(Object... arg) { +UNSUPPORTED("b9kw1b3m8gqabvmmm2gedhmms"); // static void gvevent_button_press(GVJ_t * job, int button, pointf pointer) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3zcgccimpfphalnj0i8mfm2r1"); // switch (button) { +UNSUPPORTED("699cb0yxkg370qhog523g9x8z"); // case 1: /* select / create in edit mode */ +UNSUPPORTED("75lxnhkp5b7e2lfc5y4rxj1fq"); // gvevent_find_current_obj(job, pointer); +UNSUPPORTED("cyd579rit2exwz1a7b71163t3"); // gvevent_select_current_obj(job); +UNSUPPORTED("3a8qzflnwqfg82zo20c4zvmkt"); // job->click = 1; +UNSUPPORTED("blmcsrkt74letf8tkc2ccm4f7"); // job->button = button; +UNSUPPORTED("8so9jtnfbj4rh32qoan7atzqd"); // job->needs_refresh = 1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4oz4gni7lyi54dde4wm3uz8a7"); // case 2: /* pan */ +UNSUPPORTED("3a8qzflnwqfg82zo20c4zvmkt"); // job->click = 1; +UNSUPPORTED("blmcsrkt74letf8tkc2ccm4f7"); // job->button = button; +UNSUPPORTED("8so9jtnfbj4rh32qoan7atzqd"); // job->needs_refresh = 1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3k03pmr90eomik84zdhdrti3s"); // case 3: /* insert node or edge */ +UNSUPPORTED("75lxnhkp5b7e2lfc5y4rxj1fq"); // gvevent_find_current_obj(job, pointer); +UNSUPPORTED("3a8qzflnwqfg82zo20c4zvmkt"); // job->click = 1; +UNSUPPORTED("blmcsrkt74letf8tkc2ccm4f7"); // job->button = button; +UNSUPPORTED("8so9jtnfbj4rh32qoan7atzqd"); // job->needs_refresh = 1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7gwyze795m9aa2915n3bou49x"); // case 4: +UNSUPPORTED("2ml1iwm44d5cxsqng95pnixi1"); // /* scrollwheel zoom in at current mouse x,y */ +UNSUPPORTED("4vad6btam4cn6noqw97sfmlhl"); // /* FIXME - should code window 0,0 point as feature with Y_GOES_DOWN */ +UNSUPPORTED("76vpgnr0ye1dojhnhy0otwjle"); // job->fit_mode = 0; +UNSUPPORTED("1oas1wgag0hif8qx29v4yklxv"); // if (job->rotation) { +UNSUPPORTED("7g6sapcaxcof3pw9t271w1y8h"); // job->focus.x -= (pointer.y - job->height / 2.) +UNSUPPORTED("9hyk0c7dwfz4h1crmjhezz45e"); // * (1.1 - 1.) / (job->zoom * job->devscale.y); +UNSUPPORTED("e43b0b2imzn8b8ynbp2mal4md"); // job->focus.y += (pointer.x - job->width / 2.) +UNSUPPORTED("2agqs1sz6w0xj54uuzxsih3ae"); // * (1.1 - 1.) / (job->zoom * job->devscale.x); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("3jir07ymknf0hmb9pv9x4dr3o"); // else { +UNSUPPORTED("92b9yfihf7feuu1ojha98aucx"); // job->focus.x += (pointer.x - job->width / 2.) +UNSUPPORTED("2agqs1sz6w0xj54uuzxsih3ae"); // * (1.1 - 1.) / (job->zoom * job->devscale.x); +UNSUPPORTED("4pupq132vcd87490ty9jmdkpf"); // job->focus.y += (pointer.y - job->height / 2.) +UNSUPPORTED("9hyk0c7dwfz4h1crmjhezz45e"); // * (1.1 - 1.) / (job->zoom * job->devscale.y); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("wr2oieepfov8hz62dktq6f2z"); // job->zoom *= 1.1; +UNSUPPORTED("6pu9nvcwfkrjt09xcyews4irj"); // job->needs_refresh = 1; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("73i90hwf5c0jb5w9lww7yboeq"); // case 5: /* scrollwheel zoom out at current mouse x,y */ +UNSUPPORTED("76vpgnr0ye1dojhnhy0otwjle"); // job->fit_mode = 0; +UNSUPPORTED("e9tz2awchoyjb7frdzwnroacm"); // job->zoom /= 1.1; +UNSUPPORTED("1oas1wgag0hif8qx29v4yklxv"); // if (job->rotation) { +UNSUPPORTED("c8wc46or371rjqifvi8r998kd"); // job->focus.x += (pointer.y - job->height / 2.) +UNSUPPORTED("9hyk0c7dwfz4h1crmjhezz45e"); // * (1.1 - 1.) / (job->zoom * job->devscale.y); +UNSUPPORTED("o0u8c2v37omgye9ilucvtvhv"); // job->focus.y -= (pointer.x - job->width / 2.) +UNSUPPORTED("2agqs1sz6w0xj54uuzxsih3ae"); // * (1.1 - 1.) / (job->zoom * job->devscale.x); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("3jir07ymknf0hmb9pv9x4dr3o"); // else { +UNSUPPORTED("6zwx79wm2llpicj0vx8ddjhyh"); // job->focus.x -= (pointer.x - job->width / 2.) +UNSUPPORTED("2agqs1sz6w0xj54uuzxsih3ae"); // * (1.1 - 1.) / (job->zoom * job->devscale.x); +UNSUPPORTED("3qaatj1xmirq053hae4xzwr2l"); // job->focus.y -= (pointer.y - job->height / 2.) +UNSUPPORTED("9hyk0c7dwfz4h1crmjhezz45e"); // * (1.1 - 1.) / (job->zoom * job->devscale.y); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("6pu9nvcwfkrjt09xcyews4irj"); // job->needs_refresh = 1; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("62hf9ws0l8zd35rei8kd6y3u0"); // job->oldpointer = pointer; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 65hgbjypgt12lezyx7wgj6mhm +// static void gvevent_button_release(GVJ_t *job, int button, pointf pointer) +public static Object gvevent_button_release(Object... arg) { +UNSUPPORTED("d2aelqvksu4avszxarr327x9o"); // static void gvevent_button_release(GVJ_t *job, int button, pointf pointer) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4kf4459mj5lftb83ao5l6rf4w"); // job->click = 0; +UNSUPPORTED("3h1jvgy0zcvs1uzxzvemt60gd"); // job->button = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 40ck841yiiqu2vr67m7w0ayru +// static void gvevent_motion(GVJ_t * job, pointf pointer) +public static Object gvevent_motion(Object... arg) { +UNSUPPORTED("1k2shillcd8968xvxu3cbamfb"); // static void gvevent_motion(GVJ_t * job, pointf pointer) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5xe1ey15po4uno8y4t9cbugi5"); // /* dx,dy change in position, in device independent points */ +UNSUPPORTED("c18b7wll7ujgfq0htgi5h6jkk"); // double dx = (pointer.x - job->oldpointer.x) / job->devscale.x; +UNSUPPORTED("e8ewy0zul25k4mvzr5whcqkoj"); // double dy = (pointer.y - job->oldpointer.y) / job->devscale.y; +UNSUPPORTED("cck0f698k4qf95xqzoos3niwt"); // if (abs(dx) < .0001 && abs(dy) < .0001) /* ignore motion events with no motion */ +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("9fk4hgwrkwuthrmr5tsmjkj0w"); // switch (job->button) { +UNSUPPORTED("dqvbfy1kj4sm1clzp84yypk0g"); // case 0: /* drag with no button - */ +UNSUPPORTED("75lxnhkp5b7e2lfc5y4rxj1fq"); // gvevent_find_current_obj(job, pointer); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8qnt25sjs3lrjlk6jo36k0lca"); // case 1: /* drag with button 1 - drag object */ +UNSUPPORTED("17jbzecixgbp57ifr720i2w23"); // /* FIXME - to be implemented */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("f401i5lou32das0fux80r5ic9"); // case 2: /* drag with button 2 - pan graph */ +UNSUPPORTED("6oc35uo8bb3x21jhtp2wmzsmn"); // if (job->rotation) { +UNSUPPORTED("5uheedtwe7j6nydvsdwgvdsj5"); // job->focus.x -= dy / job->zoom; +UNSUPPORTED("87lkqikxkyin4n49mf3ui048z"); // job->focus.y += dx / job->zoom; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("1yoovihyt7x68mlrh1v3957o4"); // job->focus.x -= dx / job->zoom; +UNSUPPORTED("6zgznv9znc83j9bgdvnnwczoo"); // job->focus.y -= dy / job->zoom; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8so9jtnfbj4rh32qoan7atzqd"); // job->needs_refresh = 1; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("92nzvfmuso8utk1ncws76nrkl"); // case 3: /* drag with button 3 - drag inserted node or uncompleted edge */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("62hf9ws0l8zd35rei8kd6y3u0"); // job->oldpointer = pointer; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 309h3ymhziboe2mht4n46ru47 +// static int quit_cb(GVJ_t * job) +public static Object quit_cb(Object... arg) { +UNSUPPORTED("d2aasjdi3qo1v67f1xh4m4a9q"); // static int quit_cb(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2d3158r4aw8sdu1oeit21vqmq +// static int left_cb(GVJ_t * job) +public static Object left_cb(Object... arg) { +UNSUPPORTED("521h83irh6091dct76cd4wq3o"); // static int left_cb(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1jc6q1sk7wtw38mibr185b4ae"); // job->fit_mode = 0; +UNSUPPORTED("258sx21x70eo4z4f4cjjzfdk5"); // job->focus.x += 10 / job->zoom; +UNSUPPORTED("14bxw21mx0itq382s1d9yvadm"); // job->needs_refresh = 1; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 djqsh8zi6zin7tc1ablymhqyd +// static int right_cb(GVJ_t * job) +public static Object right_cb(Object... arg) { +UNSUPPORTED("e0rr45fh4bimynpp3tyzov053"); // static int right_cb(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1jc6q1sk7wtw38mibr185b4ae"); // job->fit_mode = 0; +UNSUPPORTED("6e17ijfp2skgoy0iikmod5cv7"); // job->focus.x -= 10 / job->zoom; +UNSUPPORTED("14bxw21mx0itq382s1d9yvadm"); // job->needs_refresh = 1; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9yjypnd484350411fozpecu1w +// static int up_cb(GVJ_t * job) +public static Object up_cb(Object... arg) { +UNSUPPORTED("2xwjivk6gbwmjk2orf31i0bn1"); // static int up_cb(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1jc6q1sk7wtw38mibr185b4ae"); // job->fit_mode = 0; +UNSUPPORTED("1gf4o3dtzjulg5xtxmjp31u3x"); // job->focus.y += -(10 / job->zoom); +UNSUPPORTED("14bxw21mx0itq382s1d9yvadm"); // job->needs_refresh = 1; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ao1epwwls96l9rn7aorg8t57w +// static int down_cb(GVJ_t * job) +public static Object down_cb(Object... arg) { +UNSUPPORTED("xxaph7ayk44vfwcpj202iq1k"); // static int down_cb(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1jc6q1sk7wtw38mibr185b4ae"); // job->fit_mode = 0; +UNSUPPORTED("36xzjyr5ndfvwfeodypoae9b8"); // job->focus.y -= -(10 / job->zoom); +UNSUPPORTED("14bxw21mx0itq382s1d9yvadm"); // job->needs_refresh = 1; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 s9fxrizmsy50pmyuxkmqxk6u +// static int zoom_in_cb(GVJ_t * job) +public static Object zoom_in_cb(Object... arg) { +UNSUPPORTED("2riwlfksx6nk9oydtk942wbs8"); // static int zoom_in_cb(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1jc6q1sk7wtw38mibr185b4ae"); // job->fit_mode = 0; +UNSUPPORTED("cbpe6q4xe7lv6rmzvuq51p7yk"); // job->zoom *= 1.1; +UNSUPPORTED("14bxw21mx0itq382s1d9yvadm"); // job->needs_refresh = 1; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dwx7pk3xbbk6xsv7okp2izif4 +// static int zoom_out_cb(GVJ_t * job) +public static Object zoom_out_cb(Object... arg) { +UNSUPPORTED("adt5ckz3j0b6igqhekyzi9j3c"); // static int zoom_out_cb(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1jc6q1sk7wtw38mibr185b4ae"); // job->fit_mode = 0; +UNSUPPORTED("6nhoh1qyyztet8mqqpvccbrt8"); // job->zoom /= 1.1; +UNSUPPORTED("14bxw21mx0itq382s1d9yvadm"); // job->needs_refresh = 1; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3v74j066qbm5zjvdffnjqqjsb +// static int toggle_fit_cb(GVJ_t * job) +public static Object toggle_fit_cb(Object... arg) { +UNSUPPORTED("calj7u9drqvbnznvt9qpgpco"); // static int toggle_fit_cb(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bk1me2jow1k66xklpyf96da8z"); // /*FIXME - should allow for margins */ +UNSUPPORTED("ca08k9e4l7k97t09hno8eg5ic"); // /* - similar zoom_to_fit code exists in: */ +UNSUPPORTED("407kig1fpgnuaqr1p9rmn7rvh"); // /* plugin/gtk/callbacks.c */ +UNSUPPORTED("75fmjzjh5oukz4xyadm6o2rrg"); // /* plugin/xlib/gvdevice_xlib.c */ +UNSUPPORTED("dtwhbdevq5apej1dgmz28t9t8"); // /* lib/gvc/gvevent.c */ +UNSUPPORTED("3gekppn80z1eb3aglohw61u3m"); // job->fit_mode = !job->fit_mode; +UNSUPPORTED("cpguagf0s57pek6mm9zvj1dvn"); // if (job->fit_mode) { +UNSUPPORTED("syw74d3j5j2nfdmkv9evrita"); // /* FIXME - this code looks wrong */ +UNSUPPORTED("9oyvwx5y9ax3tg2zqwhpv3gdn"); // int dflt_width, dflt_height; +UNSUPPORTED("8j3kezo5opp2m5wn3ly37cz39"); // dflt_width = job->width; +UNSUPPORTED("d9way4je7rmtkau2r1nauz7ys"); // dflt_height = job->height; +UNSUPPORTED("6cbgfx2rz5ryr8r0wxuagn4z0"); // job->zoom = +UNSUPPORTED("kgc4bn46xnur16uv4rmw4ba7"); // MIN((double) job->width / (double) dflt_width, +UNSUPPORTED("xquy3dhq6f4rs8amktm3abt6"); // (double) job->height / (double) dflt_height); +UNSUPPORTED("1e1oqbruejs7bca1s0k1bke3s"); // job->focus.x = 0.0; +UNSUPPORTED("4zzdaatjg7hr1ge378anr4q9w"); // job->focus.y = 0.0; +UNSUPPORTED("8so9jtnfbj4rh32qoan7atzqd"); // job->needs_refresh = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 56ccrkgaretp9luumyk09sglf +// static void gvevent_modify (GVJ_t * job, const char *name, const char *value) +public static Object gvevent_modify(Object... arg) { +UNSUPPORTED("9a50fbnlu9tkk620l868zqnuy"); // static void gvevent_modify (GVJ_t * job, const char *name, const char *value) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("42d3fg9bdfs5c7bjfa8ifmifa"); // /* FIXME */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9y8ix71hznhgpqhdprgm6k2bf +// static void gvevent_delete (GVJ_t * job) +public static Object gvevent_delete(Object... arg) { +UNSUPPORTED("e1gm68y4wg586b527136y2y6z"); // static void gvevent_delete (GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("42d3fg9bdfs5c7bjfa8ifmifa"); // /* FIXME */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 biioemf5ai5iuyoolocr03hc3 +// static void gvevent_read (GVJ_t * job, const char *filename, const char *layout) +public static Object gvevent_read(Object... arg) { +UNSUPPORTED("4h0co0klq5h3sj7yxdyzcvncb"); // static void gvevent_read (GVJ_t * job, const char *filename, const char *layout) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3al75fenupx704zal37z61c8b"); // FILE *f; +UNSUPPORTED("8f3ds00y6y855lum5r1q8iguu"); // GVC_t *gvc; +UNSUPPORTED("dche8rg8aigyynyqrt6nu6pi9"); // Agraph_t *g = NULL; +UNSUPPORTED("a7up84jfetsqtynw5ox47rdn1"); // gvlayout_engine_t *gvle; +UNSUPPORTED("7j5dmfadhocojbtl83jkh6xjg"); // gvc = job->gvc; +UNSUPPORTED("bds8dq7k78imolfuqvsompdpf"); // if (!filename) { +UNSUPPORTED("13uys361kmjd3qx8b3kmbfddm"); // g = agopen("G", Agdirected, ((Agdisc_t *)0)); +UNSUPPORTED("5dm2nbgqv55kkg3rp77draehf"); // job->output_filename = "new.gv"; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("7bjzgpbe070yudayasbofefn6"); // f = fopen(filename, "r"); +UNSUPPORTED("cph6k7prppj2jpk1p0kv21lzt"); // if (!f) +UNSUPPORTED("vsh6vacplnxa4vg4vqz6gr3h"); // return; /* FIXME - need some error handling */ +UNSUPPORTED("4dxia19suxcfx8nx4kkv03xvr"); // g = agread(f,((Agdisc_t *)0)); +UNSUPPORTED("chdfpk39x7sd1pta68dy54uc7"); // fclose(f); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d4y2wp550bqfklklls2la62re"); // if (!g) +UNSUPPORTED("t91xvoytv7bz3axiuer1p2jk"); // return; /* FIXME - need some error handling */ +UNSUPPORTED("8vkljh4chrkc3gbo7q02no1z9"); // if (gvc->g) { +UNSUPPORTED("bufvf17xepz6u0m39ufe7ye84"); // gvle = gvc->layout.engine; +UNSUPPORTED("czf1mh1evonsv8so8ps3947ll"); // if (gvle && gvle->cleanup) +UNSUPPORTED("uyay82wv3l1kokjwlaueo2db"); // gvle->cleanup(gvc->g); +UNSUPPORTED("2aupiz398k8rkbfq3c05sw8rv"); // graph_cleanup(gvc->g); +UNSUPPORTED("a5pud2m3sxqnuvqgon9a1at18"); // agclose(gvc->g); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dc88opmbj2t1d95ft4b1qfucr"); // aginit (g, AGRAPH, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); +UNSUPPORTED("9ags1qc3lejto2k8tjopp22e1"); // aginit (g, AGNODE, "Agnodeinfo_t", sizeof(Agnodeinfo_t), NOT(0)); +UNSUPPORTED("e8pylpzs6p3co7burg6on5rs9"); // aginit (g, AGEDGE, "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0)); +UNSUPPORTED("8zmfa30bj4y52yk4nu6fzjg4a"); // gvc->g = g; +UNSUPPORTED("eal5jjm76ug7lf7e9m9yk6um"); // GD_gvc(g) = gvc; +UNSUPPORTED("6cbvip0hdqnrg54zv7c3oesf1"); // if (gvLayout(gvc, g, layout) == -1) +UNSUPPORTED("t91xvoytv7bz3axiuer1p2jk"); // return; /* FIXME - need some error handling */ +UNSUPPORTED("99q6bmbem9osq0wmq124s5bc4"); // job->selected_obj = NULL; +UNSUPPORTED("cqfz5sjxk5oljgi2g2rkngkxw"); // job->current_obj = NULL; +UNSUPPORTED("14bxw21mx0itq382s1d9yvadm"); // job->needs_refresh = 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1k1rh0zcbdhmc63pah8p3v9a5 +// static void gvevent_layout (GVJ_t * job, const char *layout) +public static Object gvevent_layout(Object... arg) { +UNSUPPORTED("84aq06ks1526mvfbsygstl1m6"); // static void gvevent_layout (GVJ_t * job, const char *layout) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6vga6er14oo3mi8zwv56hjzy9"); // gvLayout(job->gvc, job->gvc->g, layout); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8m9msj4hgktq8ewa10u5wbtf7 +// static void gvevent_render (GVJ_t * job, const char *format, const char *filename) +public static Object gvevent_render(Object... arg) { +UNSUPPORTED("6lp11ec3wv4z0karcudj7m75i"); // static void gvevent_render (GVJ_t * job, const char *format, const char *filename) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bwwsrqv41ezfoxciv5yp7fxcs"); // gvRenderFilename(job->gvc, job->gvc->g, format, filename); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 5jkaqx0en4lqut923scwlpad7 +// gvevent_key_binding_t gvevent_key_binding[] = + + +//1 79b1htxh6vczq03o7b1tx96yh +// int gvevent_key_binding_size = (sizeof(gvevent_key_binding)/sizeof(gvevent_key_binding[0])) + + +//1 2rfceko46oix2bfpek421g4uv +// gvdevice_callbacks_t gvdevice_callbacks = + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvjobs__c.java plantuml-8039/src/gen/lib/gvc/gvjobs__c.java --- plantuml-8024/src/gen/lib/gvc/gvjobs__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvjobs__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,340 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvjobs__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 1pjfdgts3f7oydy0y9jhjugta +// static GVJ_t *output_filename_job + + +//1 7y5n04mdy4v0ksvy1f8u1ufu1 +// static GVJ_t *output_langname_job + + + + +//3 39qttb09ieneoczohoe18m73o +// void gvjobs_output_filename(GVC_t * gvc, const char *name) +public static Object gvjobs_output_filename(Object... arg) { +UNSUPPORTED("3ryvg5oev9sja9lw3ofgqed7w"); // void gvjobs_output_filename(GVC_t * gvc, const char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cv040o08cv8281cfqhv8854yq"); // if (!gvc->jobs) { +UNSUPPORTED("a9cgmkhzy1dikep3roojjbcte"); // output_filename_job = gvc->job = gvc->jobs = zmalloc(sizeof(GVJ_t)); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("d3hw0xdpchwiy1k2rcc44xv4j"); // if (!output_filename_job) { +UNSUPPORTED("36c32ldaxz6vogmj5nhf92h83"); // output_filename_job = gvc->jobs; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("485550438nef76qt5kg2ly349"); // if (!output_filename_job->next) { +UNSUPPORTED("5oixw6s3swg9hznwx4czokjbk"); // output_filename_job->next = zmalloc(sizeof(GVJ_t)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("b8inpu32tu6zqo000moq75wy0"); // output_filename_job = output_filename_job->next; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8rlxv3o0lru4utlh7jl0f0vue"); // output_filename_job->output_filename = name; +UNSUPPORTED("62fru6gff40i2nhkhk1o43tsh"); // output_filename_job->gvc = gvc; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4i5tkl55fx3u0wrjngy8rlrlf +// boolean gvjobs_output_langname(GVC_t * gvc, const char *name) +public static Object gvjobs_output_langname(Object... arg) { +UNSUPPORTED("7pknulb4k1s97jbz2490bhjil"); // boolean gvjobs_output_langname(GVC_t * gvc, const char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cv040o08cv8281cfqhv8854yq"); // if (!gvc->jobs) { +UNSUPPORTED("bo2bep4t13b563p9bkmze288q"); // output_langname_job = gvc->job = gvc->jobs = zmalloc(sizeof(GVJ_t)); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("3llf13j0vc8xk1fxkw9pyxdby"); // if (!output_langname_job) { +UNSUPPORTED("8sydwjd6sltqbn798ugzschoj"); // output_langname_job = gvc->jobs; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("cyn28cpa3wbtakiskqjpzycm"); // if (!output_langname_job->next) { +UNSUPPORTED("aichf642t6sfhx7rmhieyx9ds"); // output_langname_job->next = zmalloc(sizeof(GVJ_t)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("35r3hch2gu4t2k2cwybo9zg6"); // output_langname_job = output_langname_job->next; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("89g459qqeg1bo774abkcni1lt"); // output_langname_job->output_langname = name; +UNSUPPORTED("d5cmms7hxpqitvmv6grhco7a9"); // output_langname_job->gvc = gvc; +UNSUPPORTED("9j8seo67dfwx0qo2t0owy5ss3"); // /* load it now to check that it exists */ +UNSUPPORTED("9c0elq6msr2m6yc2h6gmdodzo"); // if (gvplugin_load(gvc, API_device, name)) +UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e8pwlap2rcl8cv9ofdfafjvno +// GVJ_t *gvjobs_first(GVC_t * gvc) +public static Object gvjobs_first(Object... arg) { +UNSUPPORTED("ai610ye6dr7wwxocu8id01h8k"); // GVJ_t *gvjobs_first(GVC_t * gvc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5v9dnf37wu1p4ydy7jec1vsdp"); // return (gvc->job = gvc->jobs); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 306mhd1v2f9ubaamkhjsvd8qp +// GVJ_t *gvjobs_next(GVC_t * gvc) +public static Object gvjobs_next(Object... arg) { +UNSUPPORTED("cl5sw4h8jxwka40ye3iclxeye"); // GVJ_t *gvjobs_next(GVC_t * gvc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a78h71dhtlrepn6wv5z3kjyua"); // GVJ_t *job = gvc->job->next; +UNSUPPORTED("4ugafys4138jbf2cwbngr1rmf"); // if (job) { +UNSUPPORTED("c2ja6xkql14tp4abs4rjoczap"); // /* if langname not specified, then repeat previous value */ +UNSUPPORTED("9pe1w1tplonkmhbh6oxtgvk0m"); // if (!job->output_langname) +UNSUPPORTED("7meekiuuvso01zylb5f9yhxhn"); // job->output_langname = gvc->job->output_langname; +UNSUPPORTED("b4q9cevqaqfulbq7fxg62domu"); // /* if filename not specified, then leave NULL to indicate stdout */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1qgmwakcokc36ya4c4e9x0slz"); // return (gvc->job = job); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 792fo3o9fsxvoz433ctlnc4fc +// gv_argvlist_t *gvNEWargvlist(void) +public static Object gvNEWargvlist(Object... arg) { +UNSUPPORTED("6zo529p4sml722e6ll9gxyt7l"); // gv_argvlist_t *gvNEWargvlist(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2pnc0kxk2813dwiy45sgvw48"); // return (gv_argvlist_t*)zmalloc(sizeof(gv_argvlist_t)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vrgzg9tosokrv5epywnpck6p +// void gv_argvlist_set_item(gv_argvlist_t *list, int index, char *item) +public static Object gv_argvlist_set_item(Object... arg) { +UNSUPPORTED("8bargfhdrutc1xv5dwu2chxuv"); // void gv_argvlist_set_item(gv_argvlist_t *list, int index, char *item) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3fw3kxowrs2t9drym6ls89uy5"); // if (index >= list->alloc) { +UNSUPPORTED("1uc5g7t5w5e108ipxs91oph56"); // list->alloc = index + 10; +UNSUPPORTED("c5yzzd37ss3fgbr0b3a0aq6z7"); // list->argv = grealloc(list->argv, (list->alloc)*(sizeof(char*))); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bl6ru62mgdiir5470o069hfd1"); // list->argv[index] = item; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d2b5k3hlhil0de7fa1hu7l94h +// void gv_argvlist_reset(gv_argvlist_t *list) +public static Object gv_argvlist_reset(Object... arg) { +UNSUPPORTED("850opb4ojq26l924543kc1gok"); // void gv_argvlist_reset(gv_argvlist_t *list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("doj8fyzeqsl0r4wgj9lh430ox"); // if (list->argv) +UNSUPPORTED("xlt093t6b7j3pnv9hu2vt66f"); // free(list->argv); +UNSUPPORTED("ap2mjy4r8fpmayf9uuxp4jf89"); // list->argv = NULL; +UNSUPPORTED("4sqkjh7d3c62r110mi2a83svb"); // list->alloc = 0; +UNSUPPORTED("7ro2etssmfzc4a1isfbbx6eed"); // list->argc = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5mgwysotnvkta4thc1xg5fi54 +// void gv_argvlist_free(gv_argvlist_t *list) +public static Object gv_argvlist_free(Object... arg) { +UNSUPPORTED("ea3c0vjqyvj4dxsejfvmh35gb"); // void gv_argvlist_free(gv_argvlist_t *list) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("doj8fyzeqsl0r4wgj9lh430ox"); // if (list->argv) +UNSUPPORTED("xlt093t6b7j3pnv9hu2vt66f"); // free(list->argv); +UNSUPPORTED("77gdlnaiah901ax125wm0qh80"); // free(list); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2wvv6fkvq52bzf9nxkfkegeaq +// void gvjobs_delete(GVC_t * gvc) +public static Object gvjobs_delete(Object... arg) { +UNSUPPORTED("crqxrbflqt2g954zn4tcroo9w"); // void gvjobs_delete(GVC_t * gvc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("97ra1ormlmahj8vge2eunl30v"); // GVJ_t *job, *j; +UNSUPPORTED("3pmzbzpokb2qak70z519miwt2"); // job = gvc->jobs; +UNSUPPORTED("eaj0v3cv4vpxfa9s4a9encgvb"); // while ((j = job)) { +UNSUPPORTED("c3q9r9u9bkmzersvod3mnf57w"); // job = job->next; +UNSUPPORTED("1cdz5buzwqhtha92lvuuza7np"); // gv_argvlist_reset(&(j->selected_obj_attributes)); +UNSUPPORTED("5zd7n7b1fs7wf1p5gxhwc18tq"); // gv_argvlist_reset(&(j->selected_obj_type_name)); +UNSUPPORTED("7v6blrn64uyfyf00wiegwiolr"); // if (j->active_tooltip) +UNSUPPORTED("13harrcujsq9tfn9l9si9smra"); // free(j->active_tooltip); +UNSUPPORTED("3szbju1px4sq4hkqtrrzspao7"); // if (j->selected_href) +UNSUPPORTED("cpy4ywcq3ss7v5o2ymb3x26bb"); // free(j->selected_href); +UNSUPPORTED("6vry3qvmafu1jm517mnutt1f7"); // free(j); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4q0duus5k3hueqb940j1h6tc0"); // gvc->jobs = gvc->job = gvc->active_jobs = output_filename_job = output_langname_job = +UNSUPPORTED("5miekn5jg1682zqyvjvhc1h25"); // NULL; +UNSUPPORTED("77k27xankrzoe9n1nj8zbr2j0"); // gvc->common.viewNum = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvlayout__c.java plantuml-8039/src/gen/lib/gvc/gvlayout__c.java --- plantuml-8024/src/gen/lib/gvc/gvlayout__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvlayout__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,280 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static gen.lib.cgraph.obj__c.agroot; +import static gen.lib.cgraph.rec__c.agbindrec; +import static gen.lib.common.emit__c.gv_fixLocale; +import static gen.lib.common.input__c.graph_init; +import static smetana.core.JUtils.LOG2; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.enumAsInt; +import static smetana.core.JUtils.function; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.GD_cleanup; +import static smetana.core.Macro.GD_drawing; +import static smetana.core.Macro.GD_gvc; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agraph_s; +import h.Agraphinfo_t; +import h.GVC_s; +import h.gvlayout_engine_s; +import h.gvlayout_features_t; +import h.gvplugin_installed_t; +import h.layout_type; +import smetana.core.CString; +import smetana.core.Memory; +import smetana.core.__struct__; + +public class gvlayout__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + + + +//3 2g20jitdi8afuoei8p1mcfg9l +// int gvlayout_select(GVC_t * gvc, const char *layout) +private final static __struct__ dotgen_features = __struct__.from(gvlayout_features_t.class); +private final static __struct__ dotgen_engine = __struct__.from(gvlayout_engine_s.class); +static { +dotgen_features.setInt("flags", 1<<0); +dotgen_engine.setPtr("layout", function(gen.lib.dotgen.dotinit__c.class, "dot_layout")); +dotgen_engine.setPtr("cleanup", function(gen.lib.dotgen.dotinit__c.class, "dot_cleanup")); +} +public static int gvlayout_select(GVC_s gvc, CString layout) { +ENTERING("2g20jitdi8afuoei8p1mcfg9l","gvlayout_select"); +try { + gvplugin_installed_t gvlayout_dot_layout = (gvplugin_installed_t) Memory.malloc(gvplugin_installed_t.class); + gvlayout_dot_layout.setInt("id", enumAsInt(layout_type.class, "LAYOUT_DOT")); + gvlayout_dot_layout.setPtr("type", new CString("dot")); + gvlayout_dot_layout.setInt("quality", 0); + gvlayout_dot_layout.setPtr("engine", dotgen_engine.amp()); + gvlayout_dot_layout.setPtr("features", dotgen_features.amp()); + +// gvplugin_available_t *plugin; + gvplugin_installed_t typeptr = gvlayout_dot_layout; +// plugin = gvplugin_load(gvc, API_layout, layout); +// if (plugin) { +// typeptr = plugin->typeptr; + gvc.getStruct("layout").setPtr("type", typeptr.getPtr("type")); + gvc.getStruct("layout").setPtr("engine", typeptr.getPtr("engine")); + gvc.getStruct("layout").setInt("id", typeptr.getInt("id")); + gvc.getStruct("layout").setPtr("features", typeptr.getPtr("features")); + return 300; /* FIXME - need better return code */ +// } +// return 999; +} finally { +LEAVING("2g20jitdi8afuoei8p1mcfg9l","gvlayout_select"); +} +} + + + + +//3 991b7t7n0x8ifkp49zotjs78x +// int gvLayoutJobs(GVC_t * gvc, Agraph_t * g) +public static int gvLayoutJobs(GVC_s gvc, Agraph_s g) { +ENTERING("991b7t7n0x8ifkp49zotjs78x","gvLayoutJobs"); +try { + gvlayout_engine_s gvle; + CString p = null; + int rc; + agbindrec(g, new CString("Agraphinfo_t"), sizeof(Agraphinfo_t.class), (N(0))); + GD_gvc(g, gvc); + if (NEQ(g, agroot(g))) +UNSUPPORTED("ah9ygbaap1fyxr97z734juk0j"); // (((Agraphinfo_t*)(((Agobj_t*)(agroot(g)))->data))->gvc) = gvc; +/* if ((p = agget(g, new CString("layout")))!=null) { +UNSUPPORTED("dlm1jil8gt2pv7p8yrit1tuls"); // gvc->layout.engine = NULL; +UNSUPPORTED("efl8rjna6ij4qjxb0xlyu3hh1"); // rc = gvlayout_select(gvc, p); +UNSUPPORTED("7smbmph5nldinro02iqf3qlxv"); // if (rc == 999) { +UNSUPPORTED("6ru23qpjrx893ivwviirr1ikc"); // agerr (AGERR, "Layout type: \"%s\" not recognized. Use one of:%s\n", +UNSUPPORTED("f3vrr10ga3mqymh2qxomxn326"); // p, gvplugin_list(gvc, API_layout, p)); +UNSUPPORTED("aivfd7ajlfz8o8oi68d4u5s5z"); // return -1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + }*/ + + rc = gvlayout_select(gvc, p); //Let's force things + + gvle = (gvlayout_engine_s) gvc.getStruct("layout").getPtr("engine"); + if (N(gvle)) + UNSUPPORTED("return -1;"); + gv_fixLocale (1); + graph_init(g, (gvc.getStruct("layout").getPtr("features").getInt("flags") & (1<<0))!=0); + GD_drawing(agroot(g), GD_drawing(g)); + if (gvle!=null && gvle.getPtr("layout")!=null) { + gvle.call("layout", g); + if (gvle.getPtr("cleanup")!=null) + if (GD_cleanup(g)==null) + LOG2("WARNING WE CHEAT GD_cleanup(g) is NULL"); else + GD_cleanup(g).setPtr(gvle.getPtr("cleanup")); + } + gv_fixLocale (0); + return 0; +} finally { +LEAVING("991b7t7n0x8ifkp49zotjs78x","gvLayoutJobs"); +} +} + + + + +//3 3c99zdwpmvsunk8fuj6my9c14 +// int gvFreeLayout(GVC_t * gvc, Agraph_t * g) +public static Object gvFreeLayout(Object... arg) { +UNSUPPORTED("miztaqpyzsrx0tzflsbk18df"); // int gvFreeLayout(GVC_t * gvc, Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("an78d0x2t0pcnm5p7x0nsyl8o"); // /* skip if no Agraphinfo_t yet */ +UNSUPPORTED("y9n04abevv5wkts4l75cl1au"); // if (! agbindrec(g, "Agraphinfo_t", 0, NOT(0))) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("3tq49gfbuixakj7ae5tf9mzxz"); // if (GD_cleanup(g)) { +UNSUPPORTED("66fe8hcy8mktqozsl94u84wy4"); // (GD_cleanup(g))(g); +UNSUPPORTED("9otfc4inu4hywb5uzke8hroh8"); // GD_cleanup(g) = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6o4u7hjlds1wsu4tuaotw2xvr"); // if (GD_drawing(g)) { +UNSUPPORTED("614pp135h9hyyoa6quv172ent"); // graph_cleanup(g); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvloadimage__c.java plantuml-8039/src/gen/lib/gvc/gvloadimage__c.java --- plantuml-8024/src/gen/lib/gvc/gvloadimage__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvloadimage__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,194 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvloadimage__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + + + +//3 ep6jmhv0is26drryogw6fohi3 +// static int gvloadimage_select(GVJ_t * job, char *str) +public static Object gvloadimage_select(Object... arg) { +UNSUPPORTED("5bb69p9z62wipd3lyplljm2v4"); // static int gvloadimage_select(GVJ_t * job, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5ssvxydvbzuxmb74t0hvdbmws"); // gvplugin_available_t *plugin; +UNSUPPORTED("9q2rkohjybr7oxouto8gnuzsb"); // gvplugin_installed_t *typeptr; +UNSUPPORTED("5yly7xo50onlrn1nqjqrr9wo9"); // plugin = gvplugin_load(job->gvc, API_loadimage, str); +UNSUPPORTED("3qzhu1d1ev2sbxdqyn2rujv5y"); // if (plugin) { +UNSUPPORTED("9n3145wffxmm0g88h1ajkns50"); // typeptr = plugin->typeptr; +UNSUPPORTED("2ui2g5j7vqtvf4ojbk62b0iqw"); // job->loadimage.engine = (gvloadimage_engine_t *) (typeptr->engine); +UNSUPPORTED("cfrvp22dhfgc4junmqcolizhe"); // job->loadimage.id = typeptr->id; +UNSUPPORTED("51t151ipzzvnbstd9b6wdf6hc"); // return 300; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bel174mlivqazll07qqj29en"); // return 999; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a1485vryn659qrl2rhyrgd6dt +// void gvloadimage(GVJ_t * job, usershape_t *us, boxf b, boolean filled, const char *target) +public static Object gvloadimage(Object... arg) { +UNSUPPORTED("21k2magil01siu25ovmraoqbg"); // void gvloadimage(GVJ_t * job, usershape_t *us, boxf b, boolean filled, const char *target) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e3pb3haf1s6pn0amul7acf5km"); // gvloadimage_engine_t *gvli; +UNSUPPORTED("ccf1hpkthzbxg1bqw930patsh"); // char type[128]; +UNSUPPORTED("1nk5slg1h855ktp6d9uxli7u3"); // assert(job); +UNSUPPORTED("7gqi0ait1bhc4v9zl8rnn0wbs"); // assert(us); +UNSUPPORTED("xlffgd4fqdckxg2nbs0mxtlj"); // assert(us->name); +UNSUPPORTED("fk4kdjctgb13swd2h14t0yvh"); // assert(us->name[0]); +UNSUPPORTED("2pbo4rf9sxizguooweyns5dan"); // strcpy(type, us->stringtype); +UNSUPPORTED("19k2ef632wrs9x9vtnv1ijff0"); // strcat(type, ":"); +UNSUPPORTED("aeq1ythwox76trv969mshtfdj"); // strcat(type, target); +UNSUPPORTED("42tfcob96fcxdwuvlm1jq2rxv"); // if (gvloadimage_select(job, type) == 999) +UNSUPPORTED("d5epmnbww8kj1vdjo9mwj8qpo"); // agerr (AGWARN, "No loadimage plugin for \"%s\"\n", type); +UNSUPPORTED("1idhakd1v5ijtt2ohczpakl6n"); // if ((gvli = job->loadimage.engine) && gvli->loadimage) +UNSUPPORTED("8vlzrv54d9rjiv3pxxvhx7wht"); // gvli->loadimage(job, us, b, filled); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvplugin__c.java plantuml-8039/src/gen/lib/gvc/gvplugin__c.java --- plantuml-8024/src/gen/lib/gvc/gvplugin__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvplugin__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,825 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static smetana.core.JUtils.enumAsInt; +import static smetana.core.JUtils.strchr; +import static smetana.core.JUtils.strncpy; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.GVC_s; +import h.api_t; +import h.gvplugin_api_t; +import h.gvplugin_available_s; +import h.gvplugin_installed_t; +import h.gvplugin_library_t; +import smetana.core.CString; + +public class gvplugin__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 aemimfultk1u2w9cxr60mx9t8 +// static char *api_names[] = + + + + +//3 eevhjwoa4cqgsdjixuro98kl0 +// api_t gvplugin_api(char *str) +public static Object gvplugin_api(Object... arg) { +UNSUPPORTED("cszu4juqkncv208751dxi10l3"); // api_t gvplugin_api(char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6ugrq6sc21ihshl3bbzco6fos"); // int api; +UNSUPPORTED("c57imqe71hagsxekx4tv822e"); // for (api = 0; api < (sizeof(api_names)/sizeof(api_names[0])); api++) { +UNSUPPORTED("cypzroibwqkkeifp7b9ciyrfx"); // if (strcmp(str, api_names[api]) == 0) +UNSUPPORTED("ap3yvrg5ko19s5z8pvkh2f64b"); // return (api_t) api; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("16zkyf3ijnqqhod6luqgoqzd0"); // return -1; /* invalid api */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3vjd9bb625sthhbgjrlrmjw4h +// char *gvplugin_api_name(api_t api) +public static Object gvplugin_api_name(Object... arg) { +UNSUPPORTED("c2dzua9zqksseurlvndxm1do6"); // char *gvplugin_api_name(api_t api) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("15g86gk834zhtgfo7w962s468"); // if (api >= (sizeof(api_names)/sizeof(api_names[0]))) +UNSUPPORTED("3kb0mwa3jlee9ipjt7wodtqqb"); // return NULL; +UNSUPPORTED("9esfkw01cbkumpp6ou4xmeqos"); // return api_names[api]; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cxx1gbe13gcf3krmmqjiyr7di +// boolean gvplugin_install(GVC_t * gvc, api_t api, const char *typestr, int quality, gvplugin_package_t * package, gvplugin_installed_t * typeptr) +public static Object gvplugin_install(Object... arg) { +UNSUPPORTED("619rhf5ymot3codnbzksouis6"); // boolean gvplugin_install(GVC_t * gvc, api_t api, const char *typestr, +UNSUPPORTED("cbeivjlgviyvn2o1ob9xcgjgt"); // int quality, gvplugin_package_t * package, gvplugin_installed_t * typeptr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d53yi83w5e6hbh7khf6tu3amd"); // gvplugin_available_t *plugin, **pnext; +UNSUPPORTED("h46d3z1wpcx5yz5xwrhaep09"); // char *p, pins[63 + 1], pnxt[63 + 1]; +UNSUPPORTED("70v3xi82bu6ai1mhcwuqlzygc"); // strncpy(pins, typestr, 63); +UNSUPPORTED("5ehl3fspdtq5bd7s4n2jx0n5z"); // if ((p = strchr(pins, ':'))) +UNSUPPORTED("1rp7cdmu93lyeduxea3kodw6f"); // *p = '\0'; +UNSUPPORTED("bzrdeewfn36nuge9zi5rjnm9d"); // /* point to the beginning of the linked list of plugins for this api */ +UNSUPPORTED("8cx9xw3rgslvvjxjfv9nlbjtu"); // pnext = &(gvc->apis[api]); +UNSUPPORTED("40pb8kh6h3bxztdhbpk4ngy1t"); // /* keep alpha-sorted and insert new duplicates ahead of old */ +UNSUPPORTED("86i3a2gdu4hatw4n3807wkpyz"); // while (*pnext) { +UNSUPPORTED("8scl16yzxj5y3qa97lj2iuezz"); // strncpy(pnxt, (*pnext)->typestr, 63); +UNSUPPORTED("8r7wzbzf0r4s9m2wasqpwmh4s"); // if ((p = strchr(pnxt, ':'))) +UNSUPPORTED("6568pmkatbjs0ljsylsyvwepv"); // *p = '\0'; +UNSUPPORTED("6499faf42vnje5zsq4zhf02lb"); // if (strcmp(pins, pnxt) <= 0) +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("55n8nl3sp6k1nc6nnayaegsho"); // pnext = &((*pnext)->next); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dsphd42nrfy5e2axk5sg3b65d"); // /* keep quality sorted within type and insert new duplicates ahead of old */ +UNSUPPORTED("86i3a2gdu4hatw4n3807wkpyz"); // while (*pnext) { +UNSUPPORTED("8scl16yzxj5y3qa97lj2iuezz"); // strncpy(pnxt, (*pnext)->typestr, 63); +UNSUPPORTED("8r7wzbzf0r4s9m2wasqpwmh4s"); // if ((p = strchr(pnxt, ':'))) +UNSUPPORTED("6568pmkatbjs0ljsylsyvwepv"); // *p = '\0'; +UNSUPPORTED("5pq63gm29ufff21489hv3pdzx"); // if (strcmp(pins, pnxt) != 0) +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("ayxld9otjreak79zsydlip2n8"); // if (quality >= (*pnext)->quality) +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("55n8nl3sp6k1nc6nnayaegsho"); // pnext = &((*pnext)->next); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("27rb5472mqvaoo2lrv9ay9nb2"); // plugin = (gvplugin_available_t*)gmalloc(sizeof(gvplugin_available_t)); +UNSUPPORTED("8d3uxfkxttckrkyrqz7c316nd"); // plugin->next = *pnext; +UNSUPPORTED("2nzw9ndaixpz96xekhyzf3grg"); // *pnext = plugin; +UNSUPPORTED("1ayess103228p1o527qizt55v"); // plugin->typestr = typestr; +UNSUPPORTED("3gh26iskvk2frax9qdu4eml5p"); // plugin->quality = quality; +UNSUPPORTED("74iei4ud3yzux00gm80pl13w1"); // plugin->package = package; +UNSUPPORTED("15sp63w5n1i9737z5m37xrxt7"); // plugin->typeptr = typeptr; /* null if not loaded */ +UNSUPPORTED("8fwlqtemsmckleh6946lyd8mw"); // return NOT(0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 awv2xvpinps83rbzhxzsrxeli +// static boolean gvplugin_activate(GVC_t * gvc, api_t api, const char *typestr, char *name, char *path, gvplugin_installed_t * typeptr) +public static Object gvplugin_activate(Object... arg) { +UNSUPPORTED("4rcplnvgpurjnsh6ap3chx2b0"); // static boolean gvplugin_activate(GVC_t * gvc, api_t api, +UNSUPPORTED("5npameydw0l8cwolyubcubjac"); // const char *typestr, char *name, char *path, gvplugin_installed_t * typeptr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("55hy9lq9jka8phhommr24dbxn"); // gvplugin_available_t **pnext; +UNSUPPORTED("bzrdeewfn36nuge9zi5rjnm9d"); // /* point to the beginning of the linked list of plugins for this api */ +UNSUPPORTED("8cx9xw3rgslvvjxjfv9nlbjtu"); // pnext = &(gvc->apis[api]); +UNSUPPORTED("86i3a2gdu4hatw4n3807wkpyz"); // while (*pnext) { +UNSUPPORTED("ca0mu6mhnhs9xsj0mkrrsgw63"); // if ((strcasecmp(typestr, (*pnext)->typestr) == 0) +UNSUPPORTED("5172m3eawe0zwowomraogv42a"); // && (strcasecmp(name, (*pnext)->package->name) == 0) +UNSUPPORTED("5pn92hn5htirj0b4blrfjgdpc"); // && ((*pnext)->package->path != 0) +UNSUPPORTED("b0ecf9ryo0px6tujptl0einvq"); // && (strcasecmp(path, (*pnext)->package->path) == 0)) { +UNSUPPORTED("78cuc01bk5hfha6nvpxlqdkuu"); // (*pnext)->typeptr = typeptr; +UNSUPPORTED("et2iafj6t9rndjcqc9yjlp1g0"); // return NOT(0); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("55n8nl3sp6k1nc6nnayaegsho"); // pnext = &((*pnext)->next); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c85ouwevp7apj486314dok24 +// gvplugin_library_t *gvplugin_library_load(GVC_t * gvc, char *path) +public static Object gvplugin_library_load(Object... arg) { +UNSUPPORTED("2pt63mbk45dolii7tkhhsmcqw"); // gvplugin_library_t *gvplugin_library_load(GVC_t * gvc, char *path) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("45vezjnngq4gg1z3p4u8cmmfc"); // agerr(AGERR, "dynamic loading not available\n"); +UNSUPPORTED("o68dp934ebg4cplebgc5hv4v"); // return NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dh7wri9ra8xvm9ur14gd95xjj +// gvplugin_available_t *gvplugin_load(GVC_t * gvc, api_t api, const char *str) +public static gvplugin_available_s gvplugin_load(GVC_s gvc, int api, CString str) { +ENTERING("dh7wri9ra8xvm9ur14gd95xjj","gvplugin_load"); +try { + //gvplugin_available_s **pnext; + //gvplugin_available_s rv; + gvplugin_library_t library; + gvplugin_api_t apis; + gvplugin_installed_t types; + CString reqtyp = new CString(64), typ = new CString(64); + CString reqdep, dep , reqpkg; + int i; + int apidep; + if (api == enumAsInt(api_t.class, "API_device") || api == enumAsInt(api_t.class, "API_loadimage")) + /* api dependencies - FIXME - find better way to code these *s */ + apidep = enumAsInt(api_t.class, "API_render"); + else + apidep = api; + strncpy(reqtyp, str, 64 - 1); + reqdep = strchr(reqtyp, ':'); + if (reqdep!=null) { +UNSUPPORTED("v4f234lwajz9y86dpuwr76x4"); // *reqdep++ = '\0'; +UNSUPPORTED("bj9a4dr8mxpww0obi8zxgrz8n"); // reqpkg = strchr(reqdep, ':'); +UNSUPPORTED("9de4oolo5nfmp3pn7rc8z7mpi"); // if (reqpkg) +UNSUPPORTED("2web68ydx2ds095472meaj5uu"); // *reqpkg++ = '\0'; + } else + reqpkg = null; + /* iterate the linked list of plugins for this api */ + if (gvc!=null) return null; +UNSUPPORTED("68d0gbzwhglez9tyb4bkt0lcd"); // for (pnext = &(gvc->apis[api]); *pnext; pnext = &((*pnext)->next)) { +UNSUPPORTED("3axytqbyra7wocgomcecm4wlg"); // strncpy(typ, (*pnext)->typestr, 64 - 1); +UNSUPPORTED("e5b2el2saiq79o4ykn7kmxwyt"); // dep = strchr(typ, ':'); +UNSUPPORTED("chw9vqfst4822csk8kr1l0it"); // if (dep) +UNSUPPORTED("6sqb7qw747g3hskwfejd5dcdt"); // *dep++ = '\0'; +UNSUPPORTED("b60wz4e3fwt100yl0ccqx3iag"); // if (strcmp(typ, reqtyp)) +UNSUPPORTED("1e1b2en921iu779xkfhuf9bty"); // continue; /* types empty or mismatched */ +UNSUPPORTED("aluni9fobueuk3p10vji0llg5"); // if (dep && reqdep && strcmp(dep, reqdep)) +UNSUPPORTED("bxrhpucln1iea8ytua2k3re1u"); // continue; /* dependencies not empty, but mismatched */ +UNSUPPORTED("6u3aquvaxygyv1w8s3hgeeikl"); // if (!reqpkg || strcmp(reqpkg, (*pnext)->package->name) == 0) { +UNSUPPORTED("e2bkyex2gkrmc414i8wvkb7xi"); // /* found with no packagename constraints, or with required matching packagname */ +UNSUPPORTED("59jlxa3m4zama5p713kkyz5r4"); // if (dep && (apidep != api)) /* load dependency if needed, continue if can't find */ +UNSUPPORTED("bsf9jjuzyv8iihk6zjrivkvcn"); // if (!(gvplugin_load(gvc, apidep, dep))) +UNSUPPORTED("ci4p4wle87mwq773w72esmnae"); // continue; +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("27lmfyh0m79d94stpbddkdzrv"); // rv = *pnext; +UNSUPPORTED("binj9wmdpb8vem5hhtbh5733n"); // if (rv && rv->typeptr == NULL) { +UNSUPPORTED("15j4x1t80duys316q8r9fkkt1"); // library = gvplugin_library_load(gvc, rv->package->path); +UNSUPPORTED("6pxp53rlv5d0tsd06clxz8vof"); // if (library) { +UNSUPPORTED("d2alhhvljuuo0uf6nb3o1kp2g"); // /* Now activate the library with real type ptrs */ +UNSUPPORTED("5umnd01nbv4ejzdswcukud4ah"); // for (apis = library->apis; (types = apis->types); apis++) { +UNSUPPORTED("5qm5zem2mppsmhrid6q2g198g"); // for (i = 0; types[i].type; i++) { +UNSUPPORTED("20c1krmmv0xuknbbvm603bvel"); // /* NB. quality is not checked or replaced +UNSUPPORTED("dln3p27g47v58k0z2h13ce0mb"); // * in case user has manually edited quality in config */ +UNSUPPORTED("8o3drgb2uqfbdsbqcd60n2hly"); // gvplugin_activate(gvc, apis->api, types[i].type, library->packagename, rv->package->path, &types[i]); +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("cx6aan764qxohieo76h56olf5"); // if (gvc->common.verbose >= 1) +UNSUPPORTED("4k41k50htzpoy2mb5tmed3i8e"); // fprintf(stderr, "Activated plugin library: %s\n", rv->package->path ? rv->package->path : ""); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3qiszxrlm01hncks79ifwi9jh"); // /* one last check for successfull load */ +UNSUPPORTED("42v8vw2rohnx3tnrmuc85yz2d"); // if (rv && rv->typeptr == NULL) +UNSUPPORTED("7bu34crrs14254woee3o1yuk1"); // rv = NULL; +UNSUPPORTED("930q30ejwekyhfjobgapch0l5"); // if (rv && gvc->common.verbose >= 1) +UNSUPPORTED("790j90vrtpqkyprttlog78ciy"); // fprintf(stderr, "Using %s: %s:%s\n", api_names[api], rv->typestr, rv->package->name); +UNSUPPORTED("1mos1622e46mcs6eq5qmg29ht"); // gvc->api[api] = rv; +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("dh7wri9ra8xvm9ur14gd95xjj","gvplugin_load"); +} +} + + + + +//3 djkxwqwth7ib6sozs5hisbmqn +// char *gvplugin_list(GVC_t * gvc, api_t api, const char *str) +public static Object gvplugin_list(Object... arg) { +UNSUPPORTED("1v2q9s4cymbg5u04i4iijkj4n"); // char *gvplugin_list(GVC_t * gvc, api_t api, const char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("iu9q9m87bgur91u4rdej8gle"); // static int first = 1; +UNSUPPORTED("2nryve1urrjk2ojn2ep4669qr"); // gvplugin_available_t **pnext, **plugin; +UNSUPPORTED("bsi41xgsfug6hif16t4rb3w79"); // char *bp; +UNSUPPORTED("7yit1omzpv81sbfd8ic9njmz3"); // char *s, *p, *q, *typestr_last; +UNSUPPORTED("238qefw0qt8363ih41k92sqw0"); // boolean new = NOT(0); +UNSUPPORTED("4prm37g40ckj7wdk0oh3x5tpk"); // static agxbuf xb; +UNSUPPORTED("9ts30vphzu6hcp7n5wjnsyj68"); // /* check for valid str */ +UNSUPPORTED("1g6v7lgund5oa653abq3l4giy"); // if (!str) +UNSUPPORTED("3kb0mwa3jlee9ipjt7wodtqqb"); // return NULL; +UNSUPPORTED("7herqsihuvh0d9kz5ji1qn1b2"); // if (first) { +UNSUPPORTED("5egh0r7y24qk0cmitame7fi9j"); // agxbinit(&xb, 0, 0); +UNSUPPORTED("25bi98k3pjxa9e2o1ew408zrm"); // first = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5z1vnrg7jdoloz7tvs9qxhb9l"); // /* does str have a :path modifier? */ +UNSUPPORTED("db1ruffpf3fw8xna0bpslcfn1"); // s = strdup(str); +UNSUPPORTED("5j3dabf0pq8p53mdtvs1rv7l7"); // p = strchr(s, ':'); +UNSUPPORTED("ay5e65kk8vtv8cnw1dgne9zid"); // if (p) +UNSUPPORTED("9jbl9iuamc68i63byu5pa34io"); // *p++ = '\0'; +UNSUPPORTED("bzrdeewfn36nuge9zi5rjnm9d"); // /* point to the beginning of the linked list of plugins for this api */ +UNSUPPORTED("bpnso1nnkurwa2h11vhuvqbgg"); // plugin = &(gvc->apis[api]); +UNSUPPORTED("7727bx9by5zwoh8mu62t47xxz"); // if (p) { /* if str contains a ':', and if we find a match for the type, +UNSUPPORTED("7r1sb5y2yws0114vm7oqw0kmt"); // then just list the alternative paths for the plugin */ +UNSUPPORTED("do1au3wtm7l8n5k0p2wi4ubmt"); // for (pnext = plugin; *pnext; pnext = &((*pnext)->next)) { +UNSUPPORTED("dsb8znr5lqd1s0vh1d44tg7a"); // q = strdup((*pnext)->typestr); +UNSUPPORTED("6cotg1zzmnapxko400gs8p1r2"); // if ((p = strchr(q, ':'))) +UNSUPPORTED("7bgubhrg54zm297xpoilybwg"); // *p++ = '\0'; +UNSUPPORTED("7r3m11wck3p42s4647xgxrt20"); // /* list only the matching type, or all types if s is an empty string */ +UNSUPPORTED("cbol5gysdkqlqcslh5x2w7sti"); // if (!s[0] || strcasecmp(s, q) == 0) { +UNSUPPORTED("844nl3vki2jqyi2mj6cfoo71z"); // /* list each member of the matching type as "type:path" */ +UNSUPPORTED("dcvbas8gf45yzfoglkuxabrfq"); // ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)' '))); +UNSUPPORTED("en79hx6rxblgi642wvla3tp3f"); // agxbput(&xb, (*pnext)->typestr); +UNSUPPORTED("4u7tuiai7hrptmytjxjb59hme"); // ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)':'))); +UNSUPPORTED("tmk8zqkywoslpl5rqdhlps83"); // agxbput(&xb, (*pnext)->package->name); +UNSUPPORTED("5492g7k0znwwdhrhryxc6kd3v"); // new = 0; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("78r1pvho3mdwz7thgrt9lo0g9"); // free(q); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1m1k82h0prsffwgjj105oaqyq"); // free(s); +UNSUPPORTED("7nk9vs246151cn14h3kz2q38g"); // if (new) { /* if the type was not found, or if str without ':', +UNSUPPORTED("dakg0i7twu3pjraw1n6wq3ypq"); // then just list available types */ +UNSUPPORTED("6sgnlgwkm8tt1u0lwxic3hpwn"); // typestr_last = NULL; +UNSUPPORTED("do1au3wtm7l8n5k0p2wi4ubmt"); // for (pnext = plugin; *pnext; pnext = &((*pnext)->next)) { +UNSUPPORTED("8ug6yi4wu9jv2mwfem68i3btd"); // /* list only one instance of type */ +UNSUPPORTED("dsb8znr5lqd1s0vh1d44tg7a"); // q = strdup((*pnext)->typestr); +UNSUPPORTED("6cotg1zzmnapxko400gs8p1r2"); // if ((p = strchr(q, ':'))) +UNSUPPORTED("7bgubhrg54zm297xpoilybwg"); // *p++ = '\0'; +UNSUPPORTED("ak5wb5un7zn45o0a7vmxks8ar"); // if (!typestr_last || strcasecmp(typestr_last, q) != 0) { +UNSUPPORTED("a5m9n0v5k4shjsi1dhd9769dx"); // /* list it as "type" i.e. w/o ":path" */ +UNSUPPORTED("dcvbas8gf45yzfoglkuxabrfq"); // ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)' '))); +UNSUPPORTED("aqu5zlkjcyexkyv3zrenxdtik"); // agxbput(&xb, q); +UNSUPPORTED("5492g7k0znwwdhrhryxc6kd3v"); // new = 0; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("23xvu0c1equ3bzmgwwfp66etl"); // if (!typestr_last) +UNSUPPORTED("cs5nhx0phv9qt4b3i2sc0qvpc"); // free(typestr_last); +UNSUPPORTED("1k2kc951dgdzikaj2uy7wbsor"); // typestr_last = q; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("5tmdkz8l68iig5emc3gzwzosb"); // if (!typestr_last) +UNSUPPORTED("4detj70lj7h5yymdlzkb5jyeh"); // free(typestr_last); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("aliy0fspw4omzb11sq9ftypvb"); // if (new) +UNSUPPORTED("2fixk6x7x06lrtw0cgj4g1f64"); // bp = ""; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("45p6mggceizuz32pp72ykxok1"); // bp = (((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf)); +UNSUPPORTED("bgo7070e5cs998w6zp1ma85ad"); // return bp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9rv6x5a14kebbqbr097thlusw +// char **gvPluginList(GVC_t * gvc, char *kind, int *sz, char *str) +public static Object gvPluginList(Object... arg) { +UNSUPPORTED("8ubqe7erabaqlpa8x948629d5"); // char **gvPluginList(GVC_t * gvc, char *kind, int *sz, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6ugrq6sc21ihshl3bbzco6fos"); // int api; +UNSUPPORTED("2nryve1urrjk2ojn2ep4669qr"); // gvplugin_available_t **pnext, **plugin; +UNSUPPORTED("behjm5bjsenezpg3f7cncvteu"); // int cnt = 0; +UNSUPPORTED("30dos1yzu5kemx2mi15uky7wo"); // char **list = NULL; +UNSUPPORTED("2juf5deqc26bjkvm2w9b75wn0"); // char *p, *q, *typestr_last; +UNSUPPORTED("cgivdkgckant9nqbakv35ipqv"); // if (!kind) +UNSUPPORTED("3kb0mwa3jlee9ipjt7wodtqqb"); // return NULL; +UNSUPPORTED("c57imqe71hagsxekx4tv822e"); // for (api = 0; api < (sizeof(api_names)/sizeof(api_names[0])); api++) { +UNSUPPORTED("esq1wuyzmawio8qvhb74jj9wo"); // if (!strcasecmp(kind, api_names[api])) +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("adydg893zqt46m6sj3ilro33h"); // if (api == (sizeof(api_names)/sizeof(api_names[0]))) { +UNSUPPORTED("3kwn70ufg1m5839pzkvyml804"); // agerr(AGERR, "unrecognized api name \"%s\"\n", kind); +UNSUPPORTED("3kb0mwa3jlee9ipjt7wodtqqb"); // return NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bzrdeewfn36nuge9zi5rjnm9d"); // /* point to the beginning of the linked list of plugins for this api */ +UNSUPPORTED("bpnso1nnkurwa2h11vhuvqbgg"); // plugin = &(gvc->apis[api]); +UNSUPPORTED("a83ef3wxlcw8fabtifuppijgo"); // typestr_last = NULL; +UNSUPPORTED("1fz5gcvaztkf8wb6oxldcjr9q"); // for (pnext = plugin; *pnext; pnext = &((*pnext)->next)) { +UNSUPPORTED("7pxd51cylsaep4l0bnpyuddtj"); // /* list only one instance of type */ +UNSUPPORTED("b32pvhd78roito0slq24bqddt"); // q = strdup((*pnext)->typestr); +UNSUPPORTED("9fgs8d3xx629l8b1i2ssjvyve"); // if ((p = strchr(q, ':'))) +UNSUPPORTED("8drindhjm9x48eycs6b69an8b"); // *p++ = '\0'; +UNSUPPORTED("8qntak9jd9prc2qudpz2in3k"); // if (!typestr_last || strcasecmp(typestr_last, q) != 0) { +UNSUPPORTED("30zv25964y6j1ihp7c1m34s71"); // list = RALLOC(cnt + 1, list, char *); +UNSUPPORTED("3hmlmi87kwlontlcidxvuw525"); // list[cnt++] = q; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("4isl6kj4pbcfd7zbzjkkij6u0"); // typestr_last = q; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8mx4gi10bdqgitnotw1pu7zii"); // *sz = cnt; +UNSUPPORTED("1a5vgaasp2bunvu19mvepzcny"); // return list; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3kbm1klgxj6tigy5o90ir8zg1 +// void gvplugin_write_status(GVC_t * gvc) +public static Object gvplugin_write_status(Object... arg) { +UNSUPPORTED("j7nfpijl0849ghbgk3ia1jmg"); // void gvplugin_write_status(GVC_t * gvc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6ugrq6sc21ihshl3bbzco6fos"); // int api; +UNSUPPORTED("c57imqe71hagsxekx4tv822e"); // for (api = 0; api < (sizeof(api_names)/sizeof(api_names[0])); api++) { +UNSUPPORTED("bhgr122ktcnbjllxx1h1vsrrw"); // if (gvc->common.verbose >= 2) +UNSUPPORTED("8pobdr5kntx66kzr39l7tpepf"); // fprintf(stderr, " %s\t: %s\n", api_names[api], gvplugin_list(gvc, api, ":")); +UNSUPPORTED("35nw1pbiz2p3s6qwlam5eoo3m"); // else +UNSUPPORTED("3jfqbxmf9owghyg7jmnmocsnt"); // fprintf(stderr, " %s\t: %s\n", api_names[api], gvplugin_list(gvc, api, "?")); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 385wh7mf4m0odlw2tyexnt9fe +// Agraph_t *gvplugin_graph(GVC_t * gvc) +public static Object gvplugin_graph(Object... arg) { +UNSUPPORTED("6nb21wnge36ef7jtbggj9thf2"); // Agraph_t *gvplugin_graph(GVC_t * gvc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3menvgua8fqm47un1b16gdvcy"); // Agraph_t *g, *sg, *ssg; +UNSUPPORTED("eorl8dqb83dvnhrq5o9r8wu8b"); // Agnode_t *n, *m, *loadimage_n, *renderer_n, *device_n, *textlayout_n, *layout_n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("6fh2f49mjcser5usqcg36hkjn"); // Agsym_t *a; +UNSUPPORTED("as58mgqb4uw4c8n4sdq7m0qz3"); // gvplugin_package_t *package; +UNSUPPORTED("55hy9lq9jka8phhommr24dbxn"); // gvplugin_available_t **pnext; +UNSUPPORTED("bs13kw4stjxanch12vhr9ypft"); // char bufa[100], *buf1, *buf2, bufb[100], *p, *q, *lq, *t; +UNSUPPORTED("aggfixnfqse53x64q18c9q14p"); // int api, neededge_loadimage, neededge_device; +UNSUPPORTED("bfb67djvjstmbi3ox2487rp37"); // g = agopen("G", Agdirected, ((Agdisc_t *)0)); +UNSUPPORTED("a1fyubzrynjisxnyp7m1ihueg"); // agattr(g, AGRAPH, "label", ""); +UNSUPPORTED("4e2jiv8yamrewe6ksk5zrsnwv"); // agattr(g, AGRAPH, "rankdir", ""); +UNSUPPORTED("50q1kfgx0ghhu8odg96kw8fs7"); // agattr(g, AGRAPH, "rank", ""); +UNSUPPORTED("bunp522dqapufpqzuamgcu3hv"); // agattr(g, AGRAPH, "ranksep", ""); +UNSUPPORTED("3rygbmzp3xb72un29edzt335o"); // agattr(g, AGNODE, "label", "\\N"); +UNSUPPORTED("3z876e4purw1c7esq4uhmny0i"); // agattr(g, AGNODE, "shape", ""); +UNSUPPORTED("a6m5pjlnbvb4s28gu7s1ojboc"); // agattr(g, AGNODE, "style", ""); +UNSUPPORTED("6leyn7o59iyhn79chw4g2raok"); // agattr(g, AGNODE, "width", ""); +UNSUPPORTED("8zifbwr3w2enafutiq0uiqql5"); // agattr(g, AGEDGE, "style", ""); +UNSUPPORTED("aq4bek4z8gwfafy4eqdj0bg7y"); // a = (agattr(g,AGRAPH,"rankdir",NULL)); +UNSUPPORTED("3mcwzuopezhg9zu1a064nqqqs"); // agxset(g, a, "LR"); +UNSUPPORTED("ehvk8kqfqmm928y14jj1fyptw"); // a = (agattr(g,AGRAPH,"ranksep",NULL)); +UNSUPPORTED("tlomujw8p0j9c5on5ca3sydv"); // agxset(g, a, "2.5"); +UNSUPPORTED("3xw2yj2ppc60hl0xfkixh8knl"); // a = (agattr(g,AGRAPH,"label",NULL)); +UNSUPPORTED("9moa7sx9scygioe1lfhl5gti2"); // agxset(g, a, "Plugins"); +UNSUPPORTED("dxez6ixf69034ajdfut2rqeet"); // for (package = gvc->packages; package; package = package->next) { +UNSUPPORTED("bf8adr5qnsvjqx5qns54i8tn9"); // loadimage_n = renderer_n = device_n = textlayout_n = layout_n = NULL; +UNSUPPORTED("cdntyqdyu5kxqzvikw6wb31b4"); // neededge_loadimage = neededge_device = 0; +UNSUPPORTED("cums1juqtdftirv4v2bxbhmrc"); // strcpy(bufa, "cluster_"); +UNSUPPORTED("a9jdx8yky0gmnv97qotzgfww7"); // strcat(bufa, package->name); +UNSUPPORTED("bwwlvwa8fbmnujvtiakczg1ns"); // sg = agsubg(g, bufa, 1); +UNSUPPORTED("e8gwcodb51qd7k2lwfvvqvvo"); // a = (agattr(sg,AGRAPH,"label",NULL)); +UNSUPPORTED("7esplh8cd9vm0dfnqhc5stpun"); // agxset(sg, a, package->name); +UNSUPPORTED("1y0pkakd59jobmrnly5pe492d"); // strcpy(bufa, package->name); +UNSUPPORTED("f068fnelxn6otng4job1isiqk"); // strcat(bufa, "_"); +UNSUPPORTED("3uwc64reta96fsluddki1x02u"); // buf1 = bufa + strlen(bufa); +UNSUPPORTED("2481o7hqcvd95u8otj2xj8h7g"); // for (api = 0; api < (sizeof(api_names)/sizeof(api_names[0])); api++) { +UNSUPPORTED("7w6sj318auxb1nm6gij82t9ul"); // strcpy(buf1, api_names[api]); +UNSUPPORTED("avhemu67qkwe5v8bk26p66wz4"); // ssg = agsubg(sg, bufa, 1); +UNSUPPORTED("45h3i52r4pqzfrw0492c04fcc"); // a = (agattr(ssg,AGRAPH,"rank",NULL)); +UNSUPPORTED("brlchbdxheybsfnn94jmrpwgm"); // agxset(ssg, a, "same"); +UNSUPPORTED("afqb6io8t5c2jx4mvtyqo9m5l"); // strcat(buf1, "_"); +UNSUPPORTED("23a6yglzvhmu09en6w5u95vyl"); // buf2 = bufa + strlen(bufa); +UNSUPPORTED("anrt511ktu6c1ohrknoyj2epj"); // for (pnext = &(gvc->apis[api]); *pnext; pnext = &((*pnext)->next)) { +UNSUPPORTED("6dr25usep0b15n58ef6fu3oxm"); // if ((*pnext)->package == package) { +UNSUPPORTED("65b0l808fcuc6ypxzzjh66rbu"); // t = q = strdup((*pnext)->typestr); +UNSUPPORTED("ef0iev1i1soawhu10e9f16lwp"); // if ((p = strchr(q, ':'))) +UNSUPPORTED("13cb27lx5rvfloiy3u0m2ct8i"); // *p++ = '\0'; +UNSUPPORTED("79iuiybxt6jyodedjzurqwq8"); // /* Now p = renderer, e.g. "gd" +UNSUPPORTED("czck0qt486a81d5w4k2ecl36c"); // * and q = device, e.g. "png" +UNSUPPORTED("du4rqorwcs1krr7h07o7pxpo8"); // * or q = loadimage, e.g. "png" */ +UNSUPPORTED("vok0igs7eybz3wbqr8b9rd6d"); // switch (api) { +UNSUPPORTED("537u9j534djot38xzhef8kuw0"); // case API_device: +UNSUPPORTED("2ahk4ggyn6n91llpssccwrszr"); // case API_loadimage: +UNSUPPORTED("4813gad8fplc0u4yu1j13pojn"); // /* draw device as box - record last device in plugin (if any) in device_n */ +UNSUPPORTED("7y87fc4aqkcxbin29dr01pbgu"); // /* draw loadimage as box - record last loadimage in plugin (if any) in loadimage_n */ +UNSUPPORTED("6qd2eqsf6xctb7gtf59n0soo5"); // /* hack for aliases */ +UNSUPPORTED("cexdnvb0dl9pabgm5murg0b0n"); // lq = q; +UNSUPPORTED("3xzw0vivz64lag4dptx9g5a0d"); // if (!strncmp(q, "jp", 2)) { +UNSUPPORTED("ewcsa7pcj7k4n0a4gurtm1cxy"); // q = "jpg"; /* canonical - for node name */ +UNSUPPORTED("a7ssoc631z58w6cvw8qs9h482"); // lq = "jpeg\\njpe\\njpg"; /* list - for label */ +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("f3zj81pisaget09ye2myt37j1"); // else if (!strncmp(q, "tif", 3)) { +UNSUPPORTED("c8g49w95mb5fjogr5rag7c9b7"); // q = "tif"; +UNSUPPORTED("d7d2h9cwi2j3xwcoo6lvaukad"); // lq = "tiff\\ntif"; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("1sphayc69paz5l9dvh0jj7z89"); // else if (!strcmp(q, "x11") || !strcmp(q, "xlib")) { +UNSUPPORTED("esmtqyrz6ef8t0dmmr7ku49ca"); // q = "x11"; +UNSUPPORTED("26miooe9mi3toaebdw4mi78bn"); // lq = "x11\\nxlib"; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("grfjtdws4pjp88by2kz3xbf9"); // else if (!strcmp(q, "dot") || !strcmp(q, "gv")) { +UNSUPPORTED("7xrtizhekgbnv8pbx1un51s0e"); // q = "gv"; +UNSUPPORTED("xm3r5bxze6a4s5brncmx55uz"); // lq = "gv\\ndot"; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("9vpx2ez7z7r7hmcnzanpuvuwl"); // strcpy(buf2, q); +UNSUPPORTED("f0p1ey8ki67kdf0tiq0uajpj2"); // n = agnode(ssg, bufa, 1); +UNSUPPORTED("ew5vz5eb3q5kvfym5i7fe6mbo"); // a = (agattr(g,AGNODE,"label",NULL)); +UNSUPPORTED("34ws9xsuwwhsxm8t5z9cfl391"); // agxset(n, a, lq); +UNSUPPORTED("9ryzc4o0n4g7w6x6fduxa1ptj"); // a = (agattr(g,AGNODE,"width",NULL)); +UNSUPPORTED("1nijtx0lnxkepvonuehz2v8nc"); // agxset(n, a, "1.0"); +UNSUPPORTED("9jgz5bwiy8ahdcy5p8qp88tuu"); // a = (agattr(g,AGNODE,"shape",NULL)); +UNSUPPORTED("iphdmh8qpmzi4jg13u83btxc"); // if (api == API_device) { +UNSUPPORTED("73os7qvmone60i8ohw1vrgs5h"); // agxset(n, a, "box"); +UNSUPPORTED("c68ibsn8h2t382b2zf9xhh9k8"); // device_n = n; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("9phbxix4152jfxnvknp58uxhr"); // else { +UNSUPPORTED("73os7qvmone60i8ohw1vrgs5h"); // agxset(n, a, "box"); +UNSUPPORTED("8vxadjliase6z6z6jjen07nr0"); // loadimage_n = n; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("5j7863t4gzmxk003j2wkmbyfr"); // if (!(p && *p)) { +UNSUPPORTED("6hhxcel5e3k3s50ztx5ijlnj2"); // strcpy(bufb, "render_cg"); +UNSUPPORTED("8fcmk3sn0q48qns9rus70n94t"); // m = (agnode(sg,bufb,0)); +UNSUPPORTED("4wxlgboqqydxokw7z48yjwwsk"); // if (!m) { +UNSUPPORTED("eorutr989m9n47djxrzlvinre"); // m = agnode(sg, bufb, 1); +UNSUPPORTED("2g5ydrx9oje1fqabmpbq3s3ov"); // a = (agattr(g,AGRAPH,"label",NULL)); +UNSUPPORTED("ckyunebz4o95whifludcfto5y"); // agxset(m, a, "cg"); +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("bl0by7x2x63u4cddz6p76krsq"); // agedge(sg, m, n, NULL, 1); +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("ejprhlzyhagmn5fs7yommr2j2"); // case API_render: +UNSUPPORTED("14erysh1po9utm5fnkzdk8h2v"); // /* draw renderers as ellipses - record last renderer in plugin (if any) in renderer_n */ +UNSUPPORTED("1xb2oi8i8tn0ka8we1piuzpim"); // strcpy(bufb, api_names[api]); +UNSUPPORTED("b2ffyj84jqbpr7gkz66w7gdfi"); // strcat(bufb, "_"); +UNSUPPORTED("f33i9wwsaa2gqto7mi4m2qi2l"); // strcat(bufb, q); +UNSUPPORTED("67jb48grjetd4ld7jrxirrz27"); // renderer_n = n = agnode(ssg, bufb, 1); +UNSUPPORTED("ew5vz5eb3q5kvfym5i7fe6mbo"); // a = (agattr(g,AGNODE,"label",NULL)); +UNSUPPORTED("398rxem81slrk9uhcc70hjvj5"); // agxset(n, a, q); +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("8lowpeewxipsp6igvajo6vn3q"); // case API_textlayout: +UNSUPPORTED("3anh9q6cafg6buq0k8t4mhn0m"); // /* draw textlayout as invtriangle - record last textlayout in plugin (if any) in textlayout_n */ +UNSUPPORTED("151239bfhh0n8pv73xyptt3k4"); // /* FIXME? only one textlayout is loaded. Why? */ +UNSUPPORTED("1xb2oi8i8tn0ka8we1piuzpim"); // strcpy(bufb, api_names[api]); +UNSUPPORTED("b2ffyj84jqbpr7gkz66w7gdfi"); // strcat(bufb, "_"); +UNSUPPORTED("f33i9wwsaa2gqto7mi4m2qi2l"); // strcat(bufb, q); +UNSUPPORTED("1syanvrlsdy49u0f41utfrjid"); // textlayout_n = n = agnode(ssg, bufb, 1); +UNSUPPORTED("9jgz5bwiy8ahdcy5p8qp88tuu"); // a = (agattr(g,AGNODE,"shape",NULL)); +UNSUPPORTED("6zjljs5ffo5sz4bu8ilug5yda"); // agxset(n, a, "invtriangle"); +UNSUPPORTED("ew5vz5eb3q5kvfym5i7fe6mbo"); // a = (agattr(g,AGNODE,"label",NULL)); +UNSUPPORTED("7b2du9f2jwped529eabfzt9fg"); // agxset(n, a, "T"); +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("3pmhas5tbx2cbteqfpv03v5fu"); // case API_layout: +UNSUPPORTED("ax8q182020n661ov8ohm9a6m7"); // /* draw textlayout as hexagon - record last layout in plugin (if any) in layout_n */ +UNSUPPORTED("1xb2oi8i8tn0ka8we1piuzpim"); // strcpy(bufb, api_names[api]); +UNSUPPORTED("b2ffyj84jqbpr7gkz66w7gdfi"); // strcat(bufb, "_"); +UNSUPPORTED("f33i9wwsaa2gqto7mi4m2qi2l"); // strcat(bufb, q); +UNSUPPORTED("4v4ck4nx3ujudbz4xu97y8pja"); // layout_n = n = agnode(ssg, bufb, 1); +UNSUPPORTED("9jgz5bwiy8ahdcy5p8qp88tuu"); // a = (agattr(g,AGNODE,"shape",NULL)); +UNSUPPORTED("bb0ntn8aeb3zazu8ey0obzu15"); // agxset(n, a, "hexagon"); +UNSUPPORTED("ew5vz5eb3q5kvfym5i7fe6mbo"); // a = (agattr(g,AGNODE,"label",NULL)); +UNSUPPORTED("398rxem81slrk9uhcc70hjvj5"); // agxset(n, a, q); +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("8qbfja4j8nk5tpqj2tov9bz7k"); // default: +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("96y712urx48a31tm7axlbked3"); // free(t); +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("5h24p1a6i7n7z2rewzjwa7x7a"); // // add some invisible nodes (if needed) and invisible edges to +UNSUPPORTED("ayulfxznlxx76fxza9x1zt0bs"); // // improve layout of cluster +UNSUPPORTED("7fn5mnm3ehijb6yn0ii88u75m"); // if (api == API_loadimage && !loadimage_n) { +UNSUPPORTED("3ap79y3kpdlpkm28fyl6kpny3"); // neededge_loadimage = 1; +UNSUPPORTED("1dkhoy9x4ajw87bhi1n0bj6ng"); // strcpy(buf2, "invis"); +UNSUPPORTED("5u8kn8vzm4lo6zb84coftfpfw"); // loadimage_n = n = agnode(ssg, bufa, 1); +UNSUPPORTED("7o7hre8zqwlcxhzorrolv9e85"); // a = (agattr(g,AGNODE,"style",NULL)); +UNSUPPORTED("a87bqjg6zgpw0z22ownmwop0"); // agxset(n, a, "invis"); +UNSUPPORTED("4ab5c0xio7c2uz7py5r7deg01"); // a = (agattr(g,AGNODE,"label",NULL)); +UNSUPPORTED("7hukloum1odusy26c046jdkc8"); // agxset(n, a, ""); +UNSUPPORTED("5mlb6kvjaiib201snwdmdr9q0"); // a = (agattr(g,AGNODE,"width",NULL)); +UNSUPPORTED("2xc7bzvf6ob2s9xeqlm6x1d6k"); // agxset(n, a, "1.0"); +UNSUPPORTED("e1dyn485bxibogxi1e14o12k"); // strcpy(buf2, "invis_src"); +UNSUPPORTED("ca015skn3nb4erm6ur2ghjf3w"); // n = agnode(g, bufa, 1); +UNSUPPORTED("7o7hre8zqwlcxhzorrolv9e85"); // a = (agattr(g,AGNODE,"style",NULL)); +UNSUPPORTED("a87bqjg6zgpw0z22ownmwop0"); // agxset(n, a, "invis"); +UNSUPPORTED("4ab5c0xio7c2uz7py5r7deg01"); // a = (agattr(g,AGNODE,"label",NULL)); +UNSUPPORTED("7hukloum1odusy26c046jdkc8"); // agxset(n, a, ""); +UNSUPPORTED("djnhybur2i8kaeqd3v2wh61mi"); // e = agedge(g, n, loadimage_n, NULL, 1); +UNSUPPORTED("3ll814mhwafdmqehxubga8910"); // a = (agattr(g,AGEDGE,"style",NULL)); +UNSUPPORTED("61xoac063mvbmjcqfqt21eokk"); // agxset(e, a, "invis"); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("a9m2rhjryvh4zlt3d5reetg7"); // if (api == API_render && !renderer_n) { +UNSUPPORTED("3ap79y3kpdlpkm28fyl6kpny3"); // neededge_loadimage = 1; +UNSUPPORTED("3wl7hkqasxla4j1t5327xgayk"); // neededge_device = 1; +UNSUPPORTED("1dkhoy9x4ajw87bhi1n0bj6ng"); // strcpy(buf2, "invis"); +UNSUPPORTED("1mrxv8jb78g2n110y56t7dcsu"); // renderer_n = n = agnode(ssg, bufa, 1); +UNSUPPORTED("7o7hre8zqwlcxhzorrolv9e85"); // a = (agattr(g,AGNODE,"style",NULL)); +UNSUPPORTED("a87bqjg6zgpw0z22ownmwop0"); // agxset(n, a, "invis"); +UNSUPPORTED("4ab5c0xio7c2uz7py5r7deg01"); // a = (agattr(g,AGNODE,"label",NULL)); +UNSUPPORTED("7hukloum1odusy26c046jdkc8"); // agxset(n, a, ""); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8eo2rue615e2ot6h2z4v52ct9"); // if (api == API_device && !device_n) { +UNSUPPORTED("3wl7hkqasxla4j1t5327xgayk"); // neededge_device = 1; +UNSUPPORTED("1dkhoy9x4ajw87bhi1n0bj6ng"); // strcpy(buf2, "invis"); +UNSUPPORTED("duavp9nrrarxvmphayikzxkt0"); // device_n = n = agnode(ssg, bufa, 1); +UNSUPPORTED("7o7hre8zqwlcxhzorrolv9e85"); // a = (agattr(g,AGNODE,"style",NULL)); +UNSUPPORTED("a87bqjg6zgpw0z22ownmwop0"); // agxset(n, a, "invis"); +UNSUPPORTED("4ab5c0xio7c2uz7py5r7deg01"); // a = (agattr(g,AGNODE,"label",NULL)); +UNSUPPORTED("7hukloum1odusy26c046jdkc8"); // agxset(n, a, ""); +UNSUPPORTED("5mlb6kvjaiib201snwdmdr9q0"); // a = (agattr(g,AGNODE,"width",NULL)); +UNSUPPORTED("2xc7bzvf6ob2s9xeqlm6x1d6k"); // agxset(n, a, "1.0"); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("ea5rcrkyfmlz7wkyklke00w6h"); // if (neededge_loadimage) { +UNSUPPORTED("285jwi6fbnlqqhob69z2lcc2b"); // e = agedge(sg, loadimage_n, renderer_n, NULL, 1); +UNSUPPORTED("52vrd3arfv8vio47p5o9el4bw"); // a = (agattr(g,AGEDGE,"style",NULL)); +UNSUPPORTED("2txt2q7rp21dx0sbl681klq05"); // agxset(e, a, "invis"); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("43dps2s0i0lx8ovced3n50ae7"); // if (neededge_device) { +UNSUPPORTED("5rsv582ie5yqsj5xbuuoiih3l"); // e = agedge(sg, renderer_n, device_n, NULL, 1); +UNSUPPORTED("52vrd3arfv8vio47p5o9el4bw"); // a = (agattr(g,AGEDGE,"style",NULL)); +UNSUPPORTED("2txt2q7rp21dx0sbl681klq05"); // agxset(e, a, "invis"); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("43w8fzyp2lxd8j9ml5y5dgdwk"); // if (textlayout_n) { +UNSUPPORTED("bxkq1pl2h9gjoa6dsiev9u5y9"); // e = agedge(sg, loadimage_n, textlayout_n, NULL, 1); +UNSUPPORTED("52vrd3arfv8vio47p5o9el4bw"); // a = (agattr(g,AGEDGE,"style",NULL)); +UNSUPPORTED("2txt2q7rp21dx0sbl681klq05"); // agxset(e, a, "invis"); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("duv0z9gkoklt1x38eez53jfmp"); // if (layout_n) { +UNSUPPORTED("exu5iyb4thidap90e10p6bchh"); // e = agedge(sg, loadimage_n, layout_n, NULL, 1); +UNSUPPORTED("52vrd3arfv8vio47p5o9el4bw"); // a = (agattr(g,AGEDGE,"style",NULL)); +UNSUPPORTED("2txt2q7rp21dx0sbl681klq05"); // agxset(e, a, "invis"); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8pdyobus2g8zf0grucggpdgu2"); // ssg = agsubg(g, "output_formats", 1); +UNSUPPORTED("3mxeulyjvwis2b09446ijgh1w"); // a = (agattr(ssg,AGRAPH,"rank",NULL)); +UNSUPPORTED("c5ime4x862kwcy2h623ikguda"); // agxset(ssg, a, "same"); +UNSUPPORTED("dxez6ixf69034ajdfut2rqeet"); // for (package = gvc->packages; package; package = package->next) { +UNSUPPORTED("1y0pkakd59jobmrnly5pe492d"); // strcpy(bufa, package->name); +UNSUPPORTED("f068fnelxn6otng4job1isiqk"); // strcat(bufa, "_"); +UNSUPPORTED("3uwc64reta96fsluddki1x02u"); // buf1 = bufa + strlen(bufa); +UNSUPPORTED("2481o7hqcvd95u8otj2xj8h7g"); // for (api = 0; api < (sizeof(api_names)/sizeof(api_names[0])); api++) { +UNSUPPORTED("7w6sj318auxb1nm6gij82t9ul"); // strcpy(buf1, api_names[api]); +UNSUPPORTED("afqb6io8t5c2jx4mvtyqo9m5l"); // strcat(buf1, "_"); +UNSUPPORTED("23a6yglzvhmu09en6w5u95vyl"); // buf2 = bufa + strlen(bufa); +UNSUPPORTED("anrt511ktu6c1ohrknoyj2epj"); // for (pnext = &(gvc->apis[api]); *pnext; pnext = &((*pnext)->next)) { +UNSUPPORTED("6dr25usep0b15n58ef6fu3oxm"); // if ((*pnext)->package == package) { +UNSUPPORTED("65b0l808fcuc6ypxzzjh66rbu"); // t = q = strdup((*pnext)->typestr); +UNSUPPORTED("ef0iev1i1soawhu10e9f16lwp"); // if ((p = strchr(q, ':'))) +UNSUPPORTED("13cb27lx5rvfloiy3u0m2ct8i"); // *p++ = '\0'; +UNSUPPORTED("79iuiybxt6jyodedjzurqwq8"); // /* Now p = renderer, e.g. "gd" +UNSUPPORTED("czck0qt486a81d5w4k2ecl36c"); // * and q = device, e.g. "png" +UNSUPPORTED("3r59dtblowlbzl2v8t7uspgsp"); // * or q = imageloader, e.g. "png" */ +UNSUPPORTED("3p4ns3y9z2pqqi59kyknbb3yg"); // /* hack for aliases */ +UNSUPPORTED("7w37ohsccjgvia3p6r6af8qcj"); // lq = q; +UNSUPPORTED("9njl6eyfqvys51resxaqqhpl9"); // if (!strncmp(q, "jp", 2)) { +UNSUPPORTED("ckfltz21pk0nwntjwuhpcke1h"); // q = "jpg"; /* canonical - for node name */ +UNSUPPORTED("7dwsfzj83wdllli75k9fyax4a"); // lq = "jpeg\\njpe\\njpg"; /* list - for label */ +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("64tfubc9gvf7840j3sh3u3zft"); // else if (!strncmp(q, "tif", 3)) { +UNSUPPORTED("3tdr550x3i9yczq94vlp3cjrr"); // q = "tif"; +UNSUPPORTED("4nf0ph2rmfboyseyzszz2qnzv"); // lq = "tiff\\ntif"; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("9p8e7eqshet4t7x2493ggtf3s"); // else if (!strcmp(q, "x11") || !strcmp(q, "xlib")) { +UNSUPPORTED("a3foiv0r7ajucfbmer64xxvnu"); // q = "x11"; +UNSUPPORTED("bmikkk8ek5dthuc6ppq9pdnb5"); // lq = "x11\\nxlib"; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("3gn9h8dqg7asoqu5wqsbumtsy"); // else if (!strcmp(q, "dot") || !strcmp(q, "gv")) { +UNSUPPORTED("bypbf1vtvkby1d6fgnvshw0ww"); // q = "gv"; +UNSUPPORTED("btvkzgly229sjva0l7i1ksx34"); // lq = "gv\\ndot"; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("vok0igs7eybz3wbqr8b9rd6d"); // switch (api) { +UNSUPPORTED("537u9j534djot38xzhef8kuw0"); // case API_device: +UNSUPPORTED("9vpx2ez7z7r7hmcnzanpuvuwl"); // strcpy(buf2, q); +UNSUPPORTED("6beg6steom1lipq49vms1n7pd"); // n = agnode(g, bufa, 1); +UNSUPPORTED("7cg1174hrklv6wp6m9rglukr1"); // strcpy(bufb, "output_"); +UNSUPPORTED("f33i9wwsaa2gqto7mi4m2qi2l"); // strcat(bufb, q); +UNSUPPORTED("5xz9n2ow5mdbsx7e6kzkzgiyr"); // m = (agnode(ssg,bufb,0)); +UNSUPPORTED("6aphvjhre5uyhw4g9kp9w2bcn"); // if (!m) { +UNSUPPORTED("e1lgc4753eph0h3sp977j717y"); // m = agnode(ssg, bufb, 1); +UNSUPPORTED("2f2dayxas7dqyzuuswa61003k"); // a = (agattr(g,AGNODE,"label",NULL)); +UNSUPPORTED("39s7fbve2dyhi4yveemthhkpq"); // agxset(m, a, lq); +UNSUPPORTED("el72qil7ij91mjxa8a5odjpyp"); // a = (agattr(g,AGNODE,"shape",NULL)); +UNSUPPORTED("9867goebe7qr58a2zc5kkcdal"); // agxset(m, a, "note"); +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("5w6ooc4z9lx3qipxam9fg1c40"); // e = (agedge(g,n,m,NULL,0)); +UNSUPPORTED("339jknwe6xhll69xqjj2cvcwb"); // if (!e) +UNSUPPORTED("anwjqr4qvhqt6105wrt0zl2s7"); // e = agedge(g, n, m, NULL, 1); +UNSUPPORTED("8bahgorvs584f9par6ha6lgv3"); // if (p && *p) { +UNSUPPORTED("2d8y9y4cc4hlzs9px4pfz8k55"); // strcpy(bufb, "render_"); +UNSUPPORTED("euk5d25u4dauhe1e7hro07l47"); // strcat(bufb, p); +UNSUPPORTED("170sjop64mtpzl82mcv9acoib"); // m = (agnode(ssg,bufb,0)); +UNSUPPORTED("1hxqs0bqqe653jp49plnovu1m"); // if (!m) +UNSUPPORTED("d1b3c5rl5aribzx1df92k1qio"); // m = agnode(g, bufb, 1); +UNSUPPORTED("3gq8hene8xn12nd3ipfn9ivrs"); // e = (agedge(g,m,n,NULL,0)); +UNSUPPORTED("b5y5e8gcqt9y6990olht7ytej"); // if (!e) +UNSUPPORTED("1ybtgtz7xpat58fa8p83pgv10"); // e = agedge(g, m, n, NULL, 1); +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("2ahk4ggyn6n91llpssccwrszr"); // case API_loadimage: +UNSUPPORTED("9vpx2ez7z7r7hmcnzanpuvuwl"); // strcpy(buf2, q); +UNSUPPORTED("6beg6steom1lipq49vms1n7pd"); // n = agnode(g, bufa, 1); +UNSUPPORTED("ant2irrvw28wcz7rf8gatnt2t"); // strcpy(bufb, "input_"); +UNSUPPORTED("f33i9wwsaa2gqto7mi4m2qi2l"); // strcat(bufb, q); +UNSUPPORTED("3vtn4ccxx1kkweolpg9szuvfq"); // m = (agnode(g,bufb,0)); +UNSUPPORTED("6aphvjhre5uyhw4g9kp9w2bcn"); // if (!m) { +UNSUPPORTED("e8owtqqc9tvhvg2wm849li9e1"); // m = agnode(g, bufb, 1); +UNSUPPORTED("2f2dayxas7dqyzuuswa61003k"); // a = (agattr(g,AGNODE,"label",NULL)); +UNSUPPORTED("39s7fbve2dyhi4yveemthhkpq"); // agxset(m, a, lq); +UNSUPPORTED("el72qil7ij91mjxa8a5odjpyp"); // a = (agattr(g,AGNODE,"shape",NULL)); +UNSUPPORTED("9867goebe7qr58a2zc5kkcdal"); // agxset(m, a, "note"); +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("bls5v8akxuv7z7dcvvkonfz30"); // e = (agedge(g,m,n,NULL,0)); +UNSUPPORTED("339jknwe6xhll69xqjj2cvcwb"); // if (!e) +UNSUPPORTED("7i9gsti37xh44rgzkpw7sr85n"); // e = agedge(g, m, n, NULL, 1); +UNSUPPORTED("cquipnholxdq7tu8j1n49bwra"); // strcpy(bufb, "render_"); +UNSUPPORTED("21c5axqrutv5e16vwe4vnaf6r"); // strcat(bufb, p); +UNSUPPORTED("3vtn4ccxx1kkweolpg9szuvfq"); // m = (agnode(g,bufb,0)); +UNSUPPORTED("bmno3kcacc6pk7z8jwcni8hqv"); // if (!m) +UNSUPPORTED("e8owtqqc9tvhvg2wm849li9e1"); // m = agnode(g, bufb, 1); +UNSUPPORTED("5w6ooc4z9lx3qipxam9fg1c40"); // e = (agedge(g,n,m,NULL,0)); +UNSUPPORTED("339jknwe6xhll69xqjj2cvcwb"); // if (!e) +UNSUPPORTED("anwjqr4qvhqt6105wrt0zl2s7"); // e = agedge(g, n, m, NULL, 1); +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("8qbfja4j8nk5tpqj2tov9bz7k"); // default: +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("96y712urx48a31tm7axlbked3"); // free(t); +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2syri7q5tc0jyvwq8ecyfo3vr"); // return g; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvrender__c.java plantuml-8039/src/gen/lib/gvc/gvrender__c.java --- plantuml-8024/src/gen/lib/gvc/gvrender__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvrender__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1597 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class gvrender__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 4cynie80t6jls6vhgs3jl2fit +// static pointf *AF + + +//1 9o8a3mexi9w7oq3wr7jtjcihk +// static int sizeAF + + + + +//3 9fduxdho8czelodj9h6y89ino +// int gvrender_select(GVJ_t * job, const char *str) +public static Object gvrender_select(Object... arg) { +UNSUPPORTED("8q2hci07ap2ph732vslggau4t"); // int gvrender_select(GVJ_t * job, const char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eyew5ay5wwktz4fysz0b78ugv"); // GVC_t *gvc = job->gvc; +UNSUPPORTED("5ssvxydvbzuxmb74t0hvdbmws"); // gvplugin_available_t *plugin; +UNSUPPORTED("9q2rkohjybr7oxouto8gnuzsb"); // gvplugin_installed_t *typeptr; +UNSUPPORTED("5s8ygazjg27yo5uwaw66w15r1"); // gvplugin_load(gvc, API_device, str); +UNSUPPORTED("ek4fyjg4ptxc2el4evmh805o1"); // /* When job is created, it is zeroed out. +UNSUPPORTED("3kefg2aeqsvm2d6dncfwpxsr8"); // * Some flags, such as OUTPUT_NOT_REQUIRED, may already be set, +UNSUPPORTED("9ez2btubxikj170dwe5jqvnof"); // * so don't reset. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("4tlui225yloqahoq9la8pzwy1"); // /* job->flags = 0; */ +UNSUPPORTED("76gynnjrs6xvbeb7wfpi1ev1l"); // plugin = gvc->api[API_device]; +UNSUPPORTED("3qzhu1d1ev2sbxdqyn2rujv5y"); // if (plugin) { +UNSUPPORTED("8cnmkxanogd09zc24faarugvo"); // typeptr = plugin->typeptr; +UNSUPPORTED("cx8hqrenucgiq5zy97oaqusmc"); // job->device.engine = (gvdevice_engine_t *) (typeptr->engine); +UNSUPPORTED("bm8s8c7aquf0i3erdxldrern4"); // job->device.features = (gvdevice_features_t *) (typeptr->features); +UNSUPPORTED("7tiv1ctzor8f6a193o9c3dc4"); // job->device.id = typeptr->id; +UNSUPPORTED("b3fa1nmh14yrlxh7u11av178h"); // job->device.type = plugin->typestr; +UNSUPPORTED("98gdwzzklfnnvl4rcrxln6ax5"); // job->flags |= job->device.features->flags; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("7kkm265fhqxbcvyb1tfbvlbg"); // return 999; /* FIXME - should differentiate problem */ +UNSUPPORTED("7f2ichmjy32bcdpzo6eam8v7t"); // /* The device plugin has a dependency on a render plugin, +UNSUPPORTED("cfcjkcl1s1689uqm7fm9yszr4"); // * so the render plugin should be available as well now */ +UNSUPPORTED("bu439zn5xm8jaz1bs1pxzp0dp"); // plugin = gvc->api[API_render]; +UNSUPPORTED("3qzhu1d1ev2sbxdqyn2rujv5y"); // if (plugin) { +UNSUPPORTED("8cnmkxanogd09zc24faarugvo"); // typeptr = plugin->typeptr; +UNSUPPORTED("7tt4s00k0osfiqwahwoff1agx"); // job->render.engine = (gvrender_engine_t *) (typeptr->engine); +UNSUPPORTED("669i3eyhmswim1vqxlgkovfrk"); // job->render.features = (gvrender_features_t *) (typeptr->features); +UNSUPPORTED("11cw3vs43482kobe5ny07nu35"); // job->render.type = plugin->typestr; +UNSUPPORTED("gnm8nzbq1sv2lxsg2d1aerng"); // job->flags |= job->render.features->flags; +UNSUPPORTED("243x5gphnardgbfaphg9njktu"); // if (job->device.engine) +UNSUPPORTED("5ptnbs646e5n7ko2ca57lk4x"); // job->render.id = typeptr->id; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("5sdmyjmm37n90aaenqcx0oknb"); // /* A null device engine indicates that the device id is also the renderer id +UNSUPPORTED("p1e1xenrya70i1wee5fqsrql"); // * and that the renderer doesn't need "device" functions. +UNSUPPORTED("787dp7rjt82811tj8dlkpb18e"); // * Device "features" settings are still available */ +UNSUPPORTED("e580tqo2v5qy1ecm6k2ep5hy9"); // job->render.id = job->device.id; +UNSUPPORTED("e2xl4ygmp65bn739zdpqbu0jq"); // return 300; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5868n9w3txgvuqjat3ibyfjdn"); // job->render.engine = NULL; +UNSUPPORTED("dnojigjj91bs3obtgs440c1pu"); // return 999; /* FIXME - should differentiate problem */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8r860ajsh90bfs4d0opfouak +// int gvrender_features(GVJ_t * job) +public static Object gvrender_features(Object... arg) { +UNSUPPORTED("1szoxv2gwujscwb7rnlygg91m"); // int gvrender_features(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("1vuliw37h78m972417wd4axpz"); // int features = 0; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("e5v22h9rlc1j09d58ivcttn9r"); // features = job->render.features->flags; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6dg3yx86pwrpwg0z9d4frxk3q"); // return features; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4h2luwpil87bs6pkf4f7qo2k9 +// int gvrender_begin_job(GVJ_t * job) +public static Object gvrender_begin_job(Object... arg) { +UNSUPPORTED("6ev0o0og4bywnq3aw32oauko3"); // int gvrender_begin_job(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("q4eshv98z33fert8lpher2vz"); // if (gvdevice_initialize(job)) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("9890blf35qwu47a330c2ge4nc"); // if (gvre->begin_job) +UNSUPPORTED("aep2cwbk720jnf13nui5zc4gn"); // gvre->begin_job(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3qmxnj1638ltgmhz0csgcpfjk +// void gvrender_end_job(GVJ_t * job) +public static Object gvrender_end_job(Object... arg) { +UNSUPPORTED("c841pljir2lr5bp3us608ghiq"); // void gvrender_end_job(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("52mw58ugr0a7omsyevqcshnls"); // if (gvre->end_job) +UNSUPPORTED("a8sk8cfwcv2mpv7g84p1g2zt4"); // gvre->end_job(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2dnat2dhr60k7lx6x7j868ccu"); // job->gvc->common.lib = NULL; /* FIXME - minimally this doesn't belong here */ +UNSUPPORTED("dql0bth0nzsrpiu9vnffonrhf"); // gvdevice_finalize(job); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 51309lo7u8y4alv899e4yqadk +// pointf gvrender_ptf(GVJ_t * job, pointf p) +public static Object gvrender_ptf(Object... arg) { +UNSUPPORTED("bvtfrro3td44g1j12ar1rdjpx"); // pointf gvrender_ptf(GVJ_t * job, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bkj6y2vx6eazaf4xct5yhf4t"); // pointf rv, translation, scale; +UNSUPPORTED("ayk9sbv0i0esapa28j5940syn"); // translation = job->translation; +UNSUPPORTED("5cwqynigwx0y1vbchhhtgvhwf"); // scale.x = job->zoom * job->devscale.x; +UNSUPPORTED("aencyok7qan341gowih0ppjxf"); // scale.y = job->zoom * job->devscale.y; +UNSUPPORTED("3h1yo631e2fq69mxwoggya716"); // if (job->rotation) { +UNSUPPORTED("7etz5b9vm8n98pkfmmehwqbnc"); // rv.x = -(p.y + translation.y) * scale.x; +UNSUPPORTED("3q08n8dxktpivul7bbze3tow2"); // rv.y = (p.x + translation.x) * scale.y; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("bxbzg3yd7725e95lwwjizgtmd"); // rv.x = (p.x + translation.x) * scale.x; +UNSUPPORTED("a7bvzlhyi51usu7oaeku8csk6"); // rv.y = (p.y + translation.y) * scale.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 crcyqn21mwz4omhozkd2cp4jc +// pointf *gvrender_ptf_A(GVJ_t * job, pointf * af, pointf * AF, int n) +public static Object gvrender_ptf_A(Object... arg) { +UNSUPPORTED("6s7dm40y4hhxw9cl6698x6qld"); // pointf *gvrender_ptf_A(GVJ_t * job, pointf * af, pointf * AF, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("6wfj8onzmd4ihhh62dqfmqpbx"); // double t; +UNSUPPORTED("djnewvgctvkpvlggbpw7lj1sc"); // pointf translation, scale; +UNSUPPORTED("ayk9sbv0i0esapa28j5940syn"); // translation = job->translation; +UNSUPPORTED("5cwqynigwx0y1vbchhhtgvhwf"); // scale.x = job->zoom * job->devscale.x; +UNSUPPORTED("aencyok7qan341gowih0ppjxf"); // scale.y = job->zoom * job->devscale.y; +UNSUPPORTED("3h1yo631e2fq69mxwoggya716"); // if (job->rotation) { +UNSUPPORTED("7lppn4o65696k131iftk9aihq"); // for (i = 0; i < n; i++) { +UNSUPPORTED("8inojmsrqrgmcgv4lgjntmk1p"); // t = -(af[i].y + translation.y) * scale.x; +UNSUPPORTED("1tkzeyviyufhxywvbfka8jbq7"); // AF[i].y = (af[i].x + translation.x) * scale.y; +UNSUPPORTED("d7d03owzn12m66ymdf5730kj0"); // AF[i].x = t; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("7lppn4o65696k131iftk9aihq"); // for (i = 0; i < n; i++) { +UNSUPPORTED("6tyixk0bh3dd1yv33d4y93jjz"); // AF[i].x = (af[i].x + translation.x) * scale.x; +UNSUPPORTED("cs1v590y88hqekl0xoh3y093u"); // AF[i].y = (af[i].y + translation.y) * scale.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1mnc0qamisdd62ud5dfotjxss"); // return AF; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d0k7jgvawtauln88of22iuy40 +// static int gvrender_comparestr(const void *s1, const void *s2) +public static Object gvrender_comparestr(Object... arg) { +UNSUPPORTED("b9vqnpfss55985u1jx9mhx1ss"); // static int gvrender_comparestr(const void *s1, const void *s2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1d9rfce1ndx9322h0frb0z98p"); // return strcmp(*(char **) s1, *(char **) s2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 93cbs4byyecjhyq5vu6p19p57 +// static void gvrender_resolve_color(gvrender_features_t * features, char *name, gvcolor_t * color) +public static Object gvrender_resolve_color(Object... arg) { +UNSUPPORTED("3knci4gywmc6hb9ujch5j3e9a"); // static void gvrender_resolve_color(gvrender_features_t * features, +UNSUPPORTED("aiwlhbymjioyoqr6cp2hw7ukv"); // char *name, gvcolor_t * color) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eqt7m58ywry2anaa5wpii01ri"); // char *tok; +UNSUPPORTED("1bh3yj957he6yv2dkeg4pzwdk"); // int rc; +UNSUPPORTED("ety8bdkhij0jyjwrsxks5sz02"); // color->u.string = name; +UNSUPPORTED("30asoip27omoa1yx0rv9iuutk"); // color->type = COLOR_STRING; +UNSUPPORTED("dxlu1039n9c20pueltjind8cy"); // tok = canontoken(name); +UNSUPPORTED("dbrv2omaxn2z4bi8k1tjkgbyl"); // if (!features->knowncolors +UNSUPPORTED("8s9kvd9phxubwfikx5wl2o4eb"); // || +UNSUPPORTED("ewkhu0md9r3wkfof3k37k1a4e"); // (bsearch +UNSUPPORTED("7nf6yu4m9s7f9lckxs7vo9v1f"); // (&tok, features->knowncolors, features->sz_knowncolors, +UNSUPPORTED("gms28vfgml0rul9gi006ety8"); // sizeof(char *), gvrender_comparestr)) == NULL) { +UNSUPPORTED("9nqwxnnz5dxy6h3ij9eovzt8g"); // /* if tok was not found in known_colors */ +UNSUPPORTED("dtlh659rjk09rfjgy14jyed67"); // rc = colorxlate(name, color, features->color_type); +UNSUPPORTED("ext4y0w1v77cxnsn9odfd3hh0"); // if (rc != 0) { +UNSUPPORTED("2wu9auf85lz824gtt1h6w6ev0"); // if (rc == 1) { +UNSUPPORTED("avvvne4m4cq0vl2trvdvdg2x6"); // char *missedcolor = gmalloc(strlen(name) + 16); +UNSUPPORTED("22z3pxv0m8em81soozhhrokv0"); // sprintf(missedcolor, "color %s", name); +UNSUPPORTED("cvqbzc6txkpe2jyy2mhmrh12i"); // if (emit_once(missedcolor)) +UNSUPPORTED("6mde88389r3jhseiz163208n6"); // agerr(AGWARN, "%s is not a known color.\n", name); +UNSUPPORTED("9e5cs6q89hrxxe32ywke5xd0i"); // free(missedcolor); +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("627apvfea14p6eh91bth30ke"); // agerr(AGERR, "error in colxlate()\n"); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8bz32mh1b67dm7onb98cukhr +// void gvrender_begin_graph(GVJ_t * job, graph_t * g) +public static Object gvrender_begin_graph(Object... arg) { +UNSUPPORTED("8niigqov4bujqwwvqrq6qkfp"); // void gvrender_begin_graph(GVJ_t * job, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1afe6q2gmnv35uj22aogbg2gh"); // /* GVC_t *gvc = job->gvc; */ +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("62zv37oupg2zeqb8cv4j3mqf0"); // /* char *s; */ +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("3u2mk914st9v3rc5z2iyvnj9k"); // /* render specific init */ +UNSUPPORTED("12nyq1yot2zd8pg8a198tiw9c"); // if (gvre->begin_graph) +UNSUPPORTED("ccy204j05mtzfr44lugx3pslo"); // gvre->begin_graph(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 65xsy2npcrn2bagmq96hoplmc +// void gvrender_end_graph(GVJ_t * job) +public static Object gvrender_end_graph(Object... arg) { +UNSUPPORTED("e845mtmabap40x91drpi98rgb"); // void gvrender_end_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("47tlf516sc8wywg2atz9mut2v"); // if (gvre->end_graph) +UNSUPPORTED("7gu26oojajmet9zp3zbbf8xbl"); // gvre->end_graph(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3z3ed5jhwlihctmb5fr24wahu"); // gvdevice_format(job); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4ptkpos0d265xcx36yp5olziv +// void gvrender_begin_page(GVJ_t * job) +public static Object gvrender_begin_page(Object... arg) { +UNSUPPORTED("dk9dqgxupw4tns0blo563bw3"); // void gvrender_begin_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("3ojiwmme99huqifioqypnkdu"); // if (gvre->begin_page) +UNSUPPORTED("4rds4n8ynzo8bstdc56wcaq67"); // gvre->begin_page(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2neje7ddfin73he2004jok2oq +// void gvrender_end_page(GVJ_t * job) +public static Object gvrender_end_page(Object... arg) { +UNSUPPORTED("60qwktj4d3u2lx6w9ya7x2ll5"); // void gvrender_end_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("bbvge1xpf3csvsgdquklh64wz"); // if (gvre->end_page) +UNSUPPORTED("6epuiije9k0po6zbf1wuiv0m"); // gvre->end_page(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bjs8uuw252trlu14ei8bzbsvr +// void gvrender_begin_layer(GVJ_t * job) +public static Object gvrender_begin_layer(Object... arg) { +UNSUPPORTED("73q54jv3dls7oji2nnpvn4jkf"); // void gvrender_begin_layer(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("i2jio5waiow93ulk6mqogx07"); // if (gvre->begin_layer) +UNSUPPORTED("979u6s95uq3clnd96s3uo2807"); // gvre->begin_layer(job, job->gvc->layerIDs[job->layerNum], +UNSUPPORTED("bw05jjansbpeswe4ktw01i6j6"); // job->layerNum, job->numLayers); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 401dx8s3fwrxydg3x6alimmby +// void gvrender_end_layer(GVJ_t * job) +public static Object gvrender_end_layer(Object... arg) { +UNSUPPORTED("9ae3jsve0v8yslvoyx3pnlacr"); // void gvrender_end_layer(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("4vk85i8m93l7fxj6a38e1fcqx"); // if (gvre->end_layer) +UNSUPPORTED("4susivxkhmdvvydg2r87cakmo"); // gvre->end_layer(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 27poq9moik2l4d2chmxas8rm1 +// void gvrender_begin_cluster(GVJ_t * job, graph_t * sg) +public static Object gvrender_begin_cluster(Object... arg) { +UNSUPPORTED("r4znhjms3ot7kcrhcixet65f"); // void gvrender_begin_cluster(GVJ_t * job, graph_t * sg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("cj1dczwhpa0r63wls9ra640q7"); // if (gvre->begin_cluster) +UNSUPPORTED("5lz5n1eutzyea7yee250561oi"); // gvre->begin_cluster(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1eapbz6ecf0g6kdtqu28czes2 +// void gvrender_end_cluster(GVJ_t * job, graph_t * g) +public static Object gvrender_end_cluster(Object... arg) { +UNSUPPORTED("dd5abixfui8mnp71zqvuj59qz"); // void gvrender_end_cluster(GVJ_t * job, graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("25ikbftyuamzhvmocbqm27sir"); // if (gvre->end_cluster) +UNSUPPORTED("b3jrm6ybfvymn6zj4mdz97vu"); // gvre->end_cluster(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c19ss30f97hmgqtzuxhn0qwys +// void gvrender_begin_nodes(GVJ_t * job) +public static Object gvrender_begin_nodes(Object... arg) { +UNSUPPORTED("97cjt43wnlxgia92a6tk59ud0"); // void gvrender_begin_nodes(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("vylx62m32dzueggujf0nyjtx"); // if (gvre->begin_nodes) +UNSUPPORTED("au32m8j1o2erzrxm0k27uf4mx"); // gvre->begin_nodes(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eyo9qxxkb76cgbq7a8ojrxnic +// void gvrender_end_nodes(GVJ_t * job) +public static Object gvrender_end_nodes(Object... arg) { +UNSUPPORTED("9wdm2tj0803fr2xaj6p5xftvn"); // void gvrender_end_nodes(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("4zv75v2c0kmbs38j0c97u4dwl"); // if (gvre->end_nodes) +UNSUPPORTED("5cuhpzbv9lqn4aq0gwyo2ye82"); // gvre->end_nodes(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bevetts9ovmaou0v5l9i1aq5 +// void gvrender_begin_edges(GVJ_t * job) +public static Object gvrender_begin_edges(Object... arg) { +UNSUPPORTED("1alfkafh1xx3y2k9ujca26ii1"); // void gvrender_begin_edges(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("lnm2jgz2nptqnahuln8bs898"); // if (gvre->begin_edges) +UNSUPPORTED("7kjkdeb3sqzw19x4k66d6hjck"); // gvre->begin_edges(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 35426mu8gpbqgoc6qh9q4c1xo +// void gvrender_end_edges(GVJ_t * job) +public static Object gvrender_end_edges(Object... arg) { +UNSUPPORTED("2z8hgdz7ckm5uvm5dk09ytuix"); // void gvrender_end_edges(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("1pwokcd6d4pph0uv4ob0v2ayz"); // if (gvre->end_edges) +UNSUPPORTED("45wdv8q1q1h4ql4iu7j2zfw3"); // gvre->end_edges(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d5gj3gg608fp9k43jzb4ts4xb +// void gvrender_begin_node(GVJ_t * job, node_t * n) +public static Object gvrender_begin_node(Object... arg) { +UNSUPPORTED("cqhiq3ed9f6eu8n3045t48fno"); // void gvrender_begin_node(GVJ_t * job, node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("9hw2jrhsnzuh99o0dwa7w2t46"); // if (gvre->begin_node) +UNSUPPORTED("2tnqnm5tlwv327095ukix5mkz"); // gvre->begin_node(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 avfb2baedlecrkfbow9cxrpj8 +// void gvrender_end_node(GVJ_t * job) +public static Object gvrender_end_node(Object... arg) { +UNSUPPORTED("cx7wx0qonl1fg8sktpbann4v7"); // void gvrender_end_node(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("bmg00d8fks4epb7d1z151ujes"); // if (gvre->end_node) +UNSUPPORTED("7yw45ob7vq7hv1816oawtvnaw"); // gvre->end_node(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e2uj2wkgme6qb2iw67xtnj76 +// void gvrender_begin_edge(GVJ_t * job, edge_t * e) +public static Object gvrender_begin_edge(Object... arg) { +UNSUPPORTED("92wxdxnrq7ym6oxa8ncnte8yx"); // void gvrender_begin_edge(GVJ_t * job, edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("bpy6xdkxvnktpvt4ng837tqpv"); // if (gvre->begin_edge) +UNSUPPORTED("zj6g2pof9uhapm6bxydrx8fq"); // gvre->begin_edge(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dmjwy0x5f2ylehrl4asephmu +// void gvrender_end_edge(GVJ_t * job) +public static Object gvrender_end_edge(Object... arg) { +UNSUPPORTED("503mqi542lcqpbzcar48yjzca"); // void gvrender_end_edge(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("1esg5a3gkxrmgs5zvdu795q7x"); // if (gvre->end_edge) +UNSUPPORTED("eu84oc9h3jhmhc6v1kbvxatlo"); // gvre->end_edge(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a3oxjcx4pit0tlwvqrj5pjgla +// void gvrender_begin_anchor(GVJ_t * job, char *href, char *tooltip, char *target, char *id) +public static Object gvrender_begin_anchor(Object... arg) { +UNSUPPORTED("t7nw5oeaewb5af8soqhimjf8"); // void gvrender_begin_anchor(GVJ_t * job, char *href, char *tooltip, +UNSUPPORTED("ca2v6kkbpi770n597h24tagaa"); // char *target, char *id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("auez010xhho0xcap2ycz9lju2"); // if (gvre->begin_anchor) +UNSUPPORTED("9272f1ryutzdz60cexops6mrp"); // gvre->begin_anchor(job, href, tooltip, target, id); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 939xwaginerexczl0cmv7ihe2 +// void gvrender_end_anchor(GVJ_t * job) +public static Object gvrender_end_anchor(Object... arg) { +UNSUPPORTED("bcd3uehiopd66fbezppgae2dt"); // void gvrender_end_anchor(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("a91isqnl1vm4eci36n2n4cbaj"); // if (gvre->end_anchor) +UNSUPPORTED("5qppuiae51yhbsfdv0frgywun"); // gvre->end_anchor(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8hno79twchywwcg8nsufipda9 +// void gvrender_begin_label(GVJ_t * job, label_type type) +public static Object gvrender_begin_label(Object... arg) { +UNSUPPORTED("4flxiegpywb83nvqdngss5inv"); // void gvrender_begin_label(GVJ_t * job, label_type type) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("1jmpi9g9tuv3h494cpncqbeby"); // if (gvre->begin_label) +UNSUPPORTED("dnncmlhww1v0s5m19zpp1ayrx"); // gvre->begin_label(job, type); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 33lmy7dfx78r3jdoiq6vipmbf +// void gvrender_end_label(GVJ_t * job) +public static Object gvrender_end_label(Object... arg) { +UNSUPPORTED("962k3bif0rr2lxaitbmcqqgap"); // void gvrender_end_label(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("ywfznc4r5iq2ztfi831qudip"); // if (gvre->end_label) +UNSUPPORTED("dpb1dlhljjzdlysacyo5qge5w"); // gvre->end_label(job); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2n07hv6i7ifhafigqmh9hjs41 +// void gvrender_textspan(GVJ_t * job, pointf p, textspan_t * span) +public static Object gvrender_textspan(Object... arg) { +UNSUPPORTED("c11fz6lbqdebdh90bo51ypv2b"); // void gvrender_textspan(GVJ_t * job, pointf p, textspan_t * span) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("7dzn9x60phgi2716c3utq7okm"); // pointf PF; +UNSUPPORTED("76pnbk0msbwxf3hexhq42v5l3"); // if (span->str && span->str[0] +UNSUPPORTED("avci39h8hze5k7sgd2z1e5ut6"); // && (!job->obj /* because of xdgen non-conformity */ +UNSUPPORTED("95huo314k0dtj3gzujngpxav9"); // || job->obj->pen != PEN_NONE)) { +UNSUPPORTED("dbbj4xbqmojh658txgt6nut8a"); // if (job->flags & (1<<13)) +UNSUPPORTED("1lpccyww1zgpiec5mn5cvykxo"); // PF = p; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("7gbtmnftt2mwo238ttx5dn8tk"); // PF = gvrender_ptf(job, p); +UNSUPPORTED("43ewa06mslfnjci1b1imd77l"); // if (gvre) { +UNSUPPORTED("e62o0l6l0i86ux0dps9h9e1p5"); // if (gvre->textspan) +UNSUPPORTED("bffevstxgixicve9h9ysw8iox"); // gvre->textspan(job, PF, span); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3ip6dcdve8gi3behn0lnxf9ii +// void gvrender_set_pencolor(GVJ_t * job, char *name) +public static Object gvrender_set_pencolor(Object... arg) { +UNSUPPORTED("4ke4p18hmuf4dn24qbbac7tsw"); // void gvrender_set_pencolor(GVJ_t * job, char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dkx0mdb9is3arqebifuxxgail"); // gvcolor_t *color = &(job->obj->pencolor); +UNSUPPORTED("7qm0rh822k1sczzlqrrqvbs2x"); // char *cp = NULL; +UNSUPPORTED("9of4r30ug3z0b20d8j12e3pnk"); // if ((cp = strstr(name, ":"))) /* if its a color list, then use only first */ +UNSUPPORTED("cbuf05ko7kaxq2n9zw35l5v2h"); // *cp = '\0'; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("71y1xk8zhlqbr7ljk4xi6j2x"); // gvrender_resolve_color(job->render.features, name, color); +UNSUPPORTED("80xcpwmaq0yeai2wwkv3ipjd8"); // if (gvre->resolve_color) +UNSUPPORTED("5skt8kbpasgr6oei3cw53lrw3"); // gvre->resolve_color(job, color); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3h7ovb03mv53jkj4z79mdiv0m"); // if (cp) /* restore color list */ +UNSUPPORTED("971i954brvgqb35cftazlqhon"); // *cp = ':'; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d1se1bjsc3m7jbhugf98bvdsy +// void gvrender_set_fillcolor(GVJ_t * job, char *name) +public static Object gvrender_set_fillcolor(Object... arg) { +UNSUPPORTED("5r7oj4opkrxunyrvpxbz9eucg"); // void gvrender_set_fillcolor(GVJ_t * job, char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("eh9bysmovke6e9iezr0onfsif"); // gvcolor_t *color = &(job->obj->fillcolor); +UNSUPPORTED("7qm0rh822k1sczzlqrrqvbs2x"); // char *cp = NULL; +UNSUPPORTED("9of4r30ug3z0b20d8j12e3pnk"); // if ((cp = strstr(name, ":"))) /* if its a color list, then use only first */ +UNSUPPORTED("cbuf05ko7kaxq2n9zw35l5v2h"); // *cp = '\0'; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("71y1xk8zhlqbr7ljk4xi6j2x"); // gvrender_resolve_color(job->render.features, name, color); +UNSUPPORTED("80xcpwmaq0yeai2wwkv3ipjd8"); // if (gvre->resolve_color) +UNSUPPORTED("5skt8kbpasgr6oei3cw53lrw3"); // gvre->resolve_color(job, color); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5nbgkqw34assnwmypil321sqd"); // if (cp) +UNSUPPORTED("971i954brvgqb35cftazlqhon"); // *cp = ':'; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bq4b7phujqc961e7ziqipopma +// void gvrender_set_gradient_vals (GVJ_t * job, char *stopcolor, int angle, float frac) +public static Object gvrender_set_gradient_vals(Object... arg) { +UNSUPPORTED("3y1lob8nc9d6kylff8slmrvt6"); // void gvrender_set_gradient_vals (GVJ_t * job, char *stopcolor, int angle, float frac) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("4wb9uleub62gq1lleh0uzvdvk"); // gvcolor_t *color = &(job->obj->stopcolor); +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("ba71q0eh93yuaf62z4gj4v16l"); // gvrender_resolve_color(job->render.features, stopcolor, color); +UNSUPPORTED("80xcpwmaq0yeai2wwkv3ipjd8"); // if (gvre->resolve_color) +UNSUPPORTED("5skt8kbpasgr6oei3cw53lrw3"); // gvre->resolve_color(job, color); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4g6prg2786ftm2i5xccm96e6h"); // job->obj->gradient_angle = angle; +UNSUPPORTED("6l998scnzlh9f2me8u596k5zd"); // job->obj->gradient_frac = frac; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2lnvbc2ahvd0talu9x7r9dqgb +// void gvrender_set_style(GVJ_t * job, char **s) +public static Object gvrender_set_style(Object... arg) { +UNSUPPORTED("ed6tqrjoo4liy9duowya74n8d"); // void gvrender_set_style(GVJ_t * job, char **s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("cc0bdchuthy63n23oh854p3ir"); // char *line, *p; +UNSUPPORTED("8hqsf9nh2ybldgbnnk3bcmu"); // obj->rawstyle = s; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("equxj86ju7dkcxy7wefz8l6u5"); // if (s) +UNSUPPORTED("bnw5es8qe45nr5yp9tz6z7a3e"); // while ((p = line = *s++)) { +UNSUPPORTED("7qpijbh4ybhl6fxaftd0sfork"); // if ((*(line)==*("solid")&&!strcmp(line,"solid"))) +UNSUPPORTED("6hud8gwtkg3zahe2ua4hq83ij"); // obj->pen = PEN_SOLID; +UNSUPPORTED("6bwanlgbxst8bc2cv0xzbbsud"); // else if ((*(line)==*("dashed")&&!strcmp(line,"dashed"))) +UNSUPPORTED("95srmeof6k7hfybaw6p7dyc3n"); // obj->pen = PEN_DASHED; +UNSUPPORTED("8v6hgllyohdu38fmfn5gwk1gs"); // else if ((*(line)==*("dotted")&&!strcmp(line,"dotted"))) +UNSUPPORTED("3kl1lutns4cz2ild0sz1xh16q"); // obj->pen = PEN_DOTTED; +UNSUPPORTED("4l94fr7n2phccurat8ysgwqio"); // else if ((*(line)==*("invis")&&!strcmp(line,"invis")) || (*(line)==*("invisible")&&!strcmp(line,"invisible"))) +UNSUPPORTED("ac76fwv7t6jv1nljbublzljmb"); // obj->pen = PEN_NONE; +UNSUPPORTED("aqx8ac8quxag6xil6wuavvi5a"); // else if ((*(line)==*("bold")&&!strcmp(line,"bold"))) +UNSUPPORTED("acx11t55moi09ri1211mh10m8"); // obj->penwidth = 2.; +UNSUPPORTED("emw5dlagymi75sor2qr0cg7vd"); // else if ((*(line)==*("setlinewidth")&&!strcmp(line,"setlinewidth"))) { +UNSUPPORTED("8on9zstcjf8x7vnxo0ruhe15f"); // while (*p) +UNSUPPORTED("kqo5b69i4k26e6iv18175dju"); // p++; +UNSUPPORTED("6vkekzy7fxtvws16bdbx2yyp0"); // p++; +UNSUPPORTED("b78whm1hkisnpr9ue88h9s6mp"); // obj->penwidth = atof(p); +UNSUPPORTED("901ar3u82oxx2edwzx67af916"); // } else if ((*(line)==*("filled")&&!strcmp(line,"filled"))) +UNSUPPORTED("al7f421nliq8cp8umch5g84id"); // obj->fill = FILL_SOLID; +UNSUPPORTED("2c0o9j23cvx64elo52vn5fa55"); // else if ((*(line)==*("unfilled")&&!strcmp(line,"unfilled"))) +UNSUPPORTED("4rogmkrrzxs6f7jpqzituon7h"); // obj->fill = FILL_NONE; +UNSUPPORTED("afqdk2t3k49ax3yr996td7xij"); // else if ((*(line)==*("tapered")&&!strcmp(line,"tapered"))); +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("3f0u3cjz549lwgnkj0rlfv6rv"); // agerr(AGWARN, +UNSUPPORTED("2qw622u36zt4xp5de28umz71p"); // "gvrender_set_style: unsupported style %s - ignoring\n", +UNSUPPORTED("c417iw9xyayechno2h2gtkidk"); // line); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eyxsx2an9nibgyxoozqxipc50 +// void gvrender_ellipse(GVJ_t * job, pointf * pf, int n, int filled) +public static Object gvrender_ellipse(Object... arg) { +UNSUPPORTED("7id4bcj5ex7dkq7nf2sjxqkxy"); // void gvrender_ellipse(GVJ_t * job, pointf * pf, int n, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("d33a6zjcnxa56avpwpfci03w0"); // if (gvre->ellipse && job->obj->pen != PEN_NONE) { +UNSUPPORTED("5ee29opjv6aldntaubhxveste"); // pointf af[2]; +UNSUPPORTED("ezddcbil3k2vpgi3937t190vg"); // /* center */ +UNSUPPORTED("eqotgr25by5valy10q8yrlto3"); // af[0].x = (pf[0].x + pf[1].x) / 2.; +UNSUPPORTED("7gk0lclx0jgwhwg64fctmcyuw"); // af[0].y = (pf[0].y + pf[1].y) / 2.; +UNSUPPORTED("1x05c1xvw0f812ervsc5c1db7"); // /* corner */ +UNSUPPORTED("9lxv0dip7ojewgkwaldenpvat"); // af[1] = pf[1]; +UNSUPPORTED("4hpouh4g99lqypvfaulobxe1q"); // if (!(job->flags & (1<<13))) +UNSUPPORTED("b0ame3q1wj0xu1ddafxmv61r6"); // gvrender_ptf_A(job, af, af, 2); +UNSUPPORTED("ecg6t40fcec9tuaidvse5o9k7"); // gvre->ellipse(job, af, filled); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 yp8iozq6mdutn12n5clinpsw +// void gvrender_polygon(GVJ_t * job, pointf * af, int n, int filled) +public static Object gvrender_polygon(Object... arg) { +UNSUPPORTED("bv02ljcfrzola6maqr6v7beev"); // void gvrender_polygon(GVJ_t * job, pointf * af, int n, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7etlb9y79uddlra5j9bq7hjy0"); // int noPoly = 0; +UNSUPPORTED("6wlq83bksy1dlfrxo5oqh3qfg"); // gvcolor_t save_pencolor; +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("4dvbzlf9ofw1sbr0kinbiopjy"); // if (gvre->polygon && job->obj->pen != PEN_NONE) { +UNSUPPORTED("3c069bec725soy1ddur2lmx88"); // if (filled & 4) { +UNSUPPORTED("drtmij0csvtkvgrbk1yqdr04x"); // noPoly = 1; +UNSUPPORTED("8fyh7hf01mlybwcrx096jx0g9"); // filled &= ~4; +UNSUPPORTED("54l2vwy7bed4cbytx05i897io"); // save_pencolor = job->obj->pencolor; +UNSUPPORTED("3sjiewne1u0xvr0lijo4fsj4r"); // job->obj->pencolor = job->obj->fillcolor; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("axkfudcbukjknssqlc19up4oj"); // if (job->flags & (1<<13)) +UNSUPPORTED("dtcn338f4dw09aoxz62631sqw"); // gvre->polygon(job, af, n, filled); +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("4bjezvz1si20bgioa75ow050b"); // if (sizeAF < n) { +UNSUPPORTED("6uvcrsm6kp84s8ocym7dub4f"); // sizeAF = n + 10; +UNSUPPORTED("bq7cfbgsgn87xeot78xdy9ui5"); // AF = grealloc(AF, sizeAF * sizeof(pointf)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("8uevq5szpmt24ikijexgharm4"); // gvrender_ptf_A(job, af, AF, n); +UNSUPPORTED("6lcl4fwte735kt1go13ybqeh"); // gvre->polygon(job, AF, n, filled); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("w9ool8zsr5xhadzpe15wbg2s"); // if (noPoly) +UNSUPPORTED("4n90uzffapw0hn5othv0zrbi3"); // job->obj->pencolor = save_pencolor; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 887zxc7xkpuux75pyddc0t2sm +// void gvrender_box(GVJ_t * job, boxf B, int filled) +public static Object gvrender_box(Object... arg) { +UNSUPPORTED("e0bwh5wg4tq95uckdyef5xzub"); // void gvrender_box(GVJ_t * job, boxf B, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ctvmenh2xwttzvzv2mrj2pizl"); // pointf A[4]; +UNSUPPORTED("ayegu4zx75rk1lklks1prb14u"); // A[0] = B.LL; +UNSUPPORTED("blhtdvdu48mofhgnuwowogpyp"); // A[2] = B.UR; +UNSUPPORTED("ef7fxzoqydqv1nwffgjbuf1sd"); // A[1].x = A[0].x; +UNSUPPORTED("eszwoyo2gnla64vngjy3z1q3v"); // A[1].y = A[2].y; +UNSUPPORTED("egya9mjzieml8yqx2caonmq6e"); // A[3].x = A[2].x; +UNSUPPORTED("2oe4fg2nwhsb5dalpz4mg5nbn"); // A[3].y = A[0].y; +UNSUPPORTED("3zlnq8g9z7psgb93ljeinqwcs"); // gvrender_polygon(job, A, 4, filled); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3ob8x7840dyx76jqhumocvdr6 +// void gvrender_beziercurve(GVJ_t * job, pointf * af, int n, int arrow_at_start, int arrow_at_end, boolean filled) +public static Object gvrender_beziercurve(Object... arg) { +UNSUPPORTED("9vork9t9rxekftwoe2b4co51v"); // void gvrender_beziercurve(GVJ_t * job, pointf * af, int n, +UNSUPPORTED("3xhx7uex1gp1o3nnsoocvsyif"); // int arrow_at_start, int arrow_at_end, +UNSUPPORTED("275qles1p1xn7ecqbi8gds0jt"); // boolean filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("54lpmghvciyi7cdmsm6wqq3yc"); // if (gvre->beziercurve && job->obj->pen != PEN_NONE) { +UNSUPPORTED("axkfudcbukjknssqlc19up4oj"); // if (job->flags & (1<<13)) +UNSUPPORTED("52u47z983op39vd0d6yprfpi7"); // gvre->beziercurve(job, af, n, arrow_at_start, arrow_at_end, +UNSUPPORTED("4oaa7hd9zzxozaff0cbix2kmp"); // filled); +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("4bjezvz1si20bgioa75ow050b"); // if (sizeAF < n) { +UNSUPPORTED("6uvcrsm6kp84s8ocym7dub4f"); // sizeAF = n + 10; +UNSUPPORTED("bq7cfbgsgn87xeot78xdy9ui5"); // AF = grealloc(AF, sizeAF * sizeof(pointf)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("8uevq5szpmt24ikijexgharm4"); // gvrender_ptf_A(job, af, AF, n); +UNSUPPORTED("ai7qtqrnw5vcq4jpskv8mtnvw"); // gvre->beziercurve(job, AF, n, arrow_at_start, arrow_at_end, +UNSUPPORTED("4oaa7hd9zzxozaff0cbix2kmp"); // filled); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3b7i3jvz34m0h6yog8k2fvyfd +// void gvrender_polyline(GVJ_t * job, pointf * af, int n) +public static Object gvrender_polyline(Object... arg) { +UNSUPPORTED("aeof52u6j3ibwxck6m4wrrivp"); // void gvrender_polyline(GVJ_t * job, pointf * af, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("bn4y0nlsh3umgedtpmscc5c9f"); // if (gvre->polyline && job->obj->pen != PEN_NONE) { +UNSUPPORTED("axkfudcbukjknssqlc19up4oj"); // if (job->flags & (1<<13)) +UNSUPPORTED("2vlnksg14jlxy4qyvzmm0zim1"); // gvre->polyline(job, af, n); +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("4bjezvz1si20bgioa75ow050b"); // if (sizeAF < n) { +UNSUPPORTED("6uvcrsm6kp84s8ocym7dub4f"); // sizeAF = n + 10; +UNSUPPORTED("bq7cfbgsgn87xeot78xdy9ui5"); // AF = grealloc(AF, sizeAF * sizeof(pointf)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("8uevq5szpmt24ikijexgharm4"); // gvrender_ptf_A(job, af, AF, n); +UNSUPPORTED("1gvnhkj77n4ypjiwq1fqxtgp8"); // gvre->polyline(job, AF, n); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 blnfx50nrebk4gjfqqnn4rm7f +// void gvrender_comment(GVJ_t * job, char *str) +public static Object gvrender_comment(Object... arg) { +UNSUPPORTED("b17bq37munzsdb5wh62le6aje"); // void gvrender_comment(GVJ_t * job, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("5r4zhowru1r7j2yc1tquc5n8c"); // if (!str || !str[0]) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("2alwhjzc47rg93cqdi01wfpgm"); // if (gvre->comment) +UNSUPPORTED("et94lf5x9gl8pdspb3jo8s9mg"); // gvre->comment(job, str); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 93prcj5sag4lfc8a5sb2wmsd +// static imagescale_t get_imagescale(char *s) +public static Object get_imagescale(Object... arg) { +UNSUPPORTED("1txzuoketj9nchn3z70fng5v3"); // static imagescale_t get_imagescale(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ajfjfii8vpjbquxmivdtxeg2b"); // if (*s == '\0') +UNSUPPORTED("2coe29ec3wsegxx4gdv5m2kkd"); // return IMAGESCALE_FALSE; +UNSUPPORTED("5yk4xjth2k279fyki9bkfr66x"); // if (!strcasecmp(s, "width")) +UNSUPPORTED("3lu8ftn55h0wldfqo68xgloi7"); // return IMAGESCALE_WIDTH; +UNSUPPORTED("92jzx9kaxuoztwbek5hyxzzuz"); // if (!strcasecmp(s, "height")) +UNSUPPORTED("bu03yyk0qldvbb0ods2x4yawd"); // return IMAGESCALE_HEIGHT; +UNSUPPORTED("28h8fykjn40nqnrw5vahnfaq4"); // if (!strcasecmp(s, "both")) +UNSUPPORTED("kkh6e6r11wcdirsr594y1di"); // return IMAGESCALE_BOTH; +UNSUPPORTED("8gusbxecihttgbvw2nehw572g"); // if (mapbool(s)) +UNSUPPORTED("bikcgjnvqb6lez1cpnd544oim"); // return IMAGESCALE_TRUE; +UNSUPPORTED("42n71z3o7xthvr2pah8c8u3lw"); // return IMAGESCALE_FALSE; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 pi86b4slwqam0a1xxdq0xdf0 +// void gvrender_usershape(GVJ_t * job, char *name, pointf * a, int n, boolean filled, char *imagescale) +public static Object gvrender_usershape(Object... arg) { +UNSUPPORTED("6rpcjgqcfwaiwqvb418x8kokh"); // void gvrender_usershape(GVJ_t * job, char *name, pointf * a, int n, +UNSUPPORTED("8jff0dyonsdk8syp7l4ev2bet"); // boolean filled, char *imagescale) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("exneoozy5g8al0a8y6fxb88zv"); // usershape_t *us; +UNSUPPORTED("55qv67frd38p9fzngao3h7pz3"); // double iw, ih, pw, ph; +UNSUPPORTED("cz8micuten0mlwt1eebcv7uki"); // double scalex, scaley; /* scale factors */ +UNSUPPORTED("crqj2odd9fbsbeuzanl23jpv5"); // boxf b; /* target box */ +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("6l51ed47a0ut0f1nmi3st4xsd"); // point isz; +UNSUPPORTED("1nk5slg1h855ktp6d9uxli7u3"); // assert(job); +UNSUPPORTED("265kxn69043hh3vmr1ma8pbpg"); // assert(name); +UNSUPPORTED("1av8we70pcc0ni7489zk2ttcg"); // assert(name[0]); +UNSUPPORTED("dztu0qy4iohllldygpjrgx0gv"); // if (!(us = gvusershape_find(name))) { +UNSUPPORTED("e4iagmogyeon44yhelfxakcrj"); // if (find_user_shape(name)) { +UNSUPPORTED("c7obssvvot4eby517jwrv86al"); // if (gvre && gvre->library_shape) +UNSUPPORTED("9hgqs8vju366mem50j32o9147"); // gvre->library_shape(job, name, a, n, filled); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8mq2y4jjt82ryu31wh7v1hyd4"); // isz = gvusershape_size_dpi(us, job->dpi); +UNSUPPORTED("99au5wlhecqbfygzkzv8981mi"); // if ((isz.x <= 0) && (isz.y <= 0)) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("esl5shk1uch8lb65tqqq1m71g"); // /* compute bb of polygon */ +UNSUPPORTED("9iktk3ta9uy01wdkx10u1v1i0"); // b.LL = b.UR = a[0]; +UNSUPPORTED("1zy7dp66aw6aapybjihdnqlz7"); // for (i = 1; i < n; i++) { +UNSUPPORTED("1y3lpr6pjid8ob5onc2hncben"); // EXPANDBP(b, a[i]); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5l547bajz46b3nak1gcn1xgbx"); // pw = b.UR.x - b.LL.x; +UNSUPPORTED("370p3pzdb3r4j80cqbinj84ig"); // ph = b.UR.y - b.LL.y; +UNSUPPORTED("20jqgqhi8nnb31ugjlxv5mfgd"); // ih = (double) isz.y; +UNSUPPORTED("eajz69qazr70u5u4virjxef9c"); // iw = (double) isz.x; +UNSUPPORTED("3jv1mdnld1gfgqyowoe3iai46"); // scalex = pw / iw; +UNSUPPORTED("19lmg6layyecz6vq3tzk6iwqc"); // scaley = ph / ih; +UNSUPPORTED("crt8ua8sg8nrxfn965bl378nm"); // switch (get_imagescale(imagescale)) { +UNSUPPORTED("9x5d1p2vwawhnebkxvik4ler0"); // case IMAGESCALE_TRUE: +UNSUPPORTED("13lnmnrrtauczxh7m0yh16omx"); // /* keep aspect ratio fixed by just using the smaller scale */ +UNSUPPORTED("35ptrfp241fjgv3d65rhgyvfz"); // if (scalex < scaley) { +UNSUPPORTED("evffc82eplte7tbacg5igm7t1"); // iw *= scalex; +UNSUPPORTED("4c103f16tmlh4niqoc6sqgngw"); // ih *= scalex; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("2ia00rm1213j433ep221netai"); // iw *= scaley; +UNSUPPORTED("e73g6zisi7ulw9whkaan7y5go"); // ih *= scaley; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("bg4352ii1wtvlgazxbs7q8h21"); // case IMAGESCALE_WIDTH: +UNSUPPORTED("98n9ml3m71mrha04tx2qjd2ug"); // iw *= scalex; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("ecv5vta16tbc18yxmxjzpkl03"); // case IMAGESCALE_HEIGHT: +UNSUPPORTED("bthar9ttyrew0nvghtr3jbrlv"); // ih *= scaley; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("52xjldytepdnjwbuuftuni25s"); // case IMAGESCALE_BOTH: +UNSUPPORTED("98n9ml3m71mrha04tx2qjd2ug"); // iw *= scalex; +UNSUPPORTED("bthar9ttyrew0nvghtr3jbrlv"); // ih *= scaley; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4dtyjnaw3zlyc8ymxnftwyvm6"); // case IMAGESCALE_FALSE: +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("86tahm66tt20ykc8ny2tzk3ze"); // /* if image is smaller than target area then center it */ +UNSUPPORTED("5h0ev3sjr0rjuc1rvqvcxdfvq"); // if (iw < pw) { +UNSUPPORTED("cbvvk9amzw6bdegl0ecjking7"); // b.LL.x += (pw - iw) / 2.0; +UNSUPPORTED("5hysx98tyafdlh0uqucunh4q8"); // b.UR.x -= (pw - iw) / 2.0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7961jlqlc9zg8cezqa8kciiwy"); // if (ih < ph) { +UNSUPPORTED("cc1xxa7ttu5nlyd4m0qkif9w7"); // b.LL.y += (ph - ih) / 2.0; +UNSUPPORTED("6oh6e3zjxnin6hxzzbd6ljfxp"); // b.UR.y -= (ph - ih) / 2.0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("69ziz4onms29gp005lfbsxw08"); // /* convert from graph to device coordinates */ +UNSUPPORTED("5ns2lzxxg3bbgizp0jtbmieye"); // if (!(job->flags & (1<<13))) { +UNSUPPORTED("buzq3sk9f7ll29s59hivg2fni"); // b.LL = gvrender_ptf(job, b.LL); +UNSUPPORTED("dl8zgtciz8uf4yloys650b6dc"); // b.UR = gvrender_ptf(job, b.UR); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b6p3r12lnoxocu3l1hnza3ybx"); // if (b.LL.x > b.UR.x) { +UNSUPPORTED("34o3euq4mb31azwc69v72tqa1"); // double d = b.LL.x; +UNSUPPORTED("5uptom4thtt0qanfm9axd15zo"); // b.LL.x = b.UR.x; +UNSUPPORTED("6pdd6mw8v1li3v7jz1g4q8t8d"); // b.UR.x = d; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ui9nw26f8tqmqg8nl2ppbzxs"); // if (b.LL.y > b.UR.y) { +UNSUPPORTED("5n2cnyobffi7mbdk1qslollkp"); // double d = b.LL.y; +UNSUPPORTED("783ve2lazsyx422w165c4syrf"); // b.LL.y = b.UR.y; +UNSUPPORTED("5x5nvpjy2r74y4ljpnu4u08i"); // b.UR.y = d; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("9mmza3nlarjca7p78m5h9xos4"); // gvloadimage(job, us, b, filled, job->render.type); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4u2p88wr82whlushkt6jc2qjm +// void gvrender_set_penwidth(GVJ_t * job, double penwidth) +public static Object gvrender_set_penwidth(Object... arg) { +UNSUPPORTED("4sxn3kk22l21zki26l63tudc1"); // void gvrender_set_penwidth(GVJ_t * job, double penwidth) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f1y2y1c3z2f172ut1ewmzfnmn"); // gvrender_engine_t *gvre = job->render.engine; +UNSUPPORTED("dg636tu66pifgwut68sbx2cvx"); // if (gvre) { +UNSUPPORTED("3zhz40tekxxllcduntmn94hvv"); // job->obj->penwidth = penwidth; +UNSUPPORTED("3c3xrh3ygj2k3vrtdokz98wd7"); // /*if (gvre->set_penwidth) gvre->set_penwidth(job, penwidth); */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvtextlayout__c.java plantuml-8039/src/gen/lib/gvc/gvtextlayout__c.java --- plantuml-8024/src/gen/lib/gvc/gvtextlayout__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvtextlayout__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,193 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static gen.lib.gvc.gvplugin__c.gvplugin_load; +import static smetana.core.JUtils.enumAsInt; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.GVC_s; +import h.api_t; +import h.gvplugin_available_s; +import h.gvplugin_installed_t; +import smetana.core.CString; + +public class gvtextlayout__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + + + +//3 f1oiyeonoigwygyq8c88wl8tz +// int gvtextlayout_select(GVC_t * gvc) +public static int gvtextlayout_select(GVC_s gvc) { +ENTERING("f1oiyeonoigwygyq8c88wl8tz","gvtextlayout_select"); +try { + gvplugin_available_s plugin; + gvplugin_installed_t typeptr; + plugin = gvplugin_load(gvc, enumAsInt(api_t.class, "API_textlayout"), new CString("textlayout")); + if (plugin!=null) { +UNSUPPORTED("8cnmkxanogd09zc24faarugvo"); // typeptr = plugin->typeptr; +UNSUPPORTED("cihmstdaldbultct48d4klpzn"); // gvc->textlayout.engine = (gvtextlayout_engine_t *) (typeptr->engine); +UNSUPPORTED("47nsfms3a4gr280vabzgt5x3f"); // return 300; /* FIXME - need more suitable success code */ + } + return 999; +} finally { +LEAVING("f1oiyeonoigwygyq8c88wl8tz","gvtextlayout_select"); +} +} + + + + +//3 f2jbuh3elz9mya1fc3ga6d3z9 +// boolean gvtextlayout(GVC_t *gvc, textspan_t *span, char **fontpath) +public static Object gvtextlayout(Object... arg) { +UNSUPPORTED("2jsqpz6hn581464yugh0tou2l"); // boolean gvtextlayout(GVC_t *gvc, textspan_t *span, char **fontpath) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6lss2n766usro8etj7wmu49lz"); // gvtextlayout_engine_t *gvte = gvc->textlayout.engine; +UNSUPPORTED("8kfw5uy3hnla57n731fnzv3rh"); // if (gvte && gvte->textlayout) +UNSUPPORTED("1vzb5q1afwigxljf6njahgd70"); // return gvte->textlayout(span, fontpath); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/gvusershape__c.java plantuml-8039/src/gen/lib/gvc/gvusershape__c.java --- plantuml-8024/src/gen/lib/gvc/gvusershape__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/gvusershape__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,972 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvusershape__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 9brvabw9vk27d2nrq4p8tf971 +// static Dict_t *ImageDict + + +//1 9pk2f9zg2k7nxk2pay6uw1ecz +// static knowntype_t knowntypes[] = + + + + +//3 afsdkf8ez5ohl6dd2prle0bgt +// static int imagetype (usershape_t *us) +public static Object imagetype(Object... arg) { +UNSUPPORTED("7vhzi3i3q0uu1byz03i34arpi"); // static int imagetype (usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4xkzi87btn54hoh901yqje0t2"); // char header[20]; +UNSUPPORTED("34btb8w1kvws7rrywxitht2dt"); // char line[200]; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("ayo4w7poqzsosr46zq587rive"); // if (us->f && fread(header, 1, 20, us->f) == 20) { +UNSUPPORTED("4f6p9x65zgxhi7g72c6rr85ez"); // for (i = 0; i < sizeof(knowntypes) / sizeof(knowntype_t); i++) { +UNSUPPORTED("ken197schvdfnlj4tbd1ajsg"); // if (!memcmp (header, knowntypes[i].template, knowntypes[i].size)) { +UNSUPPORTED("boxmes4yvhbhxz864uev9jrkn"); // us->stringtype = knowntypes[i].stringtype; +UNSUPPORTED("ot0inunld2mj1q1v9ubb1meg"); // us->type = knowntypes[i].type; +UNSUPPORTED("itn78hlno7a8ug22ta41xds5"); // if (us->type == FT_XML) { +UNSUPPORTED("152itmr8zxm9bdyohwofdarej"); // /* check for SVG in case of XML */ +UNSUPPORTED("3hr9t6mkxbajyo66bbwwo671x"); // while (fgets(line, sizeof(line), us->f) != (void *)0) { +UNSUPPORTED("3t6168qdbfqfv25fv7zx4xfms"); // if (!memcmp(line, "stringtype = "svg"; +UNSUPPORTED("ano6zabqu54wu0a40t35lj2q8"); // return (us->type = FT_SVG); +UNSUPPORTED("3rk33w1xf0jaka2h033sgnx06"); // } +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("f1kxll0fswekbe2gwilmen2m7"); // else if (us->type == FT_RIFF) { +UNSUPPORTED("cm5s3kh98e66k97v45ofiyv82"); // /* check for WEBP in case of RIFF */ +UNSUPPORTED("4ma0gwqxr9j5qek6xkrskevsl"); // if (!memcmp(header+8, "WEBP", sizeof("WEBP")-1)) { +UNSUPPORTED("3zasc2uxnxlgetbuyifmr97bf"); // us->stringtype = "webp"; +UNSUPPORTED("cgno6et27of87vw0o38rnarxx"); // return (us->type = FT_WEBP); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("60vq78txdp1vk965f5jgtlboc"); // return us->type; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("775efiysp2o60ingiihr8o6kq"); // us->stringtype = "(lib)"; +UNSUPPORTED("acr9g7qhtz1yhdxvbzfapnlad"); // us->type = FT_NULL; +UNSUPPORTED("7yivuk2g5w938mbst7quo3jxa"); // return FT_NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bnikn3k3s008dmhsa2qu6lh34 +// static boolean get_int_lsb_first (FILE *f, unsigned int sz, unsigned int *val) +public static Object get_int_lsb_first(Object... arg) { +UNSUPPORTED("cj03ffwnafffjxcznknyyp45b"); // static boolean get_int_lsb_first (FILE *f, unsigned int sz, unsigned int *val) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("70g3qubiio6uxhg2gxt141bff"); // int ch, i; +UNSUPPORTED("f3wi4z18bhg0unx5i47wp28hb"); // *val = 0; +UNSUPPORTED("6p1fgfnk4itt60e21fa48roiq"); // for (i = 0; i < sz; i++) { +UNSUPPORTED("7zywfbf1jevwjemy5yzpfiiza"); // ch = fgetc(f); +UNSUPPORTED("1t7v5vi7ec6r3mhla23o1v3w2"); // if (feof(f)) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("1ewc3hwvqjod1e2ou7c4u02h1"); // *val |= (ch << 8*i); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4si0cf97a5sfd9ozuunds9goz"); // return (!(0)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 87ifzytv1xgex4vf4ffa1fx28 +// static boolean get_int_msb_first (FILE *f, unsigned int sz, unsigned int *val) +public static Object get_int_msb_first(Object... arg) { +UNSUPPORTED("ad8pamcrkweeq9xmkgw9docv9"); // static boolean get_int_msb_first (FILE *f, unsigned int sz, unsigned int *val) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("70g3qubiio6uxhg2gxt141bff"); // int ch, i; +UNSUPPORTED("f3wi4z18bhg0unx5i47wp28hb"); // *val = 0; +UNSUPPORTED("6p1fgfnk4itt60e21fa48roiq"); // for (i = 0; i < sz; i++) { +UNSUPPORTED("7zywfbf1jevwjemy5yzpfiiza"); // ch = fgetc(f); +UNSUPPORTED("1t7v5vi7ec6r3mhla23o1v3w2"); // if (feof(f)) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("ac2fcmmhoviu6vu7od03xd2fz"); // *val <<= 8; +UNSUPPORTED("2aeq31k5bdbmozogiex8thool"); // *val |= ch; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4si0cf97a5sfd9ozuunds9goz"); // return (!(0)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e6zw0qebmgir30wjyodre1w3q +// static unsigned int svg_units_convert(double n, char *u) +public static Object svg_units_convert(Object... arg) { +UNSUPPORTED("1q167s10zcp2ohq3mqsaucn6q"); // static unsigned int svg_units_convert(double n, char *u) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("as83qujnkumxgvltowl9k84pa"); // if (strcmp(u, "in") == 0) +UNSUPPORTED("cz9p5u3tzm0vtfcypzsqjjznz"); // return ROUND(n * 72); +UNSUPPORTED("a3ea8buut0466me8422yze7nk"); // if (strcmp(u, "px") == 0) +UNSUPPORTED("17k340tdedf8kyw8jjau617ji"); // return ROUND(n * 72 / 96); +UNSUPPORTED("e1voxws30sz7bauvt2nz3e43i"); // if (strcmp(u, "pc") == 0) +UNSUPPORTED("dgfrr8ul58nbz256i7zg3dfnv"); // return ROUND(n * 72 / 6); +UNSUPPORTED("3zt4017at03z9nmfg4b6j33nl"); // if (strcmp(u, "pt") == 0 || strcmp(u, "\"") == 0) /* ugly!! - if there are no inits then the %2s get the trailing '"' */ +UNSUPPORTED("3bme0piy1kqu5q9y4eqbrr5fm"); // return ROUND(n); +UNSUPPORTED("4kvfi7mn3m1cvs8748w6apqe6"); // if (strcmp(u, "cm") == 0) +UNSUPPORTED("40fcy0h4yq1mhgc6sig41xkiz"); // return ROUND(n * ((double)72 * 0.393700787)); +UNSUPPORTED("795vmm17p8fultyx81btq2qj7"); // if (strcmp(u, "mm") == 0) +UNSUPPORTED("2p58445vgby41tw5y37sb952f"); // return ROUND(n * ((double)72 * 0.0393700787)); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 48cx4t8oc5776gxxsx3wj1459 +// static char* svg_attr_value_re = + + +//1 urpt4udx4umgv15x10ssv67m +// static regex_t re, *pre = (void *)0 + + + + +//3 di4bxm03m9srcwmfu82mzqtu +// static void svg_size (usershape_t *us) +public static Object svg_size(Object... arg) { +UNSUPPORTED("3bpommb3a197xaax86ebpnapc"); // static void svg_size (usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("16qpk89sms5wm32xxhdjsrhj1"); // unsigned int w = 0, h = 0; +UNSUPPORTED("3bfgwfzonzqutm2m3s241ggmq"); // double n, x0, y0, x1, y1; +UNSUPPORTED("5urpczqwzlgz812axw5w07irp"); // char u[10]; +UNSUPPORTED("e7xkcvvhzn89z17vzxp5d9wqf"); // char *attribute, *value, *re_string; +UNSUPPORTED("34btb8w1kvws7rrywxitht2dt"); // char line[200]; +UNSUPPORTED("1kfdqzk554dccavlk1sr8hc6k"); // boolean wFlag = 0, hFlag = 0; +UNSUPPORTED("txcitt9410z35lsx2a1qr3zb"); // regmatch_t re_pmatch[4]; +UNSUPPORTED("2elnezsihato03euhhcjmczz6"); // /* compile on first use */ +UNSUPPORTED("b3qk4y1nm971zossf7ba67c39"); // if (! pre) { +UNSUPPORTED("4k0rhf891tka3e5fomw7gygix"); // if (regcomp(&re, svg_attr_value_re, REG_EXTENDED) != 0) { +UNSUPPORTED("bvbawrzsgnxy8a4de3iuwaeqb"); // agerr(AGERR,"cannot compile regular expression %s", svg_attr_value_re); +UNSUPPORTED("klxoy56t7b20wxnwqm0qoofz"); // } +UNSUPPORTED("9let8u6jhsriwmr05bp3gwoy5"); // pre = &re; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7iygf89yc0kwp5pocixawdaed"); // fseek(us->f, 0, SEEK_SET); +UNSUPPORTED("40jwwwlrum66g8u94aha46ac6"); // while (fgets(line, sizeof(line), us->f) != (void *)0 && (!wFlag || !hFlag)) { +UNSUPPORTED("1d8ii0hljelb18gmpwwrtvano"); // re_string = line; +UNSUPPORTED("5bh0ae9np7zl19gk8h3h9317e"); // while (regexec(&re, re_string, 4, re_pmatch, 0) == 0) { +UNSUPPORTED("b355fkvcamz9jmg27def9b8x3"); // re_string[re_pmatch[1].rm_eo] = '\0'; +UNSUPPORTED("aef3m3p3zi96h0zt0sjw03lj4"); // re_string[re_pmatch[2].rm_eo] = '\0'; +UNSUPPORTED("eipkd5535u39a7ub3xbstkeu2"); // attribute = re_string + re_pmatch[1].rm_so; +UNSUPPORTED("bqe4861o77yhd2c4hm2q9ryqg"); // value = re_string + re_pmatch[2].rm_so; +UNSUPPORTED("c9y0ykkvqmbho7jwq1hq2v8rg"); // re_string += re_pmatch[0].rm_eo + 1; +UNSUPPORTED("4x0vivqfmvb5kxu3yv8zlj0z8"); // if (strcmp(attribute,"width") == 0) { +UNSUPPORTED("cjoilrknjlp3580a79aeduafs"); // if (sscanf(value, "%lf%2s", &n, u) == 2) { +UNSUPPORTED("5804xn01sb0nsqc4oand73j71"); // w = svg_units_convert(n, u); +UNSUPPORTED("boxr36cof383w0qjpos68wr3p"); // wFlag = (!(0)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("coem1appm7al4by2xogxcf79v"); // else if (sscanf(value, "%lf", &n) == 1) { +UNSUPPORTED("d20bsvecsbla4zfrgr8vs0axk"); // w = svg_units_convert(n, "pt"); +UNSUPPORTED("boxr36cof383w0qjpos68wr3p"); // wFlag = (!(0)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("bokpcg0aj7i7sody2nk55sn1m"); // if (hFlag) +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("349wmcj9pjfzzogsgqytbecep"); // else if (strcmp(attribute,"height") == 0) { +UNSUPPORTED("cjoilrknjlp3580a79aeduafs"); // if (sscanf(value, "%lf%2s", &n, u) == 2) { +UNSUPPORTED("4e8rpne5p90nqhwswzkila8du"); // h = svg_units_convert(n, u); +UNSUPPORTED("75lsnpofiu7aq6tvk1bytezfx"); // hFlag = (!(0)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("318wbwzbtyt293618awt8oi7j"); // else if (sscanf(value, "%lf", &n) == 1) { +UNSUPPORTED("8roq2ozo7ghuukkquxg4vi3o8"); // h = svg_units_convert(n, "pt"); +UNSUPPORTED("75lsnpofiu7aq6tvk1bytezfx"); // hFlag = (!(0)); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3f72eveov59pnntffs33fh1o9"); // if (wFlag) +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("evrgwvbtefbhi8c4vpurqyncz"); // else if (strcmp(attribute,"viewBox") == 0 +UNSUPPORTED("7knynrz6icv4twtp5re2u2tyu"); // && sscanf(value, "%lf %lf %lf %lf", &x0,&y0,&x1,&y1) == 4) { +UNSUPPORTED("b75jl7dtq9qf4ike38i53sb5b"); // w = x1 - x0 + 1; +UNSUPPORTED("ccjsgjzpqovbgplagso2d6wvk"); // h = y1 - y0 + 1; +UNSUPPORTED("agh2p3816w463hvgmt7pji00p"); // wFlag = (!(0)); +UNSUPPORTED("b0kbr8vydi49ibjics3e3mlip"); // hFlag = (!(0)); +UNSUPPORTED("7f9nr53m374zf5jnncru7yfn6"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7337vyphkrv1lekq0dncy8j6s"); // us->dpi = 0; +UNSUPPORTED("avyq4e4me4o2pteunxjmfehds"); // us->w = w; +UNSUPPORTED("evkuhplkb5xfea6ln3h8f6ly2"); // us->h = h; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2phgl4coa8enkvltpf0938lit +// static void png_size (usershape_t *us) +public static Object png_size(Object... arg) { +UNSUPPORTED("5qra9bwfkjw5syv0odudm6gam"); // static void png_size (usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8l3f9beos057zjxgk0cdj323o"); // unsigned int w, h; +UNSUPPORTED("7337vyphkrv1lekq0dncy8j6s"); // us->dpi = 0; +UNSUPPORTED("3135bp24afhqdzs2uj5l7sjr1"); // fseek(us->f, 16, SEEK_SET); +UNSUPPORTED("1luxqut1mknrn8qp0yakx9czw"); // if (get_int_msb_first(us->f, 4, &w) && get_int_msb_first(us->f, 4, &h)) { +UNSUPPORTED("73axoa9apyrx2829eqsezmfik"); // us->w = w; +UNSUPPORTED("993qcme7jlmcsi918hu491ld5"); // us->h = h; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 lqow6tkjqnnbqz6msa6cmzlk +// static void ico_size (usershape_t *us) +public static Object ico_size(Object... arg) { +UNSUPPORTED("6eqck7knu0bxd3sib3fpca2hf"); // static void ico_size (usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8l3f9beos057zjxgk0cdj323o"); // unsigned int w, h; +UNSUPPORTED("7337vyphkrv1lekq0dncy8j6s"); // us->dpi = 0; +UNSUPPORTED("bunso4je5hrb29m4984fw7bh6"); // fseek(us->f, 6, SEEK_SET); +UNSUPPORTED("875b5zt62o9flpi731becymv4"); // if (get_int_msb_first(us->f, 1, &w) && get_int_msb_first(us->f, 1, &h)) { +UNSUPPORTED("73axoa9apyrx2829eqsezmfik"); // us->w = w; +UNSUPPORTED("993qcme7jlmcsi918hu491ld5"); // us->h = h; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dleljswqxf1oa4gzr8l8fomcl +// static void webp_size (usershape_t *us) +public static Object webp_size(Object... arg) { +UNSUPPORTED("dl59ajg8cu2fj1vuagj6pumce"); // static void webp_size (usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8l3f9beos057zjxgk0cdj323o"); // unsigned int w, h; +UNSUPPORTED("7337vyphkrv1lekq0dncy8j6s"); // us->dpi = 0; +UNSUPPORTED("3mt62dnri0kt6p9g6nmf6x78i"); // fseek(us->f, 15, SEEK_SET); +UNSUPPORTED("bro476e5tdpqu4kqzjhadepr8"); // if (fgetc(us->f) == 'X') { //VP8X +UNSUPPORTED("ciyvs7xrf1sc336ipavk7gjbs"); // fseek(us->f, 24, SEEK_SET); +UNSUPPORTED("77gjxe5g6u7c6371ziwedefxf"); // if (get_int_lsb_first(us->f, 4, &w) && get_int_lsb_first(us->f, 4, &h)) { +UNSUPPORTED("9htwijlhm4ad9uo70xn5d5tvl"); // us->w = w; +UNSUPPORTED("3hh8nl3qystuq8wcwsm411fej"); // us->h = h; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bwt2eurukj3m7fsbr441rf1pj"); // else { //VP8 +UNSUPPORTED("5fthwx7kwgddogs4n4fsbb0o8"); // fseek(us->f, 26, SEEK_SET); +UNSUPPORTED("621fvdyd12vnbfyxpw6j0z7cr"); // if (get_int_lsb_first(us->f, 2, &w) && get_int_lsb_first(us->f, 2, &h)) { +UNSUPPORTED("9htwijlhm4ad9uo70xn5d5tvl"); // us->w = w; +UNSUPPORTED("3hh8nl3qystuq8wcwsm411fej"); // us->h = h; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2s3ms72agp5gyfqz15zbpp3u1 +// static void gif_size (usershape_t *us) +public static Object gif_size(Object... arg) { +UNSUPPORTED("ac8be5d24wrrx24tnddiukvl7"); // static void gif_size (usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8l3f9beos057zjxgk0cdj323o"); // unsigned int w, h; +UNSUPPORTED("7337vyphkrv1lekq0dncy8j6s"); // us->dpi = 0; +UNSUPPORTED("bunso4je5hrb29m4984fw7bh6"); // fseek(us->f, 6, SEEK_SET); +UNSUPPORTED("ezkdvuggkyj11n6ca6xrhm72g"); // if (get_int_lsb_first(us->f, 2, &w) && get_int_lsb_first(us->f, 2, &h)) { +UNSUPPORTED("73axoa9apyrx2829eqsezmfik"); // us->w = w; +UNSUPPORTED("993qcme7jlmcsi918hu491ld5"); // us->h = h; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bpjeya6em7jp6m6l86m6t4u4a +// static void bmp_size (usershape_t *us) +public static Object bmp_size(Object... arg) { +UNSUPPORTED("ba2pylwi2xu10asnonw92pxw1"); // static void bmp_size (usershape_t *us) { +UNSUPPORTED("ct1272vz7j34sqkcwzdiq2x0i"); // unsigned int size_x_msw, size_x_lsw, size_y_msw, size_y_lsw; +UNSUPPORTED("7337vyphkrv1lekq0dncy8j6s"); // us->dpi = 0; +UNSUPPORTED("9b418veiss4t0o7s8cqq28owo"); // fseek (us->f, 16, SEEK_SET); +UNSUPPORTED("1q9kmvi2ajod9wlev8s5p50rv"); // if ( get_int_lsb_first (us->f, 2, &size_x_msw) && +UNSUPPORTED("5f5k6cp1ota9f8a2ciircybdh"); // get_int_lsb_first (us->f, 2, &size_x_lsw) && +UNSUPPORTED("9n6cqmhzmbkf1vt9fyu6zw0kp"); // get_int_lsb_first (us->f, 2, &size_y_msw) && +UNSUPPORTED("cid929pl3ogyk2kecod7opvz0"); // get_int_lsb_first (us->f, 2, &size_y_lsw) ) { +UNSUPPORTED("a6g25f4k8ew6jja5m9rnccf5o"); // us->w = size_x_msw << 16 | size_x_lsw; +UNSUPPORTED("8exqj264llut5d629ydwne5k2"); // us->h = size_y_msw << 16 | size_y_lsw; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c7yvo5wd816hjqxejnluaol0a +// static void jpeg_size (usershape_t *us) +public static Object jpeg_size(Object... arg) { +UNSUPPORTED("c8uakwctlakoj06f07juq8r2a"); // static void jpeg_size (usershape_t *us) { +UNSUPPORTED("3o57tczyjy6z9uvry23b9xkw5"); // unsigned int marker, length, size_x, size_y, junk; +UNSUPPORTED("4ylph99ph3r2v7uhxyd2hq0io"); // /* These are the markers that follow 0xff in the file. +UNSUPPORTED("1pzctl0feh1bhiqnxtmawvxg4"); // * Other markers implicitly have a 2-byte length field that follows. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("1lgv3mem6buwpyuef4b9h8rzp"); // static unsigned char standalone_markers [] = { +UNSUPPORTED("e00djw6cjtdaxejgnewp8nus6"); // 0x01, /* Temporary */ +UNSUPPORTED("1urwngq6m3z6m5mr3egwgq9mr"); // 0xd0, 0xd1, 0xd2, 0xd3, /* Reset */ +UNSUPPORTED("e1vwc4842h5c84ojr8w3onuno"); // 0xd4, 0xd5, 0xd6, +UNSUPPORTED("1uig2kz9nbo8j6vj3r7493n8"); // 0xd7, +UNSUPPORTED("927bzm317ui2xj8ugbwhm5xb7"); // 0xd8, /* Start of image */ +UNSUPPORTED("9ybi9mcsggfw3zbh6zn9hotef"); // 0xd9, /* End of image */ +UNSUPPORTED("fbagrxdnmyjkvt7zaukczscg"); // 0 +UNSUPPORTED("9u8qqu9tw95qjbv3cxv3hj4bd"); // }; +UNSUPPORTED("7337vyphkrv1lekq0dncy8j6s"); // us->dpi = 0; +UNSUPPORTED("5owjshc6gmd9o9lmekzcl6rvg"); // while ((!(0))) { +UNSUPPORTED("7kq4b2hkhf3vcx97hwoelgcxz"); // /* Now we must be at a 0xff or at a series of 0xff's. +UNSUPPORTED("cga1geam6con9djkcofzmw0ko"); // * If that is not the case, or if we're at EOF, then there's +UNSUPPORTED("exr8s1ongonmgsucjdf4zsmb4"); // * a parsing error. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("79jgtuw1xg9dgik49e3hx1068"); // if (! get_int_msb_first (us->f, 1, &marker)) +UNSUPPORTED("3zyp4vhegf9dl2g8a4ffmxah8"); // return; +UNSUPPORTED("e7cevpg68ih107a2ggfgkq1la"); // if (marker == 0xff) +UNSUPPORTED("9j8yk6fxm4tnpr3yrev0f9bhm"); // continue; +UNSUPPORTED("99hdbrpbwvb3lwfyhz43xnoxf"); // /* Ok.. marker now read. If it is not a stand-alone marker, +UNSUPPORTED("b7dntxmllxk3wzmg9mclxs71r"); // * then continue. If it's a Start Of Frame (0xc?), then we're there. +UNSUPPORTED("8aramua11q89c43osky6tgha5"); // * If it's another marker with a length field, then skip ahead +UNSUPPORTED("5w0fy7m3152rri519xzsydb2w"); // * over that length field. +UNSUPPORTED("3vesx4cskuo1q42jvwmoum2xs"); // */ +UNSUPPORTED("7itrbaa4e2u9uh86wydx2r1wq"); // /* A stand-alone... */ +UNSUPPORTED("7m1dttkv67ixwryn1ukl94hel"); // if (strchr ((char*)standalone_markers, marker)) +UNSUPPORTED("9j8yk6fxm4tnpr3yrev0f9bhm"); // continue; +UNSUPPORTED("sb3rjk9k59soh7qvm0qpkzoh"); // /* Incase of a 0xc0 marker: */ +UNSUPPORTED("6u3lv1x78jskc1qjam25s00h1"); // if (marker == 0xc0) { +UNSUPPORTED("4kucipi8uw6ujeuh489csoowf"); // /* Skip length and 2 lengths. */ +UNSUPPORTED("30gcyw02iuybxoyj28nhlbwbl"); // if ( get_int_msb_first (us->f, 3, &junk) && +UNSUPPORTED("b6ypup1v81rta7mfh68arftfd"); // get_int_msb_first (us->f, 2, &size_x) && +UNSUPPORTED("f2mbg2ezlyocn5228wkhy658f"); // get_int_msb_first (us->f, 2, &size_y) ) { +UNSUPPORTED("eps17wh894vxn0oojbitsn1lr"); // /* Store length. */ +UNSUPPORTED("danamcguxf0st13b0euh47y8v"); // us->h = size_x; +UNSUPPORTED("gva1bl1ygb6xzrrjwpma3dpp"); // us->w = size_y; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("7jc4v9i136pgfvwakfui3aupm"); // /* Incase of a 0xc2 marker: */ +UNSUPPORTED("a1ww3q31w3xsq697vt32phj9d"); // if (marker == 0xc2) { +UNSUPPORTED("7xwfuqyvolr45lp6gdcnmqyna"); // /* Skip length and one more byte */ +UNSUPPORTED("dhyz02dvhk6z01p9nh8knpdnp"); // if (! get_int_msb_first (us->f, 3, &junk)) +UNSUPPORTED("6an8ocqq0sjru42k4aathe94m"); // return; +UNSUPPORTED("7b106vc3jzqz2eyjlo758xw2n"); // /* Get length and store. */ +UNSUPPORTED("akbj7dadm0nq5ujmuwiw50ukl"); // if ( get_int_msb_first (us->f, 2, &size_x) && +UNSUPPORTED("f2mbg2ezlyocn5228wkhy658f"); // get_int_msb_first (us->f, 2, &size_y) ) { +UNSUPPORTED("danamcguxf0st13b0euh47y8v"); // us->h = size_x; +UNSUPPORTED("gva1bl1ygb6xzrrjwpma3dpp"); // us->w = size_y; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("9qz6tc2665rtirz7egtertjyl"); // /* Any other marker is assumed to be followed by 2 bytes length. */ +UNSUPPORTED("5xvajayqclvcxxqkozzorzbdi"); // if (! get_int_msb_first (us->f, 2, &length)) +UNSUPPORTED("3zyp4vhegf9dl2g8a4ffmxah8"); // return; +UNSUPPORTED("cv5sg5k6hy1kwgiinb4i5xr6"); // fseek (us->f, length - 2, SEEK_CUR); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9vi0gtfjnp35ie6bx15grm4gp +// static void ps_size (usershape_t *us) +public static Object ps_size(Object... arg) { +UNSUPPORTED("8kctdt9asc26knxxydik2v8ug"); // static void ps_size (usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("18vi5vqd0r4k0kxsl3h3rwa4y"); // char line[BUFSIZ]; +UNSUPPORTED("4qk2wsv83bxm1lchsnd6splfr"); // boolean saw_bb; +UNSUPPORTED("5rcgzsa5rlhtyjz964tcthts2"); // int lx, ly, ux, uy; +UNSUPPORTED("5fewhg0dt0vbugqk2bmyfr34l"); // char* linep; +UNSUPPORTED("891wob6d9fi1zsdfvumw7tx5y"); // us->dpi = 72; +UNSUPPORTED("7iygf89yc0kwp5pocixawdaed"); // fseek(us->f, 0, SEEK_SET); +UNSUPPORTED("w6asn9e9wasakvoc3kn19lwt"); // saw_bb = 0; +UNSUPPORTED("cpypiyiyiq875wcq5pix66en2"); // while (fgets(line, sizeof(line), us->f)) { +UNSUPPORTED("7vmkqwijdn7elebqrq3q3qqlv"); // /* PostScript accepts \r as EOL, so using fgets () and looking for a +UNSUPPORTED("ccqysd4ji4ezs2u937a1tq93k"); // * bounding box comment at the beginning doesn't work in this case. +UNSUPPORTED("a548nncd0y8n2a01c5z3akmhg"); // * As a heuristic, we first search for a bounding box comment in line. +UNSUPPORTED("djrf0gim2rh71i0skg41uw6zn"); // * This obviously fails if not all of the numbers make it into the +UNSUPPORTED("x3dg0lfzyp7yc2hldpo3cbge"); // * current buffer. This shouldn't be a problem, as the comment is +UNSUPPORTED("4uvbwtwj71pylu4bfe3pu79le"); // * typically near the beginning, and so should be read within the first +UNSUPPORTED("426auswwt3iw0kmtesztdy9ff"); // * BUFSIZ bytes (even on Windows where this is 512). +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("8iwr2d3ooqy0tw5eisixpectn"); // if (!(linep = strstr (line, "%%BoundingBox:"))) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("2s519tr2mhoj177f79vzllnyq"); // if (sscanf (linep, "%%%%BoundingBox: %d %d %d %d", &lx, &ly, &ux, &uy) == 4) { +UNSUPPORTED("6dekl3sp6brld4uq5ep5859l3"); // saw_bb = (!(0)); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8p3jjm43yrzygpor71hdkfs1g"); // if (saw_bb) { +UNSUPPORTED("5dym7sjpxsgdgav57jvyuohe8"); // us->x = lx; +UNSUPPORTED("da04q03gf0w4upkkrsn74w1dc"); // us->y = ly; +UNSUPPORTED("6mpj1u4n7cyggpme1vsa6je8t"); // us->w = ux - lx; +UNSUPPORTED("dqnhfatraydhv6fdx3gsi22ao"); // us->h = uy - ly; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 87i5xtm6lbxo4asqfnu0v9rz1 +// static unsigned char nxtc (stream_t* str) +public static Object nxtc(Object... arg) { +UNSUPPORTED("at0aua2ntxsp0j1h4yidmr4si"); // static unsigned char +UNSUPPORTED("9rrtdlhn8kugpol3lky8rgp5n"); // nxtc (stream_t* str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9jyosg56ecd165ua22kq89ggj"); // if (fgets(str->buf, BUFSIZ, str->fp)) { +UNSUPPORTED("bo88dnmxymbe4e1rppc0ex9ve"); // str->s = str->buf; +UNSUPPORTED("8tdhptj2ed5dv8sew624q4jec"); // return *(str->s); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("278hcy3fayv5vclqcgtpjbzdi"); // return '\0'; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2fq3qaeuu4gjr89xmwwy7i4xe +// static void skipWS (stream_t* str) +public static Object skipWS(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("cactz8998uk8ou1c5zwtwg601"); // skipWS (stream_t* str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("10sir32iwi5l2jyfgp65pihto"); // unsigned char c; +UNSUPPORTED("91zm214vvm6477gtei1ggjkef"); // while ((c = (*(str->s)?*(str->s):nxtc(str)))) { +UNSUPPORTED("dilzs0pemy12rvmpnko0iel59"); // if (isspace(c)) (str->s++); +UNSUPPORTED("9wafzg86cpce49qfuv8wsl6in"); // else return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dwmuhk2xjfndhxozxfrdz5nk8 +// static int scanNum (char* tok, double* dp) +public static Object scanNum(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("eq0ltrbhzwt422rffdlm4d20e"); // scanNum (char* tok, double* dp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bkz9mqmemp1ljxdwdbu8xv3e9"); // char* endp; +UNSUPPORTED("avrsd77b596s5g291ozzdpxf8"); // double d = strtod(tok, &endp); +UNSUPPORTED("2qoq2nf2jpfoyc68njwm2ajkq"); // if (tok == endp) return 1; +UNSUPPORTED("636uh4i1x8w844yxwd2u322d1"); // *dp = d; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dhjmc8hrpmiohrejyu72mrhno +// static void getNum (stream_t* str, char* buf) +public static Object getNum(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("doymhclp9a2fukna3vd3r7xf8"); // getNum (stream_t* str, char* buf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bsj3r19ko668lwj5fqk8tlbhc"); // int len = 0; +UNSUPPORTED("wrvu9u7a8j6i6y6552zncxfk"); // char c; +UNSUPPORTED("936voey3mecmlo6hla9hyrmun"); // skipWS(str); +UNSUPPORTED("tuyymjn2lfs038e1rm6hbw8w"); // while ((c = (*(str->s)?*(str->s):nxtc(str))) && (isdigit(c) || (c == '.'))) { +UNSUPPORTED("4rvasxp4ert1zz5jaasrqeft1"); // buf[len++] = c; +UNSUPPORTED("8vm8y5ewr5ra87d4f8exah65d"); // (str->s++); +UNSUPPORTED("5zs9wc8ip6zkde4o33aadh30c"); // if (len == BUFSIZ-1) break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3w01p3l63zt07scumxz12foyc"); // buf[len] = '\0'; +UNSUPPORTED("b9185t6i77ez1ac587ul8ndnc"); // return; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6kdhce4shbkw92wtfgufyqecs +// static int boxof (stream_t* str, boxf* bp) +public static Object boxof(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("d810hoc5e8uu0odpm097odpfu"); // boxof (stream_t* str, boxf* bp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1z7b1t0srtne632sd3ma9jbp7"); // char tok[BUFSIZ]; +UNSUPPORTED("araz8ffm0d5v424qzgyh7bsvy"); // skipWS(str); +UNSUPPORTED("1uwfhdftjs4loqhg7ecaermjd"); // if ((*(str->s)?*(str->s):nxtc(str)) != '[') return 1; +UNSUPPORTED("8vm8y5ewr5ra87d4f8exah65d"); // (str->s++); +UNSUPPORTED("6jh13u8w5qiy4ij2ebx6zmqwa"); // getNum(str, tok); +UNSUPPORTED("1m5wgiebygd9j5o6m68etvwh0"); // if (scanNum(tok,&bp->LL.x)) return 1; +UNSUPPORTED("6jh13u8w5qiy4ij2ebx6zmqwa"); // getNum(str, tok); +UNSUPPORTED("9bcg5vhxd4fqd8ykkbivfm3d4"); // if (scanNum(tok,&bp->LL.y)) return 1; +UNSUPPORTED("6jh13u8w5qiy4ij2ebx6zmqwa"); // getNum(str, tok); +UNSUPPORTED("1z0q9nrhj393zbs1mok3h84tf"); // if (scanNum(tok,&bp->UR.x)) return 1; +UNSUPPORTED("6jh13u8w5qiy4ij2ebx6zmqwa"); // getNum(str, tok); +UNSUPPORTED("247082ftkwl5jzjorvyt3sgcl"); // if (scanNum(tok,&bp->UR.y)) return 1; +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dedr09vl6y9ax357arh6tayi +// static int bboxPDF (FILE* fp, boxf* bp) +public static Object bboxPDF(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("9icxkxwqm6flp3sl9ulkp4fyd"); // bboxPDF (FILE* fp, boxf* bp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f3gl6562biaxa4139uus0d370"); // stream_t str; +UNSUPPORTED("5pjh3c3u4lxh1jdyyk966intb"); // char* s; +UNSUPPORTED("8c7x8di5w36ib05qan9z4sl9"); // char buf[BUFSIZ]; +UNSUPPORTED("8w39jbbwqjx63enrf5fdvcm9r"); // while (fgets(buf, BUFSIZ, fp)) { +UNSUPPORTED("b7wioadlc5j3p2q8w7tsq1gam"); // if ((s = strstr(buf,"/MediaBox"))) { +UNSUPPORTED("ecmojjd7fnaeah045va2t5eg8"); // str.buf = buf; +UNSUPPORTED("5k89yh945d2crbir8397vkavv"); // str.s = s+(sizeof("/MediaBox")-1); +UNSUPPORTED("dj08qw9n5j8nlqx752hipu46u"); // str.fp = fp; +UNSUPPORTED("uhua7rc3vef3nawzjyh3w1k5"); // return boxof(&str,bp); +UNSUPPORTED("yoqd73ulpi5tn8snro7dt3jc"); // } +UNSUPPORTED("8nzcpbtoi924xzu8ze3z6dbft"); // } +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3fdvwmb09jpyu6h40pj206vv3 +// static void pdf_size (usershape_t *us) +public static Object pdf_size(Object... arg) { +UNSUPPORTED("97swmsrhwped1e1n72fyev1ai"); // static void pdf_size (usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("7337vyphkrv1lekq0dncy8j6s"); // us->dpi = 0; +UNSUPPORTED("7iygf89yc0kwp5pocixawdaed"); // fseek(us->f, 0, SEEK_SET); +UNSUPPORTED("cu1kld68jk8qm12c9f0n61vyd"); // if ( ! bboxPDF (us->f, &bb)) { +UNSUPPORTED("14kgzu9x57imt127uyibumhif"); // us->x = bb.LL.x; +UNSUPPORTED("51rq1d6stvtvjgfta18hxoiyg"); // us->y = bb.LL.y; +UNSUPPORTED("encm75ymc6wgridj70fk0jf47"); // us->w = bb.UR.x - bb.LL.x; +UNSUPPORTED("dy52i81burd516zy265e83wel"); // us->h = bb.UR.y - bb.LL.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cxhbj2es2sky90cnd8qf89prs +// static void usershape_close (Dict_t * dict, void * p, Dtdisc_t * disc) +public static Object usershape_close(Object... arg) { +UNSUPPORTED("b7or8sf6zjmnj6wjf08brm0r"); // static void usershape_close (Dict_t * dict, void * p, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("58pwyr0d4numnoai5v987l5ml"); // usershape_t *us = (usershape_t *)p; +UNSUPPORTED("ad2wgtudijnm3bp4549lrva3l"); // if (us->f) +UNSUPPORTED("13i1v3mxl0sjnx4rgaden880d"); // fclose(us->f); +UNSUPPORTED("e5bs4fy1a1v5ptm2bcrm2m9ai"); // if (us->data && us->datafree) +UNSUPPORTED("1wod8ffcoluizmoc72db2htxb"); // us->datafree(us); +UNSUPPORTED("73p2w162ujnuoboekx5udlion"); // free (us); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 es7jtx4lx7bg26412fcjit8ri +// static Dtdisc_t ImageDictDisc = + + + + +//3 9msk7qh9auq8w21r32k0ffcsa +// usershape_t *gvusershape_find(char *name) +public static Object gvusershape_find(Object... arg) { +UNSUPPORTED("a9366bkr4gt4nvcj5bnkjrtrd"); // usershape_t *gvusershape_find(char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("exneoozy5g8al0a8y6fxb88zv"); // usershape_t *us; +UNSUPPORTED("265kxn69043hh3vmr1ma8pbpg"); // assert(name); +UNSUPPORTED("1av8we70pcc0ni7489zk2ttcg"); // assert(name[0]); +UNSUPPORTED("4qhyd93m9v57fwb1anljrxfd3"); // if (!ImageDict) +UNSUPPORTED("45tfw7tcm68298aro2tdiv8pc"); // return (void *)0; +UNSUPPORTED("dzt5b4nn4x2oidxk4g4wzt8et"); // us = (*(((Dt_t*)(ImageDict))->searchf))((ImageDict),(void*)(name),0001000); +UNSUPPORTED("2iqrgjc97xskxvw6791yf0sl7"); // return us; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3cgay03dg8pq23kln9kuc0ym5 +// boolean gvusershape_file_access(usershape_t *us) +public static Object gvusershape_file_access(Object... arg) { +UNSUPPORTED("dm8po5i2hu4arliyfc2ea2a47"); // boolean gvusershape_file_access(usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8u0o5i27i1no60qjs9r4os0f9"); // static int usershape_files_open_cnt; +UNSUPPORTED("vadeh8lzzwz0ugk6azcwaayu"); // const char *fn; +UNSUPPORTED("7gqi0ait1bhc4v9zl8rnn0wbs"); // assert(us); +UNSUPPORTED("xlffgd4fqdckxg2nbs0mxtlj"); // assert(us->name); +UNSUPPORTED("fk4kdjctgb13swd2h14t0yvh"); // assert(us->name[0]); +UNSUPPORTED("ad2wgtudijnm3bp4549lrva3l"); // if (us->f) +UNSUPPORTED("1te90msr6mhllwn4y3ghlahc0"); // fseek(us->f, 0, SEEK_SET); +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("d6n6b94e02ntmefeqcoo0ueon"); // if (! (fn = safefile(us->name))) { +UNSUPPORTED("778vwup2lml5qa9eyxd88416u"); // agerr(AGWARN, "Filename \"%s\" is unsafe\n", us->name); +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("31rnydpzhmzclqs3q4flw9ce2"); // us->f = fopen(fn, "r"); +UNSUPPORTED("cmb2imwpnm4tgu1dm9r5tgtj5"); // if (us->f == (void *)0) { +UNSUPPORTED("ebzon8h2oywxvasmfmyhnw5pq"); // agerr(AGWARN, "%s while opening %s\n", strerror(errno), fn); +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e17a7n92m8ieuby8sa8jm1r3o"); // if (usershape_files_open_cnt >= 50) +UNSUPPORTED("c9jo9gbhp1on7wctnk1o7q8vu"); // us->nocache = (!(0)); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("81eb64f0supcvkt4drj4djmby"); // usershape_files_open_cnt++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3ebwn2weruwgdz4tfaxj2htek"); // assert(us->f); +UNSUPPORTED("4si0cf97a5sfd9ozuunds9goz"); // return (!(0)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9y4wcbk4jp03lbul2i25xzmp6 +// void gvusershape_file_release(usershape_t *us) +public static Object gvusershape_file_release(Object... arg) { +UNSUPPORTED("6i3sc3o39zrjf80hb57rmbe1t"); // void gvusershape_file_release(usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5a8j5zrw7vbgoyy4ogtlsywui"); // if (us->nocache) { +UNSUPPORTED("47xp2oczqdec6db0z36u2n84r"); // if (us->f) { +UNSUPPORTED("bzvrsl2iafc3pw0qughvm761m"); // fclose(us->f); +UNSUPPORTED("amwbxewujlnkm7a19q6zl4xq0"); // us->f = (void *)0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gvu7lmp0zomg3yy0a76n8pjh +// static usershape_t *gvusershape_open (char *name) +public static Object gvusershape_open(Object... arg) { +UNSUPPORTED("5kyko9vxn3aqt1awhp5hd8c6a"); // static usershape_t *gvusershape_open (char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("exneoozy5g8al0a8y6fxb88zv"); // usershape_t *us; +UNSUPPORTED("265kxn69043hh3vmr1ma8pbpg"); // assert(name); +UNSUPPORTED("4qhyd93m9v57fwb1anljrxfd3"); // if (!ImageDict) +UNSUPPORTED("7tvne0duj1fh44ndje8hlq8nt"); // ImageDict = dtopen(&ImageDictDisc, Dttree); +UNSUPPORTED("be9pwrhxzz4ia299kongm87uq"); // if (! (us = gvusershape_find(name))) { +UNSUPPORTED("9suqlrwjg77jwdm7tlgzsc0by"); // if (! (us = zmalloc(sizeof(usershape_t)))) +UNSUPPORTED("7f8nrnyuywny79cpzv6a49d8v"); // return (void *)0; +UNSUPPORTED("6viwgw3bdyvknckol3dsh1s5v"); // us->name = agstrdup (0, name); +UNSUPPORTED("ewc238znlsx5axoejodocqoyp"); // if (!gvusershape_file_access(us)) +UNSUPPORTED("7f8nrnyuywny79cpzv6a49d8v"); // return (void *)0; +UNSUPPORTED("4i933mk1cyf6xcljbpn69na20"); // assert(us->f); +UNSUPPORTED("43qnzsg978s9yom42c0n33wx3"); // switch(imagetype(us)) { +UNSUPPORTED("7eenfnk5yzoj21g2agitce6kx"); // case FT_NULL: +UNSUPPORTED("azdoxaxgz4fzzdoeyruqj36jk"); // if (!(us->data = (void*)find_user_shape(us->name))) +UNSUPPORTED("9mepm6hu7uqhpdwcg60h6pc3o"); // agerr(AGWARN, "\"%s\" was not found as a file or as a shape library member\n", us->name); +UNSUPPORTED("9bu5332flxhc1ivhmzuiqcjdh"); // free(us); +UNSUPPORTED("6948880uywn56ppo1fuqbm2rt"); // return (void *)0; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("4p4ayucon7vqli1ylni5hjrfb"); // case FT_GIF: +UNSUPPORTED("c68gkmazl6aratmtonsx4fan9"); // gif_size(us); +UNSUPPORTED("7f9nr53m374zf5jnncru7yfn6"); // break; +UNSUPPORTED("7da7e6aavwlcxg7eglorxy23g"); // case FT_PNG: +UNSUPPORTED("ubixbe52lmq7uzqie7h12582"); // png_size(us); +UNSUPPORTED("7f9nr53m374zf5jnncru7yfn6"); // break; +UNSUPPORTED("9ysbcxl45mbfo0lhfihqfby4d"); // case FT_BMP: +UNSUPPORTED("9xqkpupuhywfcx0rkky4pnu5q"); // bmp_size(us); +UNSUPPORTED("7f9nr53m374zf5jnncru7yfn6"); // break; +UNSUPPORTED("bhf95qvvxhf47ek76yf2a45l0"); // case FT_JPEG: +UNSUPPORTED("bq0stf6n5x5tzvjir50smcifq"); // jpeg_size(us); +UNSUPPORTED("7f9nr53m374zf5jnncru7yfn6"); // break; +UNSUPPORTED("bazpzxo4uq0pwp7j4k94ngrtz"); // case FT_PS: +UNSUPPORTED("7bs1bijtavu2jceudpors0jbp"); // ps_size(us); +UNSUPPORTED("7f9nr53m374zf5jnncru7yfn6"); // break; +UNSUPPORTED("8xv8jf3eindz5gftkzluercwh"); // case FT_WEBP: +UNSUPPORTED("91d89xyv6dtk8a479p0cfwyy7"); // webp_size(us); +UNSUPPORTED("7f9nr53m374zf5jnncru7yfn6"); // break; +UNSUPPORTED("c8km9iw5nmks5lp6jl9j5s5q2"); // case FT_SVG: +UNSUPPORTED("a147xv5hgfkmevlpr3jb7fzci"); // svg_size(us); +UNSUPPORTED("7f9nr53m374zf5jnncru7yfn6"); // break; +UNSUPPORTED("242ztnyfnn9hx8sb3u5z3omun"); // case FT_PDF: +UNSUPPORTED("9ef2eux36pp9nf00d1ijmfbhm"); // pdf_size(us); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("3h2lioytqam297xdu0a7l0y6w"); // case FT_ICO: +UNSUPPORTED("dj7xjql9twvpafx4qoyb07ra8"); // ico_size(us); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("90yyikfl7j30g6npbi9n0jxyw"); // // case FT_TIFF: +UNSUPPORTED("72cnoy8x3q67t6323yzwcdim8"); // // tiff_size(us); +UNSUPPORTED("1sbah8d4teszwq6tgzsohjpba"); // // break; +UNSUPPORTED("2hkvwieff33mlzyovvk76tpzn"); // case FT_EPS: /* no eps_size code available */ +UNSUPPORTED("bt2g0yhsy3c7keqyftf3c98ut"); // default: +UNSUPPORTED("7f9nr53m374zf5jnncru7yfn6"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("1ju3i4hja8fc5wwdkk9ed70t0"); // gvusershape_file_release(us); +UNSUPPORTED("6ovs68xjm9urfsh1qtosv57gi"); // (*(((Dt_t*)(ImageDict))->searchf))((ImageDict),(void*)(us),0000001); +UNSUPPORTED("e7wyuaoyszuqilaizfjv1mnp9"); // return us; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7xahvc82av8lspjlm80i6ycqx"); // gvusershape_file_release(us); +UNSUPPORTED("2iqrgjc97xskxvw6791yf0sl7"); // return us; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1uc6t1ylgvem0d3xb73wkh6k5 +// point gvusershape_size_dpi (usershape_t* us, pointf dpi) +public static Object gvusershape_size_dpi(Object... arg) { +UNSUPPORTED("5vjx3ewef6ht20ld1et4ghr4y"); // point +UNSUPPORTED("5mxbu6cb95ay6dfs0i5n8icbs"); // gvusershape_size_dpi (usershape_t* us, pointf dpi) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e5r3mj8btrkw973m7l0rritko"); // point rv; +UNSUPPORTED("6n6sowowfpx2bppltl0zu5v7v"); // if (!us) { +UNSUPPORTED("4zusj5p9eg9pazvp0px1fxvhy"); // rv.x = rv.y = -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("8egqtg148lkga2f8fnti0xikl"); // if (us->dpi != 0) { +UNSUPPORTED("appsmczgq79si2bttb9rrlf1n"); // dpi.x = dpi.y = us->dpi; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8z1a50vlhe7l1e7lnn7h5r90w"); // rv.x = us->w * 72 / dpi.x; +UNSUPPORTED("b8wlsi5z8klt27ehe7vr9ue61"); // rv.y = us->h * 72 / dpi.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vqiwf4q9iqmxqvd9e5qa1vo7 +// point gvusershape_size(graph_t * g, char *name) +public static Object gvusershape_size(Object... arg) { +UNSUPPORTED("3a8kgtxwhe9qi1f5wde0npt4d"); // point gvusershape_size(graph_t * g, char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e5r3mj8btrkw973m7l0rritko"); // point rv; +UNSUPPORTED("aj7pw6lpv6z6nan96bx4pdfu2"); // pointf dpi; +UNSUPPORTED("114dkd9d0mrkmtgl0ncfy2y88"); // static char* oldpath; +UNSUPPORTED("709e07k0mmaqqdi3botr9zj87"); // usershape_t* us; +UNSUPPORTED("d5ucq7enfbvarib2hwpi6y9qi"); // /* no shape file, no shape size */ +UNSUPPORTED("crs7cps8buaugcwtbezaqxd0q"); // if (!name || (*name == '\0')) { +UNSUPPORTED("4zusj5p9eg9pazvp0px1fxvhy"); // rv.x = rv.y = -1; +UNSUPPORTED("cs1ejkx9cw658cl8cagdzqrzm"); // return rv; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("24me4s4cte11xoie4uxxwajbs"); // if (!HTTPServerEnVar && (oldpath != Gvimagepath)) { +UNSUPPORTED("ba3zx115acxf5hiob55lfwvhd"); // oldpath = Gvimagepath; +UNSUPPORTED("63hyc3s3c95h5g1lp6aypzd8k"); // if (ImageDict) { +UNSUPPORTED("50x4kwt6y5jkwbeqmhvki188q"); // dtclose(ImageDict); +UNSUPPORTED("75t9qfgcu2fz0o59mjqh5rruv"); // ImageDict = (void *)0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d77jz2hp035qgnn72uyy7evkj"); // if ((dpi.y = GD_drawing(g)->dpi) >= 1.0) +UNSUPPORTED("8kboj4mypdab20ax7qfuq8oyp"); // dpi.x = dpi.y; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6buslnzh8a0nuwlk9wkfaytt8"); // dpi.x = dpi.y = (double)DEFAULT_DPI; +UNSUPPORTED("16h3qy8ek57tauhtrw8xkodar"); // us = gvusershape_open (name); +UNSUPPORTED("6tq0lkl6cmjltetu68liok738"); // rv = gvusershape_size_dpi (us, dpi); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/gvc/regex_win32__c.java plantuml-8039/src/gen/lib/gvc/regex_win32__c.java --- plantuml-8024/src/gen/lib/gvc/regex_win32__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/gvc/regex_win32__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,3078 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.gvc; +import static smetana.core.Macro.UNSUPPORTED; + +public class regex_win32__c { +//1 11gt8s6kgcau21nr404v703de +// static char re_syntax_table[256] + + + + +//3 70j25rmarcwvzsh361zahv8zo +// static void init_syntax_once () +public static Object init_syntax_once(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("efoxnnabz2ejqjq7yhilggwkl"); // init_syntax_once () +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ch8iyg809c0lyd0bc1ytqve9u"); // register int c; +UNSUPPORTED("e5h3t56qntljcivxieh5a2mkl"); // static int done = 0; +UNSUPPORTED("97t7ymgg630qac6285iprjw9v"); // if (done) +UNSUPPORTED("z22f11bf96kkfe4raxc9v85x"); // return; +UNSUPPORTED("9t38w19yl5jyjw7oodb9irryl"); // bzero (re_syntax_table, sizeof re_syntax_table); +UNSUPPORTED("2rmhh76mmq03za3zgh7h64oxo"); // for (c = 'a'; c <= 'z'; c++) +UNSUPPORTED("c9iqf6ajwc71dgjf9wrkrmbc4"); // re_syntax_table[c] = 1; +UNSUPPORTED("7su4oyfxw838uiaf1heiygrem"); // for (c = 'A'; c <= 'Z'; c++) +UNSUPPORTED("c9iqf6ajwc71dgjf9wrkrmbc4"); // re_syntax_table[c] = 1; +UNSUPPORTED("3204uyvac8xoymt69hx2jb6xy"); // for (c = '0'; c <= '9'; c++) +UNSUPPORTED("c9iqf6ajwc71dgjf9wrkrmbc4"); // re_syntax_table[c] = 1; +UNSUPPORTED("bh45yjprswi5um0lyt9x4oony"); // re_syntax_table['_'] = 1; +UNSUPPORTED("2py1y9xsuhv2b6cmhyzmcm7c5"); // done = 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 cnkdb29e6yd10874mh5xc3onb +// typedef long int s_reg_t + + +//1 112kj8zza71a63rts3ariqovo +// typedef unsigned long int active_reg_t + + +//1 5mb2m65nd4m3w2de4v3md7o7m +// typedef unsigned long int reg_syntax_t + + +//1 289hb08yhe1j84wgbo0riknbd +// extern reg_syntax_t re_syntax_options + + +//1 3tctp51mbz3u1lyv5hope3jn4 +// typedef int regoff_t + + +//1 5bxw12pxo297kjn20mqjfmb86 +// reg_syntax_t re_syntax_options + + + + +//3 cxgvt7ypgdfqf2pew3m9adw9i +// reg_syntax_t re_set_syntax(reg_syntax_t syntax) +public static Object re_set_syntax(Object... arg) { +UNSUPPORTED("1jmrr8fkrd2tsxzkjzybt7zfh"); // reg_syntax_t +UNSUPPORTED("54rdixdzkwy1r5i8yfr9pfenx"); // re_set_syntax(reg_syntax_t syntax) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8mpejiyi92887r7wji6mys7nq"); // reg_syntax_t ret = re_syntax_options; +UNSUPPORTED("4kgq73hxpobga7t16qgh5znpe"); // re_syntax_options = syntax; +UNSUPPORTED("f3b7mj138albdr4lodyomke0z"); // return ret; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 4vl073wk5uvf75of82q0v5yyo +// static const char *re_error_msgid[] = + + +//1 1nsczrbp8olzcxwsty8y22p1n +// static int re_max_failures = 20000 + + +//1 bktlq1f2qk5dg76humjskteaa +// static char reg_unset_dummy + + +//1 1lj2324om1rijb97q9h9lxrhv +// typedef unsigned regnum_t + + +//1 e3zkpgg5cfqoq1zcfbcl2p5au +// typedef long pattern_offset_t + + + + +//3 b8oct2odjhnzacejd6swmozqo +// static reg_errcode_t regex_compile (const char *pattern, size_t size, reg_syntax_t syntax, struct re_pattern_buffer *bufp) +public static Object regex_compile(Object... arg) { +UNSUPPORTED("9aerjmw5n52ektwk47t1r9bh0"); // static reg_errcode_t +UNSUPPORTED("d6mg3ls5pg233p4i2fdv7ex1n"); // regex_compile (const char *pattern, +UNSUPPORTED("6t71eiupt12wdbfduq8n5i2sz"); // size_t size, +UNSUPPORTED("rg73gczoqylzcinp4bt2p1bw"); // reg_syntax_t syntax, +UNSUPPORTED("86tpwausdjloqigvxe0g3anqv"); // struct re_pattern_buffer *bufp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7mnubzvdt62l8vdiefqprs10u"); // /* We fetch characters from PATTERN here. Even though PATTERN is +UNSUPPORTED("a1g4ovz742smqh486dhwytetq"); // `char *' (i.e., signed), we declare these variables as unsigned, so +UNSUPPORTED("6yz29a8qermrzbhvqskuno14k"); // they can be reliably used as array indices. */ +UNSUPPORTED("9zgwtw1nsbdz6hcmyfrgkt63h"); // register unsigned char c, c1; +UNSUPPORTED("4z9j463uvcrdj4sj8xj9ye9py"); // /* A random temporary spot in PATTERN. */ +UNSUPPORTED("7ccacvizh7wnu163gfkc81hu9"); // const char *p1; +UNSUPPORTED("a293r2jyasseioor4io0pp504"); // /* Points to the end of the buffer, where we should append. */ +UNSUPPORTED("5o1tyy96cneoiw799jnb2n7ke"); // register unsigned char *b; +UNSUPPORTED("cb629v9wydhjaoevjdzc89oy7"); // /* Keeps track of unclosed groups. */ +UNSUPPORTED("dgr9dbgbyc1ook38b1euoeouv"); // compile_stack_type compile_stack; +UNSUPPORTED("39kpylizmi208i8v5yv2jhjp1"); // /* Points to the current (ending) position in the pattern. */ +UNSUPPORTED("9mu7yzuommm5kljxb28ceesow"); // const char *p = pattern; +UNSUPPORTED("9ok1q4b2nv6m90q14x6i0k0vm"); // const char *pend = pattern + size; +UNSUPPORTED("3oga1grlge5vw6xitb7bzcjw9"); // /* How to translate the characters in the pattern. */ +UNSUPPORTED("b6qhkmvrybk31a74eyxl9sf73"); // char * translate = bufp->translate; +UNSUPPORTED("34h9x8riezst40pxo4ww0500r"); // /* Address of the count-byte of the most recently inserted `exactn' +UNSUPPORTED("a8lirzoby6qul9ds74xai8gbs"); // command. This makes it possible to tell if a new exact-match +UNSUPPORTED("6w2dibeuk4g54m7pwlej7e8g8"); // character can be added to that command or if the character requires +UNSUPPORTED("atv0mvbd2maopv2ing97xuaph"); // a new `exactn' command. */ +UNSUPPORTED("s22nw5te3tpx7wkcpookrrve"); // unsigned char *pending_exact = 0; +UNSUPPORTED("er4ntnybigvcvnva5ls2gkx9f"); // /* Address of start of the most recently finished expression. +UNSUPPORTED("d9z7cp97wfgynilwmgxdn4w5p"); // This tells, e.g., postfix * where to find the start of its +UNSUPPORTED("cwisfez4xccc9t277piikcz7u"); // operand. Reset at the beginning of groups and alternatives. */ +UNSUPPORTED("5319mhfghffljm52aipkegz7i"); // unsigned char *laststart = 0; +UNSUPPORTED("asyqn8tnmhbn0u8yih4eowlsv"); // /* Address of beginning of regexp, or inside of last group. */ +UNSUPPORTED("2prv77rl1a0ic6cloa505n74"); // unsigned char *begalt; +UNSUPPORTED("1mpmicgb0aqvs4efkuf1423bb"); // /* Place in the uncompiled pattern (i.e., the {) to +UNSUPPORTED("6vlkvivbip6585ngqifn0yut3"); // which to go back if the interval is invalid. */ +UNSUPPORTED("dhc5wj4xmde53jd8j5mmpspo2"); // const char *beg_interval; +UNSUPPORTED("3gbwrgdnq67nw2ais7b1oaood"); // /* Address of the place where a forward jump should go to the end of +UNSUPPORTED("39t3zafmxkdw0y4k5jpg705xl"); // the containing expression. Each alternative of an `or' -- except the +UNSUPPORTED("7ax9rzx6regnwitqwud6fas5h"); // last -- ends with a forward jump of this sort. */ +UNSUPPORTED("c8bejewn623onq21mfqd22e2w"); // unsigned char *fixup_alt_jump = 0; +UNSUPPORTED("a0p6z20zonf6yhyd6u7i62l1f"); // /* Counts open-groups as they are encountered. Remembered for the +UNSUPPORTED("f3mw4fx5ayqshia0u0wfwq612"); // matching close-group on the compile stack, so the same register +UNSUPPORTED("albygnk4x6lv0oonnbwcx9zse"); // number is put in the stop_memory as the start_memory. */ +UNSUPPORTED("1jexufhhoiubt850z3ndj8ej5"); // regnum_t regnum = 0; +UNSUPPORTED("7481cz4i3vyo797cewvok0k4c"); // /* Initialize the compile stack. */ +UNSUPPORTED("ao1ytyamhvicfeyzqsidalxsk"); // compile_stack.stack = ((compile_stack_elt_t *) malloc ((32) * sizeof (compile_stack_elt_t))); +UNSUPPORTED("3pmfpvmkfjp9kx78cvcxd6cpy"); // if (compile_stack.stack == (void *)0) +UNSUPPORTED("ex5zj292r0bm8ons2oenc7d53"); // return REG_ESPACE; +UNSUPPORTED("6rth766rpftr2lf9tsj3ipcy3"); // compile_stack.size = 32; +UNSUPPORTED("7l76n0edqpze4bfgwt0jnlr23"); // compile_stack.avail = 0; +UNSUPPORTED("4d5adh0083zve5yjpmlxli8h1"); // /* Initialize the pattern buffer. */ +UNSUPPORTED("6qgussdbr9ruavpzcr0y58ts9"); // bufp->syntax = syntax; +UNSUPPORTED("c9tm2xzkehz9kbyrn2bkv3dwg"); // bufp->fastmap_accurate = 0; +UNSUPPORTED("91jbv9it8qe6sah0sxn6nd4w2"); // bufp->not_bol = bufp->not_eol = 0; +UNSUPPORTED("3rafz8q4yl9qbchg80xvodlsy"); // /* Set `used' to zero, so that if we return an error, the pattern +UNSUPPORTED("b6wnwmphpmnza6rdw0x8yy5kj"); // printer (for debugging) will think there's no pattern. We reset it +UNSUPPORTED("8xe4i97w2l1mmth54di1u7rrd"); // at the end. */ +UNSUPPORTED("b65vrlaj7a5mdhjx1m4vm2kzu"); // bufp->used = 0; +UNSUPPORTED("5v5ffm48jpbjz5t7q75z95oqu"); // /* Always count groups, whether or not bufp->no_sub is set. */ +UNSUPPORTED("fcycoe4nhtup93j74aqh2jlu"); // bufp->re_nsub = 0; +UNSUPPORTED("57cfyb08w4wnczh1o759ayl4l"); // /* Initialize the syntax table. */ +UNSUPPORTED("eoiuv77ltbli38ssdpi2gptkk"); // init_syntax_once (); +UNSUPPORTED("f0l0ry0lbt2gj40a13217dx11"); // if (bufp->allocated == 0) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("eblz85b36y9pboxm6zt66xr2h"); // if (bufp->buffer) +UNSUPPORTED("53s3p7apfgsn3pkcwkqznue34"); // { /* If zero allocated, but buffer is non-null, try to realloc +UNSUPPORTED("3mwc7vljmgej2pox1thi77h1t"); // enough space. This loses if buffer's address is bogus, but +UNSUPPORTED("2hni8mwtvtzlrz7iztjmo1gkm"); // that is the user's responsibility. */ +UNSUPPORTED("4soy7dr6bhuvmx7k9nk1d0ql8"); // ((bufp->buffer) = (unsigned char *) realloc (bufp->buffer, (32) * sizeof (unsigned char))); +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("1knjyao8ci3w18zqqcnmnitir"); // else +UNSUPPORTED("17v9yg0xtevf2uu5v3tmolocu"); // { /* Caller did not allocate a buffer. Do it for them. */ +UNSUPPORTED("6fravsvvcv922fixqgd9sfp3z"); // bufp->buffer = ((unsigned char *) malloc ((32) * sizeof (unsigned char))); +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("4as6xhocbf55x8cvv0z11to2x"); // if (!bufp->buffer) return (free (compile_stack.stack), REG_ESPACE); +UNSUPPORTED("af932qywpz9q6n0xek5lztd84"); // bufp->allocated = 32; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("5mg602ef37gzyyfswwutbcqs8"); // begalt = b = bufp->buffer; +UNSUPPORTED("89ht4djrhvh6xphi9py7k3pam"); // /* Loop through the uncompiled pattern until we're at the end. */ +UNSUPPORTED("5r7butg5genmj9dzegcwao4et"); // while (p != pend) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("42vbjcv24l0oaozyfwaw4j5nc"); // do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); +UNSUPPORTED("719kmsx403baae0d0ox2gyi3a"); // switch (c) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("32y7yv66mqjhrdqaf9ck9oi4y"); // case '^': +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("3j5jurrtqcxdphc3jlcg8lu39"); // if ( /* If at start of pattern, it's an operator. */ +UNSUPPORTED("acrtuah53gidq3uywocguoav"); // p == pattern + 1 +UNSUPPORTED("bs7cbfp1wd9jknqlj749u3bj3"); // /* If context independent, it's an operator. */ +UNSUPPORTED("9sznx5vvd3orgqcisdh571wv9"); // || syntax & (((((unsigned long int) 1) << 1) << 1) << 1) +UNSUPPORTED("7gzhx2l4j1gaba7epz2kdwhlj"); // /* Otherwise, depends on what's come before. */ +UNSUPPORTED("10earmgj12izv0tbj9aimxmji"); // || at_begline_loc_p (pattern, p, syntax)) +UNSUPPORTED("clssp7ivct1ku99qbhyb7dtzy"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (begline); } while (0); +UNSUPPORTED("euvqyl9ihnvv92dr2v2zshlo"); // else +UNSUPPORTED("dxpbgmfj2w220xy1q99fxje94"); // goto normal_char; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("9ogqrievi7oirs7cd4cs33egg"); // case '$': +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("hai791a97htfukh6iawb46oz"); // if ( /* If at end of pattern, it's an operator. */ +UNSUPPORTED("a0h309uru3crtdmsxpji7m2j3"); // p == pend +UNSUPPORTED("bs7cbfp1wd9jknqlj749u3bj3"); // /* If context independent, it's an operator. */ +UNSUPPORTED("9sznx5vvd3orgqcisdh571wv9"); // || syntax & (((((unsigned long int) 1) << 1) << 1) << 1) +UNSUPPORTED("2iqqtdvj90ata5pvx2o27gw4s"); // /* Otherwise, depends on what's next. */ +UNSUPPORTED("67wgd1do640yncemi3ce0qj90"); // || at_endline_loc_p (p, pend, syntax)) +UNSUPPORTED("35lv6vfpgmavt421g5ug4tdbc"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (endline); } while (0); +UNSUPPORTED("euvqyl9ihnvv92dr2v2zshlo"); // else +UNSUPPORTED("dxpbgmfj2w220xy1q99fxje94"); // goto normal_char; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("4yw8evd0fubkfck5nezds5dhn"); // case '+': +UNSUPPORTED("f0rooqc2e80a2plohrq4c3c91"); // case '?': +UNSUPPORTED("1ku9g8vhwccbudpz9e300f03z"); // if ((syntax & (((unsigned long int) 1) << 1)) +UNSUPPORTED("7sxu3x1nkq0rp14piw14s336e"); // || (syntax & ((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1))) +UNSUPPORTED("uivpjrr5me8j92jky5okan1c"); // goto normal_char; +UNSUPPORTED("ak9il2l94xwmflwso0qxuq07i"); // handle_plus: +UNSUPPORTED("77sjlj9q2m2icdnuxqgd896ux"); // case '*': +UNSUPPORTED("bog9pqkld0m0t6ypotbesbb2s"); // /* If there is no previous pattern... */ +UNSUPPORTED("6horrl50ttv3j0vlv0d550qe5"); // if (!laststart) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("8qgst65bgbkg69wykq7paitn0"); // if (syntax & (((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("4zp3pjt3o3sewewdrckac5e7t"); // return (free (compile_stack.stack), REG_BADRPT); +UNSUPPORTED("2ji76vo0qsyt5ldqyext7tdsg"); // else if (!(syntax & ((((((unsigned long int) 1) << 1) << 1) << 1) << 1))) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("2vnh9foicn3ppcbpvb6hdon87"); // /* Are we optimizing this jump? */ +UNSUPPORTED("60ry57pj80rgxp87816o6vpy2"); // boolean keep_string_p = 0; +UNSUPPORTED("6qwgte4fwcf1xqfiuge2ssau3"); // /* 1 means zero (many) matches is allowed. */ +UNSUPPORTED("7z75b80h28y72skvw3v96x2y5"); // char zero_times_ok = 0, many_times_ok = 0; +UNSUPPORTED("a3pm3eb949njdi5ypawoqc46v"); // /* If there is a sequence of repetition chars, collapse it +UNSUPPORTED("dovcg85ak5c45w4j2nz1vphpt"); // down to just one (the right one). We can't combine +UNSUPPORTED("enmqxu33e2oz4v7ad1h3regi1"); // interval operators with these because of, e.g., `a{2}*', +UNSUPPORTED("2ic453t1t5s0w63b328mvtw1h"); // which should only match an even number of `a's. */ +UNSUPPORTED("1nx31c51hb376ceydwsae35jq"); // for (;;) +UNSUPPORTED("9aq2ft2quyeattze0cwemwweo"); // { +UNSUPPORTED("1998skt4l5yp1v1sml3xtum0t"); // zero_times_ok |= c != '+'; +UNSUPPORTED("d4p0t1ujgqb32xcytuivs2m0m"); // many_times_ok |= c != '?'; +UNSUPPORTED("891uwttbfnv5bc58wpbg1fhgl"); // if (p == pend) +UNSUPPORTED("1fg4xctmq8acy7m0oob45guaz"); // break; +UNSUPPORTED("1ph6d2iv2trnwdx326iuetr4g"); // do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); +UNSUPPORTED("do4ccpdwh7h97tg1nxsm8tt4d"); // if (c == '*' +UNSUPPORTED("b9cokjueamyv69axw1ekph5qa"); // || (!(syntax & (((unsigned long int) 1) << 1)) && (c == '+' || c == '?'))) +UNSUPPORTED("c6tldeu5ffnykyfto7hi9ixau"); // ; +UNSUPPORTED("4zyx7dzchkorh28bz90x76p2g"); // else if (syntax & (((unsigned long int) 1) << 1) && c == '\\') +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("e9xhg2qnbm79uk0vrkf792u29"); // if (p == pend) return (free (compile_stack.stack), REG_EESCAPE); +UNSUPPORTED("518hxi8xgn35zetedpma2oo2k"); // do {if (p == pend) return REG_EEND; c1 = (unsigned char) *p++; if (translate) c1 = (unsigned char) translate[c1]; } while (0); +UNSUPPORTED("31364dtwzgpxty30b38zc4zkj"); // if (!(c1 == '+' || c1 == '?')) +UNSUPPORTED("el767oi7fhlc4apdbx8dsvnk6"); // { +UNSUPPORTED("2t22wkw5f3ffgm4ga51u5nrej"); // p--; +UNSUPPORTED("2t22wkw5f3ffgm4ga51u5nrej"); // p--; +UNSUPPORTED("brutz3uly6r5jyimug3eb5y9n"); // break; +UNSUPPORTED("b5m0ttlk23avgs4i47o8lbzg1"); // } +UNSUPPORTED("e31jqqw74li41ohhn86f6dom7"); // c = c1; +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("a4hbs6luulhltmygux2zimbcc"); // else +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("5cyajgw0lqe5reqenlh6er6vk"); // p--; +UNSUPPORTED("7vckzntfuo1ibi8r53gsfg8al"); // break; +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("5usbancvr06c7aua10b6rnz2v"); // /* If we get here, we found another repeat character. */ +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("4z09n9ulcj74vli0m0kclo5i"); // /* Star, etc. applied to an empty pattern is equivalent +UNSUPPORTED("1ixkehs9qjp0ehix96jklbcfm"); // to an empty pattern. */ +UNSUPPORTED("60xmx571g6e7xq9uvs63uu1eq"); // if (!laststart) +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("hi54423z7c97klm7jyc2i54y"); // /* Now we know whether or not zero matches is allowed +UNSUPPORTED("cdhyalprzmam31a4ky61gdsu5"); // and also whether or not two or more matches is allowed. */ +UNSUPPORTED("82umz1mp8urx9qjjtqh65sk5"); // if (many_times_ok) +UNSUPPORTED("8omf20fupbos0ngb4nxaz3sj"); // { /* More than one repetition is allowed, so put in at the +UNSUPPORTED("6vwybrs5isd11ynby19imvgnc"); // end a backward relative jump from `b' to before the next +UNSUPPORTED("7k3po89z1y12gwpxracwd1zwr"); // jump we're going to put in below (which jumps from +UNSUPPORTED("497rlrbp2r6kokgq8fic5z8li"); // laststart to after this jump). +UNSUPPORTED("elt3pujxvh1j9wbns2s7urafl"); // But if we are at the `*' in the exact sequence `.*\n', +UNSUPPORTED("aq9r7pdk4mwsuo46v85xd7nle"); // insert an unconditional jump backwards to the ., +UNSUPPORTED("afees40xo77whl3qvfrsjg0p2"); // instead of the beginning of the loop. This way we only +UNSUPPORTED("2f6wchn2e63ok4vso04jpeozp"); // push a failure point once, instead of every time +UNSUPPORTED("2mne6btvrwz6ly84kpb5k8fz2"); // through the loop. */ +UNSUPPORTED("9fy78dg2q1uu4c2t1zsyaestf"); // ; +UNSUPPORTED("7osfsgzoickbv6hh4uet35ib8"); // /* Allocate the space for the jump. */ +UNSUPPORTED("38dw1m55ji4uptkiga2iwgab7"); // while ((unsigned long) (b - bufp->buffer + (3)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); +UNSUPPORTED("2v0jxylpfaawr8vdl2dov0us5"); // /* We know we are not at the first character of the pattern, +UNSUPPORTED("djrrtgjb76xh1l5pw5u4kxcnv"); // because laststart was nonzero. And we've already +UNSUPPORTED("5f4ly8ng2ytcbc7ypdbpa8e11"); // incremented `p', by the way, to be the character after +UNSUPPORTED("4as3ltw89z2kch0mrty7q58ey"); // the `*'. Do we have to do something analogous here +UNSUPPORTED("d3grtqmpebse1zxznnwl3jm7c"); // for null bytes, because of RE_DOT_NOT_NULL? */ +UNSUPPORTED("vbl73uentmynsl9r6evk8ulc"); // if ((translate ? (char) translate[(unsigned char) (*(p - 2))] : (*(p - 2))) == (translate ? (char) translate[(unsigned char) ('.')] : ('.')) +UNSUPPORTED("3lbv5kv4tdnxzqobvqv6gz12l"); // && zero_times_ok +UNSUPPORTED("1ykhfelz1q80iguwwtohwqvm2"); // && p < pend && (translate ? (char) translate[(unsigned char) (*p)] : (*p)) == (translate ? (char) translate[(unsigned char) ('\n')] : ('\n')) +UNSUPPORTED("bxrp4x7jxoo38mvd9ft3k5db"); // && !(syntax & ((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1))) +UNSUPPORTED("741cloh2pdrplimiiruq6t4ct"); // { /* We have .*\n. */ +UNSUPPORTED("317e9s7jnbmgql8x4fdezgmv0"); // store_op1 (jump, b, (int) ((laststart) - (b) - 3)); +UNSUPPORTED("8ryrgqjl7v6ohb01o5em2psns"); // keep_string_p = 1; +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("a4hbs6luulhltmygux2zimbcc"); // else +UNSUPPORTED("3ksp6xs2pd8hkq033e06g4a00"); // /* Anything else. */ +UNSUPPORTED("4ab5zrwtdkltgbt8onvdet2r1"); // store_op1 (maybe_pop_jump, b, (int) ((laststart - 3) - (b) - 3)); +UNSUPPORTED("f4gsd1otghvhc8czjmw8qq776"); // /* We've added more stuff to the buffer. */ +UNSUPPORTED("7hdmsj9mi4jwnv83ar1ez4kwn"); // b += 3; +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("7htghz4zhsf1uqpwp6ytvbhih"); // /* On failure, jump from laststart to b + 3, which will be the +UNSUPPORTED("c630s54imd7p1b0raogcspf6p"); // end of the buffer after this jump is inserted. */ +UNSUPPORTED("5i16nim58sq8mvfckzqrj7q7e"); // while ((unsigned long) (b - bufp->buffer + (3)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); +UNSUPPORTED("e1gqwwg06ek9zwsxdqko22t8"); // insert_op1 (keep_string_p ? on_failure_keep_string_jump +UNSUPPORTED("od51xm1io9lvsdmwr60fm9nx"); // : on_failure_jump, +UNSUPPORTED("demgpwduvdu6c55lzwftle76m"); // laststart, (int) ((b + 3) - ( +UNSUPPORTED("a887hw7h3lz3jofwz10uxjcdp"); // laststart) - 3), b); +UNSUPPORTED("1t3kkww9qyeskw70p028ll4r1"); // pending_exact = 0; +UNSUPPORTED("1jpgahganw1gip7gnwn5n2vx6"); // b += 3; +UNSUPPORTED("38n9qcy0vfr2upedrm1d6by5o"); // if (!zero_times_ok) +UNSUPPORTED("9aq2ft2quyeattze0cwemwweo"); // { +UNSUPPORTED("15rx6swjp6qikvp0jmiy5rm4m"); // /* At least one repetition is required, so insert a +UNSUPPORTED("5xq4uy1msul1zhp9ptz49bbvn"); // `dummy_failure_jump' before the initial +UNSUPPORTED("3q62p85szhotzr22iijxb1lzh"); // `on_failure_jump' instruction of the loop. This +UNSUPPORTED("5ukburrf5iegq4x208czcfxp7"); // effects a skip over that instruction the first time +UNSUPPORTED("9zr6wiepyct1g2798ohlu821l"); // we hit that loop. */ +UNSUPPORTED("38dw1m55ji4uptkiga2iwgab7"); // while ((unsigned long) (b - bufp->buffer + (3)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); +UNSUPPORTED("caftp211etknfq81tggr97kq3"); // insert_op1 (dummy_failure_jump, laststart, (int) ((laststart + 6) - (laststart) - 3), b); +UNSUPPORTED("7hdmsj9mi4jwnv83ar1ez4kwn"); // b += 3; +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("a2evu0k4b91gqn1jmn3a0jwzw"); // case '.': +UNSUPPORTED("5nlf7z9fx92ejvc0jjc27l3ks"); // laststart = b; +UNSUPPORTED("14r433r50a5mz9kdbq4siwjqy"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (anychar); } while (0); +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("7r93xgyv26x925aap3ia8ymon"); // case '[': +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("2dyj1s6d9ag4nvt1f1crrdjfn"); // boolean had_char_class = 0; +UNSUPPORTED("4a3jhscbb3cd0w52yk8g7bkhm"); // if (p == pend) return (free (compile_stack.stack), REG_EBRACK); +UNSUPPORTED("18lthbap52pmrc5qc0gdkqazi"); // /* Ensure that we have enough space to push a charset: the +UNSUPPORTED("64im3as1hhwe4tfm27p855icz"); // opcode, the length count, and the bitset; 34 bytes in all. */ +UNSUPPORTED("dtfdonlqdk0z7gsn1s36st33w"); // while ((unsigned long) (b - bufp->buffer + (34)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); +UNSUPPORTED("8dx5294ey8snj5idlltwvrhb1"); // laststart = b; +UNSUPPORTED("610aa188uk96qcj24orwjx8fs"); // /* We test `*p == '^' twice, instead of using an if +UNSUPPORTED("5bc7brntk24ooxfmk1srxj8cb"); // statement, so we only need one BUF_PUSH. */ +UNSUPPORTED("f50kr5oskb25svx2g868njm8n"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (*p == '^' ? charset_not : charset); } while (0); +UNSUPPORTED("8evba7dkivr9l77jkvcmqcwz8"); // if (*p == '^') +UNSUPPORTED("6qmpdja8bt371mk2seyaa2gbr"); // p++; +UNSUPPORTED("7cikubv9dt5tpzkohonns5grc"); // /* Remember the first position in the bracket expression. */ +UNSUPPORTED("ams11hw6png742la6sel3atlf"); // p1 = p; +UNSUPPORTED("7xg1okqa5l3piclyijoek8ed8"); // /* Push the number of bytes in the bitmap. */ +UNSUPPORTED("attsgdtz0wo8uzzx0jzzakd9s"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) ((1 << 8) / 8); } while (0); +UNSUPPORTED("9i1ubvjzgw51kylobwxvkoguf"); // /* Clear the whole map. */ +UNSUPPORTED("3yt3lfhbs0hx9w9ci87vt4p51"); // bzero (b, (1 << 8) / 8); +UNSUPPORTED("2m8299zx4gtxg4ncikd476gkx"); // /* charset_not matches newline according to a syntax bit. */ +UNSUPPORTED("16flegxkvnil6me4t0kb73hcj"); // if ((re_opcode_t) b[-2] == charset_not +UNSUPPORTED("44gymzta58w37g7hbxz29z8ht"); // && (syntax & ((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1))) +UNSUPPORTED("bm4wsfgshzu6e47pvkdqzgoz6"); // (b[((unsigned char) ('\n')) / 8] |= 1 << (((unsigned char) '\n') % 8)); +UNSUPPORTED("2dle8bszohkrok9ivamd6wqu8"); // /* Read in characters and ranges, setting map bits. */ +UNSUPPORTED("1nx31c51hb376ceydwsae35jq"); // for (;;) +UNSUPPORTED("9aq2ft2quyeattze0cwemwweo"); // { +UNSUPPORTED("6jfb28a8r43ndwdevd7rrjlb2"); // if (p == pend) return (free (compile_stack.stack), REG_EBRACK); +UNSUPPORTED("1ph6d2iv2trnwdx326iuetr4g"); // do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); +UNSUPPORTED("djf8gjrarnydrvlu8tzndsd4t"); // /* \ might escape characters inside [...] and [^...]. */ +UNSUPPORTED("89w50n0xz0xx1wgf8ls0sce25"); // if ((syntax & ((unsigned long int) 1)) && c == '\\') +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("e9xhg2qnbm79uk0vrkf792u29"); // if (p == pend) return (free (compile_stack.stack), REG_EESCAPE); +UNSUPPORTED("518hxi8xgn35zetedpma2oo2k"); // do {if (p == pend) return REG_EEND; c1 = (unsigned char) *p++; if (translate) c1 = (unsigned char) translate[c1]; } while (0); +UNSUPPORTED("d1ssg2hoazmd76m91z40sp5sn"); // (b[((unsigned char) (c1)) / 8] |= 1 << (((unsigned char) c1) % 8)); +UNSUPPORTED("cke4ze78n6mw03utm8hpk0ozq"); // continue; +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("bvll4h37ech1nvv3p44tc97ia"); // /* Could be the end of the bracket expression. If it's +UNSUPPORTED("464yveauwiujz5tkl76ikld18"); // not (i.e., when the bracket expression is `[]' so +UNSUPPORTED("ekv9yerdywogeillz767k3yq9"); // far), the ']' character bit gets set way below. */ +UNSUPPORTED("39qeut34k7f0lyjj4z495n6am"); // if (c == ']' && p != p1 + 1) +UNSUPPORTED("1fg4xctmq8acy7m0oob45guaz"); // break; +UNSUPPORTED("d3v48zs419s4mxk9yyv5xgccj"); // /* Look ahead to see if it's a range when the last thing +UNSUPPORTED("65vqnx3pinl0sxqecc7937imc"); // was a character class. */ +UNSUPPORTED("8dtiybchqrzjmzzltkvknsq96"); // if (had_char_class && c == '-' && *p != ']') +UNSUPPORTED("8zurthmteo7b71btgvw1ke4rg"); // return (free (compile_stack.stack), REG_ERANGE); +UNSUPPORTED("d3v48zs419s4mxk9yyv5xgccj"); // /* Look ahead to see if it's a range when the last thing +UNSUPPORTED("5wt9bnagn7y3isqyb5kxh04s7"); // was a character: if this is a hyphen not at the +UNSUPPORTED("342gxn589rm7wkuq6jbilt9fr"); // beginning or the end of a list, then it's the range +UNSUPPORTED("8a0p71nhvq7jckckna5u4qr7t"); // operator. */ +UNSUPPORTED("bfxjivoy25rc3bw7qrspkzv1k"); // if (c == '-' +UNSUPPORTED("93mph3xo98uvv6qn8e4tbid15"); // && !(p - 2 >= pattern && p[-2] == '[') +UNSUPPORTED("1ce2lptewofyiq5ojhwc5va79"); // && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^') +UNSUPPORTED("5e843qj23bor49sf7nbcpwezc"); // && *p != ']') +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("f3s9czjbpp43p2benwj88e4vz"); // reg_errcode_t ret +UNSUPPORTED("bgzy0fkxhr0j88bt28d2oeo7m"); // = compile_range (&p, pend, translate, syntax, b); +UNSUPPORTED("6to7cm3b6s0m5pujlkqqm3m2x"); // if (ret != REG_NOERROR) return (free (compile_stack.stack), ret); +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("65gxrs7y9lu8v93z6nz75m4ck"); // else if (p[0] == '-' && p[1] != ']') +UNSUPPORTED("5av67x62ybjftr7suvc3tfqay"); // { /* This handles ranges made up of characters only. */ +UNSUPPORTED("cmimxguouw0qbcmhrejq3dnrm"); // reg_errcode_t ret; +UNSUPPORTED("6th47hqx3651aqvqnkzfm9yhl"); // /* Move past the `-'. */ +UNSUPPORTED("518hxi8xgn35zetedpma2oo2k"); // do {if (p == pend) return REG_EEND; c1 = (unsigned char) *p++; if (translate) c1 = (unsigned char) translate[c1]; } while (0); +UNSUPPORTED("8tyv3mj3db8ezfohi5j249qg9"); // ret = compile_range (&p, pend, translate, syntax, b); +UNSUPPORTED("6to7cm3b6s0m5pujlkqqm3m2x"); // if (ret != REG_NOERROR) return (free (compile_stack.stack), ret); +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("60ee1e25m2s16fec1vpvlz4n7"); // /* See if we're at the beginning of a possible character +UNSUPPORTED("5paafwhmjbew6wm1r82cmglhi"); // class. */ +UNSUPPORTED("1fxr5b7xujuw4t8tdfwstlhb5"); // else if (syntax & ((((unsigned long int) 1) << 1) << 1) && c == '[' && *p == ':') +UNSUPPORTED("c6rvznitpculxv2jbhy4ncxyq"); // { /* Leave room for the null. */ +UNSUPPORTED("35kxjv2sfddffc4bqeyh4imoc"); // char str[6 + 1]; +UNSUPPORTED("eqri2rfe7jnz1m2rij615jaj1"); // do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); +UNSUPPORTED("d4co4ddeumifnjey3eestnfzq"); // c1 = 0; +UNSUPPORTED("4w2zfigedythaavjy46j6zdev"); // /* If pattern is `[[:'. */ +UNSUPPORTED("7eef052f6ws02kwwd07t2gogt"); // if (p == pend) return (free (compile_stack.stack), REG_EBRACK); +UNSUPPORTED("6rl79w31o26w7y9v243bzntd1"); // for (;;) +UNSUPPORTED("el767oi7fhlc4apdbx8dsvnk6"); // { +UNSUPPORTED("5rs5zp1k5smyekvir9pcnto9c"); // do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); +UNSUPPORTED("5epbd4u9xrfpj6miw9wkaw3as"); // if (c == ':' || c == ']' || p == pend +UNSUPPORTED("1xzx4vfazvv793wm3hh5e4ixz"); // || c1 == 6) +UNSUPPORTED("1lzsscwayr2ygeagix6ouorzi"); // break; +UNSUPPORTED("a6wcfy57u3wkrc8jiwpoxhutg"); // str[c1++] = c; +UNSUPPORTED("b5m0ttlk23avgs4i47o8lbzg1"); // } +UNSUPPORTED("6hm7an9ruv18077h9go7vsgf4"); // str[c1] = '\0'; +UNSUPPORTED("bi9fgjbp9y3y2pyuu9tszhyox"); // /* If isn't a word bracketed by `[:' and:`]': +UNSUPPORTED("7nvg1ljm6ad0h7g7s60ej9uca"); // undo the ending character, the letters, and leave +UNSUPPORTED("2272ea1yqp1bpznxgbrxbp00w"); // the leading `:' and `[' (but set bits for them). */ +UNSUPPORTED("5tqbx68w26ea5218a43fyowz3"); // if (c == ':' && *p == ']') +UNSUPPORTED("el767oi7fhlc4apdbx8dsvnk6"); // { +UNSUPPORTED("dicsp7memxlin76m5jtuhk6dv"); // int ch; +UNSUPPORTED("74i3rk9pefjb3y4b7o4aa2iq9"); // boolean is_alnum = ((strcmp (str, "alnum") == 0)); +UNSUPPORTED("89wnjt7xu39ig5ibxfz800la7"); // boolean is_alpha = ((strcmp (str, "alpha") == 0)); +UNSUPPORTED("70u6gm5ko26rbqgsh5w8iswjq"); // boolean is_blank = ((strcmp (str, "blank") == 0)); +UNSUPPORTED("1aaohxjchuctfrlc9v29p77u8"); // boolean is_cntrl = ((strcmp (str, "cntrl") == 0)); +UNSUPPORTED("74upuhtioo8extzco95rwsrj8"); // boolean is_digit = ((strcmp (str, "digit") == 0)); +UNSUPPORTED("44vvyq4v0mo3kf1e60wcz5pq1"); // boolean is_graph = ((strcmp (str, "graph") == 0)); +UNSUPPORTED("ampk1k6gw3p7tnpd7rlk9zpbh"); // boolean is_lower = ((strcmp (str, "lower") == 0)); +UNSUPPORTED("dfcf36k8u7asts9g1790th87m"); // boolean is_print = ((strcmp (str, "print") == 0)); +UNSUPPORTED("94toygdeo23h0nswi5ypjemuj"); // boolean is_punct = ((strcmp (str, "punct") == 0)); +UNSUPPORTED("5gzado7yzz8iw3b7wmsnnv1c"); // boolean is_space = ((strcmp (str, "space") == 0)); +UNSUPPORTED("brptc46jbde0ytz2cf57z0qj9"); // boolean is_upper = ((strcmp (str, "upper") == 0)); +UNSUPPORTED("6y30d6k6j6v6mo0u34x84x7pi"); // boolean is_xdigit = ((strcmp (str, "xdigit") == 0)); +UNSUPPORTED("5xbajy2nf78y44rt7wqi0ipvw"); // if (!(((strcmp (str, "alpha") == 0)) || ((strcmp (str, "upper") == 0)) || ((strcmp (str, "lower") == 0)) || ((strcmp (str, "digit") == 0)) || ((strcmp (str, "alnum") == 0)) || ((strcmp (str, "xdigit") == 0)) || ((strcmp (str, "space") == 0)) || ((strcmp (str, "print") == 0)) || ((strcmp (str, "punct") == 0)) || ((strcmp (str, "graph") == 0)) || ((strcmp (str, "cntrl") == 0)) || ((strcmp (str, "blank") == 0)))) +UNSUPPORTED("9roq2o5jp44jioxvumhpzhasp"); // return (free (compile_stack.stack), REG_ECTYPE); +UNSUPPORTED("b01volng00k0jszlwguip1za2"); // /* Throw away the ] at the end of the character +UNSUPPORTED("6v4ad7tk28ej4z6x4p9zfn9ip"); // class. */ +UNSUPPORTED("5rs5zp1k5smyekvir9pcnto9c"); // do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); +UNSUPPORTED("ahygyv10li3nm82zryhpg9mbm"); // if (p == pend) return (free (compile_stack.stack), REG_EBRACK); +UNSUPPORTED("e0htyvo32yvtsowvtr07q7jcw"); // for (ch = 0; ch < 1 << 8; ch++) +UNSUPPORTED("ednrjrwumcyqj77ytrr2eszv"); // { +UNSUPPORTED("3k2ocusl5iq9ds3ppdqj68572"); // /* This was split into 3 if's to +UNSUPPORTED("9gbw8s1phg1eyew1sfpr5kp3f"); // avoid an arbitrary limit in some compiler. */ +UNSUPPORTED("2cntwsg5hxbdi0ckf9y8w0mnq"); // if ( (is_alnum && (1 && isalnum (ch))) +UNSUPPORTED("1zgfij4s84eufjba2ozx3lkrk"); // || (is_alpha && (1 && isalpha (ch))) +UNSUPPORTED("bqa0xuagje3ikuybu56a5lsfa"); // || (is_blank && ((ch) == ' ' || (ch) == '\t')) +UNSUPPORTED("dnw7neodbiod4p16f06qsugzl"); // || (is_cntrl && (1 && iscntrl (ch)))) +UNSUPPORTED("6qfn7xakyg09tnfa2ie1sh8p6"); // (b[((unsigned char) (ch)) / 8] |= 1 << (((unsigned char) ch) % 8)); +UNSUPPORTED("6a1x5lr2tbh4dux8kqoyovq6z"); // if ( (is_digit && (1 && isdigit (ch))) +UNSUPPORTED("6uh9v7mcu8jqpc8ab1xqdpupe"); // || (is_graph && (1 && isprint (ch) && !isspace (ch))) +UNSUPPORTED("2kza3pwfg7co598ybwubyyjtb"); // || (is_lower && (1 && islower (ch))) +UNSUPPORTED("2ve5o48kbom0zknpyyo4nrw8b"); // || (is_print && (1 && isprint (ch)))) +UNSUPPORTED("6qfn7xakyg09tnfa2ie1sh8p6"); // (b[((unsigned char) (ch)) / 8] |= 1 << (((unsigned char) ch) % 8)); +UNSUPPORTED("eu7igk6hg1s58sklwzk61h4b7"); // if ( (is_punct && (1 && ispunct (ch))) +UNSUPPORTED("eu3t6ngjxiw3bd3n428dpndsz"); // || (is_space && (1 && isspace (ch))) +UNSUPPORTED("cyrylgd8tsf5lm7q40ozat1u6"); // || (is_upper && (1 && isupper (ch))) +UNSUPPORTED("6uhsgqbeke0ipkactcwfponfm"); // || (is_xdigit && (1 && isxdigit (ch)))) +UNSUPPORTED("6qfn7xakyg09tnfa2ie1sh8p6"); // (b[((unsigned char) (ch)) / 8] |= 1 << (((unsigned char) ch) % 8)); +UNSUPPORTED("d10pfpemohjrojtw32b9u288j"); // if ( translate && (is_upper || is_lower) +UNSUPPORTED("dn91c7ek6aq14v8orwpui41nf"); // && ((1 && isupper (ch)) || (1 && islower (ch)))) +UNSUPPORTED("6qfn7xakyg09tnfa2ie1sh8p6"); // (b[((unsigned char) (ch)) / 8] |= 1 << (((unsigned char) ch) % 8)); +UNSUPPORTED("4mlmk54q1pd097btjgvhds4or"); // } +UNSUPPORTED("377au4sk1ya757gr7n0hqcmrn"); // had_char_class = 1; +UNSUPPORTED("b5m0ttlk23avgs4i47o8lbzg1"); // } +UNSUPPORTED("61qf7b2jxc7j3knm5ts69f0b6"); // else +UNSUPPORTED("el767oi7fhlc4apdbx8dsvnk6"); // { +UNSUPPORTED("7m4co85wi9arl9dcdfqpb4za8"); // c1++; +UNSUPPORTED("20tgbjihyvtowact7dzcr1ecf"); // while (c1--) +UNSUPPORTED("8je1mldqzk080hkvqxenba16t"); // p--; +UNSUPPORTED("48kiij4wie0njh1vtga7it2dv"); // (b[((unsigned char) ('[')) / 8] |= 1 << (((unsigned char) '[') % 8)); +UNSUPPORTED("dv206lne3atc9xm9yvrhv1ybg"); // (b[((unsigned char) (':')) / 8] |= 1 << (((unsigned char) ':') % 8)); +UNSUPPORTED("41vc3rnsrwhzg40t2l6ddpjfb"); // had_char_class = 0; +UNSUPPORTED("b5m0ttlk23avgs4i47o8lbzg1"); // } +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("a4hbs6luulhltmygux2zimbcc"); // else +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("nugbt1in6a1t1qaxqdyyi3ep"); // had_char_class = 0; +UNSUPPORTED("17maz3hujafwurweozb151wdn"); // (b[((unsigned char) (c)) / 8] |= 1 << (((unsigned char) c) % 8)); +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("ehzhyhula77mysp4xro2dci8t"); // /* Discard any (non)matching list bytes that are all 0 at the +UNSUPPORTED("el3n9zylp6tlrb6d73napyvmy"); // end of the map. Decrease the map-length byte too. */ +UNSUPPORTED("5aojv97eoyl5m04xfurgaavwm"); // while ((int) b[-1] > 0 && b[b[-1] - 1] == 0) +UNSUPPORTED("ajlocpcq3igxmb5gmsoqvv2es"); // b[-1]--; +UNSUPPORTED("bhvngkxhzl8kmmso1yya535k3"); // b += b[-1]; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("6bh4kues0yl62d5yxc9atvjif"); // case '(': +UNSUPPORTED("10vjrts0i5hyw8tlbrt0z7rxn"); // if (syntax & (((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("bmyrcl5ximm9vy0tneijgrytk"); // goto handle_open; +UNSUPPORTED("cunk7vpvzj28y1x4gn62gxpce"); // else +UNSUPPORTED("uivpjrr5me8j92jky5okan1c"); // goto normal_char; +UNSUPPORTED("1e0dw1ejy35o3woadzbcsm7fr"); // case ')': +UNSUPPORTED("10vjrts0i5hyw8tlbrt0z7rxn"); // if (syntax & (((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("3s6h8cwqnf4sxe6ctgnhnea58"); // goto handle_close; +UNSUPPORTED("cunk7vpvzj28y1x4gn62gxpce"); // else +UNSUPPORTED("uivpjrr5me8j92jky5okan1c"); // goto normal_char; +UNSUPPORTED("e3rwmj3a70hs7pld4kwdx60mn"); // case '\n': +UNSUPPORTED("70gx6eoougt8rlinl56yw83xr"); // if (syntax & (((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("5jivfhwm58xf3nhm2fe6mhe63"); // goto handle_alt; +UNSUPPORTED("cunk7vpvzj28y1x4gn62gxpce"); // else +UNSUPPORTED("uivpjrr5me8j92jky5okan1c"); // goto normal_char; +UNSUPPORTED("4alxh05h1fjl2sladyp35v6wj"); // case '|': +UNSUPPORTED("3torkuptfbkp3zjwrckz7pqdn"); // if (syntax & (((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("5jivfhwm58xf3nhm2fe6mhe63"); // goto handle_alt; +UNSUPPORTED("cunk7vpvzj28y1x4gn62gxpce"); // else +UNSUPPORTED("uivpjrr5me8j92jky5okan1c"); // goto normal_char; +UNSUPPORTED("4pyfskl7wp2jd81x0kmp62qoi"); // case '{': +UNSUPPORTED("5b1d1n2on553ca86p9l993tzn"); // if (syntax & (((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) && syntax & ((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("48zoic9u273bq7o6wfz7y7fsv"); // goto handle_interval; +UNSUPPORTED("cunk7vpvzj28y1x4gn62gxpce"); // else +UNSUPPORTED("uivpjrr5me8j92jky5okan1c"); // goto normal_char; +UNSUPPORTED("5350k8qj9jz4pvuqs0weppxzm"); // case '\\': +UNSUPPORTED("drfl8x3xhp9nddd3popxg4kkf"); // if (p == pend) return (free (compile_stack.stack), REG_EESCAPE); +UNSUPPORTED("27v1be7swlc5n86wdyk7yqicm"); // /* Do not translate the character after the \, so that we can +UNSUPPORTED("aimxtldmdqlup4n4gcasbmjpm"); // distinguish, e.g., \B from \b, even if we normally would +UNSUPPORTED("8y750xv4fwoof20pgyb54iljp"); // translate, e.g., B to b. */ +UNSUPPORTED("emr80p3t30z3qcchdf6qsg7op"); // do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; } while (0); +UNSUPPORTED("1wwqm41fujo96fngaibe11cs"); // switch (c) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("8jxolljx883gvj5ry1lre79rm"); // case '(': +UNSUPPORTED("59nlrexduxa9d2pv4p8p4wfyn"); // if (syntax & (((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("duzsz5s9lw56m1on7ajxgk9o2"); // goto normal_backslash; +UNSUPPORTED("1mo91efxfidrlkj7o2hpimm5g"); // handle_open: +UNSUPPORTED("cc2g9mgbjo7991epy9celv5dq"); // bufp->re_nsub++; +UNSUPPORTED("e816ua3kiygoarxwt4u3kjw2e"); // regnum++; +UNSUPPORTED("abfkotx8f2o71l3ungy2dc61b"); // if ((compile_stack.avail == compile_stack.size)) +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("5r9ltvya89zzc88t9p8g86dxp"); // ((compile_stack.stack) = ( +UNSUPPORTED("5q6n9lfuwcrd4xf1g8vam0mqg"); // compile_stack_elt_t *) realloc (compile_stack.stack, (compile_stack.size << 1) * sizeof ( +UNSUPPORTED("2a7bsn9w2iinvqmd970g996fq"); // compile_stack_elt_t))); +UNSUPPORTED("dsrcc4quas84hhfjjm5yh2be8"); // if (compile_stack.stack == (void *)0) return REG_ESPACE; +UNSUPPORTED("8kq2kc3jebolynu1cy6403pl0"); // compile_stack.size <<= 1; +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("e0bq2fat5uym1sf4darkcwl7v"); // /* These are the values to restore when we hit end of this +UNSUPPORTED("3vpixvd7xctqmc3ngtezp4xh4"); // group. They are all relative offsets, so that if the +UNSUPPORTED("2v6zztbhem2o09k7pqvggwe8h"); // whole pattern moves because of realloc, they will still +UNSUPPORTED("57di400em2riuffwpvny0f24u"); // be valid. */ +UNSUPPORTED("8rxnof37j5xup2c6z4diq79ou"); // (compile_stack.stack[compile_stack.avail]).begalt_offset = begalt - bufp->buffer; +UNSUPPORTED("9nay0qlhefwna3c6dilyk0ljp"); // (compile_stack.stack[compile_stack.avail]).fixup_alt_jump +UNSUPPORTED("aq269vu0tq0y8wvt7vg6y41u8"); // = fixup_alt_jump ? fixup_alt_jump - bufp->buffer + 1 : 0; +UNSUPPORTED("f2a1p7nj50nhzemnvvv85l9wp"); // (compile_stack.stack[compile_stack.avail]).laststart_offset = b - bufp->buffer; +UNSUPPORTED("3ikd9wh2ibpe6fnfbwac6mal"); // (compile_stack.stack[compile_stack.avail]).regnum = regnum; +UNSUPPORTED("1222t3yuwlm1hv92xmzgstlpj"); // /* We will eventually replace the 0 with the number of +UNSUPPORTED("b5a63c42wobd53sp3c64zj34u"); // groups inner to this one. But do not push a +UNSUPPORTED("1indupc2ufbt22ci1btaoi3w1"); // start_memory for groups beyond the last one we can +UNSUPPORTED("clbbjbwg9b4yr40r3qt26gayn"); // represent in the compiled pattern. */ +UNSUPPORTED("dn6qx81h224i04gen8lz36bur"); // if (regnum <= 255) +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("b55i0sl0dvhuj7r94cz8uascg"); // (compile_stack.stack[compile_stack.avail]).inner_group_offset = b - bufp->buffer + 2; +UNSUPPORTED("crcx4g4ali1dijvt94wdz6nsm"); // do { while ((unsigned long) (b - bufp->buffer + (3)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (start_memory); *b++ = (unsigned char) (regnum); *b++ = (unsigned char) (0); } while (0); +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("94rzmxep7enhqkfnp2762ytyy"); // compile_stack.avail++; +UNSUPPORTED("dphv9qka2txhy68rnsif6jynt"); // fixup_alt_jump = 0; +UNSUPPORTED("dvt6va09huijx10zufnnjqgl3"); // laststart = 0; +UNSUPPORTED("90zo4it529eaunfkfdxoxrdgj"); // begalt = b; +UNSUPPORTED("dvj2nuag66y7el3zrpla0153y"); // /* If we've reached MAX_REGNUM groups, then this open +UNSUPPORTED("2u4e034ze821746znru3h0b45"); // won't actually generate any code, so we'll have to +UNSUPPORTED("dk5vb9d5gkrw8sibofm4qt4ue"); // clear pending_exact explicitly. */ +UNSUPPORTED("7s8z4qnugzgnbuvds8u8a5jep"); // pending_exact = 0; +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("f58m8dl8wsiu09tv3k6hddsnz"); // case ')': +UNSUPPORTED("8rxf228e9g6ihw68iqgw5ye4v"); // if (syntax & (((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) goto normal_backslash; +UNSUPPORTED("7yogipyu9e9xkgapyvsso5js4"); // if ((compile_stack.avail == 0)) { +UNSUPPORTED("8jaoyupj1e28u8vqk14htwrtv"); // if (syntax & (((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("7twsisd1xmsx52xuobbqhozvn"); // goto normal_backslash; +UNSUPPORTED("a4hbs6luulhltmygux2zimbcc"); // else +UNSUPPORTED("dn8ttvbrvj1svr73kt4zmcugv"); // return (free (compile_stack.stack), REG_ERPAREN); +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("3bc4i0fs7quuiznm2wabuv57g"); // handle_close: +UNSUPPORTED("cba08qms5w8uqvkd4p9iqz909"); // if (fixup_alt_jump) +UNSUPPORTED("1lzprxcdmzqjb9whh02ptkgin"); // { /* Push a dummy failure point at the end of the +UNSUPPORTED("cc7pak11xcdny8f782y93y6d4"); // alternative for a possible future +UNSUPPORTED("4iprb2tgw3ra22d8s7u4ny04z"); // `pop_failure_jump' to pop. See comments at +UNSUPPORTED("il2pao7ylwdupdmwkc63wt74"); // `push_dummy_failure' in `re_match_2'. */ +UNSUPPORTED("bsoqdb55d2fj7nrshha8baj79"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (push_dummy_failure); } while (0); +UNSUPPORTED("bsg3cvulx3vuba3c4g7h8wi9e"); // /* We allocated space for this jump when we assigned +UNSUPPORTED("81pcbxblcl9t5t7fqo3daz26"); // to `fixup_alt_jump', in the `handle_alt' case below. */ +UNSUPPORTED("42dp50c2b5kexwd7wxmwewwe1"); // store_op1 (jump_past_alt, fixup_alt_jump, (int) ((b - 1) - (fixup_alt_jump) - 3)); +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("172uzd85uuznm53m6t1nv9ke5"); // /* See similar code for backslashed left paren above. */ +UNSUPPORTED("7yogipyu9e9xkgapyvsso5js4"); // if ((compile_stack.avail == 0)) { +UNSUPPORTED("8jaoyupj1e28u8vqk14htwrtv"); // if (syntax & (((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("6gqrsbcf35slq98fdu38ysotz"); // goto normal_char; +UNSUPPORTED("a4hbs6luulhltmygux2zimbcc"); // else +UNSUPPORTED("dn8ttvbrvj1svr73kt4zmcugv"); // return (free (compile_stack.stack), REG_ERPAREN); +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("eniovbcxrkcn8texhpvd1c3j"); // /* Since we just checked for an empty stack above, this +UNSUPPORTED("oah0j3x85xy0y5snf99b5uto"); // ``can't happen''. */ +UNSUPPORTED("e4kt1tmmevqvy3cbyk6xnznck"); // ; +UNSUPPORTED("9aq2ft2quyeattze0cwemwweo"); // { +UNSUPPORTED("zxem7lefmt7jmq1sphx8jq5d"); // /* We don't just want to restore into `regnum', because +UNSUPPORTED("eshff1bkln1euqcvo55z6arar"); // later groups should continue to be numbered higher, +UNSUPPORTED("hyn2g413dbg1jtec9jsz3ujb"); // as in `(ab)c(de)' -- the second group is #2. */ +UNSUPPORTED("e26xy4hqgvbad7pusqf04i868"); // regnum_t this_group_regnum; +UNSUPPORTED("6n0r61042a9cp17p8uaa2pvkk"); // compile_stack.avail--; +UNSUPPORTED("b8x4vi5eywvcxrfzoej5bwryf"); // begalt = bufp->buffer + (compile_stack.stack[compile_stack.avail]).begalt_offset; +UNSUPPORTED("1xvm5ivpx5tz8e199a7p2rmqz"); // fixup_alt_jump +UNSUPPORTED("4umag2hy9kw4kqozrwydhawfq"); // = (compile_stack.stack[compile_stack.avail]).fixup_alt_jump +UNSUPPORTED("5gcmnf7zgwup5dbu5kddwwfq5"); // ? bufp->buffer + (compile_stack.stack[compile_stack.avail]).fixup_alt_jump - 1 +UNSUPPORTED("1gewh4lotwkkm4iqn6ggzwkoq"); // : 0; +UNSUPPORTED("85k6r2lf00egr6wmh6ynrl2p5"); // laststart = bufp->buffer + (compile_stack.stack[compile_stack.avail]).laststart_offset; +UNSUPPORTED("8hnnnyzrlgnojw4fgthz9m20m"); // this_group_regnum = (compile_stack.stack[compile_stack.avail]).regnum; +UNSUPPORTED("dlko1f9w54peneqoca91cgrci"); // /* If we've reached MAX_REGNUM groups, then this open +UNSUPPORTED("74txdb0o7dhsdiultkxutc0e7"); // won't actually generate any code, so we'll have to +UNSUPPORTED("185wciv8bzl59e6kldksp04w4"); // clear pending_exact explicitly. */ +UNSUPPORTED("47qf9noup192j3ixvbaqfafxw"); // pending_exact = 0; +UNSUPPORTED("askuaehvoj7enatduzagqwmbk"); // /* We're at the end of the group, so now we know how many +UNSUPPORTED("autf5q3thbf8mmptmgx0msnh4"); // groups were inside this one. */ +UNSUPPORTED("a8riafizqdv5zjapabhopp72g"); // if (this_group_regnum <= 255) +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("2wmjb2xbz36ytg6g1bgfd4hb1"); // unsigned char *inner_group_loc +UNSUPPORTED("bzfdj6g2ck20pq1mb50l27a9v"); // = bufp->buffer + (compile_stack.stack[compile_stack.avail]).inner_group_offset; +UNSUPPORTED("el3pwrfnbqiexy2sk0rffy0cf"); // *inner_group_loc = regnum - this_group_regnum; +UNSUPPORTED("cguv9rjc1iive3bv1yez75f03"); // do { while ((unsigned long) (b - bufp->buffer + (3)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (stop_memory); *b++ = (unsigned char) (this_group_regnum); *b++ = (unsigned char) ( +UNSUPPORTED("7sev1sdu00ye0rtlo3hndpvge"); // regnum - this_group_regnum); } while (0); +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("1r6y7bujaca34ru0thv040wer"); // case '|': /* `\|'. */ +UNSUPPORTED("46dgptds7v1z98qko5xqgje7h"); // if (syntax & ((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) || syntax & (((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("duzsz5s9lw56m1on7ajxgk9o2"); // goto normal_backslash; +UNSUPPORTED("4zdduwo0bies2nyvyh3rkqec5"); // handle_alt: +UNSUPPORTED("eh6qytrwlnojjauu38ckl7ieo"); // if (syntax & ((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("71lbycb6i00gg9x1a2qrb3eip"); // /* Insert before the previous alternative a jump which +UNSUPPORTED("7e4xxb42diyggtjzhyj0r4iht"); // jumps to this alternative if the former fails. */ +UNSUPPORTED("12a3mmfyhz3lv9g634sbhwpnl"); // while ((unsigned long) (b - bufp->buffer + (3)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); +UNSUPPORTED("e3r36lsf9nfoaplwmusccx2ko"); // insert_op1 (on_failure_jump, begalt, (int) ((b + 6) - (begalt) - 3), b); +UNSUPPORTED("7s8z4qnugzgnbuvds8u8a5jep"); // pending_exact = 0; +UNSUPPORTED("ebm7g0g1nuacoouvopi1thit2"); // b += 3; +UNSUPPORTED("2oav1ek69wp16iydew6ok9ox8"); // /* The alternative before this one has a jump after it +UNSUPPORTED("cmcbmjy59tx8k81e3ek6xwlvq"); // which gets executed if it gets matched. Adjust that +UNSUPPORTED("7jb4wxi0em6v0jucfjtw3a4up"); // jump so it will jump to this alternative's analogous +UNSUPPORTED("5zlorzwitjp83i56wns9w8u0r"); // jump (put in below, which in turn will jump to the next +UNSUPPORTED("3y12zjyrd8x7fd4xc7uz7wk9b"); // (if any) alternative's such jump, etc.). The last such +UNSUPPORTED("7oj6n4fel5k5oe1hc1w024dj5"); // jump jumps to the correct final destination. A picture: +UNSUPPORTED("ey74hniulk9kz47tqr8by3ul4"); // _____ _____ +UNSUPPORTED("ded5vl0okjroo4lbzal107hid"); // | | | | +UNSUPPORTED("8dlq9vw86vwqva8uk09fpjhnz"); // | v | v +UNSUPPORTED("6xr500bohtokobmkx1m276vk2"); // a | b | c +UNSUPPORTED("k27r9mjl8i2jpghyf3yd76ss"); // If we are at `b', then fixup_alt_jump right now points to a +UNSUPPORTED("9jlwvx46zdiyc0cgpc9aichx2"); // three-byte space after `a'. We'll put in the jump, set +UNSUPPORTED("7gw6bsjyzgswrermi9mrvnnd9"); // fixup_alt_jump to right after `b', and leave behind three +UNSUPPORTED("996t1kfvkq1wsgyy9twl2hmf5"); // bytes which we'll fill in when we get to after `c'. */ +UNSUPPORTED("cba08qms5w8uqvkd4p9iqz909"); // if (fixup_alt_jump) +UNSUPPORTED("1na9w390cmfhlvzr6zo51tmtb"); // store_op1 (jump_past_alt, fixup_alt_jump, (int) ((b) - (fixup_alt_jump) - 3)); +UNSUPPORTED("8ed964065ejrs0q6lzv94yez1"); // /* Mark and leave space for a jump after this alternative, +UNSUPPORTED("25baag8i46m3zhww0ac4k5o0x"); // to be filled in later either by next alternative or +UNSUPPORTED("87vumt536jh7giifqd1s7e35m"); // when know we're at the end of a series of alternatives. */ +UNSUPPORTED("ev3p48k8fo943q12gph5h8h5i"); // fixup_alt_jump = b; +UNSUPPORTED("12a3mmfyhz3lv9g634sbhwpnl"); // while ((unsigned long) (b - bufp->buffer + (3)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); +UNSUPPORTED("ebm7g0g1nuacoouvopi1thit2"); // b += 3; +UNSUPPORTED("dvt6va09huijx10zufnnjqgl3"); // laststart = 0; +UNSUPPORTED("90zo4it529eaunfkfdxoxrdgj"); // begalt = b; +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("99gf69q37flmk5nul07d806ch"); // case '{': +UNSUPPORTED("eh7o49r6vtoc1lilgh11tvn4b"); // /* If \{ is a literal. */ +UNSUPPORTED("bpfokxd4igwyfns09495mnyj8"); // if (!(syntax & (((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("5qn7772e7nzkqvtlkiys53olq"); // /* If we're at `\{' and it's not the open-interval +UNSUPPORTED("8a0p71nhvq7jckckna5u4qr7t"); // operator. */ +UNSUPPORTED("cswuz8yxul8hsi2ysw71xb9rz"); // || ((syntax & (((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) && (syntax & ((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1))) +UNSUPPORTED("d0s744fq2fs9l9aaekpxlqj4e"); // || (p - 2 == pattern && p == pend)) +UNSUPPORTED("duzsz5s9lw56m1on7ajxgk9o2"); // goto normal_backslash; +UNSUPPORTED("bxsvs3tj432mvaj55kae5o9ue"); // handle_interval: +UNSUPPORTED("9aq2ft2quyeattze0cwemwweo"); // { +UNSUPPORTED("ey78j6wwy5vn22b5iutepsjvj"); // /* If got here, then the syntax allows intervals. */ +UNSUPPORTED("22u5dv9jzoa3qwk32b1729l4r"); // /* At least (most) this many matches must be made. */ +UNSUPPORTED("8hhxunayr90degkndrot61r2v"); // int lower_bound = -1, upper_bound = -1; +UNSUPPORTED("b3m9z0v48oef8fma37xkjtew6"); // beg_interval = p - 1; +UNSUPPORTED("891uwttbfnv5bc58wpbg1fhgl"); // if (p == pend) +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("cbdohhh0bm6q3vbmnwn4e1vyq"); // if (syntax & ((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ckqpiwbyjnqn5cpwu2kw8rzbb"); // goto unfetch_interval; +UNSUPPORTED("61qf7b2jxc7j3knm5ts69f0b6"); // else +UNSUPPORTED("5ln10oel04ejmsrfm7uzyxmm3"); // return (free (compile_stack.stack), REG_EBRACE); +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("3imw63qg7eb3mef09yezz6uj7"); // { if (p != pend) { do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); while ((1 && isdigit (c))) { if (lower_bound < 0) lower_bound = 0; lower_bound = lower_bound * 10 + c - '0'; if (p == pend) break; do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); } } }; +UNSUPPORTED("1uyn0tiw7bqjiss70oyjn9l7f"); // if (c == ',') +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("5xu6gzc4kvvybje2lnr7qdjka"); // { if (p != pend) { do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); while ((1 && isdigit (c))) { if (upper_bound < 0) upper_bound = 0; upper_bound = upper_bound * 10 + c - '0'; if (p == pend) break; do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); } } }; +UNSUPPORTED("36f9x0yetwobrju6guskv8zsf"); // if (upper_bound < 0) upper_bound = (0x7fff); +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("a4hbs6luulhltmygux2zimbcc"); // else +UNSUPPORTED("76by7r7x6guk4yvf4na11j7fa"); // /* Interval such as `{1}' => match exactly once. */ +UNSUPPORTED("7oi51mz0kxn0ljkpu564jd1zz"); // upper_bound = lower_bound; +UNSUPPORTED("7ec3ilddc87ddo0ohyphhvkag"); // if (lower_bound < 0 || upper_bound > (0x7fff) +UNSUPPORTED("dg03lkmdnpyic7onasg3rhqv3"); // || lower_bound > upper_bound) +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("cbdohhh0bm6q3vbmnwn4e1vyq"); // if (syntax & ((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ckqpiwbyjnqn5cpwu2kw8rzbb"); // goto unfetch_interval; +UNSUPPORTED("61qf7b2jxc7j3knm5ts69f0b6"); // else +UNSUPPORTED("dncd6ntkh4fds08gm3c4f7y7z"); // return (free (compile_stack.stack), REG_BADBR); +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("8zi6rfr6252dxyzqv0myhm4xm"); // if (!(syntax & ((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1))) +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("3nwh4wgghtnfkscuiwfo0cu3y"); // if (c != '\\') return (free (compile_stack.stack), REG_EBRACE); +UNSUPPORTED("eqri2rfe7jnz1m2rij615jaj1"); // do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("7yy5bnz36zs5pyi05n1qbbyfx"); // if (c != '}') +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("cbdohhh0bm6q3vbmnwn4e1vyq"); // if (syntax & ((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ckqpiwbyjnqn5cpwu2kw8rzbb"); // goto unfetch_interval; +UNSUPPORTED("61qf7b2jxc7j3knm5ts69f0b6"); // else +UNSUPPORTED("dncd6ntkh4fds08gm3c4f7y7z"); // return (free (compile_stack.stack), REG_BADBR); +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("5wvp3nau0n8tyg9q5a45z6lyw"); // /* We just parsed a valid interval. */ +UNSUPPORTED("8abj2dxygzm4q2t6cik367htu"); // /* If it's invalid to have no preceding re. */ +UNSUPPORTED("7jmcihqsic23w36x8uyw6rgq0"); // if (!laststart) +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("dhcq2d5ztdbu4o4zvyapxw6nh"); // if (syntax & (((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("1m9o7j67m70ez7l1kcm89n5hu"); // return (free (compile_stack.stack), REG_BADRPT); +UNSUPPORTED("cd9am2nn7ebpy7n4jg9h1ufr4"); // else if (syntax & ((((((unsigned long int) 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("9bhpbnocq89hcx0yaaav9o55q"); // laststart = b; +UNSUPPORTED("61qf7b2jxc7j3knm5ts69f0b6"); // else +UNSUPPORTED("ckqpiwbyjnqn5cpwu2kw8rzbb"); // goto unfetch_interval; +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("4gb3yehghg1r4z81pfpjdfvgt"); // /* If the upper bound is zero, don't want to succeed at +UNSUPPORTED("aatlwtk51r4vhf2pwijmg9mp2"); // all; jump from `laststart' to `b + 3', which will be +UNSUPPORTED("5qe2o1vhmd60525scpziso3qd"); // the end of the buffer after we insert the jump. */ +UNSUPPORTED("7mu4hmjs37m7lx095ek5vdxxv"); // if (upper_bound == 0) +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("a881bhs9uyxvv8hkudjh48ded"); // while ((unsigned long) (b - bufp->buffer + (3)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); +UNSUPPORTED("1iszfmgzsydg6wplo0b3rdscs"); // insert_op1 (jump, laststart, (int) ((b + 3) - (laststart) - 3), b); +UNSUPPORTED("ef7wtmbarkb4uc7wd67hvt8vg"); // b += 3; +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("er56h1ofqtaixpmzkkaco2esj"); // /* Otherwise, we have a nontrivial interval. When +UNSUPPORTED("as06jnzy16oy1d2k8yrsmnzce"); // we're all done, the pattern will look like: +UNSUPPORTED("2sy9ixs1qds1ov6cizjv2ekst"); // set_number_at +UNSUPPORTED("57q8h3cnrxlq45gvr3k5coz5l"); // set_number_at +UNSUPPORTED("9nr6blw8qubgah89xl4e7nkc9"); // succeed_n +UNSUPPORTED("3jejf324x7ol07x2qsz7dal9u"); // +UNSUPPORTED("91gylqgyabjgru87d2uf6v0sb"); // jump_n +UNSUPPORTED("3ef68fn6o1w25y5pabsc3ly4g"); // (The upper bound and `jump_n' are omitted if +UNSUPPORTED("bk78ox2ujcbxp08sj3dypdu4d"); // `upper_bound' is 1, though.) */ +UNSUPPORTED("a4hbs6luulhltmygux2zimbcc"); // else +UNSUPPORTED("efpf0x8clufa77cutrnkx4lcj"); // { /* If the upper bound is > 1, we need to insert +UNSUPPORTED("dzt6navygpg7km0wu0um9ly47"); // more at the end of the loop. */ +UNSUPPORTED("bj2zq9uzbacy1f5scg45mc8o7"); // unsigned nbytes = 10 + (upper_bound > 1) * 10; +UNSUPPORTED("a3dj4ob1sccvwmhsasm69xe72"); // while ((unsigned long) (b - bufp->buffer + (nbytes)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); +UNSUPPORTED("1su4wz7ud8htx57ifpl7dvcjb"); // /* Initialize lower bound of the `succeed_n', even +UNSUPPORTED("9j79ov5k583ecforn4p7uyj07"); // though it will be set during matching by its +UNSUPPORTED("8e98bgll3zoiy6g3o125b3q2f"); // attendant `set_number_at' (inserted next), +UNSUPPORTED("53ep471y7ys6dzp9yufebyily"); // because `re_compile_fastmap' needs to know. +UNSUPPORTED("14vynt5c8wnonl64olb8ttvtd"); // Jump to the `jump_n' we might insert below. */ +UNSUPPORTED("70iuvqfyzlre4zcn83hksrxn8"); // insert_op2 (succeed_n, laststart, (int) (( +UNSUPPORTED("5pma6876qpamutcafga5yib97"); // b + 5 +(upper_bound > 1) * 5) - (laststart) - 3), +UNSUPPORTED("6vch8eo9jutmcjre2de6d9gbd"); // lower_bound, b); +UNSUPPORTED("43kr4g9sdi8c4jh0s5i56vuom"); // b += 5; +UNSUPPORTED("9wq1ll164vusxqbxnhcmfglr2"); // /* Code to initialize the lower bound. Insert +UNSUPPORTED("8pvo9br1w68oucw65nlm51oyr"); // before the `succeed_n'. The `5' is the last two +UNSUPPORTED("a0wkdu3a33nzfqwoi97ucrydd"); // bytes of this `set_number_at', plus 3 bytes of +UNSUPPORTED("3f5d3pqpnky1yym79bby1sz14"); // the following `succeed_n'. */ +UNSUPPORTED("6tnprwkxn86sjk70t31xuoner"); // insert_op2 (set_number_at, laststart, 5, lower_bound, b); +UNSUPPORTED("43kr4g9sdi8c4jh0s5i56vuom"); // b += 5; +UNSUPPORTED("oi58bgxgyehr7fep6gg7b30i"); // if (upper_bound > 1) +UNSUPPORTED("8k5l99ygyd8csogbu2fv5zo"); // { /* More than one repetition is allowed, so +UNSUPPORTED("dfqu908jf8ce7624rr03va1d4"); // append a backward jump to the `succeed_n' +UNSUPPORTED("3bwv4hhwkxq1dxz91v6urcgft"); // that starts this interval. +UNSUPPORTED("9d1i5cmg65d2yqlnnwhhgb10d"); // When we've reached this during matching, +UNSUPPORTED("a4w172v3cp6ffpdtc6uecy35z"); // we'll have matched the interval once, so +UNSUPPORTED("ek50qyp6pxt5f0d13fhqk7gb3"); // jump back only `upper_bound - 1' times. */ +UNSUPPORTED("cw1t4ts9rzslpfolcfywhn3qn"); // store_op2 (jump_n, b, (int) ((laststart + 5) - (b) - 3), +UNSUPPORTED("3bkogjbp2zrhl1e57w52wgtur"); // upper_bound - 1); +UNSUPPORTED("e4xjnlgh2lwxl5rgrsy1t0lzp"); // b += 5; +UNSUPPORTED("9eb4sjjix0zbs0m5165ieamk0"); // /* The location we want to set is the second +UNSUPPORTED("5y1422w9b3ttxiq7uxejd8dl7"); // parameter of the `jump_n'; that is `b-2' as +UNSUPPORTED("7pbl00qw1iwl2shqi1boj4s0o"); // an absolute address. `laststart' will be +UNSUPPORTED("8nzimsq57reptkqovcwmi5is2"); // the `set_number_at' we're about to insert; +UNSUPPORTED("8zphslv1mlv2s77w43gkoi1ul"); // `laststart+3' the number to set, the source +UNSUPPORTED("d2f41o7p6x4ikqydu4firrznx"); // for the relative address. But we are +UNSUPPORTED("ykrtets348ms6o03g441goo7"); // inserting into the middle of the pattern -- +UNSUPPORTED("8wbqzkcrlw3e1ea51h8blhurv"); // so everything is getting moved up by 5. +UNSUPPORTED("a3f2u6qy5p003dtis6m0fpvl1"); // Conclusion: (b - 2) - (laststart + 3) + 5, +UNSUPPORTED("5emb5r1kvteh6n0qces39m5f2"); // i.e., b - laststart. +UNSUPPORTED("3zbu3199lym6vc2u1vakclmn6"); // We insert this at the beginning of the loop +UNSUPPORTED("csmu8b2er6ytie5e9nt8t4ii4"); // so that if we fail during matching, we'll +UNSUPPORTED("6i50gsk8v7o3h2xgwwmiiftk6"); // reinitialize the bounds. */ +UNSUPPORTED("87vlmr3dcbomq11myh4sw1fl6"); // insert_op2 (set_number_at, laststart, b - laststart, +UNSUPPORTED("9qs8k9xnugrbv80hqanlzsj0k"); // upper_bound - 1, b); +UNSUPPORTED("e4xjnlgh2lwxl5rgrsy1t0lzp"); // b += 5; +UNSUPPORTED("b5m0ttlk23avgs4i47o8lbzg1"); // } +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("47qf9noup192j3ixvbaqfafxw"); // pending_exact = 0; +UNSUPPORTED("5bsb6g154mdvmrq2r8pg7c57z"); // beg_interval = (void *)0; +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("4g8id4otqpbtngfcwz2lvm1dj"); // unfetch_interval: +UNSUPPORTED("2uaon9lzacwcq3uk6um6vhs5b"); // /* If an invalid interval, match the characters as literals. */ +UNSUPPORTED("e4kt1tmmevqvy3cbyk6xnznck"); // ; +UNSUPPORTED("del20sog75q2qfuqvkporgtm0"); // p = beg_interval; +UNSUPPORTED("34xptp017sapmiseov6178cf4"); // beg_interval = (void *)0; +UNSUPPORTED("biznyjdfohe9yytw4pz3d8dox"); // /* normal_char and normal_backslash need `c'. */ +UNSUPPORTED("criokqqji74yuk47n1jhnpq75"); // do {if (p == pend) return REG_EEND; c = (unsigned char) *p++; if (translate) c = (unsigned char) translate[c]; } while (0); +UNSUPPORTED("axdhegkjispkpmlj1rwmr7893"); // if (!(syntax & ((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1))) +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("szfu82l2yyl4abpqquds47zb"); // if (p > pattern && p[-1] == '\\') +UNSUPPORTED("4pgdoo1pi0fajdrnqd2gl86zc"); // goto normal_backslash; +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("dxpbgmfj2w220xy1q99fxje94"); // goto normal_char; +UNSUPPORTED("28ro2br1t858h9e64b2eclvsh"); // case 'w': +UNSUPPORTED("f3s47ztvpkb3579t2leyzyw26"); // if (re_syntax_options & (((((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("bzlbs3vmfi1kf0101kec4qyco"); // laststart = b; +UNSUPPORTED("br0jt3hvd6j06mrnfv1j1du2c"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (wordchar); } while (0); +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("cgixiaqx7fff7w14lfzv9un9b"); // case 'W': +UNSUPPORTED("f3s47ztvpkb3579t2leyzyw26"); // if (re_syntax_options & (((((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("bzlbs3vmfi1kf0101kec4qyco"); // laststart = b; +UNSUPPORTED("csd38b3d31jeqlokfvq1k1w8f"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (notwordchar); } while (0); +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("56yutn3bw63gli62ao6byqpz6"); // case '<': +UNSUPPORTED("f3s47ztvpkb3579t2leyzyw26"); // if (re_syntax_options & (((((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("bvnndrb6xvkus381wvq683jko"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (wordbeg); } while (0); +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("b27z9bdaut5nhut2j9qtvrc6x"); // case '>': +UNSUPPORTED("f3s47ztvpkb3579t2leyzyw26"); // if (re_syntax_options & (((((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("9x7h5ccf7d8cb7d008zc3fvnn"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (wordend); } while (0); +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("1lgl6j1beved5wkn8lbc9pj9v"); // case 'b': +UNSUPPORTED("f3s47ztvpkb3579t2leyzyw26"); // if (re_syntax_options & (((((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("ee4emtgp2qmp2if03ztroprzx"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (wordbound); } while (0); +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("1rh1jh861iaq6ptkgabcumr89"); // case 'B': +UNSUPPORTED("f3s47ztvpkb3579t2leyzyw26"); // if (re_syntax_options & (((((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("f1o6i9gjd99gwklmvn8viskl6"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (notwordbound); } while (0); +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("59swrjh32j9w6w9fnlmqjwqhm"); // case '`': +UNSUPPORTED("f3s47ztvpkb3579t2leyzyw26"); // if (re_syntax_options & (((((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("21zy7115epyqb00qfyrak2wlh"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (begbuf); } while (0); +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("enp735bu0pvi1g2slk3f3xjlt"); // case '\'': +UNSUPPORTED("f3s47ztvpkb3579t2leyzyw26"); // if (re_syntax_options & (((((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("efz3fdd9mbv7nl371w3u6ezhv"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (endbuf); } while (0); +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("5p5kyaam049yzq965bmdz6nnh"); // case '1': case '2': case '3': case '4': case '5': +UNSUPPORTED("9hv7da8hbwl3dpaoiieu3rdte"); // case '6': case '7': case '8': case '9': +UNSUPPORTED("8x9ia20e11qngbvg3030t63ib"); // if (syntax & ((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("984azd04wqga97vlg77nqw3hl"); // c1 = c - '0'; +UNSUPPORTED("2j8gb2lyb8b45sk2yf69wj6rw"); // if (c1 > regnum) +UNSUPPORTED("3t049zz47oarl9dkg8euljouk"); // return (free (compile_stack.stack), REG_ESUBREG); +UNSUPPORTED("b52s0xefwdzq23ebdsm2l635g"); // /* Can't back reference to a subexpression if inside of it. */ +UNSUPPORTED("289fpytgoqtnz6sbd26j596ma"); // if (group_in_compile_stack (compile_stack, (regnum_t) c1)) +UNSUPPORTED("ck4wdxm4o1ub3048vodmtvy6s"); // goto normal_char; +UNSUPPORTED("bzlbs3vmfi1kf0101kec4qyco"); // laststart = b; +UNSUPPORTED("ayh7963cwi35nzazymns2xr4j"); // do { while ((unsigned long) (b - bufp->buffer + (2)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (duplicate); *b++ = (unsigned char) (c1); } while (0); +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("10rhhnvrykevpmqtifs3vfsbn"); // case '+': +UNSUPPORTED("5d03wz66bdkv7mubtsqfqptwh"); // case '?': +UNSUPPORTED("cmtz225wrrfrtyrfnva1w0xyx"); // if (syntax & (((unsigned long int) 1) << 1)) +UNSUPPORTED("1e36xo9vcfmetpl665flebmxr"); // goto handle_plus; +UNSUPPORTED("ex6jbb36b02x7vzl22fq0yh2l"); // else +UNSUPPORTED("duzsz5s9lw56m1on7ajxgk9o2"); // goto normal_backslash; +UNSUPPORTED("623zujkdt9es8v0w13jz9jw8x"); // default: +UNSUPPORTED("beo8prktwmjyif35z778zfw1g"); // normal_backslash: +UNSUPPORTED("d6o76edxq0225kqke2hja81jl"); // /* You might think it would be useful for \ to mean +UNSUPPORTED("3ifiyvf5lf26yw26enbob7qmu"); // not to translate; but if we don't translate it +UNSUPPORTED("ecuhc5c6wpoj7vpzvjyv5x62r"); // it will never match anything. */ +UNSUPPORTED("1nghju7haq80s0kj7x01pojis"); // c = (translate ? (char) translate[(unsigned char) (c)] : (c)); +UNSUPPORTED("dxpbgmfj2w220xy1q99fxje94"); // goto normal_char; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("comxch6w0lbi64ejq9m4p0u7o"); // default: +UNSUPPORTED("egnm0qedqx5klxttjvckp1nh0"); // /* Expects the character in `c'. */ +UNSUPPORTED("4qeb36tm7edhyh2kuighgnt3l"); // normal_char: +UNSUPPORTED("1fk2r6llu2tyc89u61aqedfcu"); // /* If no exactn currently being built. */ +UNSUPPORTED("dvgbrbk801umnqbk21dcl1jqt"); // if (!pending_exact +UNSUPPORTED("4sk1dp6gncxrc6q5vqax6q1ff"); // /* If last exactn not at current position. */ +UNSUPPORTED("8ta654rp3f80109ds7wainnbo"); // || pending_exact + *pending_exact + 1 != b +UNSUPPORTED("77sazmv1hkm382fcbfgk2amhz"); // /* We have only one byte following the exactn for the count. */ +UNSUPPORTED("195b1d4l8t8zfx7373dninfqs"); // || *pending_exact == (1 << 8) - 1 +UNSUPPORTED("dfhnk487nvojvngpft8d1m5m6"); // /* If followed by a repetition operator. */ +UNSUPPORTED("3ub8lclci64fyijvq4kh6b7wv"); // || *p == '*' || *p == '^' +UNSUPPORTED("eus82vo98skwtodf1ct43m3j2"); // || ((syntax & (((unsigned long int) 1) << 1)) +UNSUPPORTED("c35rzowssstcdv8ruusljr55b"); // ? *p == '\\' && (p[1] == '+' || p[1] == '?') +UNSUPPORTED("an9wblbb8w5ryyrzneu7n5ko8"); // : (*p == '+' || *p == '?')) +UNSUPPORTED("9fpdj9n2jjcr421s2g9z3r4i5"); // || ((syntax & (((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("doucnd8aksv0c0n2qke841f3d"); // && ((syntax & ((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("3d5qlx6ctgmlvlyvps6mliwz5"); // ? *p == '{' +UNSUPPORTED("5g4kw7ayxlcp3eufwirvf96oj"); // : (p[0] == '\\' && p[1] == '{')))) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("nbxskwykyxkuuturxjw7zviw"); // /* Start building a new exactn. */ +UNSUPPORTED("bzlbs3vmfi1kf0101kec4qyco"); // laststart = b; +UNSUPPORTED("ejmhwadfnfrzhgtdtjhon9thk"); // do { while ((unsigned long) (b - bufp->buffer + (2)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (exactn); *b++ = (unsigned char) (0); } while (0); +UNSUPPORTED("3d84yn9kh97rpe3bpdhnhbnpc"); // pending_exact = b - 1; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("2k7zblp37vmofrhji8gga03t0"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (c); } while (0); +UNSUPPORTED("cib3f9ag6ywox7sedgbxkkmzk"); // (*pending_exact)++; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("61b5pg30vl032ddas1lgz7fom"); // } /* switch (c) */ +UNSUPPORTED("9758gpbrep7p4gr36dhunt05n"); // } /* while p != pend */ +UNSUPPORTED("93p2q85dy4ac5kim9nivyn79p"); // /* Through the pattern now. */ +UNSUPPORTED("1owvoxb3fhlen2k6t0r5ai42z"); // if (fixup_alt_jump) +UNSUPPORTED("13s484p9xd2bw2xbz1wlvdo2i"); // store_op1 (jump_past_alt, fixup_alt_jump, (int) ((b) - (fixup_alt_jump) - 3)); +UNSUPPORTED("aprj6xezpwmu3a179m5g8vbya"); // if (!(compile_stack.avail == 0)) +UNSUPPORTED("3qkjmx7dwj6otc7vge7e62fak"); // return (free (compile_stack.stack), REG_EPAREN); +UNSUPPORTED("bif9tomfcf0bfh8yujmms4e00"); // /* If we don't want backtracking, force success +UNSUPPORTED("6in6drehljv4k3imbk7ay9paw"); // the first time we reach the end of the compiled pattern. */ +UNSUPPORTED("65u4ochrazrfxoz1im3b6cxt5"); // if (syntax & ((((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) +UNSUPPORTED("2gp9v2s1qkxulysls2k1go519"); // do { while ((unsigned long) (b - bufp->buffer + (1)) > bufp->allocated) do { unsigned char *old_buffer = bufp->buffer; if (bufp->allocated == (1L << 16)) return REG_ESIZE; bufp->allocated <<= 1; if (bufp->allocated > (1L << 16)) bufp->allocated = (1L << 16); bufp->buffer = (unsigned char *) realloc ((bufp->buffer), (bufp->allocated)); if (bufp->buffer == (void *)0) return REG_ESPACE; if (old_buffer != bufp->buffer) { b = (b - old_buffer) + bufp->buffer; begalt = (begalt - old_buffer) + bufp->buffer; if (fixup_alt_jump) fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer; if (laststart) laststart = (laststart - old_buffer) + bufp->buffer; if (pending_exact) pending_exact = (pending_exact - old_buffer) + bufp->buffer; } } while (0); *b++ = (unsigned char) (succeed); } while (0); +UNSUPPORTED("cvaeac7ysy55222mdduh1aku9"); // free (compile_stack.stack); +UNSUPPORTED("588061fcmtocd9luhfsdk74at"); // /* We have succeeded; set the length of the buffer. */ +UNSUPPORTED("7at4a9mth8j1h0n9mhg91s816"); // bufp->used = b - bufp->buffer; +UNSUPPORTED("cwwrkrko9fc4redgkt1b13h6d"); // return REG_NOERROR; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1a5b1tkqolinqh3eydzvc550l +// static void store_op1 (re_opcode_t op, unsigned char *loc, int arg) +public static Object store_op1(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("eili3inuq1bw9eshdmskywxtg"); // store_op1 (re_opcode_t op, +UNSUPPORTED("eqn95cpnpj01ulxvedlp62t24"); // unsigned char *loc, +UNSUPPORTED("4bho2a0suqymuq2e9rqlexiq3"); // int arg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1hzyviac306vd3ph2a79xocx7"); // *loc = (unsigned char) op; +UNSUPPORTED("bmuizeo6n9t1qzeegovoyri2g"); // do { (loc + 1)[0] = (arg) & 0377; (loc + 1)[1] = (arg) >> 8; } while (0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1dmpl1eqm04oq44hm3nqojfqi +// static void store_op2(re_opcode_t op, unsigned char *loc, int arg1, int arg2) +public static Object store_op2(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("3uuxvmysdrpmrqq4esv6u5jvy"); // store_op2(re_opcode_t op, +UNSUPPORTED("a8vol3cdyfu7j1q063xc83pt0"); // unsigned char *loc, +UNSUPPORTED("dk2zk2gteycj6jwc1rcuw4jot"); // int arg1, +UNSUPPORTED("afi4spwfrmjjgwzrd48g2eu1g"); // int arg2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1hzyviac306vd3ph2a79xocx7"); // *loc = (unsigned char) op; +UNSUPPORTED("6ula40dcnni5p95iedvl6iz0p"); // do { (loc + 1)[0] = (arg1) & 0377; (loc + 1)[1] = (arg1) >> 8; } while (0); +UNSUPPORTED("692n1w538qervykzhu59yxbnn"); // do { (loc + 3)[0] = (arg2) & 0377; (loc + 3)[1] = (arg2) >> 8; } while (0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4oawjz5vt9t86ibo8qr5a5ot7 +// static void insert_op1(re_opcode_t op, unsigned char *loc, int arg, unsigned char *end) +public static Object insert_op1(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("9kqafhtvgqir3019lsqbgnaik"); // insert_op1(re_opcode_t op, +UNSUPPORTED("eqn95cpnpj01ulxvedlp62t24"); // unsigned char *loc, +UNSUPPORTED("epz3wdlgykwaxdrfpx2zq4v1l"); // int arg, +UNSUPPORTED("ebratu77atbhul7tuupzmelvf"); // unsigned char *end) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("169hmon34dm6xedl4afpa0i1j"); // register unsigned char *pfrom = end; +UNSUPPORTED("45zeyp0r8qs22j0ji3pvdf6z6"); // register unsigned char *pto = end + 3; +UNSUPPORTED("3022v7vf3t5s8s2dsxql29xo4"); // while (pfrom != loc) +UNSUPPORTED("648ldcfu6yydgsxc2w4dn9lep"); // *--pto = *--pfrom; +UNSUPPORTED("a9874mjpfiitct058pp2hkjid"); // store_op1 (op, loc, arg); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 v4p3krro14wk7jqs0uz06n05 +// static void insert_op2(re_opcode_t op, unsigned char *loc, int arg1, int arg2, unsigned char *end) +public static Object insert_op2(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("2udn0ng3gbc8cd8v2x946r2ss"); // insert_op2(re_opcode_t op, +UNSUPPORTED("eqn95cpnpj01ulxvedlp62t24"); // unsigned char *loc, +UNSUPPORTED("9nlhn9pgj5kcxamj9gw78b0qw"); // int arg1, +UNSUPPORTED("e6ty8yiwetqhvokp26upcjwjt"); // int arg2, +UNSUPPORTED("ebratu77atbhul7tuupzmelvf"); // unsigned char *end) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("169hmon34dm6xedl4afpa0i1j"); // register unsigned char *pfrom = end; +UNSUPPORTED("b1q68dlnzwnkjo4hd7zcri3hx"); // register unsigned char *pto = end + 5; +UNSUPPORTED("3022v7vf3t5s8s2dsxql29xo4"); // while (pfrom != loc) +UNSUPPORTED("648ldcfu6yydgsxc2w4dn9lep"); // *--pto = *--pfrom; +UNSUPPORTED("cd1n16p68qnglebcy01f0qn6l"); // store_op2 (op, loc, arg1, arg2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e4latxw6wysh73m40r7m5x3jb +// static boolean at_begline_loc_p(const char *pattern, const char *p, reg_syntax_t syntax) +public static Object at_begline_loc_p(Object... arg) { +UNSUPPORTED("etarlz3ybg3wdofiesiw8dwbq"); // static boolean +UNSUPPORTED("dvoumivore2yi3vu64r9o17rz"); // at_begline_loc_p(const char *pattern, +UNSUPPORTED("1ysotgxi8uwyxakudbb9firnu"); // const char *p, +UNSUPPORTED("3yknuo3jrjif745axkby3960n"); // reg_syntax_t syntax) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8jnr30ihhlcqx0p7qembtdxv2"); // const char *prev = p - 2; +UNSUPPORTED("7v8vzv9bs9dhey9spvhvxxgyp"); // boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\'; +UNSUPPORTED("ef16816hd7el6q6461fnw6p1l"); // return +UNSUPPORTED("dumav0wvej216wv8szi4x00s7"); // /* After a subexpression? */ +UNSUPPORTED("3ki59spy9w7z11gtdahfx1ew3"); // (*prev == '(' && (syntax & (((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) || prev_prev_backslash)) +UNSUPPORTED("ck5g71shir4kf9n8pbhvzz9ti"); // /* After an alternative? */ +UNSUPPORTED("6zvsscasxk7x2dzo9s2jr9okc"); // || (*prev == '|' && (syntax & (((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) || prev_prev_backslash)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1c0buhtq2gms7qzzw7ql4drl1 +// static boolean at_endline_loc_p(const char *p, const char *pend, reg_syntax_t syntax) +public static Object at_endline_loc_p(Object... arg) { +UNSUPPORTED("etarlz3ybg3wdofiesiw8dwbq"); // static boolean +UNSUPPORTED("8w70icoej05avtfcbstpra0d"); // at_endline_loc_p(const char *p, +UNSUPPORTED("eououd67tewr9lfimix16skdn"); // const char *pend, +UNSUPPORTED("3yknuo3jrjif745axkby3960n"); // reg_syntax_t syntax) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eh8pwbqqa4049a7x1lhsxtsc1"); // const char *next = p; +UNSUPPORTED("4wxnm7brzem3ywa9ptyl6m3he"); // boolean next_backslash = *next == '\\'; +UNSUPPORTED("6yvr1bnbn14453b6eonom0ubu"); // const char *next_next = p + 1 < pend ? p + 1 : 0; +UNSUPPORTED("ef16816hd7el6q6461fnw6p1l"); // return +UNSUPPORTED("5zilqqenoq1qg4oaqhst16iny"); // /* Before a subexpression? */ +UNSUPPORTED("bt1ckpmadq6m2rwsptz7rdax4"); // (syntax & (((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) ? *next == ')' +UNSUPPORTED("ch55eypsczed6pggvuky7qg54"); // : next_backslash && next_next && *next_next == ')') +UNSUPPORTED("cguaa6op9dr0opeabtp5b3ucn"); // /* Before an alternative? */ +UNSUPPORTED("8fq9j881kguwbavolyyz6299l"); // || (syntax & (((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) ? *next == '|' +UNSUPPORTED("84irf5dgp7xptskletavd7lcl"); // : next_backslash && next_next && *next_next == '|'); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 35rs0qiyjwppzg2ck5atwxnul +// static boolean group_in_compile_stack(compile_stack_type compile_stack, regnum_t regnum) +public static Object group_in_compile_stack(Object... arg) { +UNSUPPORTED("etarlz3ybg3wdofiesiw8dwbq"); // static boolean +UNSUPPORTED("aja1fo6z3x54rgftvbds69e"); // group_in_compile_stack(compile_stack_type compile_stack, +UNSUPPORTED("ddun09npytwyxleyy5nr14lky"); // regnum_t regnum) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dfroqi0gdjuzge2bbdy5jzym0"); // int this_element; +UNSUPPORTED("cf73uwdus915lin6frmrap08w"); // for (this_element = compile_stack.avail - 1; +UNSUPPORTED("d8j8jtpe5iq1esx7uzvbvm14l"); // this_element >= 0; +UNSUPPORTED("1xpv8yktiv0jzqarajl3v79zc"); // this_element--) +UNSUPPORTED("bq2imq1log4s4jzgs1z1rv2lj"); // if (compile_stack.stack[this_element].regnum == regnum) +UNSUPPORTED("8qe9dt2l8vdfqmmg989im37zb"); // return 1; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b8zwgtmxpoyrzfdfecydtrxda +// static reg_errcode_t compile_range(const char **p_ptr, const char *pend, char * translate, reg_syntax_t syntax, unsigned char *b) +public static Object compile_range(Object... arg) { +UNSUPPORTED("9aerjmw5n52ektwk47t1r9bh0"); // static reg_errcode_t +UNSUPPORTED("banxmfbwacgp17kgyqg9m8x68"); // compile_range(const char **p_ptr, +UNSUPPORTED("ejc17tabtd2x12qzehf5o0sdm"); // const char *pend, +UNSUPPORTED("cgokv0yhej0pe8aib1t4cxlz2"); // char * translate, +UNSUPPORTED("1em1aqal71wcsn34n49xy07nb"); // reg_syntax_t syntax, +UNSUPPORTED("3n1ptb0viq6trnbcy4c86udvu"); // unsigned char *b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1m07wmw0rmjh2kja0xep3mall"); // unsigned this_char; +UNSUPPORTED("yjjwp976mzzqbaq4la5vjvo"); // const char *p = *p_ptr; +UNSUPPORTED("77gsk1nkdba3ni503f93jkxhi"); // unsigned int range_start, range_end; +UNSUPPORTED("d8twi4xwvpjc0n8mumv8b1ht6"); // if (p == pend) +UNSUPPORTED("94ycrvh63vkb1re4zpw8hjmuq"); // return REG_ERANGE; +UNSUPPORTED("9fsyho4e2hiebyqb8qkinfir7"); // /* Even though the pattern is a signed `char *', we need to fetch +UNSUPPORTED("3pyxw5ydi3c4tot9rd8kfdojm"); // with unsigned char *'s; if the high bit of the pattern character +UNSUPPORTED("4cd58zz07lkzfj8p5blv29zy6"); // is set, the range endpoints will be negative if we fetch using a +UNSUPPORTED("5loab6k7g2in3add2emwojqiz"); // signed char *. +UNSUPPORTED("ktiibovpw3rzck0paixyi46"); // We also want to fetch the endpoints without translating them; the +UNSUPPORTED("44ikyyh3eyhoi57l6n4hpq24u"); // appropriate translation is done in the bit-setting loop below. */ +UNSUPPORTED("234jza0nhkmiwh04ymakixz0n"); // /* The SVR4 compiler on the 3B2 had trouble with unsigned const char *. */ +UNSUPPORTED("bakbcowbgzdyup9hjat04heth"); // range_start = ((const unsigned char *) p)[-2]; +UNSUPPORTED("6thno4r8eqqdp5ffdk4l4xs3o"); // range_end = ((const unsigned char *) p)[0]; +UNSUPPORTED("eyt8946jvpa0gtrnsnyalwh7j"); // /* Have to increment the pointer into the pattern string, so the +UNSUPPORTED("3xddmz8ld8kco5vdujzs1mda5"); // caller isn't still at the ending character. */ +UNSUPPORTED("3fa4923s6t6yycjm4mwp7vra6"); // (*p_ptr)++; +UNSUPPORTED("deim4fwtozk7jqq58t4co6tpz"); // /* If the start is after the end, the range is empty. */ +UNSUPPORTED("a8txh7awa0h63gqw46mc6cesc"); // if (range_start > range_end) +UNSUPPORTED("4heoi1bxvv6q4nbsuw4o3n2up"); // return syntax & ((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) ? REG_ERANGE : REG_NOERROR; +UNSUPPORTED("c04gtbipb7crea92dxobvfr2o"); // /* Here we see why `this_char' has to be larger than an `unsigned +UNSUPPORTED("1ylkxbvyuwl7mimub9q6r3fad"); // char' -- the range is inclusive, so if `range_end' == 0xff +UNSUPPORTED("1sabxy9r3dw93krw4s4a7jvs5"); // (assuming 8-bit characters), we would otherwise go into an infinite +UNSUPPORTED("akcgy517agwm89djtay996rlu"); // loop, since all characters <= 0xff. */ +UNSUPPORTED("8ascd4lg2uczakrabmoc2tbxc"); // for (this_char = range_start; this_char <= range_end; this_char++) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("96hzw7fz10m1eg84p3h8xw6md"); // (b[((unsigned char) ((translate ? (char) translate[(unsigned char) (this_char)] : (this_char)))) / 8] |= 1 << (((unsigned char) (translate ? (char) translate[(unsigned char) (this_char)] : (this_char))) % 8)); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("cwwrkrko9fc4redgkt1b13h6d"); // return REG_NOERROR; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2w5dx8i20qj29gqbasz6ieo34 +// int re_compile_fastmap(struct re_pattern_buffer *bufp) +public static Object re_compile_fastmap(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("bq6qjjl5z4ymj67dzg1sxznk"); // re_compile_fastmap(struct re_pattern_buffer *bufp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9e6bnowy6jfhnib5uev3scpsu"); // int j, k; +UNSUPPORTED("5dndxq85ri0pdc1zsswjws66p"); // fail_stack_type fail_stack; +UNSUPPORTED("5vwwchpo0x2nq1kweizvzpx7r"); // char *destination; +UNSUPPORTED("4hjgjnhp72gq4oozv5vrn8v10"); // register char *fastmap = bufp->fastmap; +UNSUPPORTED("1j52put1dns981rqf534qs3le"); // unsigned char *pattern = bufp->buffer; +UNSUPPORTED("1jmcmh4kbvfcpijmdwn6jc3nj"); // unsigned char *p = pattern; +UNSUPPORTED("b53ls4akw5mhgh7jwfepoi7vo"); // register unsigned char *pend = pattern + bufp->used; +UNSUPPORTED("cs2p9nwy2lugscf16o02dzs8e"); // /* Assume that each path through the pattern can be null until +UNSUPPORTED("9dmmpbml2ftmau9q3col8nnct"); // proven otherwise. We set this false at the bottom of switch +UNSUPPORTED("b68s3vc4td13a333tqb4omf2a"); // statement, to which we get only if a particular path doesn't +UNSUPPORTED("et7h2ks857zgdavpz3yc5qe44"); // match the empty string. */ +UNSUPPORTED("51ynrqjxzi49qavh1cav2tkft"); // boolean path_can_be_null = 1; +UNSUPPORTED("1gbvpj2yj85p505am5rilkj6r"); // /* We aren't doing a `succeed_n' to begin with. */ +UNSUPPORTED("5xxc75r9op15sgdu02o4lgxav"); // boolean succeed_n_p = 0; +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("bbul77ox50tuvngn3t4agr5uo"); // do { fail_stack.stack = (fail_stack_elt_t *) alloca (5 * sizeof (fail_stack_elt_t)); if (fail_stack.stack == (void *)0) return -2; fail_stack.size = 5; fail_stack.avail = 0; } while (0); +UNSUPPORTED("bzen69xwi5iake0fs9avj7zyk"); // bzero (fastmap, 1 << 8); /* Assume nothing's valid. */ +UNSUPPORTED("5t1sb7m6db0rmhvndw9dbiev3"); // bufp->fastmap_accurate = 1; /* It will be when we're done. */ +UNSUPPORTED("6jtlz1qyfqnlyp421hyq8of6x"); // bufp->can_be_null = 0; +UNSUPPORTED("epinmskuv2cgr5ahv1yieh4wx"); // while (1) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("d9novosz5eiozbi3d0qtrp39a"); // if (p == pend || *p == succeed) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("6kmea0xiqrfcm0nj8n7td2oex"); // /* We have reached the (effective) end of pattern. */ +UNSUPPORTED("m3xwmrnky21zpg13i5rj47jr"); // if (!(fail_stack.avail == 0)) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("44fedf1x4d76z1qso6huhgzfg"); // bufp->can_be_null |= path_can_be_null; +UNSUPPORTED("dr8ubpktswy9oks8vqmi0x94x"); // /* Reset for next path. */ +UNSUPPORTED("cqqk40u5ykr4up1khyq0hdreu"); // path_can_be_null = 1; +UNSUPPORTED("701062lrplwck0vemijk6tqcn"); // p = fail_stack.stack[--fail_stack.avail].pointer; +UNSUPPORTED("9rd1yahrea8hsebjyzzz61sl3"); // continue; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("cunk7vpvzj28y1x4gn62gxpce"); // else +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("a9id4zq8rzlovc4blpl12mdrm"); // /* We should never be about to go beyond the end of the pattern. */ +UNSUPPORTED("cf8srqrmhz47tb7zdgoe9ufhv"); // ; +UNSUPPORTED("3d9jhchhw3lu8yajca4mi058b"); // switch (((re_opcode_t) *p++)) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("6y2d5u8u0sy9seg0d2wbqhh5e"); // /* I guess the idea here is to simply not bother with a fastmap +UNSUPPORTED("mj34lm9e61u2qvfpqzkhd5io"); // if a backreference is used, since it's too hard to figure out +UNSUPPORTED("9citude1apedkbhbg4qz50zt8"); // the fastmap for the corresponding group. Setting +UNSUPPORTED("a0ktcb92qa12q41u9ncckmzua"); // `can_be_null' stops `re_search_2' from using the fastmap, so +UNSUPPORTED("4rjoi86n2xfyhdheaakalexzv"); // that is all we do. */ +UNSUPPORTED("9zkejga7r0tbainhrb6zuw9os"); // case duplicate: +UNSUPPORTED("crvpgpa1og37lio7o6tvycmsg"); // bufp->can_be_null = 1; +UNSUPPORTED("7s6msojra17ajwq7l7wrmhhbx"); // goto done; +UNSUPPORTED("cr9angfhvv1ykkzaoo7x91pyz"); // /* Following are the cases which match a character. These end +UNSUPPORTED("5u9igxod775u9rmzhdtoj0uux"); // with `break'. */ +UNSUPPORTED("cw984demptqbnja38a25p2xi1"); // case exactn: +UNSUPPORTED("99pcdhcif67xm8lp80laisjza"); // fastmap[p[1]] = 1; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("2ro4nzmlhhrmitxu9446arhlo"); // case charset: +UNSUPPORTED("d5oxjemm2desl63l2fbifejay"); // for (j = *p++ * 8 - 1; j >= 0; j--) +UNSUPPORTED("34lg6n1mkddxpy07uf61o2pq1"); // if (p[j / 8] & (1 << (j % 8))) +UNSUPPORTED("ac5wgoqadttw9m0eqkmq93vpu"); // fastmap[j] = 1; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("2zj0t91dpl66cu75cb0h2j1hu"); // case charset_not: +UNSUPPORTED("cagpd8yl8h3c4v8e4gh3f0z2w"); // /* Chars beyond end of map must be allowed. */ +UNSUPPORTED("7zzkrrvc3sqjxvhrr4s309imh"); // for (j = *p * 8; j < (1 << 8); j++) +UNSUPPORTED("b1s3rgvbln9pwub90llybu41x"); // fastmap[j] = 1; +UNSUPPORTED("d5oxjemm2desl63l2fbifejay"); // for (j = *p++ * 8 - 1; j >= 0; j--) +UNSUPPORTED("a9l035zjjirwoyk53mqv16l5n"); // if (!(p[j / 8] & (1 << (j % 8)))) +UNSUPPORTED("ac5wgoqadttw9m0eqkmq93vpu"); // fastmap[j] = 1; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("buxp1030z7swkjl42wovj9hxd"); // case wordchar: +UNSUPPORTED("erc7fe209pzd8kqxh3h4huo03"); // for (j = 0; j < (1 << 8); j++) +UNSUPPORTED("e6f90hjwdfaen2gl195u9sabh"); // if (re_syntax_table[j] == 1) +UNSUPPORTED("ac5wgoqadttw9m0eqkmq93vpu"); // fastmap[j] = 1; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("7frlpnfuvuphd3bzoulwg4vsr"); // case notwordchar: +UNSUPPORTED("erc7fe209pzd8kqxh3h4huo03"); // for (j = 0; j < (1 << 8); j++) +UNSUPPORTED("d6si8hs1n9s2q5b16vyt9ka5x"); // if (re_syntax_table[j] != 1) +UNSUPPORTED("ac5wgoqadttw9m0eqkmq93vpu"); // fastmap[j] = 1; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("1bv8e740f9rna5i036bo292wc"); // case anychar: +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("czlnu0hbyndj2sl7bud8algx4"); // int fastmap_newline = fastmap['\n']; +UNSUPPORTED("2q6r1vdt5x04pt3p41rzto4yl"); // /* `.' matches anything ... */ +UNSUPPORTED("5ftk445qjdfu62ddixb4p6q0i"); // for (j = 0; j < (1 << 8); j++) +UNSUPPORTED("ac5wgoqadttw9m0eqkmq93vpu"); // fastmap[j] = 1; +UNSUPPORTED("93vg14cvrax6ffdlubqre52zy"); // /* ... except perhaps newline. */ +UNSUPPORTED("53qidfpnvywpfz8jbsitg0hk2"); // if (!(bufp->syntax & ((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1))) +UNSUPPORTED("9wuk4mwn83ls1g7lick6497yp"); // fastmap['\n'] = fastmap_newline; +UNSUPPORTED("e47uuia66ybg7wem8m4h8zf1m"); // /* Return if we have already set `can_be_null'; if we have, +UNSUPPORTED("5o7fl6yjw81x2g5sww79aih3s"); // then the fastmap is irrelevant. Something's wrong here. */ +UNSUPPORTED("3750ces0c2deqeyn6w33ndhis"); // else if (bufp->can_be_null) +UNSUPPORTED("380tmjmsc0f2y0m6vckz8g0ox"); // goto done; +UNSUPPORTED("4nfkkkamxp2xfq2r2eg5c5880"); // /* Otherwise, have to check alternative paths. */ +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("anhhi3sf756j0lcm11sy9nyfc"); // case no_op: +UNSUPPORTED("7zj5ggx1l6hln4ude6h5p4hgw"); // case begline: +UNSUPPORTED("8pqai98vstdak51ot078dn1ut"); // case endline: +UNSUPPORTED("889sq08u5lsi3c6y2z7adu8ex"); // case begbuf: +UNSUPPORTED("cx4ezn3s02koh0pq7idm2xvxc"); // case endbuf: +UNSUPPORTED("a8jtmsnmpa4937exo9nhopyyb"); // case wordbound: +UNSUPPORTED("2jqqzr491mztwr9h8hvs55ja1"); // case notwordbound: +UNSUPPORTED("991vlwoc47i8p67jyv2qapdhy"); // case wordbeg: +UNSUPPORTED("65os7te2jc1i6uacyszvy5spd"); // case wordend: +UNSUPPORTED("9446ac5zvkn7r9yqkh2brh10l"); // case push_dummy_failure: +UNSUPPORTED("ci4p4wle87mwq773w72esmnae"); // continue; +UNSUPPORTED("f41u8fntqiy246yy3btlg6w1v"); // case jump_n: +UNSUPPORTED("6coluo8cd7scxlqwnbvt3jqs5"); // case pop_failure_jump: +UNSUPPORTED("d7ziafib9p2sa0rqh34hv3hwj"); // case maybe_pop_jump: +UNSUPPORTED("9a1qj2mhg3oh4ehsjpp4d81on"); // case jump: +UNSUPPORTED("7ifq76or69643hqib3roiq9f4"); // case jump_past_alt: +UNSUPPORTED("ejqzfph0mmtiqin1hmi981bzm"); // case dummy_failure_jump: +UNSUPPORTED("ddwq2jxcrhkxhe1dqkaf3heul"); // do { do { (j) = *(p) & 0377; (j) += ((((unsigned char) (*((p) + 1))) ^ 128) - 128) << 8; } while (0); (p) += 2; } while (0); +UNSUPPORTED("3s98ctay3wrlwmgbs6jycommh"); // p += j; +UNSUPPORTED("4aknhsfjvky2yxmkba43w40on"); // if (j > 0) +UNSUPPORTED("6ux57x1tcbm5aung2xa8i26f1"); // continue; +UNSUPPORTED("1gcc9mlki3vcqxqcamgw15psl"); // /* Jump backward implies we just went through the body of a +UNSUPPORTED("dhbf21he6r14900wxjfhl23n8"); // loop and matched nothing. Opcode jumped to should be +UNSUPPORTED("b1z48ihpqy8w68mtnyaogzkre"); // `on_failure_jump' or `succeed_n'. Just treat it like an +UNSUPPORTED("8sudhkuaiqtvp0rzeztrzphwa"); // ordinary jump. For a * loop, it has pushed its failure +UNSUPPORTED("14e2cgrthjy5xos3c84nxu3b8"); // point already; if so, discard that as redundant. */ +UNSUPPORTED("eq8dnm5llhgszut0h62teamny"); // if ((re_opcode_t) *p != on_failure_jump +UNSUPPORTED("8sbpd0r7b4u37kj9inzim8nty"); // && (re_opcode_t) *p != succeed_n) +UNSUPPORTED("6ux57x1tcbm5aung2xa8i26f1"); // continue; +UNSUPPORTED("4s6jr3tssbvzb5ee96md1ncoi"); // p++; +UNSUPPORTED("ddwq2jxcrhkxhe1dqkaf3heul"); // do { do { (j) = *(p) & 0377; (j) += ((((unsigned char) (*((p) + 1))) ^ 128) - 128) << 8; } while (0); (p) += 2; } while (0); +UNSUPPORTED("3s98ctay3wrlwmgbs6jycommh"); // p += j; +UNSUPPORTED("7s373wkpewfatxsumkd67pyu7"); // /* If what's on the stack is where we are now, pop it. */ +UNSUPPORTED("80wyvh0vjsiujqym2stjdj4wh"); // if (!(fail_stack.avail == 0) +UNSUPPORTED("a3ueg01xdmhuq0grmerpgbvbb"); // && fail_stack.stack[fail_stack.avail - 1].pointer == p) +UNSUPPORTED("3s1nxe7g3rfik4tqx98en3cd8"); // fail_stack.avail--; +UNSUPPORTED("ci4p4wle87mwq773w72esmnae"); // continue; +UNSUPPORTED("992rmruvdtrxnk46307iiqyjo"); // case on_failure_jump: +UNSUPPORTED("753el6ua6knou432p32d1kbcc"); // case on_failure_keep_string_jump: +UNSUPPORTED("ceceofttw3ld7litzqabu648u"); // handle_on_failure_jump: +UNSUPPORTED("665sufie9pj8i06aycoqewann"); // do { do { (j) = *(p) & 0377; (j) += ((((unsigned char) (*((p) + 1))) ^ 128) - 128) << 8; } while (0); (p) += 2; } while (0); +UNSUPPORTED("dc5yaeh41cb0brsq1pv7799eq"); // /* For some patterns, e.g., `(a?)?', `p+j' here points to the +UNSUPPORTED("2t3hud6hrminx80odtyp1iwa7"); // end of the pattern. We don't want to push such a point, +UNSUPPORTED("547mpa99j3jp91cc97q8bgppy"); // since when we restore it above, entering the switch will +UNSUPPORTED("d41nubecflssie5s3le3qh9ij"); // increment `p' past the end of the pattern. We don't need +UNSUPPORTED("2a6fei9v5xjokdzwz2ib426kh"); // to push such a point since we obviously won't find any more +UNSUPPORTED("9kvyfd4vo7d8i4eapffyigb8w"); // fastmap entries beyond `pend'. Such a pattern can match +UNSUPPORTED("921h84ug24r379ndj6u4ti857"); // the null string, though. */ +UNSUPPORTED("a3exq030sp29tpsjuxvbncjka"); // if (p + j < pend) +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("6actr5ig2vfyitfzjmpn5gcvs"); // if (!(((fail_stack.avail == fail_stack.size) && !((fail_stack).size > (unsigned) (re_max_failures * (5 * 3 + 4)) ? 0 : ((fail_stack).stack = (fail_stack_elt_t *) (destination = (char *) alloca (((fail_stack).size << 1) * sizeof(fail_stack_elt_t)), bcopy ((fail_stack).stack, destination, (fail_stack).size * sizeof(fail_stack_elt_t)), destination), (fail_stack).stack == (void *)0 ? 0 : ((fail_stack).size <<= 1, 1)))) ? 0 : ((fail_stack).stack[(fail_stack).avail++].pointer = p + j, 1))) +UNSUPPORTED("9aq2ft2quyeattze0cwemwweo"); // { +UNSUPPORTED("9fy78dg2q1uu4c2t1zsyaestf"); // ; +UNSUPPORTED("cyqv0odsj3l93ykpf16zgxlh5"); // return -2; +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("c0op0grmjt3kp22s10twqy66r"); // else +UNSUPPORTED("crvpgpa1og37lio7o6tvycmsg"); // bufp->can_be_null = 1; +UNSUPPORTED("3rb9irs4dl9mnesxjmb9f42vt"); // if (succeed_n_p) +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("vdcz3hf29s758qnvg2tdn3vc"); // do { do { (k) = *(p) & 0377; (k) += ((((unsigned char) (*((p) + 1))) ^ 128) - 128) << 8; } while (0); (p) += 2; } while (0); /* Skip the n. */ +UNSUPPORTED("501xoe7qse6xea1u7i29ck0mi"); // succeed_n_p = 0; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("bam1am28aekae7y6j816hx07n"); // continue; +UNSUPPORTED("bdrmz6krrbsihqbsklz1j7d7a"); // case succeed_n: +UNSUPPORTED("3gsxz3wc6v485diavavhdc980"); // /* Get to the number of times to succeed. */ +UNSUPPORTED("8mazj3o2k4ts6oo83xpc0clf6"); // p += 2; +UNSUPPORTED("8o2myd39fg1ragrtinpt906a8"); // /* Increment p past the n for when k != 0. */ +UNSUPPORTED("4chyl5sa2aguucbi2603y1r7c"); // do { do { (k) = *(p) & 0377; (k) += ((((unsigned char) (*((p) + 1))) ^ 128) - 128) << 8; } while (0); (p) += 2; } while (0); +UNSUPPORTED("6zxjfjfmip0xaqdemcjjztblg"); // if (k == 0) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("b4wfmlrv6zbxvwrfouk2eo7kw"); // p -= 4; +UNSUPPORTED("909biyv92rbqo3ayb2nd8yidv"); // succeed_n_p = 1; /* Spaghetti code alert. */ +UNSUPPORTED("1ubpxbj2kbf7554qirpm1k0mw"); // goto handle_on_failure_jump; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("ci4p4wle87mwq773w72esmnae"); // continue; +UNSUPPORTED("dmqxgjrlj5ddxj88dw919ujoj"); // case set_number_at: +UNSUPPORTED("9stirsnvehglwumsosptm8ngk"); // p += 4; +UNSUPPORTED("ci4p4wle87mwq773w72esmnae"); // continue; +UNSUPPORTED("6c0ei34e676sv2kl1dxfzm5lm"); // case start_memory: +UNSUPPORTED("3q89uw4g68y7kyiitvliyykpb"); // case stop_memory: +UNSUPPORTED("8mazj3o2k4ts6oo83xpc0clf6"); // p += 2; +UNSUPPORTED("ci4p4wle87mwq773w72esmnae"); // continue; +UNSUPPORTED("comxch6w0lbi64ejq9m4p0u7o"); // default: +UNSUPPORTED("55kbrxcqu6yyh19ldzw88t99r"); // abort (); /* We have listed all the cases. */ +UNSUPPORTED("88ufjis6u0ijo8dyph0trsd9f"); // } /* switch *p++ */ +UNSUPPORTED("cwq7qsz40n4bhj5dg5eym4pub"); // /* Getting here means we have found the possible starting +UNSUPPORTED("9cuw6gsavq5jezett5z0kqhtr"); // characters for one path of the pattern -- and that the empty +UNSUPPORTED("1nuw25jxiky0vsokzstwqjshg"); // string does not match. We need not follow this path further. +UNSUPPORTED("ir1qnihuj9d2pchsx533wqak"); // Instead, look at the next alternative (remembered on the +UNSUPPORTED("2yh8to75n640o6rt44ql2gpr1"); // stack), or quit if no more. The test at the top of the loop +UNSUPPORTED("48eepx7kyfmje1rnq1bcr79sq"); // does these things. */ +UNSUPPORTED("7b7dtwbvg82guicn1qbjlrm0i"); // path_can_be_null = 0; +UNSUPPORTED("9iqvxxuyvmn0bkipb04jv1fp2"); // p = pend; +UNSUPPORTED("8qk14yz36d7vk72ifwa7qiujq"); // } /* while p */ +UNSUPPORTED("fe2n2uj632yqtenyvepbd4on"); // /* Set `can_be_null' for the last path (also the first path, if the +UNSUPPORTED("eoc9k5utu0yxlarln062f7ebo"); // pattern is empty). */ +UNSUPPORTED("3uys3oae24dxx6zj9f9r0b80z"); // bufp->can_be_null |= path_can_be_null; +UNSUPPORTED("c1mu8v1bx1gc9xwu0pmd4wrmg"); // done: +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aql5ifimwt0liaidklmsf048e +// void re_set_registers(struct re_pattern_buffer *bufp, struct re_registers *regs, unsigned num_regs, regoff_t *starts, regoff_t *ends) +public static Object re_set_registers(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("4aeowny9csghzgfhys3rxd4bb"); // re_set_registers(struct re_pattern_buffer *bufp, +UNSUPPORTED("v08al94r6tf851td77qv1lrw"); // struct re_registers *regs, +UNSUPPORTED("cws3mkdihiuxfnp7ty29mle8p"); // unsigned num_regs, +UNSUPPORTED("3bn37bfn6icqtacq0lj8zj9cg"); // regoff_t *starts, +UNSUPPORTED("aqc83ygcz30vhx0fxtyw3a3gc"); // regoff_t *ends) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d3ztzcne2cr4fi3m42q2opwfy"); // if (num_regs) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("9z36hkw7bkc2nch28htx6k0sp"); // bufp->regs_allocated = 1; +UNSUPPORTED("atb5wuee0ohtv7w4cswzrtdfh"); // regs->num_regs = num_regs; +UNSUPPORTED("6xqxd9992s4jjhafwdu58y4w3"); // regs->start = starts; +UNSUPPORTED("1dplqbibwb9py7ly7iqtemaka"); // regs->end = ends; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("5err36958fxwo1a5uvi85wj9r"); // bufp->regs_allocated = 0; +UNSUPPORTED("3jgm69kgp5moxxlzgyht3brgv"); // regs->num_regs = 0; +UNSUPPORTED("1b975m061jnwz38mhlafj6a72"); // regs->start = regs->end = (regoff_t *) 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8wxth458oyuuwe1d7zeibvlq3 +// int re_search(struct re_pattern_buffer *bufp, const char *string, int size, int startpos, int range, struct re_registers *regs) +public static Object re_search(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("5punk3p7482f96e5oexdvqbus"); // re_search(struct re_pattern_buffer *bufp, +UNSUPPORTED("bagvrj9iq4kkqcdgysmduv9t1"); // const char *string, +UNSUPPORTED("1xy13yd3ws9kwbjft9qc97kcx"); // int size, +UNSUPPORTED("9ohmanngcm89n339btr8asvfv"); // int startpos, +UNSUPPORTED("23b7j6n4wp3b1b28bigxtgmnl"); // int range, +UNSUPPORTED("erz9qq7ug4oj13nqxxy6jbbsy"); // struct re_registers *regs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5eefi20lbvtfppz7qla7ovjwv"); // return re_search_2 (bufp, (void *)0, 0, string, size, startpos, range, +UNSUPPORTED("et83rvt66i87q8ub41vrx6w5v"); // regs, size); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6aljedusbc3m5z49o0khre2m2 +// int re_search_2(struct re_pattern_buffer *bufp, const char *string1, int size1, const char *string2, int size2, int startpos, int range, struct re_registers *regs, int stop) +public static Object re_search_2(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("5usfyqpnmi7csbuxwbxofoyw7"); // re_search_2(struct re_pattern_buffer *bufp, +UNSUPPORTED("74m54b0hvpnb34rks2y7z9363"); // const char *string1, +UNSUPPORTED("8nls60axvgy7utfkk3mgzdwb2"); // int size1, +UNSUPPORTED("1iaduxc33uthqae9ewpgmxil1"); // const char *string2, +UNSUPPORTED("dqei6asi26pdc31aztct1a8je"); // int size2, +UNSUPPORTED("3w9t84zdf75a4tulh53r5von1"); // int startpos, +UNSUPPORTED("5u62quyw1qekgwt8o4pnjcc5l"); // int range, +UNSUPPORTED("5f39e12vpxsielezt5ujbqvho"); // struct re_registers *regs, +UNSUPPORTED("7bd44vcdrb5ytkbgi2jb4dl2s"); // int stop) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3z4qqbm5080y3sn2lfr6rs0nk"); // int val; +UNSUPPORTED("4hjgjnhp72gq4oozv5vrn8v10"); // register char *fastmap = bufp->fastmap; +UNSUPPORTED("e2n10ohqvssxiromz1ghi94lp"); // register char * translate = bufp->translate; +UNSUPPORTED("iaij8d98sbsjgborym38smlw"); // int total_size = size1 + size2; +UNSUPPORTED("cjv924qhstzo4k8fa23nn3y5t"); // int endpos = startpos + range; +UNSUPPORTED("7etis36i9hk8smvitf2zjrk21"); // /* Check for out-of-range STARTPOS. */ +UNSUPPORTED("dtj4vp5xpp6ux07kkppwzg5ao"); // if (startpos < 0 || startpos > total_size) +UNSUPPORTED("f3a98gxettwtewduvje9y3524"); // return -1; +UNSUPPORTED("abu2iwp6rjr8ppylnna5u9yqs"); // /* Fix up RANGE if it might eventually take us outside +UNSUPPORTED("9hmt2lbj7vhejhpf2d95tq14f"); // the virtual concatenation of STRING1 and STRING2. +UNSUPPORTED("d3ccdgft2wzndli7yy75yesc6"); // Make sure we won't move STARTPOS below 0 or above TOTAL_SIZE. */ +UNSUPPORTED("7ynt8jnrj8clotz4nfyn2ysy9"); // if (endpos < 0) +UNSUPPORTED("5ra97p6qdpo5phvpk9fwd2h3j"); // range = 0 - startpos; +UNSUPPORTED("9w57i1mbsaq0ywxj3y6q7577v"); // else if (endpos > total_size) +UNSUPPORTED("6boq6ulbdze7abapaemgg7svh"); // range = total_size - startpos; +UNSUPPORTED("ds4p5oizcxuw4xycv8l0vcqdv"); // /* If the search isn't to be a backwards one, don't waste time in a +UNSUPPORTED("djej1eoe004hvk7gffedre39u"); // search for a pattern that must be anchored. */ +UNSUPPORTED("cvy0dazfbe38ki1z0hsl3dn1l"); // if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == begbuf && range > 0) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("bpeukjf6wgkfxtlskf398co2v"); // if (startpos > 0) +UNSUPPORTED("1bjpmpr3p20x2b029ko5zgklx"); // return -1; +UNSUPPORTED("1knjyao8ci3w18zqqcnmnitir"); // else +UNSUPPORTED("ad8lfo0w7g7423hbhmk3ljtia"); // range = 1; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("86solugecvztzl7zf0cnd6cvd"); // /* Update the fastmap now if not correct already. */ +UNSUPPORTED("1d8z3kbyyw3rdl2mysjgwzxjl"); // if (fastmap && !bufp->fastmap_accurate) +UNSUPPORTED("ckj45nonmakbapzpe7kn1d15x"); // if (re_compile_fastmap (bufp) == -2) +UNSUPPORTED("kh5ykxeb4qomvs3j2wfbfj0v"); // return -2; +UNSUPPORTED("78edqutsfw99a52tozy5vek1b"); // /* Loop through the string, looking for a place to start matching. */ +UNSUPPORTED("3s761dh42eu37yg4q6j6rw0kx"); // for (;;) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("4sxzib864bpin10halp8eff8a"); // /* If a fastmap is supplied, skip quickly over characters that +UNSUPPORTED("d5j6rsa3cqak3dmcpdugforyy"); // cannot be the start of a match. If the pattern can match the +UNSUPPORTED("bwce0xep6mggs5v11uftrozcs"); // null string, however, we don't need to skip characters; we want +UNSUPPORTED("12gdm8hdukh6bx7z396xe3zzf"); // the first null string. */ +UNSUPPORTED("cj0pagb4mphhjuy0gimrygb50"); // if (fastmap && startpos < total_size && !bufp->can_be_null) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("6ofes2gdk56aoc5qpr3f4zr4a"); // if (range > 0) /* Searching forwards. */ +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("67v7cteuwrvbevvug4l85mak"); // register const char *d; +UNSUPPORTED("25rc040ywtpg6wfpwl19bnpyo"); // register int lim = 0; +UNSUPPORTED("9qdwkju7e5sftfnsb8qapaizw"); // int irange = range; +UNSUPPORTED("1wkzshwijxvvgs068kb4ducku"); // if (startpos < size1 && startpos + range >= size1) +UNSUPPORTED("eiy4fhjr94xbrb2h7bvte577b"); // lim = range - (size1 - startpos); +UNSUPPORTED("eu28a1ugba5e46l0ni4uhl4a"); // d = (startpos >= size1 ? string2 - size1 : string1) + startpos; +UNSUPPORTED("cvmf6f97q523j1gxuc06p4zaw"); // /* Written out as an if-else to avoid testing `translate' +UNSUPPORTED("42arvib5v1138qds1m4gq8ifq"); // inside the loop. */ +UNSUPPORTED("c1esipwvnh5vdk2nuoqprrzy9"); // if (translate) +UNSUPPORTED("99bsp1v6500gcigrncj819bmz"); // while (range > lim +UNSUPPORTED("7dwf7n5ce54ua4203lrcvsgyi"); // && !fastmap[(unsigned char) +UNSUPPORTED("7fd297npapod0yzvmotp0ad6j"); // translate[(unsigned char) *d++]]) +UNSUPPORTED("ede1n2qkk5dq4dchoitn0ij36"); // range--; +UNSUPPORTED("ex6jbb36b02x7vzl22fq0yh2l"); // else +UNSUPPORTED("d6y3y331fli9a7o5dfc8fwn41"); // while (range > lim && !fastmap[(unsigned char) *d++]) +UNSUPPORTED("ede1n2qkk5dq4dchoitn0ij36"); // range--; +UNSUPPORTED("7ov5wkldv7ip6gr3qqe7r9fwz"); // startpos += irange - range; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("bvrbbagbquje7me47zpel7bq4"); // else /* Searching backwards. */ +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("84cdrx9bovy6vauwg0lqjqewy"); // register char c = (size1 == 0 || startpos >= size1 +UNSUPPORTED("4e056gfwhytvjg4a7elynhkew"); // ? string2[startpos - size1] +UNSUPPORTED("8xrw0w684a0sbx04150wtf94o"); // : string1[startpos]); +UNSUPPORTED("37wt6pwingk4yq2cmuffily2s"); // if (!fastmap[(unsigned char) (translate ? (char) translate[(unsigned char) (c)] : (c))]) +UNSUPPORTED("8vj5bzh7lvr4w2s7svhv0kgxc"); // goto advance; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("cgimbkjo920x6t1512vxlx8ko"); // /* If can't match the null string, and that's all we have left, fail. */ +UNSUPPORTED("445mlipz9ii8giv4yb08sv90e"); // if (range >= 0 && startpos == total_size && fastmap +UNSUPPORTED("10kowgvu386ep80mmzt22sc9v"); // && !bufp->can_be_null) +UNSUPPORTED("1bjpmpr3p20x2b029ko5zgklx"); // return -1; +UNSUPPORTED("5ry8yqv40slwqwx0mofc5x95i"); // val = re_match_2_internal (bufp, string1, size1, string2, size2, +UNSUPPORTED("3cfs2qe5fkkt6t09tbm9q025r"); // startpos, regs, stop); +UNSUPPORTED("2djilouwt96a4942a9xk0bq2j"); // if (val >= 0) +UNSUPPORTED("4bosd0hhkhi65o9tz6w39sd4r"); // return startpos; +UNSUPPORTED("7mnsrrb2kz0jaysx2jmdwxxhs"); // if (val == -2) +UNSUPPORTED("9hr24f7mnlogxg6ehbtrhe9ys"); // return -2; +UNSUPPORTED("5ztyn3js8nuvtozugmyim7k2"); // advance: +UNSUPPORTED("48h8uf83j8j6i9dl6uwpnxoai"); // if (!range) +UNSUPPORTED("d1pumbibe8xz2i7gr1wj6zdak"); // break; +UNSUPPORTED("9qvrpsi6e30j6d028sbxm75m8"); // else if (range > 0) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("9tfu9zglyv6ato7noi8by9cx7"); // range--; +UNSUPPORTED("bpejet1xdfpyxq7gb5gygl6c6"); // startpos++; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("1knjyao8ci3w18zqqcnmnitir"); // else +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("c1l5bq4p029ozyiuq76a11c6c"); // range++; +UNSUPPORTED("1fnqbyp4904zoq2u6a0h2xo1u"); // startpos--; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("8azkpi8o0wzdufa90lw8hpt6q"); // return -1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cese97kukrkyoho0nl5aeefuf +// int re_match(struct re_pattern_buffer *bufp, const char *string, int size, int pos, struct re_registers *regs) +public static Object re_match(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("dv1reldaciy8oglpt3lvrj467"); // re_match(struct re_pattern_buffer *bufp, +UNSUPPORTED("c9d38ul1z2b760kkkwbmup6aq"); // const char *string, +UNSUPPORTED("8ax0ba4mtdwcwwg0ygxfl2hyx"); // int size, +UNSUPPORTED("5wdd1vovm572huu99r72nr8kp"); // int pos, +UNSUPPORTED("ly5zx6ikzskn7s3qibi5tipo"); // struct re_registers *regs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f3va2gee7dhwlha1g39azqlfa"); // int result = re_match_2_internal (bufp, (void *)0, 0, string, size, +UNSUPPORTED("ea7wwobss2bdmnj8fhllcq46k"); // pos, regs, size); +UNSUPPORTED("e73y2609z2557xahrcvzmcb8e"); // return result; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4bis6vnixbumphbwvjkcy4c2n +// int re_match_2(struct re_pattern_buffer *bufp, const char *string1, int size1, const char *string2, int size2, int pos, struct re_registers *regs, int stop) +public static Object re_match_2(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("bo3qvsxgxy71pt7n5tjlfpl7q"); // re_match_2(struct re_pattern_buffer *bufp, +UNSUPPORTED("8xwssdsckjeb1q0lmxlu07pk5"); // const char *string1, +UNSUPPORTED("chena2gcw8p49mjvwjotj1ue5"); // int size1, +UNSUPPORTED("7kll64nft07fqgencnx9f2u3h"); // const char *string2, +UNSUPPORTED("12hpd55p7b671svle7njxpr6c"); // int size2, +UNSUPPORTED("eyuz74k3yno3lawo6tmqeahqh"); // int pos, +UNSUPPORTED("5du4j7mghegymbd75ui1ml4fw"); // struct re_registers *regs, +UNSUPPORTED("2hcygji7llu5b02n114djuqj0"); // int stop) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a2u8v8zl4azq1kujf4s4cuii1"); // int result = re_match_2_internal (bufp, string1, size1, string2, size2, +UNSUPPORTED("7l7rv6dwb5eaxilwku2m9z8we"); // pos, regs, stop); +UNSUPPORTED("e73y2609z2557xahrcvzmcb8e"); // return result; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2xc3iz0d568vx4ken91tl6gyt +// static int re_match_2_internal(struct re_pattern_buffer *bufp, const char *string1, int size1, const char *string2, int size2, int pos, struct re_registers *regs, int stop) +public static Object re_match_2_internal(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("6pa1vmha3pyewzpq2e2wsz00n"); // re_match_2_internal(struct re_pattern_buffer *bufp, +UNSUPPORTED("4itq0umd8n4zaefp01c54wxac"); // const char *string1, +UNSUPPORTED("2da6uko1m9uyu226zvu3kgswo"); // int size1, +UNSUPPORTED("62ljq7ee0r8hkx89qdr6zrcj1"); // const char *string2, +UNSUPPORTED("eu49m9ze4ikwzobpj8jmx8zjf"); // int size2, +UNSUPPORTED("fsoirv97r4lbqxpez1e1kh6l"); // int pos, +UNSUPPORTED("5das77r3z9spuajdb6a5zoqcg"); // struct re_registers *regs, +UNSUPPORTED("9byy70s4d1i719ix6yy7okfe0"); // int stop) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("n8hlkyr29gxgnkj4x75w0pbu"); // /* General temporaries. */ +UNSUPPORTED("5rwd4tuvikkbfw1s56awbwtbe"); // int mcnt; +UNSUPPORTED("7ijkchsbw8xrlcbwdzkzy7sg5"); // unsigned char *p1; +UNSUPPORTED("6wjea7744xso80td4x9ur7whp"); // /* Just past the end of the corresponding string. */ +UNSUPPORTED("1fqaa6ix61rs3yld0danksdzt"); // const char *end1, *end2; +UNSUPPORTED("4qjvhq2dmvddcpe2sq02ul57e"); // /* Pointers into string1 and string2, just past the last characters in +UNSUPPORTED("e2o1kagsjdr4x6alq0db0ex6"); // each to consider matching. */ +UNSUPPORTED("3lcnzq2ymn1yaonefakdi2gf9"); // const char *end_match_1, *end_match_2; +UNSUPPORTED("2x1qwx7dh9vq9oyh9l2ffuhki"); // /* Where we are in the data, and the end of the current string. */ +UNSUPPORTED("44aamau4r9tm9tp5eks2hjeeg"); // const char *d, *dend; +UNSUPPORTED("1v5unbhjqcfvkvfh3bwyzig4m"); // /* Where we are in the pattern, and the end of the pattern. */ +UNSUPPORTED("7juswz68hsy9xygg4vwwp1dk4"); // unsigned char *p = bufp->buffer; +UNSUPPORTED("egc1gcrry7bqm2rmed1tbm4p7"); // register unsigned char *pend = p + bufp->used; +UNSUPPORTED("e8rkyc240i479ffdjn5bis1o6"); // /* Mark the opcode just after a start_memory, so we can test for an +UNSUPPORTED("asrb0rht6g8nqkxfrpbqqwhji"); // empty subpattern when we get to the stop_memory. */ +UNSUPPORTED("1xod1essveohmbzqsm3chxtaa"); // unsigned char *just_past_start_mem = 0; +UNSUPPORTED("5cqk44skhero82pev2rwsxqod"); // /* We use this to map every character in the string. */ +UNSUPPORTED("b6qhkmvrybk31a74eyxl9sf73"); // char * translate = bufp->translate; +UNSUPPORTED("clib1bwajaiu950opbz65380n"); // /* Failure point stack. Each place that can handle a failure further +UNSUPPORTED("3lyfugbo3isunzbvdm5i0o4cj"); // down the line pushes a failure point on this stack. It consists of +UNSUPPORTED("1w6peyhoigpqgnv3qujk00vnp"); // restart, regend, and reg_info for all registers corresponding to +UNSUPPORTED("8qdk2kexk0h3w8v82dc1gi8fc"); // the subexpressions we're currently inside, plus the number of such +UNSUPPORTED("c464idhhkc8aqmfjb0s7zn2jq"); // registers, and, finally, two char *'s. The first char * is where +UNSUPPORTED("d39bcwihp0jxqnlaq775160n0"); // to resume scanning the pattern; the second one is where to resume +UNSUPPORTED("bt7bl5ufgmqudglf331090q99"); // scanning the strings. If the latter is zero, the failure point is +UNSUPPORTED("dxhf42bpkithht6k5midiilvm"); // a ``dummy''; if a failure happens and the failure point is a dummy, +UNSUPPORTED("7k01qsxjsxh1mzfj3zkxymge4"); // it gets discarded and the next next one is tried. */ +UNSUPPORTED("5dndxq85ri0pdc1zsswjws66p"); // fail_stack_type fail_stack; +UNSUPPORTED("3ussoc6j234lhv666usd1ujlb"); // /* We fill all the registers internally, independent of what we +UNSUPPORTED("7hukvye8ngqw8xf4c86mq7ksb"); // return, for use in backreferences. The number here includes +UNSUPPORTED("800kciibxx8zzy7gqlip12chx"); // an element for register zero. */ +UNSUPPORTED("9te8xao6v2wvrtemmbarxo8r7"); // size_t num_regs = bufp->re_nsub + 1; +UNSUPPORTED("69fqftzbp36nb88gj0hyzt7n5"); // /* The currently active registers. */ +UNSUPPORTED("210a4lsg6g1jyyakcj1y0z9co"); // active_reg_t lowest_active_reg = ((1 << 8) + 1); +UNSUPPORTED("cav7rdafkpj7lnazs9bzo4f01"); // active_reg_t highest_active_reg = (1 << 8); +UNSUPPORTED("9lffam35cw7ao19j9sq1na2kz"); // /* Information on the contents of registers. These are pointers into +UNSUPPORTED("ezs9s06ouogq0bo54g0m18dwg"); // the input strings; they record just what was matched (on this +UNSUPPORTED("cnjuuaptdt6ott2ct87p0obeb"); // attempt) by a subexpression part of the pattern, that is, the +UNSUPPORTED("74e8guuvf2ep3sm5wuwk3pvak"); // regnum-th regstart pointer points to where in the pattern we began +UNSUPPORTED("3bvo1nxt2ti5kli33880w0y4f"); // matching and the regnum-th regend points to right after where we +UNSUPPORTED("btmswfvhn3ofbmow8ypu5e13p"); // stopped matching the regnum-th subexpression. (The zeroth register +UNSUPPORTED("1kngd0q79bcbooydkquebsoaf"); // keeps track of what the whole pattern matches.) */ +UNSUPPORTED("3bagrvj67tgg2hcld2oq7uq12"); // const char **regstart, **regend; +UNSUPPORTED("cj6z5o1u5gz9fj1ldc50421nu"); // /* If a group that's operated upon by a repetition operator fails to +UNSUPPORTED("9h8hefhboxbyq3lbhmtfl4dbe"); // match anything, then the register for its start will need to be +UNSUPPORTED("269993sksx5a7dxx2skmjmuv0"); // restored because it will have been set to wherever in the string we +UNSUPPORTED("8sl9yewrsty5lu2b0b5210k4l"); // are when we last see its open-group operator. Similarly for a +UNSUPPORTED("64mro6c1shytou2fsehv14t6e"); // register's end. */ +UNSUPPORTED("dzseh4slrayug3iyhvd08tt7k"); // const char **old_regstart, **old_regend; +UNSUPPORTED("60rk8kklgq8pft794dlh37glr"); // /* The is_active field of reg_info helps us keep track of which (possibly +UNSUPPORTED("bavzn3th9ptlj1baje3pfbu2r"); // nested) subexpressions we are currently in. The matched_something +UNSUPPORTED("3wklpcvgm1mxc3ncudzv3u7er"); // field of reg_info[reg_num] helps us tell whether or not we have +UNSUPPORTED("9owj5d6jjiwrr65xe8b66ynmg"); // matched any of the pattern so far this time through the reg_num-th +UNSUPPORTED("5o4rfc4vl6f2f4i6gl8zb2c12"); // subexpression. These two fields get reset each time through any +UNSUPPORTED("jainf18l355wvb9svfolzfyu"); // loop their register is in. */ +UNSUPPORTED("cldhi92ebvv3qkzk7hcp1acpx"); // register_info_type *reg_info; +UNSUPPORTED("3tm9df4zwjcbf5wzasl5vbo41"); // /* The following record the register info as found in the above +UNSUPPORTED("62fw4aryj1l9mpyzofxartoaf"); // variables when we find a match better than any we've seen before. +UNSUPPORTED("3yswh3sslq5jxfw5qiqyposlu"); // This happens as we backtrack through the failure points, which in +UNSUPPORTED("7fwl7a78gtt9lpholdubg8h20"); // turn happens only if we have not yet matched the entire string. */ +UNSUPPORTED("bv3kpg4ykugxqsd55m9yhp5af"); // unsigned best_regs_set = 0; +UNSUPPORTED("boct5aaty3lmh8421fbwe811s"); // const char **best_regstart, **best_regend; +UNSUPPORTED("4rxhejgld2fxwm1gablnrag3j"); // /* Logically, this is `best_regend[0]'. But we don't want to have to +UNSUPPORTED("7qi1q2tujh3qj95sucmglupqv"); // allocate space for that if we're not allocating space for anything +UNSUPPORTED("awo7q2rkwc6jlfdsam4my1k84"); // else (see below). Also, we never need info about register 0 for +UNSUPPORTED("2f9d4yn8chlunlz3lckbg2mw0"); // any of the other register vectors, and it seems rather a kludge to +UNSUPPORTED("dixl88kjwfhphwh4xmk51px61"); // treat `best_regend' differently than the rest. So we keep track of +UNSUPPORTED("lthy8n6i428ea9wqx66x5syo"); // the end of the best match so far in a separate variable. We +UNSUPPORTED("1g3sl9fbv6pwfi9bysp5k62i"); // initialize this to NULL so that when we backtrack the first time +UNSUPPORTED("ek5k7ui0tsvl05jargwtlh04g"); // and need to test it, it's not garbage. */ +UNSUPPORTED("274v72hhp6qzltud0qx3natuw"); // const char *match_end = (void *)0; +UNSUPPORTED("ce5dox5nl3mnb89gapdwnz2co"); // /* This helps SET_REGS_MATCHED avoid doing redundant work. */ +UNSUPPORTED("7rtu9eogaexvklmhbd0nvi8rq"); // int set_regs_matched_done = 0; +UNSUPPORTED("6f52yhx59atis4v6w50r78tpr"); // /* Used when we pop values we don't care about. */ +UNSUPPORTED("cuer8lfpvninqja7rr37wv7vr"); // const char **reg_dummy; +UNSUPPORTED("1tfv2eq96tkv3dnxi9htt3ogy"); // register_info_type *reg_info_dummy; +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("bbul77ox50tuvngn3t4agr5uo"); // do { fail_stack.stack = (fail_stack_elt_t *) alloca (5 * sizeof (fail_stack_elt_t)); if (fail_stack.stack == (void *)0) return -2; fail_stack.size = 5; fail_stack.avail = 0; } while (0); +UNSUPPORTED("f2odxckhb2j0jb0skzptkj1li"); // /* Do not bother to initialize all the register variables if there are +UNSUPPORTED("7rdujqxkgmrsifkkjc8uc4uf8"); // no groups in the pattern, as it takes a fair amount of time. If +UNSUPPORTED("a8btab3qm6qk1ruzu54espdbw"); // there are groups, we include space for register 0 (the whole +UNSUPPORTED("2fkpn3ylgs86igj0rin9q175c"); // pattern), even though we never use it, since it simplifies the +UNSUPPORTED("a82pq8o4xe5vl6izykmrmv80p"); // array indexing. We should fix this. */ +UNSUPPORTED("3b6nyivy298vtrccdf2yz5zfy"); // if (bufp->re_nsub) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("3s4x1dwphpxvwftzx6myntwof"); // regstart = ((const char * *) alloca ((num_regs) * sizeof (const char *))); +UNSUPPORTED("2q4zpv4cg2m1hlu19z7n20v0i"); // regend = ((const char * *) alloca ((num_regs) * sizeof (const char *))); +UNSUPPORTED("dncg8rhgtq841coamkzozn70f"); // old_regstart = ((const char * *) alloca ((num_regs) * sizeof (const char *))); +UNSUPPORTED("dyvpshht388f50j2qsprkqq31"); // old_regend = ((const char * *) alloca ((num_regs) * sizeof (const char *))); +UNSUPPORTED("dprck6oszi2zdnvn8ranbm5ax"); // best_regstart = ((const char * *) alloca ((num_regs) * sizeof (const char *))); +UNSUPPORTED("3dm3mock6ighuyjpbnckimggr"); // best_regend = ((const char * *) alloca ((num_regs) * sizeof (const char *))); +UNSUPPORTED("5732hglv8omqh0obbstzw9ovr"); // reg_info = ((register_info_type *) alloca ((num_regs) * sizeof (register_info_type))); +UNSUPPORTED("4itgi9p0hm10q9gc8ligcmjw9"); // reg_dummy = ((const char * *) alloca ((num_regs) * sizeof (const char *))); +UNSUPPORTED("2w784gfhj47yvqr5bkl3rnvb1"); // reg_info_dummy = ((register_info_type *) alloca ((num_regs) * sizeof (register_info_type))); +UNSUPPORTED("bknt92c4iiz2fki0ya4b4zu9l"); // if (!(regstart && regend && old_regstart && old_regend && reg_info +UNSUPPORTED("bvpk762fja9xad61rr2ecsbun"); // && best_regstart && best_regend && reg_dummy && reg_info_dummy)) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("8f1nfq1jn2ejt7ub9midgshrh"); // do { ; if ((void*) regstart) ((void)0); (void*) regstart = (void *)0; if ((void*) regend) ((void)0); (void*) regend = (void *)0; if ((void*) old_regstart) ((void)0); (void*) old_regstart = (void *)0; if ((void*) old_regend) ((void)0); (void*) old_regend = (void *)0; if ((void*) best_regstart) ((void)0); (void*) best_regstart = (void *)0; if ((void*) best_regend) ((void)0); (void*) best_regend = (void *)0; if ((void*) reg_info) ((void)0); (void*) reg_info = (void *)0; if ((void*) reg_dummy) ((void)0); (void*) reg_dummy = (void *)0; if ((void*) reg_info_dummy) ((void)0); (void*) reg_info_dummy = (void *)0; } while (0); +UNSUPPORTED("7ivse5do9752etnc6lpwep4id"); // return -2; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("9hkjvu3lvnwrjs0wre7judo3c"); // /* We must initialize all our variables to NULL, so that +UNSUPPORTED("45j98q6y8yuy75ls6dsgx1k64"); // `FREE_VARIABLES' doesn't try to free them. */ +UNSUPPORTED("2lkorxvitynsptmav1g59ixmb"); // regstart = regend = old_regstart = old_regend = best_regstart +UNSUPPORTED("bzn1un5rdvzm7al9b58svbna4"); // = best_regend = reg_dummy = (void *)0; +UNSUPPORTED("d9o9396ai0y6hfmg0mj1ebkq3"); // reg_info = reg_info_dummy = (register_info_type *) (void *)0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("8w78v1mfbuuwhx2hypx8jcldw"); // /* The starting position is bogus. */ +UNSUPPORTED("a4wmr8zj9xfpfbqugg1rwnak2"); // if (pos < 0 || pos > size1 + size2) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("7sq147wjkuyi93ra9jbzwkvbf"); // do { ; if ((void*) regstart) ((void)0); (void*) regstart = (void *)0; if ((void*) regend) ((void)0); (void*) regend = (void *)0; if ((void*) old_regstart) ((void)0); (void*) old_regstart = (void *)0; if ((void*) old_regend) ((void)0); (void*) old_regend = (void *)0; if ((void*) best_regstart) ((void)0); (void*) best_regstart = (void *)0; if ((void*) best_regend) ((void)0); (void*) best_regend = (void *)0; if ((void*) reg_info) ((void)0); (void*) reg_info = (void *)0; if ((void*) reg_dummy) ((void)0); (void*) reg_dummy = (void *)0; if ((void*) reg_info_dummy) ((void)0); (void*) reg_info_dummy = (void *)0; } while (0); +UNSUPPORTED("62ko03w39aomt1h9y758mag0k"); // return -1; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("cqf83jwvi6ehnlngujy4qchdu"); // /* Initialize subexpression text positions to -1 to mark ones that no +UNSUPPORTED("57srgq1s42r2qebxntv9z4v5k"); // start_memory/stop_memory has been seen for. Also initialize the +UNSUPPORTED("1ow37crla9qcqw19bbyb805t9"); // register information struct. */ +UNSUPPORTED("9ydw7k6i7j7x2k6zngd59rojt"); // for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("2kyhfd6kl7ms8bwg1wlvfqwap"); // regstart[mcnt] = regend[mcnt] +UNSUPPORTED("2kl8ke0fnk9nauyk9zokcxkoj"); // = old_regstart[mcnt] = old_regend[mcnt] = (®_unset_dummy); +UNSUPPORTED("91q00i6munm3i7qie7rj8jfei"); // ((reg_info[mcnt]).bits.match_null_string_p) = 3; +UNSUPPORTED("afk8kaqsmcxqe0q6zubefocrn"); // ((reg_info[mcnt]).bits.is_active) = 0; +UNSUPPORTED("df366kaag3ynqzmm60vrmh0vx"); // ((reg_info[mcnt]).bits.matched_something) = 0; +UNSUPPORTED("5mtz90agac60yikyx4k2p0tcy"); // ((reg_info[mcnt]).bits.ever_matched_something) = 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("j5sjexwvtormmkwlvyyw0j3m"); // /* We move `string1' into `string2' if the latter's empty -- but not if +UNSUPPORTED("22snitog4zamx1t4ccq83m95r"); // `string1' is null. */ +UNSUPPORTED("e5i3kugt3ww6rnm9voflfgawq"); // if (size2 == 0 && string1 != (void *)0) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("e42qfjjyl84hogtxnpbthj5rz"); // string2 = string1; +UNSUPPORTED("crben3jjw8pci91x5lvrk4w8q"); // size2 = size1; +UNSUPPORTED("f01lcid5mzfewcivqnd332urs"); // string1 = 0; +UNSUPPORTED("5c8judheb0ofzkgdnwqnml8z0"); // size1 = 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("e172015pwzssq7c0vo2tq5aq1"); // end1 = string1 + size1; +UNSUPPORTED("4m5wyc9k9qkl4sfiwwyvvla1h"); // end2 = string2 + size2; +UNSUPPORTED("92k1xad7xyoitcixjggddz2xx"); // /* Compute where to stop matching, within the two strings. */ +UNSUPPORTED("6gdkxgosf1sannyt40j9kmngq"); // if (stop <= size1) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("6cypxpgmpeoi6emdah5s9k61u"); // end_match_1 = string1 + stop; +UNSUPPORTED("14iyugw7zeo04abwg6k9mz77r"); // end_match_2 = string2; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("ubox1xzc7tf43rh7nzqo0y2w"); // end_match_1 = end1; +UNSUPPORTED("g15ad7lvemt1j3tfd3b2wy5n"); // end_match_2 = string2 + stop - size1; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("b72xjrsh15ceq6n0mp9o3dr3b"); // /* `p' scans through the pattern as `d' scans through the data. +UNSUPPORTED("ee8kj3n0j7z3zgw3x29pr4iwg"); // `dend' is the end of the input string that `d' points within. `d' +UNSUPPORTED("9ht9fo2bvlr07alij7ev6sc64"); // is advanced into the following input string whenever necessary, but +UNSUPPORTED("delvy2rsoiwhe79dztx86nhlo"); // this happens before fetching; therefore, at the beginning of the +UNSUPPORTED("4fil0e4w6u5hnt1i6cgmhslcj"); // loop, `d' can be pointing at the end of a string, but it cannot +UNSUPPORTED("3m773nmhi0vb3kvwhk5zj1fvx"); // equal `string2'. */ +UNSUPPORTED("1sztmr22bzx9qg638iuxf0qcf"); // if (size1 > 0 && pos <= size1) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("effnp1jm0qoqpcub7rcliiklk"); // d = string1 + pos; +UNSUPPORTED("a3z31vmcwv4izh4gaf0zzu63f"); // dend = end_match_1; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("a6h3karx5gb77i5icjwtr70s"); // d = string2 + pos - size1; +UNSUPPORTED("2mh3yoyin5cy0p7onls0cxs88"); // dend = end_match_2; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("5i0sddp616zsw63jk38od62l4"); // ; +UNSUPPORTED("99zhv2pwx2q8a48j197pw6xt4"); // /* This loops over pattern commands. It exits by returning from the +UNSUPPORTED("7e60h1pt63bigon94i6v0grl5"); // function if the match is complete, or it drops through if the match +UNSUPPORTED("b3n3kmzfara10ikrekjiv0woz"); // fails at this starting point in the input data. */ +UNSUPPORTED("3s761dh42eu37yg4q6j6rw0kx"); // for (;;) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("cf8srqrmhz47tb7zdgoe9ufhv"); // ; +UNSUPPORTED("coqe9flw9y84q7eb1xt2wxm8v"); // if (p == pend) +UNSUPPORTED("a41002aq4p23pyz97pvq70zys"); // { /* End of pattern means we might have succeeded. */ +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("c3on5mrar07ygte8kqbl2hntc"); // /* If we haven't matched the entire string, and we want the +UNSUPPORTED("apgoqswuwqwo0jdc88f1g6zjk"); // longest match, try backtracking. */ +UNSUPPORTED("6quev9lqtkd3rm2zf8o08q0d4"); // if (d != end_match_2) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("84ttk9zo6qwdugyag6bsfijsa"); // /* 1 if this match ends in the same string (string1 or string2) +UNSUPPORTED("3d7aa3i6sz2b5v1rdku8mfkve"); // as the best previous match. */ +UNSUPPORTED("99rxk6hqfc6820y8brqyzr1ix"); // boolean same_str_p = ((size1 && string1 <= (match_end) && (match_end) <= string1 + size1) +UNSUPPORTED("5h23tai9w26g9uu3555t1s2ko"); // == (dend == end_match_1)); +UNSUPPORTED("a9j7f142ppbm4bfda6vllbzkt"); // /* 1 if this match is the best seen so far. */ +UNSUPPORTED("7ssv33yt0mo7z7naegb53acst"); // boolean best_match_p; +UNSUPPORTED("406ocol9hh6qa1tg01aqw4fm4"); // /* AIX compiler got confused when this was combined +UNSUPPORTED("doec2mp5fgho754yj67fiufk6"); // with the previous declaration. */ +UNSUPPORTED("3olytwmx4gzy8yajx9lv0w470"); // if (same_str_p) +UNSUPPORTED("b8puesm16uljvnmkyguxlpjz2"); // best_match_p = d > match_end; +UNSUPPORTED("ex6jbb36b02x7vzl22fq0yh2l"); // else +UNSUPPORTED("8g5axzy7uh94mclmd8107jt4r"); // best_match_p = !(dend == end_match_1); +UNSUPPORTED("e4kt1tmmevqvy3cbyk6xnznck"); // ; +UNSUPPORTED("61g695v6madw50govi0fpaymy"); // if (!(fail_stack.avail == 0)) +UNSUPPORTED("c5mtgdtcl0w9vn5m7roo5mclf"); // { /* More failure points to try. */ +UNSUPPORTED("6k0fj673itx4y90om89cfw4au"); // /* If exceeds best match so far, save it. */ +UNSUPPORTED("8lvy2hc2kk7wk0osmu4kt3b46"); // if (!best_regs_set || best_match_p) +UNSUPPORTED("bho20rvti5y7pi0voz7il3e40"); // { +UNSUPPORTED("c1z8tnsgrw2hio3750gukv093"); // best_regs_set = 1; +UNSUPPORTED("6cvml1s44f1rz7ut1p9732o24"); // match_end = d; +UNSUPPORTED("a6r7lto035pp3gvk1bdixang2"); // ; +UNSUPPORTED("5lgbvvnv5vugg8j3y9jm7tmto"); // for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) +UNSUPPORTED("1fi5w21ki1vo1jwyr4xwgm27n"); // { +UNSUPPORTED("36h25f46gwl1bjkvlv2hi12al"); // best_regstart[mcnt] = regstart[mcnt]; +UNSUPPORTED("38u63aln2507yexeleac5i5f6"); // best_regend[mcnt] = regend[mcnt]; +UNSUPPORTED("bf03xtomlwkahoqno8ua4cbpc"); // } +UNSUPPORTED("ad3bk4xnx8bgy7plhun3c0mvv"); // } +UNSUPPORTED("3cl1in74qmmbb26vs4qw3mcuv"); // goto fail; +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("9608e8vynn7blihqg1sa5x6hm"); // /* If no failure points, don't restore garbage. And if +UNSUPPORTED("cvm5ogwjizby9vpz4bh4t4kmf"); // last match is real best match, don't restore second +UNSUPPORTED("5019dps6elcptg07efvg8ytlp"); // best one. */ +UNSUPPORTED("31h7b1f1py5xliuo37yr49j0e"); // else if (best_regs_set && !best_match_p) +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("51sj2rq6npgedmtb80qyu24n8"); // restore_best_regs: +UNSUPPORTED("eassx3c83qc4vxc85c75b9qjl"); // /* Restore best match. It may happen that `dend == +UNSUPPORTED("5pm2irkm5dt0s4qwuwz8u3q1h"); // end_match_1' while the restored d is in string2. +UNSUPPORTED("bc82mepahwmg9x3r4zc1uhtn2"); // For example, the pattern `x.*y.*z' against the +UNSUPPORTED("dux3vuywslng2dhkfnnw5vg60"); // strings `x-' and `y-z-', if the two strings are +UNSUPPORTED("8xrw6nr4f038b5khvfblfbvnn"); // not consecutive in memory. */ +UNSUPPORTED("c6tldeu5ffnykyfto7hi9ixau"); // ; +UNSUPPORTED("20z1s97l71qromoe39rg38hm2"); // d = match_end; +UNSUPPORTED("3ue7lk6sdffqfud3cceri8m8b"); // dend = ((d >= string1 && d <= end1) +UNSUPPORTED("67n43dsreslafvliflcrjntcd"); // ? end_match_1 : end_match_2); +UNSUPPORTED("7f2q0145iwgp8w2wsim63zj7m"); // for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) +UNSUPPORTED("bho20rvti5y7pi0voz7il3e40"); // { +UNSUPPORTED("f2o08vllkyap6mdqirtbkpmpk"); // regstart[mcnt] = best_regstart[mcnt]; +UNSUPPORTED("3pqb99yerpeb7fyy71o36q7nc"); // regend[mcnt] = best_regend[mcnt]; +UNSUPPORTED("ad3bk4xnx8bgy7plhun3c0mvv"); // } +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("7qpxyrpi9p8bv5o56myo9c2dh"); // } /* d != end_match_2 */ +UNSUPPORTED("eo36u7f29du5zdvcxohew6ccd"); // succeed_label: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("ch5rhljwem9e6yq0bvid9b9dj"); // /* If caller wants register contents data back, do it. */ +UNSUPPORTED("1yp4u3stmh22ubjzoa5psbbuy"); // if (regs && !bufp->no_sub) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("3kol441pj0oa248vzhp3vv7ls"); // /* Have the register data arrays been allocated? */ +UNSUPPORTED("1gzi6m8z4rjss7i9b9wcz0nhw"); // if (bufp->regs_allocated == 0) +UNSUPPORTED("bfr9pjr2qri3sxl2k6brn5xer"); // { /* No. So allocate them with malloc. We need one +UNSUPPORTED("eo5lmm6txjqzwpnc51q2rr86p"); // extra element beyond `num_regs' for the `-1' marker +UNSUPPORTED("1qr602sxafqljujgz9tt6qcf9"); // GNU code uses. */ +UNSUPPORTED("w1tdx38yyrw1sowe6ghaj2nk"); // regs->num_regs = ((30) > (num_regs + 1) ? (30) : (num_regs + 1)); +UNSUPPORTED("be8i44ggcohl9z9hz4rhqk56n"); // regs->start = ((regoff_t *) malloc ((regs->num_regs) * sizeof (regoff_t))); +UNSUPPORTED("cyfi6zngbv1dslzcl7x1sr152"); // regs->end = ((regoff_t *) malloc ((regs->num_regs) * sizeof (regoff_t))); +UNSUPPORTED("cxow73omypjzg053jt8epepo8"); // if (regs->start == (void *)0 || regs->end == (void *)0) +UNSUPPORTED("bho20rvti5y7pi0voz7il3e40"); // { +UNSUPPORTED("eb9qndp4gf1s242vxc2lh5maj"); // do { ; if ((void*) regstart) ((void)0); (void*) regstart = (void *)0; if ((void*) regend) ((void)0); (void*) regend = (void *)0; if ((void*) old_regstart) ((void)0); (void*) old_regstart = (void *)0; if ((void*) old_regend) ((void)0); (void*) old_regend = (void *)0; if ((void*) best_regstart) ((void)0); (void*) best_regstart = (void *)0; if ((void*) best_regend) ((void)0); (void*) best_regend = (void *)0; if ((void*) reg_info) ((void)0); (void*) reg_info = (void *)0; if ((void*) reg_dummy) ((void)0); (void*) reg_dummy = (void *)0; if ((void*) reg_info_dummy) ((void)0); (void*) reg_info_dummy = (void *)0; } while (0); +UNSUPPORTED("dqq88wul2lqxsx8tregfubikv"); // return -2; +UNSUPPORTED("ad3bk4xnx8bgy7plhun3c0mvv"); // } +UNSUPPORTED("i0ztbbhawtrpj2duc3ya6kdq"); // bufp->regs_allocated = 1; +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("6c4alibipwc6an6jcy479a3m"); // else if (bufp->regs_allocated == 1) +UNSUPPORTED("73h0ws2srjiuc9g7nvfsil3p7"); // { /* Yes. If we need more elements than were already +UNSUPPORTED("3k4931vs4niesagz1oxg57nbg"); // allocated, reallocate them. If we need fewer, just +UNSUPPORTED("e6dbjm0iyzngr68xmg81z2z0m"); // leave it alone. */ +UNSUPPORTED("djowzzvskdbwjag9m9fnha4jh"); // if (regs->num_regs < num_regs + 1) +UNSUPPORTED("bho20rvti5y7pi0voz7il3e40"); // { +UNSUPPORTED("9xesw41tb2u8ao5widm29kiyp"); // regs->num_regs = num_regs + 1; +UNSUPPORTED("87dmzxu9te8vokzvs3irtuxov"); // ((regs->start) = (regoff_t *) realloc (regs->start, (regs->num_regs) * sizeof (regoff_t))); +UNSUPPORTED("6e6qfl2iibo9mkatufr410gra"); // ((regs->end) = (regoff_t *) realloc (regs->end, (regs->num_regs) * sizeof (regoff_t))); +UNSUPPORTED("1vrn0xsco7imnquwgs11osuf6"); // if (regs->start == (void *)0 || regs->end == (void *)0) +UNSUPPORTED("1fi5w21ki1vo1jwyr4xwgm27n"); // { +UNSUPPORTED("93c8iop6pb7zwgnohfyvit0s"); // do { ; if ((void*) regstart) ((void)0); (void*) regstart = (void *)0; if ((void*) regend) ((void)0); (void*) regend = (void *)0; if ((void*) old_regstart) ((void)0); (void*) old_regstart = (void *)0; if ((void*) old_regend) ((void)0); (void*) old_regend = (void *)0; if ((void*) best_regstart) ((void)0); (void*) best_regstart = (void *)0; if ((void*) best_regend) ((void)0); (void*) best_regend = (void *)0; if ((void*) reg_info) ((void)0); (void*) reg_info = (void *)0; if ((void*) reg_dummy) ((void)0); (void*) reg_dummy = (void *)0; if ((void*) reg_info_dummy) ((void)0); (void*) reg_info_dummy = (void *)0; } while (0); +UNSUPPORTED("7l01rs860ssm9kixuhgx9hdbq"); // return -2; +UNSUPPORTED("bf03xtomlwkahoqno8ua4cbpc"); // } +UNSUPPORTED("ad3bk4xnx8bgy7plhun3c0mvv"); // } +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("ex6jbb36b02x7vzl22fq0yh2l"); // else +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("3fvt2dndjzd64gdhzxvql5d8b"); // /* These braces fend off a "empty body in an else-statement" +UNSUPPORTED("2luomnvf5pqa41oaxy8f8r9or"); // warning under GCC when assert expands to nothing. */ +UNSUPPORTED("c6tldeu5ffnykyfto7hi9ixau"); // ; +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("87z47ijxyqp3enbpawsz2ln6c"); // /* Convert the pointer data in `regstart' and `regend' to +UNSUPPORTED("2au9uvntej9ho5mvvkamw1j5w"); // indices. Register zero has to be set differently, +UNSUPPORTED("7hnlk3p3u0dhyz803a3lfbxnj"); // since we haven't kept track of any info for it. */ +UNSUPPORTED("35mb19qsz9130m513vyoka7y0"); // if (regs->num_regs > 0) +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("9009sy5tyjmheeqydo5wo4kwq"); // regs->start[0] = pos; +UNSUPPORTED("edxcovxefspqos0b0zuq6z7ha"); // regs->end[0] = ((dend == end_match_1) +UNSUPPORTED("99qit228aypztxnllw89nwokv"); // ? ((regoff_t) (d - string1)) +UNSUPPORTED("4aa9l4flk3x9zqpcce1dwt1ta"); // : ((regoff_t) (d - string2 + size1))); +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("egg8arm7ozeve9mx29jgkz7bs"); // /* Go through the first `min (num_regs, regs->num_regs)' +UNSUPPORTED("9c1fouoack9c0oqkqs0d1tbyn"); // registers, since that is all we initialized. */ +UNSUPPORTED("76y0zjrbtva0kjq7q5c1wths1"); // for (mcnt = 1; (unsigned) mcnt < ((num_regs) < (regs->num_regs) ? (num_regs) : (regs->num_regs)); +UNSUPPORTED("1eh3h1x9wgjp35deszyvz3o6e"); // mcnt++) +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("b0l8ghi3p5kmv8ns6tw59wvuu"); // if (((regstart[mcnt]) == (®_unset_dummy)) || ((regend[mcnt]) == (®_unset_dummy))) +UNSUPPORTED("nmubntmt76n8354k37ekf09c"); // regs->start[mcnt] = regs->end[mcnt] = -1; +UNSUPPORTED("ecas48ylhxx9t2hquqr1nnwzj"); // else +UNSUPPORTED("bho20rvti5y7pi0voz7il3e40"); // { +UNSUPPORTED("elvx8lxakvbaqd1oax9ecwh6w"); // regs->start[mcnt] +UNSUPPORTED("2ftoc2pu10jb5p4scmxq2z1j2"); // = (regoff_t) ((size1 && string1 <= (regstart[mcnt]) && (regstart[mcnt]) <= string1 + size1) ? ((regoff_t) ((regstart[mcnt]) - string1)) : ((regoff_t) ((regstart[mcnt]) - string2 + size1))); +UNSUPPORTED("eblc8kac69cvh0xmx81t3z7qw"); // regs->end[mcnt] +UNSUPPORTED("7lahjjs9zz1e6q38t501ceam8"); // = (regoff_t) ((size1 && string1 <= (regend[mcnt]) && (regend[mcnt]) <= string1 + size1) ? ((regoff_t) ((regend[mcnt]) - string1)) : ((regoff_t) ((regend[mcnt]) - string2 + size1))); +UNSUPPORTED("ad3bk4xnx8bgy7plhun3c0mvv"); // } +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("dud4yeckicq4pijwz9m705cmx"); // /* If the regs structure we return has more elements than +UNSUPPORTED("dg2liz6izarfhgllr7c0lvfzx"); // were in the pattern, set the extra elements to -1. If +UNSUPPORTED("bgul1odz2k47e5yo08ifpsxux"); // we (re)allocated the registers, this is the case, +UNSUPPORTED("8pq9l6jwi4wy8aly679isfqnx"); // because we always allocate enough to have at least one +UNSUPPORTED("ccbog2f5misacunpi5lovnpm0"); // -1 at the end. */ +UNSUPPORTED("3rm0qbtrqgfau6g7gecmhdspm"); // for (mcnt = num_regs; (unsigned) mcnt < regs->num_regs; mcnt++) +UNSUPPORTED("129q7ylakhk2gu6j7p4jpz372"); // regs->start[mcnt] = regs->end[mcnt] = -1; +UNSUPPORTED("93qdoi4cltvsoa26wtattpcrj"); // } /* regs && !bufp->no_sub */ +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("4wc9t8vouh3w18pod77gkuoaz"); // mcnt = d - pos - ((dend == end_match_1) +UNSUPPORTED("48tr2aou1bn895ggwv1qgo056"); // ? string1 +UNSUPPORTED("e9wr9ptogadx1o3labo85tlgf"); // : string2 - size1); +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("8f1nfq1jn2ejt7ub9midgshrh"); // do { ; if ((void*) regstart) ((void)0); (void*) regstart = (void *)0; if ((void*) regend) ((void)0); (void*) regend = (void *)0; if ((void*) old_regstart) ((void)0); (void*) old_regstart = (void *)0; if ((void*) old_regend) ((void)0); (void*) old_regend = (void *)0; if ((void*) best_regstart) ((void)0); (void*) best_regstart = (void *)0; if ((void*) best_regend) ((void)0); (void*) best_regend = (void *)0; if ((void*) reg_info) ((void)0); (void*) reg_info = (void *)0; if ((void*) reg_dummy) ((void)0); (void*) reg_dummy = (void *)0; if ((void*) reg_info_dummy) ((void)0); (void*) reg_info_dummy = (void *)0; } while (0); +UNSUPPORTED("c0a9sr78bshk0e2ijyxlzxg7h"); // return mcnt; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("b0kkxy3zkf3f430688gewaj4w"); // /* Otherwise match next pattern command. */ +UNSUPPORTED("3d9jhchhw3lu8yajca4mi058b"); // switch (((re_opcode_t) *p++)) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("1cr7m9kscv8emiq2bhdx0l21"); // /* Ignore these. Used to ignore the n of succeed_n's which +UNSUPPORTED("4p7fiu2s102akmzhjtzxqkrdi"); // currently have n == 0. */ +UNSUPPORTED("anhhi3sf756j0lcm11sy9nyfc"); // case no_op: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("8xm4dpngfjaadz6e2suqjuja7"); // case succeed: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("97sc3afg030x5rva8s655k37e"); // goto succeed_label; +UNSUPPORTED("bsqnanqt8sp33wb2pm6xt6ulq"); // /* Match the next n pattern characters exactly. The following +UNSUPPORTED("4hpiyumzwmrkzpbtwhyro0nin"); // byte in the pattern defines n, and the n bytes after that +UNSUPPORTED("126jkfju6a6kncm4twhsy8b50"); // are the characters to match. */ +UNSUPPORTED("cw984demptqbnja38a25p2xi1"); // case exactn: +UNSUPPORTED("e299xchgd28m8kehs3yk4j0m0"); // mcnt = *p++; +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("bh28o7qdz7h0u89in1fxom93a"); // /* This is written out as an if-else so we don't waste time +UNSUPPORTED("87zph5xuncm4m58n4ggl0buj8"); // testing `translate' inside the loop. */ +UNSUPPORTED("7jj6ay2afdj7lpspqsgwusj6m"); // if (translate) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("af97jdpx3vxfjkevna4yd8iu3"); // do +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("664ue5cxfdx7fkvvgla8dw3ko"); // while (d == dend) { if (dend == end_match_2) goto fail; d = string2; dend = end_match_2; }; +UNSUPPORTED("4nbfd88egqevnftfub4el1t0p"); // if ((unsigned char) translate[(unsigned char) *d++] +UNSUPPORTED("c44weohee2ybnj7w12bc184r0"); // != (unsigned char) *p++) +UNSUPPORTED("bkcykqhkoe9lpop9i2qgzu9yp"); // goto fail; +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("74t2bggypeoowelqm6xtisx30"); // while (--mcnt); +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("cunk7vpvzj28y1x4gn62gxpce"); // else +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("af97jdpx3vxfjkevna4yd8iu3"); // do +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("664ue5cxfdx7fkvvgla8dw3ko"); // while (d == dend) { if (dend == end_match_2) goto fail; d = string2; dend = end_match_2; }; +UNSUPPORTED("aozx58qal2txvazcjwrwyio1g"); // if (*d++ != (char) *p++) goto fail; +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("74t2bggypeoowelqm6xtisx30"); // while (--mcnt); +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("2o2dzkzmcvnlj1d5ychre7cqo"); // do { if (!set_regs_matched_done) { active_reg_t r; set_regs_matched_done = 1; for (r = lowest_active_reg; r <= highest_active_reg; r++) { ((reg_info[r]).bits.matched_something) = ((reg_info[r]).bits.ever_matched_something) = 1; } } } while (0); +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("7tks8jmj7cqrcj4nyqm3djfno"); // /* Match any character except possibly a newline or a null. */ +UNSUPPORTED("1bv8e740f9rna5i036bo292wc"); // case anychar: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("6l2kf5tzbvscsr8vy2bos6ng7"); // while (d == dend) { if (dend == end_match_2) goto fail; d = string2; dend = end_match_2; }; +UNSUPPORTED("avzqzqv7s0tr2npgctz1b2ana"); // if ((!(bufp->syntax & ((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1)) && (translate ? (char) translate[(unsigned char) (*d)] : (*d)) == '\n') +UNSUPPORTED("83t3ma7nbx7fiz0zawdo05ob2"); // || (bufp->syntax & (((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) && (translate ? (char) translate[(unsigned char) (*d)] : (*d)) == '\000')) +UNSUPPORTED("etjodgz127fwk1r4166wqxg7n"); // goto fail; +UNSUPPORTED("2o2dzkzmcvnlj1d5ychre7cqo"); // do { if (!set_regs_matched_done) { active_reg_t r; set_regs_matched_done = 1; for (r = lowest_active_reg; r <= highest_active_reg; r++) { ((reg_info[r]).bits.matched_something) = ((reg_info[r]).bits.ever_matched_something) = 1; } } } while (0); +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("p26x5fh4zcf5ddyi146lh558"); // d++; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("2ro4nzmlhhrmitxu9446arhlo"); // case charset: +UNSUPPORTED("2zj0t91dpl66cu75cb0h2j1hu"); // case charset_not: +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("8n4s0kz2yj50t5rvnitti5hyl"); // register unsigned char c; +UNSUPPORTED("deppcas7zridwg11cevwayois"); // boolean not = (re_opcode_t) *(p - 1) == charset_not; +UNSUPPORTED("6mnx06fa3p4n9bhd9htqjy0il"); // ; +UNSUPPORTED("6mf4c0e1oxwfped5hh8u7fz2n"); // while (d == dend) { if (dend == end_match_2) goto fail; d = string2; dend = end_match_2; }; +UNSUPPORTED("9aaydk7f3la99u6jfo9kyxp5i"); // c = (translate ? (char) translate[(unsigned char) (*d)] : (*d)); /* The character to match. */ +UNSUPPORTED("cc3v2ndt3kmkt0r26mvu8ftfi"); // /* Cast to `unsigned' instead of `unsigned char' in case the +UNSUPPORTED("2szsk231obr0m7gvx69h0jje"); // bit list is a full 32 bytes long. */ +UNSUPPORTED("2bmmfw3dqxl0rnfrjgzxlk2gw"); // if (c < (unsigned) (*p * 8) +UNSUPPORTED("721an1atvtz1g2jzxegur68o9"); // && p[1 + c / 8] & (1 << (c % 8))) +UNSUPPORTED("16fenxsijr0vmtxzyb8psvofo"); // not = !not; +UNSUPPORTED("9pg86i2witmji2iwfc6jhm9j8"); // p += 1 + *p; +UNSUPPORTED("6rkrjn87jai9lq2d129w2h7g8"); // if (!not) goto fail; +UNSUPPORTED("632iqprva0k4cq9az0mwgy0ua"); // do { if (!set_regs_matched_done) { active_reg_t r; set_regs_matched_done = 1; for (r = lowest_active_reg; r <= highest_active_reg; r++) { ((reg_info[r]).bits.matched_something) = ((reg_info[r]).bits.ever_matched_something) = 1; } } } while (0); +UNSUPPORTED("2ddfcenepkfjkw5qk64bs5pjs"); // d++; +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("ax93bd9x56qib5q0g9wvm2qcy"); // /* The beginning of a group is represented by start_memory. +UNSUPPORTED("e38f63tkhbflv1p396hknxdwy"); // The arguments are the register number in the next byte, and the +UNSUPPORTED("c64u5xem18b4mqy79877eqfcs"); // number of groups inner to this one in the next. The text +UNSUPPORTED("dbdk515uk79zg5hip4kru378u"); // matched within the group is recorded (in the internal +UNSUPPORTED("8j4ek9641uur5fxjgkizkb06i"); // registers data structure) under the register number. */ +UNSUPPORTED("6c0ei34e676sv2kl1dxfzm5lm"); // case start_memory: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("dus38gizylomi1jon9xa9a9gi"); // /* Find out if this group can match the empty string. */ +UNSUPPORTED("1e0kjdjtknuzgjuge4nu2rvvv"); // p1 = p; /* To send to group_match_null_string_p. */ +UNSUPPORTED("1lvbl8fbh2kfnyp76ial3wyge"); // if (((reg_info[*p]).bits.match_null_string_p) == 3) +UNSUPPORTED("1yvuh3ye9g4wks9vy2jwlla11"); // ((reg_info[*p]).bits.match_null_string_p) +UNSUPPORTED("crq9r37sdaimjd51v7rr5rifz"); // = group_match_null_string_p (&p1, pend, reg_info); +UNSUPPORTED("ea7tbs2n5vp5hwe31r9ym79d1"); // /* Save the position in the string where we were the last time +UNSUPPORTED("b64kvidnxk3y1txigfo1pl99t"); // we were at this open-group operator in case the group is +UNSUPPORTED("6w4zb5o8illk23kubyigl5wig"); // operated upon by a repetition operator, e.g., with `(a*)*b' +UNSUPPORTED("9d7meouvzhwtqek5lj1q19d3n"); // against `ab'; then we want to ignore where we are now in +UNSUPPORTED("elzx65ahdc47yfgprdxj1sjl1"); // the string in case this attempt to match fails. */ +UNSUPPORTED("1qsu4c7bkuq3vofwjjijw1e3k"); // old_regstart[*p] = ((reg_info[*p]).bits.match_null_string_p) +UNSUPPORTED("6fd5qfd27ra7djj22yvjcis5j"); // ? ((regstart[*p]) == (®_unset_dummy)) ? d : regstart[*p] +UNSUPPORTED("eg76mx8hl74su6aktlwej5s9l"); // : regstart[*p]; +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("837i1cwpv2l0eyw1m5ly72e5q"); // regstart[*p] = d; +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("1pjvhqen01q14gt1u2ipmfn78"); // ((reg_info[*p]).bits.is_active) = 1; +UNSUPPORTED("7yf870aytlplqgsdoktbv23o8"); // ((reg_info[*p]).bits.matched_something) = 0; +UNSUPPORTED("5qe9dgngpf1z0x2gaouwzuh33"); // /* Clear this whenever we change the register activity status. */ +UNSUPPORTED("dckkxudermmywleu21wcsh6wk"); // set_regs_matched_done = 0; +UNSUPPORTED("4v5t4lf3m98srbm2dhq6otf2z"); // /* This is the new highest active register. */ +UNSUPPORTED("3z1903inbnuh0u7jl2xrmgjwy"); // highest_active_reg = *p; +UNSUPPORTED("c5um95y8m6g52hnhowkayvp2f"); // /* If nothing was active before, this is the new lowest active +UNSUPPORTED("33rqqd71rbnr2br416p5pko3h"); // register. */ +UNSUPPORTED("bbhu9dtas1n5xtephxw36fi5o"); // if (lowest_active_reg == ((1 << 8) + 1)) +UNSUPPORTED("2zewvmpnwbg7dwzrf032pngut"); // lowest_active_reg = *p; +UNSUPPORTED("247xejwk6ewf4ot2xglm0foep"); // /* Move past the register number and inner group count. */ +UNSUPPORTED("8mazj3o2k4ts6oo83xpc0clf6"); // p += 2; +UNSUPPORTED("9h673b93wmz9abfvqdehryv9v"); // just_past_start_mem = p; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("958t8ufjo5g39llb7x2vk8gey"); // /* The stop_memory opcode represents the end of a group. Its +UNSUPPORTED("3diz7dyrj8z41hkn0gv0u90nj"); // arguments are the same as start_memory's: the register +UNSUPPORTED("ancmrtd12048bir4um1a42lk2"); // number, and the number of inner groups. */ +UNSUPPORTED("3q89uw4g68y7kyiitvliyykpb"); // case stop_memory: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("6myxkco5k76etfo4hu8yr5wbc"); // /* We need to save the string position the last time we were at +UNSUPPORTED("79ss3fgfp7q2srolhcfv565wc"); // this close-group operator in case the group is operated +UNSUPPORTED("4g7o1h1hqyb3ed7o7xoukat2e"); // upon by a repetition operator, e.g., with `((a*)*(b*)*)*' +UNSUPPORTED("7ya5jxfxzzwl6gbtsm5gp06kq"); // against `aba'; then we want to ignore where we are now in +UNSUPPORTED("elzx65ahdc47yfgprdxj1sjl1"); // the string in case this attempt to match fails. */ +UNSUPPORTED("6tbn6td0l64kefdcsz4l5v4aq"); // old_regend[*p] = ((reg_info[*p]).bits.match_null_string_p) +UNSUPPORTED("6ei747c3h9zuuwuuoeuutcbvc"); // ? ((regend[*p]) == (®_unset_dummy)) ? d : regend[*p] +UNSUPPORTED("8mmdpk59qqy95iwnf47y5p6dl"); // : regend[*p]; +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("1g18yrcifqxtxpfho7si6eeta"); // regend[*p] = d; +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("7vycocnhdpq8h26dxroqf6qv3"); // /* This register isn't active anymore. */ +UNSUPPORTED("7ntazk8yalx2z9fbvgnqmgjyj"); // ((reg_info[*p]).bits.is_active) = 0; +UNSUPPORTED("5qe9dgngpf1z0x2gaouwzuh33"); // /* Clear this whenever we change the register activity status. */ +UNSUPPORTED("dckkxudermmywleu21wcsh6wk"); // set_regs_matched_done = 0; +UNSUPPORTED("42clmiwrmzlsyiozfpc5z4nc9"); // /* If this was the only register active, nothing is active +UNSUPPORTED("1ujxcs2n921afe94v57lwlhbh"); // anymore. */ +UNSUPPORTED("63r84tgp0e98zrp5vtjft0j7v"); // if (lowest_active_reg == highest_active_reg) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("8kmp96mmwzp28qyx61vh0flaz"); // lowest_active_reg = ((1 << 8) + 1); +UNSUPPORTED("7x2sqxkjont50piw66yo0dtpp"); // highest_active_reg = (1 << 8); +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("cunk7vpvzj28y1x4gn62gxpce"); // else +UNSUPPORTED("c1jewz2a8ue76qm3v9zzr62p2"); // { /* We must scan for the new highest active register, since +UNSUPPORTED("decsayupwmti5a04jbhouqvoo"); // it isn't necessarily one less than now: consider +UNSUPPORTED("2xmzbvq25xm2umlpe67f0xxcl"); // (a(b)c(d(e)f)g). When group 3 ends, after the f), the +UNSUPPORTED("epks85v9quym7a8m6zf2fqi3"); // new highest active register is 1. */ +UNSUPPORTED("2txbhcyz9wjvsf90upkqlpnc2"); // unsigned char r = *p - 1; +UNSUPPORTED("5734gbg5fpueutgkx1nymooqp"); // while (r > 0 && !((reg_info[r]).bits.is_active)) +UNSUPPORTED("bdia7d21cgyoa54eec4z33p89"); // r--; +UNSUPPORTED("8n4iy0kw6ecl8rffe6zhoim7f"); // /* If we end up at register zero, that means that we saved +UNSUPPORTED("euyoh0d7li8ww59zhb7bcmwss"); // the registers as the result of an `on_failure_jump', not +UNSUPPORTED("9b4zvqn8u6k8s7opuitogjuop"); // a `start_memory', and we jumped to past the innermost +UNSUPPORTED("2qdslp2g91aru02gnj2jzfngo"); // `stop_memory'. For example, in ((.)*) we save +UNSUPPORTED("c49yz0o5hen5lvybntd5j2fns"); // registers 1 and 2 as a result of the *, but when we pop +UNSUPPORTED("eqfql6meyzhinquampkweqzy6"); // back to the second ), we are at the stop_memory 1. +UNSUPPORTED("3y5zlgk5fpwzvouq2l6ssxmd1"); // Thus, nothing is active. */ +UNSUPPORTED("34eseuqzde8opwrs60ycvdlou"); // if (r == 0) +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("6sxj2komvl2u668mxzv7uw1bk"); // lowest_active_reg = ((1 << 8) + 1); +UNSUPPORTED("4wvntivmvrdiicobd01fuopc1"); // highest_active_reg = (1 << 8); +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("ex6jbb36b02x7vzl22fq0yh2l"); // else +UNSUPPORTED("2gpimcvwuqcsn5m8kxgtrur9s"); // highest_active_reg = r; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("6tnujp0ji1y0x3qf7nnoewlwi"); // /* If just failed to match something this time around with a +UNSUPPORTED("c2a0wegxd9akp346q7kd756xk"); // group that's operated on by a repetition operator, try to +UNSUPPORTED("5sojth3d9jro95jciohpo41gv"); // force exit from the ``loop'', and restore the register +UNSUPPORTED("6y1gydjqgpmctcds7f5sg7r7a"); // information for this group that we had before trying this +UNSUPPORTED("7k609wk6ordqikf4gj9wim2mb"); // last match. */ +UNSUPPORTED("drsdlw7kcvkqlu9vl2ekb5pva"); // if ((!((reg_info[*p]).bits.matched_something) +UNSUPPORTED("djhystklzfwsz99ch5tg2mdul"); // || just_past_start_mem == p - 1) +UNSUPPORTED("73puidl4bjed2y05glwuha2tr"); // && (p + 2) < pend) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("5bmgzdh5rp0tqqvuep6upitw5"); // boolean is_a_jump_n = 0; +UNSUPPORTED("6i6e11jwv13din36enbo5swaa"); // p1 = p + 2; +UNSUPPORTED("wr9bhelppzmwslf6sw3zxs9m"); // mcnt = 0; +UNSUPPORTED("8y47wte4d9uar38b22v7dqq3g"); // switch ((re_opcode_t) *p1++) +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("bok1esp1zekmbuklmyk3rk5rx"); // case jump_n: +UNSUPPORTED("38gwuf75sc2x4fup5mqsis4x6"); // is_a_jump_n = 1; +UNSUPPORTED("a8ugqe6z5croeioatypl4otaw"); // case pop_failure_jump: +UNSUPPORTED("75n3w229uzeshyir5i61r1043"); // case maybe_pop_jump: +UNSUPPORTED("6l3m2qx4riktyve4e2l0wh9fe"); // case jump: +UNSUPPORTED("dnliw06x9ef4nef4vszyc6y2o"); // case dummy_failure_jump: +UNSUPPORTED("4sq4b65a0bh8lf919g64pqica"); // do { do { (mcnt) = *(p1) & 0377; (mcnt) += ((((unsigned char) (*((p1) + 1))) ^ 128) - 128) << 8; } while (0); (p1) += 2; } while (0); +UNSUPPORTED("c286v7bq7t229rlti3rgsn6i4"); // if (is_a_jump_n) +UNSUPPORTED("70d9iq4l9znncby73z47xsgqd"); // p1 += 2; +UNSUPPORTED("1fg4xctmq8acy7m0oob45guaz"); // break; +UNSUPPORTED("cyzkq50b2b248lxpi6lj66jqs"); // default: +UNSUPPORTED("2oxjzlotqn0ba3akkxgs9h02q"); // /* do nothing */ ; +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("8yasklhrgy6q7ca1rahwnp80l"); // p1 += mcnt; +UNSUPPORTED("efql51mwt6tl2tkzt0wc69svs"); // /* If the next operation is a jump backwards in the pattern +UNSUPPORTED("b1jwyhb9r9kdtn75700ivpm08"); // to an on_failure_jump right before the start_memory +UNSUPPORTED("32ioduqtcldpe0p955ukfx3zq"); // corresponding to this stop_memory, exit from the loop +UNSUPPORTED("7u1pbravuknawsh6n44eiljij"); // by forcing a failure after pushing on the stack the +UNSUPPORTED("1rtxd5d0unekapkzuv0h8bfs9"); // on_failure_jump's jump in the pattern, and d. */ +UNSUPPORTED("49ilcm43sqxuhnrflxjzpkyrz"); // if (mcnt < 0 && (re_opcode_t) *p1 == on_failure_jump +UNSUPPORTED("bbntf9gewbymuo5dr9q61l4ad"); // && (re_opcode_t) p1[3] == start_memory && p1[4] == *p) +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("82lu6y87gmwdhb71nwh4nyhlo"); // /* If this group ever matched anything, then restore +UNSUPPORTED("2hafp02wsznqsqyi5m15pval5"); // what its registers were before trying this last +UNSUPPORTED("d7lxjfsfhmoewr3xbgu83ccq6"); // failed match, e.g., with `(a*)*b' against `ab' for +UNSUPPORTED("2a1hjbfps60tel0gx3rexgyr7"); // regstart[1], and, e.g., with `((a*)*(b*)*)*' +UNSUPPORTED("c9ye99yclkdsse5qxjva6xyqv"); // against `aba' for regend[3]. +UNSUPPORTED("dwcg6me58csfjm6h83aoldo1o"); // Also restore the registers for inner groups for, +UNSUPPORTED("ainjqejclhkthdqm7hwkfddil"); // e.g., `((a*)(b*))*' against `aba' (register 3 would +UNSUPPORTED("8je91go3933r1lpui4r55qp19"); // otherwise get trashed). */ +UNSUPPORTED("1eohn7q2w1elvkijli82m25w4"); // if (((reg_info[*p]).bits.ever_matched_something)) +UNSUPPORTED("bho20rvti5y7pi0voz7il3e40"); // { +UNSUPPORTED("bah7hcsvx8y54udzheryy1hzy"); // unsigned r; +UNSUPPORTED("8akg97mqbnr924ugno750b17t"); // ((reg_info[*p]).bits.ever_matched_something) = 0; +UNSUPPORTED("7m9djhctqynaualhx1nqdnjc0"); // /* Restore this and inner groups' (if any) registers. */ +UNSUPPORTED("7js4crblmtp6bs951tlz5pibu"); // for (r = *p; r < (unsigned) *p + (unsigned) *(p + 1); +UNSUPPORTED("41t6k9ezn45tjk4rj4o95hvw7"); // r++) +UNSUPPORTED("1fi5w21ki1vo1jwyr4xwgm27n"); // { +UNSUPPORTED("89r32r5193oexr1uoui24rp55"); // regstart[r] = old_regstart[r]; +UNSUPPORTED("ie5lviszvuyotv6i5dfa0pe5"); // /* xx why this test? */ +UNSUPPORTED("caayksps71ouk9rtbgpk336bb"); // if (old_regend[r] >= regstart[r]) +UNSUPPORTED("13lqnupq8b5xodzv3xff3oze1"); // regend[r] = old_regend[r]; +UNSUPPORTED("bf03xtomlwkahoqno8ua4cbpc"); // } +UNSUPPORTED("ad3bk4xnx8bgy7plhun3c0mvv"); // } +UNSUPPORTED("3aju47l7l855mt7l00l7xg11q"); // p1++; +UNSUPPORTED("4sq4b65a0bh8lf919g64pqica"); // do { do { (mcnt) = *(p1) & 0377; (mcnt) += ((((unsigned char) (*((p1) + 1))) ^ 128) - 128) << 8; } while (0); (p1) += 2; } while (0); +UNSUPPORTED("a9p5b9oxka3gxpe3wgzvhfj4b"); // do { char *destination; s_reg_t this_reg; ; ; ; ; ; ; ; while (((fail_stack).size - (fail_stack).avail) < (((0 ? 0 : highest_active_reg - lowest_active_reg + 1) * 3) + 4)) { if (!((fail_stack).size > (unsigned) (re_max_failures * (5 * 3 + 4)) ? 0 : ((fail_stack).stack = (fail_stack_elt_t *) (destination = (char *) alloca (((fail_stack).size << 1) * sizeof(fail_stack_elt_t)), bcopy ((fail_stack).stack, destination, (fail_stack).size * sizeof(fail_stack_elt_t)), destination), (fail_stack).stack == (void *)0 ? 0 : ((fail_stack).size <<= 1, 1)))) return -2; ; ; } ; if (1) for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; this_reg++) { ; ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (regstart[this_reg]); ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (regend[this_reg]); ; ; ; ; ; ; fail_stack.stack[fail_stack.avail++] = (reg_info[this_reg].word); } ; fail_stack.stack[fail_stack.avail++].integer = (lowest_active_reg); ; fail_stack.stack[fail_stack.avail++].integer = (highest_active_reg); ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (p1 + mcnt); ; ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (d); ; ; } while (0); +UNSUPPORTED("3cl1in74qmmbb26vs4qw3mcuv"); // goto fail; +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("2wofa1c2dglau2ufwmcabib0n"); // /* Move past the register number and the inner group count. */ +UNSUPPORTED("8mazj3o2k4ts6oo83xpc0clf6"); // p += 2; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("7ckwgnb7aasatvtyteljdqc2k"); // /* \ has been turned into a `duplicate' command which is +UNSUPPORTED("dmy8z2x1ttnsvz6kx6l9j4rtv"); // followed by the numeric value of as the register number. */ +UNSUPPORTED("9zkejga7r0tbainhrb6zuw9os"); // case duplicate: +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("27u228yvq9k655bp1tq40v02i"); // register const char *d2, *dend2; +UNSUPPORTED("bq38n54ifn0fjxun9mtdpyxkj"); // int regno = *p++; /* Get which register to match against. */ +UNSUPPORTED("6mnx06fa3p4n9bhd9htqjy0il"); // ; +UNSUPPORTED("91m4oa28hi3m5f5icw5pumfab"); // /* Can't back reference a group which we've never matched. */ +UNSUPPORTED("9r6debcfgkrh9r4029g0p2tsz"); // if (((regstart[regno]) == (®_unset_dummy)) || ((regend[regno]) == (®_unset_dummy))) +UNSUPPORTED("1k6xdu198jqq8v2oj3209y50s"); // goto fail; +UNSUPPORTED("dng36k157gcr0rr6l2hysesr7"); // /* Where in input to try to start matching. */ +UNSUPPORTED("209civ9l0k19m94b62pp4080r"); // d2 = regstart[regno]; +UNSUPPORTED("eexsdzuwnhjynwkc8g0u6hnwm"); // /* Where to stop matching; if both the place to start and +UNSUPPORTED("bup7nhzrolgesclm7ac7j3pke"); // the place to stop matching are in the same string, then +UNSUPPORTED("8kg60w180bvkgrv4dgbrd491u"); // set to the place to stop, otherwise, for now have to use +UNSUPPORTED("9tumayloc0nncf60m1sfzkjhl"); // the end of the first string. */ +UNSUPPORTED("9dfy4gfwxkdnc83mqwy6mg4hw"); // dend2 = (((size1 && string1 <= (regstart[regno]) && (regstart[regno]) <= string1 + size1) +UNSUPPORTED("c0t5y6icuv24moevxaqu2h4zx"); // == (size1 && string1 <= (regend[regno]) && (regend[regno]) <= string1 + size1)) +UNSUPPORTED("ebo6m6ze117x4ioed7wvc6omz"); // ? regend[regno] : end_match_1); +UNSUPPORTED("1nx31c51hb376ceydwsae35jq"); // for (;;) +UNSUPPORTED("9aq2ft2quyeattze0cwemwweo"); // { +UNSUPPORTED("6bj5pjn8kja9qic9u7at0g4va"); // /* If necessary, advance to next segment in register +UNSUPPORTED("8qcz04tc3rbrg7kjuf9xezhks"); // contents. */ +UNSUPPORTED("braae8dlluapap8zd5o6ihc1u"); // while (d2 == dend2) +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("47ijn5xqcu6vix8sa88nyj6g3"); // if (dend2 == end_match_2) break; +UNSUPPORTED("5wcf12qydzz346az1zp6sbphr"); // if (dend2 == regend[regno]) break; +UNSUPPORTED("36wliwq9pfherfng9wg1z2930"); // /* End of string1 => advance to string2. */ +UNSUPPORTED("97sxan60njmrt6lx6dhy0t35a"); // d2 = string2; +UNSUPPORTED("yedssw060ohvbc7klzkqa7ky"); // dend2 = regend[regno]; +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("a3i8zhtb0tt9m1ilvwxr0yry6"); // /* At end of register contents => success */ +UNSUPPORTED("9zvbjhvrz5uc7k4zmhbwdfvr6"); // if (d2 == dend2) break; +UNSUPPORTED("afb4xzyk6gdokmo985hyfw8c9"); // /* If necessary, advance to next segment in data. */ +UNSUPPORTED("ey839udf98rupfliazw91iwf4"); // while (d == dend) { if (dend == end_match_2) goto fail; d = string2; dend = end_match_2; }; +UNSUPPORTED("ecd7rg6163cvfm8v1rtt0jtpb"); // /* How many characters left in this segment to match. */ +UNSUPPORTED("az6v71e6bfrxdlm5zelm70aji"); // mcnt = dend - d; +UNSUPPORTED("96v7a28oxrisen4iasx18f02h"); // /* Want how many consecutive characters we can match in +UNSUPPORTED("1iug3sdumn7i4romdq11ea8gc"); // one shot, so, if necessary, adjust the count. */ +UNSUPPORTED("k5cjd1jaihwrz80htbwhcz1k"); // if (mcnt > dend2 - d2) +UNSUPPORTED("8sygn6fz8wegxhzaxpof9nfdy"); // mcnt = dend2 - d2; +UNSUPPORTED("cq9zkdhm0s7gm3of2ojllwxev"); // /* Compare that many; failure if mismatch, else move +UNSUPPORTED("cwb3st7nyauiej3bt6si7nk"); // past them. */ +UNSUPPORTED("8yrz36iknz8u14syi843ya22w"); // if (translate +UNSUPPORTED("1csum7liyqa4kjt5vzjgwl055"); // ? bcmp_translate (d, d2, mcnt, translate) +UNSUPPORTED("2mfklscfw9ja01nrbw8irsd34"); // : bcmp (d, d2, mcnt)) +UNSUPPORTED("3cl1in74qmmbb26vs4qw3mcuv"); // goto fail; +UNSUPPORTED("ejde9u9b01jxuvulwaibu252x"); // d += mcnt, d2 += mcnt; +UNSUPPORTED("egy6z5e2fbinnxr0gts3znpv4"); // /* Do this because we've match some characters. */ +UNSUPPORTED("b1re2muw6n42ivurg658dizzz"); // do { if (!set_regs_matched_done) { active_reg_t r; set_regs_matched_done = 1; for (r = lowest_active_reg; r <= highest_active_reg; r++) { ((reg_info[r]).bits.matched_something) = ((reg_info[r]).bits.ever_matched_something) = 1; } } } while (0); +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("if344u3tlfkgjfkh9bwgpq8a"); // /* begline matches the empty string at the beginning of the string +UNSUPPORTED("ezwcv5j2ponvqm9xcbipsht8u"); // (unless `not_bol' is set in `bufp'), and, if +UNSUPPORTED("5elzkvlxjqh3r6z34t1j5y21o"); // `newline_anchor' is set, after newlines. */ +UNSUPPORTED("7zj5ggx1l6hln4ude6h5p4hgw"); // case begline: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("9vfz6wya8x71wz4tl74mnon03"); // if (((d) == (size1 ? string1 : string2) || !size2)) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("5xiy4c6bz8y6xryzgmegy61lb"); // if (!bufp->not_bol) break; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("5vfekfkt5mncyuqxnse5u327k"); // else if (d[-1] == '\n' && bufp->newline_anchor) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("cmda966opn67h0f3cl7lk5oaa"); // /* In all other cases, we fail. */ +UNSUPPORTED("9s7xl8jyc2iazjidoga852mei"); // goto fail; +UNSUPPORTED("6ab5d4s6v9zc6g10652lkpfxb"); // /* endline is the dual of begline. */ +UNSUPPORTED("8pqai98vstdak51ot078dn1ut"); // case endline: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("ruaqj050rr07ll8b70yjadcf"); // if (((d) == end2)) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("3zg6eo8m095cishibd0umbzff"); // if (!bufp->not_eol) break; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("1n7gdt1mnk1dwyec8i0pk3vkx"); // /* We have to ``prefetch'' the next character. */ +UNSUPPORTED("67ozwfkze7vtbzog58zzkcvh7"); // else if ((d == end1 ? *string2 : *d) == '\n' +UNSUPPORTED("8whjciz1pz1blross2jpqly5f"); // && bufp->newline_anchor) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("9s7xl8jyc2iazjidoga852mei"); // goto fail; +UNSUPPORTED("1aa2xpr66utsdr273h0vay7rp"); // /* Match at the very beginning of the data. */ +UNSUPPORTED("889sq08u5lsi3c6y2z7adu8ex"); // case begbuf: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("9vfz6wya8x71wz4tl74mnon03"); // if (((d) == (size1 ? string1 : string2) || !size2)) +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("9s7xl8jyc2iazjidoga852mei"); // goto fail; +UNSUPPORTED("4z8rppnva31fi9mwshpp8kxvw"); // /* Match at the very end of the data. */ +UNSUPPORTED("cx4ezn3s02koh0pq7idm2xvxc"); // case endbuf: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("ruaqj050rr07ll8b70yjadcf"); // if (((d) == end2)) +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("9s7xl8jyc2iazjidoga852mei"); // goto fail; +UNSUPPORTED("3wki3bf5yoz1vc1fprg2lncya"); // /* on_failure_keep_string_jump is used to optimize `.*\n'. It +UNSUPPORTED("pql30urhclx8h7lod7pnj4ip"); // pushes NULL as the value for the string on the stack. Then +UNSUPPORTED("dzwsld9trwycslc5k99jr9muh"); // `pop_failure_point' will keep the current value for the +UNSUPPORTED("3xl98pouep4b4iwcgj8vvabvc"); // string, instead of restoring it. To see why, consider +UNSUPPORTED("8wxp3mbfp1jdn6hlq6djbv5gj"); // matching `foo\nbar' against `.*\n'. The .* matches the foo; +UNSUPPORTED("djf7x62cv5c4kahfoqaehjrk9"); // then the . fails against the \n. But the next thing we want +UNSUPPORTED("4n6sotfrko2ssux5cwdwroytq"); // to do is match the \n against the \n; if we restored the +UNSUPPORTED("9gm1fhuma2g5732wasioh293h"); // string value, we would be back at the foo. +UNSUPPORTED("9pocj5oo194wevmdb2pun171k"); // Because this is used only in specific cases, we don't need to +UNSUPPORTED("22xw129jbwcohdom5on8mruf1"); // check all the things that `on_failure_jump' does, to make +UNSUPPORTED("ov1lrnfw4f23mi84a3odmle4"); // sure the right things get saved on the stack. Hence we don't +UNSUPPORTED("8xgl4y5ygq098dtwrbuwey6gq"); // share its code. The only reason to push anything on the +UNSUPPORTED("by06u3v9h2tr9d1hfpggutrts"); // stack at all is that otherwise we would have to change +UNSUPPORTED("cd2otw100j4q2pgbijt7jkkzt"); // `anychar's code to do something besides goto fail in this +UNSUPPORTED("32dqefvhlxi1u35k3ewta7mrl"); // case; that seems worse than this. */ +UNSUPPORTED("753el6ua6knou432p32d1kbcc"); // case on_failure_keep_string_jump: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("cxpumlm6doboe0ubkx51bqcx1"); // do { do { (mcnt) = *(p) & 0377; (mcnt) += ((((unsigned char) (*((p) + 1))) ^ 128) - 128) << 8; } while (0); (p) += 2; } while (0); +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("4l5nbs7foacbvjtuv07q72uuo"); // do { char *destination; s_reg_t this_reg; ; ; ; ; ; ; ; while (((fail_stack).size - (fail_stack).avail) < (((0 ? 0 : highest_active_reg - lowest_active_reg + 1) * 3) + 4)) { if (!((fail_stack).size > (unsigned) (re_max_failures * (5 * 3 + 4)) ? 0 : ((fail_stack).stack = (fail_stack_elt_t *) (destination = (char *) alloca (((fail_stack).size << 1) * sizeof(fail_stack_elt_t)), bcopy ((fail_stack).stack, destination, (fail_stack).size * sizeof(fail_stack_elt_t)), destination), (fail_stack).stack == (void *)0 ? 0 : ((fail_stack).size <<= 1, 1)))) return -2; ; ; } ; if (1) for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; this_reg++) { ; ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (regstart[this_reg]); ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (regend[this_reg]); ; ; ; ; ; ; fail_stack.stack[fail_stack.avail++] = (reg_info[this_reg].word); } ; fail_stack.stack[fail_stack.avail++].integer = (lowest_active_reg); ; fail_stack.stack[fail_stack.avail++].integer = (highest_active_reg); ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (p + mcnt); ; ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) ((void *)0); ; ; } while (0); +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("18mowhc7dokjwwbpjm3c0jjz3"); // /* Uses of on_failure_jump: +UNSUPPORTED("6hohd1mhntprbr29uarcgbh63"); // Each alternative starts with an on_failure_jump that points +UNSUPPORTED("9ltnucad533b0qouy73o7txqh"); // to the beginning of the next alternative. Each alternative +UNSUPPORTED("56exr10nxswdfl6el06yzn1kl"); // except the last ends with a jump that in effect jumps past +UNSUPPORTED("7mx68jjud7wzo6avh55bb818j"); // the rest of the alternatives. (They really jump to the +UNSUPPORTED("9nytxeg7tfysw0cho7phep44z"); // ending jump of the following alternative, because tensioning +UNSUPPORTED("ax1r80aorhdnf7k83i580xkrd"); // these jumps is a hassle.) +UNSUPPORTED("b3w92k7mmdeshyrsyx5j12h3g"); // Repeats start with an on_failure_jump that points past both +UNSUPPORTED("aef21o4yg56obwkotdy9xg0ho"); // the repetition text and either the following jump or +UNSUPPORTED("3wjc6x34irsiejqg1kbgn3iyt"); // pop_failure_jump back to this on_failure_jump. */ +UNSUPPORTED("992rmruvdtrxnk46307iiqyjo"); // case on_failure_jump: +UNSUPPORTED("c776gsd8agjizu0u6zgrf49u3"); // on_failure: +UNSUPPORTED("7xijz1d7skix4nbsjyzbkawyz"); // ; +UNSUPPORTED("6rhr1dl5qu710655mp1bqo0i6"); // do { do { (mcnt) = *(p) & 0377; (mcnt) += ((((unsigned char) (*((p) + 1))) ^ 128) - 128) << 8; } while (0); (p) += 2; } while (0); +UNSUPPORTED("7xijz1d7skix4nbsjyzbkawyz"); // ; +UNSUPPORTED("f46w21fc8pt03jhpnaepq03um"); // /* If this on_failure_jump comes right before a group (i.e., +UNSUPPORTED("4osoy23qvwvclpht018wy5fe"); // the original * applied to a group), save the information +UNSUPPORTED("bfbi4c30km7bjt8vdpfguqx3b"); // for that group and all inner ones, so that if we fail back +UNSUPPORTED("1ra232qtft0mi461dabhedxp4"); // to this point, the group's information will be correct. +UNSUPPORTED("b2mqhhpsbx6j245sm4leiu3dn"); // For example, in \(a*\)*\1, we need the preceding group, +UNSUPPORTED("6do6go4hsy6lmqykgor4s9ygv"); // and in \(zz\(a*\)b*\)\2, we need the inner group. */ +UNSUPPORTED("enwxe23t405zzw5yadk743a5r"); // /* We can't use `p' to check ahead because we push +UNSUPPORTED("6yxbydq88le4or0xwwq5siqmw"); // a failure point to `p + mcnt' after we do this. */ +UNSUPPORTED("di4spe1yrvg37sczy634usb7k"); // p1 = p; +UNSUPPORTED("816d2v18z6b4clqeuef1am657"); // /* We need to skip no_op's before we look for the +UNSUPPORTED("ch11lyve93ighowv1prcy2j8k"); // start_memory in case this on_failure_jump is happening as +UNSUPPORTED("6qg7rlv2r0m6k4j5x75pimlaa"); // the result of a completed succeed_n, as in \(a\)\{1,3\}b\1 +UNSUPPORTED("978ibng6ccfuidf65t6s6mgq0"); // against aba. */ +UNSUPPORTED("ajcmgk4q2zko19taooby9ydhf"); // while (p1 < pend && (re_opcode_t) *p1 == no_op) +UNSUPPORTED("4hemvstzejy8d3hmd82kukj7v"); // p1++; +UNSUPPORTED("6srqj3lww8szsp64bd64yus7k"); // if (p1 < pend && (re_opcode_t) *p1 == start_memory) +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("54s4csu4aujalr4c0swqowr5k"); // /* We have a new highest active register now. This will +UNSUPPORTED("4ig8j5bvaq59fsf9hfdn1q5ys"); // get reset at the start_memory we are about to get to, +UNSUPPORTED("6aatr095mst5lfh4soia9qpg2"); // but we will have saved all the registers relevant to +UNSUPPORTED("2a6e61mk8qy9pwnls9zifuok6"); // this repetition op, as described above. */ +UNSUPPORTED("50t6ewzx8ghn8hjs3qg8z17sc"); // highest_active_reg = *(p1 + 1) + *(p1 + 2); +UNSUPPORTED("bxlrtrilu12d2jxucjuex0vfp"); // if (lowest_active_reg == ((1 << 8) + 1)) +UNSUPPORTED("6li0h0b9p3vauo9vgyypu8fux"); // lowest_active_reg = *(p1 + 1); +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("7xijz1d7skix4nbsjyzbkawyz"); // ; +UNSUPPORTED("4637n0f945d4uznxowpb1ha4i"); // do { char *destination; s_reg_t this_reg; ; ; ; ; ; ; ; while (((fail_stack).size - (fail_stack).avail) < (((0 ? 0 : highest_active_reg - lowest_active_reg + 1) * 3) + 4)) { if (!((fail_stack).size > (unsigned) (re_max_failures * (5 * 3 + 4)) ? 0 : ((fail_stack).stack = (fail_stack_elt_t *) (destination = (char *) alloca (((fail_stack).size << 1) * sizeof(fail_stack_elt_t)), bcopy ((fail_stack).stack, destination, (fail_stack).size * sizeof(fail_stack_elt_t)), destination), (fail_stack).stack == (void *)0 ? 0 : ((fail_stack).size <<= 1, 1)))) return -2; ; ; } ; if (1) for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; this_reg++) { ; ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (regstart[this_reg]); ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (regend[this_reg]); ; ; ; ; ; ; fail_stack.stack[fail_stack.avail++] = (reg_info[this_reg].word); } ; fail_stack.stack[fail_stack.avail++].integer = (lowest_active_reg); ; fail_stack.stack[fail_stack.avail++].integer = (highest_active_reg); ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (p + mcnt); ; ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (d); ; ; } while (0); +UNSUPPORTED("d1pumbibe8xz2i7gr1wj6zdak"); // break; +UNSUPPORTED("ezli68qam5jhg7sd2n0z30pa1"); // /* A smart repeat ends with `maybe_pop_jump'. +UNSUPPORTED("5d7n4fkgg5a38sjzmkhaoa8hl"); // We change it to either `pop_failure_jump' or `jump'. */ +UNSUPPORTED("d7ziafib9p2sa0rqh34hv3hwj"); // case maybe_pop_jump: +UNSUPPORTED("cxpumlm6doboe0ubkx51bqcx1"); // do { do { (mcnt) = *(p) & 0377; (mcnt) += ((((unsigned char) (*((p) + 1))) ^ 128) - 128) << 8; } while (0); (p) += 2; } while (0); +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("4i49ynnzyaszs2krb0aw4uqa0"); // register unsigned char *p2 = p; +UNSUPPORTED("8b4raalmwo7274mwsk0kcdlbp"); // /* Compare the beginning of the repeat with what in the +UNSUPPORTED("6ox8v5j7jznz10vsvok39lx6h"); // pattern follows its end. If we can establish that there +UNSUPPORTED("1qm38p3f1vojknhw7v973ela0"); // is nothing that they would both match, i.e., that we +UNSUPPORTED("2wnj0iemov40iryz5lsfp3zi5"); // would have to backtrack because of (as in, e.g., `a*a') +UNSUPPORTED("9zp4vdc61w9qqpto61p74x8x0"); // then we can change to pop_failure_jump, because we'll +UNSUPPORTED("cdtoaohseagznp9y8u81kbpru"); // never have to backtrack. +UNSUPPORTED("63w8z2r32mq0x6xowpwds9vjb"); // This is not true in the case of alternatives: in +UNSUPPORTED("a98qcnnc9pzff1gk8kfj32f1i"); // `(a|ab)*' we do need to backtrack to the `ab' alternative +UNSUPPORTED("errex35giie09vkvn4e9fe4zk"); // (e.g., if the string was `ab'). But instead of trying to +UNSUPPORTED("1147ja0a6sr58jg8z4hjs19ji"); // detect that here, the alternative has put on a dummy +UNSUPPORTED("64mr7nyur7w7m85zrdx15fqli"); // failure point which is what we will end up popping. */ +UNSUPPORTED("amvyb0hgs5zfdebpexntlvwfd"); // /* Skip over open/close-group commands. +UNSUPPORTED("2lx4i6yu241papyqk442d7gf1"); // If what follows this loop is a ...+ construct, +UNSUPPORTED("1pvxwmxmctfoyisu33wn2tgym"); // look at what begins its body, since we will have to +UNSUPPORTED("8tbga6r8dqnryesfg5bmccsge"); // match at least one of that. */ +UNSUPPORTED("9nuuiq5ff5vu3ehueiarndup8"); // while (1) +UNSUPPORTED("9aq2ft2quyeattze0cwemwweo"); // { +UNSUPPORTED("2dak6ikzsj12jm54tispfishb"); // if (p2 + 2 < pend +UNSUPPORTED("7yw7v0svrd5pmn1jcqlc4e3u1"); // && ((re_opcode_t) *p2 == stop_memory +UNSUPPORTED("2yx468hmjjmhvuzxlu2jyltzc"); // || (re_opcode_t) *p2 == start_memory)) +UNSUPPORTED("4hgr2e6ls0cizy5kicpo9i13a"); // p2 += 3; +UNSUPPORTED("1yuf55oz0qpsj5aqp5h5fpr42"); // else if (p2 + 6 < pend +UNSUPPORTED("bw2og6j9w6s47jv3rzusqgra5"); // && (re_opcode_t) *p2 == dummy_failure_jump) +UNSUPPORTED("6ennx95kxfn7n27tkdpz2xiun"); // p2 += 6; +UNSUPPORTED("a4hbs6luulhltmygux2zimbcc"); // else +UNSUPPORTED("1fg4xctmq8acy7m0oob45guaz"); // break; +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("d2fh23u27kss8fzwuwtp0p6sf"); // p1 = p + mcnt; +UNSUPPORTED("90n7ynf24mp5fmsi2nznee8aj"); // /* p1[0] ... p1[2] are the `on_failure_jump' corresponding +UNSUPPORTED("4vso45anytez4cjlpkfnzk1ul"); // to the `maybe_finalize_jump' of this case. Examine what +UNSUPPORTED("b0juiqz00zb3viboquom9nj05"); // follows. */ +UNSUPPORTED("66jpg0e4bmb6ltcah5ku9m5wf"); // /* If we're at the end of the pattern, we can change. */ +UNSUPPORTED("5xkeog52k82g0w44z3mfurqp7"); // if (p2 == pend) +UNSUPPORTED("9aq2ft2quyeattze0cwemwweo"); // { +UNSUPPORTED("e25zbxyj1st10oslj3hfvjw9a"); // /* Consider what happens when matching ":\(.*\)" +UNSUPPORTED("1qa8sj8fsagixe1jkmm9j7s4u"); // against ":/". I don't really understand this code +UNSUPPORTED("bawpwuc0i5d4c4v2365l038h3"); // yet. */ +UNSUPPORTED("5zj568kdmyc87wog3sgbfzsd2"); // p[-3] = (unsigned char) pop_failure_jump; +UNSUPPORTED("9fy78dg2q1uu4c2t1zsyaestf"); // ; +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("2wredhzqyuxjyd1qy0vxr02p6"); // else if ((re_opcode_t) *p2 == exactn +UNSUPPORTED("5439ysolyacwtm0iroxxof9ja"); // || (bufp->newline_anchor && (re_opcode_t) *p2 == endline)) +UNSUPPORTED("9aq2ft2quyeattze0cwemwweo"); // { +UNSUPPORTED("6ailij025yibbye551dmh9is0"); // register unsigned char c +UNSUPPORTED("68vch1mgcskmseij0qhms2rl9"); // = *p2 == (unsigned char) endline ? '\n' : p2[2]; +UNSUPPORTED("1yo80wyjqsiw1t17we6c8a6gr"); // if ((re_opcode_t) p1[3] == exactn && p1[5] != c) +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("agl6h59gsalgrbxzq7fk4n0vn"); // p[-3] = (unsigned char) pop_failure_jump; +UNSUPPORTED("czvlqjtrpajrtul735yf6cmfz"); // ; +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("exal5xqo67c7zaxk3gaoj3n0i"); // else if ((re_opcode_t) p1[3] == charset +UNSUPPORTED("e0kae24mabhgjjynwkmainteq"); // || (re_opcode_t) p1[3] == charset_not) +UNSUPPORTED("3trws9zymzc11hz9w8m2b4fl9"); // { +UNSUPPORTED("do2ngnlega9hi7rlbi6pwnera"); // int not = (re_opcode_t) p1[3] == charset_not; +UNSUPPORTED("5f33xcwhul4d1gb3t7lj27aam"); // if (c < (unsigned char) (p1[4] * 8) +UNSUPPORTED("78cradlgzgss8hx6xr31uun4d"); // && p1[5 + c / 8] & (1 << (c % 8))) +UNSUPPORTED("7n22hwonng6xigiqxvbruxroo"); // not = !not; +UNSUPPORTED("dpe5oc4fbt7r8mffvrkacad7a"); // /* `not' is equal to 1 if c would match, which means +UNSUPPORTED("bqyj06a9kascwc6t354y5gh61"); // that we can't change to pop_failure_jump. */ +UNSUPPORTED("z5vz9r2m8zndo9aeyvz3w07z"); // if (!not) +UNSUPPORTED("el767oi7fhlc4apdbx8dsvnk6"); // { +UNSUPPORTED("6aq9gjy2dwkpua80yonp1njtn"); // p[-3] = (unsigned char) pop_failure_jump; +UNSUPPORTED("4eruune9bfskm05zy5ipimp2s"); // ; +UNSUPPORTED("b5m0ttlk23avgs4i47o8lbzg1"); // } +UNSUPPORTED("2v7ai112w6nt2xgs1gbzo22oe"); // } +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("3ra1229golg94oou1y8zbvkkp"); // else if ((re_opcode_t) *p2 == charset) +UNSUPPORTED("9aq2ft2quyeattze0cwemwweo"); // { +UNSUPPORTED("auubej4lkmydm7wamwki5zgyp"); // if ((re_opcode_t) p1[3] == exactn +UNSUPPORTED("6zebpplfmgrbk07lmll1yrrsi"); // && ! ((int) p2[1] * 8 > (int) p1[4] +UNSUPPORTED("9wp8kzivj0sustlx4ftn0l36h"); // && (p2[2 + p1[4] / 8] +UNSUPPORTED("eyu63dq7uwiiwzvudc2gopty4"); // & (1 << (p1[4] % 8))))) +UNSUPPORTED("bho20rvti5y7pi0voz7il3e40"); // { +UNSUPPORTED("8azfcbpc7h84lhyicbrd2yjqp"); // p[-3] = (unsigned char) pop_failure_jump; +UNSUPPORTED("a6r7lto035pp3gvk1bdixang2"); // ; +UNSUPPORTED("ad3bk4xnx8bgy7plhun3c0mvv"); // } +UNSUPPORTED("dcwjh55x5f2wjp4ezmipdxn2b"); // else if ((re_opcode_t) p1[3] == charset_not) +UNSUPPORTED("bho20rvti5y7pi0voz7il3e40"); // { +UNSUPPORTED("7gajjg3j6bbfnu7tfpv8vd1he"); // int idx; +UNSUPPORTED("dxd6z46rfort3j8amp5v1n0wb"); // /* We win if the charset_not inside the loop +UNSUPPORTED("5r3347hzknz05fu925j2m38f9"); // lists every character listed in the charset after. */ +UNSUPPORTED("drl6mtwfmrng8pxbu6xzqfb18"); // for (idx = 0; idx < (int) p2[1]; idx++) +UNSUPPORTED("9gmmtilb47lw5pq4j4sejrbj"); // if (! (p2[2 + idx] == 0 +UNSUPPORTED("74zwa83c3pcunsiarfams873p"); // || (idx < (int) p1[4] +UNSUPPORTED("3ytcwj384elha7evsxusun8r2"); // && ((p2[2 + idx] & ~ p1[5 + idx]) == 0)))) +UNSUPPORTED("1lzsscwayr2ygeagix6ouorzi"); // break; +UNSUPPORTED("etst8xjhq076idz2ki2lkc3kl"); // if (idx == p2[1]) +UNSUPPORTED("1fi5w21ki1vo1jwyr4xwgm27n"); // { +UNSUPPORTED("gi02bd0hnoko53b18tp6muxp"); // p[-3] = (unsigned char) pop_failure_jump; +UNSUPPORTED("7ia8gpv947o65avjiwl96gln5"); // ; +UNSUPPORTED("bf03xtomlwkahoqno8ua4cbpc"); // } +UNSUPPORTED("ad3bk4xnx8bgy7plhun3c0mvv"); // } +UNSUPPORTED("bfp6jy3jhgcx1qlqs2ugtk84o"); // else if ((re_opcode_t) p1[3] == charset) +UNSUPPORTED("bho20rvti5y7pi0voz7il3e40"); // { +UNSUPPORTED("7gajjg3j6bbfnu7tfpv8vd1he"); // int idx; +UNSUPPORTED("3gf62oi7ics60q83j50ht4j54"); // /* We win if the charset inside the loop +UNSUPPORTED("axtgnnoh8n7p39m9fbbxipnxm"); // has no overlap with the one after the loop. */ +UNSUPPORTED("6fsyvlzx4skvg5xqoif9n2bli"); // for (idx = 0; +UNSUPPORTED("6d7whyux0667vbtt3aoh8j8mc"); // idx < (int) p2[1] && idx < (int) p1[4]; +UNSUPPORTED("d4o8f5f71ai8ygtqvrs77062h"); // idx++) +UNSUPPORTED("b029onao79pzr7fwgf9oboalu"); // if ((p2[2 + idx] & p1[5 + idx]) != 0) +UNSUPPORTED("1lzsscwayr2ygeagix6ouorzi"); // break; +UNSUPPORTED("6whqfrc9hpkwoqoqk2cpgstzz"); // if (idx == p2[1] || idx == p1[4]) +UNSUPPORTED("1fi5w21ki1vo1jwyr4xwgm27n"); // { +UNSUPPORTED("gi02bd0hnoko53b18tp6muxp"); // p[-3] = (unsigned char) pop_failure_jump; +UNSUPPORTED("7ia8gpv947o65avjiwl96gln5"); // ; +UNSUPPORTED("bf03xtomlwkahoqno8ua4cbpc"); // } +UNSUPPORTED("ad3bk4xnx8bgy7plhun3c0mvv"); // } +UNSUPPORTED("13jcwbk3vyfh9xrmwi5hbe7so"); // } +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("dtbtyud0b7t5ily0nm0qkjrov"); // p -= 2; /* Point at relative address again. */ +UNSUPPORTED("9hexwrt0gnjztdabmcy13w96a"); // if ((re_opcode_t) p[-1] != pop_failure_jump) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("ca1ptlw6k6dixmzbwm3a4iusp"); // p[-1] = (unsigned char) jump; +UNSUPPORTED("e4kt1tmmevqvy3cbyk6xnznck"); // ; +UNSUPPORTED("578iyred8hniiy6kj99i6zcx7"); // goto unconditional_jump; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("et4hfzxq1ccol7oenwuqop34c"); // /* Note fall through. */ +UNSUPPORTED("evkl6mpyrcnjwer6edp6j9emc"); // /* The end of a simple repeat has a pop_failure_jump back to +UNSUPPORTED("2jcckuegby5tkaf50t6wemnmz"); // its matching on_failure_jump, where the latter will push a +UNSUPPORTED("5971g2j40ktdkl0khlo1gpoy6"); // failure point. The pop_failure_jump takes off failure +UNSUPPORTED("byi3j1ugndbk3u7yo028ikqz3"); // points put on by this pop_failure_jump's matching +UNSUPPORTED("48etkzu6pax8j2rcmbcbd2s1k"); // on_failure_jump; we got through the pattern to here from the +UNSUPPORTED("8f9as95a103nww8jbbn2vx61n"); // matching on_failure_jump, so didn't fail. */ +UNSUPPORTED("6coluo8cd7scxlqwnbvt3jqs5"); // case pop_failure_jump: +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("aaykmyayp7k026o2rgh0xnxtt"); // /* We need to pass separate storage for the lowest and +UNSUPPORTED("3w39tfh3tm57hhf0ob12sj5yk"); // highest registers, even though we don't care about the +UNSUPPORTED("angsr7u35nqld9m876d6dx7xq"); // actual values. Otherwise, we will restore only one +UNSUPPORTED("4ixesek08pb5l67pi00fqsriy"); // register from the stack, since lowest will == highest in +UNSUPPORTED("1rzihep5lcgvrl52235a9a2uy"); // `pop_failure_point'. */ +UNSUPPORTED("9m9v5kmsap0mtdznppskik3k"); // active_reg_t dummy_low_reg, dummy_high_reg; +UNSUPPORTED("5z662sre8crmvzwkqdm96nybf"); // unsigned char *pdummy; +UNSUPPORTED("35v2cyfyscndlz7rd41acza4q"); // const char *sdummy; +UNSUPPORTED("6mnx06fa3p4n9bhd9htqjy0il"); // ; +UNSUPPORTED("3g97rrgu1b7a7ep0xjxi3013b"); // { s_reg_t this_reg; const unsigned char *string_temp; ; ; ; ; ; ; ; string_temp = fail_stack.stack[--fail_stack.avail].pointer; if (string_temp != (void *)0) sdummy = (const char *) string_temp; ; ; ; pdummy = (unsigned char *) fail_stack.stack[--fail_stack.avail].pointer; ; ; dummy_high_reg = (active_reg_t) fail_stack.stack[--fail_stack.avail].integer; ; +UNSUPPORTED("1zjxjg81gnrzmbjfvorezv23b"); // dummy_low_reg = (active_reg_t) fail_stack.stack[--fail_stack.avail].integer; ; if (1) for (this_reg = dummy_high_reg; this_reg >= +UNSUPPORTED("5y05eeb8zcu1hnp1r7u72wea0"); // dummy_low_reg; this_reg--) { ; reg_info_dummy[this_reg].word = fail_stack.stack[--fail_stack.avail]; ; reg_dummy[this_reg] = (const char *) fail_stack.stack[--fail_stack.avail].pointer; ; +UNSUPPORTED("170qj0cyzc65li5h2h8nibj1a"); // reg_dummy[this_reg] = (const char *) fail_stack.stack[--fail_stack.avail].pointer; ; } else { for (this_reg = highest_active_reg; this_reg > dummy_high_reg; this_reg--) { reg_info_dummy[this_reg].word.integer = 0; reg_dummy[this_reg] = 0; +UNSUPPORTED("o5cb1sy4lw7ahxhb9ir34ywe"); // reg_dummy[this_reg] = 0; } highest_active_reg = dummy_high_reg; } set_regs_matched_done = 0; ; }; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("et4hfzxq1ccol7oenwuqop34c"); // /* Note fall through. */ +UNSUPPORTED("7jzfafc0e4ysay5587d498v0g"); // unconditional_jump: +UNSUPPORTED("7xijz1d7skix4nbsjyzbkawyz"); // ; +UNSUPPORTED("lbfv20cb4iwb8ilhovngktwp"); // /* Note fall through. */ +UNSUPPORTED("6d0r5m74qtbvaned81fau8l5f"); // /* Unconditionally jump (without popping any failure points). */ +UNSUPPORTED("9a1qj2mhg3oh4ehsjpp4d81on"); // case jump: +UNSUPPORTED("39nxr5mia7bkm0tyl5uoxm1i0"); // do { do { (mcnt) = *(p) & 0377; (mcnt) += ((((unsigned char) (*((p) + 1))) ^ 128) - 128) << 8; } while (0); (p) += 2; } while (0); /* Get the amount to jump. */ +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("ard612jdkjyh07vvh6p7xec5q"); // p += mcnt; /* Do the jump. */ +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("6eoc6h9g64ctzuyv0zhwzsp88"); // /* We need this opcode so we can detect where alternatives end +UNSUPPORTED("6m0nust2xxmwf4b1plaq3zle2"); // in `group_match_null_string_p' et al. */ +UNSUPPORTED("7ifq76or69643hqib3roiq9f4"); // case jump_past_alt: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("8efvwfkzonjvc0xgk7ss31fh2"); // goto unconditional_jump; +UNSUPPORTED("eiucbu410s7gabqq4tu08bg8c"); // /* Normally, the on_failure_jump pushes a failure point, which +UNSUPPORTED("ctsxylfj3puoijkz434hjg4jg"); // then gets popped at pop_failure_jump. We will end up at +UNSUPPORTED("7ociskstxycbbkh41vyojlnby"); // pop_failure_jump, also, and with a pattern of, say, `a+', we +UNSUPPORTED("7n2w2rey1jvho9kvlfgz2mero"); // are skipping over the on_failure_jump, so we have to push +UNSUPPORTED("ciwekfad3iz5mqjje8hiorvda"); // something meaningless for pop_failure_jump to pop. */ +UNSUPPORTED("ejqzfph0mmtiqin1hmi981bzm"); // case dummy_failure_jump: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("csbowj5rzwk0s0pqd3urbka91"); // /* It doesn't matter what we push for the string here. What +UNSUPPORTED("4qwf1zf8lyqii172mcx2gdsms"); // the code at `fail' tests is the value for the pattern. */ +UNSUPPORTED("359ip48et2ofltl9170r6hayz"); // do { char *destination; s_reg_t this_reg; ; ; ; ; ; ; ; while (((fail_stack).size - (fail_stack).avail) < (((0 ? 0 : highest_active_reg - lowest_active_reg + 1) * 3) + 4)) { if (!((fail_stack).size > (unsigned) (re_max_failures * (5 * 3 + 4)) ? 0 : ((fail_stack).stack = (fail_stack_elt_t *) (destination = (char *) alloca (((fail_stack).size << 1) * sizeof(fail_stack_elt_t)), bcopy ((fail_stack).stack, destination, (fail_stack).size * sizeof(fail_stack_elt_t)), destination), (fail_stack).stack == (void *)0 ? 0 : ((fail_stack).size <<= 1, 1)))) return -2; ; ; } ; if (1) for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; this_reg++) { ; ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (regstart[this_reg]); ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (regend[this_reg]); ; ; ; ; ; ; fail_stack.stack[fail_stack.avail++] = (reg_info[this_reg].word); } ; fail_stack.stack[fail_stack.avail++].integer = (lowest_active_reg); ; fail_stack.stack[fail_stack.avail++].integer = (highest_active_reg); ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (0); ; ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (0); ; ; } while (0); +UNSUPPORTED("8efvwfkzonjvc0xgk7ss31fh2"); // goto unconditional_jump; +UNSUPPORTED("9mevu5auyy39j4yiw0b2j9h2o"); // /* At the end of an alternative, we need to push a dummy failure +UNSUPPORTED("d2uf5y4x1b2hmxla6j6tlr1rb"); // point in case we are followed by a `pop_failure_jump', because +UNSUPPORTED("rnnvhhghy5jgw4jg1fhty1td"); // we don't want the failure point for the alternative to be +UNSUPPORTED("dkubbc7oql3ppqcdkgq9qelbn"); // popped. For example, matching `(a|ab)*' against `aab' +UNSUPPORTED("8eoqcy9m0jjec5bxgkzbvg1c7"); // requires that we match the `ab' alternative. */ +UNSUPPORTED("9446ac5zvkn7r9yqkh2brh10l"); // case push_dummy_failure: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("c992qnyh0yle1kop18y31trwb"); // /* See comments just above at `dummy_failure_jump' about the +UNSUPPORTED("5synfaxsw4ed7tb33m3un4m4s"); // two zeroes. */ +UNSUPPORTED("359ip48et2ofltl9170r6hayz"); // do { char *destination; s_reg_t this_reg; ; ; ; ; ; ; ; while (((fail_stack).size - (fail_stack).avail) < (((0 ? 0 : highest_active_reg - lowest_active_reg + 1) * 3) + 4)) { if (!((fail_stack).size > (unsigned) (re_max_failures * (5 * 3 + 4)) ? 0 : ((fail_stack).stack = (fail_stack_elt_t *) (destination = (char *) alloca (((fail_stack).size << 1) * sizeof(fail_stack_elt_t)), bcopy ((fail_stack).stack, destination, (fail_stack).size * sizeof(fail_stack_elt_t)), destination), (fail_stack).stack == (void *)0 ? 0 : ((fail_stack).size <<= 1, 1)))) return -2; ; ; } ; if (1) for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; this_reg++) { ; ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (regstart[this_reg]); ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (regend[this_reg]); ; ; ; ; ; ; fail_stack.stack[fail_stack.avail++] = (reg_info[this_reg].word); } ; fail_stack.stack[fail_stack.avail++].integer = (lowest_active_reg); ; fail_stack.stack[fail_stack.avail++].integer = (highest_active_reg); ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (0); ; ; ; fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (0); ; ; } while (0); +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("cch41i8kiaadul49ef19omdn3"); // /* Have to succeed matching what follows at least n times. +UNSUPPORTED("8nb8fa32tplp2rqeqbr6hbn7m"); // After that, handle like `on_failure_jump'. */ +UNSUPPORTED("bdrmz6krrbsihqbsklz1j7d7a"); // case succeed_n: +UNSUPPORTED("84ijqow5jif2ajlhwgtdm91f7"); // do { (mcnt) = *(p + 2) & 0377; (mcnt) += ((((unsigned char) (*((p + 2) + 1))) ^ 128) - 128) << 8; } while (0); +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("bgjxyv37kr5myctgyhh94vsi6"); // /* Originally, this is how many times we HAVE to succeed. */ +UNSUPPORTED("4hf4aztjmayqr0tjd70d8mo5l"); // if (mcnt > 0) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("e8xmciie2t26hwi49v7e64msh"); // mcnt--; +UNSUPPORTED("f0uzigopn4c90eyozalab8dsx"); // p += 2; +UNSUPPORTED("3trn8e2hbd5q9a392rlo55y4x"); // do { do { (p)[0] = (mcnt) & 0377; (p)[1] = (mcnt) >> 8; } while (0); (p) += 2; } while (0); +UNSUPPORTED("e4kt1tmmevqvy3cbyk6xnznck"); // ; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("ach1i5r2ivzzx0xwwovmzz94b"); // else if (mcnt == 0) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("e4kt1tmmevqvy3cbyk6xnznck"); // ; +UNSUPPORTED("8kebz7kyb83b0vya08j7g1h0s"); // p[2] = (unsigned char) no_op; +UNSUPPORTED("7naalvvwte5koasfwykgk8jy7"); // p[3] = (unsigned char) no_op; +UNSUPPORTED("evigqo62udorsulmaru504u73"); // goto on_failure; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("f41u8fntqiy246yy3btlg6w1v"); // case jump_n: +UNSUPPORTED("84ijqow5jif2ajlhwgtdm91f7"); // do { (mcnt) = *(p + 2) & 0377; (mcnt) += ((((unsigned char) (*((p + 2) + 1))) ^ 128) - 128) << 8; } while (0); +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("45q1dm5e8czy7dfyydg2p0qre"); // /* Originally, this is how many times we CAN jump. */ +UNSUPPORTED("c925pgmxvmas9boqu5ovt7bwp"); // if (mcnt) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("e8xmciie2t26hwi49v7e64msh"); // mcnt--; +UNSUPPORTED("bj0025yphmeva1dnjc83w2d82"); // do { (p + 2)[0] = (mcnt) & 0377; (p + 2)[1] = (mcnt) >> 8; } while (0); +UNSUPPORTED("e4kt1tmmevqvy3cbyk6xnznck"); // ; +UNSUPPORTED("578iyred8hniiy6kj99i6zcx7"); // goto unconditional_jump; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("6xb6uhe949e197w3856eykp9b"); // /* If don't have to jump any more, skip over the rest of command. */ +UNSUPPORTED("cunk7vpvzj28y1x4gn62gxpce"); // else +UNSUPPORTED("4g9g5t2dqwtbpe7orh2oew0y9"); // p += 4; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("dmqxgjrlj5ddxj88dw919ujoj"); // case set_number_at: +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("6mnx06fa3p4n9bhd9htqjy0il"); // ; +UNSUPPORTED("5pj3hnv50h51ji8ogyd48xedj"); // do { do { (mcnt) = *(p) & 0377; (mcnt) += ((((unsigned char) (*((p) + 1))) ^ 128) - 128) << 8; } while (0); (p) += 2; } while (0); +UNSUPPORTED("d2fh23u27kss8fzwuwtp0p6sf"); // p1 = p + mcnt; +UNSUPPORTED("5pj3hnv50h51ji8ogyd48xedj"); // do { do { (mcnt) = *(p) & 0377; (mcnt) += ((((unsigned char) (*((p) + 1))) ^ 128) - 128) << 8; } while (0); (p) += 2; } while (0); +UNSUPPORTED("6mnx06fa3p4n9bhd9htqjy0il"); // ; +UNSUPPORTED("7iin6qwm1f2j9sjclecva957u"); // do { (p1)[0] = (mcnt) & 0377; (p1)[1] = (mcnt) >> 8; } while (0); +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("a8jtmsnmpa4937exo9nhopyyb"); // case wordbound: +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("1q5kvi9ggao878ze57ikl6vuk"); // boolean prevchar, thischar; +UNSUPPORTED("6mnx06fa3p4n9bhd9htqjy0il"); // ; +UNSUPPORTED("dugr1bul8t32joy65do0a7h6d"); // if (((d) == (size1 ? string1 : string2) || !size2) || ((d) == end2)) +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("8ijy2sdya91ygss8ru67qxx66"); // prevchar = (re_syntax_table[(d - 1) == end1 ? *string2 :(d - 1) == string2 - 1 ? *(end1 - 1) : *(d - 1)] == 1); +UNSUPPORTED("33zxkfaori9emq7m5ssmpr1rd"); // thischar = (re_syntax_table[(d) == end1 ? *string2 :(d) == string2 - 1 ? *(end1 - 1) : *(d)] == 1); +UNSUPPORTED("79ooz7jacd1z2sfddoakjbcze"); // if (prevchar != thischar) +UNSUPPORTED("7mosouhqcis2k8sbg88g9wol8"); // break; +UNSUPPORTED("etjodgz127fwk1r4166wqxg7n"); // goto fail; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("2jqqzr491mztwr9h8hvs55ja1"); // case notwordbound: +UNSUPPORTED("4vdjxw5o61xlsk38ouw1wsypc"); // { +UNSUPPORTED("1q5kvi9ggao878ze57ikl6vuk"); // boolean prevchar, thischar; +UNSUPPORTED("6mnx06fa3p4n9bhd9htqjy0il"); // ; +UNSUPPORTED("dugr1bul8t32joy65do0a7h6d"); // if (((d) == (size1 ? string1 : string2) || !size2) || ((d) == end2)) +UNSUPPORTED("1k6xdu198jqq8v2oj3209y50s"); // goto fail; +UNSUPPORTED("8ijy2sdya91ygss8ru67qxx66"); // prevchar = (re_syntax_table[(d - 1) == end1 ? *string2 :(d - 1) == string2 - 1 ? *(end1 - 1) : *(d - 1)] == 1); +UNSUPPORTED("33zxkfaori9emq7m5ssmpr1rd"); // thischar = (re_syntax_table[(d) == end1 ? *string2 :(d) == string2 - 1 ? *(end1 - 1) : *(d)] == 1); +UNSUPPORTED("79ooz7jacd1z2sfddoakjbcze"); // if (prevchar != thischar) +UNSUPPORTED("1k6xdu198jqq8v2oj3209y50s"); // goto fail; +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("3e08x1y395304nd0y3uwffvim"); // } +UNSUPPORTED("991vlwoc47i8p67jyv2qapdhy"); // case wordbeg: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("721tzo9yoqf86tjgrubhs6lcg"); // if ((re_syntax_table[(d) == end1 ? *string2 :(d) == string2 - 1 ? *(end1 - 1) : *(d)] == 1) && (((d) == (size1 ? string1 : string2) || !size2) || !(re_syntax_table[(d - 1) == end1 ? *string2 :(d - 1) == string2 - 1 ? *(end1 - 1) : *(d - 1)] == 1))) +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("9s7xl8jyc2iazjidoga852mei"); // goto fail; +UNSUPPORTED("65os7te2jc1i6uacyszvy5spd"); // case wordend: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("88nu0py5i2vups7wk3tj8wcf4"); // if (!((d) == (size1 ? string1 : string2) || !size2) && (re_syntax_table[(d - 1) == end1 ? *string2 :(d - 1) == string2 - 1 ? *(end1 - 1) : *(d - 1)] == 1) +UNSUPPORTED("1a0r7hi8r1po69cu5fxqrw4u8"); // && (!(re_syntax_table[(d) == end1 ? *string2 :(d) == string2 - 1 ? *(end1 - 1) : *(d)] == 1) || ((d) == end2))) +UNSUPPORTED("605r8o1isen77125aqrohs6ac"); // break; +UNSUPPORTED("9s7xl8jyc2iazjidoga852mei"); // goto fail; +UNSUPPORTED("buxp1030z7swkjl42wovj9hxd"); // case wordchar: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("6l2kf5tzbvscsr8vy2bos6ng7"); // while (d == dend) { if (dend == end_match_2) goto fail; d = string2; dend = end_match_2; }; +UNSUPPORTED("7qor4v3lsqk2266u914165c3w"); // if (!(re_syntax_table[(d) == end1 ? *string2 :(d) == string2 - 1 ? *(end1 - 1) : *(d)] == 1)) +UNSUPPORTED("etjodgz127fwk1r4166wqxg7n"); // goto fail; +UNSUPPORTED("2o2dzkzmcvnlj1d5ychre7cqo"); // do { if (!set_regs_matched_done) { active_reg_t r; set_regs_matched_done = 1; for (r = lowest_active_reg; r <= highest_active_reg; r++) { ((reg_info[r]).bits.matched_something) = ((reg_info[r]).bits.ever_matched_something) = 1; } } } while (0); +UNSUPPORTED("p26x5fh4zcf5ddyi146lh558"); // d++; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("7frlpnfuvuphd3bzoulwg4vsr"); // case notwordchar: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("6l2kf5tzbvscsr8vy2bos6ng7"); // while (d == dend) { if (dend == end_match_2) goto fail; d = string2; dend = end_match_2; }; +UNSUPPORTED("7efqv32ta2jk6dolelm1jju58"); // if ((re_syntax_table[(d) == end1 ? *string2 :(d) == string2 - 1 ? *(end1 - 1) : *(d)] == 1)) +UNSUPPORTED("etjodgz127fwk1r4166wqxg7n"); // goto fail; +UNSUPPORTED("2o2dzkzmcvnlj1d5ychre7cqo"); // do { if (!set_regs_matched_done) { active_reg_t r; set_regs_matched_done = 1; for (r = lowest_active_reg; r <= highest_active_reg; r++) { ((reg_info[r]).bits.matched_something) = ((reg_info[r]).bits.ever_matched_something) = 1; } } } while (0); +UNSUPPORTED("p26x5fh4zcf5ddyi146lh558"); // d++; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("comxch6w0lbi64ejq9m4p0u7o"); // default: +UNSUPPORTED("4ga2fk86no0o6rms0bh0zuh4t"); // abort (); +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("9vmmpq61luc1cbbupgqomzlw5"); // continue; /* Successfully executed one pattern command; keep going. */ +UNSUPPORTED("9ndw6vvwoffc31wvgwvgra578"); // /* We goto here if a matching operation fails. */ +UNSUPPORTED("1x3juxkh7bw5pjqp84ugtlmce"); // fail: +UNSUPPORTED("6j68ym8upocfb9ipivxd80ark"); // if (!(fail_stack.avail == 0)) +UNSUPPORTED("92q1l5zz5c3sr57dyzmui3e99"); // { /* A restart point is known. Restore to that state. */ +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("ayzf7vhhjnbynnstdi6n454f4"); // { s_reg_t this_reg; const unsigned char *string_temp; ; ; ; ; ; ; ; string_temp = fail_stack.stack[--fail_stack.avail].pointer; if (string_temp != (void *)0) d = (const char *) string_temp; ; ; ; p = (unsigned char *) fail_stack.stack[--fail_stack.avail].pointer; ; ; highest_active_reg = (active_reg_t) fail_stack.stack[--fail_stack.avail].integer; ; +UNSUPPORTED("cb1z2qn566ao3l0dqcxiow6dp"); // lowest_active_reg = (active_reg_t) fail_stack.stack[--fail_stack.avail].integer; ; if (1) for (this_reg = highest_active_reg; this_reg >= +UNSUPPORTED("2g0zjfujimxzkr97d2g902f35"); // lowest_active_reg; this_reg--) { ; reg_info[this_reg].word = fail_stack.stack[--fail_stack.avail]; ; regend[this_reg] = (const char *) fail_stack.stack[--fail_stack.avail].pointer; ; +UNSUPPORTED("2qadsytv032wa95wodwip6p4p"); // regstart[this_reg] = (const char *) fail_stack.stack[--fail_stack.avail].pointer; ; } else { for (this_reg = highest_active_reg; this_reg > highest_active_reg; this_reg--) { reg_info[this_reg].word.integer = 0; regend[this_reg] = 0; +UNSUPPORTED("1sgt5yrkh4wqtk60f39qhmqyh"); // regstart[this_reg] = 0; } highest_active_reg = highest_active_reg; } set_regs_matched_done = 0; ; }; +UNSUPPORTED("a59azprq7sley0l2fkpr8iplf"); // /* If this failure point is a dummy, try the next one. */ +UNSUPPORTED("27dzlpjb6otkjse11xs60aoen"); // if (!p) +UNSUPPORTED("etjodgz127fwk1r4166wqxg7n"); // goto fail; +UNSUPPORTED("5ezd84f3c0gvxbdr48go3nu9d"); // /* If we failed to the end of the pattern, don't examine *p. */ +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("enro4gwm81mrbyp937vtdmluy"); // if (p < pend) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("5bmgzdh5rp0tqqvuep6upitw5"); // boolean is_a_jump_n = 0; +UNSUPPORTED("6rryel9f7nixy5bn6j0bu5pim"); // /* If failed to a backwards jump that's part of a repetition +UNSUPPORTED("6lkiil4jkazqh0sr2kuzl2a6n"); // loop, need to pop this failure point and use the next one. */ +UNSUPPORTED("3ov8y2d12vzh7q5i3tuyoelxe"); // switch ((re_opcode_t) *p) +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("bok1esp1zekmbuklmyk3rk5rx"); // case jump_n: +UNSUPPORTED("38gwuf75sc2x4fup5mqsis4x6"); // is_a_jump_n = 1; +UNSUPPORTED("75n3w229uzeshyir5i61r1043"); // case maybe_pop_jump: +UNSUPPORTED("a8ugqe6z5croeioatypl4otaw"); // case pop_failure_jump: +UNSUPPORTED("6l3m2qx4riktyve4e2l0wh9fe"); // case jump: +UNSUPPORTED("84b1pj26tamclxb0mw5nrxg5g"); // p1 = p + 1; +UNSUPPORTED("4sq4b65a0bh8lf919g64pqica"); // do { do { (mcnt) = *(p1) & 0377; (mcnt) += ((((unsigned char) (*((p1) + 1))) ^ 128) - 128) << 8; } while (0); (p1) += 2; } while (0); +UNSUPPORTED("8ocr60qo89yr0vtq5dj8v1owo"); // p1 += mcnt; +UNSUPPORTED("6cxswairiyne2bjb1dmz6d26z"); // if ((is_a_jump_n && (re_opcode_t) *p1 == succeed_n) +UNSUPPORTED("ekvd2x03u6gf8ylhhxyq7h336"); // || (!is_a_jump_n +UNSUPPORTED("cw8zksvsbjm3lb2eh5chm46x2"); // && (re_opcode_t) *p1 == on_failure_jump)) +UNSUPPORTED("bkcykqhkoe9lpop9i2qgzu9yp"); // goto fail; +UNSUPPORTED("1fg4xctmq8acy7m0oob45guaz"); // break; +UNSUPPORTED("cyzkq50b2b248lxpi6lj66jqs"); // default: +UNSUPPORTED("2oxjzlotqn0ba3akkxgs9h02q"); // /* do nothing */ ; +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("9g1qr2dsx4ng98gqf2c94flil"); // if (d >= string1 && d <= end1) +UNSUPPORTED("eb6uc0689wgv8mqsvkm38mu5z"); // dend = end_match_1; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("1knjyao8ci3w18zqqcnmnitir"); // else +UNSUPPORTED("8dc5stfweb0p9s0z2aqvucjp7"); // break; /* Matching at this starting point really fails. */ +UNSUPPORTED("7mfls4p0ojvjkaotqvjflu5ht"); // } /* for (;;) */ +UNSUPPORTED("78m9mze1ip3qflmasmayufoml"); // if (best_regs_set) +UNSUPPORTED("2mqxvuzj0ksk0m6oea72s11bm"); // goto restore_best_regs; +UNSUPPORTED("d7ubx9odh5b3nkaac1zt1epbl"); // do { ; if ((void*) regstart) ((void)0); (void*) regstart = (void *)0; if ((void*) regend) ((void)0); (void*) regend = (void *)0; if ((void*) old_regstart) ((void)0); (void*) old_regstart = (void *)0; if ((void*) old_regend) ((void)0); (void*) old_regend = (void *)0; if ((void*) best_regstart) ((void)0); (void*) best_regstart = (void *)0; if ((void*) best_regend) ((void)0); (void*) best_regend = (void *)0; if ((void*) reg_info) ((void)0); (void*) reg_info = (void *)0; if ((void*) reg_dummy) ((void)0); (void*) reg_dummy = (void *)0; if ((void*) reg_info_dummy) ((void)0); (void*) reg_info_dummy = (void *)0; } while (0); +UNSUPPORTED("2k1latznr3ux22xinn931zwue"); // return -1; /* Failure to match. */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cq5u8rqlecamd29odxfaybq58 +// static boolean group_match_null_string_p(unsigned char **p, unsigned char *end, register_info_type *reg_info) +public static Object group_match_null_string_p(Object... arg) { +UNSUPPORTED("etarlz3ybg3wdofiesiw8dwbq"); // static boolean +UNSUPPORTED("7fmzghcqs81ua3tkzybmg2t5u"); // group_match_null_string_p(unsigned char **p, +UNSUPPORTED("2800cclhjee5reqodgs0uz6jp"); // unsigned char *end, +UNSUPPORTED("1zudh11exsdumrcui0azslboo"); // register_info_type *reg_info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5rwd4tuvikkbfw1s56awbwtbe"); // int mcnt; +UNSUPPORTED("dbm120px96ap42fmbuxy5yrj5"); // /* Point to after the args to the start_memory. */ +UNSUPPORTED("bjzqlm993x9boruj0kyeol53l"); // unsigned char *p1 = *p + 2; +UNSUPPORTED("azfsm7rfz2u17du52a0mrfyoq"); // while (p1 < end) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("23a56718i3eh15dzfmbft7w8p"); // /* Skip over opcodes that can match nothing, and return true or +UNSUPPORTED("bbrge68fsb7cmb7ocyo176sox"); // false, as appropriate, when we get to one that can't, or to the +UNSUPPORTED("9nn48i9apg1r7w3mm0yftr0gb"); // matching stop_memory. */ +UNSUPPORTED("3kakimebymsdj9dnon7o0iz9v"); // switch ((re_opcode_t) *p1) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("dpdkpfbea8z9xx4m3qriv0ks"); // /* Could be either a loop or a series of alternatives. */ +UNSUPPORTED("992rmruvdtrxnk46307iiqyjo"); // case on_failure_jump: +UNSUPPORTED("4hemvstzejy8d3hmd82kukj7v"); // p1++; +UNSUPPORTED("18pz18zbmozo48uq20alb8ok5"); // do { do { (mcnt) = *(p1) & 0377; (mcnt) += ((((unsigned char) (*((p1) + 1))) ^ 128) - 128) << 8; } while (0); (p1) += 2; } while (0); +UNSUPPORTED("7ysd5uwx66rnhuasuke0gw17h"); // /* If the next operation is not a jump backwards in the +UNSUPPORTED("chqkvvtqui6nji6p4nqjnxnc0"); // pattern. */ +UNSUPPORTED("clp8uz1ldh06ksh93asr2xtu6"); // if (mcnt >= 0) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("9vuq76qui8wedzsb144fnx8dd"); // /* Go through the on_failure_jumps of the alternatives, +UNSUPPORTED("4k14n5k0mqv0fovwitf4alxzx"); // seeing if any of the alternatives cannot match nothing. +UNSUPPORTED("clkpepohs7tguzyn8ncluhakf"); // The last alternative starts with only a jump, +UNSUPPORTED("49dbeehco6191jqwdivzoevhh"); // whereas the rest start with on_failure_jump and end +UNSUPPORTED("6h3f5m3yjc34la8qgzsbzbcsv"); // with a jump, e.g., here is the pattern for `a|b|c': +UNSUPPORTED("9m5jtr9332etcn1h5ctckidp4"); // /on_failure_jump/0/6/exactn/1/a/jump_past_alt/0/6 +UNSUPPORTED("ck48ad3kd04evjrca6aqzw2g"); // /on_failure_jump/0/6/exactn/1/b/jump_past_alt/0/3 +UNSUPPORTED("6vxw9gryj1dxtxoycbews4j87"); // /exactn/1/c +UNSUPPORTED("3p6xfpp9zbgix9sb10dz2cfhd"); // So, we have to first go through the first (n-1) +UNSUPPORTED("cp25hojwgralgldniw273kdj3"); // alternatives and then deal with the last one separately. */ +UNSUPPORTED("9a0det71z82exleln86167ddq"); // /* Deal with the first (n-1) alternatives, which start +UNSUPPORTED("az6wcsp2m1rn4g8e9nkvxomfi"); // with an on_failure_jump (see above) that jumps to right +UNSUPPORTED("cip7j7cjuis96j2g1tyo2fogf"); // past a jump_past_alt. */ +UNSUPPORTED("am40qiyqgt5i95zqw8gmfb43f"); // while ((re_opcode_t) p1[mcnt-3] == jump_past_alt) +UNSUPPORTED("4hzaau620c4rh7xorkrmxfut7"); // { +UNSUPPORTED("2lhz8ag4lccpzb4fzqq8rviyo"); // /* `mcnt' holds how many bytes long the alternative +UNSUPPORTED("bu59ahle478dwgxifr5a81zrn"); // is, including the ending `jump_past_alt' and +UNSUPPORTED("4xvr333ml76572j0cidzpewwy"); // its number. */ +UNSUPPORTED("6tqlvyqvppynpnuuf3j8ebtlu"); // if (!alt_match_null_string_p (p1, p1 + mcnt - 3, +UNSUPPORTED("3cqjfljoigoe1s3yctsmb49io"); // reg_info)) +UNSUPPORTED("5eqwqroxusaik54ze9ykumu4w"); // return 0; +UNSUPPORTED("1nweigx3aj1nu16la9727cgek"); // /* Move to right after this alternative, including the +UNSUPPORTED("9wjlfe40zk6mcnijph9zw3skr"); // jump_past_alt. */ +UNSUPPORTED("8ocr60qo89yr0vtq5dj8v1owo"); // p1 += mcnt; +UNSUPPORTED("7me1al3m500othjustdgp25s8"); // /* Break if it's the beginning of an n-th alternative +UNSUPPORTED("bsa0fgfj9n2wksuh9f164m03i"); // that doesn't begin with an on_failure_jump. */ +UNSUPPORTED("dxkrs3xxv5uhishofpjt2j6mb"); // if ((re_opcode_t) *p1 != on_failure_jump) +UNSUPPORTED("7vckzntfuo1ibi8r53gsfg8al"); // break; +UNSUPPORTED("dcrlv6lsj26x00kq7h5mb1tft"); // /* Still have to check that it's not an n-th +UNSUPPORTED("ehy9rg3hrcurcpp2ofykuu16t"); // alternative that starts with an on_failure_jump. */ +UNSUPPORTED("3aju47l7l855mt7l00l7xg11q"); // p1++; +UNSUPPORTED("4sq4b65a0bh8lf919g64pqica"); // do { do { (mcnt) = *(p1) & 0377; (mcnt) += ((((unsigned char) (*((p1) + 1))) ^ 128) - 128) << 8; } while (0); (p1) += 2; } while (0); +UNSUPPORTED("7i4x97abeu0pj34gwgukjoe00"); // if ((re_opcode_t) p1[mcnt-3] != jump_past_alt) +UNSUPPORTED("bho20rvti5y7pi0voz7il3e40"); // { +UNSUPPORTED("7v0khgzw96aytjvy24azi9yi3"); // /* Get to the beginning of the n-th alternative. */ +UNSUPPORTED("d58xf2hqair572yx3r8pofa0e"); // p1 -= 3; +UNSUPPORTED("b4o9itamiw6ccgnlojl73v2fx"); // break; +UNSUPPORTED("ad3bk4xnx8bgy7plhun3c0mvv"); // } +UNSUPPORTED("2tfish0jog6m8uhlhaokmzvm3"); // } +UNSUPPORTED("j8cvgeroqesrtqchx5ejvs06"); // /* Deal with the last alternative: go back and get number +UNSUPPORTED("b74m2a2e9cgu2v8i8t1u5b2x1"); // of the `jump_past_alt' just before it. `mcnt' contains +UNSUPPORTED("cu400hxya6t1qs6iquuqabq0s"); // the length of the alternative. */ +UNSUPPORTED("26bdoghsw938ft3sgehp275kx"); // do { (mcnt) = *(p1 - 2) & 0377; (mcnt) += ((((unsigned char) (*((p1 - 2) + 1))) ^ 128) - 128) << 8; } while (0); +UNSUPPORTED("3xtanhdz88xahyfe15omt5obd"); // if (!alt_match_null_string_p (p1, p1 + mcnt, reg_info)) +UNSUPPORTED("4h8qa3kxqmv2m8g445wmasnl"); // return 0; +UNSUPPORTED("f53vent58m68zyw39fxmgqbr0"); // p1 += mcnt; /* Get past the n-th alternative. */ +UNSUPPORTED("9euvgwd19qm3deiwc663wdzb0"); // } /* if mcnt > 0 */ +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("3q89uw4g68y7kyiitvliyykpb"); // case stop_memory: +UNSUPPORTED("1qe3sa29ntp5400stzdrrbgdg"); // ; +UNSUPPORTED("8jfkppp2w8v4t5gyqcelvinb4"); // *p = p1 + 2; +UNSUPPORTED("15lnhn427yvuetx9312e81jrg"); // return 1; +UNSUPPORTED("comxch6w0lbi64ejq9m4p0u7o"); // default: +UNSUPPORTED("ir4atstqu8v5sqigzqbwdop4"); // if (!common_op_match_null_string_p (&p1, end, reg_info)) +UNSUPPORTED("bwb5ofkxp13uiyvgbvx70039w"); // return 0; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("55ht7a89z8ua4oqsrrwpapvpg"); // } /* while p1 < end */ +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 azrkydvahepcjvkkru2gdwg0m +// static boolean alt_match_null_string_p(unsigned char *p, unsigned char *end, register_info_type *reg_info) +public static Object alt_match_null_string_p(Object... arg) { +UNSUPPORTED("etarlz3ybg3wdofiesiw8dwbq"); // static boolean +UNSUPPORTED("7z4yu5m5t5mwjca6t6wpfajrj"); // alt_match_null_string_p(unsigned char *p, +UNSUPPORTED("91jh331pn45y9rnhwhm4fiavm"); // unsigned char *end, +UNSUPPORTED("ereoaeyy0phqbbu5cnhfb78ew"); // register_info_type *reg_info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5rwd4tuvikkbfw1s56awbwtbe"); // int mcnt; +UNSUPPORTED("15ytldlmpb2i6cvtxquvhjs2m"); // unsigned char *p1 = p; +UNSUPPORTED("azfsm7rfz2u17du52a0mrfyoq"); // while (p1 < end) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("3e0wppcum116c0gyks4koglo6"); // /* Skip over opcodes that can match nothing, and break when we get +UNSUPPORTED("ei8lrs2smmn3h63q7rpj9sd0o"); // to one that can't. */ +UNSUPPORTED("3kakimebymsdj9dnon7o0iz9v"); // switch ((re_opcode_t) *p1) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("5n9m839emxb8of9xbq805onsd"); // /* It's a loop. */ +UNSUPPORTED("992rmruvdtrxnk46307iiqyjo"); // case on_failure_jump: +UNSUPPORTED("4hemvstzejy8d3hmd82kukj7v"); // p1++; +UNSUPPORTED("18pz18zbmozo48uq20alb8ok5"); // do { do { (mcnt) = *(p1) & 0377; (mcnt) += ((((unsigned char) (*((p1) + 1))) ^ 128) - 128) << 8; } while (0); (p1) += 2; } while (0); +UNSUPPORTED("28bkn6qebb96emlyztm3kg6wt"); // p1 += mcnt; +UNSUPPORTED("ctqmerohp1f69mb1v1t20jx33"); // break; +UNSUPPORTED("comxch6w0lbi64ejq9m4p0u7o"); // default: +UNSUPPORTED("ir4atstqu8v5sqigzqbwdop4"); // if (!common_op_match_null_string_p (&p1, end, reg_info)) +UNSUPPORTED("bwb5ofkxp13uiyvgbvx70039w"); // return 0; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("eixc7qyme2j14k5zjjghyiexn"); // } /* while p1 < end */ +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7hv0wkt4lrkp5whfzuke2qytb +// static boolean common_op_match_null_string_p(unsigned char **p, unsigned char *end, register_info_type *reg_info) +public static Object common_op_match_null_string_p(Object... arg) { +UNSUPPORTED("etarlz3ybg3wdofiesiw8dwbq"); // static boolean +UNSUPPORTED("8k0shz76dhg3w8h6nz5pjbbu2"); // common_op_match_null_string_p(unsigned char **p, +UNSUPPORTED("28yc2ksklc2vvzt1s5ynbtv0f"); // unsigned char *end, +UNSUPPORTED("6qhd2068gir26rtqc477pm6m1"); // register_info_type *reg_info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5rwd4tuvikkbfw1s56awbwtbe"); // int mcnt; +UNSUPPORTED("7n9r83dkya7i0zuq00imgrukd"); // boolean ret; +UNSUPPORTED("7ju59c3dbukl0mz5vgjdoozn5"); // int reg_no; +UNSUPPORTED("87zyg7fzbf21hmhh461pn9zf9"); // unsigned char *p1 = *p; +UNSUPPORTED("qr7u5j2ref5m7rf6d3wqgmps"); // switch ((re_opcode_t) *p1++) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("cf4augtxav7j1ap91bbu3vwy1"); // case no_op: +UNSUPPORTED("30ts9llmyexduvfuq7fczrer8"); // case begline: +UNSUPPORTED("db3lgui4636z7pglgbzpqe54h"); // case endline: +UNSUPPORTED("8fekxuxe035cl7l6pccwsy7fh"); // case begbuf: +UNSUPPORTED("16msnj7hxrfentkv031ct5vc3"); // case endbuf: +UNSUPPORTED("bcaajfoyi3jhpmdxhguo7iofc"); // case wordbeg: +UNSUPPORTED("bkapw3yogqx0sw1ngisv3mb5d"); // case wordend: +UNSUPPORTED("9pqp8vzoeyor0e1x4eqhthk8m"); // case wordbound: +UNSUPPORTED("7hyd3tgheqr4untlslak7uheb"); // case notwordbound: +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("1olrmh5xaxc4lppwfnwemvaej"); // case start_memory: +UNSUPPORTED("4rjnecf4q32xuk4ie6vozpkfh"); // reg_no = *p1; +UNSUPPORTED("cf8srqrmhz47tb7zdgoe9ufhv"); // ; +UNSUPPORTED("eluoqmhl3j8dyk8hyv680sy72"); // ret = group_match_null_string_p (&p1, end, reg_info); +UNSUPPORTED("8hm5umlf6osua8zn0w4y735nh"); // /* Have to set this here in case we're checking a group which +UNSUPPORTED("8xeab9le3ct3b2q7y6ly9yrhh"); // contains a group and a back reference to it. */ +UNSUPPORTED("5kozscfkat4mdav2anbiib5hw"); // if (((reg_info[reg_no]).bits.match_null_string_p) == 3) +UNSUPPORTED("7qym75wzdha4x8u9v6fik2mwy"); // ((reg_info[reg_no]).bits.match_null_string_p) = ret; +UNSUPPORTED("4cj58wdjt8jr4gsngmucb56o0"); // if (!ret) +UNSUPPORTED("9co1titw8ibive55ugr6yfqa4"); // return 0; +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("608rfpgf7ytuxs7hkgnig1by5"); // /* If this is an optimized succeed_n for zero times, make the jump. */ +UNSUPPORTED("9agy5bj4opmh2vksf6lpzm8cd"); // case jump: +UNSUPPORTED("9ngggpjqcpnq88nnkxr6y7vpq"); // do { do { (mcnt) = *(p1) & 0377; (mcnt) += ((((unsigned char) (*((p1) + 1))) ^ 128) - 128) << 8; } while (0); (p1) += 2; } while (0); +UNSUPPORTED("1fxhzdbiknha03fye9yen0bje"); // if (mcnt >= 0) +UNSUPPORTED("blqj2uomfewkrosqhn5f7bu73"); // p1 += mcnt; +UNSUPPORTED("1knjyao8ci3w18zqqcnmnitir"); // else +UNSUPPORTED("9co1titw8ibive55ugr6yfqa4"); // return 0; +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("e7ahhsjjo9f2hw3bbtucupqlw"); // case succeed_n: +UNSUPPORTED("9gimh1u1p2gmf0q5weiqpbbop"); // /* Get to the number of times to succeed. */ +UNSUPPORTED("1xi9qxsoaehueyjhabvspqapk"); // p1 += 2; +UNSUPPORTED("9ngggpjqcpnq88nnkxr6y7vpq"); // do { do { (mcnt) = *(p1) & 0377; (mcnt) += ((((unsigned char) (*((p1) + 1))) ^ 128) - 128) << 8; } while (0); (p1) += 2; } while (0); +UNSUPPORTED("1ju62vxdlb0sw55v80s2h9p8i"); // if (mcnt == 0) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("9o2tf6im70km8pb1v0mz4tbhc"); // p1 -= 4; +UNSUPPORTED("18pz18zbmozo48uq20alb8ok5"); // do { do { (mcnt) = *(p1) & 0377; (mcnt) += ((((unsigned char) (*((p1) + 1))) ^ 128) - 128) << 8; } while (0); (p1) += 2; } while (0); +UNSUPPORTED("28bkn6qebb96emlyztm3kg6wt"); // p1 += mcnt; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("1knjyao8ci3w18zqqcnmnitir"); // else +UNSUPPORTED("9co1titw8ibive55ugr6yfqa4"); // return 0; +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("8qjtjs80wrz4f6y4td1b7mvma"); // case duplicate: +UNSUPPORTED("asaad7roragv1dquu2i7eek6v"); // if (!((reg_info[*p1]).bits.match_null_string_p)) +UNSUPPORTED("9co1titw8ibive55ugr6yfqa4"); // return 0; +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("75h4k3rjfi85b2x98vw0ydipc"); // case set_number_at: +UNSUPPORTED("4n2daij5pdw7lao7n4sjeg0jt"); // p1 += 4; +UNSUPPORTED("p0mt8wznalavjdm44ot4ykl7"); // default: +UNSUPPORTED("7clvngmkw0ra8af8a3iq45vx"); // /* All other opcodes mean we cannot match the empty string. */ +UNSUPPORTED("7opo20y2y6rg5i89ocvk6qi3c"); // return 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("7aoui9hygj5j6kdd0rxq44xxu"); // *p = p1; +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bmn9h3qza6i9e7dqjjfrybinz +// static int bcmp_translate(const char *s1, const char *s2, register int len, char * translate) +public static Object bcmp_translate(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("49tjvn2d5kzof9i3764qd8gth"); // bcmp_translate(const char *s1, +UNSUPPORTED("5uinwhadus9kwopd7lyrqnv1a"); // const char *s2, +UNSUPPORTED("cmbl8wi47y4b1fybqcgqp3cad"); // register int len, +UNSUPPORTED("buglwifdxboeujcjzksjh6swn"); // char * translate) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1ugbvzngjn5o1kzerkwa4adyp"); // register const unsigned char *p1 = (const unsigned char *) s1; +UNSUPPORTED("180lhbq291ugus1sv6zq5b3l5"); // register const unsigned char *p2 = (const unsigned char *) s2; +UNSUPPORTED("6wkqjlkf1iustuo36c77rrlrr"); // while (len) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("ezhykxoqbj0p9ighugfp2pi29"); // if (translate[*p1++] != translate[*p2++]) return 1; +UNSUPPORTED("bzd5vvu7ht1mg1wbv21csikm0"); // len--; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 34ah0o8fvtlfnsffbxiyqyidp +// const char * re_compile_pattern(const char *pattern, size_t length, struct re_pattern_buffer *bufp) +public static Object re_compile_pattern(Object... arg) { +UNSUPPORTED("6j2ty6zxx5788lqe504lttmv9"); // const char * +UNSUPPORTED("840rb5ffowq19aqwebzlrs0ix"); // re_compile_pattern(const char *pattern, +UNSUPPORTED("dl8tq4y4w9kpglxq4nad9nbg9"); // size_t length, +UNSUPPORTED("aoahpx5nic1p28er7zbeilibx"); // struct re_pattern_buffer *bufp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3e5irvh3tz7ehf2px38xbca06"); // reg_errcode_t ret; +UNSUPPORTED("5e5qu4o19kt10axby5ksjp1wz"); // /* GNU code is written to assume at least RE_NREGS registers will be set +UNSUPPORTED("aj16ee11rx90k6v260pcrptdx"); // (and at least one extra will be -1). */ +UNSUPPORTED("45osi16xhss2jxm7u3qpsz7c8"); // bufp->regs_allocated = 0; +UNSUPPORTED("1s5igzhlf8kjprjkw59u0qgie"); // /* And GNU code determines whether or not to get register information +UNSUPPORTED("4guz1aey6odyu4c6y9tmn7zks"); // by passing null for the REGS argument to re_match, etc., not by +UNSUPPORTED("52atj9kiaa2ty4xp5v9tsxd36"); // setting no_sub. */ +UNSUPPORTED("bbp8v34kk2eq5jyypmrxegzfj"); // bufp->no_sub = 0; +UNSUPPORTED("9zh94yub2h9x6jb5ygl7zj9j3"); // /* Match anchors at newline. */ +UNSUPPORTED("e5hvlkcul9024me3za5w0z09"); // bufp->newline_anchor = 1; +UNSUPPORTED("f3zeg0ozvbzdxvagvz40uveju"); // ret = regex_compile (pattern, length, re_syntax_options, bufp); +UNSUPPORTED("2ymc69pz5pg0nhr5joxv3v743"); // if (!ret) +UNSUPPORTED("4mszslwsjcaxojerluqjpsu2v"); // return (void *)0; +UNSUPPORTED("d6waz7r04hy6vrqylyux3566y"); // return (re_error_msgid[(int) ret]); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ark6qnryn24fu1bsbt5806lp +// int regcomp(regex_t *preg, const char *pattern, int cflags) +public static Object regcomp(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("blyavrrspx8u7mmx6skbsrpuy"); // regcomp(regex_t *preg, +UNSUPPORTED("ez93viyirx32wiwx9ilmwnk2u"); // const char *pattern, +UNSUPPORTED("s47pwvnf26eqviz0566rtafr"); // int cflags) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3e5irvh3tz7ehf2px38xbca06"); // reg_errcode_t ret; +UNSUPPORTED("arhekyz17wtkt6jcym8vpwl49"); // reg_syntax_t syntax +UNSUPPORTED("cbdjhw8vkpou2zuaqsu38y9nq"); // = (cflags & 1) ? +UNSUPPORTED("79wzspap1pncga08fi5fl45p3"); // ((((((unsigned long int) 1) << 1) << 1) | ((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) | (((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) | (((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) | ((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) | (((((unsigned long int) 1) << 1) << 1) << 1) | ((((((unsigned long int) 1) << 1) << 1) << 1) << 1) | ((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) | (((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) | (((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) | (((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) : ((((((unsigned long int) 1) << 1) << 1) | ((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) | (((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) | (((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) | ((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1)) | (((unsigned long int) 1) << 1)); +UNSUPPORTED("2c2dfk6a0ejxysnnaajue8m3p"); // /* regex_compile will allocate the space for the compiled pattern. */ +UNSUPPORTED("ciyvseirt32x5s8n7w8wi9s8b"); // preg->buffer = 0; +UNSUPPORTED("b766kips3z6tm9tifbomnvtmy"); // preg->allocated = 0; +UNSUPPORTED("2ne52scg87du6fvmgx4iz1ysx"); // preg->used = 0; +UNSUPPORTED("dxwa3e8lqasfevebnvit8vz60"); // /* Don't bother to use a fastmap when searching. This simplifies the +UNSUPPORTED("d5umtgupwg9d4iorhfyjyv8h5"); // REG_NEWLINE case: if we used a fastmap, we'd have to put all the +UNSUPPORTED("ci8pjdo3b21gzu9zuu8df58su"); // characters after newlines into the fastmap. This way, we just try +UNSUPPORTED("b5ux13ie7uoiwgtxbhqxccoi6"); // every character. */ +UNSUPPORTED("57t8as5xu3zastwhuvl9x5qvx"); // preg->fastmap = 0; +UNSUPPORTED("enpzhkdq6ocdhen3xvl8ye5na"); // if (cflags & (1 << 1)) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("nujvj3hueebzfkhe2zarvfil"); // unsigned i; +UNSUPPORTED("1pg69zbhom0cik7h8kn6t7y3g"); // preg->translate +UNSUPPORTED("4nsrzyk2btcgmsdqjm2ar3vro"); // = (char *) malloc (256 +UNSUPPORTED("121bcje0610pzlltu9346d7c4"); // * sizeof (*(char *)0)); +UNSUPPORTED("bg80cnygjx78pa8v3kgmb63z4"); // if (preg->translate == (void *)0) +UNSUPPORTED("ez6fz5kzz38v9ggr3wcumi254"); // return (int) REG_ESPACE; +UNSUPPORTED("1vzdm7mgve5oi32ohhuqg8i00"); // /* Map uppercase characters to corresponding lowercase ones. */ +UNSUPPORTED("d532lt7aisdb9o1mkdskq134t"); // for (i = 0; i < 256; i++) +UNSUPPORTED("aty2mttvyracw7p9x8sls4efr"); // preg->translate[i] = (1 && isupper (i)) ? tolower (i) : i; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c74ru7c24sev3knmidtcsy39e"); // preg->translate = (void *)0; +UNSUPPORTED("a5kyad26nzmqkixgei1o847n"); // /* If REG_NEWLINE is set, newlines are treated differently. */ +UNSUPPORTED("db72pzje2ov1p3o5omyykyi7e"); // if (cflags & ((1 << 1) << 1)) +UNSUPPORTED("bpj2wmqxauupj14jn3tkadfjh"); // { /* REG_NEWLINE implies neither . nor [^...] match newline. */ +UNSUPPORTED("359fgbemkmx8zzoobn2anh8hi"); // syntax &= ~((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1); +UNSUPPORTED("6g64qw2xiqubh3y7z9htmuzh5"); // syntax |= ((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1); +UNSUPPORTED("ciyi7qvu3im41264ljmdkdzcl"); // /* It also changes the matching behavior. */ +UNSUPPORTED("8qz1elzfwgfxjvri21nioniys"); // preg->newline_anchor = 1; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("2vftf31ujo45k9qv67n4ycbkv"); // preg->newline_anchor = 0; +UNSUPPORTED("cx4zfp27tpwfh8xisrvqqbgks"); // preg->no_sub = !!(cflags & (((1 << 1) << 1) << 1)); +UNSUPPORTED("2x159h0yz24rnjci2cq7y1ntz"); // /* POSIX says a null character in the pattern terminates it, so we +UNSUPPORTED("d66drlhc8quicmkt8miicu0ea"); // can use strlen here in compiling the pattern. */ +UNSUPPORTED("d0cg1xygicxugayg5yya59guo"); // ret = regex_compile (pattern, strlen (pattern), syntax, preg); +UNSUPPORTED("erkyjok9d0k2psk0sb56f6vvz"); // /* POSIX doesn't distinguish between an unmatched open-group and an +UNSUPPORTED("1u6sohla9epfpyet1i7nzcgad"); // unmatched close-group: both are REG_EPAREN. */ +UNSUPPORTED("3e5v05pv5yk1o9jdj6bh0zg5w"); // if (ret == REG_ERPAREN) ret = REG_EPAREN; +UNSUPPORTED("7ancqvxv19g9moyznhw9my8xj"); // // printf("done with regcomp\n"); +UNSUPPORTED("f3hb5xwlfzeslhmq4ytwr8pgd"); // return (int) ret; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9wdgvv1gwc1o7f0w05768p2i3 +// int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags) +public static Object regexec(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("2v3o1uaqb2zp3puxfw779kms2"); // regexec(const regex_t *preg, +UNSUPPORTED("ekpgp0iac0e6o9udtd55uiuly"); // const char *string, +UNSUPPORTED("dvlw3353jood9rlb0w1geec5z"); // size_t nmatch, +UNSUPPORTED("2864eyed7whs62o97tq2npado"); // regmatch_t pmatch[], +UNSUPPORTED("3i4rg5r8fnniwlx6ybr4n906a"); // int eflags) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7p7i4cv4qt10ow22vl9znw72j"); // int ret; +UNSUPPORTED("82u0gsptykltdsomlyhj9rk19"); // struct re_registers regs; +UNSUPPORTED("9z47qt0zii8jvt2jglo0lgszf"); // regex_t private_preg; +UNSUPPORTED("6tsm0ylmo6ex2b24vcrr2cim7"); // int len = strlen (string); +UNSUPPORTED("17kwuhblkqgc3mdapwyc395sz"); // boolean want_reg_info = !preg->no_sub && nmatch > 0; +UNSUPPORTED("agwedmhzs0prdnnlk9jnsfg9c"); // private_preg = *preg; +UNSUPPORTED("13e7wtxa8hlobsw8k2nqqg3r3"); // private_preg.not_bol = !!(eflags & 1); +UNSUPPORTED("57scmexrxxrwf0l9nzr1szrpt"); // private_preg.not_eol = !!(eflags & (1 << 1)); +UNSUPPORTED("mql47hhdnpgkjou517m3726f"); // /* The user has told us exactly how many registers to return +UNSUPPORTED("cqy8u5p4xwvs8y4q6w7fce3xv"); // information about, via `nmatch'. We have to pass that on to the +UNSUPPORTED("3rosx96qxeg0kqk0uxh7l1cl8"); // matching routines. */ +UNSUPPORTED("c013ob9fi1fg0vxd1oam5865g"); // private_preg.regs_allocated = 2; +UNSUPPORTED("9rkeiv1fdp19eb173sjfltu2t"); // if (want_reg_info) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("8a02jnbpnzttrw1ayq7w5mj62"); // regs.num_regs = nmatch; +UNSUPPORTED("aoe6tbrgjwbzymn65261rgcum"); // regs.start = ((regoff_t *) malloc ((nmatch) * sizeof (regoff_t))); +UNSUPPORTED("3hfltfy7wmk9a24vq9wzlmq9v"); // regs.end = ((regoff_t *) malloc ((nmatch) * sizeof (regoff_t))); +UNSUPPORTED("7njv4u89envwukxkawqtq0oto"); // if (regs.start == (void *)0 || regs.end == (void *)0) +UNSUPPORTED("873f3rccmawjgt3m3uqo8p3ci"); // return (int) REG_NOMATCH; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("a8yuopeuk07ow83nm5njscoxn"); // /* Perform the searching operation. */ +UNSUPPORTED("cwamuwhai30lyfbzzvibn401x"); // ret = re_search (&private_preg, string, len, +UNSUPPORTED("6jnlnbkqqmvrtbxyne0meo7jt"); // /* start: */ 0, /* range: */ len, +UNSUPPORTED("1xnfnhd8hk3tln4va3uu7f2wm"); // want_reg_info ? ®s : (struct re_registers *) 0); +UNSUPPORTED("86oesm7mqi9hv2n08zwleh73m"); // /* Copy the register information to the POSIX structure. */ +UNSUPPORTED("9rkeiv1fdp19eb173sjfltu2t"); // if (want_reg_info) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("ce73wb0bbrngqy808tp6ppsrq"); // if (ret >= 0) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("bxs4m6oognafzhor2ww93b692"); // unsigned r; +UNSUPPORTED("8soywsau32kjtl93ct4sxxyma"); // for (r = 0; r < nmatch; r++) +UNSUPPORTED("5k2digv672hnrndhc9ktw0oii"); // { +UNSUPPORTED("cfq91dne0qag57cuzkcw5mxcg"); // pmatch[r].rm_so = regs.start[r]; +UNSUPPORTED("gibau4k00r5dzlvk4kcbwb56"); // pmatch[r].rm_eo = regs.end[r]; +UNSUPPORTED("b86ovw6olwwo6gnqlt1wqqzb4"); // } +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("c0xnifbhwrr011t5ogyy7sxk4"); // /* If we needed the temporary register info, free the space now. */ +UNSUPPORTED("ec72z8dmt4gcwsz42a7ubbvgx"); // free (regs.start); +UNSUPPORTED("8gandm25f5zvbvckszq77jha"); // free (regs.end); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("7dob0tgisyvw4rk6jg4viupyw"); // /* We want zero return to mean success, unlike `re_search'. */ +UNSUPPORTED("246hp3joht768z00rf97n4yvo"); // return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6u3voe6b7jao3ubd49rpvpmmx +// size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size) +public static Object regerror(Object... arg) { +UNSUPPORTED("4hv4edbckfpx53agqilues063"); // size_t +UNSUPPORTED("72xsdxwxd93qf4oxx4jyhdo8z"); // regerror(int errcode, +UNSUPPORTED("asif8gxw337t4n3r3vlc5nfry"); // const regex_t *preg, +UNSUPPORTED("7k1ct0qwx3daob1tp19njd6q0"); // char *errbuf, +UNSUPPORTED("dx6x6qmmym6uzf7roqbw9kvt"); // size_t errbuf_size) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("91x25pzkmtzqo9hslez13lges"); // const char *msg; +UNSUPPORTED("6m38jprvakqd3ls3jeotcz1xg"); // size_t msg_size; +UNSUPPORTED("adpjyd1odey6jlw7vkjk429xt"); // if (errcode < 0 +UNSUPPORTED("8ybd3hnsngs38rh8ddk8q0w26"); // || errcode >= (int) (sizeof (re_error_msgid) +UNSUPPORTED("c9vfuy341wx3rri8wvq9sua5s"); // / sizeof (re_error_msgid[0]))) +UNSUPPORTED("7u1uewk6wx5joexwehp38vlng"); // /* Only error codes returned by the rest of the code should be passed +UNSUPPORTED("6hlmqhjzj6vqjlpwwklal6m89"); // to this routine. If we are given anything else, or if other regex +UNSUPPORTED("cbs38fwyo0gkko91u7cenjci"); // code generates an invalid error code, then the program has a bug. +UNSUPPORTED("8or7291qatc4r8j81dj07fgb4"); // Dump core so we can fix it. */ +UNSUPPORTED("68wdgoila4oldpk4gdc6i6uc3"); // abort (); +UNSUPPORTED("4yci96v8pzj722abptwqxdkso"); // msg = (re_error_msgid[errcode]); +UNSUPPORTED("dujj3eb9b3zvr0euc5s4itcj"); // msg_size = strlen (msg) + 1; /* Includes the null. */ +UNSUPPORTED("6oho364pztumj8yc7uc6bsusm"); // if (errbuf_size != 0) +UNSUPPORTED("6pjalxixg8dnhbhc46pm6e6ay"); // { +UNSUPPORTED("4oxtwxt5zv8auje423kp2f05r"); // if (msg_size > errbuf_size) +UNSUPPORTED("9ua540u2gx5jpu302s81qfxhi"); // { +UNSUPPORTED("3cof3rq3oujwsp8nrbb9snh96"); // strncpy (errbuf, msg, errbuf_size - 1); +UNSUPPORTED("17sh1j757ozjg8a39nvcnmean"); // errbuf[errbuf_size - 1] = 0; +UNSUPPORTED("7nxu74undh30brb8laojud3f9"); // } +UNSUPPORTED("1knjyao8ci3w18zqqcnmnitir"); // else +UNSUPPORTED("6ru8c1linplme96gzmn6v9ezn"); // strcpy (errbuf, msg); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("ban7kvxs6qguwfg0cz79w2fqe"); // return msg_size; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1ydg62ufhooqvgftuuovy004y +// void regfree(regex_t *preg) +public static Object regfree(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("yxtwt5xf8mgfwucdzaq8xg0"); // regfree(regex_t *preg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("axv8f27k41wevzbd8jorfk8em"); // if (preg->buffer != (void *)0) +UNSUPPORTED("4krgfpqw59bwla8p73a5potcs"); // free (preg->buffer); +UNSUPPORTED("duswsbmztnkjw8nmmpoanyq0l"); // preg->buffer = (void *)0; +UNSUPPORTED("b766kips3z6tm9tifbomnvtmy"); // preg->allocated = 0; +UNSUPPORTED("2ne52scg87du6fvmgx4iz1ysx"); // preg->used = 0; +UNSUPPORTED("ac48j1opcvu8p6bmkvhdmubhe"); // if (preg->fastmap != (void *)0) +UNSUPPORTED("43aaw7li7lbfcd1lewzzyp7to"); // free (preg->fastmap); +UNSUPPORTED("4lv04h2kcmrw99yqy6i26w8g4"); // preg->fastmap = (void *)0; +UNSUPPORTED("5e92vh1r7ol7emrm0ijcg45a9"); // preg->fastmap_accurate = 0; +UNSUPPORTED("e4iva4m5k6n7oj8enuvyimttj"); // if (preg->translate != (void *)0) +UNSUPPORTED("4mliivt4jjgt9njb860f17323"); // free (preg->translate); +UNSUPPORTED("7c5ulxpurhe3moa5q2eu01tom"); // preg->translate = (void *)0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/label/index__c.java plantuml-8039/src/gen/lib/label/index__c.java --- plantuml-8024/src/gen/lib/label/index__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/label/index__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,339 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.label; +import static smetana.core.Macro.UNSUPPORTED; + +public class index__c { + + +//3 1rfaqe5urty5uyp5xb2r0idce +// LeafList_t *RTreeNewLeafList(Leaf_t * lp) +public static Object RTreeNewLeafList(Object... arg) { +UNSUPPORTED("bu04wzk5vh5g14rcm11j6y1bc"); // LeafList_t *RTreeNewLeafList(Leaf_t * lp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8mcrniwafqlmy5ysg6jeand6o"); // LeafList_t *llp; +UNSUPPORTED("3b215c61vcll0rkorzyelp40j"); // if ((llp = (LeafList_t*)zmalloc(sizeof(LeafList_t)))) { +UNSUPPORTED("48u04cv4b40c0avzy99mdycx5"); // llp->leaf = lp; +UNSUPPORTED("bbvk7v1s0z6yw1xdoq99v233w"); // llp->next = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5a1d3zolzdjict0gus6vz04a2"); // return llp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6pvstz7axi8a7saeqe3nrrmg5 +// LeafList_t *RTreeLeafListAdd(LeafList_t * llp, Leaf_t * lp) +public static Object RTreeLeafListAdd(Object... arg) { +UNSUPPORTED("eiwtmfygcnm8i2i38dywdrxvu"); // LeafList_t *RTreeLeafListAdd(LeafList_t * llp, Leaf_t * lp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c8jefspkzejjwynx8rg8zejbx"); // LeafList_t *nlp; +UNSUPPORTED("5whcehr1j26r7aahssfvo2dxa"); // if (!lp) +UNSUPPORTED("1sxqq75kqdqzr0enoukqqx3m1"); // return llp; +UNSUPPORTED("adl5lp3lwoh3u5zssznsdnxms"); // nlp = RTreeNewLeafList(lp); +UNSUPPORTED("373n3s0slcur0mj477nbkp2z9"); // nlp->next = llp; +UNSUPPORTED("c398zm44c0kp59y82avlt28qs"); // return nlp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6zraor7x44vrnm19d2igkvow2 +// void RTreeLeafListFree(LeafList_t * llp) +public static Object RTreeLeafListFree(Object... arg) { +UNSUPPORTED("cwsuv5x6hz2atkriag0lyrwpq"); // void RTreeLeafListFree(LeafList_t * llp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("96shepyp7pgdusod9eu04oqsa"); // LeafList_t *tlp; +UNSUPPORTED("66etdhvz2fmsepzj2nfiioze9"); // while (llp->next) { +UNSUPPORTED("aa7iqc08758zwe37qyy2wffec"); // tlp = llp->next; +UNSUPPORTED("efbq5hg14ncf3x5du5wro1m6d"); // free(llp); +UNSUPPORTED("6qcaq7a673zdej3uu1ke2kz0a"); // llp = tlp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("41smjtwh6jsdofomjdbd76o7j"); // free(llp); +UNSUPPORTED("b9185t6i77ez1ac587ul8ndnc"); // return; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3wss9r0zgt5k06j8ovjv7hq0d +// int RTreeInsert(RTree_t * rtp, Rect_t * r, void *data, Node_t ** n, int level) +public static Object RTreeInsert(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("4vefy88zis2pcgmerh9m6nllk"); // RTreeInsert(RTree_t * rtp, Rect_t * r, void *data, Node_t ** n, int level) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8ey3knwkpac8aeth9v8pxu3jo"); // /* RTreeInsert(RTree_t*rtp, Rect_t*r, int data, Node_t**n, int level) { */ +UNSUPPORTED("pp6gyv6pecd6kik4hoguluwp"); // register int i; +UNSUPPORTED("bp3fw6x5k0c1muih5wl2fmk9n"); // register Node_t *newroot; +UNSUPPORTED("k2d14nu7r2g4yefydufxqa6l"); // Node_t *newnode=0; +UNSUPPORTED("8jhu5fyksz5wgdvvak4rqzjog"); // Branch_t b; +UNSUPPORTED("1dfkfq72ilaevpylx2giyequh"); // int result = 0; +UNSUPPORTED("3lp95fcfxfbsb08w5umj6mjxb"); // assert(r && n); +UNSUPPORTED("jakzrkbz09r9gvlx5yfqsq4t"); // assert(level >= 0 && level <= (*n)->level); +UNSUPPORTED("1acecsj25mg52d6624llst9la"); // for (i = 0; i < 2; i++) +UNSUPPORTED("au1dzglobtl3y92py1o59k29w"); // assert(r->boundary[i] <= r->boundary[2 + i]); +UNSUPPORTED("21ol6vbghnu1ewovfs645sts7"); // if (rtp->StatFlag) { +UNSUPPORTED("akhni40ndam0u9c6i7raxw4mp"); // if (rtp->Deleting) +UNSUPPORTED("bzb1oqc35evr96528iv16glb0"); // rtp->ReInsertCount++; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("3kxquse3qg2crme5dzybg9jxe"); // rtp->InsertCount++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("872g4yc6sa8rtep8wdqiys74d"); // if (!rtp->Deleting) +UNSUPPORTED("4kv2cwozm6o06e73mjdidn17p"); // rtp->RectCount++; +UNSUPPORTED("p721o575619ujgj5774sswe4"); // if (RTreeInsert2(rtp, r, data, *n, &newnode, level)) { /* root was split */ +UNSUPPORTED("dhd7sfbis7klukcyf8rg2skvp"); // if (rtp->StatFlag) { +UNSUPPORTED("2y8kv6b3ysrr61q7tqn76rhhc"); // if (rtp->Deleting) +UNSUPPORTED("dn4oynmx9ugizzs5pkxiyptbi"); // rtp->DeTouchCount++; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("2u8wpa4w1q7rg14t07bny6p8i"); // rtp->InTouchCount++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("f1ubx3a7wizvjmsawzdn97nwy"); // newroot = RTreeNewNode(rtp); /* grow a new root, make tree taller */ +UNSUPPORTED("cb1h5p8jnxwwzvaoyg1k27xmf"); // rtp->NonLeafCount++; +UNSUPPORTED("1611m4hdihz2ns6tzb00du4f"); // newroot->level = (*n)->level + 1; +UNSUPPORTED("7abewx8c16vuk9ksc6dh0co53"); // b.rect = NodeCover(*n); +UNSUPPORTED("465b8w8j2mnvocx78bsxgs0si"); // b.child = *n; +UNSUPPORTED("8lf6tafgpibucjtrng2bzhqt"); // AddBranch(rtp, &b, newroot, (void *)0); +UNSUPPORTED("5ncet5h2bsh7p0gqx0zcjk8zs"); // b.rect = NodeCover(newnode); +UNSUPPORTED("2iec9n0l9utuq5wm6188trocr"); // b.child = newnode; +UNSUPPORTED("8lf6tafgpibucjtrng2bzhqt"); // AddBranch(rtp, &b, newroot, (void *)0); +UNSUPPORTED("9kv07evealck0kkd4uos4gkz"); // *n = newroot; +UNSUPPORTED("6s4qssw97iu3cy7cu2z00dnd"); // // rtp->root = newroot; +UNSUPPORTED("5iff078lko2zs9b2cm7erd5kj"); // rtp->EntryCount += 2; +UNSUPPORTED("akq58xm5u8sg03eunssjzl44f"); // result = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e73y2609z2557xahrcvzmcb8e"); // return result; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bsc9m7d7qc06m8id896e60lkg +// static int RTreeInsert2(RTree_t * rtp, Rect_t * r, void *data, Node_t * n, Node_t ** new, int level) +public static Object RTreeInsert2(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("e1c7cm1mq875co9obwzzyyxt"); // RTreeInsert2(RTree_t * rtp, Rect_t * r, void *data, +UNSUPPORTED("4errdslfbv5x54v81wpgk55l7"); // Node_t * n, Node_t ** new, int level) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d5termnm5bwrhia82rw6jvi00"); // /*static int */ +UNSUPPORTED("12ickqloxyobilus63e3bdi65"); // /* RTreeInsert2(RTree_t*rtp, Rect_t*r, +UNSUPPORTED("e27l28tilpvjc3y9m1iz6c51k"); // int data, Node_t*n, Node_t**new, int level) { +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("6crctkpvpno5y1bsv7yuqjnm2"); // register int i=0; +UNSUPPORTED("8jhu5fyksz5wgdvvak4rqzjog"); // Branch_t b; +UNSUPPORTED("4dqkrcduvdmv3d5fgv1enjacs"); // Node_t *n2=0; +UNSUPPORTED("bsrr9pvjfr4ki5il3quxx4rqg"); // assert(r && n && new); +UNSUPPORTED("5xudi4txe3k13af1mbe43tgbn"); // assert(level >= 0 && level <= n->level); +UNSUPPORTED("21ol6vbghnu1ewovfs645sts7"); // if (rtp->StatFlag) { +UNSUPPORTED("akhni40ndam0u9c6i7raxw4mp"); // if (rtp->Deleting) +UNSUPPORTED("8k1kgaoa4b2mcye1xthc3f1kf"); // rtp->DeTouchCount++; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("1um729vqiy3529kbsrzyl9u3y"); // rtp->InTouchCount++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6bsiysfcc9wix18ej9zs9z659"); // /* Still above level for insertion, go down tree recursively */ +UNSUPPORTED("4hz5jfabrdewpogbs7ahesjld"); // if (n->level > level) { +UNSUPPORTED("2sz071aqfm5owiilsfyuw76rn"); // i = PickBranch(r, n); +UNSUPPORTED("9qcjfckv31n1pds6m7zevi25p"); // if (!RTreeInsert2(rtp, r, data, n->branch[i].child, &n2, level)) { /* recurse: child was not split */ +UNSUPPORTED("8yht6usxlnq2ubp9xeqjz71o"); // n->branch[i].rect = CombineRect(r, &(n->branch[i].rect)); +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("99yufmtztzeyeo68jo3yftbcf"); // } else { /* child was split */ +UNSUPPORTED("7evrfdq7uc1smqislqm9d82l6"); // n->branch[i].rect = NodeCover(n->branch[i].child); +UNSUPPORTED("echuth2qnq0o4n5gkzgtu5bgs"); // b.child = n2; +UNSUPPORTED("50z4r9qcomgi4o7vvwq0v0xs"); // b.rect = NodeCover(n2); +UNSUPPORTED("451qw2ioqybj69k9abzvqw4mk"); // rtp->EntryCount++; +UNSUPPORTED("9uz11nbvh6yp6yq2axvo7e0fb"); // return AddBranch(rtp, &b, n, new); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3uu0fkl3xw648hn9rehmuq54y"); // } else if (n->level == level) { /* at level for insertion. */ +UNSUPPORTED("cwtg3er5fpt2rr0k2efjapdmq"); // /*Add rect, split if necessary */ +UNSUPPORTED("1xql4kr4r981y1whzdo5zavad"); // b.rect = *r; +UNSUPPORTED("7w1b5nw2bj3zmo70m9bczwwov"); // b.child = (Node_t *) data; +UNSUPPORTED("7476ssw2oyxxzrqtz24g9cecp"); // rtp->EntryCount++; +UNSUPPORTED("8gejxq93li6nilezate9nd078"); // return AddBranch(rtp, &b, n, new); +UNSUPPORTED("an9bctf9o42m97fmlr7tb3xd5"); // } else { /* Not supposed to happen */ +UNSUPPORTED("22oqraxnqrjall7fj6pooexmi"); // assert((0)); +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eybi74pqddw71yno71n1dxch1 +// static void FreeListNode(register struct ListNode *p) +public static Object FreeListNode(Object... arg) { +UNSUPPORTED("enkn7pc4meks3igihpafaoxnl"); // static void FreeListNode(register struct ListNode *p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bo0y3vz195pcz24vm46pixpb2"); // free(p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a4tq9skwvzdutka9ei6pbydrk +// int RTreeDelete(RTree_t * rtp, Rect_t * r, void *data, Node_t ** nn) +public static Object RTreeDelete(Object... arg) { +UNSUPPORTED("dxan13j7zc5tysdskndrhp0jy"); // int RTreeDelete(RTree_t * rtp, Rect_t * r, void *data, Node_t ** nn) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a12nb5dbhoiu403g443fctkns"); // /* int */ +UNSUPPORTED("db7nkyc7g4zod4pcosw0eosmi"); // /* RTreeDelete(RTree_t*rtp, Rect_t*r, int data, Node_t**nn) { */ +UNSUPPORTED("pp6gyv6pecd6kik4hoguluwp"); // register int i; +UNSUPPORTED("ben8zsxtpzeiqo8eli2l8uwl0"); // register Node_t *t; +UNSUPPORTED("5pdj91y3888dsu9aiv163adqi"); // struct ListNode *reInsertList = (void *)0; +UNSUPPORTED("ej513ottpyeoq8nr5ek3cqnyu"); // register struct ListNode *e; +UNSUPPORTED("9fgs287rhe40d3q36tlijajk3"); // assert(r && nn); +UNSUPPORTED("djo1drf8zqgd4dlmtnp8268ma"); // assert(*nn); +UNSUPPORTED("aickurv6sbkajrl6u32h8s7n0"); // assert(data >= 0); +UNSUPPORTED("d7p6had3bhs1yux0acgomhxcq"); // rtp->Deleting = (!(0)); +UNSUPPORTED("607lavmustb15rxzq2849utq7"); // if (!RTreeDelete2(rtp, r, data, *nn, &reInsertList)) { +UNSUPPORTED("78928a78vetdygse25vd6qw33"); // /* found and deleted a data item */ +UNSUPPORTED("bi6ay2t4s62zfticozlr791yq"); // if (rtp->StatFlag) +UNSUPPORTED("aiqjtlu1lbfame9tsdduxksph"); // rtp->DeleteCount++; +UNSUPPORTED("337cl2y5ymgyje4han1uiddia"); // rtp->RectCount--; +UNSUPPORTED("dm3fsqsr312twcwr7ejz72sd5"); // /* reinsert any branches from eliminated nodes */ +UNSUPPORTED("3miqozg3j3sz0440ya0edtkn1"); // while (reInsertList) { +UNSUPPORTED("8bi7drdkfhozlzpnr9a8beo9r"); // t = reInsertList->node; +UNSUPPORTED("ehzcswv2o675ah20nlk8ll73b"); // for (i = 0; i < 64; i++) { +UNSUPPORTED("16k4a0oof3m3shq22rp10sufm"); // if (t->branch[i].child) { +UNSUPPORTED("4pmqw3ejoeiktbmgw5li4osuk"); // RTreeInsert(rtp, &(t->branch[i].rect), +UNSUPPORTED("jn668g7qkg8vdom23tf6xyua"); // /* (int)t->branch[i].child, nn, t->level); */ +UNSUPPORTED("cr2tz58k73uenuatj8dllr5e"); // t->branch[i].child, nn, t->level); +UNSUPPORTED("3ll931j526x4h3iq2n8lb8npl"); // rtp->EntryCount--; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("a0driook10zxazzgo71kxwf5t"); // e = reInsertList; +UNSUPPORTED("3ycjjmywhr2h58szv9f0c3r67"); // reInsertList = reInsertList->next; +UNSUPPORTED("2l03pg61762f3m81wcifv6o2t"); // RTreeFreeNode(rtp, e->node); +UNSUPPORTED("2nfqlmqqiafmfh2uxj5r72e5z"); // FreeListNode(e); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3uomzgqvjm03fwau1petngub8"); // /* check for redundant root (not leaf, 1 child) and eliminate */ +UNSUPPORTED("crynploao8fgrtf7envjtfdaz"); // if ((*nn)->count == 1 && (*nn)->level > 0) { +UNSUPPORTED("a588ej7tdnabye2dhwn96zbay"); // if (rtp->StatFlag) +UNSUPPORTED("4bzchhtuz1r199e9mi0bp1ece"); // rtp->ElimCount++; +UNSUPPORTED("6u2n1qlqovrhoecwygc6fuq2c"); // rtp->EntryCount--; +UNSUPPORTED("ehzcswv2o675ah20nlk8ll73b"); // for (i = 0; i < 64; i++) { +UNSUPPORTED("jk2oyzi48hf05v99gu6wc2o2"); // if ((t = (*nn)->branch[i].child)) +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5ba1w7saym0g246ykbjnn0qrf"); // RTreeFreeNode(rtp, *nn); +UNSUPPORTED("dnoogjer2v3hmfm7qtw2p4qrv"); // *nn = t; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cpwomgmpysmof2uglfr37v494"); // rtp->Deleting = (0); +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("cpwomgmpysmof2uglfr37v494"); // rtp->Deleting = (0); +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bax12o5n6n8s94wnn7cxgn99 +// static int RTreeDelete2(RTree_t * rtp, Rect_t * r, void *data, Node_t * n, ListNode_t ** ee) +public static Object RTreeDelete2(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("dl163ikex89epdeiymlnlhkkt"); // RTreeDelete2(RTree_t * rtp, Rect_t * r, void *data, Node_t * n, +UNSUPPORTED("7cv8lwqbi5i6si9trbnke7zl9"); // ListNode_t ** ee) +UNSUPPORTED("8suowst9wgd6gxhgbdi3h24b7"); // /* static int */ +UNSUPPORTED("ap2yhjmvw1l4wh1rujus8t8ef"); // /* RTreeDelete2(RTree_t*rtp, Rect_t*r, int data, Node_t*n, ListNode_t**ee) */ +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("pp6gyv6pecd6kik4hoguluwp"); // register int i; +UNSUPPORTED("9yzorirytkswjf0omka5g4c20"); // assert(r && n && ee); +UNSUPPORTED("aickurv6sbkajrl6u32h8s7n0"); // assert(data >= 0); +UNSUPPORTED("btdpzkb56pz41hfftabazxn4s"); // assert(n->level >= 0); +UNSUPPORTED("c435v08qyezw1xnbv2zrqr3te"); // if (rtp->StatFlag) +UNSUPPORTED("9qx61yt5qzelxylomit9cn4rv"); // rtp->DeTouchCount++; +UNSUPPORTED("5zjfl81difxhf334pznet7o8z"); // if (n->level > 0) { /* not a leaf node */ +UNSUPPORTED("r6wug9hvutzrx2jp04v9slbe"); // for (i = 0; i < 64; i++) { +UNSUPPORTED("9cxgoq0fd8kxz4eymv34vt66k"); // if (n->branch[i].child && Overlap(r, &(n->branch[i].rect))) { +UNSUPPORTED("9c2dxowbn34szo9si1s67zn1d"); // if (!RTreeDelete2(rtp, r, data, n->branch[i].child, ee)) { /*recurse */ +UNSUPPORTED("1p8d3xzz5d8g7ach93r5dkfpy"); // if (n->branch[i].child->count >= rtp->MinFill) +UNSUPPORTED("8qc1vxcpq7d0q3d4pt56sagi6"); // n->branch[i].rect = NodeCover(n->branch[i].child); +UNSUPPORTED("1pj51sbe7du437gcgun1tdp0c"); // else { /* not enough entries in child, eliminate child node */ +UNSUPPORTED("1mqsg2rc7oaykxyne9jioil3j"); // RTreeReInsert(rtp, n->branch[i].child, ee); +UNSUPPORTED("36htmotk6j7fq59vwfp4lanaj"); // DisconBranch(n, i); +UNSUPPORTED("614qavwsv6dpxdog4wxkb2op0"); // rtp->EntryCount--; +UNSUPPORTED("ad48i843uruoaahfmd2nxb4qv"); // if (rtp->StatFlag) +UNSUPPORTED("jk9sg727bbh6mlccfj53sg1m"); // rtp->ElimCount++; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("y2l9mpq5754ggnklm39b7wg"); // return 0; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("dppt1v5lkz1rfqbwx4n4xwltd"); // } else { /* a leaf node */ +UNSUPPORTED("r6wug9hvutzrx2jp04v9slbe"); // for (i = 0; i < 64; i++) { +UNSUPPORTED("5g2zznotye25yuclpeyzatgrf"); // if (n->branch[i].child +UNSUPPORTED("dx5d5kpda621ehao92qybpo7n"); // && n->branch[i].child == (Node_t *) data) { +UNSUPPORTED("3nnhyf15i3s8j44ptc0zjxkof"); // DisconBranch(n, i); +UNSUPPORTED("cazijll74xx4uxev9qe61vl0h"); // rtp->EntryCount--; +UNSUPPORTED("5izxoao5ryte71964f8yjfd5y"); // return 0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/label/node__c.java plantuml-8039/src/gen/lib/label/node__c.java --- plantuml-8024/src/gen/lib/label/node__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/label/node__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,238 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.label; +import static smetana.core.Macro.UNSUPPORTED; + +public class node__c { + + +//3 9uj7ni1m6q6drtoh56w82d6m4 +// Node_t *RTreeNewNode(RTree_t * rtp) +public static Object RTreeNewNode(Object... arg) { +UNSUPPORTED("6r87cuk0qgu4wqagr86fr5tts"); // Node_t *RTreeNewNode(RTree_t * rtp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7wl3hkaktfhqdqsm6ubxboo1q"); // register Node_t *n; +UNSUPPORTED("4bwg40kiiowl2obspxcr4saa2"); // rtp->NodeCount++; +UNSUPPORTED("azoy4bfuupxwp4mi8hfbfb78g"); // n = (Node_t *) malloc(sizeof(Node_t)); +UNSUPPORTED("a4ey5uckjqallol1ktyqe35bv"); // InitNode(n); +UNSUPPORTED("69hc24ic55i66g8tf2ne42327"); // return n; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 65wa5vy8i5k40218lbhdibrjx +// void RTreeFreeNode(RTree_t * rtp, Node_t * p) +public static Object RTreeFreeNode(Object... arg) { +UNSUPPORTED("e9yu9bfc7a1ihpoc5axpyg4eg"); // void RTreeFreeNode(RTree_t * rtp, Node_t * p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jtyh6hx1w2fcx2gjs8ksbkuh"); // rtp->NodeCount--; +UNSUPPORTED("ed5n0l2c9xevohsgtsmv822gw"); // if (p->level == 0) +UNSUPPORTED("8pbkap1jra9u3gvgio7ou7y1n"); // rtp->LeafCount--; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("357domcrb707wvdox73ayvdj1"); // rtp->NonLeafCount--; +UNSUPPORTED("bo0y3vz195pcz24vm46pixpb2"); // free(p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4qk9wkm05q2pwf20ud6g2tufg +// void InitNode(Node_t * n) +public static Object InitNode(Object... arg) { +UNSUPPORTED("dlpky13v9fa11z9uukagldaj1"); // void InitNode(Node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("pp6gyv6pecd6kik4hoguluwp"); // register int i; +UNSUPPORTED("7rbjc9psqd4hoib2lezl7pnh"); // n->count = 0; +UNSUPPORTED("55ukro5lb2mre4owzaww8q2hc"); // n->level = -1; +UNSUPPORTED("8v5nz5apd36odx9nwrk8p8jow"); // for (i = 0; i < 64; i++) +UNSUPPORTED("80i9o3c1pvhadp8xg5nka4k0z"); // InitBranch(&(n->branch[i])); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ruhxixxei7au9z1iaj0zggwo +// void InitBranch(Branch_t * b) +public static Object InitBranch(Object... arg) { +UNSUPPORTED("2ds4g44o2u9jlcjegxiplx78k"); // void InitBranch(Branch_t * b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7tixqnx33892tw39ys6j048c9"); // InitRect(&(b->rect)); +UNSUPPORTED("6rffpszutr9tr32hwasnosx1l"); // b->child = NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 42vjqe8n5yeq2jjby00xzrotk +// Rect_t NodeCover(Node_t * n) +public static Object NodeCover(Object... arg) { +UNSUPPORTED("2khwamjri7uz3vu8fhl4bz8yr"); // Rect_t NodeCover(Node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e4wfnyowhq6r7cll9ebbr5pcr"); // register int i, flag; +UNSUPPORTED("9jotn4njsd13qx406m9otorg4"); // Rect_t r; +UNSUPPORTED("25fhmphgra40j368i6b09n5xz"); // assert(n); +UNSUPPORTED("7t0m2a3824uy7f5r4wu3p2no9"); // InitRect(&r); +UNSUPPORTED("e0yg2emzy8u4jgn9z7jdfpziq"); // flag = 1; +UNSUPPORTED("8v5nz5apd36odx9nwrk8p8jow"); // for (i = 0; i < 64; i++) +UNSUPPORTED("1ro7ykl3rxfkkcyghzozikkfc"); // if (n->branch[i].child) { +UNSUPPORTED("ycid67impnxkwa9mvvkvdu0q"); // if (flag) { +UNSUPPORTED("ektombc80083wiu0lsj6kto83"); // r = n->branch[i].rect; +UNSUPPORTED("6bejndin7u1ns7xicz114gqtn"); // flag = 0; +UNSUPPORTED("afk9bpom7x393euamnvwwkx6b"); // } else +UNSUPPORTED("31n3s0xk5l7s3rhi9xeraiklo"); // r = CombineRect(&r, &(n->branch[i].rect)); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bek56v2skz6jfvw4uggy2h5w3 +// int PickBranch(Rect_t * r, Node_t * n) +public static Object PickBranch(Object... arg) { +UNSUPPORTED("efxc8619milx7pkmu113b8cl0"); // int PickBranch(Rect_t * r, Node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4rx3my7ninlw252mkhq0t72v7"); // register Rect_t *rr=0; +UNSUPPORTED("cu5ueogqdqm7ym79nlop077f9"); // register int i=0, flag=1, increase=0, bestIncr=0, area=0, bestArea=0; +UNSUPPORTED("b5pkdhy36omd5ubfol2jsyr2z"); // int best=0; +UNSUPPORTED("3lp95fcfxfbsb08w5umj6mjxb"); // assert(r && n); +UNSUPPORTED("82kuymnzv3rubrwutx9bcz4xs"); // for (i = 0; i < 64; i++) { +UNSUPPORTED("1ro7ykl3rxfkkcyghzozikkfc"); // if (n->branch[i].child) { +UNSUPPORTED("4wt347mvef1i2kr5h5z9l0g8i"); // Rect_t rect; +UNSUPPORTED("ak8qz4z2mipw1i6img1tvc3hk"); // rr = &n->branch[i].rect; +UNSUPPORTED("d4pnse7tksvywt9f6rcaluv8e"); // area = RectArea(rr); +UNSUPPORTED("4wsrjtivlov1p70rt8tn4dt9v"); // /* increase = RectArea(&CombineRect(r, rr)) - area; */ +UNSUPPORTED("8b9or9d0f959zrx6zrd0o9noj"); // rect = CombineRect(r, rr); +UNSUPPORTED("a1p1sz58nzxnj53fxzzkut6cm"); // increase = RectArea(&rect) - area; +UNSUPPORTED("6k6tiifs973t6iordeclfqygk"); // if (increase < bestIncr || flag) { +UNSUPPORTED("93dpfupbht4p3y9bsui3n8km4"); // best = i; +UNSUPPORTED("apb6b50as71d87ge91yfjwr33"); // bestArea = area; +UNSUPPORTED("45tyhbogdetuq767acgw0cvyg"); // bestIncr = increase; +UNSUPPORTED("6bejndin7u1ns7xicz114gqtn"); // flag = 0; +UNSUPPORTED("1wqm4msrcepk5ixg5ab8polj7"); // } else if (increase == bestIncr && area < bestArea) { +UNSUPPORTED("93dpfupbht4p3y9bsui3n8km4"); // best = i; +UNSUPPORTED("apb6b50as71d87ge91yfjwr33"); // bestArea = area; +UNSUPPORTED("45tyhbogdetuq767acgw0cvyg"); // bestIncr = increase; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3kkxvbiqcsdmtjhhw3b2jcqcy"); // return best; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2njctcrpeff95ysmv9ji34x4s +// int AddBranch(RTree_t * rtp, Branch_t * b, Node_t * n, Node_t ** new) +public static Object AddBranch(Object... arg) { +UNSUPPORTED("abswgz0jexhhyl0we1x68i5gl"); // int AddBranch(RTree_t * rtp, Branch_t * b, Node_t * n, Node_t ** new) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("pp6gyv6pecd6kik4hoguluwp"); // register int i; +UNSUPPORTED("5xtwc50ov4mxby7k6gahwv12t"); // assert(b); +UNSUPPORTED("25fhmphgra40j368i6b09n5xz"); // assert(n); +UNSUPPORTED("8irlja6ar7hjh8mel91hltz17"); // if (n->count < 64) { /* split won't be necessary */ +UNSUPPORTED("8vlryher8oaw4h715yfzs4h0"); // for (i = 0; i < 64; i++) { /* find empty branch */ +UNSUPPORTED("3eaeba8b8yt8gq9074wtep0e0"); // if (n->branch[i].child == NULL) { +UNSUPPORTED("9newc1m7r062crcakg2dn00kp"); // n->branch[i] = *b; +UNSUPPORTED("b4orzj362grzvud5mj73w1cb1"); // n->count++; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2gjzrafpfll8afj90mhedcnnq"); // assert(i < 64); +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("dhd7sfbis7klukcyf8rg2skvp"); // if (rtp->StatFlag) { +UNSUPPORTED("2y8kv6b3ysrr61q7tqn76rhhc"); // if (rtp->Deleting) +UNSUPPORTED("dn4oynmx9ugizzs5pkxiyptbi"); // rtp->DeTouchCount++; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("2u8wpa4w1q7rg14t07bny6p8i"); // rtp->InTouchCount++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("chipmsvc1hum7sbmvzrfmewz6"); // assert(new); +UNSUPPORTED("91mdffv90jr6ypnu3u1bmc972"); // SplitNode(rtp, n, b, new); +UNSUPPORTED("1t8cl7q3utcr23gvhtgc1cp0u"); // if (n->level == 0) +UNSUPPORTED("b2cc70cq7gpras4l3rbz241at"); // rtp->LeafCount++; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("6tkfiebspy7ecivrzb3l5y7jd"); // rtp->NonLeafCount++; +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eqzamflj58f43cflwns9cemnk +// void DisconBranch(Node_t * n, int i) +public static Object DisconBranch(Object... arg) { +UNSUPPORTED("1gbs5xw4y9htfbc5suxq1rdm4"); // void DisconBranch(Node_t * n, int i) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ays33wicr9a5qwu2dr9g8t1h2"); // assert(n && i >= 0 && i < 64); +UNSUPPORTED("29zl8z52z6bh8yxdkmezbs82l"); // assert(n->branch[i].child); +UNSUPPORTED("3rvakcl9f71ez4zya83f1vvgx"); // InitBranch(&(n->branch[i])); +UNSUPPORTED("4a3m9b5jmmhd18oa8nzovalys"); // n->count--; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/label/nrtmain__c.java plantuml-8039/src/gen/lib/label/nrtmain__c.java --- plantuml-8024/src/gen/lib/label/nrtmain__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/label/nrtmain__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,509 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.label; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.pointf; +import smetana.core.__struct__; + +public class nrtmain__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 ez7q2nzpr17flkmb0odk67ggx +// static char *progname + + +//1 4k7cnypsvtgywml89uxukug5r +// static int Verbose + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 2i713kmewjct2igf3lwm80462 +// static pointf centerPt(xlabel_t * xlp) +public static Object centerPt(Object... arg) { +UNSUPPORTED("2ehkj7fn7wtb77mg9wdqpdig1"); // static pointf centerPt(xlabel_t * xlp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("1zfb5l8l1ajr1qwg3mcy71mrm"); // p = xlp->pos; +UNSUPPORTED("8hxf8i35knrbncbh2vfaidbi7"); // p.x += (xlp->sz.x) / 2.0; +UNSUPPORTED("4pemnun9akazartmat9b8062r"); // p.y += (xlp->sz.y) / 2.0; +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 axo7jzudoju3r02pbuzu5u5cg +// static int printData(object_t * objs, int n_objs, xlabel_t * lbls, int n_lbls, label_params_t * params) +public static Object printData(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("1ts7sby2d9t84a9e3n3h9z7i4"); // printData(object_t * objs, int n_objs, xlabel_t * lbls, int n_lbls, +UNSUPPORTED("b2402200eyc80fno3tkigspyc"); // label_params_t * params) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("2a3rymfsfswadknge9x92kumi"); // fprintf(stderr, +UNSUPPORTED("9ffvrcx1kz69kf4ohq458tntr"); // "%d objs %d xlabels force=%d bb=(%.02f,%.02f) (%.02f,%.02f)\n", +UNSUPPORTED("8lkiqntjtlrl6e91jrj1crmy7"); // n_objs, n_lbls, params->force, params->bb.LL.x, +UNSUPPORTED("atpr27z058nxgtq1injs7j3xx"); // params->bb.LL.y, params->bb.UR.x, params->bb.UR.y); +UNSUPPORTED("8rqgsy04sx7rq9dr227gsfdny"); // if (Verbose < 2) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("2646yqgzt1fr9gq4thnuvqw62"); // fprintf(stderr, "objects\n"); +UNSUPPORTED("bznihqrwh4167vo2mn4du53da"); // for (i = 0; i < n_objs; i++) { +UNSUPPORTED("3h9on00kwjf4xo4j60tbhbd0d"); // if(objs[i].lbl && objs[i].lbl->lbl) +UNSUPPORTED("2p5wg8zjn154ih218upte0m8u"); // fprintf (stderr, " [%d] %p %p (%.02f, %.02f) (%.02f, %.02f) %s\n", +UNSUPPORTED("3nrlvh61ecaah41rdce7opuz6"); // i, &objs[i], objs[i].lbl, objs[i].pos.x,objs[i].pos.y, +UNSUPPORTED("38c5nmfxdrj8anxj2tvsuzwyd"); // objs[i].sz.x,objs[i].sz.y, +UNSUPPORTED("5010od1avt4gufwitovfspv53"); // ((textlabel_t*)objs[i].lbl->lbl)->text ); +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("aoaa9ojdu28j43q5olg7ipirz"); // fprintf (stderr, " [%d] %p %p (%.02f, %.02f) (%.02f, %.02f)\n", +UNSUPPORTED("3nrlvh61ecaah41rdce7opuz6"); // i, &objs[i], objs[i].lbl, objs[i].pos.x,objs[i].pos.y, +UNSUPPORTED("enm5yxjvcqabshcso24gtrc2e"); // objs[i].sz.x,objs[i].sz.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5qiw0ng2ayzadjgb1k8dym0y7"); // fprintf(stderr, "xlabels\n"); +UNSUPPORTED("30yvif5t111f94y1fs2gd8crq"); // for (i = 0; i < n_lbls; i++) { +UNSUPPORTED("5cpl2wq6ypkvhfql4dd7c82s3"); // fprintf(stderr, " [%d] %p (%.02f, %.02f) (%.02f, %.02f) %s\n", +UNSUPPORTED("8qph05eaq6mqxunl6b71h8x2g"); // i, &lbls[i], lbls[i].pos.x, lbls[i].pos.y, +UNSUPPORTED("4cl6jk5xeitdm8kz9zfyea3zm"); // lbls[i].sz.x, lbls[i].sz.y, +UNSUPPORTED("3vd0l036v68y2ae4kl150n8yp"); // ((textlabel_t *)lbls[i].lbl)->text); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c4cg32mzgkpbcst0jy2upq5w3 +// int doxlabel(opts_t * opts) +public static Object doxlabel(Object... arg) { +UNSUPPORTED("8wurvokwz90fe88uipw31lwep"); // int doxlabel(opts_t * opts) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3l5bdi04ekui6vvrgr3s666fx"); // Agraph_t *gp; +UNSUPPORTED("1q5pw5siho05tilkhpvceuax5"); // object_t *objs; +UNSUPPORTED("88sdp733wy18rctixyqpiarvo"); // xlabel_t *lbls; +UNSUPPORTED("aq6jdvqcw04pxk55fs8ppod2c"); // int i, n_objs, n_lbls; +UNSUPPORTED("asd06xewa83y0cc930zzf5d25"); // label_params_t params; +UNSUPPORTED("4dnqwjhhs92m1h2q7ld3cpbxw"); // Agnode_t *np; +UNSUPPORTED("1bl759aws53yjk3xg9shiogx5"); // Agedge_t *ep; +UNSUPPORTED("2wem1nsm7z6vxqjo9edb38fpu"); // int n_nlbls = 0, n_elbls = 0; +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("cqwl7s9yvzr8n5v8svuuv1a1q"); // textlabel_t *lp; +UNSUPPORTED("1exmnagt3khrhapqoj43kchc9"); // object_t *objp; +UNSUPPORTED("42yb201vo7e3ryt0pg3pupi84"); // xlabel_t *xlp; +UNSUPPORTED("1ilrhzyqh05f2u3j3vzg0ys8u"); // pointf ur; +UNSUPPORTED("2ntp2ibjekwh9j8nygd0ti1xm"); // fprintf(stderr, "reading %s\n", opts->infname); +UNSUPPORTED("b7tc1qd0ygab8ky9f8mq6yr1r"); // if (!(gp = agread(opts->inf))) { +UNSUPPORTED("2z171ve8godqlic0qmbasth1e"); // fprintf(stderr, "%s: %s not a dot file\n", progname, +UNSUPPORTED("6oq4a7osqwufq0eszpp57ktu6"); // opts->infname); +UNSUPPORTED("dtw3cma0ziyha0w534bszl0tx"); // exit(1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("beo8iaf6acg59u8is886fmt2x"); // fclose(opts->inf); +UNSUPPORTED("9s7txbykwaiwj5rv1xjdpwh4y"); // fprintf(stderr, "laying out %s\n", opts->lay); +UNSUPPORTED("aojth6x8xid0d88cuvl2wn8nf"); // if (gvLayout(opts->gvc, gp, opts->lay)) { +UNSUPPORTED("e1ce3rd38aij0uzxsx09fu5kp"); // fprintf(stderr, "%s: layout %s failed\n", progname, opts->lay); +UNSUPPORTED("dtw3cma0ziyha0w534bszl0tx"); // exit(1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8s81ox08m1abqhigygxh81299"); // fprintf(stderr, "attach labels\n"); +UNSUPPORTED("6cchlbw0dymzb3cw1hfo94n6a"); // /* In the real code, this should be optimized using GD_has_labels() */ +UNSUPPORTED("bfdixk0pjg05sljut4h57xbbh"); // /* We could probably provide the number of node and edge xlabels */ +UNSUPPORTED("27ppdplfezcqw6rdrkzyrr8yg"); // for (np = agfstnode(gp); np; np = agnxtnode(gp, np)) { +UNSUPPORTED("cnz7ckum0lz95m8c8e6i1vok7"); // if (ND_xlabel(np)) +UNSUPPORTED("3uhi0myy92p6xl4a5oxde7v9z"); // n_nlbls++; +UNSUPPORTED("41dpbku41lh3gpb30ds9ex6aa"); // for (ep = agfstout(gp, np); ep; ep = agnxtout(gp, ep)) { +UNSUPPORTED("biq91l2ud7l5kr26ls9zbzzke"); // if (ED_xlabel(ep)) +UNSUPPORTED("bffseaexubrngpi9o059qepow"); // n_elbls++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5ft4bvs2l0ce26wb6gnuzjao7"); // n_objs = agnnodes(gp) + n_elbls; +UNSUPPORTED("5kla6rwar4q1ig2olguocajn6"); // n_lbls = n_nlbls + n_elbls; +UNSUPPORTED("3e10kvi719e134x675xgwi1tj"); // objp = objs = (object_t*)zmalloc((n_objs)*sizeof(object_t)); +UNSUPPORTED("6z86cmeenod2nx8ej72n0qotk"); // xlp = lbls = (xlabel_t*)zmalloc((n_lbls)*sizeof(xlabel_t)); +UNSUPPORTED("f2nzvg1xnr11v28w2feg923cs"); // bb.LL = pointfof(INT_MAX, INT_MAX); +UNSUPPORTED("7tttoj8cnxfqgnq2aagnnav48"); // bb.UR = pointfof(-INT_MAX, -INT_MAX); +UNSUPPORTED("27ppdplfezcqw6rdrkzyrr8yg"); // for (np = agfstnode(gp); np; np = agnxtnode(gp, np)) { +UNSUPPORTED("4siyxwjbs44obgm7h82zjml69"); // /* Add an obstacle per node */ +UNSUPPORTED("6cuxjl9g4nxwyz58c201qdb94"); // objp->sz.x = ((ND_width(np))*(double)72); +UNSUPPORTED("e3zk2j9kbexxv2xbsgu3pser6"); // objp->sz.y = ((ND_height(np))*(double)72); +UNSUPPORTED("cbc8atcbxsu44juz82lkfcgwq"); // objp->pos = ND_coord(np); +UNSUPPORTED("3zy29s8ijfmwn910twoywpps1"); // objp->pos.x -= (objp->sz.x) / 2.0; +UNSUPPORTED("7jkvg5hvdxus7k3bv57jyjh88"); // objp->pos.y -= (objp->sz.y) / 2.0; +UNSUPPORTED("7jndn79f10gyxumgbo6czxe5m"); // /* Adjust bounding box */ +UNSUPPORTED("bsgbwiykz32eqdyc49dobwpnr"); // bb.LL.x = MIN(bb.LL.x, objp->pos.x); +UNSUPPORTED("2u94r8rlczbki3ge3ihvmo9mi"); // bb.LL.y = MIN(bb.LL.y, objp->pos.y); +UNSUPPORTED("4lusjec057jj66bscit5s7lft"); // ur.x = objp->pos.x + objp->sz.x; +UNSUPPORTED("9zdffh9aglmrm8cdsmyxb0wrw"); // ur.y = objp->pos.y + objp->sz.y; +UNSUPPORTED("crkzyggmy41k3nrp8csmiakes"); // bb.UR.x = MAX(bb.UR.x, ur.x); +UNSUPPORTED("5ejpea5qlp1pbghy6n2lsuwfs"); // bb.UR.y = MAX(bb.UR.y, ur.y); +UNSUPPORTED("eezvruvdh9ueqsgad8k5xzbqi"); // if (ND_xlabel(np)) { +UNSUPPORTED("dq9r3oew49g4p62l8mj95y1dh"); // xlp->sz = ND_xlabel(np)->dimen; +UNSUPPORTED("7xq75ru9hsux949swpm3cp4ue"); // xlp->lbl = ND_xlabel(np); +UNSUPPORTED("lch95gg7hal8p4g2coq8qya9"); // xlp->set = 0; +UNSUPPORTED("9ozlxoe5hy2ssm40umphbfgxe"); // objp->lbl = xlp; +UNSUPPORTED("ddik10sdd1c59te8kbgpqsncp"); // xlp++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bhbvoj12subdn6905juhiubo2"); // objp++; +UNSUPPORTED("41dpbku41lh3gpb30ds9ex6aa"); // for (ep = agfstout(gp, np); ep; ep = agnxtout(gp, ep)) { +UNSUPPORTED("92f340ohb0u21xl6jgpc2hieo"); // if (ED_label(ep)) { +UNSUPPORTED("bbidnvg3rfydq4lbw358qvlik"); // textlabel_t *lp = ED_label(ep); +UNSUPPORTED("dow8hf9884ywwrt8hgipox54g"); // lp->pos.x = lp->pos.y = 0.0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("58ej5pyvcqel713ci83qh7j2n"); // if (!ED_xlabel(ep)) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("d6wg3egk1x5aesy2ng1qyjh0z"); // objp->sz.x = 0; +UNSUPPORTED("dy9evuaclpueiidwo0pp40904"); // objp->sz.y = 0; +UNSUPPORTED("bpwvk9oag9fx8aiebw7xa9rw8"); // objp->pos = edgeMidpoint(gp, ep); +UNSUPPORTED("64lz6mea65zfl2kbogusvglpn"); // xlp->sz = ED_xlabel(ep)->dimen; +UNSUPPORTED("5rvgp0x8n9fqvbyp32952ouk2"); // xlp->lbl = ED_xlabel(ep); +UNSUPPORTED("lch95gg7hal8p4g2coq8qya9"); // xlp->set = 0; +UNSUPPORTED("9ozlxoe5hy2ssm40umphbfgxe"); // objp->lbl = xlp; +UNSUPPORTED("ddik10sdd1c59te8kbgpqsncp"); // xlp++; +UNSUPPORTED("9061jd99guumlgucvlj3a8vub"); // objp++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d447casut2vhvblc969saqfs4"); // params.force = opts->force; +UNSUPPORTED("2ol916ffwy0e2vxinxn4v4sgt"); // params.bb = bb; +UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose) +UNSUPPORTED("4iypau1fdov37qnq2ub6iq5ra"); // printData(objs, n_objs, lbls, n_lbls, ¶ms); +UNSUPPORTED("25rb35acbkepp55u3bkjxb1gc"); // placeLabels(objs, n_objs, lbls, n_lbls, ¶ms); +UNSUPPORTED("tpyqsliwrqzwhuw8vzkm8loc"); // fprintf(stderr, "read label positions\n"); +UNSUPPORTED("52mefujap7scy273ud7nyj9hn"); // xlp = lbls; +UNSUPPORTED("30yvif5t111f94y1fs2gd8crq"); // for (i = 0; i < n_lbls; i++) { +UNSUPPORTED("w0kpfap6pb5scjkqkgsfira0"); // if (xlp->set) { +UNSUPPORTED("8xqwhcveb6ivragr1ebkp4pfh"); // lp = (textlabel_t *) (xlp->lbl); +UNSUPPORTED("a5h8ktnl3raui7zo5kcjzd2e0"); // lp->set = 1; +UNSUPPORTED("4lub8ddx8vt0gove63lajjr4s"); // lp->pos = centerPt(xlp); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1966qdxqc520zc0itk8al0xus"); // xlp++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("baez6nmarx9nht65vulvjojic"); // free(objs); +UNSUPPORTED("ayak2o9js1lmsa5vuzul2sdxs"); // free(lbls); +UNSUPPORTED("bftxx8axittt2mwc80wvu1f00"); // fprintf(stderr, "writing %s\n", opts->outfname); +UNSUPPORTED("323sem4b7jzyg7l5kylxe0gnx"); // gvRender(opts->gvc, gp, opts->fmt, opts->outf); +UNSUPPORTED("bp54wy9c70v90k5bb11lppo5l"); // /* clean up */ +UNSUPPORTED("67guepsgjnhtoqor7wh4gstti"); // fprintf(stderr, "cleaning up\n"); +UNSUPPORTED("dve51clmbbuj7sc653o65y416"); // gvFreeLayout(opts->gvc, gp); +UNSUPPORTED("9d0rk5v0wtzmux625ddclpdn1"); // agclose(gp); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9wfwgoq79qhinosrkyial6epj +// int checkOpt(char *l, char *legal[], int n) +public static Object checkOpt(Object... arg) { +UNSUPPORTED("16prj059n95sysjma58fiqgzu"); // int checkOpt(char *l, char *legal[], int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("1vi49g48u2rc9v88yhabta0yw"); // for (i = 0; i < n; i++) { +UNSUPPORTED("nnm3nrg0fnq3so1cn59gl1ty"); // if (strcmp(l, legal[i]) == 0) +UNSUPPORTED("btmwubugs9vkexo4yb7a5nqel"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8q6likcxw6ut5zeraaze8shtb +// void usage(char *pp) +public static Object usage(Object... arg) { +UNSUPPORTED("7m2ltqr2kx3w6q4t3g8dzfqpp"); // void usage(char *pp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2a3rymfsfswadknge9x92kumi"); // fprintf(stderr, +UNSUPPORTED("4wrs4bfjfwklmwoco1koczjdv"); // "Usage: %s [-fv] [-V$level] [-T$fmt] [-l$layout] [-o$outfile] dotfile\n", +UNSUPPORTED("9ollqr0ef4x8spk0rt3sr8vqp"); // pp); +UNSUPPORTED("b9185t6i77ez1ac587ul8ndnc"); // return; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3u8wp1vjie9akflq8id8h4jml +// static FILE *openFile(char *name, char *mode) +public static Object openFile(Object... arg) { +UNSUPPORTED("d20hfpuvv6zzaoadalivef5gx"); // static FILE *openFile(char *name, char *mode) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dn2hi0km4q5ldibguffbger1c"); // FILE *fp; +UNSUPPORTED("44fhep40ukv2a3ja1nq34hrm8"); // char *modestr; +UNSUPPORTED("a5fahi1wh7pd0cs3oalvsoaiv"); // fp = fopen(name, mode); +UNSUPPORTED("304p80cpezoo5tih4fcsob9cq"); // if (!fp) { +UNSUPPORTED("9ympiq6pzqmd8nshnoq3vpwfi"); // if (*mode == 'r') +UNSUPPORTED("14y4vxn380hggwx7a5m3zwyd0"); // modestr = "reading"; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("55vho08zxn3hxhpr4tx4use3p"); // modestr = "writing"; +UNSUPPORTED("c7s8at3cqmzgv80hgd8tm7wfb"); // fprintf(stderr, "%s: could not open file %s for %s -- %s\n", +UNSUPPORTED("56vywxbowmjyd2ssgb5jaawi7"); // progname, name, modestr, strerror(errno)); +UNSUPPORTED("dtw3cma0ziyha0w534bszl0tx"); // exit(1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6x54oh4xeozqrj2isrpofhher"); // return (fp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 egkkwztfbkxu9vvlc0sm05nxv +// static void init(int argc, char *argv[], opts_t * opts) +public static Object init(Object... arg) { +UNSUPPORTED("elmto38lhyd8ckgkm1qswhosv"); // static void init(int argc, char *argv[], opts_t * opts) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("emc3vdvz7smauda3se70e5ogd"); // int c, cnt; +UNSUPPORTED("1pbwdmcrlnqb7teoelyxecqu9"); // char **optList; +UNSUPPORTED("87dxsbpdsz45s6w205t6ds10b"); // opts->outf = stdout; +UNSUPPORTED("7mpmbqdt8ajbx6itgsay4kr6i"); // opts->outfname = "stdout"; +UNSUPPORTED("2ah6k3x8emq2o4qkba0zu0zuv"); // progname = argv[0]; +UNSUPPORTED("63lodtevhv92534zqnwg4wf1t"); // opts->gvc = gvContext(); +UNSUPPORTED("81tz51f3gan5smiwrvn3h1lt2"); // opts->lay = "dot"; +UNSUPPORTED("1yiembfofkehuhrorie2b9gsi"); // opts->fmt = "ps"; +UNSUPPORTED("7oi2c7s5gl8voe3x4yum7jszu"); // opts->force = 0; +UNSUPPORTED("60bek3ektewmma3p6pak5x2am"); // while ((c = getopt(argc, argv, "o:vFl:T:V:")) != EOF) { +UNSUPPORTED("7rk995hpmaqbbasmi40mqg0yw"); // switch (c) { +UNSUPPORTED("c7a78qt1dx3jxjw23fwcmwr3p"); // case 'F': +UNSUPPORTED("biextvcnz6zkqlqxgssaqrstl"); // opts->force = 1; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("bwy7mh2nb7lz950r20rfilwa4"); // case 'l': +UNSUPPORTED("6pele3rfkd0r1k5r8qzc5vbha"); // optList = gvPluginList(opts->gvc, "layout", &cnt, NULL); +UNSUPPORTED("7kfiavaqy7qmfg2hg1e8z80e1"); // if (checkOpt(optarg, optList, cnt)) +UNSUPPORTED("anmrnwabtq1ijqqr2uop2n1bh"); // opts->lay = optarg; +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("4rymfp2u3aj6lx2s6plx3hojv"); // fprintf(stderr, "%s: unknown layout %s\n", progname, +UNSUPPORTED("4xhetnmuyh8emewbykj08vroq"); // optarg); +UNSUPPORTED("7ujm7da8xuut83e2rygja0n9d"); // exit(1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2f0a79iza84u7nhurd3n3jjjf"); // case 'T': +UNSUPPORTED("9cus1va3ujh87mdys6c9v2z1t"); // optList = gvPluginList(opts->gvc, "device", &cnt, NULL); +UNSUPPORTED("7kfiavaqy7qmfg2hg1e8z80e1"); // if (checkOpt(optarg, optList, cnt)) +UNSUPPORTED("5altfebkbv6f35oj03qk2492n"); // opts->fmt = optarg; +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("bzcwn6blrae9inr3p5m09e9d"); // fprintf(stderr, "%s: unknown format %s\n", progname, +UNSUPPORTED("4xhetnmuyh8emewbykj08vroq"); // optarg); +UNSUPPORTED("7ujm7da8xuut83e2rygja0n9d"); // exit(1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("318vlfmcdz9no6i45k86aygon"); // case 'v': +UNSUPPORTED("z08wni1aiuv5b8ommxtq10kj"); // Verbose = 1; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("6k6q2a5qrb52v1ue87bbj6dtv"); // case 'V': +UNSUPPORTED("3r3fz5bgdw11zenv47obhu5vt"); // Verbose = atoi(optarg); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2tj3jzqar12mlqrsqiqtnaml4"); // case 'o': +UNSUPPORTED("1wx5260eycnikbxaanmopl7b3"); // opts->outf = openFile(optarg, "w"); +UNSUPPORTED("e167mkpssrx4z8qunrmw8kh1n"); // opts->outfname = optarg; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("22xk7nfw0r35o66cqu5qjubqb"); // usage(progname); +UNSUPPORTED("6f1y0d5qfp1r9zpw0r7m6xfb4"); // exit(1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3phw6ctc4ona74z9ww17xjaw3"); // if (optind < argc) { +UNSUPPORTED("7hpkub9g5s8almwdoymfuenxh"); // opts->inf = openFile(argv[optind], "r"); +UNSUPPORTED("3zkn0yg2bqlmxotocssnzhxws"); // opts->infname = argv[optind]; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("30pkf9oeg7gpxsywbm5shgg64"); // opts->inf = stdin; +UNSUPPORTED("e61j0rmaw1t3upfgqro72rx91"); // opts->infname = ""; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ct8h35c783zokfb7wxjbkavha"); // if (!opts->outf) { +UNSUPPORTED("2s6g8jva40gbl5p87hy413rg4"); // opts->outf = stdout; +UNSUPPORTED("e9nmk5kmlczlng9wz7f4q8gtv"); // opts->outfname = ""; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7i7prctjnltgmsf7dgzmddjg9 +// int main(int argc, char *argv[]) +public static Object main(Object... arg) { +UNSUPPORTED("8fr3wh1xwllvel0m0nkh09bjl"); // int main(int argc, char *argv[]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("kbo4pgmde2ojznpsie5m4t8h"); // opts_t opts; +UNSUPPORTED("db6kkkb1xqkrydzxgyiyxl8ds"); // init(argc, argv, &opts); +UNSUPPORTED("dap4chqfn6jjoa6j31f8lngs4"); // doxlabel(&opts); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/label/rectangle__c.java plantuml-8039/src/gen/lib/label/rectangle__c.java --- plantuml-8024/src/gen/lib/label/rectangle__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/label/rectangle__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,284 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.label; +import static smetana.core.Macro.UNSUPPORTED; + +public class rectangle__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 9mnpt3mibocomreg5h1kk860g +// extern Rect_t CoverAll + + + + +//3 1wtvfzwbzj03e6w5rw4k7qdax +// void InitRect(Rect_t * r) +public static Object InitRect(Object... arg) { +UNSUPPORTED("bfynnbut17s29886tfi4hmp71"); // void InitRect(Rect_t * r) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("pp6gyv6pecd6kik4hoguluwp"); // register int i; +UNSUPPORTED("6v26zqmzay64h92bxd4qt6qgs"); // for (i = 0; i < 2*2; i++) +UNSUPPORTED("d3uknh6sy0xxecd62dbcemd5p"); // r->boundary[i] = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bvazxgli5q4yxvzl5kn1vjqpm +// Rect_t NullRect() +public static Object NullRect(Object... arg) { +UNSUPPORTED("7bfeg4qbgfa72qeao4zmwznat"); // Rect_t NullRect() +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9jotn4njsd13qx406m9otorg4"); // Rect_t r; +UNSUPPORTED("pp6gyv6pecd6kik4hoguluwp"); // register int i; +UNSUPPORTED("4cmj0swptez35tqafqf86bskl"); // r.boundary[0] = 1; +UNSUPPORTED("6lzrqh8r1olplqcbtz1n5dow7"); // r.boundary[2] = -1; +UNSUPPORTED("ol4wmdbmn9kjw3hpmp2gwavz"); // for (i = 1; i < 2; i++) +UNSUPPORTED("9xr8ijrn07laqlacrzelzczxa"); // r.boundary[i] = r.boundary[i + 2] = 0; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1ijarur71gcahchxz8vqf69na +// unsigned int RectArea(Rect_t * r) +public static Object RectArea(Object... arg) { +UNSUPPORTED("dt9366zeifsgcei4onz0fdt4i"); // unsigned int RectArea(Rect_t * r) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9cyat6ft4tmgpumn70l9fwydy"); // register int i; +UNSUPPORTED("eep6ne1fnwvxrzmao6aq2e80t"); // unsigned int area=1, a=1; +UNSUPPORTED("bxtlpefe142w9pb81aa0gkkcj"); // assert(r); +UNSUPPORTED("7xe9zz3f2fwhfptig6esqvb1t"); // if (((r)->boundary[0] > (r)->boundary[2])) return 0; +UNSUPPORTED("9gsgfs2guis9c3c3oi57mxpq2"); // /* +UNSUPPORTED("asaz8qrby7qugc5m3ylnjg6o7"); // * XXX add overflow checks +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("17o3f4aat9tkp17wsngm29nst"); // area = 1; +UNSUPPORTED("6xp61z8h2baoxnlm757q289e3"); // for (i = 0; i < 2; i++) { +UNSUPPORTED("6g0ik6vssf9px33quo2z9ferr"); // unsigned int b = r->boundary[i + 2] - r->boundary[i]; +UNSUPPORTED("7tqqzmxu3tsfxccs53evs54me"); // a *= b; +UNSUPPORTED("3u7h4981b69nu4w80bhv3s4q"); // if( (a / b ) != area) { +UNSUPPORTED("6qc59bm54jy4hv9gw8a50rk0u"); // agerr (AGERR, "label: area too large for rtree\n"); +UNSUPPORTED("awx87c59fwl0w8r64jfd86jrd"); // return UINT_MAX; +UNSUPPORTED("dquo3qofk56ds5xl95lhvcthf"); // } +UNSUPPORTED("b34qh5cr4ie1y00nbl91sn2km"); // area = a; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9ww3ox2wqjgbtsin4e26qgoyx"); // return area; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 tgmhi1wshyhqky2pappb6w6w +// Rect_t CombineRect(Rect_t * r, Rect_t * rr) +public static Object CombineRect(Object... arg) { +UNSUPPORTED("18ebi8xfcz225jqpfk5vtp9hf"); // Rect_t CombineRect(Rect_t * r, Rect_t * rr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7gcww32g3xx6yjb9m2tgq8f7c"); // register int i, j; +UNSUPPORTED("ep1c21oj5vdbkci5nklq26u6d"); // Rect_t new; +UNSUPPORTED("8woqwn01hzllzlrb8an6apviw"); // assert(r && rr); +UNSUPPORTED("61el74qdlszr9b7htgajgnncw"); // if (((r)->boundary[0] > (r)->boundary[2])) +UNSUPPORTED("26gbreijuodtzexgobqd73u1p"); // return *rr; +UNSUPPORTED("9c5jzil5a7hm4bfzytn0e7aww"); // if (((rr)->boundary[0] > (rr)->boundary[2])) +UNSUPPORTED("h0psmi4ydywx720mvhp33x5g"); // return *r; +UNSUPPORTED("6xp61z8h2baoxnlm757q289e3"); // for (i = 0; i < 2; i++) { +UNSUPPORTED("1p51ro3v4iw4nogctzk3y0bts"); // new.boundary[i] = MIN(r->boundary[i], rr->boundary[i]); +UNSUPPORTED("2h0ee6s8hk7srb6xqmnfluf52"); // j = i + 2; +UNSUPPORTED("3cljcok8kw06fphxnu0183g4"); // new.boundary[j] = MAX(r->boundary[j], rr->boundary[j]); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4b8pgvy3c1dhlanxwmafau4pt"); // return new; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9glce34jzknoqj98agg96k03o +// int Overlap(Rect_t * r, Rect_t * s) +public static Object Overlap(Object... arg) { +UNSUPPORTED("75f545jos6v3su84hbt728wxr"); // int Overlap(Rect_t * r, Rect_t * s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7gcww32g3xx6yjb9m2tgq8f7c"); // register int i, j; +UNSUPPORTED("3ilt6jfw7dcaebocva6xawiui"); // assert(r && s); +UNSUPPORTED("6xp61z8h2baoxnlm757q289e3"); // for (i = 0; i < 2; i++) { +UNSUPPORTED("71gqfx1xze9ccjzy9ids9x8cj"); // j = i + 2; /* index for high sides */ +UNSUPPORTED("b41yx5qm8jqsnyojyaztg6wy1"); // if (r->boundary[i] > s->boundary[j] +UNSUPPORTED("cjb3lqf10yggej4b0uh9acc72"); // || s->boundary[i] > r->boundary[j]) +UNSUPPORTED("8tnlb2txucdutal7665h0v68g"); // return (0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4si0cf97a5sfd9ozuunds9goz"); // return (!(0)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b2epj09d2wxyndbn4bgdsxr2q +// int Contained(Rect_t * r, Rect_t * s) +public static Object Contained(Object... arg) { +UNSUPPORTED("733zc41b58sdh3p9oeu9fj9l4"); // int Contained(Rect_t * r, Rect_t * s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9awzjr4cb2zjgf6gos90frckl"); // register int i, j, result; +UNSUPPORTED("3ilt6jfw7dcaebocva6xawiui"); // assert(r && s); +UNSUPPORTED("ef38prhqw1mt7m82qf23llthz"); // /* undefined rect is contained in any other */ +UNSUPPORTED("61el74qdlszr9b7htgajgnncw"); // if (((r)->boundary[0] > (r)->boundary[2])) +UNSUPPORTED("3adr32h5e1fehu4g7j2u24asz"); // return (!(0)); +UNSUPPORTED("97iyq13885wpg4001abrkjhuk"); // /* no rect (except an undefined one) is contained in an undef rect */ +UNSUPPORTED("ex7jjwy9foumvka1ks3pzhm6u"); // if (((s)->boundary[0] > (s)->boundary[2])) +UNSUPPORTED("e6i1m837bi402fjvy87uxgyf"); // return (0); +UNSUPPORTED("41048mrirr0adiwxs12neylq8"); // result = (!(0)); +UNSUPPORTED("6xp61z8h2baoxnlm757q289e3"); // for (i = 0; i < 2; i++) { +UNSUPPORTED("71gqfx1xze9ccjzy9ids9x8cj"); // j = i + 2; /* index for high sides */ +UNSUPPORTED("59et7tzqav7nffmkllv6u1kbt"); // result = result && r->boundary[i] >= s->boundary[i] +UNSUPPORTED("4tdt6ca6zi1rw9kklpgicedap"); // && r->boundary[j] <= s->boundary[j]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e73y2609z2557xahrcvzmcb8e"); // return result; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/label/split_q__c.java plantuml-8039/src/gen/lib/label/split_q__c.java --- plantuml-8024/src/gen/lib/label/split_q__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/label/split_q__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,308 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.label; +import static smetana.core.Macro.UNSUPPORTED; + +public class split_q__c { + + +//3 6vl3snxd6k95gamfkwfsfdguc +// void SplitNode(RTree_t * rtp, Node_t * n, Branch_t * b, Node_t ** nn) +public static Object SplitNode(Object... arg) { +UNSUPPORTED("78ce6yisssjvu8419g3hps65l"); // void SplitNode(RTree_t * rtp, Node_t * n, Branch_t * b, Node_t ** nn) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ajyfxc076ll1tzroielljxa4s"); // register struct PartitionVars *p; +UNSUPPORTED("8jufm5xh68khkqy7z1kcdmesw"); // register int level; +UNSUPPORTED("7bskhxl3c4vhiobuvlm02c79c"); // int area; +UNSUPPORTED("25fhmphgra40j368i6b09n5xz"); // assert(n); +UNSUPPORTED("5xtwc50ov4mxby7k6gahwv12t"); // assert(b); +UNSUPPORTED("21ol6vbghnu1ewovfs645sts7"); // if (rtp->StatFlag) { +UNSUPPORTED("akhni40ndam0u9c6i7raxw4mp"); // if (rtp->Deleting) +UNSUPPORTED("4g80zdlbvunm838x8g3ic9tex"); // rtp->DeSplitCount++; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("2cjo6wz1rmxfm5k7u7rw5dqpj"); // rtp->InSplitCount++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8396srmzb1jm8lij0ngslpcrf"); // /* load all the branches into a buffer, initialize old node */ +UNSUPPORTED("21fuexra37tdi6sx7rtjdg1nj"); // level = n->level; +UNSUPPORTED("bqz4krdoll1zhnuqj6zgotbcu"); // GetBranches(rtp, n, b); +UNSUPPORTED("hdjjn3pouo1k1eq8y4x0nmxs"); // /* find partition */ +UNSUPPORTED("prf503ssj57ewtg2w9ypvt6"); // p = &rtp->split.Partitions[0]; +UNSUPPORTED("e5s838qmpxfzesnb90fmga2th"); // MethodZero(rtp); +UNSUPPORTED("e2qxl0u7yon3spy2kr56ah1lx"); // area = RectArea(&p->cover[0]) + RectArea(&p->cover[1]); +UNSUPPORTED("bqvd9kyv5qlcddypjudg6lwpl"); // /* record how good the split was for statistics */ +UNSUPPORTED("9isnpzrwseyh76rz7fawgkdyw"); // if (rtp->StatFlag && !rtp->Deleting && area) +UNSUPPORTED("z7xk6s3hzi3qcoiq2exj9hpv"); // rtp->SplitMeritSum += (float) rtp->split.CoverSplitArea / area; +UNSUPPORTED("dytz8fm640zs5ercfjtork8u2"); // /* put branches from buffer into 2 nodes according to chosen partition */ +UNSUPPORTED("3vka4yfkd2kilsogvopxmh6ry"); // *nn = RTreeNewNode(rtp); +UNSUPPORTED("3wybhajryp9yjj3lxvzuiv7p9"); // (*nn)->level = n->level = level; +UNSUPPORTED("izrbnvm6p45dy2xfr3265jdf"); // LoadNodes(rtp, n, *nn, p); +UNSUPPORTED("e0lxlkm80cy0577wy8jdxbhq9"); // assert(n->count + (*nn)->count == 64 + 1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 al7lyin008m7kvrvuxhcuvn61 +// static void GetBranches(RTree_t * rtp, Node_t * n, Branch_t * b) +public static Object GetBranches(Object... arg) { +UNSUPPORTED("378qaodt9k6ytly4svwl41z9w"); // static void GetBranches(RTree_t * rtp, Node_t * n, Branch_t * b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("pp6gyv6pecd6kik4hoguluwp"); // register int i; +UNSUPPORTED("25fhmphgra40j368i6b09n5xz"); // assert(n); +UNSUPPORTED("5xtwc50ov4mxby7k6gahwv12t"); // assert(b); +UNSUPPORTED("4oznkldmd6dyb0i9hwec78vcs"); // /* load the branch buffer */ +UNSUPPORTED("82kuymnzv3rubrwutx9bcz4xs"); // for (i = 0; i < 64; i++) { +UNSUPPORTED("8q6h71l7igid38ccu2eiu2u59"); // assert(n->branch[i].child); /* node should have every entry full */ +UNSUPPORTED("gimqiz18hbjhs9folzw2kmv9"); // rtp->split.BranchBuf[i] = n->branch[i]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e53m9mpp58nv3640vo2p82rdv"); // rtp->split.BranchBuf[64] = *b; +UNSUPPORTED("277onaphbigykl17b8k9ucsw3"); // /* calculate rect containing all in the set */ +UNSUPPORTED("ea4y9kg2yx11whdarwr9up60y"); // rtp->split.CoverSplit = rtp->split.BranchBuf[0].rect; +UNSUPPORTED("27yzy7ezx5w65cas3232s6j4m"); // for (i = 1; i < 64 + 1; i++) { +UNSUPPORTED("4qq8r3ecwl603g3xs97658ebu"); // rtp->split.CoverSplit = CombineRect(&rtp->split.CoverSplit, +UNSUPPORTED("8fgchf6ahna7tcxprht01sodq"); // &rtp->split.BranchBuf[i].rect); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8kobdqnp7t9xhtshqkemby6us"); // rtp->split.CoverSplitArea = RectArea(&rtp->split.CoverSplit); +UNSUPPORTED("a4ey5uckjqallol1ktyqe35bv"); // InitNode(n); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4woz5xy4gjlahoj7no3ljxmex +// static void MethodZero(RTree_t * rtp) +public static Object MethodZero(Object... arg) { +UNSUPPORTED("4skckzef98x4fz6mws7s1ya15"); // static void MethodZero(RTree_t * rtp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cdtuwprcw1d3bn91v9sde844l"); // register Rect_t *r; +UNSUPPORTED("ackphjde797dk6rshtiyv1ydx"); // register int i, growth0, growth1, diff, biggestDiff; +UNSUPPORTED("5lh1z9jfdefgm50i9fgjjzf8q"); // register int group, chosen, betterGroup; +UNSUPPORTED("6y4x18eeg7eay10tbawh6myhr"); // InitPVars(rtp); +UNSUPPORTED("5tz02egfuze5n9nquye65i9lr"); // PickSeeds(rtp); +UNSUPPORTED("59gdg3tgr5tyx6gkffgutcpn7"); // while (rtp->split.Partitions[0].count[0] + +UNSUPPORTED("7e0o94342ckw0syu4j0m8vyml"); // rtp->split.Partitions[0].count[1] < 64 + 1 && +UNSUPPORTED("3kmgnkrx7ku1nnb7vprgwnfvt"); // rtp->split.Partitions[0].count[0] < 64 + 1 - rtp->MinFill +UNSUPPORTED("9efzei446ga5t6kd5zstv3mat"); // && rtp->split.Partitions[0].count[1] < +UNSUPPORTED("cxlhyya4bw33nn0kxhwtgj7ni"); // 64 + 1 - rtp->MinFill) { +UNSUPPORTED("1e60en5izveud5k83xw9vkxwy"); // biggestDiff = -1; +UNSUPPORTED("2x1nx9nsne4x3ygmcywl1m3og"); // for (i = 0; i < 64 + 1; i++) { +UNSUPPORTED("4c65v1kbz8jvl3tmy8gyj66qi"); // if (!rtp->split.Partitions[0].taken[i]) { +UNSUPPORTED("6qli7mcgtgb1ne6pl33r3okkj"); // Rect_t rect; +UNSUPPORTED("9tqgad4ybio0vj8j5qgol8sqe"); // r = &rtp->split.BranchBuf[i].rect; +UNSUPPORTED("9xitbkq1bfy3lqwrboyzd3wk0"); // /* growth0 = RectArea(&CombineRect(r, +UNSUPPORTED("bqznmsnmx0j2z1sfi1s0rtx0t"); // &rtp->split.Partitions[0].cover[0])) - +UNSUPPORTED("6tdjjnpjjde476wvn4ez9gy0h"); // rtp->split.Partitions[0].area[0]; +UNSUPPORTED("edw1ss2r31mqgsvca2gowi52v"); // */ +UNSUPPORTED("b2awl1bpq2krcq7yjahwzc77s"); // /* growth1 = RectArea(&CombineRect(r, +UNSUPPORTED("bkjabgaskndtlequuc8ahat39"); // &rtp->split.Partitions[0].cover[1])) - +UNSUPPORTED("567lkxsqa5bu7d4nibvr4tpe1"); // rtp->split.Partitions[0].area[1]; +UNSUPPORTED("edw1ss2r31mqgsvca2gowi52v"); // */ +UNSUPPORTED("5046nw6shbhk2m5dtt3itg1qf"); // rect = CombineRect(r, &rtp->split.Partitions[0].cover[0]); +UNSUPPORTED("nc6om9tl3e7nixzkvrf0etup"); // growth0 = +UNSUPPORTED("ed7mreakvazgougj1ls6ioj33"); // RectArea(&rect) - rtp->split.Partitions[0].area[0]; +UNSUPPORTED("eh4bst7jlzxrquw8wrweiosfn"); // rect = CombineRect(r, &rtp->split.Partitions[0].cover[1]); +UNSUPPORTED("9jwgrynpgu0d39tmz3uvb0f5o"); // growth1 = +UNSUPPORTED("i0duy3nph3k4msny0ibs81ph"); // RectArea(&rect) - rtp->split.Partitions[0].area[1]; +UNSUPPORTED("b9ktilnf5m1wc70yqwf4mdq9e"); // diff = growth1 - growth0; +UNSUPPORTED("81ij2fgplw64rbpouql9na7a1"); // if (diff >= 0) +UNSUPPORTED("b49dtkykbufvv3lk5trobmbw5"); // group = 0; +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("7sge254zb30sgd45k1os7fw3y"); // group = 1; +UNSUPPORTED("adlw9es1w2znqr4h71hd9k1j8"); // diff = -diff; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7qd8i0mpxxu4wueggpmmx9704"); // if (diff > biggestDiff) { +UNSUPPORTED("cc2jxkxp6wf0y4a6er7iildb4"); // biggestDiff = diff; +UNSUPPORTED("4gq0kbfwv4ls5gbqaxqusd6k"); // chosen = i; +UNSUPPORTED("dwalhyg0t90zo8gdq7pstef8a"); // betterGroup = group; +UNSUPPORTED("71bce3js2b0lpi50misxff7uy"); // } else if (diff == biggestDiff && +UNSUPPORTED("fjvt87on1mhn9dyt0b9vp3jg"); // rtp->split.Partitions[0].count[group] < +UNSUPPORTED("1v2g0u9t6ou9xeajwcl3u2nr4"); // rtp->split.Partitions[0].count[betterGroup]) { +UNSUPPORTED("4gq0kbfwv4ls5gbqaxqusd6k"); // chosen = i; +UNSUPPORTED("dwalhyg0t90zo8gdq7pstef8a"); // betterGroup = group; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("967zxvkt7liyzfgjy03xrpwf2"); // Classify(rtp, chosen, betterGroup); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("15gmufvsx34eo7l2gxmf9sjph"); // /* if one group too full, put remaining rects in the other */ +UNSUPPORTED("bz0f1s1b90c4mqpxr24oamywd"); // if (rtp->split.Partitions[0].count[0] + +UNSUPPORTED("d6a1dolgcf9n4go7fsk616dlz"); // rtp->split.Partitions[0].count[1] < 64 + 1) { +UNSUPPORTED("9xvua0lzynx3u05pjeoibo9tt"); // group = 0; +UNSUPPORTED("4edp65b21liyii0fj1ikco7o0"); // if (rtp->split.Partitions[0].count[0] >= +UNSUPPORTED("20lpsuiyepr2ujozaf6gp4cc"); // 64 + 1 - rtp->MinFill) +UNSUPPORTED("9qtt6i40h8vtjp2cvqyb8ycaz"); // group = 1; +UNSUPPORTED("2x1nx9nsne4x3ygmcywl1m3og"); // for (i = 0; i < 64 + 1; i++) { +UNSUPPORTED("jdepsnmrs3ghh78ql301sfvu"); // if (!rtp->split.Partitions[0].taken[i]) +UNSUPPORTED("gqfhorilvtlogp6f2ozx5akf"); // Classify(rtp, i, group); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5r5xug64f1z60bggncz1pne3f"); // assert(rtp->split.Partitions[0].count[0] + +UNSUPPORTED("1whhfnenwvqqzfd4kkosc09z"); // rtp->split.Partitions[0].count[1] == 64 + 1); +UNSUPPORTED("c4k8arobh90w9e9sk4s8zx6a5"); // assert(rtp->split.Partitions[0].count[0] >= rtp->MinFill +UNSUPPORTED("2lio9rd6ztigudntp9gohkge9"); // && rtp->split.Partitions[0].count[1] >= rtp->MinFill); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8rui4cun4tvq5xy6ke6r3p55e +// static void PickSeeds(RTree_t * rtp) +public static Object PickSeeds(Object... arg) { +UNSUPPORTED("4lrul9ern8gc76sno14wqgtne"); // static void PickSeeds(RTree_t * rtp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("vshrs98l6la9fwui89y20ji3"); // register int i, j; +UNSUPPORTED("cz82o6423cha33x8v31g7lhso"); // unsigned int waste, worst; +UNSUPPORTED("8glrb479bftuwm5m4w4eqy3id"); // int seed0, seed1; +UNSUPPORTED("em2tlievesov4lr9nkas30k2p"); // unsigned int area[64 + 1]; +UNSUPPORTED("1rer9hfsfz4to936cdqosy26h"); // for (i = 0; i < 64 + 1; i++) +UNSUPPORTED("2f701q18yaasbx3zewp4pc3i3"); // area[i] = RectArea(&rtp->split.BranchBuf[i].rect); +UNSUPPORTED("5aj4ab555713s4o7hsg305y2c"); // //worst = -rtp->split.CoverSplitArea - 1; +UNSUPPORTED("b2ayju4kcpmgel4or2zbz0dyr"); // worst=0; +UNSUPPORTED("82kuymnzv3rubrwutx9bcz4xs"); // for (i = 0; i < 64; i++) { +UNSUPPORTED("dw3tar5d5xv4kxcnkcevzm9iw"); // for (j = i + 1; j < 64 + 1; j++) { +UNSUPPORTED("4wt347mvef1i2kr5h5z9l0g8i"); // Rect_t rect; +UNSUPPORTED("d5jmdkycgoaq3d846xryh0wtz"); // /* waste = RectArea(&CombineRect(&rtp->split.BranchBuf[i].rect, +UNSUPPORTED("1d3xkv54rko81ltklwjdtrmj1"); // // &rtp->split.BranchBuf[j].rect)) - area[i] - area[j]; +UNSUPPORTED("20m1lc1moer8x00tx9ceto0iw"); // */ +UNSUPPORTED("8vf1f6q13lthe8sasqcvpatr3"); // rect = CombineRect(&rtp->split.BranchBuf[i].rect, +UNSUPPORTED("5wjck74u7gv0xbv7a01rp3eia"); // &rtp->split.BranchBuf[j].rect); +UNSUPPORTED("bzjsjoq354eduv4f511rmjmtk"); // waste = RectArea(&rect) - area[i] - area[j]; +UNSUPPORTED("7g3m0cplrcsffy7f3iqsrwztc"); // if (waste > worst) { +UNSUPPORTED("1irem1gz77fx5eym990j8l9v5"); // worst = waste; +UNSUPPORTED("29q6pzycm1gb2gukvicejmmks"); // seed0 = i; +UNSUPPORTED("11wyv1lzvxs0lyd59xqrp77lb"); // seed1 = j; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c1o6jr885s70ej9txo4zjtk3k"); // Classify(rtp, seed0, 0); +UNSUPPORTED("bf0ov5eigcyw1mhs6rlnwt7g"); // Classify(rtp, seed1, 1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4qyy2dpbkziuubssvfwb8u1sh +// static void Classify(RTree_t * rtp, int i, int group) +public static Object Classify(Object... arg) { +UNSUPPORTED("8ml9djski25i25i59wyn3dld9"); // static void Classify(RTree_t * rtp, int i, int group) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2ulo1dpl3kexdah5mcmnqpzdl"); // assert(!rtp->split.Partitions[0].taken[i]); +UNSUPPORTED("i4edl48bp8pljcmtxd1rep7a"); // rtp->split.Partitions[0].partition[i] = group; +UNSUPPORTED("ackdd63x1sev2rjvlsh0xgqbo"); // rtp->split.Partitions[0].taken[i] = (!(0)); +UNSUPPORTED("7bethw7ebtjrhmrrq3004xvhh"); // if (rtp->split.Partitions[0].count[group] == 0) +UNSUPPORTED("cyhkvve52l3mzao5x0u5df13f"); // rtp->split.Partitions[0].cover[group] = +UNSUPPORTED("9mprl7dpvobrbs232soqoyv62"); // rtp->split.BranchBuf[i].rect; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("cyhkvve52l3mzao5x0u5df13f"); // rtp->split.Partitions[0].cover[group] = +UNSUPPORTED("7ez406d998w0vpfm3e5tbc0qq"); // CombineRect(&rtp->split.BranchBuf[i].rect, +UNSUPPORTED("e0r4nqeeu1jmir6akus7bjggm"); // &rtp->split.Partitions[0].cover[group]); +UNSUPPORTED("3n9txb7nb3kh2v0bsy0fufx1e"); // rtp->split.Partitions[0].area[group] = +UNSUPPORTED("anowu5wmi1sw0e8v669a1obek"); // RectArea(&rtp->split.Partitions[0].cover[group]); +UNSUPPORTED("d8ahf9tcusfmm5zeecg8pmdxb"); // rtp->split.Partitions[0].count[group]++; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ay7l4setwyl3hbx4o2jpa7vyz +// static void LoadNodes(RTree_t * rtp, Node_t * n, Node_t * q, struct PartitionVars *p) +public static Object LoadNodes(Object... arg) { +UNSUPPORTED("d0dvfornj5165j53js6eyidii"); // static void LoadNodes(RTree_t * rtp, Node_t * n, Node_t * q, +UNSUPPORTED("an9dlrefy1hbusq999x8s9qgf"); // struct PartitionVars *p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("pp6gyv6pecd6kik4hoguluwp"); // register int i; +UNSUPPORTED("25fhmphgra40j368i6b09n5xz"); // assert(n); +UNSUPPORTED("30uxqb850wr1s0f0jg8uipd4m"); // assert(q); +UNSUPPORTED("eh686hxootmu11yk2foc2tmr2"); // assert(p); +UNSUPPORTED("83olszqrugs1dppzl6flgshr5"); // for (i = 0; i < 64 + 1; i++) { +UNSUPPORTED("46lk8hxsutpzodwl5udrq4tik"); // assert(rtp->split.Partitions[0].partition[i] == 0 || +UNSUPPORTED("8jebrifw0oq30vs4i2wf1cbse"); // rtp->split.Partitions[0].partition[i] == 1); +UNSUPPORTED("56sxhs1suv0k6iod6sl1w72dw"); // if (rtp->split.Partitions[0].partition[i] == 0) +UNSUPPORTED("cwda9vt3f43bi23igyzgossds"); // AddBranch(rtp, &rtp->split.BranchBuf[i], n, (void *)0); +UNSUPPORTED("9m8w97hthfczabpgdcm7xah33"); // else if (rtp->split.Partitions[0].partition[i] == 1) +UNSUPPORTED("2f02d8m6p439gevwt7mxtyo4p"); // AddBranch(rtp, &rtp->split.BranchBuf[i], q, (void *)0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dvgjc83sogjhzf5kxpir405rh +// static void InitPVars(RTree_t * rtp) +public static Object InitPVars(Object... arg) { +UNSUPPORTED("18v3kgq3ud3q6c0nu07xyv8wa"); // static void InitPVars(RTree_t * rtp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("pp6gyv6pecd6kik4hoguluwp"); // register int i; +UNSUPPORTED("2yvv0x8uir74h718l313i7it6"); // rtp->split.Partitions[0].count[0] = rtp->split.Partitions[0].count[1] = +UNSUPPORTED("556sry61ttzbp13quuzhes74v"); // 0; +UNSUPPORTED("bvhvtlpo10lxy8rquegyfg5jb"); // rtp->split.Partitions[0].cover[0] = rtp->split.Partitions[0].cover[1] = +UNSUPPORTED("5bf9thav82syw0gzxp8b9p5ou"); // NullRect(); +UNSUPPORTED("8avyuhj51jxnpeujd7fmgcgtq"); // rtp->split.Partitions[0].area[0] = rtp->split.Partitions[0].area[1] = +UNSUPPORTED("556sry61ttzbp13quuzhes74v"); // 0; +UNSUPPORTED("83olszqrugs1dppzl6flgshr5"); // for (i = 0; i < 64 + 1; i++) { +UNSUPPORTED("5dttrbxrjqa1omiz2oovpe18k"); // rtp->split.Partitions[0].taken[i] = (0); +UNSUPPORTED("324vwwpg2hf07ejcj9w02evkm"); // rtp->split.Partitions[0].partition[i] = -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/label/xlabels__c.java plantuml-8039/src/gen/lib/label/xlabels__c.java --- plantuml-8024/src/gen/lib/label/xlabels__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/label/xlabels__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,854 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.label; +import static smetana.core.Macro.UNSUPPORTED; + +public class xlabels__c { +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 1lrfssuxf2e1e5pvk6j7qrff6 +// extern int Verbose + + +//1 17dmpzc4uhvmrcx0x00aw2gbc +// Dtdisc_t Hdisc = + + + + +//3 5p3ac8qk4gnne5hj1dc21ysi +// static int icompare(Dt_t * dt, void * v1, void * v2, Dtdisc_t * disc) +public static Object icompare(Object... arg) { +UNSUPPORTED("bpbhsdw4fe10xdxxfuegnvqt2"); // static int icompare(Dt_t * dt, void * v1, void * v2, Dtdisc_t * disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ehks25fxahyjbjd4lm6ryh9su"); // int k1 = *((int *) v1), k2 = *((int *) v2); +UNSUPPORTED("6in30ubiocmaih693f0arymgc"); // return k1 - k2; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 88mbfm305igsr7cew5qx6yldp +// static XLabels_t *xlnew(object_t * objs, int n_objs, xlabel_t * lbls, int n_lbls, label_params_t * params) +public static Object xlnew(Object... arg) { +UNSUPPORTED("3le94zdf67vws2boexolzlx7k"); // static XLabels_t *xlnew(object_t * objs, int n_objs, +UNSUPPORTED("cb2wq8p902q5tlc1mh5hikgi2"); // xlabel_t * lbls, int n_lbls, +UNSUPPORTED("bz8hxsdu70exdmt52dnayj0c7"); // label_params_t * params) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bkrrqfyt0mc9r9usgj4c7t9zs"); // XLabels_t *xlp; +UNSUPPORTED("5tfjcsm3vbxebkz2ev3uqptnx"); // xlp = (XLabels_t*)zmalloc(sizeof(XLabels_t)); +UNSUPPORTED("evg8rhuwggcno9jwcrub0i4y4"); // /* used to load the rtree in hilbert space filling curve order */ +UNSUPPORTED("8yj6rj5llf2mw5pp8tt355a7o"); // if (!(xlp->hdx = dtopen(&Hdisc, Dtobag))) { +UNSUPPORTED("4t1y5iinm4310lkpvbal1spve"); // fprintf(stderr, "out of memory\n"); +UNSUPPORTED("3m406diamp5s5kwcqtwo4pshf"); // goto bad; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1bzq9uxiqzj7l6llb7e6gti7e"); // /* for querying intersection candidates */ +UNSUPPORTED("7elrkgy2129t2ut4mi03dhf75"); // if (!(xlp->spdx = RTreeOpen())) { +UNSUPPORTED("4t1y5iinm4310lkpvbal1spve"); // fprintf(stderr, "out of memory\n"); +UNSUPPORTED("3m406diamp5s5kwcqtwo4pshf"); // goto bad; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("85lb5m2umu5izyudq40of0dgi"); // /* save arg pointers in the handle */ +UNSUPPORTED("ava6c0wrmq2d6j1i4j7bd1lpp"); // xlp->objs = objs; +UNSUPPORTED("85sh2ov52z31nsy9mk5su9p5p"); // xlp->n_objs = n_objs; +UNSUPPORTED("3et8g76wlkf60sgxrmi3z1vom"); // xlp->lbls = lbls; +UNSUPPORTED("2pwe3sog0n7styjgekuhrnd5e"); // xlp->n_lbls = n_lbls; +UNSUPPORTED("52j9u0n44sdpwexr3bunb46zi"); // xlp->params = params; +UNSUPPORTED("64t9yhsoz02rjp8vy1as25a5n"); // return xlp; +UNSUPPORTED("98zx7s9vt8t1s5x9l35evcxnz"); // bad: +UNSUPPORTED("66s40csd2ivd8rx4h2ut8oai5"); // if (xlp->hdx) +UNSUPPORTED("8mg8tqxa78f1nfk4jh9drw2n0"); // dtclose(xlp->hdx); +UNSUPPORTED("b9uy03exphaovgyz5t4gru409"); // if (xlp->spdx) +UNSUPPORTED("4cfpl6hom6vo3btrjlhfmn6mi"); // RTreeClose(xlp->spdx); +UNSUPPORTED("dms04fhv1vao18v2p0lmk80xf"); // free(xlp); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 apvhod2s1yjb8717rb7gie2kb +// static void xlfree(XLabels_t * xlp) +public static Object xlfree(Object... arg) { +UNSUPPORTED("7jv3t0oxe54lacl7qn1meznth"); // static void xlfree(XLabels_t * xlp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3120ftcrfb2pccpafsxzl14te"); // RTreeClose(xlp->spdx); +UNSUPPORTED("dms04fhv1vao18v2p0lmk80xf"); // free(xlp); +UNSUPPORTED("b9185t6i77ez1ac587ul8ndnc"); // return; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6lz36gkh8fla3z6f0lxniy368 +// static int floorLog2(unsigned int n) +public static Object floorLog2(Object... arg) { +UNSUPPORTED("dhjwlofpfy5gop5y81eemv6i4"); // static int floorLog2(unsigned int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3xzujk207ipx0d60nbbrwyjez"); // int pos = 0; +UNSUPPORTED("f0os7tzuki1s9mllsml3zu2fd"); // if (n == 0) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("4b22up0qcghijti04gz41jqiz"); // if (n >= 1 << 16) { +UNSUPPORTED("b8h1lnvuhauq15z5k0fs5u2l1"); // n >>= 16; +UNSUPPORTED("e1kd6x1c70e7l8ml3qgzahq34"); // pos += 16; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a7hxj1hb2pc8py8ywsfit3q4n"); // if (n >= 1 << 8) { +UNSUPPORTED("aioe8c94e5sluu8n00fdgq128"); // n >>= 8; +UNSUPPORTED("b5apnzow59vwb4z38m0bgaxuj"); // pos += 8; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8ln2bn60t9zq7iigfqy9wa5dk"); // if (n >= 1 << 4) { +UNSUPPORTED("albua8gefgieknhiuhr1cook"); // n >>= 4; +UNSUPPORTED("5ivee6b3gs2khi9h8mpbr20g9"); // pos += 4; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("930rjgw6ueudlb4emmrfw8y8w"); // if (n >= 1 << 2) { +UNSUPPORTED("3p8vzi941bcva583xzhk2o7qb"); // n >>= 2; +UNSUPPORTED("3t90pfuwl7kz4zpjrsa99cof8"); // pos += 2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8b1fqmv1sxvuyxs3dcp7aas0k"); // if (n >= 1 << 1) { +UNSUPPORTED("nx53w89cor5x9akadlbw5et8"); // pos += 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2kr5zds5y6oiaubm8wiunqccr"); // return pos; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 uvnzthcpf4xiih05gxie2rx1 +// unsigned int xlhorder(XLabels_t * xlp) +public static Object xlhorder(Object... arg) { +UNSUPPORTED("9rtsoeopc1glcmntqwf7hz6x7"); // unsigned int xlhorder(XLabels_t * xlp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7w1e4a6q9gftmlsxkc4v7eq9d"); // double maxx = xlp->params->bb.UR.x, maxy = xlp->params->bb.UR.y; +UNSUPPORTED("147h47bz0sqql0238qat4fdky"); // return floorLog2(maxx > maxy ? maxx : maxy) + 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lkyvq87bawe3yon7bdwvcjzq +// static unsigned int hd_hil_s_from_xy(point p, int n) +public static Object hd_hil_s_from_xy(Object... arg) { +UNSUPPORTED("9zi37w33fe5wi8h5d2dymr0tt"); // static unsigned int hd_hil_s_from_xy(point p, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("65resmfdu81d1xg2em5l84y82"); // int i, x = p.x, y = p.y, xi, yi; +UNSUPPORTED("3s2drtfrrzifwhrt8rk6kq5gq"); // unsigned s; +UNSUPPORTED("bd5j4s2m9y2fcgu9giqi9qrhy"); // s = 0; /* Initialize. */ +UNSUPPORTED("9d7993w9kft7mplobqeb9boaz"); // for (i = n - 1; i >= 0; i--) { +UNSUPPORTED("c1xqmgsdfzeebwk2yfoz65pue"); // xi = (x >> i) & 1; /* Get bit i of x. */ +UNSUPPORTED("270wzledmbxq3z8mp5tz7ezib"); // yi = (y >> i) & 1; /* Get bit i of y. */ +UNSUPPORTED("3d69e96cdg4apqijubufzse5z"); // s = 4 * s + 2 * xi + (xi ^ yi); /* Append two bits to s. */ +UNSUPPORTED("c4cig8vru225s8qy4aj21mfe0"); // x = x ^ y; /* These 3 lines swap */ +UNSUPPORTED("7r0w00av090u8a4vi14al4ct6"); // y = y ^ (x & (yi - 1)); /* x and y if yi = 0. */ +UNSUPPORTED("cpz7xdfh4gvp5hufdb1ij5amy"); // x = x ^ y; +UNSUPPORTED("7i7jygllv89x29npu61cfn74p"); // x = x ^ (-xi & (yi - 1)); /* Complement x and y if */ +UNSUPPORTED("5p8kbkyzcbsr9m1b1fl7z3q0h"); // y = y ^ (-xi & (yi - 1)); /* xi = 1 and yi = 0. */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bpkzwylrchx5wta1qhytfgbtr +// static double aabbaabb(Rect_t * r, Rect_t * s) +public static Object aabbaabb(Object... arg) { +UNSUPPORTED("21oyvapf2qfnxqid5aolv4mmr"); // static double aabbaabb(Rect_t * r, Rect_t * s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dywr73ggaui4ayztq3tmljs4z"); // /* per dimension if( max < omin || min > omax) */ +UNSUPPORTED("981pm44oz7wkhcspjabhjqpmq"); // double iminx, iminy, imaxx, imaxy; +UNSUPPORTED("60uso6twsxyml3pff70yndkys"); // if (r->boundary[2] < s->boundary[0] || r->boundary[0] > s->boundary[2]) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("1tavt6umo55xyoarc64k3dxs0"); // if (r->boundary[3] < s->boundary[1] || r->boundary[1] > s->boundary[3]) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("ls92qicz53qcx6cwst6f8om3"); // /* if we get here we have an intersection */ +UNSUPPORTED("31cw8fo82001qx6nsg22hugnf"); // /* rightmost left edge of the 2 rectangles */ +UNSUPPORTED("7d66kym3m7c0ya8b4kt7vjtvv"); // iminx = +UNSUPPORTED("2ohiqb8vdv4gbnzqigtqd47c3"); // r->boundary[0] > s->boundary[0] ? r->boundary[0] : s->boundary[0]; +UNSUPPORTED("2bf3t8qfsxq7y4d98hc3p59gv"); // /* upmost bottom edge */ +UNSUPPORTED("cvk4ll2zvw3sljlm63j6bcjr8"); // iminy = +UNSUPPORTED("13n8uz9c82r3pkg85oh43qf74"); // r->boundary[1] > s->boundary[1] ? r->boundary[1] : s->boundary[1]; +UNSUPPORTED("dsfdevf6xy6buo0sydh3h3fis"); // /* leftmost right edge */ +UNSUPPORTED("8rdxlzisdq5iw8b07usm1toc9"); // imaxx = +UNSUPPORTED("a8uyhcvpgmwrihxaaa5u77i69"); // r->boundary[2] < s->boundary[2] ? r->boundary[2] : s->boundary[2]; +UNSUPPORTED("cr403g6ud2h0cyys19fti84tb"); // /* downmost top edge */ +UNSUPPORTED("cqszcttk6vqvj0hezy1t1bsig"); // imaxy = +UNSUPPORTED("41qdog59oicvy8ku3n9vbzhj6"); // r->boundary[3] < s->boundary[3] ? r->boundary[3] : s->boundary[3]; +UNSUPPORTED("cxtiz800rb16yy2u6burhy6mi"); // return (imaxx - iminx) * (imaxy - iminy); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2g71cq6f8w5jbmbnn2x9y5qfq +// static int lblenclosing(object_t * objp, object_t * objp1) +public static Object lblenclosing(Object... arg) { +UNSUPPORTED("96fk2h2cameoldx630f8490ei"); // static int lblenclosing(object_t * objp, object_t * objp1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2uf1ispemhfeg8c7qhy0fbq2j"); // xlabel_t * xlp = objp->lbl;; +UNSUPPORTED("txl92fx6l8dzi4yeuegwqirj"); // assert(objp1->sz.x == 0 && objp1->sz.y == 0); +UNSUPPORTED("ek6g4dsfb8puipbh006mizket"); // if(! xlp) return 0; +UNSUPPORTED("exdts7f2bpam5122kabq2b86c"); // return objp1->pos.x > xlp->pos.x && +UNSUPPORTED("99uxf5dqw5nzdymlzfj764uol"); // objp1->pos.x < (xlp->pos.x + xlp->sz.x) && +UNSUPPORTED("epx7s3oiw75fuioasz208w1k1"); // objp1->pos.y > xlp->pos.y && +UNSUPPORTED("29g3tye8vebllnv9b91xyntzi"); // objp1->pos.y < (xlp->pos.y + xlp->sz.y); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dq1wkb4oxshdggv6cwtgas6m +// static void objp2rect(object_t * op, Rect_t * r) +public static Object objp2rect(Object... arg) { +UNSUPPORTED("bmdr5joxjahq30nkb15r6rf41"); // static void objp2rect(object_t * op, Rect_t * r) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cdtyz1w6cga7n2jo2fbh8c6ro"); // r->boundary[0] = op->pos.x; +UNSUPPORTED("9ir52jgzphc4cgyevo2o2ltjs"); // r->boundary[1] = op->pos.y; +UNSUPPORTED("cz4cc7haeit4u59so96vv80ch"); // r->boundary[2] = op->pos.x + op->sz.x; +UNSUPPORTED("3m857h9kn35205vsumkenc0dx"); // r->boundary[3] = op->pos.y + op->sz.y; +UNSUPPORTED("b9185t6i77ez1ac587ul8ndnc"); // return; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 71b5ttp3xs7lo9fqgb7ypyqgx +// static void objplp2rect(object_t * objp, Rect_t * r) +public static Object objplp2rect(Object... arg) { +UNSUPPORTED("5giyzyeu3hmuyo2r06ushsohy"); // static void objplp2rect(object_t * objp, Rect_t * r) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3wparjbgs7cft1xsjcztm8bdh"); // xlabel_t *lp = objp->lbl; +UNSUPPORTED("5abhryoldlbjfzt4lh63gmcb4"); // r->boundary[0] = lp->pos.x; +UNSUPPORTED("acpv39vcusl8yzf591aja97a0"); // r->boundary[1] = lp->pos.y; +UNSUPPORTED("flr92u77dscu4d286xzfwhzs"); // r->boundary[2] = lp->pos.x + lp->sz.x; +UNSUPPORTED("beq6fj10iaic6pf2z8xgb1atm"); // r->boundary[3] = lp->pos.y + lp->sz.y; +UNSUPPORTED("b9185t6i77ez1ac587ul8ndnc"); // return; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ksqjbiie0e6vvaeawdxriie5 +// static Rect_t objplpmks(XLabels_t * xlp, object_t * objp) +public static Object objplpmks(Object... arg) { +UNSUPPORTED("56xi0kf7c3v2wjn9pgxjfd6h"); // static Rect_t objplpmks(XLabels_t * xlp, object_t * objp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1xpsng8cc6f4327hr9iybol18"); // Rect_t rect; +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("44i0d8rb96ptawj2nb9zhyuzq"); // p.x = p.y = 0.0; +UNSUPPORTED("3dwj4u821y9ogiqj7n51lyoag"); // if (objp->lbl) +UNSUPPORTED("43e7r8tcv1i4842l88wzlv8oh"); // p = objp->lbl->sz; +UNSUPPORTED("5vkhq86nkkgbben2zw7acts5t"); // rect.boundary[0] = (int) floor(objp->pos.x - p.x); +UNSUPPORTED("3smh87oiqzvpexhjkfsvfqk9x"); // rect.boundary[1] = (int) floor(objp->pos.y - p.y); +UNSUPPORTED("2qxkma0x5w0j667gciafl1erp"); // rect.boundary[2] = (int) ceil(objp->pos.x + objp->sz.x + p.x); +UNSUPPORTED("6jltyhrpm228xlstvy1cij4b"); // assert(rect.boundary[2] < INT_MAX); +UNSUPPORTED("aczubaaqymb9ns1q4t70v16a2"); // rect.boundary[3] = (int) ceil(objp->pos.y + objp->sz.y + p.y); +UNSUPPORTED("560x8steudix953y8g7kyqgph"); // assert(rect.boundary[3] < INT_MAX); +UNSUPPORTED("5r5gm69aqx2rcthvo0oaisz5n"); // return rect; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 calnhom3s9dqvvi6crrz3h2wp +// static int getintrsxi(XLabels_t * xlp, object_t * op, object_t * cp) +public static Object getintrsxi(Object... arg) { +UNSUPPORTED("a9fedvxwftar39hm6zje929tj"); // static int getintrsxi(XLabels_t * xlp, object_t * op, object_t * cp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("451bp6msra12odk32g38u2p4l"); // int i = -1; +UNSUPPORTED("6ve3kvakrupo08cfuexjzim3j"); // xlabel_t *lp = op->lbl, *clp = cp->lbl; +UNSUPPORTED("bot9xncc749y7iruelw2v96mm"); // assert(lp != clp); +UNSUPPORTED("95np7ge1zv1ws57dp9wu3twm8"); // if (lp->set == 0 || clp->set == 0) +UNSUPPORTED("11drvggon8u61uz4iw75insly"); // return i; +UNSUPPORTED("bofpvwtmumoe1ckgnlgbwg8bt"); // if ((op->pos.x == 0.0 && op->pos.y == 0.0) || +UNSUPPORTED("f039op8rn0jopi9r8kora4cwz"); // (cp->pos.x == 0.0 && cp->pos.y == 0.0)) +UNSUPPORTED("11drvggon8u61uz4iw75insly"); // return i; +UNSUPPORTED("5t4dji6xy0hdyx5wguao13hy5"); // if (cp->pos.y < op->pos.y) +UNSUPPORTED("kx0a7gocqji2ms0neepjemp0"); // if (cp->pos.x < op->pos.x) +UNSUPPORTED("al11nyatzn20y82ligyxw6doz"); // i = 0; +UNSUPPORTED("6u28hrhgdf9tpy6v85nmoma8q"); // else if (cp->pos.x > op->pos.x) +UNSUPPORTED("3nbwdw3wfkpmnrf8loezvflkx"); // i = 2; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("akdfo982ws6tlct2c4wlm7hdb"); // i = 1; +UNSUPPORTED("6h2iz13c1pog9oqz0a4f1sqth"); // else if (cp->pos.y > op->pos.y) +UNSUPPORTED("kx0a7gocqji2ms0neepjemp0"); // if (cp->pos.x < op->pos.x) +UNSUPPORTED("2rdl000508m132a9u1h076lba"); // i = 6; +UNSUPPORTED("6u28hrhgdf9tpy6v85nmoma8q"); // else if (cp->pos.x > op->pos.x) +UNSUPPORTED("7p6vu0p80gdkcsj4l5hz59dqb"); // i = 8; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("69apu46xpi0gdi4dt1tir6dbh"); // i = 7; +UNSUPPORTED("73lwftxejfwwrm0v22inmutya"); // else if (cp->pos.x < op->pos.x) +UNSUPPORTED("9t0t38axcdz9uuxxaxd4e5oi2"); // i = 3; +UNSUPPORTED("an605gtk4m1ql9srrrj5k6dah"); // else if (cp->pos.x > op->pos.x) +UNSUPPORTED("cmp9l0lizmu0ars1jf1oxdms"); // i = 5; +UNSUPPORTED("ahwo5hst5k1gyq20ve63ahe81"); // return i; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 52awwxu810dg9a2pjq45aomam +// static double recordointrsx(XLabels_t * xlp, object_t * op, object_t * cp, Rect_t * rp, double a, object_t * intrsx[9]) +public static Object recordointrsx(Object... arg) { +UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("2zz9cixco1u51p503mmbdrgwj"); // recordointrsx(XLabels_t * xlp, object_t * op, object_t * cp, Rect_t * rp, +UNSUPPORTED("apwjxkvmqelrsmtxwca7febp5"); // double a, object_t * intrsx[9]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ejj0lh0dxc3weinkmoqplvk87"); // int i = getintrsxi(xlp, op, cp); +UNSUPPORTED("7jqpiltkvdvvkjldnxqmz4nfw"); // if (i < 0) +UNSUPPORTED("cmp9l0lizmu0ars1jf1oxdms"); // i = 5; +UNSUPPORTED("b3zyhtz43kkfxl6c8kovnaukv"); // if (intrsx[i] != (void *)0) { +UNSUPPORTED("908eps96desp6goewhn8nkz4v"); // double sa, maxa = 0.0; +UNSUPPORTED("cz5yjl642c9a3c7quub0ndp2a"); // Rect_t srect; +UNSUPPORTED("aq0f27u636o0qqw392noohjgj"); // /* keep maximally overlapping object */ +UNSUPPORTED("5vocmgb870od0q18046qxkydh"); // objp2rect(intrsx[i], &srect); +UNSUPPORTED("3by02iwc6g6vz00qca2gs8af1"); // sa = aabbaabb(rp, &srect); +UNSUPPORTED("77dloi6nsmguqzpi413an26qc"); // if (sa > a) +UNSUPPORTED("8e6d6m12amff6diyc58bdpzap"); // maxa = sa; +UNSUPPORTED("2d4heu1iudrpn42muf8z4aedr"); // /*keep maximally overlapping label */ +UNSUPPORTED("5g3p1wh0h43afgmy1ttrgr1jv"); // if (intrsx[i]->lbl) { +UNSUPPORTED("e5ldv4apogj6g1ixv62v7fqn7"); // objplp2rect(intrsx[i], &srect); +UNSUPPORTED("6h73h574xwo051r2xjepln3kk"); // sa = aabbaabb(rp, &srect); +UNSUPPORTED("cl94uq2flao8cddtvg02oliwb"); // if (sa > a) +UNSUPPORTED("d9hnc5ox6fsga1e2336gg1fwv"); // maxa = sa > maxa ? sa : maxa; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6nmie1l1f5g573kzykn3266zd"); // if (maxa > 0.0) +UNSUPPORTED("dm9264t4efl70h617d1apqrlj"); // return maxa; +UNSUPPORTED("3vems3bwps1fshis117u06l2l"); // /*replace overlapping label/object pair */ +UNSUPPORTED("c3ewj48u0ngzq2xd8g3238ays"); // intrsx[i] = cp; +UNSUPPORTED("efte22brajv8hm98pgq1oyjc5"); // return a; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2u8wtbwfirvx570l7nhbkqwmn"); // intrsx[i] = cp; +UNSUPPORTED("3gfohtnqgemf2e1akg4je944a"); // return a; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2umrncgkunxoyeuc8i9hd5pwa +// static double recordlintrsx(XLabels_t * xlp, object_t * op, object_t * cp, Rect_t * rp, double a, object_t * intrsx[9]) +public static Object recordlintrsx(Object... arg) { +UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("a36vanbvru4xq84pujn0rdpr5"); // recordlintrsx(XLabels_t * xlp, object_t * op, object_t * cp, Rect_t * rp, +UNSUPPORTED("apwjxkvmqelrsmtxwca7febp5"); // double a, object_t * intrsx[9]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ejj0lh0dxc3weinkmoqplvk87"); // int i = getintrsxi(xlp, op, cp); +UNSUPPORTED("7jqpiltkvdvvkjldnxqmz4nfw"); // if (i < 0) +UNSUPPORTED("cmp9l0lizmu0ars1jf1oxdms"); // i = 5; +UNSUPPORTED("b3zyhtz43kkfxl6c8kovnaukv"); // if (intrsx[i] != (void *)0) { +UNSUPPORTED("908eps96desp6goewhn8nkz4v"); // double sa, maxa = 0.0; +UNSUPPORTED("cz5yjl642c9a3c7quub0ndp2a"); // Rect_t srect; +UNSUPPORTED("aq0f27u636o0qqw392noohjgj"); // /* keep maximally overlapping object */ +UNSUPPORTED("5vocmgb870od0q18046qxkydh"); // objp2rect(intrsx[i], &srect); +UNSUPPORTED("3by02iwc6g6vz00qca2gs8af1"); // sa = aabbaabb(rp, &srect); +UNSUPPORTED("77dloi6nsmguqzpi413an26qc"); // if (sa > a) +UNSUPPORTED("8e6d6m12amff6diyc58bdpzap"); // maxa = sa; +UNSUPPORTED("2d4heu1iudrpn42muf8z4aedr"); // /*keep maximally overlapping label */ +UNSUPPORTED("5g3p1wh0h43afgmy1ttrgr1jv"); // if (intrsx[i]->lbl) { +UNSUPPORTED("e5ldv4apogj6g1ixv62v7fqn7"); // objplp2rect(intrsx[i], &srect); +UNSUPPORTED("6h73h574xwo051r2xjepln3kk"); // sa = aabbaabb(rp, &srect); +UNSUPPORTED("cl94uq2flao8cddtvg02oliwb"); // if (sa > a) +UNSUPPORTED("d9hnc5ox6fsga1e2336gg1fwv"); // maxa = sa > maxa ? sa : maxa; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6nmie1l1f5g573kzykn3266zd"); // if (maxa > 0.0) +UNSUPPORTED("dm9264t4efl70h617d1apqrlj"); // return maxa; +UNSUPPORTED("3vems3bwps1fshis117u06l2l"); // /*replace overlapping label/object pair */ +UNSUPPORTED("c3ewj48u0ngzq2xd8g3238ays"); // intrsx[i] = cp; +UNSUPPORTED("efte22brajv8hm98pgq1oyjc5"); // return a; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2u8wtbwfirvx570l7nhbkqwmn"); // intrsx[i] = cp; +UNSUPPORTED("3gfohtnqgemf2e1akg4je944a"); // return a; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2td62i5hus8obwt8j1lo3ddj9 +// static BestPos_t xlintersections(XLabels_t * xlp, object_t * objp, object_t * intrsx[9]) +public static Object xlintersections(Object... arg) { +UNSUPPORTED("5d1nc0otrpz1jjsig9p42wcdx"); // static BestPos_t +UNSUPPORTED("6wd33niscsg9gaphvjj2k27mk"); // xlintersections(XLabels_t * xlp, object_t * objp, object_t * intrsx[9]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("3zfiovc9yy1ux6pn9mcga1mhx"); // LeafList_t *ilp, *llp; +UNSUPPORTED("a1j5r089evbgqbrk12ebcposk"); // Rect_t rect, srect; +UNSUPPORTED("ac14qcqjljksbh1ulqbhsnrnb"); // BestPos_t bp; +UNSUPPORTED("cep99zzwrn6h0kw9g90d0bcx5"); // assert(objp->lbl); +UNSUPPORTED("at98kl98nqfoglwklw8bmf8dy"); // bp.n = 0; +UNSUPPORTED("6umte8r5yaoo1st9aa3ak69vv"); // bp.area = 0.0; +UNSUPPORTED("6lbd8rbktjb11npai18mqgehg"); // bp.pos = objp->lbl->pos; +UNSUPPORTED("bu059qij9p4jrq3c2fc3dv1tc"); // for(i=0; in_objs; i++) { +UNSUPPORTED("2ju28cg7zhx8a22r2nngjed1z"); // if(objp == &xlp->objs[i]) continue; +UNSUPPORTED("8y5ea7egphfppbq3tbxnqvszd"); // if(xlp->objs[i].sz.x > 0 && xlp->objs[i].sz.y > 0) continue; +UNSUPPORTED("8kr7yfnz75qb1mcurk9ikvqm4"); // if(lblenclosing(objp, &xlp->objs[i]) ) { +UNSUPPORTED("4szbt8bacnec4eh6741w9202k"); // bp.n++; +UNSUPPORTED("dquo3qofk56ds5xl95lhvcthf"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3kxhpoylut0o1vn46d51xaxmm"); // objplp2rect(objp, &rect); +UNSUPPORTED("2oyraxz5ikxma3gbfbygvqyfb"); // llp = RTreeSearch(xlp->spdx, xlp->spdx->root, &rect); +UNSUPPORTED("5gmvhcq1f7m3vaw99uu5u2lhh"); // if (!llp) +UNSUPPORTED("6t20fkj318tjhdok8hlpbsnf7"); // return bp; +UNSUPPORTED("cu0fy461wercnkus2c5pix4y9"); // for (ilp = llp; ilp; ilp = ilp->next) { +UNSUPPORTED("694r1mgceoxxp4ktbci1h2qnm"); // double a, ra; +UNSUPPORTED("6sqdh7rdwpg33jt0ecjx3yobj"); // object_t *cp = ilp->leaf->data; +UNSUPPORTED("7wl0z6xy4danjs21muyt94sm7"); // if (cp == objp) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("91gncffnouukjk2940jfpcll4"); // /*label-object intersect */ +UNSUPPORTED("8gzbd1z9dm5uszv31wx6una1n"); // objp2rect(cp, &srect); +UNSUPPORTED("c5t1kwupnkevwfpx3deb42y52"); // a = aabbaabb(&rect, &srect); +UNSUPPORTED("9zmfoo91yy2c8v5o1x9tul9a5"); // if (a > 0.0) { +UNSUPPORTED("di2i1k0ht9d4tbn1d0os7lj44"); // ra = recordointrsx(xlp, objp, cp, &rect, a, intrsx); +UNSUPPORTED("20fp32yan59vu7bbp6jc1t8fn"); // bp.n++; +UNSUPPORTED("asfx7fyb1rvar23xmjcttxkyc"); // bp.area += ra; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6pabj7ne9s1dinxh7rgynt84r"); // /*label-label intersect */ +UNSUPPORTED("6azbae5tbds7g6ytolv14300v"); // if (!cp->lbl || !cp->lbl->set) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("4jw7tfl9ltqgflydxukej7r0d"); // objplp2rect(cp, &srect); +UNSUPPORTED("c5t1kwupnkevwfpx3deb42y52"); // a = aabbaabb(&rect, &srect); +UNSUPPORTED("9zmfoo91yy2c8v5o1x9tul9a5"); // if (a > 0.0) { +UNSUPPORTED("db5ir72mk4a23hg0pqyapmdav"); // ra = recordlintrsx(xlp, objp, cp, &rect, a, intrsx); +UNSUPPORTED("20fp32yan59vu7bbp6jc1t8fn"); // bp.n++; +UNSUPPORTED("asfx7fyb1rvar23xmjcttxkyc"); // bp.area += ra; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6q4puajbcusq4jhaq2i60nlt4"); // RTreeLeafListFree(llp); +UNSUPPORTED("bgo7070e5cs998w6zp1ma85ad"); // return bp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8rxvucqsqnqej6h8p1osfnk4b +// static BestPos_t xladjust(XLabels_t * xlp, object_t * objp) +public static Object xladjust(Object... arg) { +UNSUPPORTED("855u8yvlwgwm8xrgmk8yd4q2g"); // static BestPos_t xladjust(XLabels_t * xlp, object_t * objp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3wparjbgs7cft1xsjcztm8bdh"); // xlabel_t *lp = objp->lbl; +UNSUPPORTED("3z9wizs5r8uuyz9r6zxqmltyr"); // double xincr = ((2 * lp->sz.x) + objp->sz.x) / 8; +UNSUPPORTED("6y5jbcs5zcnghcye723x4gerv"); // double yincr = ((2 * lp->sz.y) + objp->sz.y) / 2; +UNSUPPORTED("75ucply06uar4cxvlazotnq23"); // object_t *intrsx[9]; +UNSUPPORTED("9akjtu5ebkpokhkmmtkmz7alu"); // BestPos_t bp, nbp; +UNSUPPORTED("cep99zzwrn6h0kw9g90d0bcx5"); // assert(objp->lbl); +UNSUPPORTED("8imr23u6gekt0djjf1kronrfn"); // memset(intrsx, 0, sizeof(intrsx)); +UNSUPPORTED("1yhd7hlhm8avh8zzfa6szjhz"); // /*x left */ +UNSUPPORTED("9j4u90wq1z4maw7hj3ecfdm76"); // lp->pos.x = objp->pos.x - lp->sz.x; +UNSUPPORTED("dximv1vws8eaor4idmmxl4cxm"); // /*top */ +UNSUPPORTED("2fqhd5bouvdzxkjo7cb26f1be"); // lp->pos.y = objp->pos.y + objp->sz.y; +UNSUPPORTED("4ol5wxgvom71bm5d6x8u1uhce"); // bp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("b2di2eiikxmj7aprwrglzmouu"); // if (bp.n == 0) +UNSUPPORTED("6t20fkj318tjhdok8hlpbsnf7"); // return bp; +UNSUPPORTED("aagnln5mk16fd69wnvh7p5m33"); // /*mid */ +UNSUPPORTED("b7imuebo95ow7fl42ukl08csq"); // lp->pos.y = objp->pos.y; +UNSUPPORTED("4a8niot6lun3zef1tls6aomot"); // nbp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("5d0zdvxl3sgzkryeuli9o53y8"); // if (nbp.n == 0) +UNSUPPORTED("6a6aos5zy43mcgqak0sb6pm5f"); // return nbp; +UNSUPPORTED("anqn2ghhjsx21704j9hnkxqle"); // if (nbp.area < bp.area) +UNSUPPORTED("ct5bwjy62uv01c11htvtjj68p"); // bp = nbp; +UNSUPPORTED("d0vrsmmihdqn5mrg1ukoz4opr"); // /*bottom */ +UNSUPPORTED("f5b4ggww4fzy0j1ustukdd023"); // lp->pos.y = objp->pos.y - lp->sz.y; +UNSUPPORTED("4a8niot6lun3zef1tls6aomot"); // nbp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("5d0zdvxl3sgzkryeuli9o53y8"); // if (nbp.n == 0) +UNSUPPORTED("6a6aos5zy43mcgqak0sb6pm5f"); // return nbp; +UNSUPPORTED("anqn2ghhjsx21704j9hnkxqle"); // if (nbp.area < bp.area) +UNSUPPORTED("ct5bwjy62uv01c11htvtjj68p"); // bp = nbp; +UNSUPPORTED("7fnjcyugtimcpcfm4309c9tdm"); // /*x mid */ +UNSUPPORTED("321pfgsh01nbsjro6xmf2ayfz"); // lp->pos.x = objp->pos.x; +UNSUPPORTED("dximv1vws8eaor4idmmxl4cxm"); // /*top */ +UNSUPPORTED("2fqhd5bouvdzxkjo7cb26f1be"); // lp->pos.y = objp->pos.y + objp->sz.y; +UNSUPPORTED("4a8niot6lun3zef1tls6aomot"); // nbp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("5d0zdvxl3sgzkryeuli9o53y8"); // if (nbp.n == 0) +UNSUPPORTED("6a6aos5zy43mcgqak0sb6pm5f"); // return nbp; +UNSUPPORTED("anqn2ghhjsx21704j9hnkxqle"); // if (nbp.area < bp.area) +UNSUPPORTED("ct5bwjy62uv01c11htvtjj68p"); // bp = nbp; +UNSUPPORTED("d0vrsmmihdqn5mrg1ukoz4opr"); // /*bottom */ +UNSUPPORTED("f5b4ggww4fzy0j1ustukdd023"); // lp->pos.y = objp->pos.y - lp->sz.y; +UNSUPPORTED("4a8niot6lun3zef1tls6aomot"); // nbp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("5d0zdvxl3sgzkryeuli9o53y8"); // if (nbp.n == 0) +UNSUPPORTED("6a6aos5zy43mcgqak0sb6pm5f"); // return nbp; +UNSUPPORTED("anqn2ghhjsx21704j9hnkxqle"); // if (nbp.area < bp.area) +UNSUPPORTED("ct5bwjy62uv01c11htvtjj68p"); // bp = nbp; +UNSUPPORTED("630ofptck59xowlm1hcwiue59"); // /*x right */ +UNSUPPORTED("3zrvv0dmz98537x06egk4mwsj"); // lp->pos.x = objp->pos.x + objp->sz.x; +UNSUPPORTED("dximv1vws8eaor4idmmxl4cxm"); // /*top */ +UNSUPPORTED("2fqhd5bouvdzxkjo7cb26f1be"); // lp->pos.y = objp->pos.y + objp->sz.y; +UNSUPPORTED("4a8niot6lun3zef1tls6aomot"); // nbp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("5d0zdvxl3sgzkryeuli9o53y8"); // if (nbp.n == 0) +UNSUPPORTED("6a6aos5zy43mcgqak0sb6pm5f"); // return nbp; +UNSUPPORTED("anqn2ghhjsx21704j9hnkxqle"); // if (nbp.area < bp.area) +UNSUPPORTED("ct5bwjy62uv01c11htvtjj68p"); // bp = nbp; +UNSUPPORTED("aagnln5mk16fd69wnvh7p5m33"); // /*mid */ +UNSUPPORTED("b7imuebo95ow7fl42ukl08csq"); // lp->pos.y = objp->pos.y; +UNSUPPORTED("4a8niot6lun3zef1tls6aomot"); // nbp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("5d0zdvxl3sgzkryeuli9o53y8"); // if (nbp.n == 0) +UNSUPPORTED("6a6aos5zy43mcgqak0sb6pm5f"); // return nbp; +UNSUPPORTED("anqn2ghhjsx21704j9hnkxqle"); // if (nbp.area < bp.area) +UNSUPPORTED("ct5bwjy62uv01c11htvtjj68p"); // bp = nbp; +UNSUPPORTED("d0vrsmmihdqn5mrg1ukoz4opr"); // /*bottom */ +UNSUPPORTED("f5b4ggww4fzy0j1ustukdd023"); // lp->pos.y = objp->pos.y - lp->sz.y; +UNSUPPORTED("4a8niot6lun3zef1tls6aomot"); // nbp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("5d0zdvxl3sgzkryeuli9o53y8"); // if (nbp.n == 0) +UNSUPPORTED("6a6aos5zy43mcgqak0sb6pm5f"); // return nbp; +UNSUPPORTED("anqn2ghhjsx21704j9hnkxqle"); // if (nbp.area < bp.area) +UNSUPPORTED("ct5bwjy62uv01c11htvtjj68p"); // bp = nbp; +UNSUPPORTED("6eft7mmbcin2x9bhx6gvtc33b"); // /*sliding from top left */ +UNSUPPORTED("2lmnvn101cpkt9b1cwipe71gz"); // if (intrsx[6] || intrsx[7] || intrsx[8] || intrsx[3] || intrsx[0]) { /* have to move */ +UNSUPPORTED("c5acs4cl77hgu5j6nmhk090uz"); // if (!intrsx[7] && !intrsx[8]) { /* some room right? */ +UNSUPPORTED("ez8sbh237xdqdjeewev2ys74y"); // /* slide along upper edge */ +UNSUPPORTED("ajgw2jggmwmofm77lgbx5eo2n"); // for (lp->pos.x = objp->pos.x - lp->sz.x, +UNSUPPORTED("nwfhss2g67z5exjkorj0brd"); // lp->pos.y = objp->pos.y + objp->sz.y; +UNSUPPORTED("eav75dwa3f3ieedr9mnov3a6u"); // lp->pos.x <= (objp->pos.x + objp->sz.x); +UNSUPPORTED("38u334kkfej5n3r31uv1afw9q"); // lp->pos.x += xincr) { +UNSUPPORTED("8pbum2o0fs86ceaiuxv4efbb6"); // nbp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("5xx7o143ftoj0rhyhg1hqgioa"); // if (nbp.n == 0) +UNSUPPORTED("eqanxe9w90oki7yqvwyzpfcw1"); // return nbp; +UNSUPPORTED("8yd6g3a3f0g09gmu5f67vah0x"); // if (nbp.area < bp.area) +UNSUPPORTED("d6ac36j6lh6qspxwnn3vi0uc3"); // bp = nbp; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4w0qgfnt6kpuhb381pmra3ln4"); // if (!intrsx[3] && !intrsx[0]) { /* some room down? */ +UNSUPPORTED("6st33ex0udr4mk4sa9vd119uz"); // /* slide down left edge */ +UNSUPPORTED("ajgw2jggmwmofm77lgbx5eo2n"); // for (lp->pos.x = objp->pos.x - lp->sz.x, +UNSUPPORTED("nwfhss2g67z5exjkorj0brd"); // lp->pos.y = objp->pos.y + objp->sz.y; +UNSUPPORTED("eolwmrajeldp9gf9ug6ue0gx2"); // lp->pos.y >= (objp->pos.y - lp->sz.y); +UNSUPPORTED("bz3822dbe0xnwj4nm7pf39kae"); // lp->pos.y -= yincr) { +UNSUPPORTED("8pbum2o0fs86ceaiuxv4efbb6"); // nbp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("5xx7o143ftoj0rhyhg1hqgioa"); // if (nbp.n == 0) +UNSUPPORTED("eqanxe9w90oki7yqvwyzpfcw1"); // return nbp; +UNSUPPORTED("8yd6g3a3f0g09gmu5f67vah0x"); // if (nbp.area < bp.area) +UNSUPPORTED("d6ac36j6lh6qspxwnn3vi0uc3"); // bp = nbp; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8nu4s12gyh52h2ot9r2mlueuv"); // /*sliding from bottom right */ +UNSUPPORTED("3zrvv0dmz98537x06egk4mwsj"); // lp->pos.x = objp->pos.x + objp->sz.x; +UNSUPPORTED("f5b4ggww4fzy0j1ustukdd023"); // lp->pos.y = objp->pos.y - lp->sz.y; +UNSUPPORTED("9bzyoo2lc0pw2w76mz7eeduvc"); // if (intrsx[2] || intrsx[1] || intrsx[0] || intrsx[5] || intrsx[8]) { /* have to move */ +UNSUPPORTED("dq7ul34gznvszkqhgqlz4fihm"); // if (!intrsx[1] && !intrsx[0]) { /* some room left? */ +UNSUPPORTED("ahn6dk8lj2by2umnd8pceb83d"); // /* slide along lower edge */ +UNSUPPORTED("7natp0873pfsvymhhhvki1sev"); // for (lp->pos.x = objp->pos.x + objp->sz.x, +UNSUPPORTED("56ycmo0ljb7e86mnezdx3regh"); // lp->pos.y = objp->pos.y - lp->sz.y; +UNSUPPORTED("3wro576dh2vj9wpmfxx4rldbm"); // lp->pos.x >= (objp->pos.x - lp->sz.x); +UNSUPPORTED("bvw5pjd7v4j796l8hhh1zrln6"); // lp->pos.x -= xincr) { +UNSUPPORTED("8pbum2o0fs86ceaiuxv4efbb6"); // nbp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("5xx7o143ftoj0rhyhg1hqgioa"); // if (nbp.n == 0) +UNSUPPORTED("eqanxe9w90oki7yqvwyzpfcw1"); // return nbp; +UNSUPPORTED("8yd6g3a3f0g09gmu5f67vah0x"); // if (nbp.area < bp.area) +UNSUPPORTED("d6ac36j6lh6qspxwnn3vi0uc3"); // bp = nbp; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4owpyb9p8esm06ttngj1arl5c"); // if (!intrsx[5] && !intrsx[8]) { /* some room up? */ +UNSUPPORTED("4bcpk3ixfwrlr0yzrjv2efigj"); // /* slide up right edge */ +UNSUPPORTED("7natp0873pfsvymhhhvki1sev"); // for (lp->pos.x = objp->pos.x + objp->sz.x, +UNSUPPORTED("56ycmo0ljb7e86mnezdx3regh"); // lp->pos.y = objp->pos.y - lp->sz.y; +UNSUPPORTED("9cepfi69gtzy7muk9d27es8oc"); // lp->pos.y <= (objp->pos.y + objp->sz.y); +UNSUPPORTED("az41g895dhl39ckrigxl1c5jl"); // lp->pos.y += yincr) { +UNSUPPORTED("8pbum2o0fs86ceaiuxv4efbb6"); // nbp = xlintersections(xlp, objp, intrsx); +UNSUPPORTED("5xx7o143ftoj0rhyhg1hqgioa"); // if (nbp.n == 0) +UNSUPPORTED("eqanxe9w90oki7yqvwyzpfcw1"); // return nbp; +UNSUPPORTED("8yd6g3a3f0g09gmu5f67vah0x"); // if (nbp.area < bp.area) +UNSUPPORTED("d6ac36j6lh6qspxwnn3vi0uc3"); // bp = nbp; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bgo7070e5cs998w6zp1ma85ad"); // return bp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e29g2hwlogx0zchsnvi464c7t +// static int xlhdxload(XLabels_t * xlp) +public static Object xlhdxload(Object... arg) { +UNSUPPORTED("ttxmlo99ck9eo0jae04cg2v0"); // static int xlhdxload(XLabels_t * xlp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("5qghcwlht7sxz3cthtja5f043"); // int order = xlhorder(xlp); +UNSUPPORTED("eali4r93mgkm937waq6to82sj"); // for (i = 0; i < xlp->n_objs; i++) { +UNSUPPORTED("aves0wxiz65s447kr8wukl6zr"); // HDict_t *hp; +UNSUPPORTED("43j1m17g0mjbn69pbx7ph6omt"); // point pi; +UNSUPPORTED("bn6ewrzw1x1whedilfc6kobal"); // hp = (HDict_t*)zmalloc(sizeof(HDict_t)); +UNSUPPORTED("5wresbe1bm8eff0j10in23a8b"); // hp->d.data = &xlp->objs[i]; +UNSUPPORTED("7syosspcm4ygedrsu0c1gaqop"); // hp->d.rect = objplpmks(xlp, &xlp->objs[i]); +UNSUPPORTED("6mb29odwxakb6cqdulhhed9j5"); // /* center of the labeling area */ +UNSUPPORTED("83ihi4lf580lzo4gdus20wr2w"); // pi.x = hp->d.rect.boundary[0] + +UNSUPPORTED("ao944ocofv44otdeh08kl4u8o"); // (hp->d.rect.boundary[2] - hp->d.rect.boundary[0]) / 2; +UNSUPPORTED("3igtyiyl8cpovcwukpm44iquw"); // pi.y = hp->d.rect.boundary[1] + +UNSUPPORTED("3r4kfmd4lw5d0osh14sf4cjwg"); // (hp->d.rect.boundary[3] - hp->d.rect.boundary[1]) / 2; +UNSUPPORTED("42x3x9vgkald7xdpbxyxih2zj"); // hp->key = hd_hil_s_from_xy(pi, order); +UNSUPPORTED("4apoyv2n3t2fcv72hom4owvgj"); // if (!((*(((Dt_t*)(xlp->hdx))->searchf))((xlp->hdx),(void*)(hp),0000001))) +UNSUPPORTED("aivfd7ajlfz8o8oi68d4u5s5z"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 26qpvnyd6tmdut8i2wo4itza3 +// static void xlhdxunload(XLabels_t * xlp) +public static Object xlhdxunload(Object... arg) { +UNSUPPORTED("4bsnj74f63qe288s6be1xmrzw"); // static void xlhdxunload(XLabels_t * xlp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9sqtid8yyo2ws8avf33utdebf"); // int size=dtsize(xlp->hdx), freed=0; +UNSUPPORTED("dm7bmt2fwlkdskmcebdm1ctqj"); // while(dtsize(xlp->hdx) ) { +UNSUPPORTED("a3jz6ykhoarsdfviidq7beb9z"); // void*vp=(((Dt_t*)(xlp->hdx))->data->here ? (((Dt_t*)((xlp->hdx)))->disc->link < 0 ? ((Dthold_t*)((((Dt_t*)(xlp->hdx))->data->here)))->obj : (void*)((char*)((((Dt_t*)(xlp->hdx))->data->here)) - ((Dt_t*)((xlp->hdx)))->disc->link) ):(void*)(0)); +UNSUPPORTED("2covsywkzvpkysnjf34nmr1uw"); // assert(vp); +UNSUPPORTED("a9jmr8hmnwcky7f1e1qorwnjv"); // if(vp) { +UNSUPPORTED("d2vfgb4tj6x8x7cq0kv0qgk23"); // (*(((Dt_t*)(xlp->hdx))->searchf))((xlp->hdx),(void*)(vp),0010000); +UNSUPPORTED("7f4abg2jsf465jjlnp95d9sk6"); // free(vp); +UNSUPPORTED("5hklxkrkvjgi37kkm6v9xajwc"); // freed++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("bifp41eoqo8l51crrab087z21"); // assert(size==freed); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3wrxwwd3y5ts0ekr32o8vhuvv +// static int xlspdxload(XLabels_t * xlp) +public static Object xlspdxload(Object... arg) { +UNSUPPORTED("87f4jxirnq7mx28zcremgaezf"); // static int xlspdxload(XLabels_t * xlp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eoerd3bf05xvvfj7aisz4slcs"); // HDict_t *op=0; +UNSUPPORTED("2ub4kt9g1hlj02ucnbi3as0ps"); // for (op = (*(((Dt_t*)(xlp->hdx))->searchf))((xlp->hdx),(void*)(0),0000200); op; op = (*(((Dt_t*)(xlp->hdx))->searchf))((xlp->hdx),(void*)(op),0000010)) { +UNSUPPORTED("cklsugu3v9hzi5pvl4dqcq7gf"); // /* tree rectangle data node lvl */ +UNSUPPORTED("b49ahflq7xke1g6eoxv0jw2tg"); // RTreeInsert(xlp->spdx, &op->d.rect, op->d.data, &xlp->spdx->root, 0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6d3fqrllm55toeo3wscwvv4ty +// static int xlinitialize(XLabels_t * xlp) +public static Object xlinitialize(Object... arg) { +UNSUPPORTED("732719k3woyiirridxkwkzxoo"); // static int xlinitialize(XLabels_t * xlp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4s45njph0l3mj07r60fuv2k3y"); // int r=0; +UNSUPPORTED("ez5mifho06mx5h3ncausptuzp"); // if ((r = xlhdxload(xlp)) < 0) +UNSUPPORTED("bt8wt6mqb316pv7egiekltb74"); // return r; +UNSUPPORTED("f2rrvhf7kqopq3w2vk3a66gqq"); // if ((r = xlspdxload(xlp)) < 0) +UNSUPPORTED("bt8wt6mqb316pv7egiekltb74"); // return r; +UNSUPPORTED("5stn8d1urg4jlet1hh0it6cnh"); // xlhdxunload(xlp); +UNSUPPORTED("bevdavatk2tsg3i7wugaqk0ta"); // return dtclose(xlp->hdx); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 brqgbskh3z4ah8infjompibvu +// int placeLabels(object_t * objs, int n_objs, xlabel_t * lbls, int n_lbls, label_params_t * params) +public static Object placeLabels(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("ec68cktfb4yv5ddz6c3prlrlz"); // placeLabels(object_t * objs, int n_objs, +UNSUPPORTED("5ldon0a05p5rangda7ft97vpf"); // xlabel_t * lbls, int n_lbls, label_params_t * params) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ch9su7givqwexp175hzif4dga"); // int r, i; +UNSUPPORTED("ac14qcqjljksbh1ulqbhsnrnb"); // BestPos_t bp; +UNSUPPORTED("as2y5lue6yv2statqso3a65vn"); // XLabels_t *xlp = xlnew(objs, n_objs, lbls, n_lbls, params); +UNSUPPORTED("dm5w2lmehr2rv6b2yi2v83i3g"); // if ((r = xlinitialize(xlp)) < 0) +UNSUPPORTED("bt8wt6mqb316pv7egiekltb74"); // return r; +UNSUPPORTED("8izrf1sxed8y2dmpz5ju27b6h"); // /* Place xlabel_t* lp near lp->obj so that the rectangle whose lower-left +UNSUPPORTED("dy7wplw95swrlkv1ne5udmbk4"); // * corner is lp->pos, and size is lp->sz does not intersect any object +UNSUPPORTED("8x5vdo798lnffr7xy14gs8x50"); // * in objs (by convention, an object consisting of a single point +UNSUPPORTED("9gxb8rlhafdv5g89oagw3add7"); // * intersects nothing) nor any other label, if possible. On input, +UNSUPPORTED("4w8t3nbzjsvab8g9jpodkwd8m"); // * lp->set is 0. +UNSUPPORTED("e715w78m2sgdlih8srgyerdiv"); // * +UNSUPPORTED("z4vevdpoynmn19xji08qzk3g"); // * On output, any label with a position should have this stored in +UNSUPPORTED("4v5b9m6g4uktmdpnsll0erj7z"); // * lp->pos and have lp->set non-zero. +UNSUPPORTED("e715w78m2sgdlih8srgyerdiv"); // * +UNSUPPORTED("3lkc8tv6lv7r7ufa9evyti04j"); // * If params->force is true, all labels must be positioned, even if +UNSUPPORTED("4lybka8gtaqneks34nylp952d"); // * overlaps are necessary. +UNSUPPORTED("e715w78m2sgdlih8srgyerdiv"); // * +UNSUPPORTED("5frb7jkllwey3jie0brk7sexw"); // * Return 0 if all labels could be placed without overlap; +UNSUPPORTED("b8t343yuuec8v0l5c25l9lpi9"); // * non-zero otherwise. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("dfy198s0balu93ez4di7muow9"); // r = 0; +UNSUPPORTED("bznihqrwh4167vo2mn4du53da"); // for (i = 0; i < n_objs; i++) { +UNSUPPORTED("1kray7p45i859cpqe20uu98y6"); // if (objs[i].lbl == 0) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("572cl1ylp2iqus4kjdigoqut3"); // bp = xladjust(xlp, &objs[i]); +UNSUPPORTED("dr8tnm5vyr6b4kb5le39f33s9"); // if (bp.n == 0) { +UNSUPPORTED("1wsz4ptoxskyulgu7czf059sf"); // objs[i].lbl->set = 1; +UNSUPPORTED("crlmrxaiu6t07d3ztas7pwfoi"); // } else if(bp.area == 0) { +UNSUPPORTED("djsgfzak14js9ukvgmoqnkm8v"); // objs[i].lbl->pos.x = bp.pos.x; +UNSUPPORTED("5s2aq4djc0l3xyilkowd7ri1r"); // objs[i].lbl->pos.y = bp.pos.y; +UNSUPPORTED("1wsz4ptoxskyulgu7czf059sf"); // objs[i].lbl->set = 1; +UNSUPPORTED("19st2bzrcserz5r5280g8iwb8"); // } else if (params->force == 1) { +UNSUPPORTED("djsgfzak14js9ukvgmoqnkm8v"); // objs[i].lbl->pos.x = bp.pos.x; +UNSUPPORTED("5s2aq4djc0l3xyilkowd7ri1r"); // objs[i].lbl->pos.y = bp.pos.y; +UNSUPPORTED("1wsz4ptoxskyulgu7czf059sf"); // objs[i].lbl->set = 1; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("cqgdtl138trieiu5el4upwpg0"); // r = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6oy0ry9luo305no4iuqqxcdjr"); // xlfree(xlp); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/ortho/fPQ__c.java plantuml-8039/src/gen/lib/ortho/fPQ__c.java --- plantuml-8024/src/gen/lib/ortho/fPQ__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/ortho/fPQ__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,381 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.ortho; +import static smetana.core.Macro.UNSUPPORTED; + +public class fPQ__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 75wd380yhtm1uol93mb8l3kmn +// static snode** pq + + +//1 8m7y12v9uhpfwb9agee4dvvd7 +// static int PQcnt + + +//1 37df10if13d1k3ddj140oe9ge +// static snode guard + + +//1 3oj5aj3gc05focs9czbzub5sm +// static int PQsize + + + + +//3 6d62kgw3p14u24ayu546j4r82 +// void PQgen(int sz) +public static Object PQgen(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("mv0qxfr5hxyhgu3l3m6o47cy"); // PQgen(int sz) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("do3zjq97xzdk5dhii167i60qh"); // if (!pq) { +UNSUPPORTED("74u3ayhkzemd24zmbuv7wpym8"); // pq = (snode**)zmalloc((sz+1)*sizeof(snode*)); +UNSUPPORTED("dezukzubu9nms24lhvphuawxq"); // pq[0] = &guard; +UNSUPPORTED("593hemyh9nreh89upeivll5qx"); // PQsize = sz; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("akljrpu8bej9lq4rmsktz8u2e"); // PQcnt = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 af70676bgfacdrx355e3fm16w +// void PQfree(void) +public static Object PQfree(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("a722afmxpzwjdmlojj7lqbxaj"); // PQfree(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("efn0baufwv42rir223e1awlhs"); // free (pq); +UNSUPPORTED("4af6njplv9g18xpb4kh6834b2"); // pq = NULL; +UNSUPPORTED("akljrpu8bej9lq4rmsktz8u2e"); // PQcnt = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9gva9zqwj67hmfsbnnvelzt5i +// void PQinit(void) +public static Object PQinit(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("3p0cdanvp4f13d8omi42lvjl1"); // PQinit(void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("akljrpu8bej9lq4rmsktz8u2e"); // PQcnt = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 52wib9gann39qwvmctcw6wxdi +// void PQcheck (void) +public static Object PQcheck(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("ais4fu8ea90z9l9gc75rtolae"); // PQcheck (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("327a0i7b6rqjqj8wdl0h29mnc"); // int i; +UNSUPPORTED("ajjv0cjc9s0osbkjlg35z41k"); // for (i = 1; i <= PQcnt; i++) { +UNSUPPORTED("6mg3o7pwh14yf5rgrii3b7la2"); // if ((pq[i])->n_idx != i) { +UNSUPPORTED("2kc7vwb5ge1ym5i0vk3t2ku3u"); // assert (0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2lbfs6ynzlunyatr57r41uvz7 +// void PQupheap(int k) +public static Object PQupheap(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("5hhoge8azwixhuw1r6f1ae6d"); // PQupheap(int k) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7e1sq1127wt16hr7o0andcwob"); // snode* x = pq[k]; +UNSUPPORTED("7bfu0p9xmzkty10xv4n4l5cqs"); // int v = x->n_val; +UNSUPPORTED("1j1bbq23z0qzohezignztjo66"); // int next = k/2; +UNSUPPORTED("ae5pat4mp4l6k25pvk8saz8c7"); // snode* n; +UNSUPPORTED("70492o1szwz9au93c3is2goa"); // while ((n = pq[next])->n_val < v) { +UNSUPPORTED("4i53ezzk69bsmpugd2h8bo35"); // pq[k] = n; +UNSUPPORTED("iolnc8pg22pbme3zbdim1eqy"); // (n)->n_idx = k; +UNSUPPORTED("8fpdpgwovt0k58t5u167v63is"); // k = next; +UNSUPPORTED("eqtnhenyor3dwsa6on9crthdd"); // next /= 2; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("1lxwoekai0i8v3rg0vrg6ahmx"); // pq[k] = x; +UNSUPPORTED("7ss0wudteh17yswf0ihopig7z"); // (x)->n_idx = k; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dpsy3q4qmuyf70antkm0irwus +// int PQ_insert(snode* np) +public static Object PQ_insert(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("5eeaexrm7pigm7t9d73aqaaht"); // PQ_insert(snode* np) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7d2tojz8u1bqjo7uhe2jqz8ks"); // if (PQcnt == PQsize) { +UNSUPPORTED("1fnwaiyzr5fvurskinr46kklp"); // agerr (AGERR, "Heap overflow\n"); +UNSUPPORTED("bur99ge8gwr5q0vyjwjyk8z3b"); // return (1); +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("d8u0aq1g7mc9qslpfsw3o3ezz"); // PQcnt++; +UNSUPPORTED("8f54fbv0205j58hpu3uq3i2ow"); // pq[PQcnt] = np; +UNSUPPORTED("f4e1yfpgiak6lx72g6gk4nyi0"); // PQupheap (PQcnt); +UNSUPPORTED("a7h72yd6f22ezx8o0izfoyyzl"); // PQcheck(); +UNSUPPORTED("bid671dovx1rdiquw5vm3fttj"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ah2uksf5mfgu7r25rg6poansh +// void PQdownheap (int k) +public static Object PQdownheap(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("5jo6sukhc9upf5qv4eukh8kop"); // PQdownheap (int k) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dd3235mkocimg2v70ln8ixz3k"); // snode* x = pq[k]; +UNSUPPORTED("e0wd4mp2k58ml2bf01e6mtxfc"); // int v = (x)->n_val; +UNSUPPORTED("b9pl90rstqz0jhnw3ttda3kx5"); // int lim = PQcnt/2; +UNSUPPORTED("917ffzmzxsh6kw3txaqow8dv0"); // snode* n; +UNSUPPORTED("zrgst5t0lhf2kxrym9g7gvsn"); // int j; +UNSUPPORTED("7bbx1rekibyh3hyxh24lprwwk"); // while (k <= lim) { +UNSUPPORTED("disb3eax2r4wgge9im541y9hv"); // j = k+k; +UNSUPPORTED("e4w7jx4o3i4gav8ujef2bapbn"); // n = pq[j]; +UNSUPPORTED("4yles8zr6ozg2g0df2jefc1l2"); // if (j < PQcnt) { +UNSUPPORTED("77cupwd0hd3zp8he6wd4tm6nx"); // if ((n)->n_val < (pq[j+1])->n_val) { +UNSUPPORTED("1jeqo15tfc6vbefwf85bniwfn"); // j++; +UNSUPPORTED("1sglut5nbxcoto9tvzxs3eixh"); // n = pq[j]; +UNSUPPORTED("dquo3qofk56ds5xl95lhvcthf"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3hshbuqs95898wh95e2fdh5uz"); // if (v >= (n)->n_val) break; +UNSUPPORTED("4i53ezzk69bsmpugd2h8bo35"); // pq[k] = n; +UNSUPPORTED("iolnc8pg22pbme3zbdim1eqy"); // (n)->n_idx = k; +UNSUPPORTED("8lpwfkimmel90007dlp5eqpbh"); // k = j; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("1lxwoekai0i8v3rg0vrg6ahmx"); // pq[k] = x; +UNSUPPORTED("7ss0wudteh17yswf0ihopig7z"); // (x)->n_idx = k; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 asdsi15xhxgfyxlqv3bbx7vzv +// snode* PQremove (void) +public static Object PQremove(Object... arg) { +UNSUPPORTED("7qyamsdkopruu23xaccl0bcd2"); // snode* +UNSUPPORTED("7j2q3l5jxp3w7ags9kr29frzn"); // PQremove (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5cu5gkv7lbctrvkomvhsw0j1o"); // snode* n; +UNSUPPORTED("6078p2rnfog3yn8o3qzs373e2"); // if (PQcnt) { +UNSUPPORTED("6a46qhtz2fbsmmd370t7fv44f"); // n = pq[1]; +UNSUPPORTED("8s70ivnxixrmkvd1lnojuxkfn"); // pq[1] = pq[PQcnt]; +UNSUPPORTED("7o53ly4ejd7hkmf5tx564eb0x"); // PQcnt--; +UNSUPPORTED("4e6w4ct22nty5htys3c0346u1"); // if (PQcnt) PQdownheap (1); +UNSUPPORTED("26oeamvax1w8xlf1fp3w3uwbz"); // PQcheck(); +UNSUPPORTED("69hc24ic55i66g8tf2ne42327"); // return n; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("7lrkjjj5lce2uf86c1y9o9yoa"); // else return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dvks137inq1ybpgc3p9il60e +// void PQupdate (snode* n, int d) +public static Object PQupdate(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("b1fi3xtkc0mzuq3pimbrumdj3"); // PQupdate (snode* n, int d) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("byrcaa9kitj1mfe0we79iao5b"); // (n)->n_val = d; +UNSUPPORTED("az1v3dey64e8mmt571cqcmw5b"); // PQupheap (n->n_idx); +UNSUPPORTED("a7h72yd6f22ezx8o0izfoyyzl"); // PQcheck(); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9u2i85oe7eva5iz0ousp6k9ze +// void PQprint (void) +public static Object PQprint(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("837kozmovwrdb83nqf648v9hy"); // PQprint (void) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("29u9nk1nrupcw2j8c7qe5glz7"); // int i; +UNSUPPORTED("ae5pat4mp4l6k25pvk8saz8c7"); // snode* n; +UNSUPPORTED("f3w7y9hew7fq41kdfxhc1bni7"); // fprintf (stderr, "Q: "); +UNSUPPORTED("ajjv0cjc9s0osbkjlg35z41k"); // for (i = 1; i <= PQcnt; i++) { +UNSUPPORTED("8ma2z0vb3r4euoklbfwtvqixt"); // n = pq[i]; +UNSUPPORTED("5vx4bf24j9k0k7d5db0nzqqho"); // fprintf (stderr, "%d(%d:%d) ", +UNSUPPORTED("3cv4xg03w7tifmwxdgb02cs87"); // n->index, (n)->n_idx, (n)->n_val); +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("axonnz64pfb53bfq61adrgxoo"); // fprintf (stderr, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/ortho/maze__c.java plantuml-8039/src/gen/lib/ortho/maze__c.java --- plantuml-8024/src/gen/lib/ortho/maze__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/ortho/maze__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,646 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.ortho; +import static smetana.core.Macro.UNSUPPORTED; + +public class maze__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 7uu4dvqjnvvhc0gokmgcs954k +// extern int odb_flags + + +//1 4322iycvkv4hmlad3noqhgel4 +// char* pre = + + +//1 9ozsa5zdtrgxx0s86gc0suyn5 +// char* post = + + + + +//3 9g9xjc2r9n65rkl84jjslos81 +// static void psdump (cell* gcells, int n_gcells, boxf BB, boxf* rects, int nrect) +public static Object psdump(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("1zp0gx8erzkytols6s6anek61"); // psdump (cell* gcells, int n_gcells, boxf BB, boxf* rects, int nrect) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("767492ltpvkpzowhpej4wil2b"); // box absbb; +UNSUPPORTED("60497m34eckxdjihuxvqkxsvu"); // absbb.LL.y = absbb.LL.x = 10; +UNSUPPORTED("axwbta36ottbp5ug72pnkfza8"); // absbb.UR.x = absbb.LL.x + BB.UR.x - BB.LL.x; +UNSUPPORTED("5jojnuuk1njt9p0dm3aklyf4c"); // absbb.UR.y = absbb.LL.y + BB.UR.y - BB.LL.y; +UNSUPPORTED("3n4k59tplss0b8rj6cz8wdq4q"); // fputs (pre, stderr); +UNSUPPORTED("2c7r664rf3q2nqvcwm076ljgp"); // fprintf (stderr, "%%%%Page: 1 1\n%%%%PageBoundingBox: %d %d %d %d\n", +UNSUPPORTED("gvo0wqx49546ze4wrba9h2ir"); // absbb.LL.x, absbb.LL.y, absbb.UR.x, absbb.UR.y); +UNSUPPORTED("9z5vt5st7kmlyqdktlquzkygw"); // fprintf (stderr, "%f %f translate\n", 10-BB.LL.x, 10-BB.LL.y); +UNSUPPORTED("7v0j1p03zgrz2n8e2sfmouivd"); // fputs ("0 0 1 setrgbcolor\n", stderr); +UNSUPPORTED("4elp64ghdngy60otlqydxcc95"); // for (i = 0; i < n_gcells; i++) { +UNSUPPORTED("da5sc56v5aj699nvth2tzez6e"); // bb = gcells[i].bb; +UNSUPPORTED("1eywmkz80bfnyb49ljgkxcp4x"); // fprintf (stderr, "%f %f %f %f node\n", bb.LL.x, bb.LL.y, bb.UR.x, bb.UR.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("epywyt7h8b5f1fzegiuykr1r8"); // fputs ("0 0 0 setrgbcolor\n", stderr); +UNSUPPORTED("cymbkb9p93tw0m4uu2kkj35a0"); // for (i = 0; i < nrect; i++) { +UNSUPPORTED("6kbayg7dph0ok4aw3x13wjkdp"); // bb = rects[i]; +UNSUPPORTED("6smdn9wdodygfk1sxfjl9q1rt"); // fprintf (stderr, "%f %f %f %f cell\n", bb.LL.x, bb.LL.y, bb.UR.x, bb.UR.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2to6ts1da6hiyr62cjf8n2rmj"); // fputs ("1 0 0 setrgbcolor\n", stderr); +UNSUPPORTED("35fqc70o5xuuv6qdrmnv7z6w5"); // fprintf (stderr, "%f %f %f %f cell\n", BB.LL.x, BB.LL.y, BB.UR.x, BB.UR.y); +UNSUPPORTED("e2cdlwdcpu3n7z9jwqa3s87mz"); // fputs (post, stderr); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5uuci5ymtq0q51j1getlj2uzd +// static int vcmpid(Dt_t* d, pointf* key1, pointf* key2, Dtdisc_t* disc) +public static Object vcmpid(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("3u88ycwd14efwsvwyy7780jbr"); // vcmpid(Dt_t* d, pointf* key1, pointf* key2, Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bswiekdugo71hxqryprabuxdm"); // if (key1->x > key2->x) return 1; +UNSUPPORTED("3xqpzrzrofjfgy263mutuwbhr"); // else if (key1->x < key2->x) return -1; +UNSUPPORTED("285kfkajed5kbwzt1bg891c12"); // else if (key1->y > key2->y) return 1; +UNSUPPORTED("3inoestvznj3b5va767iadnzw"); // else if (key1->y < key2->y) return -1; +UNSUPPORTED("7lrkjjj5lce2uf86c1y9o9yoa"); // else return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cl7ra88xdu22d00wqr6z5p1p3 +// static int hcmpid(Dt_t* d, pointf* key1, pointf* key2, Dtdisc_t* disc) +public static Object hcmpid(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("3xjitmu9hfwuxfgr0qi1r04qg"); // hcmpid(Dt_t* d, pointf* key1, pointf* key2, Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dlpx729kklw9nbmmywrkawtg1"); // if (key1->y > key2->y) return 1; +UNSUPPORTED("3inoestvznj3b5va767iadnzw"); // else if (key1->y < key2->y) return -1; +UNSUPPORTED("axczvcvlh063j4t14thbuiwmx"); // else if (key1->x > key2->x) return 1; +UNSUPPORTED("3xqpzrzrofjfgy263mutuwbhr"); // else if (key1->x < key2->x) return -1; +UNSUPPORTED("7lrkjjj5lce2uf86c1y9o9yoa"); // else return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 65ld602fx2uotf16tkazo4kf3 +// static Dtdisc_t vdictDisc = + + +//1 bhb4uq3a9aat5tmrtebsgxsza +// static Dtdisc_t hdictDisc = + + + + +//3 p4176ft97w736bpghxhghz3d +// static void updateWt (cell* cp, sedge* ep, int sz) +public static Object updateWt(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("7q4w394vp6o5d2mqannru219n"); // updateWt (cell* cp, sedge* ep, int sz) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dfo4tnm2f8dlo52sahedzj5v9"); // ep->cnt++; +UNSUPPORTED("32vrx8u0i9lp4f9mfpmaun71f"); // if (ep->cnt > sz) { +UNSUPPORTED("e1mqs9lo2iip945vyvas2qe3z"); // ep->cnt = 0; +UNSUPPORTED("2a244flkhx1rjpipbgdokjx1k"); // ep->weight += 16384; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 blhjst7f42nyvd6sy299gtm3d +// void updateWts (sgraph* g, cell* cp, sedge* ep) +public static Object updateWts(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("bdbwgs1ph76plmvxczfpeo0fd"); // updateWts (sgraph* g, cell* cp, sedge* ep) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("5us6bymu4crkiqypwh57332hj"); // sedge* e; +UNSUPPORTED("dkoxg0eyedifjtrm4x8jlyjls"); // int isBend = ((g->nodes + ep->v1)->isVert != (g->nodes + ep->v2)->isVert); +UNSUPPORTED("d0b6n8bhbzbusomlpcp9nczv7"); // int hsz = (((cp->bb.UR.y - cp->bb.LL.y)-3)/2); +UNSUPPORTED("48m2yizmm8d4lfvszmls2szq1"); // int vsz = (((cp->bb.UR.x - cp->bb.LL.x)-3)/2); +UNSUPPORTED("5ecgup35njvagofmc9zaxes1c"); // int minsz = MIN(hsz, vsz); +UNSUPPORTED("dfamh7ue082plphhry3xdnm7o"); // /* Bend edges are added first */ +UNSUPPORTED("g33yx85p8wg91aap4znjiva4"); // for (i = 0; i < cp->nedges; i++) { +UNSUPPORTED("3v1e6x1tokguyh1cyk9ny2j26"); // e = cp->edges[i]; +UNSUPPORTED("boxo665ud04gpicwsnvf3dxep"); // if (!((g->nodes + e->v1)->isVert != (g->nodes + e->v2)->isVert)) break; +UNSUPPORTED("a89fyn41tp3jnm2osk1wr48ke"); // updateWt (cp, e, minsz); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } +UNSUPPORTED("dlcr5m1q7b4en52gyl8obhj15"); // for (; i < cp->nedges; i++) { +UNSUPPORTED("3v1e6x1tokguyh1cyk9ny2j26"); // e = cp->edges[i]; +UNSUPPORTED("2l9n6hxqrnrvrs2lgg2kxpekp"); // if (isBend || (e == ep)) updateWt (cp, e, (((g->nodes + e->v1)->isVert)?hsz:vsz)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9kapnv38d6faiuxqp4bzksdz1 +// static void markSmall (cell* cp, sgraph* g) +public static Object markSmall(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("3tdwg2zpiin5w6zoim60p04th"); // markSmall (cell* cp, sgraph* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("b2wz81fy8zanwrmoc1n7arr13"); // snode* onp; +UNSUPPORTED("50n2otdf7w8whs0szmjkxenig"); // cell* ocp; +UNSUPPORTED("c4eu95u0g7in27e9oxw15rph0"); // if (((((cp->bb.UR.y-cp->bb.LL.y)-3)/2) < 2)) { +UNSUPPORTED("8m46r4idk2cejwmyejh6jinky"); // for (i = 0; i < cp->nsides; i++) { +UNSUPPORTED("biwl8z6o1ijoz32js8fzwvocb"); // onp = cp->sides[i]; +UNSUPPORTED("1aq3dyirdqeh65yempl0l0gnm"); // if (!onp->isVert) continue; +UNSUPPORTED("1dki697od540pxi3vq3sce42l"); // if (onp->cells[0] == cp) { /* onp on the right of cp */ +UNSUPPORTED("64d5wc2sqfuiw23vs07o4l6s7"); // ocp = onp->cells[1]; +UNSUPPORTED("eu4j3gbjan4f0ttcs7nf6djbr"); // ocp->flags |= 8; +UNSUPPORTED("9rf28jnwy28nfeeku68ed10xj"); // while ((onp = ocp->sides[M_RIGHT]) && !(onp->cells[1]->flags & 1)) { +UNSUPPORTED("1akhs24p47qfish65mtm0ukab"); // ocp = onp->cells[1]; +UNSUPPORTED("4u6cjsu9q863vx1aqgb0yihbz"); // ocp->flags |= 8; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("2xswp7wv8mz6jgl7wgro8x4bh"); // else { /* onp on the left of cp */ +UNSUPPORTED("788pevah9rf0z6mjd3asogvnj"); // ocp = onp->cells[0]; +UNSUPPORTED("eu4j3gbjan4f0ttcs7nf6djbr"); // ocp->flags |= 8; +UNSUPPORTED("1y5bqnhg7i4c1fturqzrm83q4"); // while ((onp = ocp->sides[M_LEFT]) && !(onp->cells[0]->flags & 1)) { +UNSUPPORTED("du48mhkbj3xddektvxzoot6gk"); // ocp = onp->cells[0]; +UNSUPPORTED("4u6cjsu9q863vx1aqgb0yihbz"); // ocp->flags |= 8; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("916l539e3joqg6fu1g6o6o6m1"); // if (((((cp->bb.UR.x-cp->bb.LL.x)-3)/2) < 2)) { +UNSUPPORTED("8m46r4idk2cejwmyejh6jinky"); // for (i = 0; i < cp->nsides; i++) { +UNSUPPORTED("biwl8z6o1ijoz32js8fzwvocb"); // onp = cp->sides[i]; +UNSUPPORTED("eamm9cw0ocdt1wrb6xdeisy4c"); // if (onp->isVert) continue; +UNSUPPORTED("7w1e0iugb1y82w3gf5mvxqd6n"); // if (onp->cells[0] == cp) { /* onp on the top of cp */ +UNSUPPORTED("64d5wc2sqfuiw23vs07o4l6s7"); // ocp = onp->cells[1]; +UNSUPPORTED("auy2yjaypfi86526pdiw6nxyk"); // ocp->flags |= 16; +UNSUPPORTED("d88x50zssjd4zw4m00dzwnrig"); // while ((onp = ocp->sides[M_TOP]) && !(onp->cells[1]->flags & 1)) { +UNSUPPORTED("1akhs24p47qfish65mtm0ukab"); // ocp = onp->cells[1]; +UNSUPPORTED("mf674e2ernvx88oxuj2jvr0z"); // ocp->flags |= 16; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("am0piqqao9stqcscpvwx2n1so"); // else { /* onp on the bottom of cp */ +UNSUPPORTED("788pevah9rf0z6mjd3asogvnj"); // ocp = onp->cells[0]; +UNSUPPORTED("auy2yjaypfi86526pdiw6nxyk"); // ocp->flags |= 16; +UNSUPPORTED("mi3y18vi9ndcg7qz68bvpahf"); // while ((onp = ocp->sides[M_BOTTOM]) && !(onp->cells[0]->flags & 1)) { +UNSUPPORTED("du48mhkbj3xddektvxzoot6gk"); // ocp = onp->cells[0]; +UNSUPPORTED("mf674e2ernvx88oxuj2jvr0z"); // ocp->flags |= 16; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3l3sbpuetdu8ntcpo8pz13k3e +// static void createSEdges (cell* cp, sgraph* g) +public static Object createSEdges(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("eiufnofet665j4i0xks3yggav"); // createSEdges (cell* cp, sgraph* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("axfpgrsg8gskangc3qgtq71hz"); // boxf bb = cp->bb; +UNSUPPORTED("amp31z1m0vbq1q8zefv5rn3w5"); // double hwt = 1*(bb.UR.x-bb.LL.x); +UNSUPPORTED("117vv77kpq1u7vcvnavhc82o9"); // double vwt = 1*(bb.UR.y-bb.LL.y); +UNSUPPORTED("3yg7jb3f3z3wrxh6itkf0d5gf"); // double wt = (hwt + vwt)/2.0 + 500; +UNSUPPORTED("f3jme7t4b06y2xf3tgf76yger"); // /* We automatically make small channels have high cost to guide routes to +UNSUPPORTED("516jhn8ke0rkom44i48cqziuj"); // * more spacious channels. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("cvl5o3802l0vsczlmqn621y5g"); // if (((((bb.UR.y-bb.LL.y)-3)/2) < 2) && !(cp->flags & 8)) { +UNSUPPORTED("2ork5nyyvrggj5vavnox5dnik"); // hwt = 16384; +UNSUPPORTED("52900dmw3bmqbe886hkd7f0wt"); // wt = 16384; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3mb8guxy615hn4v2qy5ypehr3"); // if (((((bb.UR.x-bb.LL.x)-3)/2) < 2) && !(cp->flags & 16)) { +UNSUPPORTED("aik6n8xli7v6xvo8u3rvr7ii0"); // vwt = 16384; +UNSUPPORTED("52900dmw3bmqbe886hkd7f0wt"); // wt = 16384; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1r05jnpuv96fwsxl0u1qjjlps"); // if (cp->sides[M_LEFT] && cp->sides[M_TOP]) +UNSUPPORTED("4kbjer1m4fqs6a3a264gga6n8"); // cp->edges[cp->nedges++] = createSEdge (g, cp->sides[M_LEFT], cp->sides[M_TOP], wt); +UNSUPPORTED("aedmthruftfexyf7cov7u4vvl"); // if (cp->sides[M_TOP] && cp->sides[M_RIGHT]) +UNSUPPORTED("5hpsphuhuvv1brp42nrttvb31"); // cp->edges[cp->nedges++] = createSEdge (g, cp->sides[M_TOP], cp->sides[M_RIGHT], wt); +UNSUPPORTED("84yyv6mzbxtjgbfa28m4avh6r"); // if (cp->sides[M_LEFT] && cp->sides[M_BOTTOM]) +UNSUPPORTED("tyvf713ih73547d7pf5snxf"); // cp->edges[cp->nedges++] = createSEdge (g, cp->sides[M_LEFT], cp->sides[M_BOTTOM], wt); +UNSUPPORTED("bnzsrfjru8dtlqidqs86hye5o"); // if (cp->sides[M_BOTTOM] && cp->sides[M_RIGHT]) +UNSUPPORTED("69cj63j54kgemat46kq68yrsz"); // cp->edges[cp->nedges++] = createSEdge (g, cp->sides[M_BOTTOM], cp->sides[M_RIGHT], wt); +UNSUPPORTED("2sny7e4r4ms0rpg6bxgod0y6w"); // if (cp->sides[M_TOP] && cp->sides[M_BOTTOM]) +UNSUPPORTED("eeawpv5dnk3bza402e1fao0sa"); // cp->edges[cp->nedges++] = createSEdge (g, cp->sides[M_TOP], cp->sides[M_BOTTOM], vwt); +UNSUPPORTED("2suc8k9vfuvh4m53sqo1etd6w"); // if (cp->sides[M_LEFT] && cp->sides[M_RIGHT]) +UNSUPPORTED("9obc9lnx233uhbnedl4zx9ph0"); // cp->edges[cp->nedges++] = createSEdge (g, cp->sides[M_LEFT], cp->sides[M_RIGHT], hwt); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 758etn7f0xldup69utj5juffr +// static snode* findSVert (sgraph* g, Dt_t* cdt, pointf p, snodeitem* ditems, boolean isVert) +public static Object findSVert(Object... arg) { +UNSUPPORTED("1mqfssg5cquehb5bdk2189gy2"); // static snode* +UNSUPPORTED("cga4obs9816altnwz6esmme8m"); // findSVert (sgraph* g, Dt_t* cdt, pointf p, snodeitem* ditems, boolean isVert) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("10plv37z3rcnamkp6u1f3fbvy"); // snodeitem* n = (*(((Dt_t*)(cdt))->searchf))((cdt),(void*)(&p),0001000); +UNSUPPORTED("aaebo2bb05xyrm6bioykv7j55"); // if (!n) { +UNSUPPORTED("2mr1j8jv499c17v211yrq0zid"); // snode* np = createSNode (g); +UNSUPPORTED("49x5opmvb6qvpbdzvvwx81n7o"); // assert(ditems); +UNSUPPORTED("9imn5k9pmajz70owgy1yst564"); // n = ditems + np->index; +UNSUPPORTED("1whmelwelwpr8hmh739a4rx4e"); // n->p = p; +UNSUPPORTED("8weo3ve11u2juhqncx820pb23"); // n->np = np; +UNSUPPORTED("9js6alb3fxl3uww30tpdie1cc"); // np->isVert = isVert; +UNSUPPORTED("lfditfpqzerpfh82n4mjf4e9"); // (*(((Dt_t*)(cdt))->searchf))((cdt),(void*)(n),0000001); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8tkxsnqf69mnlas38600doi66"); // return n->np; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ju0zs4s4k058zbq8y43apnp2 +// static void chkSgraph (sgraph* g) +public static Object chkSgraph(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("8ywrcod5zukths1uhqhrx6vxw"); // chkSgraph (sgraph* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("327a0i7b6rqjqj8wdl0h29mnc"); // int i; +UNSUPPORTED("23fb0v6g2dlefe4px8tzi8zra"); // snode* np; +UNSUPPORTED("3l28r11fb44myi7htm1om4cnr"); // for (i = 0; i < g->nnodes; i++) { +UNSUPPORTED("8gpm8loz5nt1uxatp2fd3oe6s"); // np = g->nodes+i; +UNSUPPORTED("43gcbpnat2bgm3ejrf1vmy4u"); // if (!np->cells[0]) fprintf (stderr, "failed at node %d[0]\n", i); +UNSUPPORTED("4oasbub46ddvzyljkj816mvby"); // assert (np->cells[0]); +UNSUPPORTED("5cvdi2wx76ojk7uchdcrjcb6i"); // if (!np->cells[1]) fprintf (stderr, "failed at node %d[1]\n", i); +UNSUPPORTED("8qge8qp4tr5copb51yv5xxzr3"); // assert (np->cells[1]); +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 85o629p94h5u46pgb4a0x1fto +// static sgraph* mkMazeGraph (maze* mp, boxf bb) +public static Object mkMazeGraph(Object... arg) { +UNSUPPORTED("4a0ckv6kz4gak54lxsr6w9ioy"); // static sgraph* +UNSUPPORTED("3409ksucyvqu8i3qex5l9ogv1"); // mkMazeGraph (maze* mp, boxf bb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0h9n3v7xo6m86qr2s9jd4nmz"); // int nsides, i, ncnt, maxdeg; +UNSUPPORTED("8nt6vrkyw6r9ib7riac3cwzd1"); // int bound = 4*mp->ncells; +UNSUPPORTED("8j75p52hdfny88ny2loms6p80"); // sgraph* g = createSGraph (bound + 2); +UNSUPPORTED("8p0cao2lz1e6ihnom1zrti2xq"); // Dt_t* vdict = dtopen(&vdictDisc,Dtoset); +UNSUPPORTED("bpe1gv2u25ttmjwienjfwsyzd"); // Dt_t* hdict = dtopen(&hdictDisc,Dtoset); +UNSUPPORTED("3lxbgi6k04dub0sshm1mawntn"); // snodeitem* ditems = (snodeitem*)zmalloc((bound)*sizeof(snodeitem)); +UNSUPPORTED("83j9x6relm30wmuipbei491st"); // snode** sides; +UNSUPPORTED("9w8bspidla7axh1uz7uzys18h"); // /* For each cell, create if necessary and attach a node in search +UNSUPPORTED("e6kuh48kval5kcakfxzd1z69i"); // * corresponding to each internal face. The node also gets +UNSUPPORTED("cyfjarx488wrc88fgx2fnek70"); // * a pointer to the cell. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("8wxcwqqwmrfzljscdhy3971us"); // sides = (snode**)zmalloc((4*mp->ncells)*sizeof(snode*)); +UNSUPPORTED("buvjn27k5tz2673nmlkf9ohz5"); // ncnt = 0; +UNSUPPORTED("cc6zk9wsty15bcay61nb68jos"); // for (i = 0; i < mp->ncells; i++) { +UNSUPPORTED("2noex6z427j2b0xavovcqkxja"); // cell* cp = mp->cells+i; +UNSUPPORTED("f3gck9cxfm9jzl1864uz2y79q"); // snode* np; +UNSUPPORTED("7nnzkzxddbza1ae9ba66yaath"); // pointf pt; +UNSUPPORTED("9l3tga3eg9n944lh5fs2rkb4h"); // cp->nsides = 4; +UNSUPPORTED("9dfgiofr0fzw0r6lz4qrt9zyw"); // cp->sides = sides + 4*i; +UNSUPPORTED("bfx5d25fi7joih74q1wr7rf4f"); // if (cp->bb.UR.x < bb.UR.x) { +UNSUPPORTED("5jm345o0dxsgpqu2h67gvkukd"); // pt.x = cp->bb.UR.x; +UNSUPPORTED("d899yxmcyrxgknu569q83j56y"); // pt.y = cp->bb.LL.y; +UNSUPPORTED("al78l565joceq8wykiomytl3v"); // np = findSVert (g, vdict, pt, ditems, NOT(0)); +UNSUPPORTED("dyj0n8pksb6qap9nu5jmfpj9w"); // np->cells[0] = cp; +UNSUPPORTED("4129rynmdsxu71kxazy1hyycy"); // cp->sides[M_RIGHT] = np; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dequu7puz1aj8ss3oni3mx995"); // if (cp->bb.UR.y < bb.UR.y) { +UNSUPPORTED("dxvnot4cde33jxs0bsb7nz382"); // pt.x = cp->bb.LL.x; +UNSUPPORTED("3p9qsubmglgugaw1d40s99klt"); // pt.y = cp->bb.UR.y; +UNSUPPORTED("c3axnzt640u1xryxs43q8cuab"); // np = findSVert (g, hdict, pt, ditems, 0); +UNSUPPORTED("dyj0n8pksb6qap9nu5jmfpj9w"); // np->cells[0] = cp; +UNSUPPORTED("boewakbellfte64hummys1al4"); // cp->sides[M_TOP] = np; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("40k7l6eiot79jgs4q9j5r2kjv"); // if (cp->bb.LL.x > bb.LL.x) { +UNSUPPORTED("8gfqay3lh5vyrik8rxo1yg2nl"); // np = findSVert (g, vdict, cp->bb.LL, ditems, NOT(0)); +UNSUPPORTED("d2mluf5pmzh4dvlhfdwky76qv"); // np->cells[1] = cp; +UNSUPPORTED("do45kl0dk4amf3cqorzfqm0tf"); // cp->sides[M_LEFT] = np; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("66y49caixd7f6uqyv2baolqae"); // if (cp->bb.LL.y > bb.LL.y) { +UNSUPPORTED("2cqyrkg1fyix8wowsnfdeuorq"); // np = findSVert (g, hdict, cp->bb.LL, ditems, 0); +UNSUPPORTED("d2mluf5pmzh4dvlhfdwky76qv"); // np->cells[1] = cp; +UNSUPPORTED("bhmdbk8okdxhymkp2zrb7u8xy"); // cp->sides[M_BOTTOM] = np; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ay0zemsj6o1e18wmjs05jsshs"); // /* For each gcell, corresponding to a node in the input graph, +UNSUPPORTED("e4frwuwjez68hkt6p71wpwlxp"); // * connect it to its corresponding search nodes. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("doc2vwrr7r2f4tx2zxpfpypw4"); // maxdeg = 0; +UNSUPPORTED("4rohfkczkjec9j8oi6c5x026a"); // sides = (snode**)zmalloc((g->nnodes)*sizeof(snode*)); +UNSUPPORTED("3cxv3gaogbbrf3xu2gz1bxd2l"); // nsides = 0; +UNSUPPORTED("eabxb5i0ddkbddnag9j34xjbc"); // for (i = 0; i < mp->ngcells; i++) { +UNSUPPORTED("2xvmsgulyy6tipsy4akf2uzj"); // cell* cp = mp->gcells+i; +UNSUPPORTED("17m8hsxma8135wjiolo05duux"); // pointf pt; +UNSUPPORTED("4c1f2otw76p0krr6ugzi2malz"); // snodeitem* np; +UNSUPPORTED("179ywzb15i2sku8g8z7i1boz"); // cp->sides = sides+nsides; +UNSUPPORTED("6ct8i1irbix7j6hecssdk2o42"); // pt = cp->bb.LL; +UNSUPPORTED("4ns50pdyghalrjqr4o3qpevji"); // np = (*(((Dt_t*)(hdict))->searchf))((hdict),(void*)(&pt),0001000); +UNSUPPORTED("298kvmb0795bd6b9fx9zkdwuo"); // for (; np && np->p.x < cp->bb.UR.x; np = (*(((Dt_t*)(hdict))->searchf))((hdict),(void*)(np),0000010)) { +UNSUPPORTED("eq4x6lu28wtcm0m1ekd1r4pg5"); // cp->sides[cp->nsides++] = np->np; +UNSUPPORTED("iizzgq6n25zyzvx82krjhkem"); // np->np->cells[1] = cp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("evuyxziekv131tbe328a72tga"); // np = (*(((Dt_t*)(vdict))->searchf))((vdict),(void*)(&pt),0001000); +UNSUPPORTED("7pmcauszxeoqlecavr7kzrzcf"); // for (; np && np->p.y < cp->bb.UR.y; np = (*(((Dt_t*)(vdict))->searchf))((vdict),(void*)(np),0000010)) { +UNSUPPORTED("eq4x6lu28wtcm0m1ekd1r4pg5"); // cp->sides[cp->nsides++] = np->np; +UNSUPPORTED("iizzgq6n25zyzvx82krjhkem"); // np->np->cells[1] = cp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5h3mvfcnt7jg2xqse67wo1obl"); // pt.y = cp->bb.UR.y; +UNSUPPORTED("4ns50pdyghalrjqr4o3qpevji"); // np = (*(((Dt_t*)(hdict))->searchf))((hdict),(void*)(&pt),0001000); +UNSUPPORTED("298kvmb0795bd6b9fx9zkdwuo"); // for (; np && np->p.x < cp->bb.UR.x; np = (*(((Dt_t*)(hdict))->searchf))((hdict),(void*)(np),0000010)) { +UNSUPPORTED("eq4x6lu28wtcm0m1ekd1r4pg5"); // cp->sides[cp->nsides++] = np->np; +UNSUPPORTED("accj0ibwtypfqux48mf08irfq"); // np->np->cells[0] = cp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6e77uu605lqzyoy5chq2wtqfk"); // pt.x = cp->bb.UR.x; +UNSUPPORTED("4pblgwb16qkmxa4gmvm1k7jt8"); // pt.y = cp->bb.LL.y; +UNSUPPORTED("evuyxziekv131tbe328a72tga"); // np = (*(((Dt_t*)(vdict))->searchf))((vdict),(void*)(&pt),0001000); +UNSUPPORTED("7pmcauszxeoqlecavr7kzrzcf"); // for (; np && np->p.y < cp->bb.UR.y; np = (*(((Dt_t*)(vdict))->searchf))((vdict),(void*)(np),0000010)) { +UNSUPPORTED("eq4x6lu28wtcm0m1ekd1r4pg5"); // cp->sides[cp->nsides++] = np->np; +UNSUPPORTED("accj0ibwtypfqux48mf08irfq"); // np->np->cells[0] = cp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("20mszbn1fqt3r5famytys2b7k"); // nsides += cp->nsides; +UNSUPPORTED("6025gj96dwgvacuh99fqz7ojm"); // if (cp->nsides > maxdeg) maxdeg = cp->nsides; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("z0dqo9s1gp2o5rf0c6034igz"); // /* sides = RALLOC (nsides, sides, snode*); */ +UNSUPPORTED("2qr5jfiul6hnhj5d6z80qgpb1"); // /* Mark cells that are small because of a small node, not because of the close +UNSUPPORTED("2lob3t7thoheoyjm2lymh9i9f"); // * alignment of two rectangles. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("eabxb5i0ddkbddnag9j34xjbc"); // for (i = 0; i < mp->ngcells; i++) { +UNSUPPORTED("2xvmsgulyy6tipsy4akf2uzj"); // cell* cp = mp->gcells+i; +UNSUPPORTED("3d6qq4g3fw0mz4rcay5nx440a"); // markSmall (cp, g); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("el9dwhqim3arfedly8lrp9vq2"); // /* Set index of two dummy nodes used for real nodes */ +UNSUPPORTED("dyl9rr87m0sgliepkv3gf27cg"); // g->nodes[g->nnodes].index = g->nnodes; +UNSUPPORTED("3r7b7odsrw99ic8or2omu919p"); // g->nodes[g->nnodes+1].index = g->nnodes+1; +UNSUPPORTED("2w6qcucx2d9cglbvaflbxw4o6"); // /* create edges +UNSUPPORTED("1j0arl1zdd5kcgz4ma54mwxi"); // * For each ordinary cell, there can be at most 6 edges. +UNSUPPORTED("eqw7wagcnifpu2fjni6vek5f8"); // * At most 2 gcells will be used at a time, and each of these +UNSUPPORTED("xxno67cyczcsgky9n34pauce"); // * can have at most degree maxdeg. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("bsysrnk2t83p9hwmajmhxyhv0"); // initSEdges (g, maxdeg); +UNSUPPORTED("cc6zk9wsty15bcay61nb68jos"); // for (i = 0; i < mp->ncells; i++) { +UNSUPPORTED("2noex6z427j2b0xavovcqkxja"); // cell* cp = mp->cells+i; +UNSUPPORTED("7amfovltkaqx2bzlrepw8j5zm"); // createSEdges (cp, g); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bzohd8qeiebtj0um7pujifzvk"); // /* tidy up memory */ +UNSUPPORTED("alfe6acszsh611blhpw2t224g"); // /* g->nodes = RALLOC (g->nnodes+2, g->nodes, snode); */ +UNSUPPORTED("daoy3ejdfg7yqywgc1d6l42ls"); // /* g->edges = RALLOC (g->nedges+2*maxdeg, g->edges, sedge); */ +UNSUPPORTED("6ay8mbpe7d44870v0xaw2poe1"); // dtclose (vdict); +UNSUPPORTED("3bw7qxrnqbqniuud4o0r4sfbs"); // dtclose (hdict); +UNSUPPORTED("dzdth58xx98ya8ggp2giwte05"); // free (ditems); +UNSUPPORTED("74gpu8xcot4zlnqtwmtwj1gxl"); // chkSgraph (g); +UNSUPPORTED("ba08yhdiocr2grhsh1n3a6k6z"); // /* save core graph state */ +UNSUPPORTED("1ysafzgp6gjgoh4xzpiziysi4"); // gsave(g); +UNSUPPORTED("2syri7q5tc0jyvwq8ecyfo3vr"); // return g; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 47ee79k49zgxrbvcwk6qo1a91 +// maze* mkMaze (graph_t* g, int doLbls) +public static Object mkMaze(Object... arg) { +UNSUPPORTED("8ftsypi54d22742r6wjoy5v25"); // maze* +UNSUPPORTED("chjzymjdqshexf6h9lqtpflg6"); // mkMaze (graph_t* g, int doLbls) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7ma9kdgag30w5ofv1niitxbro"); // node_t* n; +UNSUPPORTED("aq8iuld39z3anhn3agas7wrpx"); // maze* mp = (maze*)zmalloc(sizeof(maze)); +UNSUPPORTED("170trbmtoncj4hi7wpq7j1v1w"); // boxf* rects; +UNSUPPORTED("epxy4v5wrs6mm1nymdce9o2mo"); // int i, nrect; +UNSUPPORTED("dyevh82lgyyzdp6weja1ovxir"); // cell* cp; +UNSUPPORTED("aqeh4gm2tudxnfkw4nym58953"); // double w2, h2; +UNSUPPORTED("8ucfzgk767hqg7v3sq95gwtxz"); // boxf bb, BB; +UNSUPPORTED("bydgyuxeazagl60ymagro1h9t"); // mp->ngcells = agnnodes(g); +UNSUPPORTED("bvlzfj9xz0yyl1uqoyot7rtyg"); // cp = mp->gcells = (cell*)zmalloc((mp->ngcells)*sizeof(cell)); +UNSUPPORTED("ffxll70yqx7zs7ajl2nbmdgi"); // BB.LL.x = BB.LL.y = MAXDOUBLE; +UNSUPPORTED("cz4gqh4qsnqvih07liqyudf1o"); // BB.UR.x = BB.UR.y = -MAXDOUBLE; +UNSUPPORTED("2ci0azpwlbk63rcshlsj1ve8u"); // for (n = agfstnode (g); n; n = agnxtnode(g,n)) { +UNSUPPORTED("9eyzmqvpe8fyomq6d83u60ad8"); // w2 = ND_xsize(n)/2.0; +UNSUPPORTED("a5huvn2de51imlq70uxu06ix1"); // if (w2 < 1) w2 = 1; +UNSUPPORTED("4165mxclove3sa7vcb5pab3lo"); // h2 = ND_ysize(n)/2.0; +UNSUPPORTED("5udqpftmbh4p3ikl8bcptzbyf"); // if (h2 < 1) h2 = 1; +UNSUPPORTED("9s6b5rf5dh58h3k6k8u0d9wpz"); // bb.LL.x = ND_coord(n).x - w2; +UNSUPPORTED("7makiveicd97c7ttfkw3az03m"); // bb.UR.x = ND_coord(n).x + w2; +UNSUPPORTED("4iy87lfal1aq0qmyvlj8e6rmy"); // bb.LL.y = ND_coord(n).y - h2; +UNSUPPORTED("3e4m3beafo37vj6bje1w9qhnx"); // bb.UR.y = ND_coord(n).y + h2; +UNSUPPORTED("ehjvhmi74i8b9imane6e9gs38"); // BB.LL.x = MIN(BB.LL.x, bb.LL.x); +UNSUPPORTED("22q0hpto8htuccf0e98b8noee"); // BB.LL.y = MIN(BB.LL.y, bb.LL.y); +UNSUPPORTED("ah47wdkrpv5cflac5mmhhjdn5"); // BB.UR.x = MAX(BB.UR.x, bb.UR.x); +UNSUPPORTED("5jcljn7v3ijnrk5mw7tznxrai"); // BB.UR.y = MAX(BB.UR.y, bb.UR.y); +UNSUPPORTED("cruvxryr09s05g4gxamylge5p"); // cp->bb = bb; +UNSUPPORTED("1t8h7vwcednduaar7crw1obrk"); // cp->flags |= 1; +UNSUPPORTED("61mx5zuc5l32rfja607gutu3k"); // ND_alg(n) = cp; +UNSUPPORTED("4s1pb2i2w7q7dsgd38jko4ff2"); // cp++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("71u00vuawtzqg4gz0lsai1m4a"); // if (doLbls) { +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7sfcm5iivxihxyopxhnmyyv9w"); // BB.LL.x -= 36;; +UNSUPPORTED("5illqz3dav1thosefdf7zf012"); // BB.LL.y -= 36;; +UNSUPPORTED("5muslgfqvix4h5kxrntmnt2rh"); // BB.UR.x += 36;; +UNSUPPORTED("5gw6fudbmpkabywynsetntifs"); // BB.UR.y += 36;; +UNSUPPORTED("12xoan2rb09zbemcgjh189oso"); // rects = partition (mp->gcells, mp->ngcells, &nrect, BB); +UNSUPPORTED("8qqibd1rblf4kt3wblfja4pch"); // if (odb_flags & 1) psdump (mp->gcells, mp->ngcells, BB, rects, nrect); +UNSUPPORTED("f0ajael9mvkz908ohbsqp8u46"); // mp->cells = (cell*)zmalloc((nrect)*sizeof(cell)); +UNSUPPORTED("dzo2h9k9ofrv8aifrwhvdxlk"); // mp->ncells = nrect; +UNSUPPORTED("cymbkb9p93tw0m4uu2kkj35a0"); // for (i = 0; i < nrect; i++) { +UNSUPPORTED("qb6erte9h6etocgwnpipxn18"); // mp->cells[i].bb = rects[i]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2uqylplzsbm0qd6yfhl4t4vqi"); // free (rects); +UNSUPPORTED("ewcr081zwl8ssdtp4n9ofylo0"); // mp->sg = mkMazeGraph (mp, BB); +UNSUPPORTED("965jxkqp2n8rpzvodac6mz9mg"); // return mp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 babqclyzdgzlc9rs6vagsa3a9 +// void freeMaze (maze* mp) +public static Object freeMaze(Object... arg) { +UNSUPPORTED("ixanx2vs8hc7piq3w1asfrq5"); // void freeMaze (maze* mp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("65ltdjbqueg56kn1hn5igwiec"); // free (mp->cells[0].sides); +UNSUPPORTED("8dgjx2dy276w12zps4vkayrht"); // free (mp->gcells[0].sides); +UNSUPPORTED("4u4be1832al75o9ui7p8j20dy"); // free (mp->cells); +UNSUPPORTED("4xldapnzfl3mjsal1a38po778"); // free (mp->gcells); +UNSUPPORTED("19t5nwndr3zdn7ivgdejb45fh"); // freeSGraph (mp->sg); +UNSUPPORTED("8v1nc3xpgspux65bxybvk2gxd"); // dtclose (mp->hchans); +UNSUPPORTED("19jphht7cd5e7ovrg923dx1yo"); // dtclose (mp->vchans); +UNSUPPORTED("29o1zsbwttldwz75iylxxkrm"); // free (mp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/ortho/ortho__c.java plantuml-8039/src/gen/lib/ortho/ortho__c.java --- plantuml-8024/src/gen/lib/ortho/ortho__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/ortho/ortho__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,2471 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.ortho; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; +import smetana.core.jmp_buf; + +public class ortho__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 7uu4dvqjnvvhc0gokmgcs954k +// extern int odb_flags + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + +//1 6ddu6mrp88g3kun2w1gg8ck8t +// typedef Dict_t PointSet + + +//1 6t1gwljnc5qkhgkp9oc8y7lhm +// typedef Dict_t PointMap + + +//1 540u5gu9i0x1wzoxqqx5n2vwp +// static jmp_buf jbuf +private static jmp_buf jbuf = new jmp_buf(); + +//1 4i7exv80uvzrbbvqtmcwqgujj +// int odb_flags + + + + +//3 1fgp1w41g6nj3rcw29phstsaj +// static cell* cellOf (snode* p, snode* q) +public static Object cellOf(Object... arg) { +UNSUPPORTED("earoc9gw4gdp2iwqsdlz5babo"); // static cell* +UNSUPPORTED("a81f9eexacyqhjwx31312aaij"); // cellOf (snode* p, snode* q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2p9afojds64j2415r77pe11ot"); // cell* cp = p->cells[0]; +UNSUPPORTED("6s9p9cp0t5f776vclqnqj9dps"); // if ((cp == q->cells[0]) || (cp == q->cells[1])) return cp; +UNSUPPORTED("3x1wxbq1zv1fxtxbt8cqyf2zm"); // else return p->cells[1]; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d9bq37gvmpmw51z5hep2ibevp +// static pointf midPt (cell* cp) +public static Object midPt(Object... arg) { +UNSUPPORTED("2zzd7mrm2u540dwuyzehozffj"); // static pointf +UNSUPPORTED("5m9iv8q1cwqhqjdweoca9fxwp"); // midPt (cell* cp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p; +UNSUPPORTED("6wfic6l7qkikzq3uxy7ra5rk8"); // p.x = (((cp->bb.LL.x)+(cp->bb.UR.x))/2.0); +UNSUPPORTED("270uxtsi045j2nyb091mgys86"); // p.y = (((cp->bb.LL.y)+(cp->bb.UR.y))/2.0); +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3fs08z3b3bgjahvaa5l6b4zo0 +// static pointf sidePt (snode* ptr, cell* cp) +public static Object sidePt(Object... arg) { +UNSUPPORTED("2zzd7mrm2u540dwuyzehozffj"); // static pointf +UNSUPPORTED("a38yr0nzj0vkqomj9uks960c1"); // sidePt (snode* ptr, cell* cp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2e0v7u9pfngzg11mt4kn3oudg"); // pointf pt; +UNSUPPORTED("67cqw53uchqjz2cyglbs25v99"); // if (cp == ptr->cells[1]) { +UNSUPPORTED("7hlq358idsgr518ei0otfvvzn"); // if (ptr->isVert) { +UNSUPPORTED("dxvnot4cde33jxs0bsb7nz382"); // pt.x = cp->bb.LL.x; +UNSUPPORTED("64l4d6adxd1dwebr9az75w0bq"); // pt.y = (((cp->bb.LL.y)+(cp->bb.UR.y))/2.0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("b55gnqjtnj37pizchlqw7tuat"); // pt.x = (((cp->bb.LL.x)+(cp->bb.UR.x))/2.0); +UNSUPPORTED("d899yxmcyrxgknu569q83j56y"); // pt.y = cp->bb.LL.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("7hlq358idsgr518ei0otfvvzn"); // if (ptr->isVert) { +UNSUPPORTED("5jm345o0dxsgpqu2h67gvkukd"); // pt.x = cp->bb.UR.x; +UNSUPPORTED("64l4d6adxd1dwebr9az75w0bq"); // pt.y = (((cp->bb.LL.y)+(cp->bb.UR.y))/2.0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("b55gnqjtnj37pizchlqw7tuat"); // pt.x = (((cp->bb.LL.x)+(cp->bb.UR.x))/2.0); +UNSUPPORTED("3p9qsubmglgugaw1d40s99klt"); // pt.y = cp->bb.UR.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ak6zrr3ug1q6nedtkthjyg33a"); // return pt; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7emnes5443mx9i54qiv085z3c +// static void setSeg (segment* sp, int dir, double fix, double b1, double b2, int l1, int l2) +public static Object setSeg(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("czy1oo8vy1jomzgzissjz1pa8"); // setSeg (segment* sp, int dir, double fix, double b1, double b2, int l1, int l2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2lzx2lnk6n6qiepwpcof58amv"); // sp->isVert = dir; +UNSUPPORTED("egu7wy8np7s0sfcam1ccn50l8"); // sp->comm_coord = fix; +UNSUPPORTED("4k7kksif599bd6vj4gbjlgdvu"); // if (b1 < b2) { +UNSUPPORTED("2kbc7nvci81onspyljnbbm2yy"); // sp->p.p1 = b1; +UNSUPPORTED("69ntpjs4vuyb4c55h77zuda23"); // sp->p.p2 = b2; +UNSUPPORTED("a5cq2nxrju7radz9bujgt4rhr"); // sp->l1 = l1; +UNSUPPORTED("9tatc5wgmjq70eejnp326bw0s"); // sp->l2 = l2; +UNSUPPORTED("20uja4lokugnba2pfzz5gomz4"); // sp->flipped = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("dmrpx7gtvzbduny1jg7iwe9m4"); // sp->p.p2 = b1; +UNSUPPORTED("1fydpfnyspbu5e91gaqjd462s"); // sp->p.p1 = b2; +UNSUPPORTED("1q9i62p8y6lpofiaqtwag6ytb"); // sp->l2 = l1; +UNSUPPORTED("askwqfrybpj6e7cjozg2h65p2"); // sp->l1 = l2; +UNSUPPORTED("etuylyul4aqlllu3yotsuuzp8"); // sp->flipped = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ejdbblkeiy6k5qhpj8qsj0z8y +// static route convertSPtoRoute (sgraph* g, snode* fst, snode* lst) +public static Object convertSPtoRoute(Object... arg) { +UNSUPPORTED("8fb3yibi0votqqanq3fr6x8pj"); // static route +UNSUPPORTED("wyj8sug7d8lkktfaafr8tnj7"); // convertSPtoRoute (sgraph* g, snode* fst, snode* lst) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("76tjoqkn7jsh2pn0trcuu3nvs"); // route rte; +UNSUPPORTED("au5gm9chihcao74rl90b6ryps"); // snode* ptr; +UNSUPPORTED("cywzrf8tem3eh04r3uc8ah1di"); // snode* next; +UNSUPPORTED("dvl617t5wak51pbm6b2wwpq7a"); // snode* prev; /* node in shortest path just previous to next */ +UNSUPPORTED("ccl0rgdbwuva223xhat8drba8"); // int i, sz = 0; +UNSUPPORTED("dyevh82lgyyzdp6weja1ovxir"); // cell* cp; +UNSUPPORTED("a5qjw7t9yw4fy2yn8wybaubwv"); // cell* ncp; +UNSUPPORTED("8tfdncboqzrme5mtb8miqamt8"); // segment seg; +UNSUPPORTED("e8ttz1kqzt1p2bbcbynxzgxwr"); // double fix, b1, b2; +UNSUPPORTED("1znk1bh9hsbr0uenjzfdyl00x"); // int l1, l2; +UNSUPPORTED("af5fm46r9aa1jyef1lcxmilbj"); // pointf bp1, bp2, prevbp; /* bend points */ +UNSUPPORTED("b6zcm30rwu0uuagbtdyocmn03"); // /* count no. of nodes in shortest path */ +UNSUPPORTED("2wn8ggohh5i2zmr4zmswe82yn"); // for (ptr = fst; ptr; ptr = (ptr)->n_dad) sz++; +UNSUPPORTED("32gg7r7g3ge2w1h3so5nleqkn"); // rte.n = 0; +UNSUPPORTED("c8dglxlwc6735e241xb2kleps"); // rte.segs = (segment*)zmalloc((sz-2)*sizeof(segment)); /* at most sz-2 segments */ +UNSUPPORTED("anlmm69dbu1fyet3im0yytjdv"); // seg.prev = seg.next = 0; +UNSUPPORTED("99cys70aea9mlxqhd6l7nznh8"); // ptr = prev = (fst)->n_dad; +UNSUPPORTED("adcxm0zct91fjkt21xpk7t2oc"); // next = (ptr)->n_dad; +UNSUPPORTED("cw4hqow3w9qpnqan38q4lzr80"); // if ((ptr->cells[0]->flags & 1)) +UNSUPPORTED("f3ouda0gkwbhpq1ghgnvzs28s"); // cp = ptr->cells[1]; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("bwecpy85k4r89mdewgkqnxmqs"); // cp = ptr->cells[0]; +UNSUPPORTED("8hu317tt07i24q0t1njlxgaaj"); // bp1 = sidePt (ptr, cp); +UNSUPPORTED("fojny6cnx3nf3wyctl8jt3m1"); // while ((next)->n_dad!=NULL) { +UNSUPPORTED("4685y9um6houwpnmq3o3xdnbl"); // ncp = cellOf (prev, next); +UNSUPPORTED("8avl1rf7puyncfn3xpiz6jmyq"); // updateWts (g, ncp, (ptr)->n_edge); +UNSUPPORTED("e9wkqtlau9mlc4plmvuuh9n7t"); // /* add seg if path bends or at end */ +UNSUPPORTED("f4tdpv7sv5hrh14s0m0qn6ijr"); // if ((ptr->isVert != next->isVert) || ((next)->n_dad == lst)) { +UNSUPPORTED("c536jildnbvxtl2yss5a5uez"); // if (ptr->isVert != next->isVert) +UNSUPPORTED("8hpdisbshs8wjwypt17ftfmfg"); // bp2 = midPt (ncp); +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("c06vwwj01jup12zkp64pdhnl5"); // bp2 = sidePt(next, ncp); +UNSUPPORTED("1yychnglbjeaemvsoqr67uc24"); // if (ptr->isVert) { /* horizontal segment */ +UNSUPPORTED("dvn1bwxcs69692i2rl1pm8ks9"); // if (ptr == (fst)->n_dad) l1 = B_NODE; +UNSUPPORTED("7xkaeei1db8jok1w7cm6ipvij"); // else if (prevbp.y > bp1.y) l1 = B_UP; +UNSUPPORTED("eudlpvdzus72tg534zqj1oyt2"); // else l1 = B_DOWN; +UNSUPPORTED("2u5nit0ixq58ppnkni37zkx0p"); // if (ptr->isVert != next->isVert) { +UNSUPPORTED("ho3qdbjkg3vo1gms22e3owtc"); // if (next->cells[0] == ncp) l2 = B_UP; +UNSUPPORTED("yfq0lkdewjlujiizjym1ixwn"); // else l2 = B_DOWN; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("wfw1pwgc72zyl8jhmc2mx9q1"); // else l2 = B_NODE; +UNSUPPORTED("1kjvrvanocnesq3lr4m4rkpql"); // fix = cp->bb.LL.y; +UNSUPPORTED("3l1nsh8rq7tmjt0aaypvrjafd"); // b1 = cp->bb.LL.x; +UNSUPPORTED("bdk1ammkqt91fkcw3tko38c4f"); // b2 = ncp->bb.LL.x; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("3jhmgphu961hd77sesd05sgwa"); // else { /* vertical segment */ +UNSUPPORTED("dvn1bwxcs69692i2rl1pm8ks9"); // if (ptr == (fst)->n_dad) l1 = B_NODE; +UNSUPPORTED("5omok2oqvkufnr17ynsa5l31u"); // else if (prevbp.x > bp1.x) l1 = B_RIGHT; +UNSUPPORTED("5u8ur9yzca1q5snap89wagubu"); // else l1 = B_LEFT; +UNSUPPORTED("2u5nit0ixq58ppnkni37zkx0p"); // if (ptr->isVert != next->isVert) { +UNSUPPORTED("70wuwqcivcyzgs1tpuyker0tw"); // if (next->cells[0] == ncp) l2 = B_RIGHT; +UNSUPPORTED("b1h57bzme4p9um8dgwvjorz6d"); // else l2 = B_LEFT; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("wfw1pwgc72zyl8jhmc2mx9q1"); // else l2 = B_NODE; +UNSUPPORTED("a6wqml6r0ya7a0ukfjl1akcof"); // fix = cp->bb.LL.x; +UNSUPPORTED("c5y1a76ll49xwb6f525w31cxw"); // b1 = cp->bb.LL.y; +UNSUPPORTED("5y9rsak5s8cwzp9r7hqzjtdn2"); // b2 = ncp->bb.LL.y; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5ytq0i1egd8zgjegz2alyi2l"); // setSeg (&seg, !ptr->isVert, fix, b1, b2, l1, l2); +UNSUPPORTED("3d5wnmejfwzawn8av2oedjr6w"); // rte.segs[rte.n++] = seg; +UNSUPPORTED("4butkpw7q0mfe8ci5ktgzfx7h"); // cp = ncp; +UNSUPPORTED("6euarq5hpmo6fnhw9236tny10"); // prevbp = bp1; +UNSUPPORTED("9ak3tu9gfug7h6n5oe3atds63"); // bp1 = bp2; +UNSUPPORTED("6upeg6isij4ds1zu1jxrpacvy"); // if ((ptr->isVert != next->isVert) && ((next)->n_dad == lst)) { +UNSUPPORTED("c06vwwj01jup12zkp64pdhnl5"); // bp2 = sidePt(next, ncp); +UNSUPPORTED("1ud8fuhorhhfedc95moinbg3n"); // l2 = B_NODE; +UNSUPPORTED("7i3it08m376phdxh0p1uzqai5"); // if (next->isVert) { /* horizontal segment */ +UNSUPPORTED("6i41faageoastaoondsec5yp4"); // if (prevbp.y > bp1.y) l1 = B_UP; +UNSUPPORTED("5g30gkn2ryx49ev1n4e2smcx9"); // else l1 = B_DOWN; +UNSUPPORTED("8fxukh2rk7ex4092kgv805ite"); // fix = cp->bb.LL.y; +UNSUPPORTED("cuz1j4nsn7d1nc8gyk6pwxms4"); // b1 = cp->bb.LL.x; +UNSUPPORTED("6bi6zqtgdmd0jnfszi2huxntb"); // b2 = ncp->bb.LL.x; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("qmgaeq8ywmhhu9os2y3ykl5h"); // if (prevbp.x > bp1.x) l1 = B_RIGHT; +UNSUPPORTED("elww0yfcft9fn920zdzqjqag4"); // else l1 = B_LEFT; +UNSUPPORTED("e942krdqcom8eneazkyc1gf5i"); // fix = cp->bb.LL.x; +UNSUPPORTED("225z3yt58cl9ma5i7jb3b6zj1"); // b1 = cp->bb.LL.y; +UNSUPPORTED("2grsi5yyliiziqp3ehv7saoqg"); // b2 = ncp->bb.LL.y; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("atcm0274c8dmqoq2enw1723k1"); // setSeg (&seg, !next->isVert, fix, b1, b2, l1, l2); +UNSUPPORTED("6eajjgh7sernfrp1c4gqwdqva"); // rte.segs[rte.n++] = seg; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5oraagbeabq0cwuspqij33hro"); // ptr = next; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1qyv8z4yk5u9fxyioeycj4pg4"); // prev = next; +UNSUPPORTED("dtddoorswdnxqgywntqy6r3rj"); // next = (next)->n_dad; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6wc8b07bbvef9c5f0xaq0a7w7"); // rte.segs = realloc (rte.segs, rte.n*sizeof(segment)); +UNSUPPORTED("9t92jm5uuo94z4984kskv1zs1"); // for (i=0; i 0) +UNSUPPORTED("6ocqv4us3offjwlpkz1trldjf"); // rte.segs[i].prev = rte.segs + (i-1); +UNSUPPORTED("140nkijwoi101c4avzme9y00x"); // if (i < rte.n-1) +UNSUPPORTED("2zgm1op1kek2062uh1ir84v1p"); // rte.segs[i].next = rte.segs + (i+1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6rsvido8aoxm4xz31egwihvie"); // return rte; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aqw2pcwz2wbv0f1rw9usmyqgf +// static void freeChannel (Dt_t* d, channel* cp, Dtdisc_t* disc) +public static Object freeChannel(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("c9euy7p3sclc7ckkp1bzs1jx"); // freeChannel (Dt_t* d, channel* cp, Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b9qijws3odg8l7q5fou8uuguj"); // free_graph (cp->G); +UNSUPPORTED("q5fdp3fynm4ytf68bfq4eyi1"); // free (cp->seg_list); +UNSUPPORTED("15g2jqm1fxtvztnindiv43hg9"); // free (cp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 czg5smuwmyt5ciilshur9hm5e +// static void freeChanItem (Dt_t* d, chanItem* cp, Dtdisc_t* disc) +public static Object freeChanItem(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("3shy48lfkzdtnmko723ebxmhv"); // freeChanItem (Dt_t* d, chanItem* cp, Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2j623061b9jjl1jqz6i2eartz"); // dtclose (cp->chans); +UNSUPPORTED("15g2jqm1fxtvztnindiv43hg9"); // free (cp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cbapcnadrscvk8m1ip2223p3e +// static int chancmpid(Dt_t* d, paird* key1, paird* key2, Dtdisc_t* disc) +public static Object chancmpid(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("c3dmj421aezge5a3ggj2xi34t"); // chancmpid(Dt_t* d, paird* key1, paird* key2, Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jh3acz833d3cdotdb2s5kr3v"); // if (key1->p1 > key2->p1) { +UNSUPPORTED("p297m3b0zcsixgurzbmjqkqr"); // if (key1->p2 <= key2->p2) return 0; +UNSUPPORTED("ayizfb4et318igswkluxa6rgf"); // else return 1; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("awnfnp6rvvw6qa9g0i6vjio9k"); // else if (key1->p1 < key2->p1) { +UNSUPPORTED("6hzvi4g07ent2az0wn1att4zj"); // if (key1->p2 >= key2->p2) return 0; +UNSUPPORTED("c20igl46iqplts26214lc7ebm"); // else return -1; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("7lrkjjj5lce2uf86c1y9o9yoa"); // else return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 659jucoqq7j1ud5wehj42ik2d +// static int dcmpid(Dt_t* d, double* key1, double* key2, Dtdisc_t* disc) +public static Object dcmpid(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("6vxm1h1q3grwa81zaivfch1re"); // dcmpid(Dt_t* d, double* key1, double* key2, Dtdisc_t* disc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1cu94gjng90rrt7xtp42ifr1"); // if (*key1 > *key2) return 1; +UNSUPPORTED("3h1tdtwyfqaqhne2o7pz8yq9h"); // else if (*key1 < *key2) return -1; +UNSUPPORTED("7lrkjjj5lce2uf86c1y9o9yoa"); // else return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 ethokur0ooay9stl4lw8geq1r +// static Dtdisc_t chanDisc = + + +//1 db0w2llnzryezehbaes3knwwv +// static Dtdisc_t chanItemDisc = + + + + +//3 1yykle604b3x2mutto2rk7k0q +// static void addChan (Dt_t* chdict, channel* cp, double j) +public static Object addChan(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("5y1j3qnhsbg3b86o7hpanej1s"); // addChan (Dt_t* chdict, channel* cp, double j) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("67yxlxmzwjczlfm96jhe7luye"); // chanItem* subd = (*(((Dt_t*)(chdict))->searchf))((chdict),(void*)(&j),0001000); +UNSUPPORTED("bl97x4t04cnuvu98zcsh3u3r1"); // if (!subd) { +UNSUPPORTED("92ya0nhv9b16cc5o2095t5rp2"); // subd = (chanItem*)zmalloc(sizeof(chanItem)); +UNSUPPORTED("6kkqd46tx54vo55rc8xyc93dg"); // subd->v = j; +UNSUPPORTED("e4cijg0myh4jmsjklqxc3ia0r"); // subd->chans = dtopen (&chanDisc, Dtoset); +UNSUPPORTED("anh61bjg3nlucvypx7x43xfk7"); // (*(((Dt_t*)(chdict))->searchf))((chdict),(void*)(subd),0000001); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("344a2yp8gxqtygac1hl0bxduf"); // (*(((Dt_t*)(subd->chans))->searchf))((subd->chans),(void*)(cp),0000001); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 870j0jbluhoffx3ke1eog9a0e +// static Dt_t* extractHChans (maze* mp) +public static Object extractHChans(Object... arg) { +UNSUPPORTED("2xt7ub3z01qt6i7l0luh5zpbd"); // static Dt_t* +UNSUPPORTED("6h6avfk40i1d436sls3sjaic3"); // extractHChans (maze* mp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("bhhrlzv5tqbx6ctv8b8hya7ll"); // snode* np; +UNSUPPORTED("2pyx8we0m19pr0whdh4wa2df9"); // Dt_t* hchans = dtopen (&chanItemDisc, Dtoset); +UNSUPPORTED("cc6zk9wsty15bcay61nb68jos"); // for (i = 0; i < mp->ncells; i++) { +UNSUPPORTED("6mflke7nml2pfj18uu5t0itb2"); // channel* chp; +UNSUPPORTED("2noex6z427j2b0xavovcqkxja"); // cell* cp = mp->cells+i; +UNSUPPORTED("4id7mgutk26h361i0yn0dr0c9"); // cell* nextcp; +UNSUPPORTED("lrx70e5v1i9g2x8dyh0781af"); // if ((cp->flags & 4)) continue; +UNSUPPORTED("4fw3zqbj9rdk41p6d04n8l4p9"); // /* move left */ +UNSUPPORTED("4hw0byd0u8kw6qzgqn54tsvsm"); // while ((np = cp->sides[M_LEFT]) && (nextcp = np->cells[0]) && +UNSUPPORTED("rfl3ehaprpjsjs96qg8xsipw"); // !(nextcp->flags & 1)) { +UNSUPPORTED("292smg9hw43fsfevnum565skt"); // cp = nextcp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cor1kngy665478bu9tlxw55y0"); // chp = (channel*)zmalloc(sizeof(channel)); +UNSUPPORTED("3tv0uje2s5tbgyq4tltlazjfp"); // chp->cp = cp; +UNSUPPORTED("241dtcbm0olj1vf27gmksfshg"); // chp->p.p1 = cp->bb.LL.x; +UNSUPPORTED("67k0t4al7ygki756mk386ga5v"); // /* move right */ +UNSUPPORTED("c89349lhw5ip8nh8afxcjd01t"); // cp->flags |= 4; +UNSUPPORTED("6ky3mzdgm24nohd7cwj4ljp2k"); // while ((np = cp->sides[M_RIGHT]) && (nextcp = np->cells[1]) && +UNSUPPORTED("rfl3ehaprpjsjs96qg8xsipw"); // !(nextcp->flags & 1)) { +UNSUPPORTED("292smg9hw43fsfevnum565skt"); // cp = nextcp; +UNSUPPORTED("1en3ueviartdiagf21oyb422w"); // cp->flags |= 4; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("78071fo42hy6imylzbfy3bf8i"); // chp->p.p2 = cp->bb.UR.x; +UNSUPPORTED("e8p02vlsess6lxodmtmo1c1ms"); // addChan (hchans, chp, chp->cp->bb.LL.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bq8ebjnwnc14ngjegh07xcdh7"); // return hchans; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7s43hm0mz2wo1mdduca26ojr5 +// static Dt_t* extractVChans (maze* mp) +public static Object extractVChans(Object... arg) { +UNSUPPORTED("2xt7ub3z01qt6i7l0luh5zpbd"); // static Dt_t* +UNSUPPORTED("c36zuoh2qlc3lrap5d8f3y8lk"); // extractVChans (maze* mp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("bhhrlzv5tqbx6ctv8b8hya7ll"); // snode* np; +UNSUPPORTED("dnn2hmk22k5leb4unfdv23ay"); // Dt_t* vchans = dtopen (&chanItemDisc, Dtoset); +UNSUPPORTED("cc6zk9wsty15bcay61nb68jos"); // for (i = 0; i < mp->ncells; i++) { +UNSUPPORTED("6mflke7nml2pfj18uu5t0itb2"); // channel* chp; +UNSUPPORTED("2noex6z427j2b0xavovcqkxja"); // cell* cp = mp->cells+i; +UNSUPPORTED("4id7mgutk26h361i0yn0dr0c9"); // cell* nextcp; +UNSUPPORTED("4oetph2txtwv1olvghotnhpps"); // if ((cp->flags & 2)) continue; +UNSUPPORTED("c6rkuey5ihzorfjp9881pbmej"); // /* move down */ +UNSUPPORTED("a9307fsrcb38pq8una61um0oe"); // while ((np = cp->sides[M_BOTTOM]) && (nextcp = np->cells[0]) && +UNSUPPORTED("rfl3ehaprpjsjs96qg8xsipw"); // !(nextcp->flags & 1)) { +UNSUPPORTED("292smg9hw43fsfevnum565skt"); // cp = nextcp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cor1kngy665478bu9tlxw55y0"); // chp = (channel*)zmalloc(sizeof(channel)); +UNSUPPORTED("3tv0uje2s5tbgyq4tltlazjfp"); // chp->cp = cp; +UNSUPPORTED("1yizwyrbv5k2pljd9srrt507t"); // chp->p.p1 = cp->bb.LL.y; +UNSUPPORTED("9l69ytmot9sii7jf1nezunp0j"); // /* move up */ +UNSUPPORTED("ekzngugyx3nx0hy0tcenivo3e"); // cp->flags |= 2; +UNSUPPORTED("eaga01f5n4bcc04jzd7koe2zn"); // while ((np = cp->sides[M_TOP]) && (nextcp = np->cells[1]) && +UNSUPPORTED("rfl3ehaprpjsjs96qg8xsipw"); // !(nextcp->flags & 1)) { +UNSUPPORTED("292smg9hw43fsfevnum565skt"); // cp = nextcp; +UNSUPPORTED("2z9bt6rzic3h5f2bswrctlkm5"); // cp->flags |= 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("4t6wc1803m511jzzii1e5refw"); // chp->p.p2 = cp->bb.UR.y; +UNSUPPORTED("117s1riz7scnahvfdhjad7oo7"); // addChan (vchans, chp, chp->cp->bb.LL.x); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("mc3k9myynjaxs0u8wam7xntw"); // return vchans; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3fx0dtmoubptoy863qaohsyiv +// static void insertChan (channel* chan, segment* seg) +public static Object insertChan(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("9wvfovtdcnhpa9y21q29xb2xs"); // insertChan (channel* chan, segment* seg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8rut445afekmag201py7zerog"); // seg->ind_no = chan->cnt++; +UNSUPPORTED("1fpx5uvyy1jw7h6nzfgxqij4q"); // chan->seg_list = ALLOC(chan->cnt, chan->seg_list, segment*); +UNSUPPORTED("dtkgbijbhv6zio2otpjus55me"); // chan->seg_list[chan->cnt-1] = seg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2k7dmuexcawtry3q8ifzylkb9 +// static channel* chanSearch (Dt_t* chans, segment* seg) +public static Object chanSearch(Object... arg) { +UNSUPPORTED("9qh7gtx6joh26yrtekarlkx5k"); // static channel* +UNSUPPORTED("6iggv78oc0ydb9b7w5c37fcdb"); // chanSearch (Dt_t* chans, segment* seg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6ysgprb9sb91hot466r1pbjvf"); // channel* cp; +UNSUPPORTED("3eoemzrlaus9ecq2mmuirfx2e"); // chanItem* chani = (*(((Dt_t*)(chans))->searchf))((chans),(void*)(&seg->comm_coord),0001000); +UNSUPPORTED("xbnh2djh0amu19ivzrfv1zrb"); // assert (chani); +UNSUPPORTED("a5sgr1i6e2c5nbli6kjtt8w0o"); // cp = (*(((Dt_t*)(chani->chans))->searchf))((chani->chans),(void*)(&seg->p),0001000); +UNSUPPORTED("1e4wppypayzgri783mhjwfvr3"); // assert (cp); +UNSUPPORTED("4jjmko29xep9s4rocrlxrqsof"); // return cp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e8ecrel25ykgpfve8c2pg90bt +// static void assignSegs (int nrtes, route* route_list, maze* mp) +public static Object assignSegs(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("9gbzlbbthoblu6f8211e9rp46"); // assignSegs (int nrtes, route* route_list, maze* mp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7pmetyg241ybw8hq3j61i271y"); // channel* chan; +UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j; +UNSUPPORTED("arcr89i9kld6j0uwf2fd919vf"); // for (i=0;iisVert) +UNSUPPORTED("bdeg9z0esjwizlyn8av1pup0v"); // chan = chanSearch(mp->vchans, seg); +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("52uzmq8ikrhropj8svxedldsn"); // chan = chanSearch(mp->hchans, seg); +UNSUPPORTED("73ufkqlb3bea3t1t87hm2wgdl"); // insertChan (chan, seg); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4648ghx1zvrhmfvw1szjx5en +// static void addLoop (sgraph* sg, cell* cp, snode* dp, snode* sp) +public static Object addLoop(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("a3tsmcxhg7iyjoceb1tpll3mb"); // addLoop (sgraph* sg, cell* cp, snode* dp, snode* sp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("a5bapcojbf1pon4upj40dgnit"); // int onTop; +UNSUPPORTED("2mmprwecm43sdonztnzfjh86u"); // pointf midp = midPt (cp); +UNSUPPORTED("2zty3wxdquu2fbdk9ag3eibug"); // for (i = 0; i < cp->nsides; i++) { +UNSUPPORTED("6aknf99z3dbb067he348v23c2"); // cell* ocp; +UNSUPPORTED("9wdrv4uc4c7ssn0qpmxgz5eu1"); // pointf p; +UNSUPPORTED("97a26i8tw0qmzg5i2dlia94tf"); // double wt; +UNSUPPORTED("2o74t2kk9zszzjmhl2o58radp"); // snode* onp = cp->sides[i]; +UNSUPPORTED("2bh0qvoskfpyikivdli33p1t7"); // if (onp->isVert) continue; +UNSUPPORTED("3r96db0og4bylr45sqo2u7ire"); // if (onp->cells[0] == cp) { +UNSUPPORTED("5ld3bwx3i8kedyixr9hiunybw"); // onTop = 1; +UNSUPPORTED("7u4yqyzc7gp7vvs8j9a8o1vz3"); // ocp = onp->cells[1]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("4nrjdhrb9ccxue57dab1e82ec"); // onTop = 0; +UNSUPPORTED("5t2fdtivke5zplmmsz3noc2h2"); // ocp = onp->cells[0]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3o5hqzfql7utdq40v2mp489na"); // p = sidePt (onp, ocp); +UNSUPPORTED("2pqzno9l1yhihvq61yikfha7x"); // wt = abs(p.x - midp.x) + abs(p.y - midp.y); +UNSUPPORTED("eeypctdtd8leg1t71p1ef13ns"); // if (onTop) +UNSUPPORTED("ay6bley4n4nuqyi003sc8kb3d"); // createSEdge (sg, sp, onp, 0); /* FIX weight */ +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("bhgjjjfikli3ur37hc7x7pvem"); // createSEdge (sg, dp, onp, 0); /* FIX weight */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3o1amzqcqc6xflt5rclqgaoop"); // sg->nnodes += 2; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 89iyhk6f9rhg0e8rz0hlwkesx +// static void addNodeEdges (sgraph* sg, cell* cp, snode* np) +public static Object addNodeEdges(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("3s08k325s6c0dzl8xxm0e71pf"); // addNodeEdges (sgraph* sg, cell* cp, snode* np) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("2mmprwecm43sdonztnzfjh86u"); // pointf midp = midPt (cp); +UNSUPPORTED("2zty3wxdquu2fbdk9ag3eibug"); // for (i = 0; i < cp->nsides; i++) { +UNSUPPORTED("2o74t2kk9zszzjmhl2o58radp"); // snode* onp = cp->sides[i]; +UNSUPPORTED("6aknf99z3dbb067he348v23c2"); // cell* ocp; +UNSUPPORTED("9wdrv4uc4c7ssn0qpmxgz5eu1"); // pointf p; +UNSUPPORTED("97a26i8tw0qmzg5i2dlia94tf"); // double wt; +UNSUPPORTED("5tmebwuyw7chpq5iitcyuvnod"); // if (onp->cells[0] == cp) +UNSUPPORTED("7u4yqyzc7gp7vvs8j9a8o1vz3"); // ocp = onp->cells[1]; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("5t2fdtivke5zplmmsz3noc2h2"); // ocp = onp->cells[0]; +UNSUPPORTED("3o5hqzfql7utdq40v2mp489na"); // p = sidePt (onp, ocp); +UNSUPPORTED("2pqzno9l1yhihvq61yikfha7x"); // wt = abs(p.x - midp.x) + abs(p.y - midp.y); +UNSUPPORTED("d513bewr1npimr2it2ia2k56r"); // createSEdge (sg, np, onp, 0); /* FIX weight */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("580kqdl0txe4fd1g3jdsx7oj8"); // sg->nnodes++; +UNSUPPORTED("8dkxzvuy1kheqf9w0lmvljni5"); // np->cells[0] = np->cells[1] = cp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7yrubx0zxon9c2uglsfqdw6wb +// static char* bendToStr (bend b) +public static Object bendToStr(Object... arg) { +UNSUPPORTED("aso9sesbnmywhnboxv863whri"); // static char* bendToStr (bend b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1nqf38mopzr5h6gz1w5jgibcq"); // char* s; +UNSUPPORTED("6ep6naubtnkle2baax49za5kt"); // switch (b) { +UNSUPPORTED("468ky1b2wfpa4muv0a4vayt73"); // case B_NODE : +UNSUPPORTED("7asao4q2agscqkw1vxzbiovd"); // s = "B_NODE"; +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("9p3ucw6vl509wdnlc9fo3qviu"); // case B_UP : +UNSUPPORTED("eabybll1yskskaq7a8kxvc8tp"); // s = "B_UP"; +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("6y3zt8d6u1qyjwi9sxz0vhxov"); // case B_LEFT : +UNSUPPORTED("83j5r4h8qfyqcjko2filk6pf6"); // s = "B_LEFT"; +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("9twa5d2kxeox6wxq7il75kpvb"); // case B_DOWN : +UNSUPPORTED("2lrnwyogg8ylvavh64j9fsc4v"); // s = "B_DOWN"; +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("e3th0xydbkfhgz8nlphys6knw"); // case B_RIGHT : +UNSUPPORTED("4z5jeqjq3629k9tjxww0ixjqv"); // s = "B_RIGHT"; +UNSUPPORTED("8ofzhd1f1qc2gz9hfk7vzz6ox"); // break; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("cw8hinum739bvjkye9axxkjp3"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 90xcxnm75ks9geu9fenh3dm1y +// static void putSeg (FILE* fp, segment* seg) +public static Object putSeg(Object... arg) { +UNSUPPORTED("ezdh139xemkeu6ueshufvm7w2"); // static void putSeg (FILE* fp, segment* seg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("70c5pnzzsu7czszgxj1512qab"); // if (seg->isVert) +UNSUPPORTED("ah8jrf48288m893sn0xhnsoyl"); // fprintf (fp, "((%f,%f),(%f,%f)) %s %s", seg->comm_coord, seg->p.p1, +UNSUPPORTED("1m3ectywf3939xa468uztvqoq"); // seg->comm_coord, seg->p.p2, bendToStr (seg->l1), bendToStr (seg->l2)); +UNSUPPORTED("8983svt6g1kt3l45bd6ju9mw6"); // else +UNSUPPORTED("c1qsbthiirdz2q4klv9p53rth"); // fprintf (fp, "((%f,%f),(%f,%f)) %s %s", seg->p.p1,seg->comm_coord, +UNSUPPORTED("bxjfdk1v4pdjllz1clm0jzi7c"); // seg->p.p2, seg->comm_coord, bendToStr (seg->l1), bendToStr (seg->l2)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2fdwckbttldonqwo3v1bwb0tx +// static void dumpChanG (channel* cp, int v) +public static Object dumpChanG(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("1jiwdzplvv49bv58z35y6cdxe"); // dumpChanG (channel* cp, int v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8ebsbykup813mmiz374hgxn60"); // int k; +UNSUPPORTED("9sznn1kro0jd847rh8vo0hwbc"); // intitem* ip; +UNSUPPORTED("1e46umbsk6iochvxe1wvpa4hm"); // Dt_t* adj; +UNSUPPORTED("6oro5r2fdy2jr6tual6x7sagh"); // if (cp->cnt < 2) return; +UNSUPPORTED("cz9tbd9xi7o70lfrwgwnls8ry"); // fprintf (stderr, "channel %d (%f,%f)\n", v, cp->p.p1, cp->p.p2); +UNSUPPORTED("2e81m6ga4aivsowi1d0mro7qz"); // for (k=0;kcnt;k++) { +UNSUPPORTED("esbukm9onpnxbeewu9ks5cx7q"); // adj = cp->G->vertices[k].adj_list; +UNSUPPORTED("7d5y6bg0ngegbqsnsn7gu87bt"); // if (dtsize(adj) == 0) continue; +UNSUPPORTED("7wdg4xscc6apj5ksye6gvz131"); // putSeg (stderr, cp->seg_list[k]); +UNSUPPORTED("d811shlhb0ykm0lp0t2naamkw"); // fputs (" ->\n", stderr); +UNSUPPORTED("4lca7ud2mcwkyvh8ynb1pjo61"); // for (ip = (intitem*)(*(((Dt_t*)(adj))->searchf))((adj),(void*)(0),0000200); ip; ip = (intitem*)(*(((Dt_t*)(adj))->searchf))((adj),(void*)(ip),0000010)) { +UNSUPPORTED("drhixa423prmpgu5j6qe8l3je"); // fputs (" ", stderr); +UNSUPPORTED("8kybw0d4hrww4xqhdna4mlsgc"); // putSeg (stderr, cp->seg_list[ip->id]); +UNSUPPORTED("24p9gcmr0oxvz0sli52c722vt"); // fputs ("\n", stderr); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d0tqkl09dlk95z7uv7a0esz2h +// static void assignTrackNo (Dt_t* chans) +public static Object assignTrackNo(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("32zdrf69xvfxhlj0l5jffzppy"); // assignTrackNo (Dt_t* chans) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a4p8766eh6ra21i7u5o9nf6rm"); // Dt_t* lp; +UNSUPPORTED("1mqjeo37v4tmo6kht0rep1tht"); // Dtlink_t* l1; +UNSUPPORTED("eiqtkkndttzmunuxtnm99mkpy"); // Dtlink_t* l2; +UNSUPPORTED("dbd08d8bpiw762wer960cicgj"); // channel* cp; +UNSUPPORTED("b0kisc5bimb4jnz3z1g2yhbqv"); // int k; +UNSUPPORTED("cp4kv1fg74up3ubek2qyx8d25"); // for (l1 = dtflatten (chans); l1; l1 = (((Dtlink_t*)(l1))->right)) { +UNSUPPORTED("950o75hi1nj794oxa101pt5t0"); // lp = ((chanItem*)l1)->chans; +UNSUPPORTED("71dqer4eeiqshvsh6rbj0kis5"); // for (l2 = dtflatten (lp); l2; l2 = (((Dtlink_t*)(l2))->right)) { +UNSUPPORTED("135wr0zp93ul7lqzg4608t7cy"); // cp = (channel*)l2; +UNSUPPORTED("jmhm2rezhg6jgnyq2vvyf1xt"); // if (cp->cnt) { +UNSUPPORTED("oz7u32hmswbxtvcx0h9iwqbc"); // if (odb_flags & 8) dumpChanG (cp, ((chanItem*)l1)->v); +UNSUPPORTED("4g04bc8ywv1z7gpxqhucbcys2"); // top_sort (cp->G); +UNSUPPORTED("9u4bikrj4ida8i29gym2jn5b9"); // for (k=0;kcnt;k++) +UNSUPPORTED("8o41cm37dmlh7y14o8j7byzbn"); // cp->seg_list[k]->track_no = cp->G->vertices[k].topsort_order+1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("9pqd0punhe3g1up9qd8xxo652"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4cvz30tum1j5kh2mr4tikagu7 +// static void create_graphs(Dt_t* chans) +public static Object create_graphs(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("bhabfg4ovu9hg3f74xotdq8w2"); // create_graphs(Dt_t* chans) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a4p8766eh6ra21i7u5o9nf6rm"); // Dt_t* lp; +UNSUPPORTED("1mqjeo37v4tmo6kht0rep1tht"); // Dtlink_t* l1; +UNSUPPORTED("eiqtkkndttzmunuxtnm99mkpy"); // Dtlink_t* l2; +UNSUPPORTED("dbd08d8bpiw762wer960cicgj"); // channel* cp; +UNSUPPORTED("cp4kv1fg74up3ubek2qyx8d25"); // for (l1 = dtflatten (chans); l1; l1 = (((Dtlink_t*)(l1))->right)) { +UNSUPPORTED("950o75hi1nj794oxa101pt5t0"); // lp = ((chanItem*)l1)->chans; +UNSUPPORTED("71dqer4eeiqshvsh6rbj0kis5"); // for (l2 = dtflatten (lp); l2; l2 = (((Dtlink_t*)(l2))->right)) { +UNSUPPORTED("135wr0zp93ul7lqzg4608t7cy"); // cp = (channel*)l2; +UNSUPPORTED("3cr2g51ro0c0oi5l2n756dpbt"); // cp->G = make_graph (cp->cnt); +UNSUPPORTED("9pqd0punhe3g1up9qd8xxo652"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bzybz2vhse04djha8f0fquflw +// static int eqEndSeg (bend S1l2, bend S2l2, bend T1, bend T2) +public static Object eqEndSeg(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("85zkrfkxr894bmai11bwpink8"); // eqEndSeg (bend S1l2, bend S2l2, bend T1, bend T2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7gxac6sgui9mlexwzhcjde73q"); // if (((S1l2==T2)&&(S2l2=!T2)) +UNSUPPORTED("60oyzebkxpkavx2feau5rt7kl"); // || ((S1l2==B_NODE)&&(S2l2==T1))) +UNSUPPORTED("dcqs008t3a3ccoe71d0lqe7yd"); // return(0); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("1b9bshcz3yhp7bwyu248z4k9t"); // return(-1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eb1uhz6fkbngny6t6auaxxt9b +// static int overlapSeg (segment* S1, segment* S2, bend T1, bend T2) +public static Object overlapSeg(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("ezv23yz3jqikw7nzsie354dxc"); // overlapSeg (segment* S1, segment* S2, bend T1, bend T2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a78h8j082nhcdjv739yn4qppz"); // if(S1->p.p2p.p2) { +UNSUPPORTED("4rsshkwyw60o88gdb3dn0ovf4"); // if(S1->l2==T1&&S2->l1==T2) return(-1); +UNSUPPORTED("2mabne1z2rhv79s1slqsz0khx"); // else if(S1->l2==T2&&S2->l1==T1) return(1); +UNSUPPORTED("2vzk76estb6plbulns7pz9fh4"); // else return(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("f2sgqrqg5ty4z7q2umaxpejio"); // else if(S1->p.p2==S2->p.p2) { +UNSUPPORTED("ct6utyz0mi3m48f5wk8rnqoc3"); // if(S2->l1==T2) return eqEndSeg (S1->l2, S2->l2, T1, T2); +UNSUPPORTED("5ot15cxdtf6ibi79p9ahnuiyy"); // else return -1*eqEndSeg (S2->l2, S1->l2, T1, T2); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7aq9p42tl9bfo9gar2o9pyo6"); // else { /* S1->p.p2>S2->p.p2 */ +UNSUPPORTED("89qwmoj26o4fkmkwqkugfzwjf"); // if(S2->l1==T2&&S2->l2==T2) return(-1); +UNSUPPORTED("adhycem4k08o2rbxo59z3jkhz"); // else if (S2->l1==T1&&S2->l2==T1) return(1); +UNSUPPORTED("2vzk76estb6plbulns7pz9fh4"); // else return(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 916xnvutvt73y05azmf2m6y6t +// static int ellSeg (bend S1l1, bend S1l2, bend T) +public static Object ellSeg(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("akzolart54jjjeeqmyxqrnmuc"); // ellSeg (bend S1l1, bend S1l2, bend T) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("be5bxc372qf9z4u0bn8p5f3a2"); // if (S1l1 == T) { +UNSUPPORTED("19rq2setuug0dsuwd18u6bp16"); // if (S1l2== T) return -1; +UNSUPPORTED("3x8iplz4npgo85ip5rp23jmcu"); // else return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ayizfb4et318igswkluxa6rgf"); // else return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3set1dgc7lhl9wfckj4voync3 +// static int segCmp (segment* S1, segment* S2, bend T1, bend T2) +public static Object segCmp(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("5so0u4o583yem7g066n6h5h8v"); // segCmp (segment* S1, segment* S2, bend T1, bend T2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cgb5j5ouyqocl1eu5sq5ul1m1"); // /* no overlap */ +UNSUPPORTED("1m7w9c5br675ne9d38ak6hu53"); // if((S1->p.p2p.p1)||(S1->p.p1>S2->p.p2)) return(0); +UNSUPPORTED("edg1u6oyftrvreqlbjqxcznnc"); // /* left endpoint of S2 inside S1 */ +UNSUPPORTED("1x0gxclmpt2dwwdqev2ara450"); // if(S1->p.p1p.p1&&S2->p.p1p.p2) +UNSUPPORTED("am1178qaqllybktyjo3nv97xc"); // return overlapSeg (S1, S2, T1, T2); +UNSUPPORTED("bvhn7dxguoamigzpbv1635rse"); // /* left endpoint of S1 inside S2 */ +UNSUPPORTED("1x5d71ow7dh9gcypm1uex4adi"); // else if(S2->p.p1p.p1&&S1->p.p1p.p2) +UNSUPPORTED("8jh6cjdtp573oq8qqbvo18fjx"); // return -1*overlapSeg (S2, S1, T1, T2); +UNSUPPORTED("cjqc4716c7f0ty1biibdcbi3b"); // else if(S1->p.p1==S2->p.p1) { +UNSUPPORTED("1a96hc1yp8pa6nhuky2f3kpov"); // if(S1->p.p2==S2->p.p2) { +UNSUPPORTED("dakz4gu568b47ilof0mjlkp3g"); // if((S1->l1==S2->l1)&&(S1->l2==S2->l2)) +UNSUPPORTED("dtxrebylagy9i05p1v1fhxnuz"); // return(0); +UNSUPPORTED("57vde3e47agnudbdc9bacshif"); // else if (S2->l1==S2->l2) { +UNSUPPORTED("67o69o09wpy0v0ur5f1l1c5s5"); // if(S2->l1==T1) return(1); +UNSUPPORTED("b6r32yfv7dexk3ru7g6nqwg1g"); // else if(S2->l1==T2) return(-1); +UNSUPPORTED("ek9n5w1l5tq5so113ne9728y8"); // else if ((S1->l1!=T1)&&(S1->l2!=T1)) return (1); +UNSUPPORTED("3877rrvm4cl9vsly8mophiluw"); // else if ((S1->l1!=T2)&&(S1->l2!=T2)) return (-1); +UNSUPPORTED("7ke2h1gpwvqi6ougdwfz82wmh"); // else return 0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("3lz4dhijiqr5ht941jdjwgi7z"); // else if ((S2->l1==T1)&&(S2->l2==T2)) { +UNSUPPORTED("6679v73zr10343sabv0545ajx"); // if ((S1->l1!=T1)&&(S1->l2==T2)) return 1; +UNSUPPORTED("5c357ofc3tlta7b6ntliniwd9"); // else if ((S1->l1==T1)&&(S1->l2!=T2)) return -1; +UNSUPPORTED("7ke2h1gpwvqi6ougdwfz82wmh"); // else return 0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("evz657j0gnvx74823jqra523c"); // else if ((S2->l2==T1)&&(S2->l1==T2)) { +UNSUPPORTED("aitlrwojh186x6j2ty4o4gocm"); // if ((S1->l2!=T1)&&(S1->l1==T2)) return 1; +UNSUPPORTED("er78pkwc9gkhcxvyjq62zor6c"); // else if ((S1->l2==T1)&&(S1->l1!=T2)) return -1; +UNSUPPORTED("7ke2h1gpwvqi6ougdwfz82wmh"); // else return 0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("1ny3yv8c13bp4zcfp8dvffoa8"); // else if ((S2->l1==B_NODE)&&(S2->l2==T1)) { +UNSUPPORTED("4mlaa90t6h9d80djun5rflzkq"); // return ellSeg (S1->l1, S1->l2, T1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("3dq7kw6w7e1wh4etca0rl6d0v"); // else if ((S2->l1==B_NODE)&&(S2->l2==T2)) { +UNSUPPORTED("4i2pfdj4zt2umblnmyoloiduk"); // return -1*ellSeg (S1->l1, S1->l2, T2); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("2v5dfnazye6510cbha31l8i7w"); // else if ((S2->l1==T1)&&(S2->l2==B_NODE)) { +UNSUPPORTED("4rq25g617jse4401t7v75md57"); // return ellSeg (S1->l2, S1->l1, T1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("96b656c5ejlopals3g50cqegi"); // else { /* ((S2->l1==T2)&&(S2->l2==B_NODE)) */ +UNSUPPORTED("bcifb3xs85visnlkzrg2nt70g"); // return -1*ellSeg (S1->l2, S1->l1, T2); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bmcaw8gehzc5d62dx0w3skyig"); // else if(S1->p.p2p.p2) { +UNSUPPORTED("1u3o14xi8e1cxvb445iu3kct6"); // if(S1->l2==T1) +UNSUPPORTED("1qnx7k0mdbkhofu0mdzisxijd"); // return eqEndSeg (S2->l1, S1->l1, T1, T2); +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("d9rodbu7eiqzjvik47smclsdl"); // return -1*eqEndSeg (S2->l1, S1->l1, T1, T2); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7aq9p42tl9bfo9gar2o9pyo6"); // else { /* S1->p.p2>S2->p.p2 */ +UNSUPPORTED("51m1xa8u2znzxazdwantwyuyv"); // if(S2->l2==T2) +UNSUPPORTED("4f3mewxm7upg06y9z4bjrn4vf"); // return eqEndSeg (S1->l1, S2->l1, T1, T2); +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("b7xkdbwtc22b1j95kr0hty8sp"); // return -1*eqEndSeg (S1->l1, S2->l1, T1, T2); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1z3rgo8s9sfovtqdrlci7ydng"); // else if(S1->p.p2==S2->p.p1) { +UNSUPPORTED("dryuqkmwg4utuh4fz56nec4iu"); // if(S1->l2==S2->l1) return(0); +UNSUPPORTED("92dwbh0qiegdwle729knbwdao"); // else if(S1->l2==T2) return(1); +UNSUPPORTED("2yl5dq1it450fqpkn8wjdxab4"); // else return(-1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ewjrcchl8l1d8fp4y1r6qfbp3"); // else { /* S1->p.p1==S2->p.p2 */ +UNSUPPORTED("1h7f8h4o89nvu26mb04i68h34"); // if(S1->l1==S2->l2) return(0); +UNSUPPORTED("e97u2o9q8t0rv2icxkb8fsowu"); // else if(S1->l1==T2) return(1); +UNSUPPORTED("2yl5dq1it450fqpkn8wjdxab4"); // else return(-1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6ufddz487491174h94zezajk8"); // assert(0); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2why0kxj0qrlrn435c0twfblb +// static int seg_cmp(segment* S1, segment* S2) +public static Object seg_cmp(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("5ucj9rj7ohyk0eh1h5jzk9qhh"); // seg_cmp(segment* S1, segment* S2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef82t09fd18di0isi59csjlwu"); // if(S1->isVert!=S2->isVert||S1->comm_coord!=S2->comm_coord) { +UNSUPPORTED("2a6h1eg3z0m4zzhdw7vtdz33i"); // agerr (AGERR, "incomparable segments !! -- Aborting\n"); +UNSUPPORTED("1ghgraebed3srgimi1gdqx5nj"); // longjmp(jbuf, 1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("88n6v57rjcx5w9zz51wjd80mn"); // if(S1->isVert) +UNSUPPORTED("10jcxkwtbmjakpk36jpzzhsnm"); // return segCmp (S1, S2, B_RIGHT, B_LEFT); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("1ealfunb0xbji4f46jf9balu7"); // return segCmp (S1, S2, B_DOWN, B_UP); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7ycppm4b8xqpa85ov0gpp4r1w +// static void add_edges_in_G(channel* cp) +public static Object add_edges_in_G(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("e7prlxhst1riecg8sy2dq7ho3"); // add_edges_in_G(channel* cp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2b5x6xxv7d1fwjdnit9o6fac4"); // int x,y; +UNSUPPORTED("462fowlguwrqt49rjdjc35vdl"); // segment** seg_list = cp->seg_list; +UNSUPPORTED("9zouge4neqmqsg96284lxensf"); // int size = cp->cnt; +UNSUPPORTED("dmbfnx3582vhxsi4o65ruesyn"); // rawgraph* G = cp->G; +UNSUPPORTED("8uyd6tjjadhk8ovw1osaocc0g"); // for(x=0;x+1right)) { +UNSUPPORTED("950o75hi1nj794oxa101pt5t0"); // lp = ((chanItem*)l1)->chans; +UNSUPPORTED("71dqer4eeiqshvsh6rbj0kis5"); // for (l2 = dtflatten (lp); l2; l2 = (((Dtlink_t*)(l2))->right)) { +UNSUPPORTED("135wr0zp93ul7lqzg4608t7cy"); // cp = (channel*)l2; +UNSUPPORTED("b9bbgy74zwpeh6zk1wsld8tx2"); // if (cp->cnt) +UNSUPPORTED("37n1ytiss9w7m68eh2a5ahf44"); // add_edges_in_G(cp); +UNSUPPORTED("9pqd0punhe3g1up9qd8xxo652"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 emn5p2pij0zdp2hl3dyjefe36 +// static segment* next_seg(segment* seg, int dir) +public static Object next_seg(Object... arg) { +UNSUPPORTED("5hl6i4lkcopw8a7eywmfv5qyv"); // static segment* +UNSUPPORTED("6ov8c8zpwswdr0pj1gzchtfwx"); // next_seg(segment* seg, int dir) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6ri8jco2tikytst7ste1069yq"); // assert(seg); +UNSUPPORTED("9yxubvqbrubzc3jcqnh9rpnmf"); // if (!dir) +UNSUPPORTED("8dd4jx4ni1rdife7uof1nuwi9"); // return(seg->prev); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("5c5he207xx8av0i912x9hawr2"); // return(seg->next); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cs3u9dks2e2tzv2xu98p77w90 +// static int propagate_prec(segment* seg, int prec, int hops, int dir) +public static Object propagate_prec(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("tr6cv9djjf64a8yuh6q95jsp"); // propagate_prec(segment* seg, int prec, int hops, int dir) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dpr58lv2eeka28wequlp2xrzl"); // int x; +UNSUPPORTED("ay64podpnebhkrkm9jq6r391s"); // int ans=prec; +UNSUPPORTED("5ih4ipri3bjcgm61xdrc8ud4y"); // segment* next; +UNSUPPORTED("cbeluzwuxiponx0az49dgkui4"); // segment* current; +UNSUPPORTED("o8icbmalf0qgkleaf5kmc0ui"); // current = seg; +UNSUPPORTED("yvzhy5oaj4saluubblynzmhv"); // for(x=1;x<=hops;x++) { +UNSUPPORTED("9h1ebsbxexcfuink8l7o97r07"); // next = next_seg(current, dir); +UNSUPPORTED("2gosr1fjv173ysmvks0ybbgvt"); // if(!current->isVert) { +UNSUPPORTED("4v64kcbbxxsk315fnsi8ya930"); // if(next->comm_coord==current->p.p1) { +UNSUPPORTED("6gkb69knhwko2b5weglnqbil9"); // if(current->l1==B_UP) ans *= -1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("2o8y0vj6uxky1dqkbntiyges"); // if(current->l2==B_DOWN) ans *= -1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("4v64kcbbxxsk315fnsi8ya930"); // if(next->comm_coord==current->p.p1) { +UNSUPPORTED("bzsdu04we48ifrljpe0az0g4j"); // if(current->l1==B_RIGHT) ans *= -1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("2q2w4w0cp24ko6jdyfchiodyq"); // if(current->l2==B_LEFT) ans *= -1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("10sew6kuf3dcpt2wqk10ptksi"); // current = next; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dhivmxtyss2i31bgun146pdvx"); // return(ans); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bp53nx2ri4vm9anrojt7u7c2u +// static int is_parallel(segment* s1, segment* s2) +public static Object is_parallel(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("ddygyr541ybi2kvxacd9n2m9j"); // is_parallel(segment* s1, segment* s2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("51or2j2w3vw4tt3ek3h4o7r2t"); // assert (s1->comm_coord==s2->comm_coord); +UNSUPPORTED("9gufgbv51f5we43a6jx1uyqh9"); // return ((s1->p.p1==s2->p.p1)&& +UNSUPPORTED("4cxvzf3a2g1ubcxf02lgmj2xh"); // (s1->p.p2==s2->p.p2)&& +UNSUPPORTED("bzty8iew02v127lmuh0uuecmi"); // (s1->l1==s2->l1)&& +UNSUPPORTED("8ilakshy93x5k5my1hijj1fpw"); // (s1->l2==s2->l2)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5cy5xm5pageww1ken6y8teea4 +// static pair decide_point(segment* si, segment* sj, int dir1, int dir2) +public static Object decide_point(Object... arg) { +UNSUPPORTED("f1byl3savsjxfld9h2fobwfo3"); // static pair +UNSUPPORTED("7l2qer0l7u4rucnbo5kqj4vgc"); // decide_point(segment* si, segment* sj, int dir1, int dir2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dfk7h3txri9a3b4e7wkrzosju"); // int prec, ans = 0, temp; +UNSUPPORTED("axbwlxs3xs2c5t2is2ke1ham5"); // pair ret; +UNSUPPORTED("36dbtz3qjw44q55zoxfkmkykb"); // segment* np1; +UNSUPPORTED("b95suv5ftmjl1s7ra4hrpi2db"); // segment* np2; +UNSUPPORTED("afc9pg3q0h9ku0fioayd8nokq"); // while ((np1 = next_seg(si,dir1)) && (np2 = next_seg(sj,dir2)) && +UNSUPPORTED("a0ti049y8u1wrflxigii3nmuq"); // is_parallel(np1, np2)) { +UNSUPPORTED("aunxscflrorekqz8lv1sco0h1"); // ans++; +UNSUPPORTED("ok657kaukdbv5j6b55n9lu6c"); // si = np1; +UNSUPPORTED("7e7drakmuxwngzq18f1lbsn1g"); // sj = np2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4z9en58svufdyqqt3fyi3z80j"); // if (!np1) +UNSUPPORTED("98h93apvsb643md8j6fnbun83"); // prec = 0; +UNSUPPORTED("8p3l7vg6fa42z5f9qr4kcwdbk"); // else if (!np2) +UNSUPPORTED("9o9tshvh3903w7oznf4dx4ksw"); // assert(0); /* FIXME */ +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("9sednl43da21gajvwpmk1pyle"); // temp = seg_cmp(np1, np2); +UNSUPPORTED("bojwazeev7k8w4xnz842s9dc6"); // prec = propagate_prec(np1, temp, ans+1, 1-dir1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c46mwi9n2qk3nz5az4iu04e2s"); // ret.a = ans; +UNSUPPORTED("5vibf15888faapk0uzvvophg9"); // ret.b = prec; +UNSUPPORTED("35t727xxibdqfcn6xwikpae5w"); // return(ret); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lqaqtqdkw9rqhmyltdrzs6xy +// static void set_parallel_edges (segment* seg1, segment* seg2, int dir1, int dir2, int hops, maze* mp) +public static Object set_parallel_edges(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("3p9s2fmb4u10tilwejs0l9pp1"); // set_parallel_edges (segment* seg1, segment* seg2, int dir1, int dir2, int hops, +UNSUPPORTED("1rikd6gjoe3cvxggpkhj7z34d"); // maze* mp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dpr58lv2eeka28wequlp2xrzl"); // int x; +UNSUPPORTED("7pmetyg241ybw8hq3j61i271y"); // channel* chan; +UNSUPPORTED("81v3bzorfnk43chwizhwmbb1n"); // channel* nchan; +UNSUPPORTED("2qv0nvdra5zvo2b2ewep1ala4"); // segment* prev1; +UNSUPPORTED("6s95g7xlatuyfm26klez18no0"); // segment* prev2; +UNSUPPORTED("430rnwqjk85b89sh9kt07e6a0"); // if (seg1->isVert) +UNSUPPORTED("4m8jh0bz7h9xwt55zl1stxnm8"); // chan = chanSearch(mp->vchans, seg1); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("4sukugpamblizlwievszn8nl3"); // chan = chanSearch(mp->hchans, seg1); +UNSUPPORTED("1elt521vxb74ewc1nqabq3gby"); // insert_edge(chan->G, seg1->ind_no, seg2->ind_no); +UNSUPPORTED("2n7xloj5t3tkvc8h58imqk8td"); // for (x=1;x<=hops;x++) { +UNSUPPORTED("iytowix4us30gxbxx69ke9rn"); // prev1 = next_seg(seg1, dir1); +UNSUPPORTED("9v39bw7og01cgrd9fnjubn0pi"); // prev2 = next_seg(seg2, dir2); +UNSUPPORTED("7q2x5kqynrhvcsduekv09bdn4"); // if(!seg1->isVert) { +UNSUPPORTED("7hs0lytek5umsxrj0a6jc8t5f"); // nchan = chanSearch(mp->vchans, prev1); +UNSUPPORTED("7lpjkbjai262xfygabcg0nwnu"); // if(prev1->comm_coord==seg1->p.p1) { +UNSUPPORTED("13ucbaachj06c0mvgupkiswfl"); // if(seg1->l1==B_UP) { +UNSUPPORTED("e14484zac1ca6tr55nq056y2s"); // if(edge_exists(chan->G, seg1->ind_no, seg2->ind_no)) +UNSUPPORTED("850me5iwi1gvweet5jzd7lqwy"); // insert_edge(nchan->G, prev2->ind_no, prev1->ind_no); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("9jmkjj0x67qxhr4shs6ibvgk3"); // insert_edge(nchan->G, prev1->ind_no, prev2->ind_no); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("e14484zac1ca6tr55nq056y2s"); // if(edge_exists(chan->G, seg1->ind_no, seg2->ind_no)) +UNSUPPORTED("9jmkjj0x67qxhr4shs6ibvgk3"); // insert_edge(nchan->G, prev1->ind_no, prev2->ind_no); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("850me5iwi1gvweet5jzd7lqwy"); // insert_edge(nchan->G, prev2->ind_no, prev1->ind_no); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("8vywd7o1vdaaij4z9jtx8pi63"); // if(seg1->l2==B_UP) { +UNSUPPORTED("e14484zac1ca6tr55nq056y2s"); // if(edge_exists(chan->G, seg1->ind_no, seg2->ind_no)) +UNSUPPORTED("173hlqu5ukdae2k6wt7ch1x8p"); // insert_edge(nchan->G,prev1->ind_no, prev2->ind_no); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("7lby5m10dvjryzfv32elha7cq"); // insert_edge(nchan->G,prev2->ind_no, prev1->ind_no); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("e14484zac1ca6tr55nq056y2s"); // if(edge_exists(chan->G, seg1->ind_no, seg2->ind_no)) +UNSUPPORTED("850me5iwi1gvweet5jzd7lqwy"); // insert_edge(nchan->G, prev2->ind_no, prev1->ind_no); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("9jmkjj0x67qxhr4shs6ibvgk3"); // insert_edge(nchan->G, prev1->ind_no, prev2->ind_no); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("9tap010f91m7yxd7a77xcc6gy"); // nchan = chanSearch(mp->hchans, prev1); +UNSUPPORTED("7lpjkbjai262xfygabcg0nwnu"); // if(prev1->comm_coord==seg1->p.p1) { +UNSUPPORTED("bv0pfzaflx2zmsfq7fl4fumox"); // if(seg1->l1==B_LEFT) { +UNSUPPORTED("e14484zac1ca6tr55nq056y2s"); // if(edge_exists(chan->G, seg1->ind_no, seg2->ind_no)) +UNSUPPORTED("9jmkjj0x67qxhr4shs6ibvgk3"); // insert_edge(nchan->G, prev1->ind_no, prev2->ind_no); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("850me5iwi1gvweet5jzd7lqwy"); // insert_edge(nchan->G, prev2->ind_no, prev1->ind_no); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("e14484zac1ca6tr55nq056y2s"); // if(edge_exists(chan->G, seg1->ind_no, seg2->ind_no)) +UNSUPPORTED("850me5iwi1gvweet5jzd7lqwy"); // insert_edge(nchan->G, prev2->ind_no, prev1->ind_no); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("9jmkjj0x67qxhr4shs6ibvgk3"); // insert_edge(nchan->G, prev1->ind_no, prev2->ind_no); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("nvpd9xg7sp7w29u53zc5n7om"); // if(seg1->l2==B_LEFT) { +UNSUPPORTED("e14484zac1ca6tr55nq056y2s"); // if(edge_exists(chan->G, seg1->ind_no, seg2->ind_no)) +UNSUPPORTED("850me5iwi1gvweet5jzd7lqwy"); // insert_edge(nchan->G, prev2->ind_no, prev1->ind_no); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("9jmkjj0x67qxhr4shs6ibvgk3"); // insert_edge(nchan->G, prev1->ind_no, prev2->ind_no); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("e14484zac1ca6tr55nq056y2s"); // if(edge_exists(chan->G, seg1->ind_no, seg2->ind_no)) +UNSUPPORTED("9jmkjj0x67qxhr4shs6ibvgk3"); // insert_edge(nchan->G, prev1->ind_no, prev2->ind_no); +UNSUPPORTED("9acag2yacl63g8rg6r1alu62x"); // else +UNSUPPORTED("850me5iwi1gvweet5jzd7lqwy"); // insert_edge(nchan->G, prev2->ind_no, prev1->ind_no); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3d9r09rxjpct04hoj66705cp1"); // chan = nchan; +UNSUPPORTED("2c2yvnaxh16x89y9hq4w5yk1m"); // seg1 = prev1; +UNSUPPORTED("11ckhoc2b2u2dsurx9qg07st6"); // seg2 = prev2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 38cpeb1o8uvzyjd93p234ds9f +// static void removeEdge(segment* seg1, segment* seg2, int dir, maze* mp) +public static Object removeEdge(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("6sgltkpz58p9krap0y1sbvj6k"); // removeEdge(segment* seg1, segment* seg2, int dir, maze* mp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("szrq58jnhhhevz1yqgbr4ck2"); // segment* ptr1; +UNSUPPORTED("31dak66p4n83b984pfixwotla"); // segment* ptr2; +UNSUPPORTED("7pmetyg241ybw8hq3j61i271y"); // channel* chan; +UNSUPPORTED("3f6utfpnejoda18juym1fb1ko"); // ptr1 = seg1; +UNSUPPORTED("4zdcf2h90axz04i03w6ttg5k4"); // ptr2 = seg2; +UNSUPPORTED("bnoomvnxrkeudsz6vyirx44uc"); // while(is_parallel(ptr1, ptr2)) { +UNSUPPORTED("bgoj9z4ow368rwa0wiqpvom0o"); // ptr1 = next_seg(ptr1, 1); +UNSUPPORTED("6k9a6lk6tlg00as6qklki8xiz"); // ptr2 = next_seg(ptr2, dir); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ai7oa06ous30ke73ob1k1h6go"); // if(ptr1->isVert) +UNSUPPORTED("7qlxjn3a1d6nys3x5s0ngrs5q"); // chan = chanSearch(mp->vchans, ptr1); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("79qdq8et7m2rlyh1z4wss3y1n"); // chan = chanSearch(mp->hchans, ptr1); +UNSUPPORTED("1f4mrzxo4q83k5yazad1hezbb"); // remove_redge (chan->G, ptr1->ind_no, ptr2->ind_no); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eiig50kmclab4ei88pq4soo34 +// static void addPEdges (channel* cp, maze* mp) +public static Object addPEdges(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("68fs5heyk95e6jn74c6cgq01t"); // addPEdges (channel* cp, maze* mp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8nbbb2xvtigkcv51627tsphb7"); // int i,j; +UNSUPPORTED("691z894ert27013tlk15hh2qh"); // /* dir[1,2] are used to figure out whether we should use prev +UNSUPPORTED("d52bbwvlo6xaftcxmyc07f9w5"); // * pointers or next pointers -- 0 : decrease, 1 : increase +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("2ihd1217lj7h5zt9n0d1q5cna"); // int dir; +UNSUPPORTED("2ur22e7h79m2ohnopwac8a76b"); // /* number of hops along the route to get to the deciding points */ +UNSUPPORTED("8czu5hbarwrdzcuxp2djvv4rp"); // pair hops; +UNSUPPORTED("3cz2vt0y2kw2ogxww3u2j1kl6"); // /* precedences of the deciding points : same convention as +UNSUPPORTED("1tpdmm5wve9rduvay2ahgvle9"); // * seg_cmp function +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("522qtrew5eqvwpn5wxnu2k9dn"); // int prec1, prec2; +UNSUPPORTED("1fnwnz6zqrixdpfmd5wf4hbj"); // pair p; +UNSUPPORTED("dmbfnx3582vhxsi4o65ruesyn"); // rawgraph* G = cp->G; +UNSUPPORTED("7hb8fcc74usveupz7kgy2qol3"); // segment** segs = cp->seg_list; +UNSUPPORTED("39nnkurg9t4qq74t5jz3zkjrl"); // for(i=0;i+1cnt;i++) { +UNSUPPORTED("6a9jbb5aterxr0g0hiu2pyhld"); // for(j=i+1;jcnt;j++) { +UNSUPPORTED("3dvaxn4ireem858ssmcsr58hn"); // if (!edge_exists(G,i,j) && !edge_exists(G,j,i)) { +UNSUPPORTED("dpy9omkq97zyoo9w1inx3pbm9"); // if (is_parallel(segs[i], segs[j])) { +UNSUPPORTED("6ig9p93cmed2v70a0npblnlxp"); // /* get_directions */ +UNSUPPORTED("amvy33u98h6r9qq7ugnuf2nlz"); // if(segs[i]->prev==0) { +UNSUPPORTED("cc25alanei7n0arh5bqailcv4"); // if(segs[j]->prev==0) +UNSUPPORTED("27dopm02s7e623flmf0oyucf6"); // dir = 0; +UNSUPPORTED("cqgi8f4d37bqva8z6bx5rvn7w"); // else +UNSUPPORTED("afmb9itetac5509pz0vzquffn"); // dir = 1; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6tva5tknk59csaydjoaehlxqy"); // else if(segs[j]->prev==0) { +UNSUPPORTED("bf3scu300t9b1jl5wrxkahki9"); // dir = 1; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("cphaexi33y32dnefwtu3jsom4"); // else { +UNSUPPORTED("ay1tigliz8fu739c3s4lnp4c8"); // if(segs[i]->prev->comm_coord==segs[j]->prev->comm_coord) +UNSUPPORTED("27dopm02s7e623flmf0oyucf6"); // dir = 0; +UNSUPPORTED("cqgi8f4d37bqva8z6bx5rvn7w"); // else +UNSUPPORTED("afmb9itetac5509pz0vzquffn"); // dir = 1; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("2h9ts7wzrya1rr66lklhh0rda"); // p = decide_point(segs[i], segs[j], 0, dir); +UNSUPPORTED("y15vvy2yhgh75hmjibm6d0tv"); // hops.a = p.a; +UNSUPPORTED("6y60dh26moscelbp5xfex7fy7"); // prec1 = p.b; +UNSUPPORTED("1fwna4qrlam89qjgrsjnzwkuc"); // p = decide_point(segs[i], segs[j], 1, 1-dir); +UNSUPPORTED("7ck6vr1ic310ui6v7y8lcpwbh"); // hops.b = p.a; +UNSUPPORTED("564q1rsht56yza954y2x1jtm"); // prec2 = p.b; +UNSUPPORTED("dtcs9mr4kwcta690gbrwlt910"); // switch(prec1) { +UNSUPPORTED("7xhopigym72b3wkri4tfjy1dy"); // case -1 : +UNSUPPORTED("enqa6da4597ij1v8v5x3f251q"); // set_parallel_edges (segs[j], segs[i], dir, 0, hops.a, mp); +UNSUPPORTED("6diyb5ikl44b7ym0eennr0yq6"); // set_parallel_edges (segs[j], segs[i], 1-dir, 1, hops.b, mp); +UNSUPPORTED("5r2jji4zmdfrbfwx99e4tv69i"); // if(prec2==1) +UNSUPPORTED("8x6usd0clpqn19g8onqqgzjn4"); // removeEdge (segs[i], segs[j], 1-dir, mp); +UNSUPPORTED("a5064jph9xpw67dcun2my4mcm"); // break; +UNSUPPORTED("22xfu28lqt3r284k47pbuy7cz"); // case 0 : +UNSUPPORTED("4dfzzbp1vuxk64hoh65xa34yc"); // switch(prec2) { +UNSUPPORTED("4gsejoo0eevrt7un6e6qn989l"); // case -1: +UNSUPPORTED("emhqawmwj90tfh02qk8r1pk0v"); // set_parallel_edges (segs[j], segs[i], dir, 0, hops.a, mp); +UNSUPPORTED("9n3o6zltbzimqd4msu9ngqtyd"); // set_parallel_edges (segs[j], segs[i], 1-dir, 1, hops.b, mp); +UNSUPPORTED("a4shncx2bmdaa04gvja9v2blz"); // break; +UNSUPPORTED("9bar4olfqd3r7389ggqw5djvq"); // case 0 : +UNSUPPORTED("2s64t77sytwec1d6n2jbf74wc"); // set_parallel_edges (segs[i], segs[j], 0, dir, hops.a, mp); +UNSUPPORTED("6r0468haso97c6g4zkdfg9kt2"); // set_parallel_edges (segs[i], segs[j], 1, 1-dir, hops.b, mp); +UNSUPPORTED("a4shncx2bmdaa04gvja9v2blz"); // break; +UNSUPPORTED("4yd30eh9icuxnqotseihb7l4w"); // case 1: +UNSUPPORTED("2s64t77sytwec1d6n2jbf74wc"); // set_parallel_edges (segs[i], segs[j], 0, dir, hops.a, mp); +UNSUPPORTED("6r0468haso97c6g4zkdfg9kt2"); // set_parallel_edges (segs[i], segs[j], 1, 1-dir, hops.b, mp); +UNSUPPORTED("a4shncx2bmdaa04gvja9v2blz"); // break; +UNSUPPORTED("3to5h0rvqxdeqs38mhv47mm3o"); // } +UNSUPPORTED("a5064jph9xpw67dcun2my4mcm"); // break; +UNSUPPORTED("7725wrsrh4ancb1bh89l3x12r"); // case 1 : +UNSUPPORTED("3ubmnbt9kypi1ptpye7w37vkl"); // set_parallel_edges (segs[i], segs[j], 0, dir, hops.a, mp); +UNSUPPORTED("4s97q82e6wclxf2y8jhzfh14k"); // set_parallel_edges (segs[i], segs[j], 1, 1-dir, hops.b, mp); +UNSUPPORTED("5zh7u5zg9v4zshpcfsj3brwfk"); // if(prec2==-1) +UNSUPPORTED("8x6usd0clpqn19g8onqqgzjn4"); // removeEdge (segs[i], segs[j], 1-dir, mp); +UNSUPPORTED("a5064jph9xpw67dcun2my4mcm"); // break; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 98d1c54yaxchy0ms0e99lst7s +// static void add_p_edges (Dt_t* chans, maze* mp) +public static Object add_p_edges(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("5ebboq5zrhtd0rfaeawkl5s2f"); // add_p_edges (Dt_t* chans, maze* mp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a4p8766eh6ra21i7u5o9nf6rm"); // Dt_t* lp; +UNSUPPORTED("1mqjeo37v4tmo6kht0rep1tht"); // Dtlink_t* l1; +UNSUPPORTED("eiqtkkndttzmunuxtnm99mkpy"); // Dtlink_t* l2; +UNSUPPORTED("cp4kv1fg74up3ubek2qyx8d25"); // for (l1 = dtflatten (chans); l1; l1 = (((Dtlink_t*)(l1))->right)) { +UNSUPPORTED("950o75hi1nj794oxa101pt5t0"); // lp = ((chanItem*)l1)->chans; +UNSUPPORTED("71dqer4eeiqshvsh6rbj0kis5"); // for (l2 = dtflatten (lp); l2; l2 = (((Dtlink_t*)(l2))->right)) { +UNSUPPORTED("di14tjuua1p9n96grrfboue6o"); // addPEdges ((channel*)l2, mp); +UNSUPPORTED("9pqd0punhe3g1up9qd8xxo652"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxsh28469kd6r9fen9l7v8f2w +// static void assignTracks (int nrtes, route* route_list, maze* mp) +public static Object assignTracks(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("e80kmdu0n8gwftxrcchppqznf"); // assignTracks (int nrtes, route* route_list, maze* mp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("26qmbe7syf8caazopicbw1o73"); // /* Create the graphs for each channel */ +UNSUPPORTED("5kswlmxeu7z6znausks9omj52"); // create_graphs(mp->hchans); +UNSUPPORTED("1qo05yt4o0eiyn1axxxfiecee"); // create_graphs(mp->vchans); +UNSUPPORTED("9k9f44tgb14d6rvcxauyk4kg3"); // /* add edges between non-parallel segments */ +UNSUPPORTED("2bpipgzzkyey9l1jwcx2ytvc0"); // add_np_edges(mp->hchans); +UNSUPPORTED("7fju2e1xyweu6benhq0akolab"); // add_np_edges(mp->vchans); +UNSUPPORTED("a2akrqgy2t88akl274eg0somv"); // /* add edges between parallel segments + remove appropriate edges */ +UNSUPPORTED("5zdimrk15jv0lju7twpsqz29m"); // add_p_edges(mp->hchans, mp); +UNSUPPORTED("9bqggms2mbxxvkbh0u4jidv0l"); // add_p_edges(mp->vchans, mp); +UNSUPPORTED("9envbpdpd498dstkls2pqtswo"); // /* Assign the tracks after a top sort */ +UNSUPPORTED("10z0c5n6u2v6o7td59aig5lfd"); // assignTrackNo (mp->hchans); +UNSUPPORTED("t8kw88xoabf7nbvqv8ds7www"); // assignTrackNo (mp->vchans); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 udi38qq74cw0pvrqn6g1yle5 +// static double vtrack (segment* seg, maze* m) +public static Object vtrack(Object... arg) { +UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("19x5ivyvkfhintu5d2rpflcvo"); // vtrack (segment* seg, maze* m) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1xvv17gm5rfjinvy3gmnsc2ke"); // channel* chp = chanSearch(m->vchans, seg); +UNSUPPORTED("76k3vszrhcky681kek2r7d5h9"); // double f = ((double)seg->track_no)/(chp->cnt+1); +UNSUPPORTED("2ug8vx71z1uw4iw38ehgqdc7g"); // double left = chp->cp->bb.LL.x; +UNSUPPORTED("f2ozrx5u8liyshw7972fqzlry"); // double right = chp->cp->bb.UR.x; +UNSUPPORTED("2gju483ltduiu0c964t9ir9wa"); // return left + f*(right-left); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3cqaxjb6pietkwiyugn6h26kd +// static int htrack (segment* seg, maze* m) +public static Object htrack(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("a2hs7lm69vuj9mt0513f8z4oz"); // htrack (segment* seg, maze* m) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("40ntn3e9uwr1zuuu2sbtdsa6w"); // channel* chp = chanSearch(m->hchans, seg); +UNSUPPORTED("erszzli51plsbzcgsn48c0180"); // double f = 1.0 - ((double)seg->track_no)/(chp->cnt+1); +UNSUPPORTED("4i67gabp0r3u9scclorhs3ktm"); // double lo = chp->cp->bb.LL.y; +UNSUPPORTED("4p8tiujx3t2fm7is5dxnoqxhe"); // double hi = chp->cp->bb.UR.y; +UNSUPPORTED("83od9je177vrwp4ps0kbd4szw"); // return lo + f*(hi-lo); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 83e5ejcqta67f2p2asgbtfaoi +// static pointf addPoints(pointf p0, pointf p1) +public static Object addPoints(Object... arg) { +UNSUPPORTED("2zzd7mrm2u540dwuyzehozffj"); // static pointf +UNSUPPORTED("682qkd4mibtnxpxyv5orrsjtx"); // addPoints(pointf p0, pointf p1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("f5hox117bxx1r58lcs3udisoe"); // p0.x += p1.x; +UNSUPPORTED("ujsxixrtu1t8f32elbvw8dwa"); // p0.y += p1.y; +UNSUPPORTED("3eojsvh2rm970fcai0twfpvnl"); // return p0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a0iuxsb2zu9l7k8a3v4ixv00e +// static void attachOrthoEdges (Agraph_t* g, maze* mp, int n_edges, route* route_list, splineInfo *sinfo, epair_t es[], int doLbls) +public static Object attachOrthoEdges(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("cspgusupjxy5utjicgxrmrq7w"); // attachOrthoEdges (Agraph_t* g, maze* mp, int n_edges, route* route_list, splineInfo *sinfo, epair_t es[], int doLbls) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bzsk5t9x5gtbz8fnomb2f9s4v"); // int irte = 0; +UNSUPPORTED("9guu55302lj09t48j16nqyxbq"); // int i, ipt, npts; +UNSUPPORTED("5b40dnpfc88et1cia7fuj40yb"); // pointf* ispline = 0; +UNSUPPORTED("dprplco8u5mu9i11jo6go6bcy"); // int splsz = 0; +UNSUPPORTED("2asgcu0nywvhoazecb6ofcubs"); // pointf p, p1, q1; +UNSUPPORTED("76tjoqkn7jsh2pn0trcuu3nvs"); // route rte; +UNSUPPORTED("9ixgpcejsl25oetqsy1ewnfnu"); // segment* seg; +UNSUPPORTED("6yramhpyls8c6kexupyqip8oq"); // Agedge_t* e; +UNSUPPORTED("ef044lvbrsjiucn4ouhr6x2qb"); // textlabel_t* lbl; +UNSUPPORTED("77xmhk7dbpg0c00j8666pclyi"); // for (; irte < n_edges; irte++) { +UNSUPPORTED("bv52iygkt2gg4gzoyp4c9wk6b"); // e = es[irte].e; +UNSUPPORTED("ay9p5i1iubyhzon5z6a3jrw9n"); // p1 = addPoints(ND_coord(agtail(e)), ED_tail_port(e).p); +UNSUPPORTED("4z87m5xmyxfqf4gbe4pskna9n"); // q1 = addPoints(ND_coord(aghead(e)), ED_head_port(e).p); +UNSUPPORTED("8wciy7quxxigt8dwxr9ctgk2d"); // rte = route_list[irte]; +UNSUPPORTED("6ed9g47vzboko6g0h5y17e1ou"); // npts = 1 + 3*rte.n; +UNSUPPORTED("efs0cd713nnm7zxrgb0l11wz"); // if (npts > splsz) { +UNSUPPORTED("5d7b0ws1zxf4b536zojp5j1gy"); // if (ispline) free (ispline); +UNSUPPORTED("dqxwk098ekx7gst5gdhr310bc"); // ispline = (pointf*)gmalloc((npts)*sizeof(pointf)); +UNSUPPORTED("e4i1tff7gmkjg8kevj7hw8gs1"); // splsz = npts; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1ry9c35mgaxl2ivjx1h2v5cr0"); // seg = rte.segs; +UNSUPPORTED("6pz2d4cdoe2l7351iysy6x98p"); // if (seg->isVert) { +UNSUPPORTED("91n0eh3r7wj0n97kdj9ld31kj"); // p.x = vtrack(seg, mp); +UNSUPPORTED("45fe06ci8qec4u7eii52becqh"); // p.y = p1.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("9t5iimum2tu1jo5tlcx6m7fhq"); // p.y = htrack(seg, mp); +UNSUPPORTED("8je4vuu6jnq5fu4znanftosq8"); // p.x = p1.x; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("76sz3tzo9psbgiwiel6nlkhyd"); // ispline[0] = ispline[1] = p; +UNSUPPORTED("2xvzqz1y0roznr4j0qz8gdn97"); // ipt = 2; +UNSUPPORTED("ehl4i682tsgw4ev386bxd9bvk"); // for (i = 1;iisVert) +UNSUPPORTED("5ordk0g9tt85vst6tn9y7yw5e"); // p.x = vtrack(seg, mp); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("2e3jl8piax6scxsrx2jl4mn0m"); // p.y = htrack(seg, mp); +UNSUPPORTED("5zlu7lc3edxwcalx4u2toh91o"); // ispline[ipt+2] = ispline[ipt+1] = ispline[ipt] = p; +UNSUPPORTED("1h4km88eju8ubv62x2a9mwdzm"); // ipt += 3; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6pz2d4cdoe2l7351iysy6x98p"); // if (seg->isVert) { +UNSUPPORTED("91n0eh3r7wj0n97kdj9ld31kj"); // p.x = vtrack(seg, mp); +UNSUPPORTED("obj8bne89a63k09t0vg3ksax"); // p.y = q1.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("9t5iimum2tu1jo5tlcx6m7fhq"); // p.y = htrack(seg, mp); +UNSUPPORTED("cwlvttt636ou35je24a6zn8fw"); // p.x = q1.x; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6883d1dn4elcixp0dy2yzu4ck"); // ispline[ipt] = ispline[ipt+1] = p; +UNSUPPORTED("e7wcbocwpb0ubwm19n3qdsfdu"); // if (Verbose > 1) +UNSUPPORTED("6243buyivvpmixvapfka7f2n3"); // fprintf(stderr, "ortho %s %s\n", agnameof(agtail(e)),agnameof(aghead(e))); +UNSUPPORTED("aiznf16jsmgfywhbln59n8weh"); // clip_and_install(e, aghead(e), ispline, npts, sinfo); +UNSUPPORTED("5odapjhwjcy61acm5m79qw8fs"); // if (doLbls && (lbl = ED_label(e)) && !lbl->set) +UNSUPPORTED("2bpsdc28nv5l876oe7rqtanlx"); // addEdgeLabels(g, e, p1, q1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c0bfcb8svwdkq95cokqra1pi2"); // free(ispline); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e71zkztxzapvl1mgiq8p5gzzs +// static int edgeLen (Agedge_t* e) +public static Object edgeLen(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("4eh66xikxzh6l4lhjcmvtv8cn"); // edgeLen (Agedge_t* e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1vcqzavbye1orax38cfndljrr"); // pointf p = ND_coord(agtail(e)); +UNSUPPORTED("d1qthvuzf3w3d5qujx199xm23"); // pointf q = ND_coord(aghead(e)); +UNSUPPORTED("7b42di3iyhbsuhhw6yaw6539m"); // return (int)DIST2(p,q); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7afj2qnluiytxt8hvcnhreb2 +// static int edgecmp(epair_t* e0, epair_t* e1) +public static Object edgecmp(Object... arg) { +UNSUPPORTED("4biy4n19ul16vp6vcv9xmui1i"); // static int edgecmp(epair_t* e0, epair_t* e1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dlcw570tkt0usu32yvwm8cd3q"); // return (e0->d - e1->d); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 v4bpabyggw2gk3qw5qiapig9 +// static boolean spline_merge(node_t * n) +public static Object spline_merge(Object... arg) { +UNSUPPORTED("676qpx3n8ouo1wjyumn6zmyxp"); // static boolean spline_merge(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 90yjqn8lf9ig968uma0q5sh34 +// static boolean swap_ends_p(edge_t * e) +public static Object swap_ends_p(Object... arg) { +UNSUPPORTED("3fjj0uj2p25pitmluszw94p02"); // static boolean swap_ends_p(edge_t * e) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 9nmy74adtwr7rthq8xzoptzrf +// static splineInfo sinfo = + + + + +//3 9rb5k3o906weqm31n2i8lv5so +// void orthoEdges (Agraph_t* g, int doLbls) +public static Object orthoEdges(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("9ttq9irkfbqsx0q7wcnetzy74"); // orthoEdges (Agraph_t* g, int doLbls) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2omyui5qg1nq6by9uehikdjsy"); // sgraph* sg; +UNSUPPORTED("7cg9ke1jhysixb020x5an69jv"); // maze* mp; +UNSUPPORTED("cu6yxi1acnq5g0btge7zjdkm0"); // int n_edges; +UNSUPPORTED("9ro0xuxbh1xd61xqzcaaadikl"); // route* route_list; +UNSUPPORTED("bl7f59ax29638dd6kka6eopr"); // int i, gstart; +UNSUPPORTED("ci2zh69w6nhi0q816i1ixuy9k"); // Agnode_t* n; +UNSUPPORTED("6yramhpyls8c6kexupyqip8oq"); // Agedge_t* e; +UNSUPPORTED("7kt5z7l3gj30fc2g11brz7hn3"); // snode* sn; +UNSUPPORTED("4lm0qpz2knefonz0ik550n9qi"); // snode* dn; +UNSUPPORTED("f0kzqokjxzhga3oyrmev903hw"); // epair_t* es = (epair_t*)gmalloc((agnedges(g))*sizeof(epair_t)); +UNSUPPORTED("ih7y3b036cc7gqpd8tqtpr9q"); // cell* start; +UNSUPPORTED("1jv0h6v7ggk7dfm6oqzs4u3lj"); // cell* dest; +UNSUPPORTED("4vt2v1dwhho9ajlyh6nnd1d8h"); // PointSet* ps; +UNSUPPORTED("ef044lvbrsjiucn4ouhr6x2qb"); // textlabel_t* lbl; +UNSUPPORTED("e800kdbiqq8i4me0u6fwkd370"); // if (Concentrate) +UNSUPPORTED("7r91fjc8u70111hbxlvqd7ktw"); // ps = newPS(); +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("9wn8pvvih4vrawe5alvfhm9yn"); // char* s = agget(g, "odb"); +UNSUPPORTED("b8c7bwegidsegu11m5xttb11j"); // char c; +UNSUPPORTED("1jro8v0ct38i7wcl91bk3ic3e"); // odb_flags = 0; +UNSUPPORTED("3jmzbbt2cpizqt2dufx87w3al"); // if (s && (*s != '\0')) { +UNSUPPORTED("7ns3g2gy7v368e78t92w9xfwe"); // while ((c = *s++)) { +UNSUPPORTED("2mo7busikqaj4ukkdtf5zm8ik"); // switch (c) { +UNSUPPORTED("ahx4iaogjvo14pciwab02xzsk"); // case 'c' : +UNSUPPORTED("eai7hbieqphsrvjgzprem79fi"); // odb_flags |= 8; // emit channel graph +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("3dcblef3ry3y3dukenp1w4dfg"); // case 'i' : +UNSUPPORTED("8f1c36fjkua8s8jgm0zigqvgv"); // odb_flags |= (2|16); // emit search graphs +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("a5nt85f0rq0jcipae19734270"); // case 'm' : +UNSUPPORTED("6jh77aqljluu3rx42j6uz2wog"); // odb_flags |= 1; // emit maze +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("ci305ii9fygih5qjkc9cb43gn"); // case 'r' : +UNSUPPORTED("db7u5t19gdpwvuygsvb2vjc3d"); // odb_flags |= 4; // emit routes in maze +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("bt1b5biu9zb9zccgj0cr658xz"); // case 's' : +UNSUPPORTED("3uqs3qb95942pbzmg53uqc42a"); // odb_flags |= 2; // emit search graph +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("71u00vuawtzqg4gz0lsai1m4a"); // if (doLbls) { +UNSUPPORTED("10xzs4g55w92883ej7ty5glms"); // agerr(AGWARN, "Orthogonal edges do not currently handle edge labels. Try using xlabels.\n"); +UNSUPPORTED("ditf90dyqp9mua87s8pumvi32"); // doLbls = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("etv0iiw2ala4rlayc040wzggy"); // mp = mkMaze (g, doLbls); +UNSUPPORTED("4mmgpe06gcmxv31p3y6ipyf5s"); // sg = mp->sg; +UNSUPPORTED("emjkv8wxfnbb355266hsa90ni"); // if (odb_flags & 2) emitSearchGraph (stderr, sg); +UNSUPPORTED("6kfj8qzl4paerer9gefcgsf7h"); // /* store edges to be routed in es, along with their lengths */ +UNSUPPORTED("c8047kmsz3vp9lv0w3cw7yas8"); // n_edges = 0; +UNSUPPORTED("ef1ej9licmntta3ibshtov76v"); // for (n = agfstnode (g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("bojcrt9w5b2e0csoijdzfkvq9"); // for (e = agfstout(g, n); e; e = agnxtout(g,e)) { +UNSUPPORTED("2xpa4q3kqyqhcc2z6j7asagqt"); // if ((Nop == 2) && ED_spl(e)) continue; +UNSUPPORTED("41rwk0z8paqjc2mcm2a1byosa"); // if (Concentrate) { +UNSUPPORTED("9luudm8wqdv4jx4s0ustrk6br"); // int ti = AGSEQ(agtail(e)); +UNSUPPORTED("c976iy0d8sqzcrczrfzsoevxv"); // int hi = AGSEQ(aghead(e)); +UNSUPPORTED("48wqpeunj9fn8sno227cy07cn"); // if (ti <= hi) { +UNSUPPORTED("4xk5rpi8h5diyml5ko1c9pb4o"); // if (isInPS (ps,ti,hi)) continue; +UNSUPPORTED("eufspanc57875qmod8zz8vvj"); // else addPS (ps,ti,hi); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("9g3uik8w4uis1skxgzm9wfjkr"); // if (isInPS (ps,hi,ti)) continue; +UNSUPPORTED("ckw8orokucnmrq9rly0vp6483"); // else addPS (ps,hi,ti); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("disvm7blt6qwq36jp0pcx05p8"); // es[n_edges].e = e; +UNSUPPORTED("8treoc9xy0md6z4ggqb44auyg"); // es[n_edges].d = edgeLen (e); +UNSUPPORTED("e9hecjb6c3qp2o2tya683ai62"); // n_edges++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("191cpw36uzdm3gqmxfphm1xbu"); // route_list = (route*)zmalloc((n_edges)*sizeof(route)); +UNSUPPORTED("2gq02agovwtyskbeh5vefmslh"); // qsort((char *)es, n_edges, sizeof(epair_t), (qsort_cmpf) edgecmp); +UNSUPPORTED("brl796jea4mql81k1b7ershdc"); // gstart = sg->nnodes; +UNSUPPORTED("cs9x91hl58n3ub79e9ugvdn4x"); // PQgen (sg->nnodes+2); +UNSUPPORTED("5d43q0fg31x5nwtqm0ata3zjz"); // sn = &sg->nodes[gstart]; +UNSUPPORTED("66qkjbw0jrnak7d2s42h0jg70"); // dn = &sg->nodes[gstart+1]; +UNSUPPORTED("6gdenpywxn3p3xidvp7z66cf1"); // for (i = 0; i < n_edges; i++) { +UNSUPPORTED("49gwq06gbm2qhfpy2s6ar6gje"); // if ((i > 0) && (odb_flags & 16)) emitSearchGraph (stderr, sg); +UNSUPPORTED("a80m8bfu7lu477kat2scc0z01"); // e = es[i].e; +UNSUPPORTED("cod1w9an9gcxijan671a4atdt"); // start = ((cell*)ND_alg(agtail(e))); +UNSUPPORTED("emi0a8wy2fz98d3tyq50nu13j"); // dest = ((cell*)ND_alg(aghead(e))); +UNSUPPORTED("3n4xox18pqitgomsjx10rjonm"); // if (doLbls && (lbl = ED_label(e)) && lbl->set) { +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("596hk3sqi3zgv5ypngx0bx7mq"); // if (start == dest) +UNSUPPORTED("d0zcyw4sme2i3mtmhe3hlbrmc"); // addLoop (sg, start, dn, sn); +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("3uirdblzfj10bp724w2p35bup"); // addNodeEdges (sg, dest, dn); +UNSUPPORTED("52k51th88uehvgef7fd4gfbu6"); // addNodeEdges (sg, start, sn); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("dd3ztkz69q7dffhj4ihaizk6s"); // if (shortPath (sg, dn, sn)) goto orthofinish; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("nl2nzce1mtx118xuy1w9uq6v"); // route_list[i] = convertSPtoRoute(sg, sn, dn); +UNSUPPORTED("bt25p7tmlvva5imw8gh97toy4"); // reset (sg); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9br7yf8ixw2vq0ih496kr0a3p"); // PQfree (); +UNSUPPORTED("1h1p1wlchwso3mavejmc8cyxv"); // mp->hchans = extractHChans (mp); +UNSUPPORTED("dbw3nbw93ongdgdhdtscvuxb8"); // mp->vchans = extractVChans (mp); +UNSUPPORTED("9r77bxpkuu3nsxa0nttqjh0hl"); // assignSegs (n_edges, route_list, mp); +UNSUPPORTED("bbjzso9cox08g0ax9rs132q90"); // if (setjmp(jbuf)) +UNSUPPORTED("uycdh1qmy4ty2pb0zgz2v78a"); // goto orthofinish; +UNSUPPORTED("41rz8iqv9lm60deshcar8hjxa"); // assignTracks (n_edges, route_list, mp); +UNSUPPORTED("as0ctk4holgq03a3hl4doch8d"); // if (odb_flags & 4) emitGraph (stderr, mp, n_edges, route_list, es); +UNSUPPORTED("c1p0r114sfd1lvyamywzbro10"); // attachOrthoEdges (g, mp, n_edges, route_list, &sinfo, es, doLbls); +UNSUPPORTED("7e5qeaxbygknkdgnv53oq2u1e"); // orthofinish: +UNSUPPORTED("2o1inibord55o8k32yn7kfrwl"); // if (Concentrate) +UNSUPPORTED("ghiimsk3vbhjzh67h8pwbk95"); // freePS (ps); +UNSUPPORTED("an57w0rx9dpimg8nf764q8n97"); // for (i=0; i < n_edges; i++) +UNSUPPORTED("3fz1dnh6u4wislz0u5bxb5ugh"); // free (route_list[i].segs); +UNSUPPORTED("570o41p0l7jgclg83j647v910"); // free (route_list); +UNSUPPORTED("3pnwqn95p3wz9ni8ys8j0u5hv"); // freeMaze (mp); +UNSUPPORTED("d507lsxnfvq57ccke7bica6zl"); // free (es); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 d9p47q2g7x3b0asfu3jvceq3l +// static char* prolog2 = + + +//1 475m5xvb3loybtd1l2z8rftoq +// static char* epilog2 = + + + + +//3 dx1s3vj94skvk7pmrz4s875l9 +// static point coordOf (cell* cp, snode* np) +public static Object coordOf(Object... arg) { +UNSUPPORTED("5ji3k3tukj2uxmd2ympfpwtml"); // static point +UNSUPPORTED("dd9sjhv4zfl34767d8g79k27"); // coordOf (cell* cp, snode* np) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("41nrdsugvfgw23s93g0dhizkn"); // point p; +UNSUPPORTED("703pcgiucdy0i6g6mphde8dno"); // if (cp->sides[M_TOP] == np) { +UNSUPPORTED("68easn97lilb2aqdb8frrsss1"); // p.x = (cp->bb.LL.x + cp->bb.UR.x)/2; +UNSUPPORTED("6aab1cx7aql0barme21mg8zqj"); // p.y = cp->bb.UR.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("835f42b2b380czfp1110k8i9k"); // else if (cp->sides[M_BOTTOM] == np) { +UNSUPPORTED("68easn97lilb2aqdb8frrsss1"); // p.x = (cp->bb.LL.x + cp->bb.UR.x)/2; +UNSUPPORTED("2hak744886lhw45wamafgo56x"); // p.y = cp->bb.LL.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5ik2pzxq0pwcq7l7og6ti9ee3"); // else if (cp->sides[M_LEFT] == np) { +UNSUPPORTED("1t69shrxanujd9qd85gq4qeng"); // p.y = (cp->bb.LL.y + cp->bb.UR.y)/2; +UNSUPPORTED("4k1o0atpyqo35gcbuse4az3rg"); // p.x = cp->bb.LL.x; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4u9elo3yvf0zruskl3zjt2b2f"); // else if (cp->sides[M_RIGHT] == np) { +UNSUPPORTED("1t69shrxanujd9qd85gq4qeng"); // p.y = (cp->bb.LL.y + cp->bb.UR.y)/2; +UNSUPPORTED("ehaxid5d4p09fg8swm5oivbh9"); // p.x = cp->bb.UR.x; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 88q5zadn0aehrwxgxwm2qrbrk +// static boxf emitEdge (FILE* fp, Agedge_t* e, route rte, maze* m, int ix, boxf bb) +public static Object emitEdge(Object... arg) { +UNSUPPORTED("d5qt6s97burjfu5qe0oxyyrmr"); // static boxf +UNSUPPORTED("dnxab88k0n0c2bl3z0wgvml6i"); // emitEdge (FILE* fp, Agedge_t* e, route rte, maze* m, int ix, boxf bb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eusea1bk6jn8fd1b9chikta59"); // int i, x, y; +UNSUPPORTED("orqp5l9owubc5xfs0c6zc4fu"); // boxf n = ((cell*)ND_alg(agtail(e)))->bb; +UNSUPPORTED("bv14gu5qoc27okyaav2vdl3fi"); // segment* seg = rte.segs; +UNSUPPORTED("9z20n0kimree8b0ala1dzcz3f"); // if (seg->isVert) { +UNSUPPORTED("d35lpqdphvgn7a4elfttfttf5"); // x = vtrack(seg, m); +UNSUPPORTED("7d8m8clw270qs6crbw28fvj90"); // y = (n.UR.y + n.LL.y)/2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("cl661znjs3x3fj8d1y9cg24sj"); // y = htrack(seg, m); +UNSUPPORTED("c1hxt4wou5pqdatrc4gw3y5yt"); // x = (n.UR.x + n.LL.x)/2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("xhluynvutbzbfvcxx2cjyytz"); // bb.LL.x = MIN(bb.LL.x, 1*x); +UNSUPPORTED("33wk87zqb5r4f23468khg93pg"); // bb.LL.y = MIN(bb.LL.y, 1*y); +UNSUPPORTED("6mk0mwcxlhcgch8smmk49m01g"); // bb.UR.x = MAX(bb.UR.x, 1*x); +UNSUPPORTED("4z54bwwdfw0evollgabbhoyfh"); // bb.UR.y = MAX(bb.UR.y, 1*y); +UNSUPPORTED("bd57sg9ngr5l29b4xy3hasneh"); // fprintf (fp, "newpath %d %d moveto\n", 1*x, 1*y); +UNSUPPORTED("rfx8uba9j7zxsbk2dfcyo2j8"); // for (i = 1;iisVert) { +UNSUPPORTED("1b5sxos9qcnmmvphnk5nns37s"); // x = vtrack(seg, m); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("19kkar9zhosg7ryut8il82rx7"); // y = htrack(seg, m); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2d7turuf2z2kzsjsi5ajmg6np"); // bb.LL.x = MIN(bb.LL.x, 1*x); +UNSUPPORTED("c2qeisl94yrotinrfx39xxqo3"); // bb.LL.y = MIN(bb.LL.y, 1*y); +UNSUPPORTED("2y9tfuxsj7noszyfrt0ahp2lk"); // bb.UR.x = MAX(bb.UR.x, 1*x); +UNSUPPORTED("ckczjxes8uggdg6ltkg2gqw5x"); // bb.UR.y = MAX(bb.UR.y, 1*y); +UNSUPPORTED("dwd2wbhfazyd038t2qn0hc7bv"); // fprintf (fp, "%d %d lineto\n", 1*x, 1*y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b0b65d8qp73v6bg7hjzivvqz9"); // n = ((cell*)ND_alg(aghead(e)))->bb; +UNSUPPORTED("9z20n0kimree8b0ala1dzcz3f"); // if (seg->isVert) { +UNSUPPORTED("d35lpqdphvgn7a4elfttfttf5"); // x = vtrack(seg, m); +UNSUPPORTED("7d8m8clw270qs6crbw28fvj90"); // y = (n.UR.y + n.LL.y)/2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("cl661znjs3x3fj8d1y9cg24sj"); // y = htrack(seg, m); +UNSUPPORTED("d0efs14iyqyu5lops51368trn"); // x = (n.LL.x + n.UR.x)/2; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("xhluynvutbzbfvcxx2cjyytz"); // bb.LL.x = MIN(bb.LL.x, 1*x); +UNSUPPORTED("33wk87zqb5r4f23468khg93pg"); // bb.LL.y = MIN(bb.LL.y, 1*y); +UNSUPPORTED("6mk0mwcxlhcgch8smmk49m01g"); // bb.UR.x = MAX(bb.UR.x, 1*x); +UNSUPPORTED("4z54bwwdfw0evollgabbhoyfh"); // bb.UR.y = MAX(bb.UR.y, 1*y); +UNSUPPORTED("4lv2wvln641rjodmppi1ea8ow"); // fprintf (fp, "%d %d lineto stroke\n", 1*x, 1*y); +UNSUPPORTED("5v5hh30squmit8o2i5hs25eig"); // return bb; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 26m9b9nmqeqz2egz17qjrsmi6 +// static void emitSearchGraph (FILE* fp, sgraph* sg) +public static Object emitSearchGraph(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("3afa3kd81chzz47ecdq46zrer"); // emitSearchGraph (FILE* fp, sgraph* sg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dyevh82lgyyzdp6weja1ovxir"); // cell* cp; +UNSUPPORTED("bhhrlzv5tqbx6ctv8b8hya7ll"); // snode* np; +UNSUPPORTED("2360u3fv51vz7azzvwtpxz8ys"); // sedge* ep; +UNSUPPORTED("41nrdsugvfgw23s93g0dhizkn"); // point p; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("6gvhztp2b7m89nv2btikaiyz4"); // fputs ("graph G {\n", fp); +UNSUPPORTED("bmtp7y0sxxjdh22j8p4pvgssu"); // fputs (" node[shape=point]\n", fp); +UNSUPPORTED("89usm1dk3yo4ttycgh9mcqv0f"); // for (i = 0; i < sg->nnodes; i++) { +UNSUPPORTED("3kjyiosnhbp02weff5w4htinu"); // np = sg->nodes+i; +UNSUPPORTED("4k5we2dw3u45kv7a09gffw8tf"); // cp = np->cells[0]; +UNSUPPORTED("1kn01nkzc34bp86c9bvl7a74b"); // if (cp == np->cells[1]) { +UNSUPPORTED("e78riujsgaj8ogp31bihqa6rr"); // pointf pf = midPt (cp); +UNSUPPORTED("1hdg4vfvme7qnviehisvcj5jl"); // p.x = pf.x; +UNSUPPORTED("7o9naunu16bztru6ho4g6yp5s"); // p.y = pf.y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("7ks8s38h2f1xoqnd6vgdegepn"); // if ((cp->flags & 1)) cp = np->cells[1]; +UNSUPPORTED("995g67hltj0paxtxlkedyryh1"); // p = coordOf (cp, np); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7lalws1y1951xlz9ffakcbom8"); // fprintf (fp, " %d [pos=\"%d,%d\"]\n", i, p.x, p.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2ktcncbuekdxpzstdfs5xnwyu"); // for (i = 0; i < sg->nedges; i++) { +UNSUPPORTED("6hjfrnsaxev4hsgcyeka41z77"); // ep = sg->edges+i; +UNSUPPORTED("a7b1ejc81bv3o5ahc8hoxa98u"); // fprintf (fp, " %d -- %d[len=\"%f\"]\n", ep->v1, ep->v2, ep->weight); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("69smfbpzurcjvgjvm90vhl35k"); // fputs ("}\n", fp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7qavznbkl6bvpmm9axulwfdbe +// static void emitGraph (FILE* fp, maze* mp, int n_edges, route* route_list, epair_t es[]) +public static Object emitGraph(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("bkcsiggpetlvefiz01q93uej4"); // emitGraph (FILE* fp, maze* mp, int n_edges, route* route_list, epair_t es[]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("7546bgor76e4n44ldtchty3d4"); // boxf bb, absbb; +UNSUPPORTED("emg8ro778e56pul9iomm1odwo"); // box bbox; +UNSUPPORTED("c1kybqd5l3qg3n9a305wjynks"); // absbb.LL.x = absbb.LL.y = MAXDOUBLE; +UNSUPPORTED("8k7etzgpxlrl6uupdtjg0hodh"); // absbb.UR.x = absbb.UR.y = -MAXDOUBLE; +UNSUPPORTED("118oh6o7l5ozdkayqepqyzeq1"); // fprintf (fp, "%s", prolog2); +UNSUPPORTED("1m4pf51j8j5r5hwafqhf1gpxp"); // fprintf (fp, "%d %d translate\n", 10, 10); +UNSUPPORTED("1l4k0raj069p4juux59nmeddm"); // fputs ("0 0 1 setrgbcolor\n", fp); +UNSUPPORTED("eabxb5i0ddkbddnag9j34xjbc"); // for (i = 0; i < mp->ngcells; i++) { +UNSUPPORTED("8we0nz55uqrc136qh9ei4wi1r"); // bb = mp->gcells[i].bb; +UNSUPPORTED("eaawrfhkil1c35bbtxc96ifj7"); // fprintf (fp, "%f %f %f %f node\n", bb.LL.x, bb.LL.y, bb.UR.x, bb.UR.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6gdenpywxn3p3xidvp7z66cf1"); // for (i = 0; i < n_edges; i++) { +UNSUPPORTED("c0bzh5j9t4e77lu0tb21a67bz"); // absbb = emitEdge (fp, es[i].e, route_list[i], mp, i, absbb); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("86kkucwmapf5ozkph3236xcgb"); // fputs ("0.8 0.8 0.8 setrgbcolor\n", fp); +UNSUPPORTED("cc6zk9wsty15bcay61nb68jos"); // for (i = 0; i < mp->ncells; i++) { +UNSUPPORTED("323ihqshamlg2xo726pk3b3vj"); // bb = mp->cells[i].bb; +UNSUPPORTED("e86ar5rrwd873yux3qqdkktes"); // fprintf (fp, "%f %f %f %f cell\n", bb.LL.x, bb.LL.y, bb.UR.x, bb.UR.y); +UNSUPPORTED("1739n1u2wlfk0ha07u0i2kqns"); // absbb.LL.x = MIN(absbb.LL.x, bb.LL.x); +UNSUPPORTED("2k0qxt9afi97ol188k2rxoiot"); // absbb.LL.y = MIN(absbb.LL.y, bb.LL.y); +UNSUPPORTED("cgmau9yngryx709jc2th5sk7o"); // absbb.UR.x = MAX(absbb.UR.x, bb.UR.x); +UNSUPPORTED("b08g38fj835q33y3jhlu4r7or"); // absbb.UR.y = MAX(absbb.UR.y, bb.UR.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("66qdohztsd8obgtrz7n7aneyq"); // bbox.LL.x = absbb.LL.x + 10; +UNSUPPORTED("eanpui2i9474f3m8ugpr9isad"); // bbox.LL.y = absbb.LL.y + 10; +UNSUPPORTED("8azdlhxair6id14ox480nrq72"); // bbox.UR.x = absbb.UR.x + 10; +UNSUPPORTED("3pbdldqi9gmkwgneq7kyfowun"); // bbox.UR.y = absbb.UR.y + 10; +UNSUPPORTED("e2528fy8l69smovwey76qcix3"); // fprintf (fp, epilog2, bbox.LL.x, bbox.LL.y, bbox.UR.x, bbox.UR.y); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/ortho/partition__c.java plantuml-8039/src/gen/lib/ortho/partition__c.java --- plantuml-8024/src/gen/lib/ortho/partition__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/ortho/partition__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,842 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.ortho; +import static smetana.core.Macro.UNSUPPORTED; + +public class partition__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 1duz2zmve5bdooct0ezmnnaxq +// static int chain_idx, mon_idx + + +//1 67uj2vwqlb937zf3jgzd5bre1 +// static monchain_t* mchain + + +//1 b7wevmtwi3ljzl56axez0c18m +// static vertexchain_t* vert + + +//1 2owm4aavvrdgcsmzw0xh1keul +// static int* mon + + + + +//3 c5f2ppu5vis7zj6x1ehr7ipb8 +// static void convert (boxf bb, int flip, int ccw, pointf* pts) +public static Object convert(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("7z9p7ryaqovx8l4zvz8ut5lh"); // convert (boxf bb, int flip, int ccw, pointf* pts) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d4u5o9hun4r9ctb05sitn35ie"); // pts[0] = bb.LL; +UNSUPPORTED("8c7ixjyy0o8pk7jvbhubvu7fk"); // pts[2] = bb.UR; +UNSUPPORTED("3oqttg1p147o6iu2ik3nuhaag"); // if (ccw) { +UNSUPPORTED("b6cwugc335s6xo11bjy8lzdtv"); // pts[1].x = bb.UR.x; +UNSUPPORTED("5g8pg756wtn4jz9pynuub13nu"); // pts[1].y = bb.LL.y; +UNSUPPORTED("86i7iwyoibsuencp95bp2l0q4"); // pts[3].x = bb.LL.x; +UNSUPPORTED("es4u9iskz0bxl8yc2utghf7yw"); // pts[3].y = bb.UR.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("apctdgahb5872oqu7l5h6puc2"); // pts[1].x = bb.LL.x; +UNSUPPORTED("7hnlqi5nik1acsnv1f8p6bcl"); // pts[1].y = bb.UR.y; +UNSUPPORTED("7jd9pnw8dy4kydjdmsqgagnag"); // pts[3].x = bb.UR.x; +UNSUPPORTED("tk95qh6cyvgcle477dclxmdc"); // pts[3].y = bb.LL.y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9wlzvfxuhvsgkkq6lvlrw01d2"); // if (flip) { +UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i; +UNSUPPORTED("5d0rjolqhmqfhdts46h273pw"); // for (i = 0; i < 4; i++) { +UNSUPPORTED("9dpwe8ucpbv8y180jmvfjohj0"); // double tmp = pts[i].y; +UNSUPPORTED("8nsyib2abbayywi8ydtyfrh1w"); // pts[i].y = pts[i].x; +UNSUPPORTED("e2stbhhso88rb6d0bps3wesbm"); // pts[i].x = -tmp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7f2x9i3stjkwyki8jhp8g4crp +// static int store (segment_t* seg, int first, pointf* pts) +public static Object store(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("ck5s10q08ha996jg1dthuj4gz"); // store (segment_t* seg, int first, pointf* pts) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6a67ll1vnp0gczc7sdxxm0eus"); // int i, last = first + 4 - 1; +UNSUPPORTED("cp0v943eklkgtfrjyj59exkgj"); // int j = 0; +UNSUPPORTED("32ltq51ztqu722sxfo74u4mtw"); // for (i = first; i <= last; i++, j++) { +UNSUPPORTED("79puvan9sro080fsgrgz2t2q7"); // if (i == first) { +UNSUPPORTED("64r4m4ormvokugbo70tnvjx5m"); // seg[i].next = first+1; +UNSUPPORTED("1dm0tna3ay2sbc2yaliye2bse"); // seg[i].prev = last; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6cjbyd0qmosdne3p1e7cmt94k"); // else if (i == last) { +UNSUPPORTED("eanh96xgpeo6woibzznfh0wbv"); // seg[i].next = first; +UNSUPPORTED("9dcogmtm6yucs0hqvurnlvd8c"); // seg[i].prev = last-1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("2n6qylkakd0eh8qirmanhkqv6"); // seg[i].next = i+1; +UNSUPPORTED("e074ljxriocjv010xtqimpe82"); // seg[i].prev = i-1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5n6eo7o5v5jxlkoan6t7rxrs6"); // seg[i].is_inserted = 0; +UNSUPPORTED("8boueifn4zp07ophbsfll1c4j"); // seg[seg[i].prev].v1 = seg[i].v0 = pts[j]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2fba7o4mz0g2iwmw1tsdmnyeq"); // return (last+1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 86pkmn254w4mzlbm1tvtj0utl +// static void genSegments (cell* cells, int ncells, boxf bb, segment_t* seg, int flip) +public static Object genSegments(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("1kvuie0el6g2uqdy7kissygr5"); // genSegments (cell* cells, int ncells, boxf bb, segment_t* seg, int flip) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("brjd2xw92qki6azgl484qbcab"); // int j = 0, i = 1; +UNSUPPORTED("d8sp6cfkpfyndzmid92shiq50"); // pointf pts[4]; +UNSUPPORTED("599xkip8oct4w8qnqgosguvxf"); // convert (bb, flip, 1, pts); +UNSUPPORTED("2ukjeetspuv54livez9siabr3"); // i = store (seg, i, pts); +UNSUPPORTED("c0t3vyjxjf53cre3fnsjl1zct"); // for (j = 0; j < ncells; j++) { +UNSUPPORTED("nnyfz2s31gezrnoj0r6t3c7e"); // convert (cells[j].bb, flip, 0, pts); +UNSUPPORTED("dtkvdb642xk2z42q0cqxa8cuw"); // i = store (seg, i, pts); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 adiv3g0l2lfgmsrp6nszkbu7e +// static void generateRandomOrdering(int n, int* permute) +public static Object generateRandomOrdering(Object... arg) { +UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void +UNSUPPORTED("bayg75oypsrrhfr1fn4t44xzq"); // generateRandomOrdering(int n, int* permute) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dbbxghj26zogt3ririv6d35rx"); // int i, j, tmp; +UNSUPPORTED("bm4rxb9avtrlnwyqnenc25krj"); // for (i = 0; i <= n; i++) permute[i] = i; +UNSUPPORTED("8m819riue7hsq2j2p8vn2ssb5"); // for (i = 1; i <= n; i++) { +UNSUPPORTED("2kwf0aqv8qsg7rp5zguz8rp9a"); // j = i + drand48() * (n + 1 - i); +UNSUPPORTED("7d04842291lql0mh7uyxlrdk5"); // if (j != i) { +UNSUPPORTED("9c8awz319ebq9x0wpxjy3vdr6"); // tmp = permute[i]; +UNSUPPORTED("9tz2w7jz6snz46csphfzc6j1r"); // permute [i] = permute[j]; +UNSUPPORTED("c274z0kj80nfnoqb077lr9e5w"); // permute [j] = tmp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 abhkjog92vle0cw28y59cd6ny +// static int inside_polygon (trap_t *t, segment_t* seg) +public static Object inside_polygon(Object... arg) { +UNSUPPORTED("d9cz56vtrl0ri6hz88cumukuf"); // static int +UNSUPPORTED("5e3r7cxnwod76fm476ejisqjs"); // inside_polygon (trap_t *t, segment_t* seg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1iqmfrt5wo4mwmshecxpdfpa9"); // int rseg = t->rseg; +UNSUPPORTED("dxnx57i2vw0o7ngs9bgwpet6"); // if (t->state == 2) +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("ciw4dstxif0s9rksfu13tmxi1"); // if ((t->lseg <= 0) || (t->rseg <= 0)) +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("ea7zf31094dwtjf2dzluky008"); // if (((t->u0 <= 0) && (t->u1 <= 0)) || +UNSUPPORTED("e15aszibtu1esr9cm5ddq9d5u"); // ((t->d0 <= 0) && (t->d1 <= 0))) /* triangle */ +UNSUPPORTED("be5gm064ul8v8gm34w7hgonoj"); // return ((((&seg[rseg].v1)->y > (&seg[rseg].v0)->y + 1.0e-7) ? NOT(0) : (((&seg[rseg].v1)->y < (&seg[rseg].v0)->y - 1.0e-7) ? 0 : ((&seg[rseg].v1)->x > (&seg[rseg].v0)->x)))); +UNSUPPORTED("bid671dovx1rdiquw5vm3fttj"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ew088xpoj2s831ch0zbnz5elx +// static double get_angle (pointf *vp0, pointf *vpnext, pointf *vp1) +public static Object get_angle(Object... arg) { +UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double +UNSUPPORTED("dahlnw9xplc13ehv56akxp6fe"); // get_angle (pointf *vp0, pointf *vpnext, pointf *vp1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("369yvcclaxnouso7vjmxhcz1l"); // pointf v0, v1; +UNSUPPORTED("941ut9wx36d2re4xt7vn0stim"); // v0.x = vpnext->x - vp0->x; +UNSUPPORTED("7dfsrn98hfr6a80nms62qv9dy"); // v0.y = vpnext->y - vp0->y; +UNSUPPORTED("eholvtx37o5y2d1638yxn6v24"); // v1.x = vp1->x - vp0->x; +UNSUPPORTED("9967xssda33wyljha7pewt4mk"); // v1.y = vp1->y - vp0->y; +UNSUPPORTED("j9n4bua0t2z6uqjun1rcultc"); // if (((v0).x * (v1).y - (v1).x * (v0).y) >= 0) /* sine is positive */ +UNSUPPORTED("cf3rdnuyrr7l7ewade7a57djr"); // return ((v0).x * (v1).x + (v0).y * (v1).y)/(sqrt((v0).x * (v0).x + (v0).y * (v0).y))/(sqrt((v1).x * (v1).x + (v1).y * (v1).y)); +UNSUPPORTED("8983svt6g1kt3l45bd6ju9mw6"); // else +UNSUPPORTED("b8d4rpcuwbgggvigw19cs3pz3"); // return (-1.0 * ((v0).x * (v1).x + (v0).y * (v1).y)/(sqrt((v0).x * (v0).x + (v0).y * (v0).y))/(sqrt((v1).x * (v1).x + (v1).y * (v1).y)) - 2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7gi4ub1tqpupq617koabfz9iy +// static int get_vertex_positions (int v0, int v1, int *ip, int *iq) +public static Object get_vertex_positions(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("86uczcsl4cyu14zme5scqmswu"); // get_vertex_positions (int v0, int v1, int *ip, int *iq) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("en82orb21pn5f2w6hxc0pmi6r"); // vertexchain_t *vp0, *vp1; +UNSUPPORTED("9cyat6ft4tmgpumn70l9fwydy"); // register int i; +UNSUPPORTED("55a7kpuxgq6hsi6ljkbdivg16"); // double angle, temp; +UNSUPPORTED("bjekmi3f789xf2g33a7v1marm"); // int tp, tq; +UNSUPPORTED("6v6uklf23950dew0q3vlmjmtu"); // vp0 = &vert[v0]; +UNSUPPORTED("e6h7hqx9nzufu0i4o6xctjri6"); // vp1 = &vert[v1]; +UNSUPPORTED("ety4qtnzh8rpooitlhb64ufil"); // /* p is identified as follows. Scan from (v0, v1) rightwards till */ +UNSUPPORTED("9em6bl9ikz3uv4t3tpkdoxeb9"); // /* you hit the first segment starting from v0. That chain is the */ +UNSUPPORTED("17iufy6n7vezx6qpdhhsc8zvy"); // /* chain of our interest */ +UNSUPPORTED("zq0nk6k4owgwciv5sc0z95vf"); // angle = -4.0; +UNSUPPORTED("2d2pdjjgu969q63zrkykinxdb"); // for (i = 0; i < 4; i++) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("aiwx3n6xiaje2wbcw9fja0kp6"); // if (vp0->vnext[i] <= 0) +UNSUPPORTED("6hzbngzom80qdcr88vnds1r59"); // continue; +UNSUPPORTED("2qqqfeckj323vggxs72i2b9bd"); // if ((temp = get_angle(&vp0->pt, &(vert[vp0->vnext[i]].pt), +UNSUPPORTED("bfendrzuwv7ttibwlfxnzh3mv"); // &vp1->pt)) > angle) +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("d5mp4kdylwkyngcbi2ra9gda7"); // angle = temp; +UNSUPPORTED("8gf4rptcek1rtsswxgp4f5sp"); // tp = i; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("29ch4xe4dtb8vrs3u6br7fkfn"); // *ip = tp; +UNSUPPORTED("449uwiujph9yz1kmgp91x1mph"); // /* Do similar actions for q */ +UNSUPPORTED("zq0nk6k4owgwciv5sc0z95vf"); // angle = -4.0; +UNSUPPORTED("2d2pdjjgu969q63zrkykinxdb"); // for (i = 0; i < 4; i++) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("6utzp015ebcuvv226lur8xqjn"); // if (vp1->vnext[i] <= 0) +UNSUPPORTED("6u4qfk9ctif0s5v6pg2ym2kh0"); // continue; +UNSUPPORTED("4qeaopyujc1p8ghdkrfs8swg1"); // if ((temp = get_angle(&vp1->pt, &(vert[vp1->vnext[i]].pt), +UNSUPPORTED("6d1kzaf50kwdnqztg4frxwh8t"); // &vp0->pt)) > angle) +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("d5mp4kdylwkyngcbi2ra9gda7"); // angle = temp; +UNSUPPORTED("5ksmrx85xq93zau95l8v9vcve"); // tq = i; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8xqnxp3votu03cx1jrh2jwkzn"); // *iq = tq; +UNSUPPORTED("bid671dovx1rdiquw5vm3fttj"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9a6v0rhhqdmefbgzi11be5g6h +// static int make_new_monotone_poly (int mcur, int v0, int v1) +public static Object make_new_monotone_poly(Object... arg) { +UNSUPPORTED("d9cz56vtrl0ri6hz88cumukuf"); // static int +UNSUPPORTED("8dv9txhv2yeoqkzbydeqjl054"); // make_new_monotone_poly (int mcur, int v0, int v1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9ikjwwfx33ts34kb25fa7bc2l"); // int p, q, ip, iq; +UNSUPPORTED("9j34whh433i14tkn8pbaxw6gh"); // int mnew = (++mon_idx); +UNSUPPORTED("56fxdenx5fitvdwopxm5znugu"); // int i, j, nf0, nf1; +UNSUPPORTED("en82orb21pn5f2w6hxc0pmi6r"); // vertexchain_t *vp0, *vp1; +UNSUPPORTED("6v6uklf23950dew0q3vlmjmtu"); // vp0 = &vert[v0]; +UNSUPPORTED("e6h7hqx9nzufu0i4o6xctjri6"); // vp1 = &vert[v1]; +UNSUPPORTED("alqs5f8e3n3u5onl2jk7dufp7"); // get_vertex_positions(v0, v1, &ip, &iq); +UNSUPPORTED("2hakm8lo9g5t2j1ag9nyr2s6n"); // p = vp0->vpos[ip]; +UNSUPPORTED("9cggg3kyqycbmj88qwiid1uar"); // q = vp1->vpos[iq]; +UNSUPPORTED("3rkbxqt4po5kl0o0mduct8rcc"); // /* At this stage, we have got the positions of v0 and v1 in the */ +UNSUPPORTED("c8605sg6k4m4718ch7un7l4n0"); // /* desired chain. Now modify the linked lists */ +UNSUPPORTED("h85pxdzzlj05gngtc6052x5l"); // i = (++chain_idx); /* for the new list */ +UNSUPPORTED("eowz6d0op1t6t0njrx6bb0yn8"); // j = (++chain_idx); +UNSUPPORTED("dn6hlugxl248e01l7ox4q9u8w"); // mchain[i].vnum = v0; +UNSUPPORTED("cbym1az3wmxvz10xvo5c25vlp"); // mchain[j].vnum = v1; +UNSUPPORTED("3xenn6wt1u82649f6st1y0jpy"); // mchain[i].next = mchain[p].next; +UNSUPPORTED("8gj5lqet3v2djl0zzmduxhjbo"); // mchain[mchain[p].next].prev = i; +UNSUPPORTED("8jwcwnyjn22k8hwa6snhelhdv"); // mchain[i].prev = j; +UNSUPPORTED("e8e675obna2uq1ayo5j6qxb3c"); // mchain[j].next = i; +UNSUPPORTED("249azfk4cx6fvn29okrr43mxg"); // mchain[j].prev = mchain[q].prev; +UNSUPPORTED("1ejluvyey6e0j7029btn2imcn"); // mchain[mchain[q].prev].next = j; +UNSUPPORTED("d1hgtt0rm4nozlb8yt6pa0k8q"); // mchain[p].next = q; +UNSUPPORTED("c8s9isar38c8ee9yj9szqdh2j"); // mchain[q].prev = p; +UNSUPPORTED("42hpz0zje3mclnj3dro8ypwml"); // nf0 = vp0->nextfree; +UNSUPPORTED("3vhonm18vr4ry7uanlxdzsa78"); // nf1 = vp1->nextfree; +UNSUPPORTED("dikgb6wf4n9mffboqek4g7min"); // vp0->vnext[ip] = v1; +UNSUPPORTED("dcc84n7kvdgludx7het4l77pa"); // vp0->vpos[nf0] = i; +UNSUPPORTED("bn2d4dxs38on2tt66qsk854a7"); // vp0->vnext[nf0] = mchain[mchain[i].next].vnum; +UNSUPPORTED("s8g0h9c5ugu7jx7fammu57j5"); // vp1->vpos[nf1] = j; +UNSUPPORTED("2cfbu34obnbyi820v423b3p3a"); // vp1->vnext[nf1] = v0; +UNSUPPORTED("18ghn7twlfq25wg7ho4mdpjq5"); // vp0->nextfree++; +UNSUPPORTED("6pibe6i58ps0evcw0elchlr5n"); // vp1->nextfree++; +UNSUPPORTED("8ofsl1uexufhfiekbia3rpw71"); // mon[mcur] = p; +UNSUPPORTED("6qcylzq69scx8z47rc3q53c2p"); // mon[mnew] = i; +UNSUPPORTED("1txsom7ht7w6bgk1wfyx8lsst"); // return mnew; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d0so1zakha0q0j27n2kdrpttw +// static int traverse_polygon (int* visited, boxf* decomp, int size, segment_t* seg, trap_t* tr, int mcur, int trnum, int from, int flip, int dir) +public static Object traverse_polygon(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("9guvbji3t13b64dg1nyaopea3"); // traverse_polygon (int* visited, boxf* decomp, int size, segment_t* seg, trap_t* tr, +UNSUPPORTED("cop1jvb6sbgiafrugdgcuyww8"); // int mcur, int trnum, int from, int flip, int dir) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9hip0zrehch3ppd50n93ndz9f"); // trap_t *t = &tr[trnum]; +UNSUPPORTED("9vw5pneq9i40hijbn87i6muzw"); // int mnew; +UNSUPPORTED("4by94oz8hw5ksrudixtwwrdjt"); // int v0, v1; +UNSUPPORTED("4d0metbv0f36rcwe2dlscspik"); // int retval; +UNSUPPORTED("6b0tp7olw8su1dlt9r0409joh"); // int do_switch = 0; +UNSUPPORTED("d0q9pab7nbe8xr6dncj1rkglj"); // if ((trnum <= 0) || visited[trnum]) +UNSUPPORTED("5fnyq1zql95vx5xiysa7fj12a"); // return size; +UNSUPPORTED("cnabgqf0r6cwbefc6z48v4muv"); // visited[trnum] = NOT(0); +UNSUPPORTED("e3779kj7w5dz1oy9qmxmrgv6x"); // if ((t->hi.y > t->lo.y) && +UNSUPPORTED("1bkd7ej5xoxkn9w9yngm73in6"); // (seg[t->lseg].v0.x == seg[t->lseg].v1.x) && +UNSUPPORTED("6dhg0j2967gtz8tbuf2fkmvte"); // (seg[t->rseg].v0.x == seg[t->rseg].v1.x)) { +UNSUPPORTED("cegqs3fbxpy1vh6ttghu2haol"); // if (flip) { +UNSUPPORTED("6uelhwb8drf4b6q5ru2myp9gr"); // decomp[size].LL.x = t->lo.y; +UNSUPPORTED("3ie5nszkp1w8ls6i09xu2kj58"); // decomp[size].LL.y = -seg[t->rseg].v0.x; +UNSUPPORTED("61vo1z771fo68sucys7bs0ijk"); // decomp[size].UR.x = t->hi.y; +UNSUPPORTED("a9grvoswejyt77ctdmsonk0qt"); // decomp[size].UR.y = -seg[t->lseg].v0.x; +UNSUPPORTED("yjgjo2sxpmhb7skgxwjx03ie"); // } else { +UNSUPPORTED("8ruo1j70pzrg494vp86s1sqc"); // decomp[size].LL.x = seg[t->lseg].v0.x; +UNSUPPORTED("6mj48zie12c6x3u7xea2f8hr3"); // decomp[size].LL.y = t->lo.y; +UNSUPPORTED("39hkdsjwkvofrh735gqoi7dci"); // decomp[size].UR.x = seg[t->rseg].v0.x; +UNSUPPORTED("1bjhgfi5s9y6kuu4xguq9bd20"); // decomp[size].UR.y = t->hi.y; +UNSUPPORTED("dquo3qofk56ds5xl95lhvcthf"); // } +UNSUPPORTED("cy8kzhvb0obp7jgom47s7zco9"); // size++; +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("8xva2s9wcuidd7mlvpytarai8"); // /* We have much more information available here. */ +UNSUPPORTED("zp53t0r52m3c9e801jgb0anx"); // /* rseg: goes upwards */ +UNSUPPORTED("2a7sgu699nkxh3e7rs42nslze"); // /* lseg: goes downwards */ +UNSUPPORTED("bspvkvr3shhnvq13d1c9svgc8"); // /* Initially assume that dir = TR_FROM_DN (from the left) */ +UNSUPPORTED("859erkm7vifnaeylhrg1ge489"); // /* Switch v0 and v1 if necessary afterwards */ +UNSUPPORTED("7nenieaup2bo7wznju50124gu"); // /* special cases for triangles with cusps at the opposite ends. */ +UNSUPPORTED("2f72rdf12bkur0sb8jzt141et"); // /* take care of this first */ +UNSUPPORTED("ark0tbg2u4lksur0hn1thlg8u"); // if ((t->u0 <= 0) && (t->u1 <= 0)) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("2gky1sit45s3urap7m9572dui"); // if ((t->d0 > 0) && (t->d1 > 0)) /* downward opening triangle */ +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("a7q0c7q3zwi84dk8feu8hw949"); // v0 = tr[t->d1].lseg; +UNSUPPORTED("3un92nsknf6dvivoo4ut6xpjw"); // v1 = t->lseg; +UNSUPPORTED("b9sp6domcray594tb7rq7599"); // if (from == t->d1) +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("9b48jw83n2qlbd27xuf69c5qe"); // do_switch = NOT(0); +UNSUPPORTED("7dchvr9xk6f4wwi83audzw6vj"); // mnew = make_new_monotone_poly(mcur, v1, v0); +UNSUPPORTED("4mo16xjesdvkqcrs3j9pw6rb6"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d1, trnum, flip, 1); +UNSUPPORTED("dtlg30b72ms08kp03lb2akq3r"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d0, trnum, flip, 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("5ente0j9qdx8ibzrosxtyl4nv"); // mnew = make_new_monotone_poly(mcur, v0, v1); +UNSUPPORTED("3r3k4encoopl3sdf3f1ozjqhk"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d0, trnum, flip, 1); +UNSUPPORTED("1zydelpskydrv2jlukrghxjqm"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d1, trnum, flip, 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("d1qk9y23kl78admhc396jcrkj"); // retval = -1; /* Just traverse all neighbours */ +UNSUPPORTED("55rfugj7cpg4mi8oc5lwm9ve9"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u0, trnum, flip, 2); +UNSUPPORTED("7n2ov6zceqcw0j8pmeiz8hn4s"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u1, trnum, flip, 2); +UNSUPPORTED("e1jcx0tbalqyelsxssbh3lmt6"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d0, trnum, flip, 1); +UNSUPPORTED("4me7fmwngeaircvtb7sff3ijj"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d1, trnum, flip, 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("biibbejkkn6y2hgp4rbkzlt63"); // else if ((t->d0 <= 0) && (t->d1 <= 0)) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("co9cdjh0zss1ce6wn5hsovb4o"); // if ((t->u0 > 0) && (t->u1 > 0)) /* upward opening triangle */ +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("608hye0unh62kxu73xjcim0vg"); // v0 = t->rseg; +UNSUPPORTED("997u5iufydhu5b83stykxqi4s"); // v1 = tr[t->u0].rseg; +UNSUPPORTED("5pqs6tn54r9kjjuv7noh9n97t"); // if (from == t->u1) +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("9b48jw83n2qlbd27xuf69c5qe"); // do_switch = NOT(0); +UNSUPPORTED("7dchvr9xk6f4wwi83audzw6vj"); // mnew = make_new_monotone_poly(mcur, v1, v0); +UNSUPPORTED("c0yxgwq7qw8py1stvijtw9ut3"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u1, trnum, flip, 2); +UNSUPPORTED("et6qmwrb429cnthwmphempxu0"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u0, trnum, flip, 2); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("5ente0j9qdx8ibzrosxtyl4nv"); // mnew = make_new_monotone_poly(mcur, v0, v1); +UNSUPPORTED("bxugslyfkclt3755mhv0sc3ht"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u0, trnum, flip, 2); +UNSUPPORTED("64qq66m1iccqslv5wour58853"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u1, trnum, flip, 2); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("d1qk9y23kl78admhc396jcrkj"); // retval = -1; /* Just traverse all neighbours */ +UNSUPPORTED("55rfugj7cpg4mi8oc5lwm9ve9"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u0, trnum, flip, 2); +UNSUPPORTED("7n2ov6zceqcw0j8pmeiz8hn4s"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u1, trnum, flip, 2); +UNSUPPORTED("e1jcx0tbalqyelsxssbh3lmt6"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d0, trnum, flip, 1); +UNSUPPORTED("4me7fmwngeaircvtb7sff3ijj"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d1, trnum, flip, 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1izitiatr2ulhvy8h0pnsxiiz"); // else if ((t->u0 > 0) && (t->u1 > 0)) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("5pvgc5lzsbemakfagmdy8onnt"); // if ((t->d0 > 0) && (t->d1 > 0)) /* downward + upward cusps */ +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("a7q0c7q3zwi84dk8feu8hw949"); // v0 = tr[t->d1].lseg; +UNSUPPORTED("997u5iufydhu5b83stykxqi4s"); // v1 = tr[t->u0].rseg; +UNSUPPORTED("3oejl3ub1rc10j9jmx94a30sw"); // retval = 3; +UNSUPPORTED("cpjixbghid2v2ttmi1omjq4df"); // if (((dir == 2) && (t->d1 == from)) || +UNSUPPORTED("1vtjp034u1x48uhzu2jvmh0ek"); // ((dir == 1) && (t->u1 == from))) +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("9b48jw83n2qlbd27xuf69c5qe"); // do_switch = NOT(0); +UNSUPPORTED("7dchvr9xk6f4wwi83audzw6vj"); // mnew = make_new_monotone_poly(mcur, v1, v0); +UNSUPPORTED("c0yxgwq7qw8py1stvijtw9ut3"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u1, trnum, flip, 2); +UNSUPPORTED("4mo16xjesdvkqcrs3j9pw6rb6"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d1, trnum, flip, 1); +UNSUPPORTED("bwjfea2e7yj2tyyhz2fj73xub"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u0, trnum, flip, 2); +UNSUPPORTED("c6tug0v8jlllvmf2nw412i7az"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d0, trnum, flip, 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("5ente0j9qdx8ibzrosxtyl4nv"); // mnew = make_new_monotone_poly(mcur, v0, v1); +UNSUPPORTED("bxugslyfkclt3755mhv0sc3ht"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u0, trnum, flip, 2); +UNSUPPORTED("3r3k4encoopl3sdf3f1ozjqhk"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d0, trnum, flip, 1); +UNSUPPORTED("64qq66m1iccqslv5wour58853"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u1, trnum, flip, 2); +UNSUPPORTED("b00fn0czpty1ag5ihw9ev67k9"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d1, trnum, flip, 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7vbb8vznij9zlyolu6orgzq63"); // else /* only downward cusp */ +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("8a5njs108pwwsicxpr9cp011e"); // if (((fabs((&t->lo)->y - (&seg[t->lseg].v1)->y) <= 1.0e-7) && (fabs((&t->lo)->x - (&seg[t->lseg].v1)->x) <= 1.0e-7))) +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("iq55fez7l08t1doqy34awci0"); // v0 = tr[t->u0].rseg; +UNSUPPORTED("6dqmuhbse549xc7nbc1t4fi8c"); // v1 = seg[t->lseg].next; +UNSUPPORTED("3o1isg154krcrahue9rgdvzzv"); // retval = 4; +UNSUPPORTED("ct1dz4hcovsoo7o89yuv4jqaj"); // if ((dir == 1) && (t->u0 == from)) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("747hebbjlsz3afhysgh8jddh3"); // do_switch = NOT(0); +UNSUPPORTED("a63etqdmntd8mnuuuuq2iv8uk"); // mnew = make_new_monotone_poly(mcur, v1, v0); +UNSUPPORTED("e78lvv8zmyhisqei55jg0b5ow"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u0, trnum, flip, 2); +UNSUPPORTED("dspgt98nlpx18w318d5b65jdf"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d0, trnum, flip, 1); +UNSUPPORTED("8321g7cqx5few6bc5d8ltrpbu"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u1, trnum, flip, 2); +UNSUPPORTED("9vnwz4c8xw8z1762jvr65pidr"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d1, trnum, flip, 1); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("6tnv93tybou8dnl9l7lcmyp50"); // mnew = make_new_monotone_poly(mcur, v0, v1); +UNSUPPORTED("66azwpktshnoqv46ag8h77g8h"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u1, trnum, flip, 2); +UNSUPPORTED("el7cvlcafkwitwo8t66cutvmj"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d0, trnum, flip, 1); +UNSUPPORTED("ck5jclcux876638ifzrabja6c"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d1, trnum, flip, 1); +UNSUPPORTED("6vtwa1ilotojo4dxm38prhhb6"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u0, trnum, flip, 2); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("7mcbwj8a2veib26ww67v0xayb"); // v0 = t->rseg; +UNSUPPORTED("el138o2v6si9fi54s9rho23kj"); // v1 = tr[t->u0].rseg; +UNSUPPORTED("cdlggb241g5t55g6npu51bhjo"); // retval = 5; +UNSUPPORTED("5jw5gn3xil0quizho5x17qzin"); // if ((dir == 1) && (t->u1 == from)) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("747hebbjlsz3afhysgh8jddh3"); // do_switch = NOT(0); +UNSUPPORTED("a63etqdmntd8mnuuuuq2iv8uk"); // mnew = make_new_monotone_poly(mcur, v1, v0); +UNSUPPORTED("66azwpktshnoqv46ag8h77g8h"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u1, trnum, flip, 2); +UNSUPPORTED("9vnwz4c8xw8z1762jvr65pidr"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d1, trnum, flip, 1); +UNSUPPORTED("dspgt98nlpx18w318d5b65jdf"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d0, trnum, flip, 1); +UNSUPPORTED("6vtwa1ilotojo4dxm38prhhb6"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u0, trnum, flip, 2); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("6tnv93tybou8dnl9l7lcmyp50"); // mnew = make_new_monotone_poly(mcur, v0, v1); +UNSUPPORTED("e78lvv8zmyhisqei55jg0b5ow"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u0, trnum, flip, 2); +UNSUPPORTED("el7cvlcafkwitwo8t66cutvmj"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d0, trnum, flip, 1); +UNSUPPORTED("ck5jclcux876638ifzrabja6c"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d1, trnum, flip, 1); +UNSUPPORTED("8321g7cqx5few6bc5d8ltrpbu"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u1, trnum, flip, 2); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8ql1l7nv15rr51xt5ty1sjycw"); // else if ((t->u0 > 0) || (t->u1 > 0)) /* no downward cusp */ +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("duzxgn403jzqn6d6ut3gz298t"); // if ((t->d0 > 0) && (t->d1 > 0)) /* only upward cusp */ +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("4xbxe3o8leve6xm0t19ee2vfe"); // if (((fabs((&t->hi)->y - (&seg[t->lseg].v0)->y) <= 1.0e-7) && (fabs((&t->hi)->x - (&seg[t->lseg].v0)->x) <= 1.0e-7))) +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("ddiuyd0k6l4ju7yt0t7gnkyn2"); // v0 = tr[t->d1].lseg; +UNSUPPORTED("3xgnfxeseit96nt2oywbb12cm"); // v1 = t->lseg; +UNSUPPORTED("612bonw6ququtpyb2otlknu6u"); // retval = 6; +UNSUPPORTED("52c1b8vw0ww4s2y1fp9e5rjxt"); // if (!((dir == 2) && (t->d0 == from))) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("747hebbjlsz3afhysgh8jddh3"); // do_switch = NOT(0); +UNSUPPORTED("a63etqdmntd8mnuuuuq2iv8uk"); // mnew = make_new_monotone_poly(mcur, v1, v0); +UNSUPPORTED("66azwpktshnoqv46ag8h77g8h"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u1, trnum, flip, 2); +UNSUPPORTED("ck5jclcux876638ifzrabja6c"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d1, trnum, flip, 1); +UNSUPPORTED("e78lvv8zmyhisqei55jg0b5ow"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u0, trnum, flip, 2); +UNSUPPORTED("dspgt98nlpx18w318d5b65jdf"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d0, trnum, flip, 1); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("6tnv93tybou8dnl9l7lcmyp50"); // mnew = make_new_monotone_poly(mcur, v0, v1); +UNSUPPORTED("el7cvlcafkwitwo8t66cutvmj"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d0, trnum, flip, 1); +UNSUPPORTED("6vtwa1ilotojo4dxm38prhhb6"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u0, trnum, flip, 2); +UNSUPPORTED("8321g7cqx5few6bc5d8ltrpbu"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u1, trnum, flip, 2); +UNSUPPORTED("5yk6sndya5s45z9fap3jlftsv"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d1, trnum, flip, 1); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("ddiuyd0k6l4ju7yt0t7gnkyn2"); // v0 = tr[t->d1].lseg; +UNSUPPORTED("7wup2u127p4wprrhd2g65hvf6"); // v1 = seg[t->rseg].next; +UNSUPPORTED("6ywwmc78aiixut85yk4dr53yx"); // retval = 7; +UNSUPPORTED("ayjr7wdfuvpw08o3v1x8gwrxn"); // if ((dir == 2) && (t->d1 == from)) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("747hebbjlsz3afhysgh8jddh3"); // do_switch = NOT(0); +UNSUPPORTED("a63etqdmntd8mnuuuuq2iv8uk"); // mnew = make_new_monotone_poly(mcur, v1, v0); +UNSUPPORTED("ck5jclcux876638ifzrabja6c"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d1, trnum, flip, 1); +UNSUPPORTED("8321g7cqx5few6bc5d8ltrpbu"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u1, trnum, flip, 2); +UNSUPPORTED("6vtwa1ilotojo4dxm38prhhb6"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u0, trnum, flip, 2); +UNSUPPORTED("dspgt98nlpx18w318d5b65jdf"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d0, trnum, flip, 1); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("6tnv93tybou8dnl9l7lcmyp50"); // mnew = make_new_monotone_poly(mcur, v0, v1); +UNSUPPORTED("e78lvv8zmyhisqei55jg0b5ow"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u0, trnum, flip, 2); +UNSUPPORTED("el7cvlcafkwitwo8t66cutvmj"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d0, trnum, flip, 1); +UNSUPPORTED("66azwpktshnoqv46ag8h77g8h"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u1, trnum, flip, 2); +UNSUPPORTED("9vnwz4c8xw8z1762jvr65pidr"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d1, trnum, flip, 1); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cs5d2p3v6x67knxt079180lf1"); // else /* no cusp */ +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("u3jb6lmd4ip7tq4edphxoy2z"); // if (((fabs((&t->hi)->y - (&seg[t->lseg].v0)->y) <= 1.0e-7) && (fabs((&t->hi)->x - (&seg[t->lseg].v0)->x) <= 1.0e-7)) && +UNSUPPORTED("8hbx4q52b68r4izus3j4ewijg"); // ((fabs((&t->lo)->y - (&seg[t->rseg].v0)->y) <= 1.0e-7) && (fabs((&t->lo)->x - (&seg[t->rseg].v0)->x) <= 1.0e-7))) +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("7mcbwj8a2veib26ww67v0xayb"); // v0 = t->rseg; +UNSUPPORTED("3xgnfxeseit96nt2oywbb12cm"); // v1 = t->lseg; +UNSUPPORTED("cj0s3n96u7e6tq1nzlxp8a7gv"); // retval = 2; +UNSUPPORTED("azgs71ez0f45idcd7u0uhjkz4"); // if (dir == 1) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("747hebbjlsz3afhysgh8jddh3"); // do_switch = NOT(0); +UNSUPPORTED("a63etqdmntd8mnuuuuq2iv8uk"); // mnew = make_new_monotone_poly(mcur, v1, v0); +UNSUPPORTED("e78lvv8zmyhisqei55jg0b5ow"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u0, trnum, flip, 2); +UNSUPPORTED("66azwpktshnoqv46ag8h77g8h"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u1, trnum, flip, 2); +UNSUPPORTED("9vnwz4c8xw8z1762jvr65pidr"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d1, trnum, flip, 1); +UNSUPPORTED("dspgt98nlpx18w318d5b65jdf"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d0, trnum, flip, 1); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("6tnv93tybou8dnl9l7lcmyp50"); // mnew = make_new_monotone_poly(mcur, v0, v1); +UNSUPPORTED("ck5jclcux876638ifzrabja6c"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d1, trnum, flip, 1); +UNSUPPORTED("el7cvlcafkwitwo8t66cutvmj"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d0, trnum, flip, 1); +UNSUPPORTED("6vtwa1ilotojo4dxm38prhhb6"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u0, trnum, flip, 2); +UNSUPPORTED("8321g7cqx5few6bc5d8ltrpbu"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u1, trnum, flip, 2); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("30bq1zitecexyibeos8lcz9ms"); // else if (((fabs((&t->hi)->y - (&seg[t->rseg].v1)->y) <= 1.0e-7) && (fabs((&t->hi)->x - (&seg[t->rseg].v1)->x) <= 1.0e-7)) && +UNSUPPORTED("7fm0u4okmm25vcrbk21uccbkf"); // ((fabs((&t->lo)->y - (&seg[t->lseg].v1)->y) <= 1.0e-7) && (fabs((&t->lo)->x - (&seg[t->lseg].v1)->x) <= 1.0e-7))) +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("8e5yhelccmj6n8d33ziozi9ej"); // v0 = seg[t->rseg].next; +UNSUPPORTED("6dqmuhbse549xc7nbc1t4fi8c"); // v1 = seg[t->lseg].next; +UNSUPPORTED("eh17urgk88bfnpryw1evbojlf"); // retval = 1; +UNSUPPORTED("azgs71ez0f45idcd7u0uhjkz4"); // if (dir == 1) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("747hebbjlsz3afhysgh8jddh3"); // do_switch = NOT(0); +UNSUPPORTED("a63etqdmntd8mnuuuuq2iv8uk"); // mnew = make_new_monotone_poly(mcur, v1, v0); +UNSUPPORTED("e78lvv8zmyhisqei55jg0b5ow"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u0, trnum, flip, 2); +UNSUPPORTED("66azwpktshnoqv46ag8h77g8h"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u1, trnum, flip, 2); +UNSUPPORTED("9vnwz4c8xw8z1762jvr65pidr"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d1, trnum, flip, 1); +UNSUPPORTED("dspgt98nlpx18w318d5b65jdf"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->d0, trnum, flip, 1); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("6tnv93tybou8dnl9l7lcmyp50"); // mnew = make_new_monotone_poly(mcur, v0, v1); +UNSUPPORTED("ck5jclcux876638ifzrabja6c"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d1, trnum, flip, 1); +UNSUPPORTED("el7cvlcafkwitwo8t66cutvmj"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d0, trnum, flip, 1); +UNSUPPORTED("6vtwa1ilotojo4dxm38prhhb6"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u0, trnum, flip, 2); +UNSUPPORTED("8321g7cqx5few6bc5d8ltrpbu"); // size = traverse_polygon (visited, decomp, size, seg, tr, mnew, t->u1, trnum, flip, 2); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4i2amsjqesppq3lp9vpmv7r4r"); // else /* no split possible */ +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("a4ghaevttvkkfms2dhd4j26pc"); // retval = -1; +UNSUPPORTED("bxugslyfkclt3755mhv0sc3ht"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u0, trnum, flip, 2); +UNSUPPORTED("3r3k4encoopl3sdf3f1ozjqhk"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d0, trnum, flip, 1); +UNSUPPORTED("c0yxgwq7qw8py1stvijtw9ut3"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->u1, trnum, flip, 2); +UNSUPPORTED("3ypcbrw5a964vz3dszjca8xvw"); // size = traverse_polygon (visited, decomp, size, seg, tr, mcur, t->d1, trnum, flip, 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8mmoka8dpm06e00j83nvx2wfc"); // return size; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1q5h2go20arrwvxkwi1dpllun +// static int monotonate_trapezoids(int nsegs, segment_t*seg, trap_t* tr, int flip, boxf* decomp) +public static Object monotonate_trapezoids(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("4st5re5qeun3fazm6nwtr2504"); // monotonate_trapezoids(int nsegs, segment_t*seg, trap_t* tr, +UNSUPPORTED("3gqslrg5hqigs6bb03nagwbax"); // int flip, boxf* decomp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9v0t4zzai4k1kr9wu7yirdcca"); // int i, size; +UNSUPPORTED("2axop7sy1z49z2ga4o3phveq3"); // int tr_start; +UNSUPPORTED("403dbgvseikvuaz19wa8ka871"); // int tr_size = (5*(nsegs)+1); +UNSUPPORTED("5l974t0r35h6lgions7zrfr9n"); // int* visited = (int*)zmalloc((tr_size)*sizeof(int)); +UNSUPPORTED("8kbv1p0hl6a1jsb28mp9xizs6"); // mchain = (monchain_t*)zmalloc((tr_size)*sizeof(monchain_t)); +UNSUPPORTED("50knp82hjjep106iokix8jayb"); // vert = (vertexchain_t*)zmalloc((nsegs+1)*sizeof(vertexchain_t)); +UNSUPPORTED("3joe7zjof9jfs427j0nanppzg"); // mon = (int*)zmalloc((nsegs)*sizeof(int)); +UNSUPPORTED("5stezg8pn70o9al2yeof9vbbm"); // /* First locate a trapezoid which lies inside the polygon */ +UNSUPPORTED("clz63gofo9l9x4djgclagrdbl"); // /* and which is triangular */ +UNSUPPORTED("bfkwyvnluov44fmf0ve0qc47b"); // for (i = 0; i < (5*(nsegs)+1); i++) +UNSUPPORTED("3kwag0shsa1vlgnpfz2z52jad"); // if (inside_polygon(&tr[i], seg)) break; +UNSUPPORTED("ebpi22p8d3ms6x8kif7wf849m"); // tr_start = i; +UNSUPPORTED("80e8cmn8ppz1g34yart4h3guc"); // /* Initialise the mon data-structure and start spanning all the */ +UNSUPPORTED("c288aziy4b5qyrm0inw81wpf"); // /* trapezoids within the polygon */ +UNSUPPORTED("9qxeq136dyf2jnwd4bf1kuaq6"); // for (i = 1; i <= nsegs; i++) { +UNSUPPORTED("9m9y60p6vbo7stjuyotwxb88s"); // mchain[i].prev = seg[i].prev; +UNSUPPORTED("88ejlvwd7gy17hqrhragtc8zv"); // mchain[i].next = seg[i].next; +UNSUPPORTED("cu3ie2h2ob81y8d5ebxfm56uj"); // mchain[i].vnum = i; +UNSUPPORTED("9akiu4gv6b7q4t4v7jbvspe77"); // vert[i].pt = seg[i].v0; +UNSUPPORTED("j6yppsuzqh4phhdx6t7chtp3"); // vert[i].vnext[0] = seg[i].next; /* next vertex */ +UNSUPPORTED("avvt0stq2xxai7od20rqmnt4c"); // vert[i].vpos[0] = i; /* locn. of next vertex */ +UNSUPPORTED("68bp8qgzocylz07fdkq761k61"); // vert[i].nextfree = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("50js3uabj113ezvs27yvc5zv5"); // chain_idx = nsegs; +UNSUPPORTED("8ocywthfoxu2ckdm469ksnvdw"); // mon_idx = 0; +UNSUPPORTED("36vw4fu4m3w15c4afhp1dgf7p"); // mon[0] = 1; /* position of any vertex in the first */ +UNSUPPORTED("1gkcquzwnonqmlrklzwimth46"); // /* chain */ +UNSUPPORTED("5mq8oebfg9zlu2dh458odwyza"); // /* traverse the polygon */ +UNSUPPORTED("l12iv7r3oz1l157wkxev3k26"); // if (tr[tr_start].u0 > 0) +UNSUPPORTED("ef00tkl3m246yucima83gjqry"); // size = traverse_polygon (visited, decomp, 0, seg, tr, 0, tr_start, tr[tr_start].u0, flip, 1); +UNSUPPORTED("ek9ndv4cgpvv1ppq3o6hffjln"); // else if (tr[tr_start].d0 > 0) +UNSUPPORTED("2phk6542w1awpzofg19twa9u3"); // size = traverse_polygon (visited, decomp, 0, seg, tr, 0, tr_start, tr[tr_start].d0, flip, 2); +UNSUPPORTED("7p1upi5nlpk6oews5ejvqxzgq"); // free (visited); +UNSUPPORTED("dyur1to2vops13ap1n0q7lsol"); // free (mchain); +UNSUPPORTED("8pnrg51s1fq9cek6lwdi7795g"); // free (vert); +UNSUPPORTED("d0yk4ad70j6la3tjcpwkdaqvf"); // free (mon); +UNSUPPORTED("6vecslx1iges54gigd2bc6x6h"); // /* return the number of rects created */ +UNSUPPORTED("8mmoka8dpm06e00j83nvx2wfc"); // return size; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7dl8o2typqtrtf964o8l9x9mn +// static int rectIntersect (boxf *d, const boxf *r0, const boxf *r1) +public static Object rectIntersect(Object... arg) { +UNSUPPORTED("d9cz56vtrl0ri6hz88cumukuf"); // static int +UNSUPPORTED("emzrn19dd9a1n8a75xt78ialj"); // rectIntersect (boxf *d, const boxf *r0, const boxf *r1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6wfj8onzmd4ihhh62dqfmqpbx"); // double t; +UNSUPPORTED("10mg3ctpr0doly1xr4mn7m39v"); // t = (r0->LL.x > r1->LL.x) ? r0->LL.x : r1->LL.x; +UNSUPPORTED("4q3ymg1fo2b29aomy5kba4o06"); // d->UR.x = (r0->UR.x < r1->UR.x) ? r0->UR.x : r1->UR.x; +UNSUPPORTED("1muxzktb9b7cx05opqest2kf9"); // d->LL.x = t; +UNSUPPORTED("qu5cb749o6mku5meyk7xzjiq"); // t = (r0->LL.y > r1->LL.y) ? r0->LL.y : r1->LL.y; +UNSUPPORTED("3063iivbgzdi6hh53rsfr6o54"); // d->UR.y = (r0->UR.y < r1->UR.y) ? r0->UR.y : r1->UR.y; +UNSUPPORTED("5at6mfpw5k8ldnmm0icvhnj8j"); // d->LL.y = t; +UNSUPPORTED("upus29izwyyfylisn68yvdtv"); // if ((d->LL.x >= d->UR.x) || +UNSUPPORTED("b45965pwcafgyy3hsxz3h3ywo"); // (d->LL.y >= d->UR.y)) +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 73fynz7ym6jvzqhvlj7evww7y +// boxf* partition (cell* cells, int ncells, int* nrects, boxf bb) +public static Object partition(Object... arg) { +UNSUPPORTED("e6wfqaorm3eq04ew3viebrrmw"); // boxf* +UNSUPPORTED("6tl2sd3xvb9xj27ba3ekerljs"); // partition (cell* cells, int ncells, int* nrects, boxf bb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5a9fu6e10ez4wfuzd6drz5wqj"); // int nsegs = 4*(ncells+1); +UNSUPPORTED("8wy6s9fpdi1b5ozj26nvgi5k8"); // segment_t* segs = (segment_t*)gmalloc((nsegs+1)*sizeof(segment_t)); +UNSUPPORTED("56aa5hinuuh4nm3lzmpzutm67"); // int* permute = (int*)zmalloc((nsegs+1)*sizeof(int)); +UNSUPPORTED("79evy8eevd0rueiuu9nwedmmd"); // int hd_size, vd_size; +UNSUPPORTED("377uv2ijmy274yxftumax5tc"); // int i, j, cnt = 0; +UNSUPPORTED("aset1r6i7s8ess7vp2yh2hy3l"); // boxf* rs; +UNSUPPORTED("bxa465e0rk3cso7kp0a5dkzjk"); // int ntraps = (5*(nsegs)+1); +UNSUPPORTED("er46tt5i0x6c3jxkq7mwoku1i"); // trap_t* trs = (trap_t*)gmalloc((ntraps)*sizeof(trap_t)); +UNSUPPORTED("afztmb3ryx5mnwhx57hubf04c"); // boxf* hor_decomp = (boxf*)zmalloc((ntraps)*sizeof(boxf)); +UNSUPPORTED("57drcp2w6xycpft0alhizl1jb"); // boxf* vert_decomp = (boxf*)zmalloc((ntraps)*sizeof(boxf)); +UNSUPPORTED("1k4qbp811phcxky1im1ceolu8"); // int nt; +UNSUPPORTED("4x4e3wgmpgyp48r9d918kpji2"); // /* fprintf (stderr, "cells = %d segs = %d traps = %d\n", ncells, nsegs, ntraps); */ +UNSUPPORTED("3aznlcy8m96vtolzl06u5su27"); // genSegments (cells, ncells, bb, segs, 0); +UNSUPPORTED("cc0cvkd217k2gs1dd318mzfup"); // srand(173); +UNSUPPORTED("1icg2pbsojr5i5uz47hr32q6g"); // generateRandomOrdering (nsegs, permute); +UNSUPPORTED("diwoovfk15pa3cutfdespebi4"); // nt = construct_trapezoids(nsegs, segs, permute, ntraps, trs); +UNSUPPORTED("9y24uilj6sd8c40w65qz24w28"); // /* fprintf (stderr, "hor traps = %d\n", nt); */ +UNSUPPORTED("bywih9homfisgvn30fa9ylam6"); // hd_size = monotonate_trapezoids (nsegs, segs, trs, 0, hor_decomp); +UNSUPPORTED("br66y4yenl0hukxxeblvw92wg"); // genSegments (cells, ncells, bb, segs, 1); +UNSUPPORTED("1icg2pbsojr5i5uz47hr32q6g"); // generateRandomOrdering (nsegs, permute); +UNSUPPORTED("diwoovfk15pa3cutfdespebi4"); // nt = construct_trapezoids(nsegs, segs, permute, ntraps, trs); +UNSUPPORTED("nklu5u660tkq7hgg1skeyos0"); // /* fprintf (stderr, "ver traps = %d\n", nt); */ +UNSUPPORTED("aan563s5w2u32ftofra38kc7f"); // vd_size = monotonate_trapezoids (nsegs, segs, trs, 1, vert_decomp); +UNSUPPORTED("3tjm1uhdfv0fgkihdgxfbtp2k"); // rs = (boxf*)zmalloc((hd_size*vd_size)*sizeof(boxf)); +UNSUPPORTED("1rg2b95x8evw81ge2jwloma9y"); // for (i=0; invs = n; +UNSUPPORTED("8o0aimsmyrmbv62ryv7vejhv1"); // g->vertices = (vertex*)zmalloc((n)*sizeof(vertex)); +UNSUPPORTED("dudyytiqbhk3xyognwkwx5tt1"); // for(i=0;ivertices[i].adj_list = openIntSet (); +UNSUPPORTED("1anncbcbrd6gx9hlo6mg1ha7d"); // g->vertices[i].color = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2syri7q5tc0jyvwq8ecyfo3vr"); // return g; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5qv1mxxuhkzua2w2dqem19lny +// void free_graph(rawgraph* g) +public static Object free_graph(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("6cqftcuhpqak3hl5c518hyr4e"); // free_graph(rawgraph* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("31v9apskm8ur1w7f890v55btk"); // for(i=0;invs;i++) +UNSUPPORTED("mfqz9m45ul5js6fnn03ol8j5"); // dtclose(g->vertices[i].adj_list); +UNSUPPORTED("4836xd1juguptr6qebt07jlrh"); // free (g->vertices); +UNSUPPORTED("dwuc0y4whcauryjdz2g3rdyey"); // free (g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 186nbf92ja5ttnrgvj422eqf5 +// void insert_edge(rawgraph* g, int v1, int v2) +public static Object insert_edge(Object... arg) { +UNSUPPORTED("347dderd02mvlozoheqo4ejwo"); // void +UNSUPPORTED("jldraubzdwc00et6agtk6726"); // insert_edge(rawgraph* g, int v1, int v2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2rjvy9cij6zo2nowb4w37hnjt"); // intitem obj; +UNSUPPORTED("bmm6cyaytc4kc2ri4gey846yp"); // obj.id = v2; +UNSUPPORTED("a1hlf5bwzya3m4ujh9zokvj3a"); // (*(((Dt_t*)(g->vertices[v1].adj_list))->searchf))((g->vertices[v1].adj_list),(void*)(&obj),0000001); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1r1ufpzdilo5438zjdky0uy2w +// void remove_redge(rawgraph* g, int v1, int v2) +public static Object remove_redge(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("a9gk586ljggidricdp6evpxau"); // remove_redge(rawgraph* g, int v1, int v2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2rjvy9cij6zo2nowb4w37hnjt"); // intitem obj; +UNSUPPORTED("bmm6cyaytc4kc2ri4gey846yp"); // obj.id = v2; +UNSUPPORTED("14tyn9y8xz91kr6dfeier49r"); // (*(((Dt_t*)(g->vertices[v1].adj_list))->searchf))((g->vertices[v1].adj_list),(void*)(&obj),0000002); +UNSUPPORTED("c4j1680th3r5qcpns3u4zjale"); // obj.id = v1; +UNSUPPORTED("9oqxwhwpfvzwxbnltjdoq1oga"); // (*(((Dt_t*)(g->vertices[v2].adj_list))->searchf))((g->vertices[v2].adj_list),(void*)(&obj),0000002); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3ff6zoop8jhts0qsvj91k9dfk +// int edge_exists(rawgraph* g, int v1, int v2) +public static Object edge_exists(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("4urd9z39jr49sen0w7s573505"); // edge_exists(rawgraph* g, int v1, int v2) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e2phkxwl9hjxom6accmixx6p2"); // return ((*(((Dt_t*)(g->vertices[v1].adj_list))->searchf))((g->vertices[v1].adj_list),(void*)(&v2),0001000) != 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1zivcgw1xwk6pq169yqc75oh1 +// static stack* mkStack (int i) +public static Object mkStack(Object... arg) { +UNSUPPORTED("9cla0obmp67i5rjsjxiqdeimj"); // static stack* +UNSUPPORTED("ci2xjox5enk1600klp4wnc4d0"); // mkStack (int i) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8bsg9hgmxo09dmbp0rqikzip9"); // stack* sp = (stack*)zmalloc(sizeof(stack)); +UNSUPPORTED("dgvcpjjkop19ctj9c6as7irgh"); // sp->vals = (int*)zmalloc((i)*sizeof(int)); +UNSUPPORTED("6ak6snmn7x9mv08cxv1uhqto0"); // sp->top = -1; +UNSUPPORTED("c31qqlge2adqev6kmlr0iuaea"); // return sp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 56jaryc2ndgkphreacgutgkko +// static void freeStack (stack* s) +public static Object freeStack(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("1tmwfqmwfffw7layx1b9l774l"); // freeStack (stack* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4ivw0yolzv64dlaqawvv30x5v"); // free (s->vals); +UNSUPPORTED("f1430a029xzg8cabffg2k9l6j"); // free (s); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 40jmhsu64yd114q5sxnbwirxh +// static void pushStack (stack* s, int i) +public static Object pushStack(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("efz1du2gap9f44f5qfs4oa0ga"); // pushStack (stack* s, int i) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1a9i725yadesextx7inlkz10x"); // s->top++; +UNSUPPORTED("5pdmgjwfiz1iusmq5fydnblap"); // s->vals[s->top] = i; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4oxcr6qfkyvzxsr9y5oo4ok34 +// static int popStack (stack* s) +public static Object popStack(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("9blpzh0xe07qxynad8t5mqz8x"); // popStack (stack* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6m5stt3wg7jgpdcvvk37onm1s"); // int v; +UNSUPPORTED("ceenb9p2929863jeh6inli97k"); // if (s->top == -1) return -1; +UNSUPPORTED("efrvy47jf2m4lt70c0u4yxt67"); // v = s->vals[s->top]; +UNSUPPORTED("owa601uw5gl8igjnyr2lfsq7"); // s->top--; +UNSUPPORTED("dpci52ct1zm8k1aasm170ru2j"); // return v; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2jkcimgyhf4lzdolm41833uv1 +// static int DFS_visit(rawgraph* g, int v, int time, stack* sp) +public static Object DFS_visit(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("9tjvxtubftvfbyn9yg9s2ukk5"); // DFS_visit(rawgraph* g, int v, int time, stack* sp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("efg3j1wpsky3c1yns7rcddd1g"); // Dt_t* adj; +UNSUPPORTED("6i10bzt8ybhoodrtwofkpcavu"); // Dtlink_t* link; +UNSUPPORTED("9uf2icnp9lntl8gmbrqtn59cu"); // int id; +UNSUPPORTED("b69yoemu1fzv6up7qzrryu9z1"); // vertex* vp; +UNSUPPORTED("eoyjtfht0qiqsx0g6j3shub2r"); // vp = g->vertices + v; +UNSUPPORTED("1bpaugmlepecgk8uiqqd6lhih"); // vp->color = 1; +UNSUPPORTED("17rwtc50qcliu6s4uujnjxlfn"); // /* g->vertices[v].d = time; */ +UNSUPPORTED("c8ss949bn9k3dw76vpp186lei"); // adj = vp->adj_list; +UNSUPPORTED("5mtxa718isij6bd88jbwav09r"); // time = time + 1; +UNSUPPORTED("683z4jufz8k2kssqjqpceyjzm"); // for(link = dtflatten (adj); link; link = (((Dtlink_t*)(link))->right)) { +UNSUPPORTED("2aeor5mnjzhwqpcgc294oq70m"); // id = ((intitem*)(((Dt_t*)(adj))->disc->link < 0 ? ((Dthold_t*)((link)))->obj : (void*)((char*)((link)) - ((Dt_t*)(adj))->disc->link) ))->id; +UNSUPPORTED("1fci76oeaq8sz2pvp4p6npq73"); // if(g->vertices[id].color == 0) +UNSUPPORTED("94vjlul0tyxbd7e0q4ing2z1h"); // time = DFS_visit(g, id, time, sp); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2rts8n24enk3adhy8owm41yh9"); // vp->color = 2; +UNSUPPORTED("c4n0lojve186vzv3wqq6dk1pl"); // /* g->vertices[v].f = time; */ +UNSUPPORTED("axvith90awf9705pbyhu4nx38"); // pushStack (sp, v); +UNSUPPORTED("9pkzxm2gxhkcw8p51ercqleh1"); // return (time + 1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9r0jqlhxs5buqs5hsdqnbj84j +// void top_sort(rawgraph* g) +public static Object top_sort(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("4yot0xeux4j9xntlfs27gwtcf"); // top_sort(rawgraph* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b9q08fv1def3y3mbkfcttoygi"); // int i, v; +UNSUPPORTED("c3xjd5j8j3bgmchyoisbyw64b"); // int time = 0; +UNSUPPORTED("551funk1bxiemly3silcqtngw"); // int count = 0; +UNSUPPORTED("c7rls4c8tdfpn2b8sp15reiyh"); // stack* sp; +UNSUPPORTED("9n2rm2xd87zhiqudy5248ij10"); // if (g->nvs == 0) return; +UNSUPPORTED("5j8ivb7xr19v4nmq7wd60cj5p"); // if (g->nvs == 1) { +UNSUPPORTED("5p60crx1qes9x8eijukw93td3"); // g->vertices[0].topsort_order = count; +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dlug72rf2lqioskxr8kgz0r1f"); // sp = mkStack (g->nvs); +UNSUPPORTED("89rud9nlbi3f8k7rz0vv5vtd8"); // for(i=0;invs;i++) { +UNSUPPORTED("9lczna1336ncq8zrahl9nzymo"); // if(g->vertices[i].color == 0) +UNSUPPORTED("6ln2w0gjr0kz3163kops6o4p1"); // time = DFS_visit(g, i, time, sp); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a9tz9ejeuh2cz8adl3rtuxvth"); // while((v = popStack(sp)) >= 0) { +UNSUPPORTED("9m1c27tt4l4z6f1503uugs6ak"); // g->vertices[v].topsort_order = count; +UNSUPPORTED("4221wbi45004vm34bns3e6zhv"); // count++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("71qiyws5c2bt08glef0zb8cfv"); // freeStack (sp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/ortho/sgraph__c.java plantuml-8039/src/gen/lib/ortho/sgraph__c.java --- plantuml-8024/src/gen/lib/ortho/sgraph__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/ortho/sgraph__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,377 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.ortho; +import static smetana.core.Macro.UNSUPPORTED; + +public class sgraph__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + + + +//3 do1p8q9fgspbwjclhfas1e31i +// void gsave (sgraph* G) +public static Object gsave(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("53tz1kawkoq5faz7kymp6ptpo"); // gsave (sgraph* G) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("4a3idvuwsn45q081062uxj30b"); // G->save_nnodes = G->nnodes; +UNSUPPORTED("dvjft3jbvipb8kx48kn2cxq4d"); // G->save_nedges = G->nedges; +UNSUPPORTED("ehil2x3e5xjd504di5xq03ix2"); // for (i = 0; i < G->nnodes; i++) +UNSUPPORTED("8phdmwqejnwfe17clzvzqusic"); // G->nodes[i].save_n_adj = G->nodes[i].n_adj; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4bd3mhrsaxr0us4mbdlnz3fva +// void reset(sgraph* G) +public static Object reset(Object... arg) { +UNSUPPORTED("347dderd02mvlozoheqo4ejwo"); // void +UNSUPPORTED("o6ryffoh62mg3jqikb1bcvcn"); // reset(sgraph* G) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("4z92iyiytnarfwg69q6q1qxdo"); // G->nnodes = G->save_nnodes; +UNSUPPORTED("gi9g609ppu0efm44uexae3lg"); // G->nedges = G->save_nedges; +UNSUPPORTED("ehil2x3e5xjd504di5xq03ix2"); // for (i = 0; i < G->nnodes; i++) +UNSUPPORTED("amo8o2h5u6ikoe5ouawwnxttv"); // G->nodes[i].n_adj = G->nodes[i].save_n_adj; +UNSUPPORTED("395pz5pbzjp227kygyayer2m0"); // for (; i < G->nnodes+2; i++) +UNSUPPORTED("1w65z5djtqk8i6nk3cu9qavs9"); // G->nodes[i].n_adj = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2uooy3bnw1kc4mm4ns09blzvd +// void initSEdges (sgraph* g, int maxdeg) +public static Object initSEdges(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("3t8ixyxav6ee8tjumnj6c4on7"); // initSEdges (sgraph* g, int maxdeg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("584qbup3c7sdxo8kave8mllal"); // int* adj = (int*)zmalloc((6*g->nnodes + 2*maxdeg)*sizeof(int)); +UNSUPPORTED("dvc1rp1rnjfmjnxvwpm004stb"); // g->edges = (sedge*)zmalloc((3*g->nnodes + maxdeg)*sizeof(sedge)); +UNSUPPORTED("eavilhxlidc3wjniw4glglbnt"); // for (i = 0; i < g->nnodes; i++) { +UNSUPPORTED("ckt5vl01ya7v4i84i9yxcipv0"); // g->nodes[i].adj_edge_list = adj; +UNSUPPORTED("dzxhiwbj9xcvedfridh0okcez"); // adj += 6; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dgkzkhndgc3xziilvfagce4xi"); // for (; i < g->nnodes+2; i++) { +UNSUPPORTED("ckt5vl01ya7v4i84i9yxcipv0"); // g->nodes[i].adj_edge_list = adj; +UNSUPPORTED("68si7kljcmnbf59kgy3rk0m6z"); // adj += maxdeg; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4lws7mi89ekzzcc99wuw9r7l8 +// sgraph* createSGraph (int nnodes) +public static Object createSGraph(Object... arg) { +UNSUPPORTED("9xadge294rqhy06asmqycka8m"); // sgraph* +UNSUPPORTED("eqjwxhjyhqmefxsvpknl1bnfx"); // createSGraph (int nnodes) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dwa606y0aknngzxrrsnswltbr"); // sgraph* g = (sgraph*)zmalloc(sizeof(sgraph)); +UNSUPPORTED("1i02j60f9yupm02tj9rvzps0o"); // /* create the nodes vector in the search graph */ +UNSUPPORTED("3yhlfn7hpvrjkdva5gida8jqo"); // g->nnodes = 0; +UNSUPPORTED("47bxz2s175s5k1snvid5o4hve"); // g->nodes = (snode*)zmalloc((nnodes)*sizeof(snode)); +UNSUPPORTED("2syri7q5tc0jyvwq8ecyfo3vr"); // return g; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4jwt9radjtehigwninuxfni66 +// snode* createSNode (sgraph* g) +public static Object createSNode(Object... arg) { +UNSUPPORTED("7qyamsdkopruu23xaccl0bcd2"); // snode* +UNSUPPORTED("753vtsohiclqv7nl3y14twf19"); // createSNode (sgraph* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1hdbk7wtbmf5ysy77ka3v1wv1"); // snode* np = g->nodes+g->nnodes; +UNSUPPORTED("12345aoqngizwar08ubsjkjql"); // np->index = g->nnodes; +UNSUPPORTED("1pdvfvgbmueo5t1u1q4rbj9t4"); // g->nnodes++; +UNSUPPORTED("8iwc9afkw6pes2mgfhktuxzj8"); // return np; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 49zscu3ughv1sfoes00tmvzew +// static void addEdgeToNode (snode* np, sedge* e, int idx) +public static Object addEdgeToNode(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("dpg266aklzv95plhgmmdgdl2h"); // addEdgeToNode (snode* np, sedge* e, int idx) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3bjz47ii1rlzjcxhnphx8bepr"); // np->adj_edge_list[np->n_adj] = idx; +UNSUPPORTED("2vd3mg5b94lmz0n3qsamkbrbk"); // np->n_adj++; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 25bbgi67jwpg5nrx87bctkn5s +// sedge* createSEdge (sgraph* g, snode* v1, snode* v2, double wt) +public static Object createSEdge(Object... arg) { +UNSUPPORTED("de30fcx2rpq95h8prggzz38de"); // sedge* +UNSUPPORTED("e67qstzz1cjy6tm1gp72tqiy9"); // createSEdge (sgraph* g, snode* v1, snode* v2, double wt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5us6bymu4crkiqypwh57332hj"); // sedge* e; +UNSUPPORTED("3edhazo5e0eznk99j763w7wvk"); // int idx = g->nedges++; +UNSUPPORTED("12o3iah7k1tllf6ehoks5ez9r"); // e = g->edges + idx; +UNSUPPORTED("742bl52l6dlhwl8vdmr0gi6mt"); // e->v1 = v1->index; +UNSUPPORTED("eo17frg8yipb9e15ykaocxv8"); // e->v2 = v2->index; +UNSUPPORTED("3tbomhde001xxpsgrqrxaj5qq"); // e->weight = wt; +UNSUPPORTED("bdajav43vx6s0dqy0k4qzz34r"); // e->cnt = 0; +UNSUPPORTED("2fxbnv4tmis57zol548d8t69o"); // addEdgeToNode (v1, e, idx); +UNSUPPORTED("8fhmkjmzcgsaedp55s0lgcnzf"); // addEdgeToNode (v2, e, idx); +UNSUPPORTED("2bswif6w6ot01ynlvkimntfly"); // return e; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cmavbm512p00aze5hpa7ewqnf +// void freeSGraph (sgraph* g) +public static Object freeSGraph(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("9hthkvnsrcbkqzxbng2mlgcr"); // freeSGraph (sgraph* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5xfei00jwgg7b7kejqmwtve51"); // free (g->nodes[0].adj_edge_list); +UNSUPPORTED("apli015280vdkava7kzfu45gt"); // free (g->nodes); +UNSUPPORTED("aobfrb6yk5ivr8l2memu6iegu"); // free (g->edges); +UNSUPPORTED("dwuc0y4whcauryjdz2g3rdyey"); // free (g); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1rcimcpgyvapk639i1ln4ubi5 +// static snode* adjacentNode(sgraph* g, sedge* e, snode* n) +public static Object adjacentNode(Object... arg) { +UNSUPPORTED("1mqfssg5cquehb5bdk2189gy2"); // static snode* +UNSUPPORTED("d7hrrud3osvm08rbt95y6nc7v"); // adjacentNode(sgraph* g, sedge* e, snode* n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aapvzqekocoy044mxh46608wo"); // if (e->v1==n->index) +UNSUPPORTED("62g358pvqoywxqbeb39tjulp2"); // return (&(g->nodes[e->v2])); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("dkxx6omcntqirmu5yygun7kop"); // return (&(g->nodes[e->v1])); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9giqtyb1anron57zz1mdcuwr0 +// int shortPath (sgraph* g, snode* from, snode* to) +public static Object shortPath(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("2d7cnx1fuelcu110onyrglta1"); // shortPath (sgraph* g, snode* from, snode* to) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2azqjiolcsah2sn6lnkbcv8q6"); // snode* n; +UNSUPPORTED("5us6bymu4crkiqypwh57332hj"); // sedge* e; +UNSUPPORTED("a4iu3ng9cbut3oe6j3w1hhtlw"); // snode* adjn; +UNSUPPORTED("5azgw3jpyk2yccpp3p4s3q817"); // int d; +UNSUPPORTED("1ouxm7u78s3lne6g97el7yirj"); // int x, y; +UNSUPPORTED("cj7nzqwbchsm0mvo2wmynwq5u"); // for (x = 0; xnnodes; x++) { +UNSUPPORTED("7d5ytzu7ryaoy73g9z0g89g37"); // snode* temp; +UNSUPPORTED("ed9j6kqbny3qsxz8e8dk4vxe6"); // temp = &(g->nodes[x]); +UNSUPPORTED("78pvwvoqedjj594q1og8f58lt"); // (temp)->n_val = INT_MIN; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6ig938tzt63g78nuq5ozjoxia"); // PQinit(); +UNSUPPORTED("d1qoqypb9nj64lzirszjt4ips"); // if (PQ_insert (from)) return 1; +UNSUPPORTED("5jv8ecdm6aag2bo5uj5oaqdmn"); // (from)->n_dad = NULL; +UNSUPPORTED("ddhvyzr3vort1bce9uxacz0cy"); // (from)->n_val = 0; +UNSUPPORTED("58d6z37ovsflm1901h2priinl"); // while ((n = PQremove())) { +UNSUPPORTED("83j13xloeu1fjo8bdrw4zv4ot"); // (n)->n_val *= -1; +UNSUPPORTED("62t0o3w85qn5ull41imvtkl2v"); // if (n == to) break; +UNSUPPORTED("2yuzydrscmjwya9vwcjaub1bw"); // for (y=0; yn_adj; y++) { +UNSUPPORTED("7dykckcqwi0r01sokehzys07u"); // e = &(g->edges[n->adj_edge_list[y]]); +UNSUPPORTED("ee5sii5zq78njilg2b84rcedx"); // adjn = adjacentNode(g, e, n); +UNSUPPORTED("dcr46uov2a9y4x1d805di1vkj"); // if ((adjn)->n_val < 0) { +UNSUPPORTED("ean1jlrfbqj5db693w8atob75"); // d = -((n)->n_val + (e->weight)); +UNSUPPORTED("5i12njirmr3egi8u7dyh2x5jq"); // if ((adjn)->n_val == INT_MIN) { +UNSUPPORTED("7fyonsun390xwjwz5nvv6387t"); // (adjn)->n_val = d; +UNSUPPORTED("17otcakp576j9myi0y8j2018l"); // if (PQ_insert(adjn)) return 1; +UNSUPPORTED("cr4e7c9poda05whkcy9htuvi4"); // (adjn)->n_dad = n; +UNSUPPORTED("4ag21fj7gx3dj7pmwqjl89ucr"); // (adjn)->n_edge = e; +UNSUPPORTED("1vo9ytkxoezj3oe6k9py3kdc4"); // } +UNSUPPORTED("d28blrbmwwqp80cyksuz7dwx9"); // else { +UNSUPPORTED("ddue9dplflq1i5vnoxj8kmr5q"); // if ((adjn)->n_val < d) { +UNSUPPORTED("btt3je7wg001msmvi1swe6o2i"); // PQupdate(adjn, d); +UNSUPPORTED("dkztzg2evj6hhccujfulxxaif"); // (adjn)->n_dad = n; +UNSUPPORTED("7jm2ji6pc40tpai19vzx2ewqf"); // (adjn)->n_edge = e; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7a6hw5yb8rm8wg0rs40229cw4"); // /* PQfree(); */ +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/ortho/trapezoid__c.java plantuml-8039/src/gen/lib/ortho/trapezoid__c.java --- plantuml-8024/src/gen/lib/ortho/trapezoid__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/ortho/trapezoid__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1056 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.ortho; +import static smetana.core.Macro.UNSUPPORTED; + +public class trapezoid__c { +//1 9sub06q78sfddgkymxfcy2c73 +// static int q_idx + + +//1 6g6us29cvfladuvel3e1yesjo +// static int tr_idx + + +//1 d43x33t89dq1mez0urx9oiia6 +// static int QSIZE + + +//1 bweoibjhrqkbu4mf0na0da9i4 +// static int TRSIZE + + + + +//3 ezwgb38ifqfgyqxu3qqar9lpw +// static int newnode() +public static Object newnode(Object... arg) { +UNSUPPORTED("7foww06xea9wyyn20fapyohtz"); // static int newnode() +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aqs9lgy5mghk1gc6qzg6yfy4s"); // if (q_idx < QSIZE) +UNSUPPORTED("8djpsfvmvn0bc1er4s9kph9cj"); // return q_idx++; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("11efsmyeab3fqgi4nmlwej7ui"); // fprintf(stderr, "newnode: Query-table overflow\n"); +UNSUPPORTED("2g1czwq8qs1hp7515i11qbn75"); // assert(0); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4lbfds1s3bs19eoap1a3m3e6z +// static int newtrap(trap_t* tr) +public static Object newtrap(Object... arg) { +UNSUPPORTED("5u9cievsb4s3x8zwuu8pspcam"); // static int newtrap(trap_t* tr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("d8y9k9n2vzw3s1hdo0dyfgusw"); // if (tr_idx < TRSIZE) { +UNSUPPORTED("24d5qbi4y7dlh2alv9w6dspvq"); // tr[tr_idx].lseg = -1; +UNSUPPORTED("9zrdh7a878ko4cmpzev5ayinb"); // tr[tr_idx].rseg = -1; +UNSUPPORTED("74u8379xavsf8burpaazx8doy"); // tr[tr_idx].state = 1; +UNSUPPORTED("cp5hfaygeyrh9332itky24tau"); // return tr_idx++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("4zebr8hhs7o8tpx01k01mpds0"); // fprintf(stderr, "newtrap: Trapezoid-table overflow %d\n", tr_idx); +UNSUPPORTED("2g1czwq8qs1hp7515i11qbn75"); // assert(0); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3vts8knsk95mverrgac2cq3yc +// static int _max (pointf *yval, pointf *v0, pointf *v1) +public static Object _max(Object... arg) { +UNSUPPORTED("b70ixswaw70rop2i3a10o3usx"); // static int _max (pointf *yval, pointf *v0, pointf *v1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8sp05pzzul51jatoi7t38rnpp"); // if (v0->y > v1->y + 1.0e-7) +UNSUPPORTED("180yy7z15hk29ewh0m4iwy075"); // *yval = *v0; +UNSUPPORTED("2ty39vroyyu183wiz8ofw0rxa"); // else if ((fabs(v0->y - v1->y) <= 1.0e-7)) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("72xrk5q82zxqso4bc60bh0en6"); // if (v0->x > v1->x + 1.0e-7) +UNSUPPORTED("1cpd3nxmmss753abfkrjus62"); // *yval = *v0; +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("90n843sj6wbl3520yksspwwd7"); // *yval = *v1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8983svt6g1kt3l45bd6ju9mw6"); // else +UNSUPPORTED("3alzaeg88yo110ikg55vztkke"); // *yval = *v1; +UNSUPPORTED("bid671dovx1rdiquw5vm3fttj"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5wxt3huxqmnpq4koff0wywqeg +// static int _min (pointf *yval, pointf *v0, pointf *v1) +public static Object _min(Object... arg) { +UNSUPPORTED("41dy0yxvmnu3g6nomhqjilah6"); // static int _min (pointf *yval, pointf *v0, pointf *v1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6kmfzgofw4kdg3jrtg4qesuzn"); // if (v0->y < v1->y - 1.0e-7) +UNSUPPORTED("180yy7z15hk29ewh0m4iwy075"); // *yval = *v0; +UNSUPPORTED("2ty39vroyyu183wiz8ofw0rxa"); // else if ((fabs(v0->y - v1->y) <= 1.0e-7)) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("459y4uw84m4wk21vkdz3fp0q"); // if (v0->x < v1->x) +UNSUPPORTED("1cpd3nxmmss753abfkrjus62"); // *yval = *v0; +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("90n843sj6wbl3520yksspwwd7"); // *yval = *v1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8983svt6g1kt3l45bd6ju9mw6"); // else +UNSUPPORTED("3alzaeg88yo110ikg55vztkke"); // *yval = *v1; +UNSUPPORTED("bid671dovx1rdiquw5vm3fttj"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1tgrd4zziresuq6qhk0xfoa92 +// static int _greater_than_equal_to (pointf *v0, pointf *v1) +public static Object _greater_than_equal_to(Object... arg) { +UNSUPPORTED("3x672w6uwysfps5nvhyqmwl95"); // static int _greater_than_equal_to (pointf *v0, pointf *v1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8sp05pzzul51jatoi7t38rnpp"); // if (v0->y > v1->y + 1.0e-7) +UNSUPPORTED("4si0cf97a5sfd9ozuunds9goz"); // return (!(0)); +UNSUPPORTED("cmmtmayq5o6ek8zgcrha6po9p"); // else if (v0->y < v1->y - 1.0e-7) +UNSUPPORTED("297p5iu8oro94tdg9v29bbgiw"); // return (0); +UNSUPPORTED("8983svt6g1kt3l45bd6ju9mw6"); // else +UNSUPPORTED("ccnvf5snmgs9gvqzl6fmieioz"); // return (v0->x >= v1->x); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ckf51i5h4qoeq20aso56vcc5h +// static int _less_than (pointf *v0, pointf *v1) +public static Object _less_than(Object... arg) { +UNSUPPORTED("8ancjlh02pjhsn49e6a25wl6r"); // static int _less_than (pointf *v0, pointf *v1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6kmfzgofw4kdg3jrtg4qesuzn"); // if (v0->y < v1->y - 1.0e-7) +UNSUPPORTED("4si0cf97a5sfd9ozuunds9goz"); // return (!(0)); +UNSUPPORTED("cg91nfse0xdez0vz4ak53mlc6"); // else if (v0->y > v1->y + 1.0e-7) +UNSUPPORTED("297p5iu8oro94tdg9v29bbgiw"); // return (0); +UNSUPPORTED("8983svt6g1kt3l45bd6ju9mw6"); // else +UNSUPPORTED("5gqsmyi9rrv1qx6cgtd2xi44t"); // return (v0->x < v1->x); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7q4v9wyz2nlemt8xq7v0184fv +// static int init_query_structure(int segnum, segment_t* seg, trap_t* tr, qnode_t* qs) +public static Object init_query_structure(Object... arg) { +UNSUPPORTED("d9cz56vtrl0ri6hz88cumukuf"); // static int +UNSUPPORTED("80esr9k64zjsp5282c35kte4"); // init_query_structure(int segnum, segment_t* seg, trap_t* tr, qnode_t* qs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2esdkeckyaxmhthp1vzn695tv"); // int i1, i2, i3, i4, i5, i6, i7, root; +UNSUPPORTED("1etoutqq3u32ryiyi4rlsmsro"); // int t1, t2, t3, t4; +UNSUPPORTED("55wy1clqaecn10s0jetfvt04s"); // segment_t *s = &seg[segnum]; +UNSUPPORTED("c83t5z66410r47uvwhte8atg2"); // i1 = newnode(); +UNSUPPORTED("6tcn5be7qo2ntg03pl4u3r61e"); // qs[i1].nodetype = 2; +UNSUPPORTED("c1r0tcnd1jjxieidujrboz04k"); // _max(&qs[i1].yval, &s->v0, &s->v1); /* root */ +UNSUPPORTED("f428tco5zyg6ypbzmd6nv8jxo"); // root = i1; +UNSUPPORTED("1939agqcbtihe79feh1epnhqd"); // qs[i1].right = i2 = newnode(); +UNSUPPORTED("bclzn2z0bot5q64khoc3xo1eh"); // qs[i2].nodetype = 3; +UNSUPPORTED("3wxpvt6gxhzk59qbw5yybfzok"); // qs[i2].parent = i1; +UNSUPPORTED("50zz911fku71s62zxmf340erk"); // qs[i1].left = i3 = newnode(); +UNSUPPORTED("a2m2pfcpcs6m23o59w73a3ult"); // qs[i3].nodetype = 2; +UNSUPPORTED("844hmc2g8n8v8oq1t3pu20waf"); // _min(&qs[i3].yval, &s->v0, &s->v1); /* root */ +UNSUPPORTED("6eqlqz24lil3mz951mbp9aigr"); // qs[i3].parent = i1; +UNSUPPORTED("6umgkg0ppnkz3jqbvyaxe1m2i"); // qs[i3].left = i4 = newnode(); +UNSUPPORTED("2a5a7b307rm5psez1mdr9nc42"); // qs[i4].nodetype = 3; +UNSUPPORTED("1qbi9f0emsed1xpkk2p6wqgr1"); // qs[i4].parent = i3; +UNSUPPORTED("7ijfbel4e53xg0oyi1hdok8qp"); // qs[i3].right = i5 = newnode(); +UNSUPPORTED("d9lgcb4dl6oscs3faq8cipzdp"); // qs[i5].nodetype = 1; +UNSUPPORTED("3ncb03lht8293piupe9raycfn"); // qs[i5].segnum = segnum; +UNSUPPORTED("b3g3e6ii94dctnonsv4wd6pdl"); // qs[i5].parent = i3; +UNSUPPORTED("2hrir3mvn61r4z0suya88l2nq"); // qs[i5].left = i6 = newnode(); +UNSUPPORTED("z8w28kgi1isfybx3itfos5s6"); // qs[i6].nodetype = 3; +UNSUPPORTED("cu0goy732xo6v416gatn10gvh"); // qs[i6].parent = i5; +UNSUPPORTED("8mrutb9o0h1by9tk58yfkoqth"); // qs[i5].right = i7 = newnode(); +UNSUPPORTED("4hxmyrxp7ehrl5bbgglxggb3v"); // qs[i7].nodetype = 3; +UNSUPPORTED("7cv8pxpknvmffsmvootfn7huq"); // qs[i7].parent = i5; +UNSUPPORTED("47um0g3rf0a66rfc8ix8q7vds"); // t1 = newtrap(tr); /* middle left */ +UNSUPPORTED("dhqbu2kqod5qekt4mbkpcokkj"); // t2 = newtrap(tr); /* middle right */ +UNSUPPORTED("9d3tauevh5y1ibiiwo6wp2v76"); // t3 = newtrap(tr); /* bottom-most */ +UNSUPPORTED("8by6n8cunt2i39aek7qn4bxzm"); // t4 = newtrap(tr); /* topmost */ +UNSUPPORTED("9ooybm01jfqc70193duq4ut3k"); // tr[t1].hi = tr[t2].hi = tr[t4].lo = qs[i1].yval; +UNSUPPORTED("ahal1vcbrbvp2tots6ntov40m"); // tr[t1].lo = tr[t2].lo = tr[t3].hi = qs[i3].yval; +UNSUPPORTED("awhuxi9kh5n3qn62td3x1rx2e"); // tr[t4].hi.y = (double) (1<<30); +UNSUPPORTED("9yuy8hbx22hhqfluto46v4rb3"); // tr[t4].hi.x = (double) (1<<30); +UNSUPPORTED("dogql1uip3yn8sty2gnmwevpt"); // tr[t3].lo.y = (double) -1* (1<<30); +UNSUPPORTED("d2iv9aswbnku15auic7ves2fg"); // tr[t3].lo.x = (double) -1* (1<<30); +UNSUPPORTED("8y0utktr8o66ckjdf97ig9bw3"); // tr[t1].rseg = tr[t2].lseg = segnum; +UNSUPPORTED("8my9cfjyt5wyy7n9gqm30i6f"); // tr[t1].u0 = tr[t2].u0 = t4; +UNSUPPORTED("78rq2swfcihc9nwji63nql4b3"); // tr[t1].d0 = tr[t2].d0 = t3; +UNSUPPORTED("ebptwtro7kf1luhehrxb744p8"); // tr[t4].d0 = tr[t3].u0 = t1; +UNSUPPORTED("amaflatnwoybz3paepojnqzjc"); // tr[t4].d1 = tr[t3].u1 = t2; +UNSUPPORTED("cgyw8wailvfpayg8djskaqm0j"); // tr[t1].sink = i6; +UNSUPPORTED("2sj6wyx5ww6w67v1loc3qhk4a"); // tr[t2].sink = i7; +UNSUPPORTED("4h7l33kqm6unri8ilybcbjfcw"); // tr[t3].sink = i4; +UNSUPPORTED("2wmmcp3dsa7xgu0t7iyv906s2"); // tr[t4].sink = i2; +UNSUPPORTED("bxw0r5s14kl48z1l94rbm9ur"); // tr[t1].state = tr[t2].state = 1; +UNSUPPORTED("5n86x6hksj9v0g2mlx1fxaafr"); // tr[t3].state = tr[t4].state = 1; +UNSUPPORTED("2xueg60vz46kgccrmtjvwznoi"); // qs[i2].trnum = t4; +UNSUPPORTED("6cc5iezoueqotgmhzeglj4pz9"); // qs[i4].trnum = t3; +UNSUPPORTED("187dsocnulk5op8i2uxlll76g"); // qs[i6].trnum = t1; +UNSUPPORTED("eu7m875ftlwx5wo4kxra1uhmp"); // qs[i7].trnum = t2; +UNSUPPORTED("68vdbfxjp39ycnev1lw2fz5px"); // s->is_inserted = (!(0)); +UNSUPPORTED("8kli59ivt5ad0heic1p0r3dbs"); // return root; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8ewy3ncs31dca68taarb3iw8t +// static int is_left_of (int segnum, segment_t* seg, pointf *v) +public static Object is_left_of(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("5njshx2lwca6yvst4l5l2kvum"); // is_left_of (int segnum, segment_t* seg, pointf *v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("55wy1clqaecn10s0jetfvt04s"); // segment_t *s = &seg[segnum]; +UNSUPPORTED("42zj0zwvmsgnq8k1sof5wa9x2"); // double area; +UNSUPPORTED("63r3u1i01cseh1k50rrs740v"); // if ((((&s->v1)->y > (&s->v0)->y + 1.0e-7) ? (!(0)) : (((&s->v1)->y < (&s->v0)->y - 1.0e-7) ? (0) : ((&s->v1)->x > (&s->v0)->x)))) /* seg. going upwards */ +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("cbadnx7r0dofl81ka6xnnq6o7"); // if ((fabs(s->v1.y - v->y) <= 1.0e-7)) +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("cxi8g1p2jce4akg5ny6kbhrfj"); // if (v->x < s->v1.x) +UNSUPPORTED("1fw3mcjmrjyug8inon5ce6dqp"); // area = 1.0; +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("7jzu14omzk1dfuz500k0pmy3i"); // area = -1.0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3y16ysaprb1mi29myg2n7khc3"); // else if ((fabs(s->v0.y - v->y) <= 1.0e-7)) +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("blqfzreaz43r05gwx8e2g2mwl"); // if (v->x < s->v0.x) +UNSUPPORTED("1fw3mcjmrjyug8inon5ce6dqp"); // area = 1.0; +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("7jzu14omzk1dfuz500k0pmy3i"); // area = -1.0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("9j65co4mvzqq92gveemasixui"); // area = (((s->v1).x - (s->v0).x)*(((*v)).y - (s->v0).y) - ((s->v1).y - (s->v0).y)*(((*v)).x - (s->v0).x)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1ifob9844re1ifigjf8fkr37a"); // else /* v0 > v1 */ +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("cbadnx7r0dofl81ka6xnnq6o7"); // if ((fabs(s->v1.y - v->y) <= 1.0e-7)) +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("cxi8g1p2jce4akg5ny6kbhrfj"); // if (v->x < s->v1.x) +UNSUPPORTED("1fw3mcjmrjyug8inon5ce6dqp"); // area = 1.0; +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("7jzu14omzk1dfuz500k0pmy3i"); // area = -1.0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3y16ysaprb1mi29myg2n7khc3"); // else if ((fabs(s->v0.y - v->y) <= 1.0e-7)) +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("blqfzreaz43r05gwx8e2g2mwl"); // if (v->x < s->v0.x) +UNSUPPORTED("1fw3mcjmrjyug8inon5ce6dqp"); // area = 1.0; +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("7jzu14omzk1dfuz500k0pmy3i"); // area = -1.0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("4mok58gqh8sibhgfd7iko8c9v"); // area = (((s->v0).x - (s->v1).x)*(((*v)).y - (s->v1).y) - ((s->v0).y - (s->v1).y)*(((*v)).x - (s->v1).x)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f01je1mbiagbodxwrd5uinsjb"); // if (area > 0.0) +UNSUPPORTED("4si0cf97a5sfd9ozuunds9goz"); // return (!(0)); +UNSUPPORTED("783dsehm4gdkhlghq59hccnzp"); // else +UNSUPPORTED("297p5iu8oro94tdg9v29bbgiw"); // return (0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ds0k9vbvh7ed069gt2xxgoh8f +// static int inserted (int segnum, segment_t* seg, int whichpt) +public static Object inserted(Object... arg) { +UNSUPPORTED("1hxgwm2z6apwm18im719wroya"); // static int inserted (int segnum, segment_t* seg, int whichpt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("178ivgdk5i7c18ldleui4zwx8"); // if (whichpt == 1) +UNSUPPORTED("6ne7u4gw5ulsrhx8n7u6rkli4"); // return seg[seg[segnum].prev].is_inserted; +UNSUPPORTED("8983svt6g1kt3l45bd6ju9mw6"); // else +UNSUPPORTED("e67pnyvlna9gyn2uw744phhx8"); // return seg[seg[segnum].next].is_inserted; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3sd5i6hidutg4bza9cb9iqpxj +// static int locate_endpoint (pointf *v, pointf *vo, int r, segment_t* seg, qnode_t* qs) +public static Object locate_endpoint(Object... arg) { +UNSUPPORTED("d9cz56vtrl0ri6hz88cumukuf"); // static int +UNSUPPORTED("40jqc5hn9dtw9jy159l2bpv0g"); // locate_endpoint (pointf *v, pointf *vo, int r, segment_t* seg, qnode_t* qs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cmndkfofn727hmimgmjjqabmb"); // qnode_t *rptr = &qs[r]; +UNSUPPORTED("9no4uq8gm1skxdt3c5npacs5o"); // switch (rptr->nodetype) { +UNSUPPORTED("33l7a58zp8vj6fuliwdkk2nkn"); // case 3: +UNSUPPORTED("chlduh24i0dc156oi8zegnisk"); // return rptr->trnum; +UNSUPPORTED("4u5xz2u3urj13y0aw30fdyup5"); // case 2: +UNSUPPORTED("360mq4ndaxyqt1kvu3lx2g9iv"); // if ((((v)->y > (&rptr->yval)->y + 1.0e-7) ? (!(0)) : (((v)->y < (&rptr->yval)->y - 1.0e-7) ? (0) : ((v)->x > (&rptr->yval)->x)))) /* above */ +UNSUPPORTED("1rwlw98jlk3uq5eash5mq3kty"); // return locate_endpoint(v, vo, rptr->right, seg, qs); +UNSUPPORTED("2x6nvn1yiw8qe6y0l034l612c"); // else if (((fabs((v)->y - (&rptr->yval)->y) <= 1.0e-7) && (fabs((v)->x - (&rptr->yval)->x) <= 1.0e-7))) /* the point is already */ +UNSUPPORTED("e4032360lx81txp3ugx7q41pg"); // { /* inserted. */ +UNSUPPORTED("5mpyvd6pkc7oidge31j3rtrt4"); // if ((((vo)->y > (&rptr->yval)->y + 1.0e-7) ? (!(0)) : (((vo)->y < (&rptr->yval)->y - 1.0e-7) ? (0) : ((vo)->x > (&rptr->yval)->x)))) /* above */ +UNSUPPORTED("9v669sdem5q69ss1a3sedpyhr"); // return locate_endpoint(v, vo, rptr->right, seg, qs); +UNSUPPORTED("embybz3p65nxf0rx8b52bb0cj"); // else +UNSUPPORTED("4hct334tbu519smetk1d6vmf2"); // return locate_endpoint(v, vo, rptr->left, seg, qs); /* below */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("54lgz3gtv3i7kpaib8hyvgbfz"); // return locate_endpoint(v, vo, rptr->left, seg, qs); /* below */ +UNSUPPORTED("d0gk15gzj4wz8nv54zbr285hm"); // case 1: +UNSUPPORTED("9lajd4oadrk3ahujglee1gdtr"); // if (((fabs((v)->y - (&seg[rptr->segnum].v0)->y) <= 1.0e-7) && (fabs((v)->x - (&seg[rptr->segnum].v0)->x) <= 1.0e-7)) || +UNSUPPORTED("f48mzifmh37dv8tr0qtoo49je"); // ((fabs((v)->y - (&seg[rptr->segnum].v1)->y) <= 1.0e-7) && (fabs((v)->x - (&seg[rptr->segnum].v1)->x) <= 1.0e-7))) +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("9z6xoklpdo4zj5pno4f5ce0h7"); // if ((fabs(v->y - vo->y) <= 1.0e-7)) /* horizontal segment */ +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("er0sr1b1xyl1koezju4fce9s9"); // if (vo->x < v->x) +UNSUPPORTED("btfxao9lmldnm9ox00uhp9k89"); // return locate_endpoint(v, vo, rptr->left, seg, qs); /* left */ +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("46b4vvmvw19uagy9lolvbjpva"); // return locate_endpoint(v, vo, rptr->right, seg, qs); /* right */ +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("7h5s2qfodilr20w0xkcpxkptk"); // else if (is_left_of(rptr->segnum, seg, vo)) +UNSUPPORTED("42gk6xyx9b3ob9l5n3r5csyt1"); // return locate_endpoint(v, vo, rptr->left, seg, qs); /* left */ +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("b95yqgth0rp8t6hd608cwibcv"); // return locate_endpoint(v, vo, rptr->right, seg, qs); /* right */ +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9h1dd7wy66jgqp0wcr4kep5c2"); // else if (is_left_of(rptr->segnum, seg, v)) +UNSUPPORTED("2q0jgs1w9wo5aut83ngsh2kqr"); // return locate_endpoint(v, vo, rptr->left, seg, qs); /* left */ +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("56jpzw5vjtdztvgezig0lr54s"); // return locate_endpoint(v, vo, rptr->right, seg, qs); /* right */ +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("7popo524s1mkw4my7n7tm8zwm"); // fprintf(stderr, "unexpected case in locate_endpoint\n"); +UNSUPPORTED("2kc7vwb5ge1ym5i0vk3t2ku3u"); // assert (0); +UNSUPPORTED("aihsv59rc0q4ji937lr34lo8k"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1rl8ucq8uwd451ybs5xqlr67w"); // return 1; /* stop warning */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dbmj7tlr6ld9ptryu0lsaq4tc +// static void merge_trapezoids (int segnum, int tfirst, int tlast, int side, trap_t* tr, qnode_t* qs) +public static Object merge_trapezoids(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("d3sy6vv9zv5n4mb41oxk1obz6"); // merge_trapezoids (int segnum, int tfirst, int tlast, int side, trap_t* tr, +UNSUPPORTED("3yigib6ow3jx4tobp06lwnbpn"); // qnode_t* qs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7zesosg72mooutvqm92puylwn"); // int t, tnext, cond; +UNSUPPORTED("srqa51ewat44yd9ccq23akdt"); // int ptnext; +UNSUPPORTED("dumb9eoy9ae3crz585y5gm7jd"); // /* First merge polys on the LHS */ +UNSUPPORTED("8dfvttfe7lc7i6u3r5ecr1fu7"); // t = tfirst; +UNSUPPORTED("4prw3c0s3s628lu72k6lantaz"); // while ((t > 0) && _greater_than_equal_to(&tr[t].lo, &tr[tlast].lo)) +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("e01nwr4jvd1tahpmnshgnq2jv"); // if (side == 1) +UNSUPPORTED("clu6aa5l65xiz793joqfsuqpj"); // cond = ((((tnext = tr[t].d0) > 0) && (tr[tnext].rseg == segnum)) || +UNSUPPORTED("58j0umsvte3xelv7t0rq6gjmz"); // (((tnext = tr[t].d1) > 0) && (tr[tnext].rseg == segnum))); +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("ay6y0octsk8vv6mxe73k52poq"); // cond = ((((tnext = tr[t].d0) > 0) && (tr[tnext].lseg == segnum)) || +UNSUPPORTED("9giajatrisho4roj4jmi2mtdu"); // (((tnext = tr[t].d1) > 0) && (tr[tnext].lseg == segnum))); +UNSUPPORTED("9jg0aj4lchk2qzrqzcn6ou93"); // if (cond) +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("4sfxjqv3pdk6ccs6trnltbq2f"); // if ((tr[t].lseg == tr[tnext].lseg) && +UNSUPPORTED("8waxrtn63q8iol80ocgfo5avl"); // (tr[t].rseg == tr[tnext].rseg)) /* good neighbours */ +UNSUPPORTED("4zrza3uxjr5k879ok6o3ajyq5"); // { /* merge them */ +UNSUPPORTED("de9a84mtxjfcb7d29uq6ysi80"); // /* Use the upper node as the new node i.e. t */ +UNSUPPORTED("5hnggs6fldg6n2aa0v0wb7mhs"); // ptnext = qs[tr[tnext].sink].parent; +UNSUPPORTED("4aftlg6xged6gwbjcopvljfdk"); // if (qs[ptnext].left == tr[tnext].sink) +UNSUPPORTED("f034psp1axv24k350wb0intx5"); // qs[ptnext].left = tr[t].sink; +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("erqbnxbh6c3ixq6cid3y15v6f"); // qs[ptnext].right = tr[t].sink; /* redirect parent */ +UNSUPPORTED("f51s02y9sf5wp5418x4hjsyr3"); // /* Change the upper neighbours of the lower trapezoids */ +UNSUPPORTED("4s40zetcif254u9y9h8shaf7j"); // if ((tr[t].d0 = tr[tnext].d0) > 0) { +UNSUPPORTED("7kf24rblb1mya5dy87gfod71g"); // if (tr[tr[t].d0].u0 == tnext) +UNSUPPORTED("5ippcybc2d61q6we5qdy4i2qa"); // tr[tr[t].d0].u0 = t; +UNSUPPORTED("4n5ukkxajjh25cyvxn2mfv7p5"); // else if (tr[tr[t].d0].u1 == tnext) +UNSUPPORTED("49bf3poo5ld3e7zfa7owoqwkt"); // tr[tr[t].d0].u1 = t; +UNSUPPORTED("1rlnjstsgqacqe09a5425xsv7"); // } +UNSUPPORTED("cx0c40s7cejokjr55q624jp8i"); // if ((tr[t].d1 = tr[tnext].d1) > 0) { +UNSUPPORTED("6tk5voiwfy6257or9pk26rpls"); // if (tr[tr[t].d1].u0 == tnext) +UNSUPPORTED("8vwe6jjx4f0cxtyk1cjsred13"); // tr[tr[t].d1].u0 = t; +UNSUPPORTED("faags7rxrk8rz9u528brw9w1"); // else if (tr[tr[t].d1].u1 == tnext) +UNSUPPORTED("c1g7dyxu9y9bu3cnqai6ffpai"); // tr[tr[t].d1].u1 = t; +UNSUPPORTED("1rlnjstsgqacqe09a5425xsv7"); // } +UNSUPPORTED("rqi8hsnl6a07uwsdllnklsov"); // tr[t].lo = tr[tnext].lo; +UNSUPPORTED("alq15ri09p1ftxvstnhiy11pw"); // tr[tnext].state = 2; /* invalidate the lower */ +UNSUPPORTED("7g5imzgc3x4g8m1764txnxwyg"); // /* trapezium */ +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("22mnxtwfg5bxnxn9hi92d3s98"); // else /* not good neighbours */ +UNSUPPORTED("62cajrs5gvbcki7xpbugxr503"); // t = tnext; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cy3s4c19cvi3od7ig0v5w1dau"); // else /* do not satisfy the outer if */ +UNSUPPORTED("9ndn482wriowrzfxei5dwe91s"); // t = tnext; +UNSUPPORTED("65mlofu9i9895kq8xkb6x103e"); // } /* end-while */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 423adx9iu4aqsh6kmh9d6a9be +// static int add_segment (int segnum, segment_t* seg, trap_t* tr, qnode_t* qs) +public static Object add_segment(Object... arg) { +UNSUPPORTED("d9cz56vtrl0ri6hz88cumukuf"); // static int +UNSUPPORTED("6kdmtyxbba7hab6oumuavm30n"); // add_segment (int segnum, segment_t* seg, trap_t* tr, qnode_t* qs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aywleif3lrmut4f9ns6y61k57"); // segment_t s; +UNSUPPORTED("364wkucwxm1xu5s9elyid5hh4"); // int tu, tl, sk, tfirst, tlast; +UNSUPPORTED("3sfv77g4x70yfiew8fyfwgniw"); // int tfirstr, tlastr, tfirstl, tlastl; +UNSUPPORTED("hfh89kyneima7i4d8yp0hbwi"); // int i1, i2, t, tn; +UNSUPPORTED("8z6gljvt2mmr0150xzv8dl25q"); // pointf tpt; +UNSUPPORTED("dnwffbpvy39x5k4uyp0o8auxh"); // int tritop = 0, tribot = 0, is_swapped; +UNSUPPORTED("94kgtpn18xur5803w9zeeemzl"); // int tmptriseg; +UNSUPPORTED("1pyedo5b6xqv0d871wz5tos5c"); // s = seg[segnum]; +UNSUPPORTED("8gkp133xtnguno18r03aljy2z"); // if ((((&s.v1)->y > (&s.v0)->y + 1.0e-7) ? (!(0)) : (((&s.v1)->y < (&s.v0)->y - 1.0e-7) ? (0) : ((&s.v1)->x > (&s.v0)->x)))) /* Get higher vertex in v0 */ +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("cwmbl7chjorytaifkyv8kht3c"); // int tmp; +UNSUPPORTED("5luhts0zxuhi3potzediaro1z"); // tpt = s.v0; +UNSUPPORTED("3zornvro5dwtu8yscak3thc3j"); // s.v0 = s.v1; +UNSUPPORTED("7xkhhzhpalzk4r57usnt0ei5g"); // s.v1 = tpt; +UNSUPPORTED("bqhqxuz448ejhe47314s7ywqn"); // tmp = s.root0; +UNSUPPORTED("2re8ujw6s9kgcmuthp39hguph"); // s.root0 = s.root1; +UNSUPPORTED("75kknuapl2tfu08nxm6s55sm1"); // s.root1 = tmp; +UNSUPPORTED("9eflrb5pudqbmm3wm6qeiwwsz"); // is_swapped = (!(0)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("kf5313k7om91mo87n2t6l6mk"); // else is_swapped = (0); +UNSUPPORTED("9fmss7ubwydpupsrikix6nafv"); // if ((is_swapped) ? !inserted(segnum, seg, 2) : +UNSUPPORTED("6hcg7juc159xaz2xirhecwc5n"); // !inserted(segnum, seg, 1)) /* insert v0 in the tree */ +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("c8xc5g4gm8dkiy87rty8nml52"); // int tmp_d; +UNSUPPORTED("2qpiovudynlersguqz1by6yg8"); // tu = locate_endpoint(&s.v0, &s.v1, s.root0, seg, qs); +UNSUPPORTED("3vk36g0d9b4pv8frx4h1q7url"); // tl = newtrap(tr); /* tl is the new lower trapezoid */ +UNSUPPORTED("1lylt0f9mi470jwcjjrujr0lv"); // tr[tl].state = 1; +UNSUPPORTED("e36yrv3eo2yxyqvkbbxaji21d"); // tr[tl] = tr[tu]; +UNSUPPORTED("9wngpyofpofpk3iw7x1nua784"); // tr[tu].lo.y = tr[tl].hi.y = s.v0.y; +UNSUPPORTED("kayts5od8vhhpy0xbhr9dkxg"); // tr[tu].lo.x = tr[tl].hi.x = s.v0.x; +UNSUPPORTED("5boxd28ndhyga6l1be8q33e4q"); // tr[tu].d0 = tl; +UNSUPPORTED("40mjz1kftaduly7n34bovhzoa"); // tr[tu].d1 = 0; +UNSUPPORTED("8ohfd1sq3vt575ufy2sejpq49"); // tr[tl].u0 = tu; +UNSUPPORTED("er5qcoyhp181kav6eod7im5xk"); // tr[tl].u1 = 0; +UNSUPPORTED("dmb9ggnvbbi4oj28pzhxe0i4s"); // if (((tmp_d = tr[tl].d0) > 0) && (tr[tmp_d].u0 == tu)) +UNSUPPORTED("7dung2mkyltlpc6rn6xg2w2qa"); // tr[tmp_d].u0 = tl; +UNSUPPORTED("6mzktvtijtpt77jiqbxio9zos"); // if (((tmp_d = tr[tl].d0) > 0) && (tr[tmp_d].u1 == tu)) +UNSUPPORTED("4hk19hnhoihfn3k52lnb5wnmi"); // tr[tmp_d].u1 = tl; +UNSUPPORTED("50ybcyf9j71skb8bxbrvd4wfo"); // if (((tmp_d = tr[tl].d1) > 0) && (tr[tmp_d].u0 == tu)) +UNSUPPORTED("7dung2mkyltlpc6rn6xg2w2qa"); // tr[tmp_d].u0 = tl; +UNSUPPORTED("burj10cn6158fzm20uvqf635h"); // if (((tmp_d = tr[tl].d1) > 0) && (tr[tmp_d].u1 == tu)) +UNSUPPORTED("4hk19hnhoihfn3k52lnb5wnmi"); // tr[tmp_d].u1 = tl; +UNSUPPORTED("511t3099c7ezfx13h8n2yb4qc"); // /* Now update the query structure and obtain the sinks for the */ +UNSUPPORTED("c9xihvs3g1nqpo1l2de28bsb"); // /* two trapezoids */ +UNSUPPORTED("csfd7w5pm87z8w5eoyoa2movw"); // i1 = newnode(); /* Upper trapezoid sink */ +UNSUPPORTED("564u4l90sl4dmr5g58s7iqs8x"); // i2 = newnode(); /* Lower trapezoid sink */ +UNSUPPORTED("7oz11ubssufczo1a50yljtcvy"); // sk = tr[tu].sink; +UNSUPPORTED("b677gy1yh3616vmj895bab5b"); // qs[sk].nodetype = 2; +UNSUPPORTED("k2rmuj3cg2b11t520einze0k"); // qs[sk].yval = s.v0; +UNSUPPORTED("bxfy7g6fyf60ts626mpqxu6se"); // qs[sk].segnum = segnum; /* not really reqd ... maybe later */ +UNSUPPORTED("89s0xn0ow2pfjhij4atarki22"); // qs[sk].left = i2; +UNSUPPORTED("41dfb6dqvo0ska2nsf8cg7mlp"); // qs[sk].right = i1; +UNSUPPORTED("e9qlif497bsjdb7r26vnxr6zv"); // qs[i1].nodetype = 3; +UNSUPPORTED("20z4ufoaz5upwcj5cwcfdbsxt"); // qs[i1].trnum = tu; +UNSUPPORTED("3sg533hzyg1vg1p3yue1tnscq"); // qs[i1].parent = sk; +UNSUPPORTED("b7ik0xdl2ccze3lyok2lk1u8i"); // qs[i2].nodetype = 3; +UNSUPPORTED("dw3di9wgg1xfyl4volkqwvr2a"); // qs[i2].trnum = tl; +UNSUPPORTED("1aovaau4d0p4kaw0ceoit4mk8"); // qs[i2].parent = sk; +UNSUPPORTED("bv09rvz94qyrsm8yxn6ib3gjz"); // tr[tu].sink = i1; +UNSUPPORTED("edgs0wz1q5yh76ulwbge7k0y5"); // tr[tl].sink = i2; +UNSUPPORTED("6lodj5exd6zj9qf7jjt4ajwcb"); // tfirst = tl; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9ai90pnlwcnwugiwlrp31rno1"); // else /* v0 already present */ +UNSUPPORTED("1na80phemhx8r2c3bejhbvi9q"); // { /* Get the topmost intersecting trapezoid */ +UNSUPPORTED("bux5mye3492eeh39qlfwu4h0i"); // tfirst = locate_endpoint(&s.v0, &s.v1, s.root0, seg, qs); +UNSUPPORTED("9sgryoanil25eur6sx2wvst7w"); // tritop = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("73p090oxqw3wxq9qn6hpedl6r"); // if ((is_swapped) ? !inserted(segnum, seg, 1) : +UNSUPPORTED("4nw2s0j85w6cpo3ch1vo46vxr"); // !inserted(segnum, seg, 2)) /* insert v1 in the tree */ +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("c8xc5g4gm8dkiy87rty8nml52"); // int tmp_d; +UNSUPPORTED("8k5whoux68dwuz2ebzjwdz2lh"); // tu = locate_endpoint(&s.v1, &s.v0, s.root1, seg, qs); +UNSUPPORTED("3vk36g0d9b4pv8frx4h1q7url"); // tl = newtrap(tr); /* tl is the new lower trapezoid */ +UNSUPPORTED("1lylt0f9mi470jwcjjrujr0lv"); // tr[tl].state = 1; +UNSUPPORTED("e36yrv3eo2yxyqvkbbxaji21d"); // tr[tl] = tr[tu]; +UNSUPPORTED("7dp0os3ywo9qpt13od74hlz32"); // tr[tu].lo.y = tr[tl].hi.y = s.v1.y; +UNSUPPORTED("b9h60u19dl3vo6dnfe9rl89ki"); // tr[tu].lo.x = tr[tl].hi.x = s.v1.x; +UNSUPPORTED("5boxd28ndhyga6l1be8q33e4q"); // tr[tu].d0 = tl; +UNSUPPORTED("40mjz1kftaduly7n34bovhzoa"); // tr[tu].d1 = 0; +UNSUPPORTED("8ohfd1sq3vt575ufy2sejpq49"); // tr[tl].u0 = tu; +UNSUPPORTED("er5qcoyhp181kav6eod7im5xk"); // tr[tl].u1 = 0; +UNSUPPORTED("dmb9ggnvbbi4oj28pzhxe0i4s"); // if (((tmp_d = tr[tl].d0) > 0) && (tr[tmp_d].u0 == tu)) +UNSUPPORTED("7dung2mkyltlpc6rn6xg2w2qa"); // tr[tmp_d].u0 = tl; +UNSUPPORTED("6mzktvtijtpt77jiqbxio9zos"); // if (((tmp_d = tr[tl].d0) > 0) && (tr[tmp_d].u1 == tu)) +UNSUPPORTED("4hk19hnhoihfn3k52lnb5wnmi"); // tr[tmp_d].u1 = tl; +UNSUPPORTED("50ybcyf9j71skb8bxbrvd4wfo"); // if (((tmp_d = tr[tl].d1) > 0) && (tr[tmp_d].u0 == tu)) +UNSUPPORTED("7dung2mkyltlpc6rn6xg2w2qa"); // tr[tmp_d].u0 = tl; +UNSUPPORTED("burj10cn6158fzm20uvqf635h"); // if (((tmp_d = tr[tl].d1) > 0) && (tr[tmp_d].u1 == tu)) +UNSUPPORTED("4hk19hnhoihfn3k52lnb5wnmi"); // tr[tmp_d].u1 = tl; +UNSUPPORTED("511t3099c7ezfx13h8n2yb4qc"); // /* Now update the query structure and obtain the sinks for the */ +UNSUPPORTED("c9xihvs3g1nqpo1l2de28bsb"); // /* two trapezoids */ +UNSUPPORTED("csfd7w5pm87z8w5eoyoa2movw"); // i1 = newnode(); /* Upper trapezoid sink */ +UNSUPPORTED("564u4l90sl4dmr5g58s7iqs8x"); // i2 = newnode(); /* Lower trapezoid sink */ +UNSUPPORTED("7oz11ubssufczo1a50yljtcvy"); // sk = tr[tu].sink; +UNSUPPORTED("b677gy1yh3616vmj895bab5b"); // qs[sk].nodetype = 2; +UNSUPPORTED("b27knotih9bj8ve0japzl9l9v"); // qs[sk].yval = s.v1; +UNSUPPORTED("bxfy7g6fyf60ts626mpqxu6se"); // qs[sk].segnum = segnum; /* not really reqd ... maybe later */ +UNSUPPORTED("89s0xn0ow2pfjhij4atarki22"); // qs[sk].left = i2; +UNSUPPORTED("41dfb6dqvo0ska2nsf8cg7mlp"); // qs[sk].right = i1; +UNSUPPORTED("e9qlif497bsjdb7r26vnxr6zv"); // qs[i1].nodetype = 3; +UNSUPPORTED("20z4ufoaz5upwcj5cwcfdbsxt"); // qs[i1].trnum = tu; +UNSUPPORTED("3sg533hzyg1vg1p3yue1tnscq"); // qs[i1].parent = sk; +UNSUPPORTED("b7ik0xdl2ccze3lyok2lk1u8i"); // qs[i2].nodetype = 3; +UNSUPPORTED("dw3di9wgg1xfyl4volkqwvr2a"); // qs[i2].trnum = tl; +UNSUPPORTED("1aovaau4d0p4kaw0ceoit4mk8"); // qs[i2].parent = sk; +UNSUPPORTED("bv09rvz94qyrsm8yxn6ib3gjz"); // tr[tu].sink = i1; +UNSUPPORTED("edgs0wz1q5yh76ulwbge7k0y5"); // tr[tl].sink = i2; +UNSUPPORTED("n3654qaak8jk8d5on2gwnw3f"); // tlast = tu; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("71qg7qvginab7d0qflim4y82r"); // else /* v1 already present */ +UNSUPPORTED("e56qskbf1f1spsk53sle0yg9x"); // { /* Get the lowermost intersecting trapezoid */ +UNSUPPORTED("f5e0c0cb0tzted54oxk1lg8so"); // tlast = locate_endpoint(&s.v1, &s.v0, s.root1, seg, qs); +UNSUPPORTED("19802pxxzzbhz30pxvxhuauza"); // tribot = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6or2wr1m9e6t9eswiywjcnari"); // /* Thread the segment into the query tree creating a new X-node */ +UNSUPPORTED("953uyi8s6j0kjt6kii0ifi05n"); // /* First, split all the trapezoids which are intersected by s into */ +UNSUPPORTED("2ec1eki04zl9bzcirfgpxwz1d"); // /* two */ +UNSUPPORTED("7vltbln6jmb4dcnt727aotqu"); // t = tfirst; /* topmost trapezoid */ +UNSUPPORTED("86huck5mq1n2xe2bgd5h0g4qh"); // while ((t > 0) && +UNSUPPORTED("9a2osatsmh7im166493j5z9ql"); // _greater_than_equal_to(&tr[t].lo, &tr[tlast].lo)) +UNSUPPORTED("8q0qvfyu6b98xudyzf1jey121"); // /* traverse from top to bot */ +UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // { +UNSUPPORTED("c361t9ie1jl34waoz1qx7qglt"); // int t_sav, tn_sav; +UNSUPPORTED("735i6dbhhrwalqp0rdzf1plzu"); // sk = tr[t].sink; +UNSUPPORTED("11cd0f59j2rlnu33mg33fy21u"); // i1 = newnode(); /* left trapezoid sink */ +UNSUPPORTED("8iq31y998euwxxys7lz4i0di5"); // i2 = newnode(); /* right trapezoid sink */ +UNSUPPORTED("eki95gcvgxhhxodpx7hhb2ms"); // qs[sk].nodetype = 1; +UNSUPPORTED("bic1vt1c10xyb4dh0jvmlwitc"); // qs[sk].segnum = segnum; +UNSUPPORTED("1oop28nporjqqttdge2bzb9yr"); // qs[sk].left = i1; +UNSUPPORTED("9j0y61zaus712wgthf8xl2bjs"); // qs[sk].right = i2; +UNSUPPORTED("a2vaedsgrsasf749gokb7o6zn"); // qs[i1].nodetype = 3; /* left trapezoid (use existing one) */ +UNSUPPORTED("d3wvuzqx7whtc7lkr3a1c6x1e"); // qs[i1].trnum = t; +UNSUPPORTED("3sg533hzyg1vg1p3yue1tnscq"); // qs[i1].parent = sk; +UNSUPPORTED("4f8cdthira5gw458qa3g8n1pw"); // qs[i2].nodetype = 3; /* right trapezoid (allocate new) */ +UNSUPPORTED("72zn9njck31ow5p4cd7x2vhdp"); // qs[i2].trnum = tn = newtrap(tr); +UNSUPPORTED("cs7pcwh6y85gsxjbjcd3fp4th"); // tr[tn].state = 1; +UNSUPPORTED("1aovaau4d0p4kaw0ceoit4mk8"); // qs[i2].parent = sk; +UNSUPPORTED("8tii09oyev9eg5v8tjs5xqnzi"); // if (t == tfirst) +UNSUPPORTED("c7vntoti83d7nzm1pez02dojb"); // tfirstr = tn; +UNSUPPORTED("4lrakx12kpsm7brfxuacfvepm"); // if (((fabs((&tr[t].lo)->y - (&tr[tlast].lo)->y) <= 1.0e-7) && (fabs((&tr[t].lo)->x - (&tr[tlast].lo)->x) <= 1.0e-7))) +UNSUPPORTED("dyxxoq2rclqc042m49pabo5tu"); // tlastr = tn; +UNSUPPORTED("3m5dvd9h55xvklqd7bt4yyg18"); // tr[tn] = tr[t]; +UNSUPPORTED("4m7mubrux1t63hm4v0mbdoft0"); // tr[t].sink = i1; +UNSUPPORTED("34b00t67vxmsuf1t0urk7kfni"); // tr[tn].sink = i2; +UNSUPPORTED("5ilkt84avyzqnbgenie56bfpa"); // t_sav = t; +UNSUPPORTED("1ndtxyyz47mtzmcxjr2kg61ci"); // tn_sav = tn; +UNSUPPORTED("8fi9adh8qsrwfrgcxhrxnygb5"); // /* error */ +UNSUPPORTED("9ufele7a3qptly4g8e4gzkr4u"); // if ((tr[t].d0 <= 0) && (tr[t].d1 <= 0)) /* case cannot arise */ +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("2j1bqg7boruaga6kpx00agtvb"); // fprintf(stderr, "add_segment: error\n"); +UNSUPPORTED("5tzm1n3i8u3c1oms5ri2fiqbt"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("787ro5xblsfkpjif4xda30sc2"); // /* only one trapezoid below. partition t into two and make the */ +UNSUPPORTED("5j474wt6fmynj8yasccaob1py"); // /* two resulting trapezoids t and tn as the upper neighbours of */ +UNSUPPORTED("aqtupurtnt0dzlj5jafgtirwc"); // /* the sole lower trapezoid */ +UNSUPPORTED("ewm9o917kyj2ae62y3e5bdvqf"); // else if ((tr[t].d0 > 0) && (tr[t].d1 <= 0)) +UNSUPPORTED("9cj5nz12eopffdahw5emn4c08"); // { /* Only one trapezoid below */ +UNSUPPORTED("6a1dcxf2rsr9zq5pxrpuecig1"); // if ((tr[t].u0 > 0) && (tr[t].u1 > 0)) +UNSUPPORTED("4vladne5kzv3xueclq0sxcjho"); // { /* continuation of a chain from abv. */ +UNSUPPORTED("bwewd7qprc37qhwxz3ko1y4uq"); // if (tr[t].usave > 0) /* three upper neighbours */ +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("esaqksoargwy10mkyzhmv2p9v"); // if (tr[t].uside == 1) +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("82gucb8vt172fhq2ug560dgje"); // tr[tn].u0 = tr[t].u1; +UNSUPPORTED("lgzjorwqs1rmmyj7q8jzt16e"); // tr[t].u1 = -1; +UNSUPPORTED("6wku8ik0lpiqemv9dmew6dodf"); // tr[tn].u1 = tr[t].usave; +UNSUPPORTED("1h87mqh0ff7hg3ogzwu8daiai"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("30jz3yn7hygbk25oykenqo2tp"); // tr[tr[tn].u0].d0 = tn; +UNSUPPORTED("ehcdy9xx8x9l0nz0oybez912h"); // tr[tr[tn].u1].d0 = tn; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6cf2pwwuzbumwpxili1otryjb"); // else /* intersects in the right */ +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("1zxekgfse665xkba3vu2wy0c0"); // tr[tn].u1 = -1; +UNSUPPORTED("82gucb8vt172fhq2ug560dgje"); // tr[tn].u0 = tr[t].u1; +UNSUPPORTED("dedip96pnjatmrxwr3szb2ltb"); // tr[t].u1 = tr[t].u0; +UNSUPPORTED("be5obz58np1ogzt1m8welxd6c"); // tr[t].u0 = tr[t].usave; +UNSUPPORTED("1h87mqh0ff7hg3ogzwu8daiai"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("2d4udv8v764lhooiia78atj4b"); // tr[tr[t].u1].d0 = t; +UNSUPPORTED("72euqk1bum10xtl1bm12ug86r"); // tr[tr[tn].u0].d0 = tn; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("d52osx7vrtw97wm9ut9vfa5wj"); // tr[t].usave = tr[tn].usave = 0; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("91694gf7sahoxvmiw82owvef2"); // else /* No usave.... simple case */ +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("e2zdzb3rlpq6pieuayb44oijq"); // tr[tn].u0 = tr[t].u1; +UNSUPPORTED("6291oktyj53xp9yslzj405wgb"); // tr[t].u1 = tr[tn].u1 = -1; +UNSUPPORTED("ay4xwmue8kz8uzp2wgge6752p"); // tr[tr[tn].u0].d0 = tn; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("embybz3p65nxf0rx8b52bb0cj"); // else +UNSUPPORTED("2auoskyvfrf0wu8ekti5fs1n4"); // { /* fresh seg. or upward cusp */ +UNSUPPORTED("2hrv5rm87wox9rp79f6wpn619"); // int tmp_u = tr[t].u0; +UNSUPPORTED("8zaj2aem34dupb1plqsm8uwk5"); // int td0, td1; +UNSUPPORTED("6f3f5nfgz2txzlmdcntsu2yyx"); // if (((td0 = tr[tmp_u].d0) > 0) && +UNSUPPORTED("7ed0ylnawdzj4xmtq0ih0wt7o"); // ((td1 = tr[tmp_u].d1) > 0)) +UNSUPPORTED("8dh5ldf8m83e9ngo1yqfbo7m1"); // { /* upward cusp */ +UNSUPPORTED("62v7ooft04km5zqvbpql7o5ps"); // if ((tr[td0].rseg > 0) && +UNSUPPORTED("4hx3tu7xyeswnab7x0q6yoefl"); // !is_left_of(tr[td0].rseg, seg, &s.v1)) +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("201vn0jou9fcf0n2tjih472mz"); // tr[t].u0 = tr[t].u1 = tr[tn].u1 = -1; +UNSUPPORTED("rg3tngg7tj2qgf4erhpbcau8"); // tr[tr[tn].u0].d1 = tn; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("crxpsdr3uqrfkq55ecsr4zuxi"); // else /* cusp going leftwards */ +UNSUPPORTED("bkwn0jotk953x4wcx60j0p47f"); // { +UNSUPPORTED("e9ql35kajykty3zsmtldh0wzb"); // tr[tn].u0 = tr[tn].u1 = tr[t].u1 = -1; +UNSUPPORTED("1h87mqh0ff7hg3ogzwu8daiai"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("dayzocp22vmevtvo1awep6h63"); // else /* fresh segment */ +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("1i8cfmzh5xxisiuekr63cd7hs"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("694mejpoguhaimtc4oglzp817"); // tr[tr[t].u0].d1 = tn; +UNSUPPORTED("5m5bo8wuz7zrobc77883wcpw1"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("e0kb482en9la96mrxyisdyquw"); // if ((fabs(tr[t].lo.y - tr[tlast].lo.y) <= 1.0e-7) && +UNSUPPORTED("8d08n1tz1fajvu4tkkmyvqto3"); // (fabs(tr[t].lo.x - tr[tlast].lo.x) <= 1.0e-7) && tribot) +UNSUPPORTED("2pqges4a601rkdgoh9ay4fwkc"); // { /* bottom forms a triangle */ +UNSUPPORTED("74q36498zx96m389wznj126jh"); // if (is_swapped) +UNSUPPORTED("c6l0dqua1wi4sm2nno83tqjpu"); // tmptriseg = seg[segnum].prev; +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("cr8el00rgafuidxf7dkqmprk9"); // tmptriseg = seg[segnum].next; +UNSUPPORTED("7m5vjpo3bvkkv7dehsu8lk1i0"); // if ((tmptriseg > 0) && is_left_of(tmptriseg, seg, &s.v0)) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("vgbcetfcktd1hjnqclhp7w01"); // /* L-R downward cusp */ +UNSUPPORTED("5ippcybc2d61q6we5qdy4i2qa"); // tr[tr[t].d0].u0 = t; +UNSUPPORTED("ejo4cyfym8ojporxegfwpinht"); // tr[tn].d0 = tr[tn].d1 = -1; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("eldt3ci812qmne3db4ojeuhz7"); // /* R-L downward cusp */ +UNSUPPORTED("8g2jcubbcwsaaenx674f63kth"); // tr[tr[tn].d0].u1 = tn; +UNSUPPORTED("3c4euuu782207qdjnwrjswbyy"); // tr[t].d0 = tr[t].d1 = -1; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("cad2a1rc10cprtvojmol6lcxf"); // if ((tr[tr[t].d0].u0 > 0) && (tr[tr[t].d0].u1 > 0)) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("6ilx5r7u9y1m64f57y23qxlii"); // if (tr[tr[t].d0].u0 == t) /* passes thru LHS */ +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("5my98yb1h8davodq05wl96zgu"); // tr[tr[t].d0].usave = tr[tr[t].d0].u1; +UNSUPPORTED("5lykreqcj4w4ugg2fshp1085g"); // tr[tr[t].d0].uside = 1; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("12hbppj0gv84xkilzofj6ohze"); // else +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("azh2ilm9el27ve1j7t3o8lo3k"); // tr[tr[t].d0].usave = tr[tr[t].d0].u0; +UNSUPPORTED("2wjhisme7ontii2rgbvel3qza"); // tr[tr[t].d0].uside = 2; +UNSUPPORTED("ctzn5o8xqkywd73gcu6ofjsb7"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3vlkssstu9yp43651wjntawrq"); // tr[tr[t].d0].u0 = t; +UNSUPPORTED("dy31y8zhzxmyas9wde5g3vvlh"); // tr[tr[t].d0].u1 = tn; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("er72bs1z1fiixf6x2m2ck5218"); // t = tr[t].d0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3vmznfuejkuwxfecdhhksjlqn"); // else if ((tr[t].d0 <= 0) && (tr[t].d1 > 0)) +UNSUPPORTED("9cj5nz12eopffdahw5emn4c08"); // { /* Only one trapezoid below */ +UNSUPPORTED("6a1dcxf2rsr9zq5pxrpuecig1"); // if ((tr[t].u0 > 0) && (tr[t].u1 > 0)) +UNSUPPORTED("4vladne5kzv3xueclq0sxcjho"); // { /* continuation of a chain from abv. */ +UNSUPPORTED("bwewd7qprc37qhwxz3ko1y4uq"); // if (tr[t].usave > 0) /* three upper neighbours */ +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("esaqksoargwy10mkyzhmv2p9v"); // if (tr[t].uside == 1) +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("82gucb8vt172fhq2ug560dgje"); // tr[tn].u0 = tr[t].u1; +UNSUPPORTED("lgzjorwqs1rmmyj7q8jzt16e"); // tr[t].u1 = -1; +UNSUPPORTED("6wku8ik0lpiqemv9dmew6dodf"); // tr[tn].u1 = tr[t].usave; +UNSUPPORTED("1h87mqh0ff7hg3ogzwu8daiai"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("30jz3yn7hygbk25oykenqo2tp"); // tr[tr[tn].u0].d0 = tn; +UNSUPPORTED("ehcdy9xx8x9l0nz0oybez912h"); // tr[tr[tn].u1].d0 = tn; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6cf2pwwuzbumwpxili1otryjb"); // else /* intersects in the right */ +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("1zxekgfse665xkba3vu2wy0c0"); // tr[tn].u1 = -1; +UNSUPPORTED("82gucb8vt172fhq2ug560dgje"); // tr[tn].u0 = tr[t].u1; +UNSUPPORTED("dedip96pnjatmrxwr3szb2ltb"); // tr[t].u1 = tr[t].u0; +UNSUPPORTED("be5obz58np1ogzt1m8welxd6c"); // tr[t].u0 = tr[t].usave; +UNSUPPORTED("1h87mqh0ff7hg3ogzwu8daiai"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("2d4udv8v764lhooiia78atj4b"); // tr[tr[t].u1].d0 = t; +UNSUPPORTED("72euqk1bum10xtl1bm12ug86r"); // tr[tr[tn].u0].d0 = tn; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("d52osx7vrtw97wm9ut9vfa5wj"); // tr[t].usave = tr[tn].usave = 0; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("91694gf7sahoxvmiw82owvef2"); // else /* No usave.... simple case */ +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("e2zdzb3rlpq6pieuayb44oijq"); // tr[tn].u0 = tr[t].u1; +UNSUPPORTED("6291oktyj53xp9yslzj405wgb"); // tr[t].u1 = tr[tn].u1 = -1; +UNSUPPORTED("ay4xwmue8kz8uzp2wgge6752p"); // tr[tr[tn].u0].d0 = tn; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("embybz3p65nxf0rx8b52bb0cj"); // else +UNSUPPORTED("2auoskyvfrf0wu8ekti5fs1n4"); // { /* fresh seg. or upward cusp */ +UNSUPPORTED("2hrv5rm87wox9rp79f6wpn619"); // int tmp_u = tr[t].u0; +UNSUPPORTED("8zaj2aem34dupb1plqsm8uwk5"); // int td0, td1; +UNSUPPORTED("6f3f5nfgz2txzlmdcntsu2yyx"); // if (((td0 = tr[tmp_u].d0) > 0) && +UNSUPPORTED("7ed0ylnawdzj4xmtq0ih0wt7o"); // ((td1 = tr[tmp_u].d1) > 0)) +UNSUPPORTED("8dh5ldf8m83e9ngo1yqfbo7m1"); // { /* upward cusp */ +UNSUPPORTED("62v7ooft04km5zqvbpql7o5ps"); // if ((tr[td0].rseg > 0) && +UNSUPPORTED("4hx3tu7xyeswnab7x0q6yoefl"); // !is_left_of(tr[td0].rseg, seg, &s.v1)) +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("201vn0jou9fcf0n2tjih472mz"); // tr[t].u0 = tr[t].u1 = tr[tn].u1 = -1; +UNSUPPORTED("rg3tngg7tj2qgf4erhpbcau8"); // tr[tr[tn].u0].d1 = tn; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("e77o5ieo3c02dom0f04cj7inv"); // else +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("e9ql35kajykty3zsmtldh0wzb"); // tr[tn].u0 = tr[tn].u1 = tr[t].u1 = -1; +UNSUPPORTED("1h87mqh0ff7hg3ogzwu8daiai"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("dayzocp22vmevtvo1awep6h63"); // else /* fresh segment */ +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("1i8cfmzh5xxisiuekr63cd7hs"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("694mejpoguhaimtc4oglzp817"); // tr[tr[t].u0].d1 = tn; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("e0kb482en9la96mrxyisdyquw"); // if ((fabs(tr[t].lo.y - tr[tlast].lo.y) <= 1.0e-7) && +UNSUPPORTED("8d08n1tz1fajvu4tkkmyvqto3"); // (fabs(tr[t].lo.x - tr[tlast].lo.x) <= 1.0e-7) && tribot) +UNSUPPORTED("2pqges4a601rkdgoh9ay4fwkc"); // { /* bottom forms a triangle */ +UNSUPPORTED("3xb6452d73nnzbrvxea9r7avd"); // /* int tmpseg; */ +UNSUPPORTED("74q36498zx96m389wznj126jh"); // if (is_swapped) +UNSUPPORTED("c6l0dqua1wi4sm2nno83tqjpu"); // tmptriseg = seg[segnum].prev; +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("cr8el00rgafuidxf7dkqmprk9"); // tmptriseg = seg[segnum].next; +UNSUPPORTED("c1pnfnnei4xmduu3ik7cdc40k"); // /* if ((tmpseg > 0) && is_left_of(tmpseg, seg, &s.v0)) */ +UNSUPPORTED("7m5vjpo3bvkkv7dehsu8lk1i0"); // if ((tmptriseg > 0) && is_left_of(tmptriseg, seg, &s.v0)) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("7its0v1anhryibc6kbl7e3rih"); // /* L-R downward cusp */ +UNSUPPORTED("8vwe6jjx4f0cxtyk1cjsred13"); // tr[tr[t].d1].u0 = t; +UNSUPPORTED("ejo4cyfym8ojporxegfwpinht"); // tr[tn].d0 = tr[tn].d1 = -1; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("2j9f9vrzjshiti7k2l10sx84u"); // /* R-L downward cusp */ +UNSUPPORTED("e1gz5epvwn4p0q5i8fveabsz8"); // tr[tr[tn].d1].u1 = tn; +UNSUPPORTED("3c4euuu782207qdjnwrjswbyy"); // tr[t].d0 = tr[t].d1 = -1; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("1qf8h2an6bk6wlk3fyq6i22ad"); // } +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("dp2662k6f23gqdw8zett9yvym"); // if ((tr[tr[t].d1].u0 > 0) && (tr[tr[t].d1].u1 > 0)) +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("77i22g6l292mg0okyxnajy9gb"); // if (tr[tr[t].d1].u0 == t) /* passes thru LHS */ +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("42sveu7omg4ras47bkv0d1q9l"); // tr[tr[t].d1].usave = tr[tr[t].d1].u1; +UNSUPPORTED("3u8ltfhvqrsqd7ghc6mp90sk9"); // tr[tr[t].d1].uside = 1; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("12hbppj0gv84xkilzofj6ohze"); // else +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("4pcz02ip4pmu4wcvx249zt3hg"); // tr[tr[t].d1].usave = tr[tr[t].d1].u0; +UNSUPPORTED("16fb5zagcitmzonkbzu89irjk"); // tr[tr[t].d1].uside = 2; +UNSUPPORTED("ctzn5o8xqkywd73gcu6ofjsb7"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6s5143onio335hfkk9om9l2a9"); // tr[tr[t].d1].u0 = t; +UNSUPPORTED("6y4fvgf18azjngp3ph603viqk"); // tr[tr[t].d1].u1 = tn; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5ltskdvhhim7914v7bcvcdu1y"); // t = tr[t].d1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("d8ibg8ps7psb492dez8t19wv3"); // /* two trapezoids below. Find out which one is intersected by */ +UNSUPPORTED("cpnw42brz1nujz70qenh15r33"); // /* this segment and proceed down that one */ +UNSUPPORTED("e2koj2xocq76awegpydpyu62m"); // else +UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // { +UNSUPPORTED("aeo0l7hd0tz385ecxm03tsqb1"); // /* int tmpseg = tr[tr[t].d0].rseg; */ +UNSUPPORTED("21dtwfwxm34d3el5rfez2ddio"); // double y0, yt; +UNSUPPORTED("ds4ikd3wmue9s0ynmtxz1aw74"); // pointf tmppt; +UNSUPPORTED("ah7kj1y9wo89l5ql0wxxjuqlt"); // int tnext, i_d0, i_d1; +UNSUPPORTED("9l5ekv5nqwnh36g4gcr1x82aj"); // i_d0 = i_d1 = (0); +UNSUPPORTED("4z75kl9vosft7cj42ce1arxdo"); // if ((fabs(tr[t].lo.y - s.v0.y) <= 1.0e-7)) +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("c8cramjmaogq40iauxa5mwm71"); // if (tr[t].lo.x > s.v0.x) +UNSUPPORTED("18rqvljf5nebs454zlt2irs1i"); // i_d0 = (!(0)); +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("v34oktxyq713ipav88bmcfn6"); // i_d1 = (!(0)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("cm85lvkbze3joxoa0qgvj5d42"); // else +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("db0whoy6j8f6uwqf5v4ilkh4v"); // tmppt.y = y0 = tr[t].lo.y; +UNSUPPORTED("e5hekltsjclzspvdy92oh7kbu"); // yt = (y0 - s.v0.y)/(s.v1.y - s.v0.y); +UNSUPPORTED("f30z7uxjf30rbkx5rdbcrwsm4"); // tmppt.x = s.v0.x + yt * (s.v1.x - s.v0.x); +UNSUPPORTED("b4znl042gb9xqbe7w3hs5cz0y"); // if (_less_than(&tmppt, &tr[t].lo)) +UNSUPPORTED("18rqvljf5nebs454zlt2irs1i"); // i_d0 = (!(0)); +UNSUPPORTED("3aqvmk5i0k4ue9zqfwhex7t14"); // else +UNSUPPORTED("v34oktxyq713ipav88bmcfn6"); // i_d1 = (!(0)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("9hbp7chg2crbrb1u4rnba7190"); // /* check continuity from the top so that the lower-neighbour */ +UNSUPPORTED("81ywl919vnapbffcabfhs0ntz"); // /* values are properly filled for the upper trapezoid */ +UNSUPPORTED("6a1dcxf2rsr9zq5pxrpuecig1"); // if ((tr[t].u0 > 0) && (tr[t].u1 > 0)) +UNSUPPORTED("4vladne5kzv3xueclq0sxcjho"); // { /* continuation of a chain from abv. */ +UNSUPPORTED("bwewd7qprc37qhwxz3ko1y4uq"); // if (tr[t].usave > 0) /* three upper neighbours */ +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("esaqksoargwy10mkyzhmv2p9v"); // if (tr[t].uside == 1) +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("82gucb8vt172fhq2ug560dgje"); // tr[tn].u0 = tr[t].u1; +UNSUPPORTED("lgzjorwqs1rmmyj7q8jzt16e"); // tr[t].u1 = -1; +UNSUPPORTED("6wku8ik0lpiqemv9dmew6dodf"); // tr[tn].u1 = tr[t].usave; +UNSUPPORTED("1h87mqh0ff7hg3ogzwu8daiai"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("30jz3yn7hygbk25oykenqo2tp"); // tr[tr[tn].u0].d0 = tn; +UNSUPPORTED("ehcdy9xx8x9l0nz0oybez912h"); // tr[tr[tn].u1].d0 = tn; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6cf2pwwuzbumwpxili1otryjb"); // else /* intersects in the right */ +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("1zxekgfse665xkba3vu2wy0c0"); // tr[tn].u1 = -1; +UNSUPPORTED("82gucb8vt172fhq2ug560dgje"); // tr[tn].u0 = tr[t].u1; +UNSUPPORTED("dedip96pnjatmrxwr3szb2ltb"); // tr[t].u1 = tr[t].u0; +UNSUPPORTED("be5obz58np1ogzt1m8welxd6c"); // tr[t].u0 = tr[t].usave; +UNSUPPORTED("1h87mqh0ff7hg3ogzwu8daiai"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("2d4udv8v764lhooiia78atj4b"); // tr[tr[t].u1].d0 = t; +UNSUPPORTED("72euqk1bum10xtl1bm12ug86r"); // tr[tr[tn].u0].d0 = tn; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("d52osx7vrtw97wm9ut9vfa5wj"); // tr[t].usave = tr[tn].usave = 0; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("91694gf7sahoxvmiw82owvef2"); // else /* No usave.... simple case */ +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("e2zdzb3rlpq6pieuayb44oijq"); // tr[tn].u0 = tr[t].u1; +UNSUPPORTED("ddpnvdcma38disf8tyw74xp3g"); // tr[tn].u1 = -1; +UNSUPPORTED("dqxje9ppj2ffgivrfpyid7ffd"); // tr[t].u1 = -1; +UNSUPPORTED("ay4xwmue8kz8uzp2wgge6752p"); // tr[tr[tn].u0].d0 = tn; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("embybz3p65nxf0rx8b52bb0cj"); // else +UNSUPPORTED("2auoskyvfrf0wu8ekti5fs1n4"); // { /* fresh seg. or upward cusp */ +UNSUPPORTED("2hrv5rm87wox9rp79f6wpn619"); // int tmp_u = tr[t].u0; +UNSUPPORTED("8zaj2aem34dupb1plqsm8uwk5"); // int td0, td1; +UNSUPPORTED("6f3f5nfgz2txzlmdcntsu2yyx"); // if (((td0 = tr[tmp_u].d0) > 0) && +UNSUPPORTED("7ed0ylnawdzj4xmtq0ih0wt7o"); // ((td1 = tr[tmp_u].d1) > 0)) +UNSUPPORTED("8dh5ldf8m83e9ngo1yqfbo7m1"); // { /* upward cusp */ +UNSUPPORTED("62v7ooft04km5zqvbpql7o5ps"); // if ((tr[td0].rseg > 0) && +UNSUPPORTED("4hx3tu7xyeswnab7x0q6yoefl"); // !is_left_of(tr[td0].rseg, seg, &s.v1)) +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("201vn0jou9fcf0n2tjih472mz"); // tr[t].u0 = tr[t].u1 = tr[tn].u1 = -1; +UNSUPPORTED("rg3tngg7tj2qgf4erhpbcau8"); // tr[tr[tn].u0].d1 = tn; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("e77o5ieo3c02dom0f04cj7inv"); // else +UNSUPPORTED("4tol1smeoe31nndhs3aq3vdlq"); // { +UNSUPPORTED("e9ql35kajykty3zsmtldh0wzb"); // tr[tn].u0 = tr[tn].u1 = tr[t].u1 = -1; +UNSUPPORTED("1h87mqh0ff7hg3ogzwu8daiai"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("dayzocp22vmevtvo1awep6h63"); // else /* fresh segment */ +UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // { +UNSUPPORTED("1i8cfmzh5xxisiuekr63cd7hs"); // tr[tr[t].u0].d0 = t; +UNSUPPORTED("694mejpoguhaimtc4oglzp817"); // tr[tr[t].u0].d1 = tn; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("e0kb482en9la96mrxyisdyquw"); // if ((fabs(tr[t].lo.y - tr[tlast].lo.y) <= 1.0e-7) && +UNSUPPORTED("8d08n1tz1fajvu4tkkmyvqto3"); // (fabs(tr[t].lo.x - tr[tlast].lo.x) <= 1.0e-7) && tribot) +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("4i449ebwuk75bwvj3njk3c62q"); // /* this case arises only at the lowest trapezoid.. i.e. +UNSUPPORTED("chl5iuvrjyna1uuc1kjo3qe67"); // tlast, if the lower endpoint of the segment is +UNSUPPORTED("9x1ytb8hzdseof3w011rw1vo6"); // already inserted in the structure */ +UNSUPPORTED("3vlkssstu9yp43651wjntawrq"); // tr[tr[t].d0].u0 = t; +UNSUPPORTED("m24vo48yuozp20pg0jewoocj"); // tr[tr[t].d0].u1 = -1; +UNSUPPORTED("bqsxgabpkfrz4qsvsfyt54x4d"); // tr[tr[t].d1].u0 = tn; +UNSUPPORTED("5pcabowqh0osy2bara83fy53g"); // tr[tr[t].d1].u1 = -1; +UNSUPPORTED("9akd96bko966x16jg4ghdofjt"); // tr[tn].d0 = tr[t].d1; +UNSUPPORTED("ez9y4mtzds5q3em5b2h4m0dj"); // tr[t].d1 = tr[tn].d1 = -1; +UNSUPPORTED("7zlu4fl3iisiyyfhc8efkikq2"); // tnext = tr[t].d1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("7ekeyr3kxnx2g4xkar2e97ujg"); // else if (i_d0) +UNSUPPORTED("df98v04w3tfu8ysuydsf7y85a"); // /* intersecting d0 */ +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("3vlkssstu9yp43651wjntawrq"); // tr[tr[t].d0].u0 = t; +UNSUPPORTED("dy31y8zhzxmyas9wde5g3vvlh"); // tr[tr[t].d0].u1 = tn; +UNSUPPORTED("bqsxgabpkfrz4qsvsfyt54x4d"); // tr[tr[t].d1].u0 = tn; +UNSUPPORTED("5pcabowqh0osy2bara83fy53g"); // tr[tr[t].d1].u1 = -1; +UNSUPPORTED("f4j0by9ay0t0diwmyfz091taa"); // /* new code to determine the bottom neighbours of the */ +UNSUPPORTED("62pe8dmdbu3mmvgi9x43iqe6b"); // /* newly partitioned trapezoid */ +UNSUPPORTED("6qcsr9br9c9peep8mzd4eldpu"); // tr[t].d1 = -1; +UNSUPPORTED("7n0btjlxfoym1gc1tkc5zrbdg"); // tnext = tr[t].d0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("et6v36d4wyvf6eg7htev3s7m9"); // else /* intersecting d1 */ +UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // { +UNSUPPORTED("3vlkssstu9yp43651wjntawrq"); // tr[tr[t].d0].u0 = t; +UNSUPPORTED("m24vo48yuozp20pg0jewoocj"); // tr[tr[t].d0].u1 = -1; +UNSUPPORTED("6s5143onio335hfkk9om9l2a9"); // tr[tr[t].d1].u0 = t; +UNSUPPORTED("6y4fvgf18azjngp3ph603viqk"); // tr[tr[t].d1].u1 = tn; +UNSUPPORTED("f4j0by9ay0t0diwmyfz091taa"); // /* new code to determine the bottom neighbours of the */ +UNSUPPORTED("62pe8dmdbu3mmvgi9x43iqe6b"); // /* newly partitioned trapezoid */ +UNSUPPORTED("9akd96bko966x16jg4ghdofjt"); // tr[tn].d0 = tr[t].d1; +UNSUPPORTED("41y3k6fjtt5tbdx3goo3bnr1i"); // tr[tn].d1 = -1; +UNSUPPORTED("da00twqjxr6q0clcep0wcdlql"); // tnext = tr[t].d1; +UNSUPPORTED("1dgkp19ct6hczd1425v8q1dct"); // } +UNSUPPORTED("6fwmq6tx1y4cibphzm0f4wakm"); // t = tnext; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e44ec6lx2mkb3zz7hmhjx90rq"); // tr[t_sav].rseg = tr[tn_sav].lseg = segnum; +UNSUPPORTED("65mlofu9i9895kq8xkb6x103e"); // } /* end-while */ +UNSUPPORTED("8rkpqhwjgyuqdygp3b2o580ff"); // /* Now combine those trapezoids which share common segments. We can */ +UNSUPPORTED("cklqh43b0korps6nmg2eefd70"); // /* use the pointers to the parent to connect these together. This */ +UNSUPPORTED("nzam565p5xaq9ashe9ekcjks"); // /* works only because all these new trapezoids have been formed */ +UNSUPPORTED("81u7z601i80he54qa00v17ami"); // /* due to splitting by the segment, and hence have only one parent */ +UNSUPPORTED("cn4qmoxsrclu3q3mbcc9ff7fw"); // tfirstl = tfirst; +UNSUPPORTED("duhakllu2zu2zvohf6zxwdnqc"); // tlastl = tlast; +UNSUPPORTED("36mff9r0jqhoc1chz9zqbk3x1"); // merge_trapezoids(segnum, tfirstl, tlastl, 1, tr, qs); +UNSUPPORTED("aldx6ji29f73y5modmaxg9zs9"); // merge_trapezoids(segnum, tfirstr, tlastr, 2, tr, qs); +UNSUPPORTED("5e3z4o423d4ob6d3adzxdeipj"); // seg[segnum].is_inserted = (!(0)); +UNSUPPORTED("bid671dovx1rdiquw5vm3fttj"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7afsay7ejf6pnu6atsg7glt53 +// static void find_new_roots(int segnum, segment_t* seg, trap_t* tr, qnode_t* qs) +public static Object find_new_roots(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("hytfu5b4w9vy61qxrhvzemj3"); // find_new_roots(int segnum, segment_t* seg, trap_t* tr, qnode_t* qs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("55wy1clqaecn10s0jetfvt04s"); // segment_t *s = &seg[segnum]; +UNSUPPORTED("13js9c1rj1roq5meh748h5zjy"); // if (s->is_inserted) return; +UNSUPPORTED("3v99ch3hok3ae2fl5leqyzkd7"); // s->root0 = locate_endpoint(&s->v0, &s->v1, s->root0, seg, qs); +UNSUPPORTED("7xdyqtj001z8eqv93gzye5r0k"); // s->root0 = tr[s->root0].sink; +UNSUPPORTED("azljsp4ofo8uf3sqfwo50lv7y"); // s->root1 = locate_endpoint(&s->v1, &s->v0, s->root1, seg, qs); +UNSUPPORTED("4cgieg4q0okhq82lczulvj2ok"); // s->root1 = tr[s->root1].sink; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1ftshkxhp22o0xgh3kuc3sile +// static int math_logstar_n(int n) +public static Object math_logstar_n(Object... arg) { +UNSUPPORTED("3a94rmq48cptlea8l9svm2vdf"); // static int math_logstar_n(int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9cyat6ft4tmgpumn70l9fwydy"); // register int i; +UNSUPPORTED("6om7utuy6ofppg87j05edy4cy"); // double v; +UNSUPPORTED("2r6ldqvvcn5lqu4qdj5pias2v"); // for (i = 0, v = (double) n; v >= 1; i++) +UNSUPPORTED("1d99ficfyx27epymfs7pc5c4"); // v = (log(v)/log(2)); +UNSUPPORTED("17678qqlxjn7yfcjfzl0pk4ao"); // return (i - 1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 20alp7vy21dvsx8ums8pezh3o +// static int math_N(int n, int h) +public static Object math_N(Object... arg) { +UNSUPPORTED("dd4ge3rbi53dw0wh8a3si1jh7"); // static int math_N(int n, int h) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9cyat6ft4tmgpumn70l9fwydy"); // register int i; +UNSUPPORTED("6om7utuy6ofppg87j05edy4cy"); // double v; +UNSUPPORTED("ujffxxrs7gz2vawl37d9jslq"); // for (i = 0, v = (int) n; i < h; i++) +UNSUPPORTED("1d99ficfyx27epymfs7pc5c4"); // v = (log(v)/log(2)); +UNSUPPORTED("enxjvr50hyamoic6g6lwxie70"); // return (int) ceil((double) 1.0*n/v); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9jpwujop3smqitn3gmtcrcixm +// int construct_trapezoids(int nseg, segment_t* seg, int* permute, int ntraps, trap_t* tr) +public static Object construct_trapezoids(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("cywexw0hiyl2gthuawhdixmym"); // construct_trapezoids(int nseg, segment_t* seg, int* permute, int ntraps, +UNSUPPORTED("benaopemb2t6pehss4gcdybzb"); // trap_t* tr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("c4yv5wsz9md0n246eno8qs5et"); // int root, h; +UNSUPPORTED("1c0phmc3iq7tb3sotrpcjoup9"); // int segi = 1; +UNSUPPORTED("7jamhwzh4w6lx0bpq57thdtpt"); // qnode_t* qs; +UNSUPPORTED("1yqtu5d20wep1ymxy1y0nv1g0"); // QSIZE = 2*ntraps; +UNSUPPORTED("3mcur34pgw6444857byhvmgs5"); // TRSIZE = ntraps; +UNSUPPORTED("alj695bdzyptc3wnccsnyuano"); // qs = (qnode_t*)zmalloc((2*ntraps)*sizeof(qnode_t)); +UNSUPPORTED("eroaf3tk5y6euf62it6cxn758"); // q_idx = tr_idx = 1; +UNSUPPORTED("873fgjnxtke0s60r4k3bn0se8"); // memset((void *)tr, 0, ntraps*sizeof(trap_t)); +UNSUPPORTED("dznan6lx9lxucsy4yr6edbkas"); // /* Add the first segment and get the query structure and trapezoid */ +UNSUPPORTED("acrntweri3uun3ahwdudmq1bc"); // /* list initialised */ +UNSUPPORTED("57gkh96bcrh9z87hoeeqq9nw4"); // root = init_query_structure(permute[segi++], seg, tr, qs); +UNSUPPORTED("56oij2ngkqcxgpihju021plmr"); // for (i = 1; i <= nseg; i++) +UNSUPPORTED("137jp8s4g6ip477ywoxna6hr4"); // seg[i].root0 = seg[i].root1 = root; +UNSUPPORTED("56osqlqd8y3slj5zr13d4grc7"); // for (h = 1; h <= math_logstar_n(nseg); h++) { +UNSUPPORTED("tmjwiqe8s4q112nev98zolt7"); // for (i = math_N(nseg, h -1) + 1; i <= math_N(nseg, h); i++) +UNSUPPORTED("bk608pqmg2xw7fpucgxkgwhmo"); // add_segment(permute[segi++], seg, tr, qs); +UNSUPPORTED("9lu6zl26144vbdgsqc1mc6wwz"); // /* Find a new root for each of the segment endpoints */ +UNSUPPORTED("d1y51tnl70njrosh5iimn6xmx"); // for (i = 1; i <= nseg; i++) +UNSUPPORTED("cfk5n685oegsos34urlk5307z"); // find_new_roots(i, seg, tr, qs); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4sfugdwxcf71d498tnurlvs5"); // for (i = math_N(nseg, math_logstar_n(nseg)) + 1; i <= nseg; i++) +UNSUPPORTED("eqduqz9al6zdpuhe8fsvnn2en"); // add_segment(permute[segi++], seg, tr, qs); +UNSUPPORTED("5olrlwcgauazrftmytyls44zs"); // free (qs); +UNSUPPORTED("awblwd52926w1zhpsot3aqld9"); // return tr_idx; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/pack/ccomps__c.java plantuml-8039/src/gen/lib/pack/ccomps__c.java --- plantuml-8024/src/gen/lib/pack/ccomps__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pack/ccomps__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1395 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pack; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; +import smetana.core.jmp_buf; + +public class ccomps__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 exy2l03ceq9zw4vf01bbd4d3o +// typedef unsigned int packval_t + + +//1 540u5gu9i0x1wzoxqqx5n2vwp +// static jmp_buf jbuf +private static jmp_buf jbuf = new jmp_buf(); + + + +//3 ewv0wgzjcdnccieiofn923tzs +// static void initStk(stk_t* sp, blk_t* bp, Agnode_t** base, void (*actionfn) (Agnode_t *, void *), int (*markfn) (Agnode_t *, int)) +public static Object initStk(Object... arg) { +UNSUPPORTED("4owkhdzsvdc67eibb0hkce52q"); // static void initStk(stk_t* sp, blk_t* bp, Agnode_t** base, void (*actionfn) (Agnode_t *, void *), +UNSUPPORTED("2ugi0pnat35n3v5vu8m6wo8c9"); // int (*markfn) (Agnode_t *, int)) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4cbv5zljxbezjfjh2w96uqzqo"); // bp->data = base; +UNSUPPORTED("426ak2yitexsg6w4qx8qa3hhn"); // bp->endp = bp->data + 1024; +UNSUPPORTED("cobh6ukbtrqg5kazfkb5qbwos"); // bp->prev = bp->next = NULL; +UNSUPPORTED("d0y7isc6mkt4zs7cuxs0z8cbi"); // sp->curblk = sp->fstblk = bp; +UNSUPPORTED("4plit1pai1xwb6lmp8vxdw765"); // sp->curp = sp->curblk->data; +UNSUPPORTED("6jgugocuz58zaphptxebwqqu0"); // sp->actionfn = actionfn; +UNSUPPORTED("40ff66oit4kaivk88m97roufs"); // sp->markfn = markfn; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 avbxwaxrnn1f4ijqvx6vxj4v9 +// static void freeBlk (blk_t* bp) +public static Object freeBlk(Object... arg) { +UNSUPPORTED("29r3rvz6nqb5jkizgs6l1gfir"); // static void freeBlk (blk_t* bp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ac5kl6l72wqbpu92jfnqucas5"); // free (bp->data); +UNSUPPORTED("c9jxbo3hkfopwopqpnypylnqn"); // free (bp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 905gm18k22sxeiqmefouokdo7 +// static void freeStk (stk_t* sp) +public static Object freeStk(Object... arg) { +UNSUPPORTED("7voev7gkgzy2irm66y8o7lv98"); // static void freeStk (stk_t* sp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("80y0y8nl1rhrvjhyidchkoszx"); // blk_t* bp; +UNSUPPORTED("2hg7cngzjwbp4pra1mt6hm7c8"); // blk_t* nxtbp; +UNSUPPORTED("bxbujse1qlvr5o62jaz7w882b"); // for (bp = sp->fstblk->next; bp; bp = nxtbp) { +UNSUPPORTED("9ongyx2cs1pmip1padbv3faub"); // nxtbp = bp->next; +UNSUPPORTED("8nhlz8mf83z61xbe7ebmuvrvg"); // freeBlk (bp); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 hd5g5m1klfh6fir1b88dxxy0 +// static void push(stk_t* sp, Agnode_t * np) +public static Object push(Object... arg) { +UNSUPPORTED("4mi4cbphlu8woard9ipkskhxa"); // static void push(stk_t* sp, Agnode_t * np) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7sn7er3kav3y1pmuuel14uk4g"); // if (sp->curp == sp->curblk->endp) { +UNSUPPORTED("7ejfjo9ujnhxt1brqoyvda98z"); // if (sp->curblk->next == NULL) { +UNSUPPORTED("8p9lw9k3c5g8o70jiwpc4khxg"); // blk_t *bp = (blk_t*)gmalloc(sizeof(blk_t)); +UNSUPPORTED("vmqejt4xnnxkowx9kdfiom2v"); // if (bp == 0) { +UNSUPPORTED("64rnd8pm27zc8ih7z4lo209g6"); // agerr(AGERR, "gc: Out of memory\n"); +UNSUPPORTED("6a6l5zrquzjwwujlojo3bxgmx"); // longjmp(jbuf, 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8lzokfu3379ms29120i1pi1u7"); // bp->prev = sp->curblk; +UNSUPPORTED("5355u0h1ffziua427nbgktm4f"); // bp->next = NULL; +UNSUPPORTED("10q0f3r7358yitvftkhg0ndxj"); // bp->data = (Agnode_t **)gmalloc((1000000)*sizeof(Agnode_t *)); +UNSUPPORTED("7cdsxgqqn6n13r36rho1tazbr"); // if (bp->data == 0) { +UNSUPPORTED("64rnd8pm27zc8ih7z4lo209g6"); // agerr(AGERR, "gc: Out of memory\n"); +UNSUPPORTED("6a6l5zrquzjwwujlojo3bxgmx"); // longjmp(jbuf, 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("6di34zac4wnahzd9mi35073nv"); // bp->endp = bp->data + 1000000; +UNSUPPORTED("4t6bbh2oqn8c69wf8nk793yd0"); // sp->curblk->next = bp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ch08fzplwlydp5ixuffkebkjo"); // sp->curblk = sp->curblk->next; +UNSUPPORTED("2wgliq4kn3k88bzp6t95d09ox"); // sp->curp = sp->curblk->data; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ct5glogt08r7tscahocggmdfc"); // ((sp)->markfn(np,1)); +UNSUPPORTED("9sik0jiysxoobhzxy0ak66cpp"); // *sp->curp++ = np; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e6guowi184k24c0h3wmo4jgwi +// static Agnode_t *pop(stk_t* sp) +public static Object pop(Object... arg) { +UNSUPPORTED("f2vfqjdyjli6458h1bzgg94f4"); // static Agnode_t *pop(stk_t* sp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("brdzto4291wjh8nzcp3nalomf"); // if (sp->curp == sp->curblk->data) { +UNSUPPORTED("35z2251j4uecu4a3nol54xs6x"); // if (sp->curblk == sp->fstblk) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("3ilhmneazyfaw2w1tuqpbo2bm"); // sp->curblk = sp->curblk->prev; +UNSUPPORTED("av0wsua2iig5is0rmch044ib2"); // sp->curp = sp->curblk->endp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8sjk9jdrp04i7gd4folcevdaz"); // sp->curp--; +UNSUPPORTED("4c0inpy6hwyly336ksznoypxk"); // return *sp->curp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4qon7xpbucrl2h3x79m1mrhdy +// static int dfs(Agraph_t * g, Agnode_t * n, void *state, stk_t* stk) +public static Object dfs(Object... arg) { +UNSUPPORTED("c6pqde78hulcrl0f3eogd7ib3"); // static int dfs(Agraph_t * g, Agnode_t * n, void *state, stk_t* stk) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("cbgfck2y57x0eyijt2684hs46"); // Agnode_t *other; +UNSUPPORTED("behjm5bjsenezpg3f7cncvteu"); // int cnt = 0; +UNSUPPORTED("6ahe2jq1dzq4y0pnmufi2vw3u"); // push (stk, n); +UNSUPPORTED("dgfqwrzjkj3ev00ljgm6ayh9m"); // while ((n = pop(stk))) { +UNSUPPORTED("1szm63athnlkprt3pv29pjc6z"); // cnt++; +UNSUPPORTED("czpypkhhg6vw19r3ysrzw0g7x"); // if (stk->actionfn) stk->actionfn(n, state); +UNSUPPORTED("5pyyxln0sos0bzz7gqoxiygvs"); // for (e = agfstedge(g, n); e; e = agnxtedge(g, e, n)) { +UNSUPPORTED("efh17yk4k8csgso8w3lpvem9j"); // if ((other = agtail(e)) == n) +UNSUPPORTED("51ukauobgihi6jj53ljaewspy"); // other = aghead(e); +UNSUPPORTED("3i6jyepdzfttpuanl9xkt3l74"); // if (!((stk)->markfn(other,-1))) +UNSUPPORTED("2r2yl007yl5rb5pi6ykq8ze9m"); // push(stk, other); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3zkt5kbq3sockq663o3s3ync7"); // return cnt; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 174yjh9lnitag5picxfy766ci +// static int isLegal(char *p) +public static Object isLegal(Object... arg) { +UNSUPPORTED("49bgdm1mc1l4egxrugqfcsxft"); // static int isLegal(char *p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("10sir32iwi5l2jyfgp65pihto"); // unsigned char c; +UNSUPPORTED("73mude5vwxafdk7a208ydvwwk"); // while ((c = *(unsigned char *) p++)) { +UNSUPPORTED("c704d9cbejqs424vb7en49y9c"); // if ((c != '_') && !isalnum(c)) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5st5bmswl1esywsmkbn2ncrq8 +// static void insertFn(Agnode_t * n, void *state) +public static Object insertFn(Object... arg) { +UNSUPPORTED("dfx1qatv0ncgh1c0k5xc2mgs"); // static void insertFn(Agnode_t * n, void *state) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("314x2h86n0dnk8f7lk9qju5ev"); // agsubnode((Agraph_t *) state,n,1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6rise12p1nj7fgxw063r6ta8i +// static int markFn (Agnode_t* n, int v) +public static Object markFn(Object... arg) { +UNSUPPORTED("756hr5llx7m5qrjsd89e43sih"); // static int markFn (Agnode_t* n, int v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7p7i4cv4qt10ow22vl9znw72j"); // int ret; +UNSUPPORTED("bb4ryyd0u2nyew8s02tgj44mz"); // if (v < 0) return ND_mark(n); +UNSUPPORTED("agb9yqeh2hgzfwhn99lhe9nej"); // ret = ND_mark(n); +UNSUPPORTED("ez00xa01bio9a8f4bkdnqthwe"); // ND_mark(n) = v; +UNSUPPORTED("f3b7mj138albdr4lodyomke0z"); // return ret; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9m4rpn5fxnq9fz0xjsa7cwl +// static char* setPrefix (char* pfx, int* lenp, char* buf, int buflen) +public static Object setPrefix(Object... arg) { +UNSUPPORTED("1yranxmu2maol02ulzd1ka1re"); // static char* +UNSUPPORTED("5vpw3fxc1m9xx0a9kbusu2lu4"); // setPrefix (char* pfx, int* lenp, char* buf, int buflen) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dwe86466ugstemepdfk8yzphz"); // int len; +UNSUPPORTED("euqqtidhrr0boizgvrdl79ed9"); // char* name; +UNSUPPORTED("1c7sond4zth2sag1wbbl3t222"); // if (!pfx || !isLegal(pfx)) { +UNSUPPORTED("2844112cattqbxvd6b7ce564t"); // pfx = "_cc_"; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8hiwachi0j9lvf75thphnbcg6"); // len = strlen(pfx); +UNSUPPORTED("5gzy2dz1vy190rh06xgh0m5u5"); // if (len + 25 <= buflen) +UNSUPPORTED("d77612sl11xi52ir9qb9xlbj1"); // name = buf; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("n9xihlwlyyntpy3723l3tn20"); // if (!(name = (char *) gmalloc(len + 25))) return NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("byt633e1ijrc7va3qghegkhgf"); // strcpy(name, pfx); +UNSUPPORTED("54tcra08tvmrr18bbqnrzq2ty"); // *lenp = len; +UNSUPPORTED("d8c692wl5ut9pklgbb0o4igud"); // return name; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 29iykhzfyaspduditcr7ufri3 +// Agraph_t **pccomps(Agraph_t * g, int *ncc, char *pfx, boolean * pinned) +public static Object pccomps(Object... arg) { +UNSUPPORTED("9592a0sohpkfkhnxqgkd1t8xx"); // Agraph_t **pccomps(Agraph_t * g, int *ncc, char *pfx, boolean * pinned) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("azrybezo3qgwcugn67vwwsfjq"); // int c_cnt = 0; +UNSUPPORTED("9v478fb3v8s4hrtw6o447bhau"); // char buffer[128]; +UNSUPPORTED("8i0d7frxcvvmzhidle0zin9i0"); // char *name; +UNSUPPORTED("eyezi8gbtgev1y2marpkc69yj"); // Agraph_t *out = 0; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("8i0oxshyd0x2idt42lftg3zjx"); // Agraph_t **ccs; +UNSUPPORTED("dwe86466ugstemepdfk8yzphz"); // int len; +UNSUPPORTED("2bcwwo628380s594v69l4227q"); // int bnd = 10; +UNSUPPORTED("8b988hcz92alr94zkfaa6fzf2"); // boolean pin = 0; +UNSUPPORTED("7yhkdqak81ozlnttsdgys1u73"); // stk_t stk; +UNSUPPORTED("569n8uukmri0xiy62ctofxq74"); // blk_t blk; +UNSUPPORTED("4rzpakwprbbiyxu0p7mszvgt"); // Agnode_t* base[1024]; +UNSUPPORTED("bhqjv6dj0aycz89qaoyr18yjt"); // int error = 0; +UNSUPPORTED("254mtuuhqbzuf93i7qlphavdc"); // if (agnnodes(g) == 0) { +UNSUPPORTED("5ojqtedar4ecf884rvp0r36iu"); // *ncc = 0; +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ajoz89eaec73wuy8zxf06ifo4"); // name = setPrefix (pfx, &len, buffer, 128); +UNSUPPORTED("f3456xelgcn1uercqhtm0lkq7"); // ccs = (Agraph_t **)gmalloc((bnd)*sizeof(Agraph_t *)); +UNSUPPORTED("bxcxf1l5mkrh3ledoksmyvts5"); // initStk (&stk, &blk, base, insertFn, markFn); +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("d9gqryaqwhyp5tgpniv6hnwv2"); // ((&stk)->markfn(n,0)); +UNSUPPORTED("ci9r8sj8tbc6yer5c8cebb0cm"); // if (setjmp(jbuf)) { +UNSUPPORTED("9kfwhlafp0jfjaqja0h7o44j3"); // error = 1; +UNSUPPORTED("ek2tuwzllhwxjyaifgtzhek1p"); // goto packerror; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6td879ed4e8kzbz3j6eslw7sk"); // /* Component with pinned nodes */ +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("3jk51f0a1c8hnomknt8lim471"); // if (((&stk)->markfn(n,-1)) || !(ND_pinned(n) == 3)) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("6mjcpt5xx0wfprtp5g7cw8rf4"); // if (!out) { +UNSUPPORTED("7g01291mlr17yn51m62mweoca"); // sprintf(name + len, "%d", c_cnt); +UNSUPPORTED("cjsaclfsdg5p4yky4tv82slc6"); // out = agsubg(g, name,1); +UNSUPPORTED("24tepx4mk3tk4cwf5xg5eff9g"); // agbindrec(out, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); //node custom data +UNSUPPORTED("38fxwar8xtrbq4ks8ba6j4pd4"); // ccs[c_cnt] = out; +UNSUPPORTED("53kaio4ritpla1m5kb2tf7q3o"); // c_cnt++; +UNSUPPORTED("1gzrmotgur9t2cexqgiw7ssd4"); // pin = NOT(0); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("egn0zid00hgedez76ffqesyvo"); // dfs (g, n, out, &stk); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a48f7fcfqvwf0yg64qt36uxdg"); // /* Remaining nodes */ +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("es7cb1ubgfdb9vo8q5y32753t"); // if (((&stk)->markfn(n,-1))) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("7aaiftnzi12afb1li6dqj6aga"); // sprintf(name + len, "%d", c_cnt); +UNSUPPORTED("8vra9mk0wz2njkvxa4nnvxevo"); // out = agsubg(g, name,1); +UNSUPPORTED("e6e58g6ou2zwwtnjzww36hem2"); // agbindrec(out, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); //node custom data +UNSUPPORTED("94s85ldn0q9223lgg7zmt3zsp"); // dfs(g, n, out, &stk); +UNSUPPORTED("dn9pcjtlvoi17ds4bm8ppc6wa"); // if (c_cnt == bnd) { +UNSUPPORTED("esme9v58cizis473mukmd87qb"); // bnd *= 2; +UNSUPPORTED("d3tfv1o5r3ymjk84qnbz7ayxc"); // ccs = RALLOC(bnd, ccs, Agraph_t *); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("etwpnr04bwdr2egdjyg4e4emw"); // ccs[c_cnt] = out; +UNSUPPORTED("axd6jb2bjqul4a1junq61zc7n"); // c_cnt++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("51l3e2kz0gd0fbdng1rtuerf3"); // packerror: +UNSUPPORTED("7hwkgfwulgopzu68jf9894c53"); // freeStk (&stk); +UNSUPPORTED("47276yunfeevpru1276of6w85"); // if (name != buffer) +UNSUPPORTED("bwp196o8phb9mx2d8yw1b9mhi"); // free(name); +UNSUPPORTED("e86x7y7gnx93hxjdfw9c7g7tl"); // if (error) { +UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i; +UNSUPPORTED("5ojqtedar4ecf884rvp0r36iu"); // *ncc = 0; +UNSUPPORTED("1a1pbowm86vviazmczqetcv2d"); // for (i=0; i < c_cnt; i++) { +UNSUPPORTED("9i8py6xnef029xu0ib3h1fn68"); // agclose (ccs[i]); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2hpyw07aau9wk3j15iw5d100j"); // free (ccs); +UNSUPPORTED("84y4vz58r1d0r98k7ilwxl69a"); // ccs = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("assgjfny1ffjxhhcioxsmmveo"); // ccs = RALLOC(c_cnt, ccs, Agraph_t *); +UNSUPPORTED("2qmltrj92j4d606oy6g1uh26x"); // *ncc = c_cnt; +UNSUPPORTED("ancxkuch6389wh7l57e5yiwgd"); // *pinned = pin; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d077t46km2flvzhvfy5b9ld5u"); // return ccs; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7oum7fisfbl39e0gt9kuc2xyz +// Agraph_t **ccomps(Agraph_t * g, int *ncc, char *pfx) +public static Object ccomps(Object... arg) { +UNSUPPORTED("943ghlrqozczbucoafw2tim5n"); // Agraph_t **ccomps(Agraph_t * g, int *ncc, char *pfx) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("azrybezo3qgwcugn67vwwsfjq"); // int c_cnt = 0; +UNSUPPORTED("9v478fb3v8s4hrtw6o447bhau"); // char buffer[128]; +UNSUPPORTED("8i0d7frxcvvmzhidle0zin9i0"); // char *name; +UNSUPPORTED("ae3ezq9c9de3ci6tyzfl88bf7"); // Agraph_t *out; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("8i0oxshyd0x2idt42lftg3zjx"); // Agraph_t **ccs; +UNSUPPORTED("dwe86466ugstemepdfk8yzphz"); // int len; +UNSUPPORTED("2bcwwo628380s594v69l4227q"); // int bnd = 10; +UNSUPPORTED("7yhkdqak81ozlnttsdgys1u73"); // stk_t stk; +UNSUPPORTED("569n8uukmri0xiy62ctofxq74"); // blk_t blk; +UNSUPPORTED("4rzpakwprbbiyxu0p7mszvgt"); // Agnode_t* base[1024]; +UNSUPPORTED("254mtuuhqbzuf93i7qlphavdc"); // if (agnnodes(g) == 0) { +UNSUPPORTED("5ojqtedar4ecf884rvp0r36iu"); // *ncc = 0; +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ajoz89eaec73wuy8zxf06ifo4"); // name = setPrefix (pfx, &len, buffer, 128); +UNSUPPORTED("f3456xelgcn1uercqhtm0lkq7"); // ccs = (Agraph_t **)gmalloc((bnd)*sizeof(Agraph_t *)); +UNSUPPORTED("bxcxf1l5mkrh3ledoksmyvts5"); // initStk (&stk, &blk, base, insertFn, markFn); +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("d9gqryaqwhyp5tgpniv6hnwv2"); // ((&stk)->markfn(n,0)); +UNSUPPORTED("ci9r8sj8tbc6yer5c8cebb0cm"); // if (setjmp(jbuf)) { +UNSUPPORTED("6ynxvmoqlj83wenon4xamzykd"); // freeStk (&stk); +UNSUPPORTED("2hpyw07aau9wk3j15iw5d100j"); // free (ccs); +UNSUPPORTED("4030v2eeye6q0bfv1q68xdc2l"); // if (name != buffer) +UNSUPPORTED("do5yd7vtp5fqk099x8dj0r7yg"); // free(name); +UNSUPPORTED("5ojqtedar4ecf884rvp0r36iu"); // *ncc = 0; +UNSUPPORTED("11hwqop4xebvtcskop4uhpp01"); // return NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("es7cb1ubgfdb9vo8q5y32753t"); // if (((&stk)->markfn(n,-1))) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("7aaiftnzi12afb1li6dqj6aga"); // sprintf(name + len, "%d", c_cnt); +UNSUPPORTED("8vra9mk0wz2njkvxa4nnvxevo"); // out = agsubg(g, name,1); +UNSUPPORTED("e6e58g6ou2zwwtnjzww36hem2"); // agbindrec(out, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0)); //node custom data +UNSUPPORTED("94s85ldn0q9223lgg7zmt3zsp"); // dfs(g, n, out, &stk); +UNSUPPORTED("dn9pcjtlvoi17ds4bm8ppc6wa"); // if (c_cnt == bnd) { +UNSUPPORTED("esme9v58cizis473mukmd87qb"); // bnd *= 2; +UNSUPPORTED("d3tfv1o5r3ymjk84qnbz7ayxc"); // ccs = RALLOC(bnd, ccs, Agraph_t *); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("etwpnr04bwdr2egdjyg4e4emw"); // ccs[c_cnt] = out; +UNSUPPORTED("axd6jb2bjqul4a1junq61zc7n"); // c_cnt++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7hwkgfwulgopzu68jf9894c53"); // freeStk (&stk); +UNSUPPORTED("dnmp67lbepsjnm94ykx22xbaa"); // ccs = RALLOC(c_cnt, ccs, Agraph_t *); +UNSUPPORTED("47276yunfeevpru1276of6w85"); // if (name != buffer) +UNSUPPORTED("bwp196o8phb9mx2d8yw1b9mhi"); // free(name); +UNSUPPORTED("dd0bcvxiscwe7k1z5sh8lczni"); // *ncc = c_cnt; +UNSUPPORTED("d077t46km2flvzhvfy5b9ld5u"); // return ccs; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 39ot62028rkkd87h9frgwqnn6 +// static void deriveClusters(Agraph_t* dg, Agraph_t * g) +public static Object deriveClusters(Object... arg) { +UNSUPPORTED("868sk3tgejqs7lgdi9hbyqe0a"); // static void deriveClusters(Agraph_t* dg, Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("83voshd1807fk59ndryglxfxy"); // Agnode_t *dn; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("92vjk6rjnnnji7bcczz51lwfx"); // for (subg = agfstsubg(g); subg; subg = agnxtsubg(subg)) { +UNSUPPORTED("86x37f2blxq73klb3gsehigpa"); // if ((strncmp(agnameof(subg), "cluster", 7) == 0)) { +UNSUPPORTED("4phmb7xbshx4zd2t4955r6bi"); // dn = agnode(dg, agnameof(subg), 1); +UNSUPPORTED("b27pjkkz8bon9l0vyzh4kgmh2"); // agbindrec (dn, "ccgnodeinfo", sizeof(ccgnodeinfo_t), NOT(0)); +UNSUPPORTED("43h4eauirakaj5syijhqx73du"); // (((ccgnodeinfo_t*)((dn)->base.data))->ptr.g) = subg; +UNSUPPORTED("96y7c5rvxsf9uodnfdl3mgayx"); // for (n = agfstnode(subg); n; n = agnxtnode(subg, n)) { +UNSUPPORTED("4zymv9xm4baria22qh2ka6kua"); // if ((((ccgnodeinfo_t*)aggetrec(n, "ccgnodeinfo", 0))->ptr.n)) { +UNSUPPORTED("9m0pin0xdz4s8m2th3lylhzql"); // fprintf (stderr, "Error: node \"%s\" belongs to two non-nested clusters \"%s\" and \"%s\"\n", +UNSUPPORTED("at3005nk2ku7cn4chzrn5zupi"); // agnameof (n), agnameof(subg), agnameof((((ccgnodeinfo_t*)aggetrec(n, "ccgnodeinfo", 0))->ptr.n))); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("7j98il0qk6xrzt7w4i3gb0bt7"); // (((ccgnodeinfo_t*)aggetrec(n, "ccgnodeinfo", 0))->ptr.n=dn); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("5nz26tfuq99z5jkkuzr9k19bz"); // deriveClusters (dg, subg); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5lih4958yg41q8p4zxcfrrvdw +// static Agraph_t *deriveGraph(Agraph_t * g) +public static Object deriveGraph(Object... arg) { +UNSUPPORTED("4nxhxefmq3j34nvl4eiimpj3h"); // static Agraph_t *deriveGraph(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4irto8d9ngepfwouz32g86zl6"); // Agraph_t *dg; +UNSUPPORTED("83voshd1807fk59ndryglxfxy"); // Agnode_t *dn; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("ayftac06jlte1cy25k8p9iyvn"); // dg = agopen("dg", Agstrictundirected, (Agdisc_t *) 0); +UNSUPPORTED("cvmouwuru7hi7yf51avtrbr24"); // deriveClusters (dg, g); +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("bpv6hya89z189liol7ggh5mx4"); // if ((((ccgnodeinfo_t*)aggetrec(n, "ccgnodeinfo", 0))->ptr.n)) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("2qgs0l1lw8vd8n47zg2u0rsm4"); // dn = agnode(dg, agnameof(n), 1); +UNSUPPORTED("893w6lm5jjr02l302on5ksmdk"); // agbindrec (dn, "ccgnodeinfo", sizeof(ccgnodeinfo_t), NOT(0)); +UNSUPPORTED("12uiujr38t0dn5rjluqfjokgr"); // (((ccgnodeinfo_t*)((dn)->base.data))->ptr.n) = n; +UNSUPPORTED("987f0ysnrssct1iosjitjko1k"); // (((ccgnodeinfo_t*)aggetrec(n, "ccgnodeinfo", 0))->ptr.n=dn); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("d4mlgfduxhsp2wvke20sb15y7"); // Agedge_t *e; +UNSUPPORTED("2fn1y8jpr9zxd6c1ikvlfxnba"); // Agnode_t *hd; +UNSUPPORTED("cbvfldlsb4ch7lpabbvb5sh9p"); // Agnode_t *tl = (((ccgnodeinfo_t*)aggetrec(n, "ccgnodeinfo", 0))->ptr.n); +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("elx93gms5yid1nchdexmh31yf"); // hd = aghead(e); +UNSUPPORTED("aii4ly75jknsfm576dxb2t21i"); // hd = (((ccgnodeinfo_t*)aggetrec(hd, "ccgnodeinfo", 0))->ptr.n); +UNSUPPORTED("2zvgmnv71vkplklm2dmwu24o6"); // if (hd == tl) +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("7yvps7igfif7acnwp70cumlel"); // if (hd > tl) +UNSUPPORTED("aiisqdoegjibrytnbc9bu5zws"); // agedge(dg, tl, hd, 0, 1); +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("54yhr2deg9g0o899gn0rw3tfg"); // agedge(dg, hd, tl, 0, 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7t6k0j9ffr522l0t8a1atpxqy"); // return dg; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2wkfliv6m1b1405ef7p1b32ft +// static void unionNodes(Agraph_t * dg, Agraph_t * g) +public static Object unionNodes(Object... arg) { +UNSUPPORTED("8pzls87c97kkx2wk1iptbln6t"); // static void unionNodes(Agraph_t * dg, Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("83voshd1807fk59ndryglxfxy"); // Agnode_t *dn; +UNSUPPORTED("iih8ksk7ssyh6etktikclltd"); // Agraph_t *clust; +UNSUPPORTED("9v9aifyc1wn6fmqno12jtgowg"); // for (dn = agfstnode(dg); dn; dn = agnxtnode(dg, dn)) { +UNSUPPORTED("756w02dujq85xid2jsypwfwbo"); // if (AGTYPE((((ccgnodeinfo_t*)((dn)->base.data))->ptr.v)) == AGNODE) { +UNSUPPORTED("ayydn4x5zmeefefr7oc9zv6jp"); // agsubnode(g, (((ccgnodeinfo_t*)((dn)->base.data))->ptr.n), 1); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("8dwdvx9gjbp6qikelgbqeadmr"); // clust = (((ccgnodeinfo_t*)((dn)->base.data))->ptr.g); +UNSUPPORTED("n9q43ee8prm443las25a61re"); // for (n = agfstnode(clust); n; n = agnxtnode(clust, n)) +UNSUPPORTED("11xq84jjndb2is2mabgkudwl6"); // agsubnode(g, n, 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5glt6khfafozusksfg5b131p1 +// static int clMarkFn (Agnode_t* n, int v) +public static Object clMarkFn(Object... arg) { +UNSUPPORTED("47itxizphm8ofv4u5hj6tqemj"); // static int clMarkFn (Agnode_t* n, int v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7p7i4cv4qt10ow22vl9znw72j"); // int ret; +UNSUPPORTED("57a2pqux1jftek2pvb1t01xr8"); // if (v < 0) return (((ccgnodeinfo_t*)(n->base.data))->mark); +UNSUPPORTED("b4le2e10kzsr6gx0lg7uc7lq8"); // ret = (((ccgnodeinfo_t*)(n->base.data))->mark); +UNSUPPORTED("91a9kciyaag5an0lw6k6kj32n"); // (((ccgnodeinfo_t*)(n->base.data))->mark) = v; +UNSUPPORTED("f3b7mj138albdr4lodyomke0z"); // return ret; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8e4t1udts4sc9qid3yeclb95v +// int node_induce(Agraph_t * g, Agraph_t* eg) +public static Object node_induce(Object... arg) { +UNSUPPORTED("7p43q9etzpr6fi00r7wawn5fy"); // int node_induce(Agraph_t * g, Agraph_t* eg) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("5llwdc06lj3riadsxuf4qi0mx"); // int e_cnt = 0; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("1trjc50yj62b04stmilwnrccw"); // for (e = agfstout(eg, n); e; e = agnxtout(eg, e)) { +UNSUPPORTED("5otnii3zntzego765yvjx2y7z"); // if (agsubnode(g, aghead(e),0)) { +UNSUPPORTED("2bgblhx59x2fapl17ghgyo44l"); // agsubedge(g,e,1); +UNSUPPORTED("7z5wc5mbeiwlmkv0uqaoxtznf"); // e_cnt++; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4ym6gish1r7q7wxu44bk8pd9g"); // return e_cnt; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 48loms2wapgbbzoo5tu7zc00a +// static Agraph_t *projectG(Agraph_t * subg, Agraph_t * g, int inCluster) +public static Object projectG(Object... arg) { +UNSUPPORTED("cp0ewepqetunqupy9nw5l03m9"); // static Agraph_t *projectG(Agraph_t * subg, Agraph_t * g, int inCluster) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("adkgf7cbtl7hb01475fmwl2a9"); // Agraph_t *proj = 0; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("erqonjaeogo4eut0nvkpoesw1"); // Agnode_t *m; +UNSUPPORTED("6ewipai3bqonhmh4h826lvwyi"); // for (n = agfstnode(subg); n; n = agnxtnode(subg, n)) { +UNSUPPORTED("ew3h1s60a0mp7r9k848dfjapx"); // if ((m = (agnode(g,agnameof(n),0)))) { +UNSUPPORTED("5tl2d28pm7we88zjr2fmqo629"); // if (proj == 0) { +UNSUPPORTED("8uuh5enbjghz3ovb1tkv9nhah"); // proj = agsubg(g, agnameof(subg), 1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("9oprxeyfg7zxo5dcwz0w2luek"); // agsubnode(proj, m, 1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cb38bqtcofuiby9gyj6jkdxmi"); // if (!proj && inCluster) { +UNSUPPORTED("76tqz65aepm0rewx7b80vnprx"); // proj = agsubg(g, agnameof(subg), 1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8gnjhgr9si23zy7tikodxtw7a"); // if (proj) { +UNSUPPORTED("7vzop3cuejhhvb29rjvhzu8l5"); // node_induce(proj, subg); +UNSUPPORTED("8qa8yzjlvof85nup5jiu1eysv"); // agcopyattr(subg, proj); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1ln6n4q5gupkrbtfa8n20b685"); // return proj; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dyxre2nf3xjqo91parvz2g7vf +// static void subgInduce(Agraph_t * root, Agraph_t * g, int inCluster) +public static Object subgInduce(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("6m7vdbmbz7x6wjr9k6wlhkg82"); // subgInduce(Agraph_t * root, Agraph_t * g, int inCluster) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c3tourf5k7groqyh71yjd5xec"); // Agraph_t *subg; +UNSUPPORTED("3f7wzn1vz5nqgbp9vbpstmapg"); // Agraph_t *proj; +UNSUPPORTED("2s6u867pcv2zhmf31509ehwwx"); // int in_cluster; +UNSUPPORTED("ebr5bwfw08ehy2ft191wy9pxt"); // /* fprintf (stderr, "subgInduce %s inCluster %d\n", agnameof(root), inCluster); */ +UNSUPPORTED("3dlvn9nrxc92go0kzv135mmcg"); // for (subg = agfstsubg(root); subg; subg = agnxtsubg(subg)) { +UNSUPPORTED("e29xy4oeug7nshfpb8ezj3tqi"); // if ((((ccgraphinfo_t*)aggetrec(subg, "ccgraphinfo", 0))->cc_subg)) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("etwnh7vodaalf5db09o66xy9t"); // if ((proj = projectG(subg, g, inCluster))) { +UNSUPPORTED("eg3o6p4sy4eltgk6uqwx2u99t"); // in_cluster = (inCluster || (strncmp(agnameof(subg), "cluster", 7) == 0)); +UNSUPPORTED("9wjudih0u2882alnxkf0ebj6v"); // subgInduce(subg, proj, in_cluster); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5affs0nf6g75npbot8em2x8m7 +// static void subGInduce(Agraph_t* g, Agraph_t * out) +public static Object subGInduce(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("ajg4dr4fv1s1lknlf0o2gdybq"); // subGInduce(Agraph_t* g, Agraph_t * out) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5prswoj7lndeoid09c1al9g1j"); // subgInduce(g, out, 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c05zexiwxzdj93dkl8we8khab +// Agraph_t **cccomps(Agraph_t * g, int *ncc, char *pfx) +public static Object cccomps(Object... arg) { +UNSUPPORTED("bh1guslvsmjnntue2v45pives"); // Agraph_t **cccomps(Agraph_t * g, int *ncc, char *pfx) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4irto8d9ngepfwouz32g86zl6"); // Agraph_t *dg; +UNSUPPORTED("dewne7ib8u38idnpmmyanpxy4"); // long n_cnt, c_cnt, e_cnt; +UNSUPPORTED("8i0d7frxcvvmzhidle0zin9i0"); // char *name; +UNSUPPORTED("ae3ezq9c9de3ci6tyzfl88bf7"); // Agraph_t *out; +UNSUPPORTED("cyqedugrpptm0bxk320mwqont"); // Agraph_t *dout; +UNSUPPORTED("83voshd1807fk59ndryglxfxy"); // Agnode_t *dn; +UNSUPPORTED("9v478fb3v8s4hrtw6o447bhau"); // char buffer[128]; +UNSUPPORTED("8i0oxshyd0x2idt42lftg3zjx"); // Agraph_t **ccs; +UNSUPPORTED("7yhkdqak81ozlnttsdgys1u73"); // stk_t stk; +UNSUPPORTED("569n8uukmri0xiy62ctofxq74"); // blk_t blk; +UNSUPPORTED("4rzpakwprbbiyxu0p7mszvgt"); // Agnode_t* base[1024]; +UNSUPPORTED("3zmxwwco9e8lfzit5g7xyni3u"); // int len, sz = sizeof(ccgraphinfo_t); +UNSUPPORTED("254mtuuhqbzuf93i7qlphavdc"); // if (agnnodes(g) == 0) { +UNSUPPORTED("5ojqtedar4ecf884rvp0r36iu"); // *ncc = 0; +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("mn4op16ipeagjc74l7yww8bz"); // /* Bind ccgraphinfo to graph and all subgraphs */ +UNSUPPORTED("3303xo8hilcqucew7np45prjp"); // aginit(g, AGRAPH, "ccgraphinfo", -sz, 0); +UNSUPPORTED("mn4op16ipeagjc74l7yww8bz"); // /* Bind ccgraphinfo to graph and all subgraphs */ +UNSUPPORTED("3i1yc6icdysjig83q9w4xiegw"); // aginit(g, AGNODE, "ccgnodeinfo", sizeof(ccgnodeinfo_t), 0); +UNSUPPORTED("ajoz89eaec73wuy8zxf06ifo4"); // name = setPrefix (pfx, &len, buffer, 128); +UNSUPPORTED("6b8hpfo0yzr73kue74wg5urik"); // dg = deriveGraph(g); +UNSUPPORTED("ddvbuomn6rrv78seji0yjwbbv"); // ccs = (Agraph_t **)gmalloc((agnnodes(dg))*sizeof(Agraph_t *)); +UNSUPPORTED("7l5ogrxq72sxssip6r18npo0n"); // initStk (&stk, &blk, base, insertFn, clMarkFn); +UNSUPPORTED("d24jzvut52q0hj9nlorc44vrg"); // c_cnt = 0; +UNSUPPORTED("9v9aifyc1wn6fmqno12jtgowg"); // for (dn = agfstnode(dg); dn; dn = agnxtnode(dg, dn)) { +UNSUPPORTED("etraumuco3o1vcr8xan2q9q5h"); // if (((&stk)->markfn(dn,-1))) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("ezh99rvltuhb4d5w386i5g1nx"); // sprintf(name + len, "%ld", c_cnt); +UNSUPPORTED("6462mwu57pnu19vu84crikc3k"); // dout = agsubg(dg, name, 1); +UNSUPPORTED("6i42st1vabeuy8tx3i36itl9a"); // out = agsubg(g, name, 1); +UNSUPPORTED("7yzk1n28fx1u27fhfidifq9bi"); // agbindrec(out, "ccgraphinfo", sizeof(ccgraphinfo_t), 0); +UNSUPPORTED("enaayclc0kf0z0a4xejm43oeo"); // (((ccgraphinfo_t*)aggetrec(out, "ccgraphinfo", 0))->cc_subg) = 1; +UNSUPPORTED("e1uwav0phirwwvu1neif4abik"); // n_cnt = dfs(dg, dn, dout, &stk); +UNSUPPORTED("74xnahtnf5jim9abf6cpexgqy"); // unionNodes(dout, out); +UNSUPPORTED("2e6ezdfi63q03v7jwxczoc0fk"); // e_cnt = nodeInduce(out); +UNSUPPORTED("5ehzmuadvlo08j35hai2cu52d"); // subGInduce(g, out); +UNSUPPORTED("etwpnr04bwdr2egdjyg4e4emw"); // ccs[c_cnt] = out; +UNSUPPORTED("du4qeeya3ro6e7elm6ob0kg3"); // agdelete(dg, dout); +UNSUPPORTED("a0xpyoq74njvdwc9lcvgyfc0p"); // if (Verbose) +UNSUPPORTED("5eih3td1dj05hma7t3x9cv1sz"); // fprintf(stderr, "(%4ld) %7ld nodes %7ld edges\n", +UNSUPPORTED("doasu7up2loxsbjm287gl6pl7"); // c_cnt, n_cnt, e_cnt); +UNSUPPORTED("axd6jb2bjqul4a1junq61zc7n"); // c_cnt++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose) +UNSUPPORTED("474chts8vmoqnir32g2cf2jhh"); // fprintf(stderr, " %7d nodes %7d edges %7ld components %s\n", +UNSUPPORTED("1vccvosilgooou5g023ghfhvd"); // agnnodes(g), agnedges(g), c_cnt, agnameof(g)); +UNSUPPORTED("drqwalxujrfmlajqixy65ayrx"); // agclose(dg); +UNSUPPORTED("635qc8j61lcasvpl3uehv7kws"); // agclean (g, AGRAPH, "ccgraphinfo"); +UNSUPPORTED("ali2vcmmjxz7qj3j0xeqgvqai"); // agclean (g, AGNODE, "ccgnodeinfo"); +UNSUPPORTED("7hwkgfwulgopzu68jf9894c53"); // freeStk (&stk); +UNSUPPORTED("dnmp67lbepsjnm94ykx22xbaa"); // ccs = RALLOC(c_cnt, ccs, Agraph_t *); +UNSUPPORTED("47276yunfeevpru1276of6w85"); // if (name != buffer) +UNSUPPORTED("bwp196o8phb9mx2d8yw1b9mhi"); // free(name); +UNSUPPORTED("dd0bcvxiscwe7k1z5sh8lczni"); // *ncc = c_cnt; +UNSUPPORTED("d077t46km2flvzhvfy5b9ld5u"); // return ccs; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c6h4ladmfc1rtdc8d57592jxj +// int isConnected(Agraph_t * g) +public static Object isConnected(Object... arg) { +UNSUPPORTED("964gnb5ub22thb4btdue682kw"); // int isConnected(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("4jfqz808d62e4cvmb6cbl8bg3"); // int ret = 1; +UNSUPPORTED("behjm5bjsenezpg3f7cncvteu"); // int cnt = 0; +UNSUPPORTED("7yhkdqak81ozlnttsdgys1u73"); // stk_t stk; +UNSUPPORTED("569n8uukmri0xiy62ctofxq74"); // blk_t blk; +UNSUPPORTED("4rzpakwprbbiyxu0p7mszvgt"); // Agnode_t* base[1024]; +UNSUPPORTED("6gs3ra2bpw8hex3dn3pz9dyep"); // if (agnnodes(g) == 0) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("6thuq4l7a2kmf681ihuog2jyt"); // initStk (&stk, &blk, base, NULL, markFn); +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("d9gqryaqwhyp5tgpniv6hnwv2"); // ((&stk)->markfn(n,0)); +UNSUPPORTED("ci9r8sj8tbc6yer5c8cebb0cm"); // if (setjmp(jbuf)) { +UNSUPPORTED("6ynxvmoqlj83wenon4xamzykd"); // freeStk (&stk); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("42x5vqk9aw9a2ld3duvpmp7u9"); // n = agfstnode(g); +UNSUPPORTED("155g1h8ib5rdqvi6w6a0lbqc7"); // cnt = dfs(g, agfstnode(g), NULL, &stk); +UNSUPPORTED("2g8uwa65n8i12wom2gzjzjbly"); // if (cnt != agnnodes(g)) +UNSUPPORTED("233rsrgc8rw3666kshx67w2sl"); // ret = 0; +UNSUPPORTED("7hwkgfwulgopzu68jf9894c53"); // freeStk (&stk); +UNSUPPORTED("f3b7mj138albdr4lodyomke0z"); // return ret; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3qdni7ppm3mp7tf4nbkg8b54c +// int nodeInduce(Agraph_t * g) +public static Object nodeInduce(Object... arg) { +UNSUPPORTED("c5we4nfcmmumlgexr5upjrsd3"); // int nodeInduce(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dy63ol2hkiluswrcx8ebvgxuu"); // return node_induce (g, g->root); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/pack/pack__c.java plantuml-8039/src/gen/lib/pack/pack__c.java --- plantuml-8024/src/gen/lib/pack/pack__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pack/pack__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,2036 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pack; +import static gen.lib.cgraph.attr__c.agget; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.Agraph_s; +import h.boxf; +import h.pack_info; +import h.pointf; +import smetana.core.CString; +import smetana.core.__struct__; + +public class pack__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 exy2l03ceq9zw4vf01bbd4d3o +// typedef unsigned int packval_t + + +//1 6ddu6mrp88g3kun2w1gg8ck8t +// typedef Dict_t PointSet + + +//1 6t1gwljnc5qkhgkp9oc8y7lhm +// typedef Dict_t PointMap + + + + +//3 bdbcgpx3oes6bcwdhfnfq0wjf +// static int computeStep(int ng, boxf* bbs, int margin) +public static Object computeStep(Object... arg) { +UNSUPPORTED("8t29o17pwh1az79qvvoe5gzig"); // static int computeStep(int ng, boxf* bbs, int margin) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("55lbmpqutqoil2r1b1kshhf4"); // double l1, l2; +UNSUPPORTED("a43rbn0mnlegy80nlm8zaa198"); // double a, b, c, d, r; +UNSUPPORTED("ady3ytrxxbt2q1wph02epzm2x"); // double W, H; /* width and height of graph, with margin */ +UNSUPPORTED("4wnirjl62mfwcoakp6lyep3p7"); // int i, root; +UNSUPPORTED("xo2ha29kgc22utvzozfopc3t"); // a = 100 * ng - 1; +UNSUPPORTED("10mngu08a3ilg9ogq1ucw6uro"); // c = 0; +UNSUPPORTED("5bkjzlhrfwudnhdqvgcum89jk"); // b = 0; +UNSUPPORTED("7zun8aoc3cgzj5s89wluw8xq4"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("3u59zam8do4bsljnozwf0fx8s"); // boxf bb = bbs[i]; +UNSUPPORTED("bzl9bfq6ylumj5u7zvlkdd1fy"); // W = bb.UR.x - bb.LL.x + 2 * margin; +UNSUPPORTED("6keu83u4vpu8uuctqbhsxm1f"); // H = bb.UR.y - bb.LL.y + 2 * margin; +UNSUPPORTED("66ehok2jts1k8egaj9o3d4mhd"); // b -= (W + H); +UNSUPPORTED("ecmu5b20wldgp7ltdenk6r6y3"); // c -= (W * H); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6eylx7urr9urjgcpq15mz9mbx"); // d = b * b - 4.0 * a * c; +UNSUPPORTED("6gohrnij1pp8uigeqwldand78"); // if (d < 0) { +UNSUPPORTED("aqx00bc7erj1s1idkis6k0xou"); // agerr(AGERR, "libpack: disc = %f ( < 0)\n", d); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7w2mz82iiqh2etpb0eadr0ddt"); // r = sqrt(d); +UNSUPPORTED("1iy2sivksdztrjf4h3k0algs0"); // l1 = (-b + r) / (2 * a); +UNSUPPORTED("erlkg1mh0rfh16bj67xa68qmy"); // l2 = (-b - r) / (2 * a); +UNSUPPORTED("cr6iwpvlne2bcqjtejlgpsa48"); // root = (int) l1; +UNSUPPORTED("1gg2fab0bfmz9yl7zohktb3g9"); // if (root == 0) root = 1; +UNSUPPORTED("3kxq91b30qey91r4hkc9jrb9n"); // if (Verbose > 2) { +UNSUPPORTED("55e0qgjsydjz1tjye67igkeny"); // fprintf(stderr, "Packing: compute grid size\n"); +UNSUPPORTED("eirgraz2ak76fhuf5dbajvv02"); // fprintf(stderr, "a %f b %f c %f d %f r %f\n", a, b, c, d, r); +UNSUPPORTED("eekm76wxww26ubtn5v9ypypiy"); // fprintf(stderr, "root %d (%f) %d (%f)\n", root, l1, (int) l2, +UNSUPPORTED("eilpovu9tr2mn82840g4gwduy"); // l2); +UNSUPPORTED("5pjri22kxtwvbb3hbf0n1qput"); // fprintf(stderr, " r1 %f r2 %f\n", a * l1 * l1 + b * l1 + c, +UNSUPPORTED("3h2jsnh1591w0kbq88cmk89ul"); // a * l2 * l2 + b * l2 + c); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4hzlvk8t0qcn15wg6988vwra9"); // return root; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dob2o9m8sfsrsm1g93hfznsp +// static int cmpf(const void *X, const void *Y) +public static Object cmpf(Object... arg) { +UNSUPPORTED("4nc6jpvian95rmtwnhxuaib4b"); // static int cmpf(const void *X, const void *Y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2eux9vyonke173k6wx67nvmeu"); // ginfo *x = *(ginfo **) X; +UNSUPPORTED("4rofn9loku05xrr4fp3slcs6r"); // ginfo *y = *(ginfo **) Y; +UNSUPPORTED("95s1jm8x7y2tc9y914raaljrs"); // /* flip order to get descending array */ +UNSUPPORTED("46lhhdh1hfndiefr57nzqj6ib"); // return (y->perim - x->perim); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4r8s4k6p01ynfz88kz50ttlr8 +// void fillLine(pointf p, pointf q, PointSet * ps) +public static Object fillLine(Object... arg) { +UNSUPPORTED("a5130f5j305uj46zjcopit703"); // void fillLine(pointf p, pointf q, PointSet * ps) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1duvjyh47lxf7d7ue5car0vsj"); // int x1 = ROUND(p.x); +UNSUPPORTED("9pzzawvcmpw6i93hjb26rq63h"); // int y1 = ROUND(p.y); +UNSUPPORTED("3057bhojttdigycfgf1lyio0f"); // int x2 = ROUND(q.x); +UNSUPPORTED("5bgjp0mm0o564h53ba0zrnbhq"); // int y2 = ROUND(q.y); +UNSUPPORTED("d8jccesapcqy22p9y3vtpm616"); // int d, x, y, ax, ay, sx, sy, dx, dy; +UNSUPPORTED("6vdso33syc5f2j40e5bsuhb83"); // dx = x2 - x1; +UNSUPPORTED("6zrp5a2timck4sou5qym3hsrd"); // ax = ABS(dx) << 1; +UNSUPPORTED("ay754u242psxjbqm7n8azez52"); // sx = SGN(dx); +UNSUPPORTED("cmvkhiqbscc6cgktpynqycfhn"); // dy = y2 - y1; +UNSUPPORTED("eigqi5q47z9sk7utvxv72dif0"); // ay = ABS(dy) << 1; +UNSUPPORTED("1ifl8r2gf1amwzvvvfohlx6uw"); // sy = SGN(dy); +UNSUPPORTED("2x97iysx5j91wtf3wmgeo2pt"); // /* fprintf (stderr, "fillLine %d %d - %d %d\n", x1,y1,x2,y2); */ +UNSUPPORTED("9y4duec6l30q5clw8qd85w784"); // x = x1; +UNSUPPORTED("6rlb844uhus8twyid93q8kqbs"); // y = y1; +UNSUPPORTED("ccle7h8pebi673oczx2fj5nxi"); // if (ax > ay) { /* x dominant */ +UNSUPPORTED("7h60osio7amm1igvh0h7ipgx9"); // d = ay - (ax >> 1); +UNSUPPORTED("2v2pue2y1u2d4ka6733iv5vk0"); // for (;;) { +UNSUPPORTED("13fg1e71tu92h0bfrs9xka8tb"); // /* fprintf (stderr, " addPS %d %d\n", x,y); */ +UNSUPPORTED("62ytgdd26o3p2xgoq37xnoifl"); // addPS(ps, x, y); +UNSUPPORTED("2lero25dpfd7f3wrrhmxhly2h"); // if (x == x2) +UNSUPPORTED("6an8ocqq0sjru42k4aathe94m"); // return; +UNSUPPORTED("9erzrv938084t7vmam5bxw7mx"); // if (d >= 0) { +UNSUPPORTED("9cka76ykusjv3k3y8fda4nfk0"); // y += sy; +UNSUPPORTED("bynlwjpgqdvo01z64gm1sf2ga"); // d -= ax; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("1vyuktjou7iccegm28w06drqv"); // x += sx; +UNSUPPORTED("3a5mkjlhp2t10gtqh3qj69q2v"); // d += ay; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("161urjc4hdupo7zswtjf376th"); // } else { /* y dominant */ +UNSUPPORTED("39keqb5njfkczwllbrur21irg"); // d = ax - (ay >> 1); +UNSUPPORTED("2v2pue2y1u2d4ka6733iv5vk0"); // for (;;) { +UNSUPPORTED("13fg1e71tu92h0bfrs9xka8tb"); // /* fprintf (stderr, " addPS %d %d\n", x,y); */ +UNSUPPORTED("62ytgdd26o3p2xgoq37xnoifl"); // addPS(ps, x, y); +UNSUPPORTED("colj1ywjuo0sy4arrbdvl8jfd"); // if (y == y2) +UNSUPPORTED("6an8ocqq0sjru42k4aathe94m"); // return; +UNSUPPORTED("9erzrv938084t7vmam5bxw7mx"); // if (d >= 0) { +UNSUPPORTED("14xdaydif31mwi2l1z4k2oepc"); // x += sx; +UNSUPPORTED("jjd6xfq9lhh82zyxg0ikry3"); // d -= ay; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("58q6s3oua65hpto8xa7dz10sf"); // y += sy; +UNSUPPORTED("d3ci5x842hrarrzjeputfalm"); // d += ax; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6ewq3stx5of82qf0ol1xwjf0o +// static void fillEdge(Agedge_t * e, point p, PointSet * ps, int dx, int dy, int ssize, int doS) +public static Object fillEdge(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("9b96jon8bxkz7znkmv20875w6"); // fillEdge(Agedge_t * e, point p, PointSet * ps, int dx, int dy, +UNSUPPORTED("8yrc5v6qafl4vg0xln2we5kn3"); // int ssize, int doS) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9e6bnowy6jfhnib5uev3scpsu"); // int j, k; +UNSUPPORTED("37thdceezsvepe7tlyfatrbcw"); // bezier bz; +UNSUPPORTED("9j8f6779znpou18ci9dqadum3"); // pointf pt, hpt; +UNSUPPORTED("15nfkonrgeitraj70893dwyoj"); // Agnode_t *h; +UNSUPPORTED("5adeloig3qt9512e0wlnw0stj"); // P2PF(p, pt); +UNSUPPORTED("9k8qdzbe2z8whvdrbl13aayb6"); // /* If doS is false or the edge has not splines, use line segment */ +UNSUPPORTED("bd6qvosxwfyw4x4l6o4442ous"); // if (!doS || !ED_spl(e)) { +UNSUPPORTED("1058dpzesyxnmmn0hdydhfm1n"); // h = aghead(e); +UNSUPPORTED("dyy30pakjvyqg13qemnd5v50i"); // hpt = coord(h); +UNSUPPORTED("d3qru0pr047p8fj3evxw9gstq"); // ((hpt).x += dx, (hpt).y += dy); +UNSUPPORTED("99rq045btzmqomibgmhvv8wce"); // ((hpt).x = (((hpt).x) >= 0 ? ((hpt).x)/(ssize) : ((((hpt).x)+1)/(ssize))-1), (hpt).y = (((hpt).y) >= 0 ? ((hpt).y)/((ssize)) : ((((hpt).y)+1)/((ssize)))-1)); +UNSUPPORTED("74hokpj1xz0ky4pomxsicfkvi"); // fillLine(pt, hpt, ps); +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e9vow5lzqvgcxabgjj99yokjr"); // for (j = 0; j < ED_spl(e)->size; j++) { +UNSUPPORTED("8ni4zfvf78h93ucjuoqtuomjh"); // bz = ED_spl(e)->list[j]; +UNSUPPORTED("2qc36pchob3dha7c8jedwalcn"); // if (bz.sflag) { +UNSUPPORTED("d5qnj0ut8jldhlvcj8dgvm1r5"); // pt = bz.sp; +UNSUPPORTED("8h1rn4kivdousjdpfa1mmawwm"); // hpt = bz.list[0]; +UNSUPPORTED("7hf6867dr3c65w2pf4xq323mu"); // k = 1; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("bf65xvm2dou3rh6h7knsa2us5"); // pt = bz.list[0]; +UNSUPPORTED("3z2k5orut98eo0vq0pyevi2ed"); // hpt = bz.list[1]; +UNSUPPORTED("dz2m8yuk8yfnc2srukp3nh4tc"); // k = 2; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("cgn9befmvtd4d8yfqs126lbpq"); // ((pt).x += dx, (pt).y += dy); +UNSUPPORTED("dpf9cre3x7edch35g0alvo167"); // ((pt).x = (((pt).x) >= 0 ? ((pt).x)/(ssize) : ((((pt).x)+1)/(ssize))-1), (pt).y = (((pt).y) >= 0 ? ((pt).y)/((ssize)) : ((((pt).y)+1)/((ssize)))-1)); +UNSUPPORTED("d3qru0pr047p8fj3evxw9gstq"); // ((hpt).x += dx, (hpt).y += dy); +UNSUPPORTED("99rq045btzmqomibgmhvv8wce"); // ((hpt).x = (((hpt).x) >= 0 ? ((hpt).x)/(ssize) : ((((hpt).x)+1)/(ssize))-1), (hpt).y = (((hpt).y) >= 0 ? ((hpt).y)/((ssize)) : ((((hpt).y)+1)/((ssize)))-1)); +UNSUPPORTED("74hokpj1xz0ky4pomxsicfkvi"); // fillLine(pt, hpt, ps); +UNSUPPORTED("6gftmkq3mhknwzkm4an4llzet"); // for (; k < bz.size; k++) { +UNSUPPORTED("a9t723l1szseqti9o12357emd"); // pt = hpt; +UNSUPPORTED("b960h12noe0vcvmcdqt04yz5r"); // hpt = bz.list[k]; +UNSUPPORTED("uxitedizhv3r59kwo9hloxga"); // ((hpt).x += dx, (hpt).y += dy); +UNSUPPORTED("g2ys8m7lhj8ygyslxd1awd8c"); // ((hpt).x = (((hpt).x) >= 0 ? ((hpt).x)/(ssize) : ((((hpt).x)+1)/(ssize))-1), (hpt).y = (((hpt).y) >= 0 ? ((hpt).y)/((ssize)) : ((((hpt).y)+1)/((ssize)))-1)); +UNSUPPORTED("b6h1kxqo0bbiehrmk1374qmig"); // fillLine(pt, hpt, ps); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("973cbk976xio10xxw9bgkyen2"); // if (bz.eflag) { +UNSUPPORTED("a9t723l1szseqti9o12357emd"); // pt = hpt; +UNSUPPORTED("mppggrplo1gua39zwczw05dl"); // hpt = bz.ep; +UNSUPPORTED("uxitedizhv3r59kwo9hloxga"); // ((hpt).x += dx, (hpt).y += dy); +UNSUPPORTED("g2ys8m7lhj8ygyslxd1awd8c"); // ((hpt).x = (((hpt).x) >= 0 ? ((hpt).x)/(ssize) : ((((hpt).x)+1)/(ssize))-1), (hpt).y = (((hpt).y) >= 0 ? ((hpt).y)/((ssize)) : ((((hpt).y)+1)/((ssize)))-1)); +UNSUPPORTED("b6h1kxqo0bbiehrmk1374qmig"); // fillLine(pt, hpt, ps); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1qqcfh1obd0wpw60zt3qb10o1 +// static void genBox(boxf bb0, ginfo * info, int ssize, int margin, point center, char* s) +public static Object genBox(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("dkh8x4gma6inyhel8ms5kdqyn"); // genBox(boxf bb0, ginfo * info, int ssize, int margin, point center, char* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aqkjgsdfo55oljkejalj18x5o"); // PointSet *ps; +UNSUPPORTED("d9cafq96lxhglzixa87lnoi5j"); // int W, H; +UNSUPPORTED("20jw6e25uf75jfj884w81pyn6"); // point UR, LL; +UNSUPPORTED("dli0hhfxexiypybw00gp6530v"); // box bb; +UNSUPPORTED("7ksbgqgqrh7y32ijnkxl8zaw0"); // int x, y; +UNSUPPORTED("bmfwjlyug1vwjdhkwhf2qxh0a"); // BF2B(bb0, bb); +UNSUPPORTED("6udv07xykmb0e2pdyqurnc9p4"); // ps = newPS(); +UNSUPPORTED("6xe56afm9k659fq07xtcn9147"); // LL.x = center.x - margin; +UNSUPPORTED("dh3kj8xysu2kv9k3a983iqav3"); // LL.y = center.y - margin; +UNSUPPORTED("585l7y7guge9z8fsbbxli30rj"); // UR.x = center.x + bb.UR.x - bb.LL.x + margin; +UNSUPPORTED("e584696y40atkpz430l6plczr"); // UR.y = center.y + bb.UR.y - bb.LL.y + margin; +UNSUPPORTED("9v2053h0uv8gyfep4zczhjyd"); // ((LL).x = (((LL).x) >= 0 ? ((LL).x)/(ssize) : ((((LL).x)+1)/(ssize))-1), (LL).y = (((LL).y) >= 0 ? ((LL).y)/((ssize)) : ((((LL).y)+1)/((ssize)))-1)); +UNSUPPORTED("de40ubd0t9d1rv08pcspaltry"); // ((UR).x = (((UR).x) >= 0 ? ((UR).x)/(ssize) : ((((UR).x)+1)/(ssize))-1), (UR).y = (((UR).y) >= 0 ? ((UR).y)/((ssize)) : ((((UR).y)+1)/((ssize)))-1)); +UNSUPPORTED("afbpk7wdnlzfrfjsfanv0nxp9"); // for (x = LL.x; x <= UR.x; x++) +UNSUPPORTED("eqzaosdvrone8rhgu36tsk45v"); // for (y = LL.y; y <= UR.y; y++) +UNSUPPORTED("5jwcnu6k267vszq6le3zpltr2"); // addPS(ps, x, y); +UNSUPPORTED("b6965k7cvxgazo4d1x1gpicax"); // info->cells = pointsOf(ps); +UNSUPPORTED("79rp86itd9b91tc0db54220fr"); // info->nc = sizeOf(ps); +UNSUPPORTED("agmsrp2u25tarnb04rrmz8szf"); // W = ((int)ceil((bb0.UR.x - bb0.LL.x + 2 * margin)/(ssize))); +UNSUPPORTED("37qvodfrig2t4hcn9v3c7fita"); // H = ((int)ceil((bb0.UR.y - bb0.LL.y + 2 * margin)/(ssize))); +UNSUPPORTED("2w04og11wkyoe6e59x489rdlp"); // info->perim = W + H; +UNSUPPORTED("3kxq91b30qey91r4hkc9jrb9n"); // if (Verbose > 2) { +UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i; +UNSUPPORTED("f23g1eoeiffc45ucsecqxqkap"); // fprintf(stderr, "%s no. cells %d W %d H %d\n", +UNSUPPORTED("dbm7epl7o6mpeo72klw135uni"); // s, info->nc, W, H); +UNSUPPORTED("5raufl639beqv87bsfap22ar5"); // for (i = 0; i < info->nc; i++) +UNSUPPORTED("36wdram8nco5bacym97n1egc0"); // fprintf(stderr, " %d %d cell\n", info->cells[i].x, +UNSUPPORTED("606tqxapdsuzdhl2ssic0tz2v"); // info->cells[i].y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dg5ijmmysdxc2qm5j58u0zr8i"); // freePS(ps); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5un21g6597dr1wxwpjststcy2 +// static int genPoly(Agraph_t * root, Agraph_t * g, ginfo * info, int ssize, pack_info * pinfo, point center) +public static Object genPoly(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("29xjrg34ztih2ce44tcl0h5dl"); // genPoly(Agraph_t * root, Agraph_t * g, ginfo * info, +UNSUPPORTED("103ox5jcn94jkt4i92802xe30"); // int ssize, pack_info * pinfo, point center) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aqkjgsdfo55oljkejalj18x5o"); // PointSet *ps; +UNSUPPORTED("d9cafq96lxhglzixa87lnoi5j"); // int W, H; +UNSUPPORTED("9z1w1elfjsy9fmy4de64anci3"); // point LL, UR; +UNSUPPORTED("du26lyeqo8abix4w0d22tb9t8"); // point pt, s2; +UNSUPPORTED("bz0wmxtnzgka3zfovkbr7eozh"); // pointf ptf; +UNSUPPORTED("y2e8aue8lq20s36dp5cktigw"); // Agraph_t *eg; /* graph containing edges */ +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("7ksbgqgqrh7y32ijnkxl8zaw0"); // int x, y; +UNSUPPORTED("bftz89757hgmx7ivuna8lc4z6"); // int dx, dy; +UNSUPPORTED("8uujemixuhlf040icq3zsh7j8"); // graph_t *subg; +UNSUPPORTED("bgh1ykg5jxme381zrqlfzre56"); // int margin = pinfo->margin; +UNSUPPORTED("7l72pjfqpydwx4ojgn4x8l6u7"); // int doSplines = pinfo->doSplines; +UNSUPPORTED("dli0hhfxexiypybw00gp6530v"); // box bb; +UNSUPPORTED("dqseu01ng2nnpewmpp95sm688"); // if (root) +UNSUPPORTED("3nj280m96ug062kyr3cutmoqh"); // eg = root; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("bcwj9q77uro493bbvuwbpo5vy"); // eg = g; +UNSUPPORTED("6udv07xykmb0e2pdyqurnc9p4"); // ps = newPS(); +UNSUPPORTED("9i5jau3uugaz7oitfcmhousx1"); // dx = center.x - ROUND(GD_bb(g).LL.x); +UNSUPPORTED("66eemj62brnu3mglipwc7cqii"); // dy = center.y - ROUND(GD_bb(g).LL.y); +UNSUPPORTED("dj9kkvxpyum7mive0tpr3vfod"); // if (pinfo->mode == l_clust) { +UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i; +UNSUPPORTED("5tckx2f0jgn7lryi9m2e7btre"); // void **alg; +UNSUPPORTED("3sna9ll8elsitmdj8rs4m15cr"); // /* backup the alg data */ +UNSUPPORTED("cbau5vo7rkixloiylj1lwlytg"); // alg = (void **)gmalloc((agnnodes(g))*sizeof(void *)); +UNSUPPORTED("1rckxjxqzxb846omrtt9yuxw3"); // for (i = 0, n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("4xioornmodd5ydv19wigsz1lu"); // alg[i++] = ND_alg(n); +UNSUPPORTED("bqtu555nwh760awky8m65eec2"); // ND_alg(n) = 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5s8wtxkay1fm0fn50m39tk6fj"); // /* do bbox of top clusters */ +UNSUPPORTED("axxs2u0a8b8lf42oqy6xq0bx1"); // for (i = 1; i <= GD_n_cluster(g); i++) { +UNSUPPORTED("2vrnig406r4mku4kxy2kf648a"); // subg = GD_clust(g)[i]; +UNSUPPORTED("pfi3ma6w50rsu99wqswvhjgx"); // BF2B(GD_bb(subg), bb); +UNSUPPORTED("btynl1nm8k1pr7vp22utdesdj"); // if ((bb.UR.x > bb.LL.x) && (bb.UR.y > bb.LL.y)) { +UNSUPPORTED("ev14habqjuz1vhqxmavftlqlh"); // ((bb.LL).x += dx, (bb.LL).y += dy); +UNSUPPORTED("bdzc32hvn2ybrea165mrd66rg"); // ((bb.UR).x += dx, (bb.UR).y += dy); +UNSUPPORTED("55n48hmw8i7wktq78vfub4obw"); // bb.LL.x -= margin; +UNSUPPORTED("3756d2o8pocqpkunmmdj28zmf"); // bb.LL.y -= margin; +UNSUPPORTED("5urkhackfkfy3g74mu9xtpk5d"); // bb.UR.x += margin; +UNSUPPORTED("9pw4vnniswa2mnfe3olr8ciey"); // bb.UR.y += margin; +UNSUPPORTED("7thgtnyonec8a9sn8hizox5ig"); // ((bb.LL).x = (((bb.LL).x) >= 0 ? ((bb.LL).x)/(ssize) : ((((bb.LL).x)+1)/(ssize))-1), (bb.LL).y = (((bb.LL).y) >= 0 ? ((bb.LL).y)/((ssize)) : ((((bb.LL).y)+1)/((ssize)))-1)); +UNSUPPORTED("f33jy5tuo13bi4db8gwf2ilvy"); // ((bb.UR).x = (((bb.UR).x) >= 0 ? ((bb.UR).x)/(ssize) : ((((bb.UR).x)+1)/(ssize))-1), (bb.UR).y = (((bb.UR).y) >= 0 ? ((bb.UR).y)/((ssize)) : ((((bb.UR).y)+1)/((ssize)))-1)); +UNSUPPORTED("2fzfb48cw1tpgnx1fenamdt17"); // for (x = bb.LL.x; x <= bb.UR.x; x++) +UNSUPPORTED("dw8r9tjg3wg1jpgi9dg0ordai"); // for (y = bb.LL.y; y <= bb.UR.y; y++) +UNSUPPORTED("9fsyndaeb3wa4vnzkwju02aa6"); // addPS(ps, x, y); +UNSUPPORTED("b9ww7g26bsulxmdli1uykqg48"); // /* note which nodes are in clusters */ +UNSUPPORTED("78m4mkxem2uguubk1gpgsx6oc"); // for (n = agfstnode(subg); n; n = agnxtnode(subg, n)) +UNSUPPORTED("8uh55vusbiw7a90rj8jzyf76o"); // ND_clust(n) = subg; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("ehh6v9228lmsahzxxt4e6a0f9"); // /* now do remaining nodes and edges */ +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("6kr9j6zxr0o4iy7nnp40lvuvz"); // ptf = coord(n); +UNSUPPORTED("75lvkqsq23pobdcg6bmqa6mt9"); // PF2P(ptf, pt); +UNSUPPORTED("4rskihc5j4vz55z4tvwua5wpa"); // ((pt).x += dx, (pt).y += dy); +UNSUPPORTED("1pf6jaggdcnmdld5nu4v22mh9"); // if (!ND_clust(n)) { /* n is not in a top-level cluster */ +UNSUPPORTED("2hsx1r535mu25g5wpz8r66dbw"); // s2.x = margin + ND_xsize(n) / 2; +UNSUPPORTED("dpwfob5uc018fjpxki2nqa0si"); // s2.y = margin + ND_ysize(n) / 2; +UNSUPPORTED("d21twu3noz0h6l4k80bk03bfj"); // LL = sub_point(pt, s2); +UNSUPPORTED("pje1a01729779s85awuaqnan"); // UR = add_point(pt, s2); +UNSUPPORTED("60bthwtp8xgwr83vnyczt23xz"); // ((LL).x = (((LL).x) >= 0 ? ((LL).x)/(ssize) : ((((LL).x)+1)/(ssize))-1), (LL).y = (((LL).y) >= 0 ? ((LL).y)/((ssize)) : ((((LL).y)+1)/((ssize)))-1)); +UNSUPPORTED("einuv6rwbjqts3wnufwpslxlv"); // ((UR).x = (((UR).x) >= 0 ? ((UR).x)/(ssize) : ((((UR).x)+1)/(ssize))-1), (UR).y = (((UR).y) >= 0 ? ((UR).y)/((ssize)) : ((((UR).y)+1)/((ssize)))-1)); +UNSUPPORTED("83q0u30721zb0pgciso7ziyt8"); // for (x = LL.x; x <= UR.x; x++) +UNSUPPORTED("8c9342p5vvoot1zdjdtqlz2m9"); // for (y = LL.y; y <= UR.y; y++) +UNSUPPORTED("9fsyndaeb3wa4vnzkwju02aa6"); // addPS(ps, x, y); +UNSUPPORTED("dxoo8z7t9s82hnv32b8inj5fl"); // ((pt).x = (((pt).x) >= 0 ? ((pt).x)/(ssize) : ((((pt).x)+1)/(ssize))-1), (pt).y = (((pt).y) >= 0 ? ((pt).y)/((ssize)) : ((((pt).y)+1)/((ssize)))-1)); +UNSUPPORTED("av9pal9kng6v9bj1n1r76p890"); // for (e = agfstout(eg, n); e; e = agnxtout(eg, e)) { +UNSUPPORTED("3244vgtt0iocuk7pgdpymweq8"); // fillEdge(e, pt, ps, dx, dy, ssize, doSplines); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else { +UNSUPPORTED("dxoo8z7t9s82hnv32b8inj5fl"); // ((pt).x = (((pt).x) >= 0 ? ((pt).x)/(ssize) : ((((pt).x)+1)/(ssize))-1), (pt).y = (((pt).y) >= 0 ? ((pt).y)/((ssize)) : ((((pt).y)+1)/((ssize)))-1)); +UNSUPPORTED("av9pal9kng6v9bj1n1r76p890"); // for (e = agfstout(eg, n); e; e = agnxtout(eg, e)) { +UNSUPPORTED("ea4ls3030vg98zyoy7palapff"); // if (ND_clust(n) == ND_clust(aghead(e))) +UNSUPPORTED("91ilj0e8yph90t7k4ijuq5rb0"); // continue; +UNSUPPORTED("3244vgtt0iocuk7pgdpymweq8"); // fillEdge(e, pt, ps, dx, dy, ssize, doSplines); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("33gzyqd0dti267fbnuc393vqf"); // /* restore the alg data */ +UNSUPPORTED("1rckxjxqzxb846omrtt9yuxw3"); // for (i = 0, n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("7d40zxbnht9hibe4reayjt3ab"); // ND_alg(n)= alg[i++]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1avb9rstkf5v05swj5oavmbsx"); // free(alg); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("6kr9j6zxr0o4iy7nnp40lvuvz"); // ptf = coord(n); +UNSUPPORTED("75lvkqsq23pobdcg6bmqa6mt9"); // PF2P(ptf, pt); +UNSUPPORTED("4rskihc5j4vz55z4tvwua5wpa"); // ((pt).x += dx, (pt).y += dy); +UNSUPPORTED("32wulfgkqo1gdziiuynkzohma"); // s2.x = margin + ND_xsize(n) / 2; +UNSUPPORTED("asa04lxhwek7h53q45xwt9eo3"); // s2.y = margin + ND_ysize(n) / 2; +UNSUPPORTED("e4pwp7ppfey2ur2rzi0bnbarb"); // LL = sub_point(pt, s2); +UNSUPPORTED("dtfkzedesg45sgmdx85bqajb"); // UR = add_point(pt, s2); +UNSUPPORTED("2lukx7z9l672b9an4yd3kimpc"); // ((LL).x = (((LL).x) >= 0 ? ((LL).x)/(ssize) : ((((LL).x)+1)/(ssize))-1), (LL).y = (((LL).y) >= 0 ? ((LL).y)/((ssize)) : ((((LL).y)+1)/((ssize)))-1)); +UNSUPPORTED("1rt3uhmbxplvrk1o7obv4z3er"); // ((UR).x = (((UR).x) >= 0 ? ((UR).x)/(ssize) : ((((UR).x)+1)/(ssize))-1), (UR).y = (((UR).y) >= 0 ? ((UR).y)/((ssize)) : ((((UR).y)+1)/((ssize)))-1)); +UNSUPPORTED("dx18nl37frf8sg26xij552ejz"); // for (x = LL.x; x <= UR.x; x++) +UNSUPPORTED("6a90v0hbdo93le7neim40no3u"); // for (y = LL.y; y <= UR.y; y++) +UNSUPPORTED("dn4dbpnefy79i1g03hfsakcno"); // addPS(ps, x, y); +UNSUPPORTED("8hl3q69p8aqetblqadqf2uhkf"); // ((pt).x = (((pt).x) >= 0 ? ((pt).x)/(ssize) : ((((pt).x)+1)/(ssize))-1), (pt).y = (((pt).y) >= 0 ? ((pt).y)/((ssize)) : ((((pt).y)+1)/((ssize)))-1)); +UNSUPPORTED("7hqutkde2o0fy2g0xv1yitxjf"); // for (e = agfstout(eg, n); e; e = agnxtout(eg, e)) { +UNSUPPORTED("6zc0jmxujx99ljtqkmiydrjzq"); // fillEdge(e, pt, ps, dx, dy, ssize, doSplines); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("b6965k7cvxgazo4d1x1gpicax"); // info->cells = pointsOf(ps); +UNSUPPORTED("79rp86itd9b91tc0db54220fr"); // info->nc = sizeOf(ps); +UNSUPPORTED("es3gh0zqwlw0iiolk6x45vege"); // W = ((int)ceil((GD_bb(g).UR.x - GD_bb(g).LL.x + 2 * margin)/(ssize))); +UNSUPPORTED("bfr7ygy7lkfhss45a84thsa7s"); // H = ((int)ceil((GD_bb(g).UR.y - GD_bb(g).LL.y + 2 * margin)/(ssize))); +UNSUPPORTED("2w04og11wkyoe6e59x489rdlp"); // info->perim = W + H; +UNSUPPORTED("3kxq91b30qey91r4hkc9jrb9n"); // if (Verbose > 2) { +UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i; +UNSUPPORTED("f23g1eoeiffc45ucsecqxqkap"); // fprintf(stderr, "%s no. cells %d W %d H %d\n", +UNSUPPORTED("dhnvei7zsgifid5vebovzl15"); // agnameof(g), info->nc, W, H); +UNSUPPORTED("5raufl639beqv87bsfap22ar5"); // for (i = 0; i < info->nc; i++) +UNSUPPORTED("36wdram8nco5bacym97n1egc0"); // fprintf(stderr, " %d %d cell\n", info->cells[i].x, +UNSUPPORTED("606tqxapdsuzdhl2ssic0tz2v"); // info->cells[i].y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dg5ijmmysdxc2qm5j58u0zr8i"); // freePS(ps); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c9qfbamaiq4liwngpzcw4g15e +// static int fits(int x, int y, ginfo * info, PointSet * ps, point * place, int step, boxf* bbs) +public static Object fits(Object... arg) { +UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int +UNSUPPORTED("1qf35tpyffbtwwrvw009al0jw"); // fits(int x, int y, ginfo * info, PointSet * ps, point * place, int step, boxf* bbs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7s7b72q8pqs2vwdmytpwqd8fw"); // point *cells = info->cells; +UNSUPPORTED("dx19rog6lno8k3o89p0yw80de"); // int n = info->nc; +UNSUPPORTED("8w8wc32jqtifc9dhh8tzlcnzx"); // point cell; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("bs4odh29a6rnkbmhk59sanyar"); // point LL; +UNSUPPORTED("1vi49g48u2rc9v88yhabta0yw"); // for (i = 0; i < n; i++) { +UNSUPPORTED("ct2td16327xzczczmc9cxbxhr"); // cell = *cells; +UNSUPPORTED("8cjpqypsv5o9zwngain8itc5l"); // cell.x += x; +UNSUPPORTED("8yup3gihmsdumxy94c06s7514"); // cell.y += y; +UNSUPPORTED("qak41spsdwyya6gwwbgwkl53"); // if (inPS(ps, cell)) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("cbdyrzw9tiul7z5wurhto17q"); // cells++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2bp5zif4pew12zbwc252fzewz"); // PF2P(bbs[info->index].LL, LL); +UNSUPPORTED("d9jkxf05nyf0mf7eh3mig9p6"); // place->x = step * x - LL.x; +UNSUPPORTED("ciocs0be2oq5sze7g0mgy1k3c"); // place->y = step * y - LL.y; +UNSUPPORTED("1eqiy1kl714gqpoigzeqcvf5p"); // cells = info->cells; +UNSUPPORTED("1vi49g48u2rc9v88yhabta0yw"); // for (i = 0; i < n; i++) { +UNSUPPORTED("ct2td16327xzczczmc9cxbxhr"); // cell = *cells; +UNSUPPORTED("8cjpqypsv5o9zwngain8itc5l"); // cell.x += x; +UNSUPPORTED("8yup3gihmsdumxy94c06s7514"); // cell.y += y; +UNSUPPORTED("g4rk5u461kggq0l6ilauwlo4"); // insertPS(ps, cell); +UNSUPPORTED("cbdyrzw9tiul7z5wurhto17q"); // cells++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("41xjj6amd58fjieqo5xy29iwq"); // if (Verbose >= 2) +UNSUPPORTED("69kux3f6h23w09bw3rza60lq8"); // fprintf(stderr, "cc (%d cells) at (%d,%d) (%d,%d)\n", n, x, y, +UNSUPPORTED("5aew9usp1puf2vjfyvkt8ki4u"); // place->x, place->y); +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3bievtf2w4iqqz5qhvvye4imw +// static void placeFixed(ginfo * info, PointSet * ps, point * place, point center) +public static Object placeFixed(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("5u8hxdr88fztn78otn0zptwfo"); // placeFixed(ginfo * info, PointSet * ps, point * place, point center) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7s7b72q8pqs2vwdmytpwqd8fw"); // point *cells = info->cells; +UNSUPPORTED("dx19rog6lno8k3o89p0yw80de"); // int n = info->nc; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("dxwnlmthaq0wgr96pkmv2fk9e"); // place->x = -center.x; +UNSUPPORTED("6btj6uln4as29swn0gnfjlfrb"); // place->y = -center.y; +UNSUPPORTED("1vi49g48u2rc9v88yhabta0yw"); // for (i = 0; i < n; i++) { +UNSUPPORTED("chepmmzu07rgo2s6lhxc1yust"); // insertPS(ps, *cells++); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("41xjj6amd58fjieqo5xy29iwq"); // if (Verbose >= 2) +UNSUPPORTED("efy6uprafzlbzcuuea0iywmn"); // fprintf(stderr, "cc (%d cells) at (%d,%d)\n", n, place->x, +UNSUPPORTED("erkjyjoclu003wz9pn5id7r1n"); // place->y); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6ly0zu2bl9e2z9zb6tgiis6ji +// static void placeGraph(int i, ginfo * info, PointSet * ps, point * place, int step, int margin, boxf* bbs) +public static Object placeGraph(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("bomsrpn26g609cfz6rxujk3bu"); // placeGraph(int i, ginfo * info, PointSet * ps, point * place, int step, +UNSUPPORTED("bqojgt4ai0dr1qe25n6dgk8zp"); // int margin, boxf* bbs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7ksbgqgqrh7y32ijnkxl8zaw0"); // int x, y; +UNSUPPORTED("d9cafq96lxhglzixa87lnoi5j"); // int W, H; +UNSUPPORTED("90urniwcsawwori7426tta0kx"); // int bnd; +UNSUPPORTED("3cvtov5t3e3nw7jf8qx7h8eeo"); // boxf bb = bbs[info->index]; +UNSUPPORTED("bpwdzzlwgsm5lqfqgzplsw92a"); // if (i == 0) { +UNSUPPORTED("3zg9yd27ewzn95seu5sp3bxw7"); // W = ((int)ceil((bb.UR.x - bb.LL.x + 2 * margin)/(step))); +UNSUPPORTED("emdieik6twlh1vjo5ywsbcdaz"); // H = ((int)ceil((bb.UR.y - bb.LL.y + 2 * margin)/(step))); +UNSUPPORTED("65t43oobc63x9wvv9o6muhprh"); // if (fits(-W / 2, -H / 2, info, ps, place, step, bbs)) +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("18spugm2e70i89b481k3i5w70"); // if (fits(0, 0, info, ps, place, step, bbs)) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("jx7bqatqf7k5p5w0ci42dfd8"); // W = ceil(bb.UR.x - bb.LL.x); +UNSUPPORTED("1sc44fow0xifkubpnp87bjwp"); // H = ceil(bb.UR.y - bb.LL.y); +UNSUPPORTED("8wngkvmkilwdbxat9rddy9qv6"); // if (W >= H) { +UNSUPPORTED("1xe0f3svmp0ieofq7s2ss9z2n"); // for (bnd = 1;; bnd++) { +UNSUPPORTED("9i002a0gwbjlfbzmkcc26n16h"); // x = 0; +UNSUPPORTED("bbyf4zi7pju6lcgspmut3qygt"); // y = -bnd; +UNSUPPORTED("dhlxiqgb2o6a1bomoafek4b66"); // for (; x < bnd; x++) +UNSUPPORTED("c80k1vihrjb8lsuc6moaq5bh3"); // if (fits(x, y, info, ps, place, step, bbs)) +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("eyxe9lc00uz4eqb1uii15fjc1"); // for (; y < bnd; y++) +UNSUPPORTED("c80k1vihrjb8lsuc6moaq5bh3"); // if (fits(x, y, info, ps, place, step, bbs)) +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("9s5n7ukau4s2kpxp4szrf537q"); // for (; x > -bnd; x--) +UNSUPPORTED("c80k1vihrjb8lsuc6moaq5bh3"); // if (fits(x, y, info, ps, place, step, bbs)) +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("2p7aqe0xpy2yshac8hs4h8boz"); // for (; y > -bnd; y--) +UNSUPPORTED("c80k1vihrjb8lsuc6moaq5bh3"); // if (fits(x, y, info, ps, place, step, bbs)) +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("7zfcwps71uh29bw8vxk0wu5r6"); // for (; x < 0; x++) +UNSUPPORTED("c80k1vihrjb8lsuc6moaq5bh3"); // if (fits(x, y, info, ps, place, step, bbs)) +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("1xe0f3svmp0ieofq7s2ss9z2n"); // for (bnd = 1;; bnd++) { +UNSUPPORTED("3suauipkdshia74hhot2qydd6"); // y = 0; +UNSUPPORTED("13guhblt4ee02wp7skslgweux"); // x = -bnd; +UNSUPPORTED("2p7aqe0xpy2yshac8hs4h8boz"); // for (; y > -bnd; y--) +UNSUPPORTED("c80k1vihrjb8lsuc6moaq5bh3"); // if (fits(x, y, info, ps, place, step, bbs)) +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("dhlxiqgb2o6a1bomoafek4b66"); // for (; x < bnd; x++) +UNSUPPORTED("c80k1vihrjb8lsuc6moaq5bh3"); // if (fits(x, y, info, ps, place, step, bbs)) +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("eyxe9lc00uz4eqb1uii15fjc1"); // for (; y < bnd; y++) +UNSUPPORTED("c80k1vihrjb8lsuc6moaq5bh3"); // if (fits(x, y, info, ps, place, step, bbs)) +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("9s5n7ukau4s2kpxp4szrf537q"); // for (; x > -bnd; x--) +UNSUPPORTED("c80k1vihrjb8lsuc6moaq5bh3"); // if (fits(x, y, info, ps, place, step, bbs)) +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("ejcax560bkqv16vszo54w4m5d"); // for (; y > 0; y--) +UNSUPPORTED("c80k1vihrjb8lsuc6moaq5bh3"); // if (fits(x, y, info, ps, place, step, bbs)) +UNSUPPORTED("46hqh1l8dmimisi2nr03ntomn"); // return; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 cm57bp8kzzj7nhvnbzhzniya7 +// static packval_t* userVals + + + + +//3 dy401uvesqi5waa3p7s48m4ab +// static int ucmpf(const void *X, const void *Y) +public static Object ucmpf(Object... arg) { +UNSUPPORTED("137928stzn8zfxl3jxu2a3ai5"); // static int ucmpf(const void *X, const void *Y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1ku8n7iezmely5ex218gfmgnn"); // ainfo* x = *(ainfo **) X; +UNSUPPORTED("c5kqjorns3t5qoc40cc435dzl"); // ainfo* y = *(ainfo **) Y; +UNSUPPORTED("5tomfbuz1yassu35dwz1iq7vm"); // int dX = userVals[x->index]; +UNSUPPORTED("bpyepdnz0i98c1givec8sfzi8"); // int dY = userVals[y->index]; +UNSUPPORTED("esc8v2x5h3onwsqp6c6xno2wx"); // if (dX > dY) return 1; +UNSUPPORTED("7qerkoonjr1hepr83sy6pv0tv"); // else if (dX < dY) return -1; +UNSUPPORTED("895k5gbyc2kla939upm8m5u76"); // else return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6x4xkvohgtocih0ggo5pnszne +// static int acmpf(const void *X, const void *Y) +public static Object acmpf(Object... arg) { +UNSUPPORTED("423xzl59p1su4ak69hnavsj3y"); // static int acmpf(const void *X, const void *Y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1ku8n7iezmely5ex218gfmgnn"); // ainfo* x = *(ainfo **) X; +UNSUPPORTED("c5kqjorns3t5qoc40cc435dzl"); // ainfo* y = *(ainfo **) Y; +UNSUPPORTED("8gzrdc9r316hn5bgbdj9iwld"); // double dX = x->height + x->width; +UNSUPPORTED("acl6jabv3oppesl52kwesjisc"); // double dY = y->height + y->width; +UNSUPPORTED("3ydx317qb6esfml32gmrn8d2"); // if (dX < dY) return 1; +UNSUPPORTED("6dxscssmk09iu34elvy825a17"); // else if (dX > dY) return -1; +UNSUPPORTED("895k5gbyc2kla939upm8m5u76"); // else return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1ri9de5rw5soigxidz94knl59 +// static point * arrayRects (int ng, boxf* gs, pack_info* pinfo) +public static Object arrayRects(Object... arg) { +UNSUPPORTED("7mjw19ag4ln47wi0vuem3rdo7"); // static point * +UNSUPPORTED("7i2605a8yy8rvl2sjqdyq0zkr"); // arrayRects (int ng, boxf* gs, pack_info* pinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("587clam8w31px41vh3zl1x5zz"); // int nr = 0, nc; +UNSUPPORTED("3uj2h26d8pqkuu2k0mjvkeol9"); // int r, c; +UNSUPPORTED("exshbiefqo5bvtelq35q1uihg"); // ainfo *info; +UNSUPPORTED("wyaib9x4tjhrx2m1ezfsaukn"); // ainfo *ip; +UNSUPPORTED("2s7rlgsp3tf6744uvlbowf61l"); // ainfo **sinfo; +UNSUPPORTED("3dy5gn4dyvwvrrpcjcltwo1or"); // double* widths; +UNSUPPORTED("c0nhg35w7lcgf18f246eg5tsw"); // double* heights; +UNSUPPORTED("4d9aph59v9jbee7xholivf5zp"); // double v, wd, ht; +UNSUPPORTED("7843lpndabgsr9cdbfkcywvvx"); // point* places = (point*)zmalloc((ng)*sizeof(point)); +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("7l9fl3dxxtjbfy8hgqxikcdlp"); // int sz, rowMajor; +UNSUPPORTED("83ixjypz1k5iieg2apicsmpgn"); // /* set up no. of rows and columns */ +UNSUPPORTED("c1codecudzu0sc5eeyf0k3shl"); // sz = pinfo->sz; +UNSUPPORTED("368ad1d7qg13ji33rpsspgt8n"); // if (pinfo->flags & (1 << 0)) { +UNSUPPORTED("9nsjbn4fps3cxesy71lw4otlx"); // rowMajor = 0; +UNSUPPORTED("6r33xzmrfhkea13cb2uq9to3w"); // if (sz > 0) { +UNSUPPORTED("t30y3kxgl5xg1b0x1pvhso1i"); // nr = sz; +UNSUPPORTED("6ifv906e9hfiqnj8h4zuwcj4y"); // nc = (ng + (nr-1))/nr; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("cio9a5vmyx6df3sfnalfboiuf"); // nr = ceil(sqrt(ng)); +UNSUPPORTED("6ifv906e9hfiqnj8h4zuwcj4y"); // nc = (ng + (nr-1))/nr; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("ctpc0t0nilg3t9gj01k4ywsj3"); // rowMajor = 1; +UNSUPPORTED("6r33xzmrfhkea13cb2uq9to3w"); // if (sz > 0) { +UNSUPPORTED("6errm4a85tsehl607eqelczds"); // nc = sz; +UNSUPPORTED("1x339pl43qiukqwjve0wxt28e"); // nr = (ng + (nc-1))/nc; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("364szoyjdpowhykehht3akq3e"); // nc = ceil(sqrt(ng)); +UNSUPPORTED("1x339pl43qiukqwjve0wxt28e"); // nr = (ng + (nc-1))/nc; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose) +UNSUPPORTED("3pdy7z56ruqq4oyacr883mikq"); // fprintf (stderr, "array packing: %s %d rows %d columns\n", (rowMajor?"row major":"column major"), nr, nc); +UNSUPPORTED("6043fy5yx6lbdsxu5yn3brmal"); // widths = (double*)zmalloc((nc+1)*sizeof(double)); +UNSUPPORTED("a1b2xc5h9ne6kbzuy0nkuwvyo"); // heights = (double*)zmalloc((nr+1)*sizeof(double)); +UNSUPPORTED("9aw3rarlnxmlwhap0h7473k7u"); // ip = info = (ainfo*)zmalloc((ng)*sizeof(ainfo)); +UNSUPPORTED("5rngkhxlli0ca2dadcc2l90yc"); // for (i = 0; i < ng; i++, ip++) { +UNSUPPORTED("ay7zkx9vy6thctuz1zc6uwgp"); // bb = gs[i]; +UNSUPPORTED("6u6ndmrhwricwao2uxni5h1k0"); // ip->width = bb.UR.x - bb.LL.x + pinfo->margin; +UNSUPPORTED("e97e7wvrktg5tvh7jgix3rh4n"); // ip->height = bb.UR.y - bb.LL.y + pinfo->margin; +UNSUPPORTED("c1vy7jp6gj45js1vpscqrdow5"); // ip->index = i; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cj72vx5oyj2o2q2m7645spujf"); // sinfo = (ainfo**)zmalloc((ng)*sizeof(ainfo*)); +UNSUPPORTED("7zun8aoc3cgzj5s89wluw8xq4"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("9mn44smuwqqa7634ytys2no53"); // sinfo[i] = info + i; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("12fyz4qnl5zp3xwitz3v50nei"); // if (pinfo->vals) { +UNSUPPORTED("60usk332i3h20n9in7ul42urp"); // userVals = pinfo->vals; +UNSUPPORTED("zri192zm0qymulo1qj64bkk4"); // qsort(sinfo, ng, sizeof(ainfo *), ucmpf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("elre2mkk0b66ystun7ksceacd"); // else if (!(pinfo->flags & (1 << 6))) { +UNSUPPORTED("46wm7t71y606fg0p1pmnrotxs"); // qsort(sinfo, ng, sizeof(ainfo *), acmpf); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bh1a6itzd1t536vncxeg55kws"); // /* compute column widths and row heights */ +UNSUPPORTED("a29uwx3mv4g7tkw0a7nld91n6"); // r = c = 0; +UNSUPPORTED("5rngkhxlli0ca2dadcc2l90yc"); // for (i = 0; i < ng; i++, ip++) { +UNSUPPORTED("9pextrq1h4wbpvek3nn5hpdj1"); // ip = sinfo[i]; +UNSUPPORTED("2m8hk2qls872rs7vknlc6s0lx"); // widths[c] = MAX(widths[c],ip->width); +UNSUPPORTED("e6t8bv0nuykk21ia3zd431xfa"); // heights[r] = MAX(heights[r],ip->height); +UNSUPPORTED("2x8y0mx5s4y94qc2l938923p3"); // if (rowMajor){ c++; if (c == nc) { c = 0; r++; } } else { r++; if (r == nr) { r = 0; c++; } }; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("35agl3q9fx549xwrbpsl2d4us"); // /* convert widths and heights to positions */ +UNSUPPORTED("2xhvo47ul8yuzrfw9qt8dw0ps"); // wd = 0; +UNSUPPORTED("b19j342j5puv71h95o4ipftcy"); // for (i = 0; i <= nc; i++) { +UNSUPPORTED("cn91vt3tkx1q0hk0v0efsy0u5"); // v = widths[i]; +UNSUPPORTED("9rsjnuoiq6k71cnjchxzdi4b2"); // widths[i] = wd; +UNSUPPORTED("8uj5r8kz22am852pbxn5xbj2o"); // wd += v; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("28dk2342xmi4riersjpcgji1t"); // ht = 0; +UNSUPPORTED("v2352s1mp3wons7njjjynrxt"); // for (i = nr; 0 < i; i--) { +UNSUPPORTED("6ua786jl1gs84859xekg6b8fg"); // v = heights[i-1]; +UNSUPPORTED("bazhlkhnh5k7eheis0ez0n9vb"); // heights[i] = ht; +UNSUPPORTED("bvofkv7v5wfgk9cj4wzfaib3y"); // ht += v; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9rbcr484ikmoafnug3xnaxs32"); // heights[0] = ht; +UNSUPPORTED("ddygazuu5ir5m2y5nmnsrajqx"); // /* position rects */ +UNSUPPORTED("a29uwx3mv4g7tkw0a7nld91n6"); // r = c = 0; +UNSUPPORTED("5rngkhxlli0ca2dadcc2l90yc"); // for (i = 0; i < ng; i++, ip++) { +UNSUPPORTED("drn8u5l7wlzkbovfo92png2jy"); // int idx; +UNSUPPORTED("9pextrq1h4wbpvek3nn5hpdj1"); // ip = sinfo[i]; +UNSUPPORTED("2ps143essu8ajs0kj531wnief"); // idx = ip->index; +UNSUPPORTED("3k2y6x5t2zzgaukk772pdwx6f"); // bb = gs[idx]; +UNSUPPORTED("81ldqtnpthu2abqyry4z6ym8m"); // if (pinfo->flags & (1 << 2)) +UNSUPPORTED("13f3a690c3l0f4v06nrwmimi4"); // places[idx].x = widths[c]; +UNSUPPORTED("8eg2gw7wqr3mql161981r68br"); // else if (pinfo->flags & (1 << 3)) +UNSUPPORTED("e3iwxanyszyzq23zx6vtonrj8"); // places[idx].x = widths[c+1] - (bb.UR.x - bb.LL.x); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("67vni7zjcybymkjnpjnavoflk"); // places[idx].x = (widths[c] + widths[c+1] - bb.UR.x - bb.LL.x)/2.0; +UNSUPPORTED("8dcmf759vr0nvbyid59jtzauy"); // if (pinfo->flags & (1 << 4)) +UNSUPPORTED("24esxiop1grjauhaq6g2839fx"); // places[idx].y = heights[r] - (bb.UR.y - bb.LL.y); +UNSUPPORTED("2dch1dl8cgtov5959f5m06bwn"); // else if (pinfo->flags & (1 << 5)) +UNSUPPORTED("4t5x1tjwncmgjvqii9uimq4b1"); // places[idx].y = heights[r+1]; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("djge91fby18vnmw35p7pnh54e"); // places[idx].y = (heights[r] + heights[r+1] - bb.UR.y - bb.LL.y)/2.0; +UNSUPPORTED("2x8y0mx5s4y94qc2l938923p3"); // if (rowMajor){ c++; if (c == nc) { c = 0; r++; } } else { r++; if (r == nr) { r = 0; c++; } }; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2t9jewjat2jsi4mczos1h2k63"); // free (info); +UNSUPPORTED("6m428qwh53clq0b13nr60dt5t"); // free (sinfo); +UNSUPPORTED("srea4nhmmob1m0yxi5gapwxa"); // free (widths); +UNSUPPORTED("aej4g6wixnif5navqnu0z5d02"); // free (heights); +UNSUPPORTED("4pw9nikwh26us27xquq8gxeom"); // return places; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2irl4ooaj6ar2weyzs1jt6vnj +// static point* polyRects(int ng, boxf* gs, pack_info * pinfo) +public static Object polyRects(Object... arg) { +UNSUPPORTED("ck2vnuu91etfn4os7sqednjdt"); // static point* +UNSUPPORTED("emdivhrzg1z379tgeonw1e2wn"); // polyRects(int ng, boxf* gs, pack_info * pinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("824stmaoi8w8lahubzh2aqmnt"); // int stepSize; +UNSUPPORTED("egeh7d2rftmojiwelzoch9qzs"); // ginfo *info; +UNSUPPORTED("cgpy9yq4nom59s6xdcks21z34"); // ginfo **sinfo; +UNSUPPORTED("d5zj0uiljdydjp99y2c8421tm"); // point *places; +UNSUPPORTED("vela488x5cw8iukv3b2rxxfg"); // Dict_t *ps; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("757l2o5nnleyj2fwon83lkwp4"); // point center; +UNSUPPORTED("4xciuabrdcqf4qlyxzw20rgoq"); // /* calculate grid size */ +UNSUPPORTED("2eg1bg6rzeyuwox4ji13hfsn3"); // stepSize = computeStep(ng, gs, pinfo->margin); +UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose) +UNSUPPORTED("9jvi53wte1pa00ysz1tyoirwu"); // fprintf(stderr, "step size = %d\n", stepSize); +UNSUPPORTED("4uchvv7hqly12y7in635yrzk2"); // if (stepSize <= 0) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("ai9xhwyay6jsf18f9an9wiqxh"); // /* generate polyomino cover for the rectangles */ +UNSUPPORTED("cc7f8jeq787ivlq7z8w36zsxr"); // center.x = center.y = 0; +UNSUPPORTED("5ja8kdpayis0xlce0mars9kyq"); // info = (ginfo*)zmalloc((ng)*sizeof(ginfo)); +UNSUPPORTED("7zun8aoc3cgzj5s89wluw8xq4"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("dotsh6x7f3q84jxx9kanz0zxs"); // info[i].index = i; +UNSUPPORTED("50f4hs6qh3bifktl7ofmdluau"); // genBox(gs[i], info + i, stepSize, pinfo->margin, center, ""); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7hsq9ilfch3hi4eeqdzbo8hcz"); // /* sort */ +UNSUPPORTED("516yap1pdty58f0uvcm0ol21t"); // sinfo = (ginfo **)zmalloc((ng)*sizeof(ginfo *)); +UNSUPPORTED("7zun8aoc3cgzj5s89wluw8xq4"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("9mn44smuwqqa7634ytys2no53"); // sinfo[i] = info + i; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("aht3on8lvvmmuavandpu3mrqf"); // qsort(sinfo, ng, sizeof(ginfo *), cmpf); +UNSUPPORTED("6udv07xykmb0e2pdyqurnc9p4"); // ps = newPS(); +UNSUPPORTED("1lrlt4okvwo1r2jn12curx4a4"); // places = (point*)zmalloc((ng)*sizeof(point)); +UNSUPPORTED("8ykrswirvj1kokawlp0qt20e"); // for (i = 0; i < ng; i++) +UNSUPPORTED("amjrgk4ewbgnlny99ltipn4rw"); // placeGraph(i, sinfo[i], ps, places + (sinfo[i]->index), +UNSUPPORTED("cdibq48a1vztjqwrav8lplm2l"); // stepSize, pinfo->margin, gs); +UNSUPPORTED("cz66ku8toq29n6o82kekmnlpy"); // free(sinfo); +UNSUPPORTED("8ykrswirvj1kokawlp0qt20e"); // for (i = 0; i < ng; i++) +UNSUPPORTED("87pbwy86umrgdjafr4sezm9n"); // free(info[i].cells); +UNSUPPORTED("3evfbda0xfi17zcdebhf34f0u"); // free(info); +UNSUPPORTED("dg5ijmmysdxc2qm5j58u0zr8i"); // freePS(ps); +UNSUPPORTED("9ez4vr7qufhjoyjfdx4btsya0"); // if (Verbose > 1) +UNSUPPORTED("8zex7y0yhzzbk09jno4q16t99"); // for (i = 0; i < ng; i++) +UNSUPPORTED("d35w6hrucxuabl0h4ezjaa3uc"); // fprintf(stderr, "pos[%d] %d %d\n", i, places[i].x, +UNSUPPORTED("a7cjk49c6ofhzhsgib8hilvhs"); // places[i].y); +UNSUPPORTED("4pw9nikwh26us27xquq8gxeom"); // return places; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1knslw9muqsgklyyji7ievnok +// static point* polyGraphs(int ng, Agraph_t ** gs, Agraph_t * root, pack_info * pinfo) +public static Object polyGraphs(Object... arg) { +UNSUPPORTED("ck2vnuu91etfn4os7sqednjdt"); // static point* +UNSUPPORTED("b0bfi4ppj9z49du0yf8jw51g5"); // polyGraphs(int ng, Agraph_t ** gs, Agraph_t * root, pack_info * pinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("824stmaoi8w8lahubzh2aqmnt"); // int stepSize; +UNSUPPORTED("egeh7d2rftmojiwelzoch9qzs"); // ginfo *info; +UNSUPPORTED("cgpy9yq4nom59s6xdcks21z34"); // ginfo **sinfo; +UNSUPPORTED("d5zj0uiljdydjp99y2c8421tm"); // point *places; +UNSUPPORTED("vela488x5cw8iukv3b2rxxfg"); // Dict_t *ps; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("g39u5n77k6uyq207nn2icvox"); // boolean *fixed = pinfo->fixed; +UNSUPPORTED("7o8gvve73xqzq084bw5qh7gcn"); // int fixed_cnt = 0; +UNSUPPORTED("w52lhq0cd0isq9ayfz50inrq"); // box bb, fixed_bb = { {0, 0}, {0, 0} }; +UNSUPPORTED("757l2o5nnleyj2fwon83lkwp4"); // point center; +UNSUPPORTED("7gi50jrfs9ke5a9wali0er15n"); // boxf* bbs; +UNSUPPORTED("3mtqlb2sgomhp5qec8wdsugsi"); // if (ng <= 0) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("djthf1vazs4za0so4hdnt5wj0"); // /* update bounding box info for each graph */ +UNSUPPORTED("5jm29bcxipf9ixrkoge4l6qm2"); // /* If fixed, compute bbox of fixed graphs */ +UNSUPPORTED("7zun8aoc3cgzj5s89wluw8xq4"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("8u7vr203farotwj0fftrag209"); // Agraph_t *g = gs[i]; +UNSUPPORTED("1pr9y3xbbgtpw0j2cdlmr5z50"); // compute_bb(g); +UNSUPPORTED("24swiauow6ik517gmj0sm5rfw"); // if (fixed && fixed[i]) { +UNSUPPORTED("97wxoa3jn3w53rreu435mpy74"); // BF2B(GD_bb(g), bb); +UNSUPPORTED("5lpwic2iylf55w56n041ro1x"); // if (fixed_cnt) { +UNSUPPORTED("9frrmjyww4wh93dyu5k98peb9"); // fixed_bb.LL.x = MIN(bb.LL.x, fixed_bb.LL.x); +UNSUPPORTED("e85tcd131giv33jrjja1olduw"); // fixed_bb.LL.y = MIN(bb.LL.y, fixed_bb.LL.y); +UNSUPPORTED("dj6e5qtw7vxwfyomq1k58hcsk"); // fixed_bb.UR.x = MAX(bb.UR.x, fixed_bb.UR.x); +UNSUPPORTED("b4wurhjcgswx703j06qz21n6l"); // fixed_bb.UR.y = MAX(bb.UR.y, fixed_bb.UR.y); +UNSUPPORTED("afk9bpom7x393euamnvwwkx6b"); // } else +UNSUPPORTED("2e612eixx1ofzkwvzqn2kwd76"); // fixed_bb = bb; +UNSUPPORTED("ny0y2ibeyhhufmet5xl3j048"); // fixed_cnt++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("29xfwsb3c8xg86f1k0dnyeo0w"); // if (Verbose > 2) { +UNSUPPORTED("cdzr4ncs6h15d0ih7ert3l5z3"); // fprintf(stderr, "bb[%s] %.5g %.5g %.5g %.5g\n", agnameof(g), +UNSUPPORTED("759r58p1rwwxhyxaj7ofczgfy"); // GD_bb(g).LL.x, GD_bb(g).LL.y, +UNSUPPORTED("btv2fogged3wlas7cotr1a3my"); // GD_bb(g).UR.x, GD_bb(g).UR.y); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4xciuabrdcqf4qlyxzw20rgoq"); // /* calculate grid size */ +UNSUPPORTED("1zfqthv6gt9dvwrk425hk65xk"); // bbs = (boxf*)gmalloc((ng)*sizeof(boxf)); +UNSUPPORTED("8ykrswirvj1kokawlp0qt20e"); // for (i = 0; i < ng; i++) +UNSUPPORTED("2bt80lu17wcugimh4ljj70zdp"); // bbs[i] = GD_bb(gs[i]); +UNSUPPORTED("5owrhafi21tpc0ktinz3o2f43"); // stepSize = computeStep(ng, bbs, pinfo->margin); +UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose) +UNSUPPORTED("9jvi53wte1pa00ysz1tyoirwu"); // fprintf(stderr, "step size = %d\n", stepSize); +UNSUPPORTED("4uchvv7hqly12y7in635yrzk2"); // if (stepSize <= 0) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("1alk6avw0u6hfvqo3xmul0jg6"); // /* generate polyomino cover for the graphs */ +UNSUPPORTED("84yhbc8186y40vqfeqxzxfrz6"); // if (fixed) { +UNSUPPORTED("5ueew992kcblg2bz1oerhmyqi"); // center.x = (fixed_bb.LL.x + fixed_bb.UR.x) / 2; +UNSUPPORTED("87nbiqt8xjmmkxfd2e4w4w7vr"); // center.y = (fixed_bb.LL.y + fixed_bb.UR.y) / 2; +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("e83bosc1hfovot0zgf1yquw6p"); // center.x = center.y = 0; +UNSUPPORTED("5ja8kdpayis0xlce0mars9kyq"); // info = (ginfo*)zmalloc((ng)*sizeof(ginfo)); +UNSUPPORTED("7zun8aoc3cgzj5s89wluw8xq4"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("8u7vr203farotwj0fftrag209"); // Agraph_t *g = gs[i]; +UNSUPPORTED("dotsh6x7f3q84jxx9kanz0zxs"); // info[i].index = i; +UNSUPPORTED("khn1not6v8q3llxivwzrif1a"); // if (pinfo->mode == l_graph) +UNSUPPORTED("ef0j485ay1qbdf8azewxc0pwi"); // genBox(GD_bb(g), info + i, stepSize, pinfo->margin, center, agnameof(g)); +UNSUPPORTED("bwshrbmzbgqbses1jh55297bx"); // else if (genPoly(root, gs[i], info + i, stepSize, pinfo, center)) { +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7hsq9ilfch3hi4eeqdzbo8hcz"); // /* sort */ +UNSUPPORTED("516yap1pdty58f0uvcm0ol21t"); // sinfo = (ginfo **)zmalloc((ng)*sizeof(ginfo *)); +UNSUPPORTED("7zun8aoc3cgzj5s89wluw8xq4"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("9mn44smuwqqa7634ytys2no53"); // sinfo[i] = info + i; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("aht3on8lvvmmuavandpu3mrqf"); // qsort(sinfo, ng, sizeof(ginfo *), cmpf); +UNSUPPORTED("6udv07xykmb0e2pdyqurnc9p4"); // ps = newPS(); +UNSUPPORTED("1lrlt4okvwo1r2jn12curx4a4"); // places = (point*)zmalloc((ng)*sizeof(point)); +UNSUPPORTED("84yhbc8186y40vqfeqxzxfrz6"); // if (fixed) { +UNSUPPORTED("3e0deh4u5tol3atbp956xif23"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("umfi6ok5pdkv9azybxeoslof"); // if (fixed[i]) +UNSUPPORTED("8wt6vr2q1holh0icpplq4zqec"); // placeFixed(sinfo[i], ps, places + (sinfo[i]->index), +UNSUPPORTED("deqjfvghqxur4bfoz3puk300n"); // center); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3e0deh4u5tol3atbp956xif23"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("74god7lqd61d25tmue88dqtbf"); // if (!fixed[i]) +UNSUPPORTED("czkvahaom618elf7saxx38r8p"); // placeGraph(i, sinfo[i], ps, places + (sinfo[i]->index), +UNSUPPORTED("i3cmxkksuk6am6ht9wvhbdgc"); // stepSize, pinfo->margin, bbs); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("8zex7y0yhzzbk09jno4q16t99"); // for (i = 0; i < ng; i++) +UNSUPPORTED("a532n3o5yemks8slunbp5py2i"); // placeGraph(i, sinfo[i], ps, places + (sinfo[i]->index), +UNSUPPORTED("dt17bemprdm748nimg2zjv0m0"); // stepSize, pinfo->margin, bbs); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cz66ku8toq29n6o82kekmnlpy"); // free(sinfo); +UNSUPPORTED("8ykrswirvj1kokawlp0qt20e"); // for (i = 0; i < ng; i++) +UNSUPPORTED("87pbwy86umrgdjafr4sezm9n"); // free(info[i].cells); +UNSUPPORTED("3evfbda0xfi17zcdebhf34f0u"); // free(info); +UNSUPPORTED("dg5ijmmysdxc2qm5j58u0zr8i"); // freePS(ps); +UNSUPPORTED("a3ilp870e8stntakfa9mhpq3s"); // free (bbs); +UNSUPPORTED("9ez4vr7qufhjoyjfdx4btsya0"); // if (Verbose > 1) +UNSUPPORTED("8zex7y0yhzzbk09jno4q16t99"); // for (i = 0; i < ng; i++) +UNSUPPORTED("d35w6hrucxuabl0h4ezjaa3uc"); // fprintf(stderr, "pos[%d] %d %d\n", i, places[i].x, +UNSUPPORTED("a7cjk49c6ofhzhsgib8hilvhs"); // places[i].y); +UNSUPPORTED("4pw9nikwh26us27xquq8gxeom"); // return places; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 al89yl8dh1jxwk08tyczwknn7 +// point *putGraphs(int ng, Agraph_t ** gs, Agraph_t * root, pack_info * pinfo) +public static Object putGraphs(Object... arg) { +UNSUPPORTED("2bmiezotvi7u8eu53600a4id7"); // point *putGraphs(int ng, Agraph_t ** gs, Agraph_t * root, +UNSUPPORTED("dnotj3yx4zh4izfbxl101921l"); // pack_info * pinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b9q08fv1def3y3mbkfcttoygi"); // int i, v; +UNSUPPORTED("7gi50jrfs9ke5a9wali0er15n"); // boxf* bbs; +UNSUPPORTED("c9h1fo1uvas6uw1a8qaapnln6"); // Agraph_t* g; +UNSUPPORTED("37y05h5xfo0t6oujuechff9od"); // point* pts; +UNSUPPORTED("yiuh599p05f2mpu2e3pesu2o"); // char* s; +UNSUPPORTED("10gh49wkm3r9433ve3ykoy8zd"); // if (ng <= 0) return NULL; +UNSUPPORTED("74z1gk7owd6s8rog374fsoz77"); // if (pinfo->mode <= l_graph) +UNSUPPORTED("3mqc3im4s572a4m1gq3luvraa"); // return polyGraphs (ng, gs, root, pinfo); +UNSUPPORTED("1zfqthv6gt9dvwrk425hk65xk"); // bbs = (boxf*)gmalloc((ng)*sizeof(boxf)); +UNSUPPORTED("7zun8aoc3cgzj5s89wluw8xq4"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("1o35elvmsbg14ylv3li4k555e"); // g = gs[i]; +UNSUPPORTED("1pr9y3xbbgtpw0j2cdlmr5z50"); // compute_bb(g); +UNSUPPORTED("38ehh0n0z7yr3ku3wax91eny9"); // bbs[i] = GD_bb(g); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8kmg7cdfeuqszcwxcz5y3c5td"); // if (pinfo->mode == l_array) { +UNSUPPORTED("7nb1jaoblp1yvgvo27aaud6s6"); // if (pinfo->flags & (1 << 1)) { +UNSUPPORTED("dbollhgp3oflycwtdbdbh9i88"); // pinfo->vals = (packval_t*)zmalloc((ng)*sizeof(packval_t)); +UNSUPPORTED("58nh8251ikin1r1ikujawgmvi"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("f0c6o7jozps86mqlhvb9n9d6s"); // s = agget (gs[i], "sortv"); +UNSUPPORTED("dor0p055w386zaz88qm97z87v"); // if (s && (sscanf (s, "%d", &v) > 0) && (v >= 0)) +UNSUPPORTED("14rvncot97v829zy8a8tp0zwz"); // pinfo->vals[i] = v; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1ptopw7nt3b3yr62pvaymgk9m"); // pts = arrayRects (ng, bbs, pinfo); +UNSUPPORTED("b93dvbn6t4y3hpjm8h8t94bxt"); // if (pinfo->flags & (1 << 1)) +UNSUPPORTED("2y3e1eszpxr131wfwuq7wc18i"); // free (pinfo->vals); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a3ilp870e8stntakfa9mhpq3s"); // free (bbs); +UNSUPPORTED("b7gk8q1reftzri269holggnig"); // return pts; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e73o8yamtvnffshrs9rm3lim0 +// point * putRects(int ng, boxf* bbs, pack_info* pinfo) +public static Object putRects(Object... arg) { +UNSUPPORTED("b2t3wt7lnrvb61t0hory0gh2h"); // point * +UNSUPPORTED("8fweyba26afb4b3vn251yp6u1"); // putRects(int ng, boxf* bbs, pack_info* pinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("10gh49wkm3r9433ve3ykoy8zd"); // if (ng <= 0) return NULL; +UNSUPPORTED("f2v1akrh6kotuwhh1shnn0cvk"); // if ((pinfo->mode == l_node) || (pinfo->mode == l_clust)) return NULL; +UNSUPPORTED("bvxb92ntr7lr5208ycn2rmmpa"); // if (pinfo->mode == l_graph) +UNSUPPORTED("790j7xshzs2a26qdpizm1dor3"); // return polyRects (ng, bbs, pinfo); +UNSUPPORTED("15zpqbwzhvrw6k4i293i6qm4o"); // else if (pinfo->mode == l_array) +UNSUPPORTED("defqlfr5ltykxr36gzynktwnd"); // return arrayRects (ng, bbs, pinfo); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("11hwqop4xebvtcskop4uhpp01"); // return NULL; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1snngl11fvf8fd7gvroyic9u6 +// int packRects(int ng, boxf* bbs, pack_info* pinfo) +public static Object packRects(Object... arg) { +UNSUPPORTED("7zkpme13g8rxxwloxvpvvnbcw"); // int +UNSUPPORTED("byuhbycc8aq8qmlje1kkikzes"); // packRects(int ng, boxf* bbs, pack_info* pinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("ca6brvq3h4u316zi41fa1e7nl"); // point *pp; +UNSUPPORTED("2lzsl1e035wt5epd1h8f4bn8m"); // boxf bb; +UNSUPPORTED("41nrdsugvfgw23s93g0dhizkn"); // point p; +UNSUPPORTED("4rnqckqjseeaveduaeddk5kly"); // if (ng < 0) return -1; +UNSUPPORTED("62vqifnah2fjfuxwj69bq3p1z"); // if (ng <= 1) return 0; +UNSUPPORTED("e86z2a3ujrvoqxb1e6rn7l4xh"); // pp = putRects(ng, bbs, pinfo); +UNSUPPORTED("5e2m9zqmerz2m76uyivjvvjnz"); // if (!pp) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("1hemhly8ts9l7caj22as9b5nv"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("cpgjovg5bttmcqygaaobc3a6l"); // bb = bbs[i]; +UNSUPPORTED("4v8yuwm5xgienbqxhd69pz5cc"); // p = pp[i]; +UNSUPPORTED("f3utitevgnfhjuotaq73baii9"); // bb.LL.x += p.x; +UNSUPPORTED("31znkfxiz3wa3ebxopvejt2eu"); // bb.UR.x += p.x; +UNSUPPORTED("c3ak9fudqw0ye4ls2y61ajfta"); // bb.LL.y += p.y; +UNSUPPORTED("djl8lmebqjuxhormrrnxryg2d"); // bb.UR.y += p.y; +UNSUPPORTED("ds6wyt4f0tketopteichqayg0"); // bbs[i] = bb; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7vph3omiu71ktck9w3uvcdp6q"); // free(pp); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eyiqyefdjlfh0t51u26x2zh5x +// static void shiftEdge(Agedge_t * e, int dx, int dy) +public static Object shiftEdge(Object... arg) { +UNSUPPORTED("9u5vr04c98yfoctnamlbuc2ag"); // static void shiftEdge(Agedge_t * e, int dx, int dy) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9e6bnowy6jfhnib5uev3scpsu"); // int j, k; +UNSUPPORTED("37thdceezsvepe7tlyfatrbcw"); // bezier bz; +UNSUPPORTED("88hfgnjbnnlyh1vmms1kwsrod"); // if (ED_label(e)) +UNSUPPORTED("4ktdw0hk8c5lnprxiqxxp8kpf"); // ((ED_label(e)->pos).x += dx, (ED_label(e)->pos).y += dy); +UNSUPPORTED("37decwf4jqk863lp048x1gcwk"); // if (ED_xlabel(e)) +UNSUPPORTED("8xzkzyz7cb3te6mkfkt3zlvvv"); // ((ED_xlabel(e)->pos).x += dx, (ED_xlabel(e)->pos).y += dy); +UNSUPPORTED("dc4h855lfazgpazdd3bsd3dle"); // if (ED_head_label(e)) +UNSUPPORTED("ekvchodhl5temnce8je23xtng"); // ((ED_head_label(e)->pos).x += dx, (ED_head_label(e)->pos).y += dy); +UNSUPPORTED("2nan67aki9dkzb14alqq58pk6"); // if (ED_tail_label(e)) +UNSUPPORTED("4humrtjlk95veottt9p8slpt3"); // ((ED_tail_label(e)->pos).x += dx, (ED_tail_label(e)->pos).y += dy); +UNSUPPORTED("tt8piuiel7igl12irv6488jd"); // if (ED_spl(e) == NULL) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("e9vow5lzqvgcxabgjj99yokjr"); // for (j = 0; j < ED_spl(e)->size; j++) { +UNSUPPORTED("8ni4zfvf78h93ucjuoqtuomjh"); // bz = ED_spl(e)->list[j]; +UNSUPPORTED("7h0wreqeq69tmfuymjgf6y30p"); // for (k = 0; k < bz.size; k++) +UNSUPPORTED("8p04wyfp1epw24aj3ooutcm9f"); // ((bz.list[k]).x += dx, (bz.list[k]).y += dy); +UNSUPPORTED("9u19ic8wst5bdydvzocx725dd"); // if (bz.sflag) +UNSUPPORTED("7drx2tftwhcon6o1unse2w8rs"); // ((ED_spl(e)->list[j].sp).x += dx, (ED_spl(e)->list[j].sp).y += dy); +UNSUPPORTED("3ps9lzlxh4tqc8zn14yrvcl4n"); // if (bz.eflag) +UNSUPPORTED("did8o6w576i3j4f1c8nqnwjpl"); // ((ED_spl(e)->list[j].ep).x += dx, (ED_spl(e)->list[j].ep).y += dy); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7xx1rik6wio4uaxsnuw7osy3u +// static void shiftGraph(Agraph_t * g, int dx, int dy) +public static Object shiftGraph(Object... arg) { +UNSUPPORTED("3rx9mi6118cqiy2pcuxsl4mgc"); // static void shiftGraph(Agraph_t * g, int dx, int dy) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8uujemixuhlf040icq3zsh7j8"); // graph_t *subg; +UNSUPPORTED("2eiur8hkm8tcazpq12w4ikbqo"); // boxf bb = GD_bb(g); +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("3pb1rp6yt77fdctds9bv6t2q4"); // bb = GD_bb(g); +UNSUPPORTED("8apkqrqdqqydv62uo6t2kih65"); // bb.LL.x += dx; +UNSUPPORTED("cxx7s1j7oanjj7qcgww51qzv"); // bb.UR.x += dx; +UNSUPPORTED("8i5b905t9fyewlfs3ptj5ts9i"); // bb.LL.y += dy; +UNSUPPORTED("bat733mf4if1fc1cc75wf3vdh"); // bb.UR.y += dy; +UNSUPPORTED("8pjanfm12ixxbeb7k86g3z5p4"); // GD_bb(g) = bb; +UNSUPPORTED("aplr7sm051i57jygcfj6gigoh"); // if (GD_label(g)) +UNSUPPORTED("3y0fbtz3yao1jomzv4uolrp00"); // ((GD_label(g)->pos).x += dx, (GD_label(g)->pos).y += dy); +UNSUPPORTED("7naa6f8pevjidfr7m41eli6xj"); // for (i = 1; i <= GD_n_cluster(g); i++) { +UNSUPPORTED("cpbcovu6u9jpbhniuwko58sge"); // subg = GD_clust(g)[i]; +UNSUPPORTED("2gsxiux9jv0jpf915foz63dgv"); // shiftGraph(subg, dx, dy); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e3319d41y02srtfpto31q37ty +// int shiftGraphs(int ng, Agraph_t ** gs, point * pp, Agraph_t * root, int doSplines) +public static Object shiftGraphs(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("e3b6ggtg7s8nlv7sbaoirghbw"); // shiftGraphs(int ng, Agraph_t ** gs, point * pp, Agraph_t * root, +UNSUPPORTED("9noyex54k0macq3k16r5ym7m7"); // int doSplines) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("bftz89757hgmx7ivuna8lc4z6"); // int dx, dy; +UNSUPPORTED("52jqyu9tdwfx6u9l7492mdvxw"); // double fx, fy; +UNSUPPORTED("41nrdsugvfgw23s93g0dhizkn"); // point p; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("4fddvn6emf9gppkxys6y69el2"); // Agraph_t *eg; +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("3mtqlb2sgomhp5qec8wdsugsi"); // if (ng <= 0) +UNSUPPORTED("bof722m66fo2c6qrziuzp1qrb"); // return abs(ng); +UNSUPPORTED("7zun8aoc3cgzj5s89wluw8xq4"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("1o35elvmsbg14ylv3li4k555e"); // g = gs[i]; +UNSUPPORTED("651v5s5braiusljmonry4n2gv"); // if (root) +UNSUPPORTED("64a6av0hcmo7owy9zqh1m0rf2"); // eg = root; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("9w2sfnbzooomlt0cy7lv4r651"); // eg = g; +UNSUPPORTED("4v8yuwm5xgienbqxhd69pz5cc"); // p = pp[i]; +UNSUPPORTED("ap6rzh2gz0cyv006wzje9vm64"); // dx = p.x; +UNSUPPORTED("ecigmad6hz1aki283absmrv4k"); // dy = p.y; +UNSUPPORTED("crjm7321nijj633qm2os1rffv"); // fx = ((dx)/(double)72); +UNSUPPORTED("9fof84axpoehtz8vm7e591gug"); // fy = ((dy)/(double)72); +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("emng3ci5q7cb4o56sokohkzxg"); // ND_pos(n)[0] += fx; +UNSUPPORTED("7hccr00zs6a1djjd96lnn6aka"); // ND_pos(n)[1] += fy; +UNSUPPORTED("9p2dkqvsj8qbvhoe67ls2u17p"); // ((ND_coord(n)).x += dx, (ND_coord(n)).y += dy); +UNSUPPORTED("9i39rsg8gc22jjd87bzbvdziv"); // if (ND_xlabel(n)) { +UNSUPPORTED("9hx48w0r43gelhjavye29okfv"); // ((ND_xlabel(n)->pos).x += dx, (ND_xlabel(n)->pos).y += dy); +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("3dcleparqyzm2ewv674fws8u9"); // if (doSplines) { +UNSUPPORTED("8menlqwqcb9c7ireb6sa8qo21"); // for (e = agfstout(eg, n); e; e = agnxtout(eg, e)) +UNSUPPORTED("l0qmhpy5cagstbj5hrkzk8rr"); // shiftEdge(e, dx, dy); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bk9jkveibpb3mrdqpv4po37sy"); // shiftGraph(g, dx, dy); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9db5t8nm89djo9ln21gm3yf8u +// int packGraphs(int ng, Agraph_t ** gs, Agraph_t * root, pack_info * info) +public static Object packGraphs(Object... arg) { +UNSUPPORTED("56vi2bsj4me6of6ownlhvsvwz"); // int packGraphs(int ng, Agraph_t ** gs, Agraph_t * root, pack_info * info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7p7i4cv4qt10ow22vl9znw72j"); // int ret; +UNSUPPORTED("56ocwkz3s6lgpumk8xidlqcc7"); // point *pp = putGraphs(ng, gs, root, info); +UNSUPPORTED("5e2m9zqmerz2m76uyivjvvjnz"); // if (!pp) +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("7qo1holf96smktjgs8l0gibpj"); // ret = shiftGraphs(ng, gs, pp, root, info->doSplines); +UNSUPPORTED("7vph3omiu71ktck9w3uvcdp6q"); // free(pp); +UNSUPPORTED("f3b7mj138albdr4lodyomke0z"); // return ret; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eeedpohq9tu61htldhskjnrqo +// int packSubgraphs(int ng, Agraph_t ** gs, Agraph_t * root, pack_info * info) +public static Object packSubgraphs(Object... arg) { +UNSUPPORTED("etrjsq5w49uo9jq5pzifohkqw"); // int +UNSUPPORTED("cu03rkfa1tn2levktk9f0kn72"); // packSubgraphs(int ng, Agraph_t ** gs, Agraph_t * root, pack_info * info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7p7i4cv4qt10ow22vl9znw72j"); // int ret; +UNSUPPORTED("60qkq3hoxtw8jjw7osm6gbvh9"); // ret = packGraphs(ng, gs, root, info); +UNSUPPORTED("4uiunytnyi2vmlytj49547oen"); // if (ret == 0) { +UNSUPPORTED("cb6qes2nvjr9djerw1rcq8w3j"); // int i, j; +UNSUPPORTED("58vfsgm37n0q8bcfczvgvut8m"); // boxf bb; +UNSUPPORTED("ak2n425v85g82xo9282myas7y"); // graph_t* g; +UNSUPPORTED("6rvedme286x3a6z4sema6be33"); // compute_bb(root); +UNSUPPORTED("b6i8aku7mgq1oktewocn2b8au"); // bb = GD_bb(root); +UNSUPPORTED("3e0deh4u5tol3atbp956xif23"); // for (i = 0; i < ng; i++) { +UNSUPPORTED("8awv02csdisyrr0puo3g7x7zo"); // g = gs[i]; +UNSUPPORTED("3pxtqjoekga8rbxndmr9eyk8t"); // for (j = 1; j <= GD_n_cluster(g); j++) { +UNSUPPORTED("15cmvttn1yf4brhtxlki7jqff"); // EXPANDBB(bb,GD_bb(GD_clust(g)[j])); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("e9bwlicnysgjem9pm2owophm3"); // GD_bb(root) = bb; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f3b7mj138albdr4lodyomke0z"); // return ret; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8rfd6spe19v1327cufpqvnqec +// int pack_graph(int ng, Agraph_t** gs, Agraph_t* root, boolean* fixed) +public static Object pack_graph(Object... arg) { +UNSUPPORTED("7zkpme13g8rxxwloxvpvvnbcw"); // int +UNSUPPORTED("dgtmyy97t6j1t4kpcjat3nnl1"); // pack_graph(int ng, Agraph_t** gs, Agraph_t* root, boolean* fixed) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7p7i4cv4qt10ow22vl9znw72j"); // int ret; +UNSUPPORTED("1uqyueaw3113nhl88qcfu7bzu"); // pack_info info; +UNSUPPORTED("9pq8hgklb5oc6tdvk45bgja03"); // getPackInfo(root, l_graph, 8, &info); +UNSUPPORTED("32h39ruk7pnxsjjwa8ptjg8re"); // info.doSplines = 1; +UNSUPPORTED("1my115b5f8fzfk0oafnabmxfj"); // info.fixed = fixed; +UNSUPPORTED("2bhwyiicw1zcnic4vjothzze3"); // ret = packSubgraphs(ng, gs, root, &info); +UNSUPPORTED("5nd36gtfbsaee4fp6jvef26g8"); // if (ret == 0) dotneato_postprocess (root); +UNSUPPORTED("f3b7mj138albdr4lodyomke0z"); // return ret; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5u1pdxxmfiu2hry342a4x7kh6 +// static char* chkFlags (char* p, pack_info* pinfo) +public static Object chkFlags(Object... arg) { +UNSUPPORTED("1yranxmu2maol02ulzd1ka1re"); // static char* +UNSUPPORTED("8hwjd3nd6s2uo8zndhppm3kvo"); // chkFlags (char* p, pack_info* pinfo) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b95pirj2cs9mytcz8lfgdzg8w"); // int c, more; +UNSUPPORTED("2uon126vetx4frre9rfj5kwo3"); // if (*p != '_') return p; +UNSUPPORTED("cdsfbjd0c8345i6xay73clz7w"); // p++; +UNSUPPORTED("6ecxobdci26ildbdmnvdlxcaq"); // more = 1; +UNSUPPORTED("69yg68y6v9aac3lfm1ph27y4p"); // while (more && (c = *p)) { +UNSUPPORTED("7rk995hpmaqbbasmi40mqg0yw"); // switch (c) { +UNSUPPORTED("7uv0u7m8t8vyjwy3v82ow51w3"); // case 'c' : +UNSUPPORTED("zpuzt82wipz2nkqsosee5ak2"); // pinfo->flags |= (1 << 0); +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dcwafq80cu9cfgjlh6mde3jl5"); // case 'i' : +UNSUPPORTED("93wkkv5r9w97t1opi2g578qdx"); // pinfo->flags |= (1 << 6); +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("8ef3noocjg099b2wm2at9fcfm"); // case 'u' : +UNSUPPORTED("5fat3lcknhnoy1piblquof76n"); // pinfo->flags |= (1 << 1); +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4gib6kzlsyq6li9hy7twvu1z2"); // case 't' : +UNSUPPORTED("3fkvofx77siau3tckaayyty9i"); // pinfo->flags |= (1 << 4); +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("f2k4zkd8o9triyu1ym1kmlyq3"); // case 'b' : +UNSUPPORTED("bexhnqh3hnmo2exnreo65qrn9"); // pinfo->flags |= (1 << 5); +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("3gnomrm4ne7tv5zoleucfclel"); // case 'l' : +UNSUPPORTED("50e0nwuj7xqbdvos1msb37ily"); // pinfo->flags |= (1 << 2); +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("aba8jswwne2ykziks3sfo201b"); // case 'r' : +UNSUPPORTED("izuljhdmym8vluo87hpk7kq8"); // pinfo->flags |= (1 << 3); +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5ujjs4gho9mjjupbibyqyplxp"); // default : +UNSUPPORTED("ak3tvcq0zczj4iaz1osxh5ruq"); // more = 0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("91xduilalb406jjyw2g1i07th"); // return p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f2iaacl82y04a7oguahy9oo6 +// static char* mode2Str (pack_mode m) +public static Object mode2Str(Object... arg) { +UNSUPPORTED("1yranxmu2maol02ulzd1ka1re"); // static char* +UNSUPPORTED("cbahd10pirq1ryicw6cbj8454"); // mode2Str (pack_mode m) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("c4zsjnmgv48k6r8sbrvwztb6n"); // switch (m) { +UNSUPPORTED("57a9puw02tf6kffzzki2yiejt"); // case l_clust: +UNSUPPORTED("eriuzmc5hmkj22dwkc1jyxn0f"); // s = "cluster"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9dmynvx8joldqskjnpn5m77ze"); // case l_node: +UNSUPPORTED("dm3a6gn1co2hl85txdr7kc7ux"); // s = "node"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dpfo62efj4ibm7vn73t9zwpcv"); // case l_graph: +UNSUPPORTED("1leprh5ff6gk2iz2teqzgpmz9"); // s = "graph"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9qrcli4a5yhl31kzvzyvb5iho"); // case l_array: +UNSUPPORTED("a8mkbpe7uwb8dmzrlu3hutdsm"); // s = "array"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8xvt26fzpofcs0qvk5cpwuynx"); // case l_aspect: +UNSUPPORTED("15jl19ngssxkg73ykfeez8dpd"); // s = "aspect"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1jswhiu2nci8p4mklivv8912o"); // case l_undef: +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("aufikv57oho66mjvuxi8sjjes"); // s = "undefined"; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dyb1n3lhbi0wnr9kvmu6onux9 +// pack_mode parsePackModeInfo(char* p, pack_mode dflt, pack_info* pinfo) +public static int parsePackModeInfo(CString p, int dflt, pack_info pinfo) { +ENTERING("dyb1n3lhbi0wnr9kvmu6onux9","parsePackModeInfo"); +try { + float v; + int i; + //assert (pinfo); + pinfo.setInt("flags", 0); + pinfo.setInt("mode", dflt); + pinfo.setInt("sz", 0); + pinfo.setPtr("vals", null); + if (p!=null && p.charAt(0)!='\0') { +UNSUPPORTED("2ybrtqq8efxouph8wjbrnowxz"); // switch (*p) { +UNSUPPORTED("2v5u3irq50r1n2ccuna0y09lk"); // case 'a': +UNSUPPORTED("4o68zbwd6291pxryyntjh2432"); // if ((!strncmp(p,"array",(sizeof("array")/sizeof(char) - 1)))) { +UNSUPPORTED("3cxht114gc0fn4wl8xjy515bv"); // pinfo->mode = l_array; +UNSUPPORTED("edkaa80od81ojkn7d4h0q1zbu"); // p += (sizeof("array")/sizeof(char) - 1); +UNSUPPORTED("106zhcf9a6frvafctbbgrbws3"); // p = chkFlags (p, pinfo); +UNSUPPORTED("epac8gmlq3r1q3g6lh3fb9nzh"); // if ((sscanf (p, "%d", &i)>0) && (i > 0)) +UNSUPPORTED("2e563kaxakuuou2t5kqvv33w5"); // pinfo->sz = i; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("38dve3snq2grkwui6y1tpc6r1"); // else if ((!strncmp(p,"aspect",(sizeof("aspect")/sizeof(char) - 1)))) { +UNSUPPORTED("ems4wqj0nbd0vi3sttf36tnir"); // pinfo->mode = l_aspect; +UNSUPPORTED("3ckdfsy55ba8os2xhymh002al"); // if ((sscanf (p + (sizeof("array")/sizeof(char) - 1), "%f", &v)>0) && (v > 0)) +UNSUPPORTED("1i6xlg2sfqvjqjdu811xm5398"); // pinfo->aspect = v; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("b3tzhasiwa1p83l47nhl6k5x8"); // pinfo->aspect = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("f3lyz2cejs6yn5fyckhn7ba1"); // case 'c': +UNSUPPORTED("d6yjom2gtqleeq1vf5l72eazl"); // if ((*(p)==*("cluster")&&!strcmp(p,"cluster"))) +UNSUPPORTED("2xe2y3s32q27l74dshw3831hu"); // pinfo->mode = l_clust; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("e00kor2k58i044hvvxytt9dhg"); // case 'g': +UNSUPPORTED("8vzhimdinzz48u15tcx34gzgs"); // if ((*(p)==*("graph")&&!strcmp(p,"graph"))) +UNSUPPORTED("coafx7pn3ah1ulp0o7a0z119r"); // pinfo->mode = l_graph; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("f187wptsr73liavtlyoyfovp3"); // case 'n': +UNSUPPORTED("aqi1ed010xc3cj8xoye8vqkqe"); // if ((*(p)==*("node")&&!strcmp(p,"node"))) +UNSUPPORTED("epewq8yin5pr1meeofxvntjes"); // pinfo->mode = l_node; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } + } + //if (Verbose) { + //fprintf (stderr, "pack info:\n"); + //fprintf (stderr, " mode %s\n", mode2Str(pinfo->mode)); + //if (pinfo->mode == l_aspect) + // fprintf (stderr, " aspect %f\n", pinfo->aspect); + //fprintf (stderr, " size %d\n", pinfo->sz); + //fprintf (stderr, " flags %d\n", pinfo->flags); + //} + return pinfo.getInt("mode"); +} finally { +LEAVING("dyb1n3lhbi0wnr9kvmu6onux9","parsePackModeInfo"); +} +} + + + + +//3 bnxqpsmvz6tyekstfjte4pzwj +// pack_mode getPackModeInfo(Agraph_t * g, pack_mode dflt, pack_info* pinfo) +public static int getPackModeInfo(Agraph_s g, int dflt, pack_info pinfo) { +ENTERING("bnxqpsmvz6tyekstfjte4pzwj","getPackModeInfo"); +try { + return parsePackModeInfo (agget(g, new CString("packmode")), dflt, pinfo); +} finally { +LEAVING("bnxqpsmvz6tyekstfjte4pzwj","getPackModeInfo"); +} +} + + + + +//3 7drbmsd08zij375icggr3egvy +// pack_mode getPackMode(Agraph_t * g, pack_mode dflt) +public static Object getPackMode(Object... arg) { +UNSUPPORTED("c1prvosj3g3y8yq8z6btufyr1"); // pack_mode +UNSUPPORTED("acjweauaygv7o5gppq7c33mp7"); // getPackMode(Agraph_t * g, pack_mode dflt) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0d79ghjhm6kl6qz811tqj0ip"); // pack_info info; +UNSUPPORTED("3abevvtclwlzp8dcg3zhzsnll"); // return getPackModeInfo (g, dflt, &info); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ata97fmix5q1oikrmk5pezvrf +// int getPack(Agraph_t * g, int not_def, int dflt) +public static int getPack(Agraph_s g, int not_def, int dflt) { +ENTERING("ata97fmix5q1oikrmk5pezvrf","getPack"); +try { + CString p; + int i; + int v = not_def; + if ((p = agget(g, new CString("pack")))!=null) { +UNSUPPORTED("enpqar7c7okvibe7xhe0vjtfn"); // if ((sscanf(p, "%d", &i) == 1) && (i >= 0)) +UNSUPPORTED("3puzxwczcmpxvlw8cvmeyio74"); // v = i; +UNSUPPORTED("65w8fxtw319slbg2c6nvtmow8"); // else if ((*p == 't') || (*p == 'T')) +UNSUPPORTED("5lifdir9mxnvpi8ur34qo0jej"); // v = dflt; + } + return v; +} finally { +LEAVING("ata97fmix5q1oikrmk5pezvrf","getPack"); +} +} + + + + +//3 ce4a70w8ddkj4l9efi74h61s6 +// pack_mode getPackInfo(Agraph_t * g, pack_mode dflt, int dfltMargin, pack_info* pinfo) +public static int getPackInfo(Agraph_s g, int dflt, int dfltMargin, pack_info pinfo) { +ENTERING("ce4a70w8ddkj4l9efi74h61s6","getPackInfo"); +try { + //assert (pinfo); + pinfo.setInt("margin", getPack(g, dfltMargin, dfltMargin)); + //if (Verbose) { + //fprintf (stderr, " margin %d\n", pinfo->margin); + //} + pinfo.setInt("doSplines", 0); + pinfo.setInt("fixed", 0); + getPackModeInfo(g, dflt, pinfo); + return pinfo.getInt("mode"); +} finally { +LEAVING("ce4a70w8ddkj4l9efi74h61s6","getPackInfo"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/pack/ptest__c.java plantuml-8039/src/gen/lib/pack/ptest__c.java --- plantuml-8024/src/gen/lib/pack/ptest__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pack/ptest__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1162 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pack; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.boxf; +import h.pointf; +import smetana.core.__struct__; + +public class ptest__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 nye6dsi1twkbddwo9iffca1j +// extern char *Version + + +//1 65mu6k7h7lb7bx14jpiw7iyxr +// extern char **Files + + +//1 2rpjdzsdyrvomf00zcs3u3dyn +// extern const char **Lib + + +//1 6d2f111lntd2rsdt4gswh5909 +// extern char *CmdName + + +//1 a0ltq04fpeg83soa05a2fkwb2 +// extern char *specificFlags + + +//1 1uv30qeqq2jh6uznlr4dziv0y +// extern char *specificItems + + +//1 7i4hkvngxe3x7lmg5h6b3t9g3 +// extern char *Gvfilepath + + +//1 9jp96pa73kseya3w6sulxzok6 +// extern char *Gvimagepath + + +//1 40ylumfu7mrvawwf4v2asvtwk +// extern unsigned char Verbose + + +//1 93st8awjy1z0h07n28qycbaka +// extern unsigned char Reduce + + +//1 f2vs67ts992erf8onwfglurzp +// extern int MemTest + + +//1 c6f8whijgjwwagjigmxlwz3gb +// extern char *HTTPServerEnVar + + +//1 cp4hzj7p87m7arw776d3bt7aj +// extern char *Output_file_name + + +//1 a3rqagofsgraie6mx0krzkgsy +// extern int graphviz_errors + + +//1 5up05203r4kxvjn1m4njcgq5x +// extern int Nop + + +//1 umig46cco431x14b3kosde2t +// extern double PSinputscale + + +//1 52bj6v8fqz39khasobljfukk9 +// extern int Syntax_errors + + +//1 9ekf2ina8fsjj6y6i0an6somj +// extern int Show_cnt + + +//1 38di5qi3nkxkq65onyvconk3r +// extern char** Show_boxes + + +//1 6ri6iu712m8mpc7t2670etpcw +// extern int CL_type + + +//1 bomxiw3gy0cgd1ydqtek7fpxr +// extern unsigned char Concentrate + + +//1 cqy3gqgcq8empdrbnrhn84058 +// extern double Epsilon + + +//1 64slegfoouqeg0rmbyjrm8wgr +// extern int MaxIter + + +//1 88wdinpnmfs4mab4aw62yb0bg +// extern int Ndim + + +//1 8bbad3ogcelqnnvo5br5s05gq +// extern int State + + +//1 17rnd8q45zclfn68qqst2vxxn +// extern int EdgeLabelsDone + + +//1 ymx1z4s8cznjifl2d9f9m8jr +// extern double Initial_dist + + +//1 a33bgl0c3uqb3trx419qulj1x +// extern double Damping + + +//1 d9lvrpjg1r0ojv40pod1xwk8n +// extern int Y_invert + + +//1 71efkfs77q5tq9ex6y0f4kanh +// extern int GvExitOnUsage + + +//1 4xy2dkdkv0acs2ue9eca8hh2e +// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin + + +//1 9js5gxgzr74eakgtfhnbws3t9 +// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle + + +//1 anqllp9sj7wo45w6bm11j8trn +// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth + + +//1 bh0z9puipqw7gymjd5h5b8s6i +// extern struct fdpParms_s* fdp_parms + + + + +//3 ciez0pfggxdljedzsbklq49f0 +// static inline point pointof(int x, int y) +public static Object pointof(Object... arg) { +UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x; +UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1s4k85p1cdfn176o3uryeros +// static inline pointf pointfof(double x, double y) +public static __struct__ pointfof(double x, double y) { +// WARNING!! STRUCT +return pointfof_w_(x, y).copy(); +} +private static __struct__ pointfof_w_(double x, double y) { +ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", x); + r.setDouble("y", y); + return r; +} finally { +LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof"); +} +} + + + + +//3 7cufnfitrh935ew093mw0i4b7 +// static inline box boxof(int llx, int lly, int urx, int ury) +public static Object boxof(Object... arg) { +UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly; +UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury; +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1vvsta5i8of59frav6uymguav +// static inline boxf boxfof(double llx, double lly, double urx, double ury) +public static __struct__ boxfof(double llx, double lly, double urx, double ury) { +// WARNING!! STRUCT +return boxfof_w_(llx, lly, urx, ury).copy(); +} +private static __struct__ boxfof_w_(double llx, double lly, double urx, double ury) { +ENTERING("1vvsta5i8of59frav6uymguav","boxfof"); +try { + final __struct__ b = __struct__.from(boxf.class); + b.getStruct("LL").setDouble("x", llx); + b.getStruct("LL").setDouble("y", lly); + b.getStruct("UR").setDouble("x", urx); + b.getStruct("UR").setDouble("y", ury); + return b; +} finally { +LEAVING("1vvsta5i8of59frav6uymguav","boxfof"); +} +} + + + + +//3 1n5xl70wxuabyf97mclvilsm6 +// static inline point add_point(point p, point q) +public static Object add_point(Object... arg) { +UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x; +UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 arrsbik9b5tnfcbzsm8gr2chx +// static inline pointf add_pointf(pointf p, pointf q) +public static __struct__ add_pointf(final __struct__ p, final __struct__ q) { +// WARNING!! STRUCT +return add_pointf_w_(p.copy(), q.copy()).copy(); +} +private static __struct__ add_pointf_w_(final __struct__ p, final __struct__ q) { +ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +try { + final __struct__ r = __struct__.from(pointf.class); + r.setDouble("x", p.getDouble("x") + q.getDouble("x")); + r.setDouble("y", p.getDouble("y") + q.getDouble("y")); + return r; +} finally { +LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf"); +} +} + + + + +//3 ai2dprak5y6obdsflguh5qbd7 +// static inline point sub_point(point p, point q) +public static Object sub_point(Object... arg) { +UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 16f6pyogcv3j7n2p0n8giqqgh +// static inline pointf sub_pointf(pointf p, pointf q) +public static Object sub_pointf(Object... arg) { +UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x; +UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k50jgrhc4f9824vf8ony74rw +// static inline point mid_point(point p, point q) +public static Object mid_point(Object... arg) { +UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2; +UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 59c4f7im0ftyowhnzzq2v9o1x +// static inline pointf mid_pointf(pointf p, pointf q) +public static Object mid_pointf(Object... arg) { +UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.; +UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5r18p38gisvcx3zsvbb9saixx +// static inline pointf interpolate_pointf(double t, pointf p, pointf q) +public static Object interpolate_pointf(Object... arg) { +UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r; +UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x); +UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y); +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bxzrv2ghq04qk5cbyy68s4mol +// static inline point exch_xy(point p) +public static Object exch_xy(Object... arg) { +UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9lt3e03tac6h6sydljrcws8fd +// static inline pointf exch_xyf(pointf p) +public static Object exch_xyf(Object... arg) { +UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8l9qhieokthntzdorlu5zn29b +// static inline box box_bb(box b0, box b1) +public static Object box_bb(Object... arg) { +UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 clws9h3bbjm0lw3hexf8nl4c4 +// static inline boxf boxf_bb(boxf b0, boxf b1) +public static Object boxf_bb(Object... arg) { +UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x); +UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y); +UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x); +UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bit6ycxo1iqd2al92y8gkzlvb +// static inline box box_intersect(box b0, box b1) +public static Object box_intersect(Object... arg) { +UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8gfybie7k6pgb3o1a6llgpwng +// static inline boxf boxf_intersect(boxf b0, boxf b1) +public static Object boxf_intersect(Object... arg) { +UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b; +UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x); +UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y); +UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x); +UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y); +UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7z8j2quq65govaaejrz7b4cvb +// static inline int box_overlap(box b0, box b1) +public static Object box_overlap(Object... arg) { +UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z0suuut2acsay5m8mg9dqjdu +// static inline int boxf_overlap(boxf b0, boxf b1) +public static Object boxf_overlap(Object... arg) { +UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dd34swz5rmdgu3a2np2a4h1dy +// static inline int box_contains(box b0, box b1) +public static Object box_contains(Object... arg) { +UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8laj1bspbu2i1cjd9upr7xt32 +// static inline int boxf_contains(boxf b0, boxf b1) +public static Object boxf_contains(Object... arg) { +UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4wf5swkz24xx51ja2dynbycu1 +// static inline pointf perp (pointf p) +public static Object perp(Object... arg) { +UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y; +UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6dtlpzv4mvgzb9o0b252yweuv +// static inline pointf scale (double c, pointf p) +public static Object scale(Object... arg) { +UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x; +UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y; +UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 exy2l03ceq9zw4vf01bbd4d3o +// typedef unsigned int packval_t + + +//1 8amxw444izqh4g66lhdxcci9r +// char *Info[] = + + +//1 1eqfoyx6n6i882swvudliohy7 +// static int margin = 8 + + +//1 5bs16xeo79e467x65e7bkq7kf +// static int doEdges = 1 + + +//1 24uzz7vpu4g7xsx0sh5tuemke +// static int doComps = 0 + + +//1 dhz067fzogh2sp5htzam45al3 +// static int verbose = 0 + + +//1 57m3hjduqaawz7lzqgpsrik9c +// static char **Files = 0 + + +//1 bwphlvhhlnqsf4xzzsagjay2 +// static int nFiles = 0 + + +//1 a4ojujd209l93x23jer8omiep +// static int single = 0 + + +//1 hys4o67qq0qkc7kbehvo7lhb +// static char *useString = + + + + +//3 73e82wwqdxeij8zonccymd6kz +// static void usage(int v) +public static Object usage(Object... arg) { +UNSUPPORTED("94mouoc9v3rqowaduimbdrlsg"); // static void usage(int v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dezf59tqaazw376bwzeh0lnk"); // printf(useString); +UNSUPPORTED("awsu87poqc0o7ac0x3zri08x2"); // exit(v); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 efl73lc0qt3y2dwkp2bq3qs7q +// static void init(int argc, char *argv[]) +public static Object init(Object... arg) { +UNSUPPORTED("bgxu2kkx7u9qfq81tb3oefdcs"); // static void init(int argc, char *argv[]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("4qgmh8k7p00n85stclc5uyuv1"); // aginit(); +UNSUPPORTED("1niqqfd7us06n0wzaiiz3u5xg"); // while ((c = getopt(argc, argv, ":escvm:?")) != -1) { +UNSUPPORTED("7rk995hpmaqbbasmi40mqg0yw"); // switch (c) { +UNSUPPORTED("2fzjr952o6hmcz3ad5arl2n8d"); // case 'e': +UNSUPPORTED("612z1fkxvsn3pr6uz8smtwwg6"); // doEdges = 0; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("f3lyz2cejs6yn5fyckhn7ba1"); // case 'c': +UNSUPPORTED("coi2qrxdv2l71tb75401s90cn"); // doComps = 1; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("953l7gyh3b52lc5n9fbhtxhbg"); // case 'm': +UNSUPPORTED("agwyr30ptmkberfxzlr2qb4sm"); // margin = atoi(optarg); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("b4quboi30n0afnbpgm9chdttx"); // case 's': +UNSUPPORTED("a2kcyv0orvfio4god7x1ra1gc"); // single = 1; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("318vlfmcdz9no6i45k86aygon"); // case 'v': +UNSUPPORTED("52jus61ki82kyvoho03bg8yu8"); // verbose = 1; +UNSUPPORTED("z08wni1aiuv5b8ommxtq10kj"); // Verbose = 1; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("d0u2ka51n27um0avxdj14adrh"); // case '?': +UNSUPPORTED("6ongvn9s4rb5sz2f3jrzfcj0m"); // if (optopt == '?') +UNSUPPORTED("46bu3s4vi4qapnhhl79s89q2f"); // usage(0); +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("18zn34qcs4vsdhhh831gn9vc9"); // fprintf(stderr, +UNSUPPORTED("cqx5xtn6ibatrlhvobfqyy4sj"); // "ptest: option -%c unrecognized - ignored\n", c); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bza5bo54n74fk73l7h2zw3sn2"); // argv += optind; +UNSUPPORTED("2z9v9pfcshjw42gkhviv8qmf8"); // argc -= optind; +UNSUPPORTED("euz202o13jvson684m35br400"); // if (argc) { +UNSUPPORTED("a6hax0v25w382s8uhktk1z3ac"); // Files = argv; +UNSUPPORTED("9j2gbktfok4tc5txw0oj203eb"); // nFiles = argc; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6ow5r7ch1so5cayfbyf9crc5p +// static int numFields(char *pos) +public static Object numFields(Object... arg) { +UNSUPPORTED("29ky16cycv6cs96zmpduu1bsp"); // static int numFields(char *pos) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("behjm5bjsenezpg3f7cncvteu"); // int cnt = 0; +UNSUPPORTED("wrvu9u7a8j6i6y6552zncxfk"); // char c; +UNSUPPORTED("1b9np136i2dme8ejhydy0dhlv"); // while (isspace(*pos)) +UNSUPPORTED("e30zd4or99122hlq3vt45sef"); // pos++; +UNSUPPORTED("7dpyo20wi5esbmcan08qtztz7"); // while (*pos) { +UNSUPPORTED("1szm63athnlkprt3pv29pjc6z"); // cnt++; +UNSUPPORTED("5piqmvc132ob5y49h6v7bkeof"); // while ((c = *pos) && !isspace(c)) +UNSUPPORTED("n5o9yha6va5mqug8xmgxtum9"); // pos++; /* skip token */ +UNSUPPORTED("4n3nq7ssq6ovrj330hssbhwz9"); // while (isspace(*pos)) +UNSUPPORTED("27349aw1zezm0lpez1jn3pcw4"); // pos++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3zkt5kbq3sockq663o3s3ync7"); // return cnt; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6b85bwuqwmq3ucqcauigm0orn +// static point *user_spline(attrsym_t * symptr, edge_t * e, int *np) +public static Object user_spline(Object... arg) { +UNSUPPORTED("ewvc2qr116wrkxhg4q77v0uqv"); // static point *user_spline(attrsym_t * symptr, edge_t * e, int *np) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bvo2it3yepiz2er9rw3uuk47s"); // char *pos; +UNSUPPORTED("7k2ifbl8vz1is0pf2z1t0o2xf"); // int i, n, nc; +UNSUPPORTED("a13x213r98q5dm6phmdpj3r2l"); // point *ps = 0; +UNSUPPORTED("ca6brvq3h4u316zi41fa1e7nl"); // point *pp; +UNSUPPORTED("4g01jt8p980itgxzog49s8ur3"); // double x, y; +UNSUPPORTED("5elka0ltgqf61uccerqfkjvvp"); // if (symptr == NULL) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("c21yig5e4hykm28ao7kpzwodl"); // pos = agxget(e, symptr->index); +UNSUPPORTED("7i9zryjmvv454i1r57dlez6kk"); // if (*pos == '\0') +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("az1jdxaqsdxumqec6q7ctjrh3"); // n = numFields(pos); +UNSUPPORTED("82fimuwp8ur9yxpbd8c89a1wb"); // *np = n; +UNSUPPORTED("bvx0cyk5fhwwsm29cbghfhcpj"); // if (n > 1) { +UNSUPPORTED("9lfsqwngk625slfuwyukwtdpy"); // ps = ALLOC(n, 0, point); +UNSUPPORTED("49hki9cvrilnaez8dm0dbbgoq"); // pp = ps; +UNSUPPORTED("4x9kp7oo5ln5zpe2bhy2s9oyc"); // while (n) { +UNSUPPORTED("ejpj2kxorfrlsluqdege3h70h"); // i = sscanf(pos, "%lf,%lf%n", &x, &y, &nc); +UNSUPPORTED("4mo26m3d7t9gf29k5zgh6d3dp"); // if (i < 2) { +UNSUPPORTED("botxh6letfus33f79p4s19719"); // free(ps); +UNSUPPORTED("d31bxxiinmdzudo8yt1laapa1"); // ps = 0; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("8cjb49m5i1gwlcbb72l8kieuk"); // pos = pos + nc; +UNSUPPORTED("dn8a13edl8j88azhrkizcbwsx"); // pp->x = (int) x; +UNSUPPORTED("6qrmrrz624ilc14dax4fzkzy"); // pp->y = (int) y; +UNSUPPORTED("4t42c85s64mps71a1sjc7yoey"); // pp++; +UNSUPPORTED("704o6677xgknjexhj6bdlst8x"); // n--; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b0dfwpxhogdrp9mwkzc8oa9vt"); // return ps; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5vxza0l0hf6kgjh7hgffhqk1d +// static void initPos(Agraph_t * g) +public static Object initPos(Object... arg) { +UNSUPPORTED("6wuroti5ljub8qdkqwz84bll8"); // static void initPos(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("36vshotvjkc5iodgg7nq6qa2r"); // Agedge_t *e; +UNSUPPORTED("evvfote9pox5gpnsuk75gu9zi"); // double *pvec; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("3w79hfiet3147pb1ehbe0tltw"); // point *sp; +UNSUPPORTED("7hps2kejtrotcphg5gymma43b"); // int pn; +UNSUPPORTED("6717r3gljnzz5j6x8yd64vxmy"); // attrsym_t *N_pos = (agattr(g,AGNODE,"pos",NULL)); +UNSUPPORTED("8s1tvuk5eoddac3tdw3vwm3g6"); // attrsym_t *E_pos = (agattr(g,AGEDGE,"pos",NULL)); +UNSUPPORTED("607cie06087nzjkhdxwkh8t5x"); // assert(N_pos); +UNSUPPORTED("9pqnws9ww5w3wm6etqvhhmaag"); // if (!E_pos) { +UNSUPPORTED("b7m2ei650qyfpw37qbnbselef"); // if (doEdges) +UNSUPPORTED("1jx8qc7jakb79udi264irb795"); // fprintf(stderr, "Warning: turning off doEdges, graph %s\n", +UNSUPPORTED("52cuafai1d5jpnyygo0jtwp19"); // g->name); +UNSUPPORTED("25yxh6xy9gvks3xlk4ay8ana2"); // doEdges = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("2hbtrrffbxr8fodextlckjcte"); // pvec = ND_pos(n); +UNSUPPORTED("4mrzu4a737x10k9m629qjvpmx"); // p = agxget(n, N_pos->index); +UNSUPPORTED("9fce8t386yx1ohlzh5z3v64uy"); // if (p[0] && (sscanf(p, "%lf,%lf", pvec, pvec + 1) == 2)) { +UNSUPPORTED("a8amhiqvlp5s6vz8p4u2amapy"); // int i; +UNSUPPORTED("e2k2y77qbvhl4ttkl82r7skpc"); // for (i = 0; i < NDIM; i++) +UNSUPPORTED("54fe965wvv1n2dqk9v5lqtfe"); // pvec[i] = pvec[i] / PSinputscale; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("apu2a6fysp0sm0oh3eg9sdx3g"); // fprintf(stderr, "could not find pos for node %s in graph %s\n", +UNSUPPORTED("5ii3q9tejxvznaewo80u58jc6"); // n->name, g->name); +UNSUPPORTED("6f1y0d5qfp1r9zpw0r7m6xfb4"); // exit(1); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("a7cnx8vpthir8tg7wq0gmkyfp"); // ND_coord_i(n).x = (ROUND((ND_pos(n)[0])*72)); +UNSUPPORTED("56q0neer7h6q9r2hlewrmtpac"); // ND_coord_i(n).y = (ROUND((ND_pos(n)[1])*72)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3x2r45g8h3r71u5v8lu9etnq6"); // if (doEdges) { +UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("7yvyv13me3s32qvq3gfbyt283"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("cas0s66j5xm7zv7rfmut5t5ua"); // if ((sp = user_spline(E_pos, e, &pn)) != 0) { +UNSUPPORTED("b1l3m7l581iaaysgzy59rlnqp"); // clip_and_install(e, sp, pn); +UNSUPPORTED("bgz7miqt6x7s9we62suaznam2"); // free(sp); +UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else { +UNSUPPORTED("4gzgwztxcj3c7qtlt3xuwnsq1"); // fprintf(stderr, +UNSUPPORTED("2mti2jcwd7nic33dut8daaxli"); // "Missing edge pos for edge %s - %s in graph %s\n", +UNSUPPORTED("7tw8ugnhfmrhmd69kh0nfu7p2"); // n->name, e->head->name, g->name); +UNSUPPORTED("btkmdyvgs2b3io3tacfuo3ht6"); // exit(1); +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e5z9zrazoioj4tcqyaohcup5l +// static void ptest_nodesize(node_t * n, boolean flip) +public static Object ptest_nodesize(Object... arg) { +UNSUPPORTED("a6fr7g8doj4m1has0v8m3gn0v"); // static void ptest_nodesize(node_t * n, boolean flip) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dgezc9nq6515gryb5aoradhlj"); // int w; +UNSUPPORTED("hcl98itasit8bk43t1a7dksx"); // w = ND_xsize(n) = (ROUND((ND_width(n))*72)); +UNSUPPORTED("clr7qgpaln5v1e8sa81vefxgx"); // ND_lw(n) = ND_rw(n) = w / 2; +UNSUPPORTED("dxe3mk5x98xnzhulw934sin35"); // ND_ht(n) = ND_ysize(n) = (ROUND((ND_height(n))*72)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5z906z4eqvn94qwep17t9ecfv +// static void ptest_initNode(node_t * n) +public static Object ptest_initNode(Object... arg) { +UNSUPPORTED("74hpo7rawbv1l53gcs8gse89n"); // static void ptest_initNode(node_t * n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("76nok3eiyr33qf4ecv69ujxn6"); // char *str; +UNSUPPORTED("4ii64hrv86n2irvf71lpjlait"); // ND_width(n) = +UNSUPPORTED("be5qy7slnjp1ltoih3332j4qk"); // late_double(n, N_width, 0.75, 0.01); +UNSUPPORTED("9zjn5j4471it4d3vb5wdfuzlh"); // ND_height(n) = +UNSUPPORTED("n9gbpj6q00o3ggm4xxil4afm"); // late_double(n, N_height, 0.5, 0.01); +UNSUPPORTED("4ia5lmwela2aa00dkga0q3by5"); // if (N_label == NULL) +UNSUPPORTED("8jmb1jjt8cpml3yo3nh59pkkq"); // str = "\\N"; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("ania83ea7map6i1xu69ykshav"); // str = agxget(n, N_label->index); +UNSUPPORTED("182xxyk6623a24gu3lts9h7i3"); // str = strdup_and_subst(str, "\\N", n->name); +UNSUPPORTED("2rx8312iagen4kz1a1be428i2"); // ND_label(n) = make_label(str, +UNSUPPORTED("3umbo59bv54mpje1ar1p3emyg"); // late_double(n, N_fontsize, 14.0, +UNSUPPORTED("6joc02il1cncp1pwbeqwqd6bv"); // 1.0), late_nnstring(n, +UNSUPPORTED("eg23z30i9f0bgdsfxqzjr8cm3"); // N_fontname, +UNSUPPORTED("7p3qoqg9tlh094wkumjk0gu1r"); // "Times-Roman"), +UNSUPPORTED("27lxhu1i8goyngm5z5ztzc9se"); // late_nnstring(n, N_fontcolor, "black"), +UNSUPPORTED("a66nrz185x5w9czfz4hxvddaj"); // n->graph); +UNSUPPORTED("cfoyczwylecqlhhb5vmnerwbg"); // ND_shape(n) = bind_shape(late_nnstring(n, N_shape, "ellipse")); +UNSUPPORTED("2z4f61h2jydnf1wz262734vda"); // ND_shape(n)->initfn(n); /* ### need to quantize ? */ +UNSUPPORTED("56aecvcbqxgl0e67wrub498ix"); // ptest_nodesize(n, n->GD_flip(graph)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5f35etfq3qbirfsag89nr6382 +// static void ptest_initGraph(graph_t * g) +public static Object ptest_initGraph(Object... arg) { +UNSUPPORTED("6byfidommpiiaekcfq26jwzzz"); // static void ptest_initGraph(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("94x0mmuhef4re0y05ngcuytf9"); // /* edge_t *e; */ +UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) +UNSUPPORTED("aakael964bsjn7l22rgdr13zt"); // ptest_initNode(n); +UNSUPPORTED("4v614d3uabme2jyn0anuritbb"); // /* +UNSUPPORTED("eh6wqx3d37l7km9kh1gdso2t"); // for (n = agfstnode(g); n; n = agnxtnode(g,n)) { +UNSUPPORTED("1suh3w1zdcqasuka9dgx4ukgl"); // for (e = agfstout(g,n); e; e = agnxtout(g,e)) ptest_initEdge(e); +UNSUPPORTED("7ijd6pszsxnoopppf6xwo8wdl"); // } +UNSUPPORTED("bnetqzovnscxile7ao44kc0qd"); // */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3y6d5zmybm89vnfzssntfxuga +// static void dumpG(graph_t * g) +public static Object dumpG(Object... arg) { +UNSUPPORTED("80as52jwfpla4s14zbrh506cu"); // static void dumpG(graph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("am98nf596s79mx0jh0eukf2pj"); // /* point p; */ +UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("92hx0hzt0genpiycslyy2fphe"); // fprintf(stderr, " node %s \n", n->name); +UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("ddikw3m3fhov54kkj3710v3kh"); // fprintf(stderr, " %s - %s \n", e->tail->name, e->head->name); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c6p4imduurlyugmp9lakjsrkx +// static void copyPos(Agraph_t * g) +public static Object copyPos(Object... arg) { +UNSUPPORTED("2bnytjwn7g67uh683868e3xl7"); // static void copyPos(Agraph_t * g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n; +UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("a7cnx8vpthir8tg7wq0gmkyfp"); // ND_coord_i(n).x = (ROUND((ND_pos(n)[0])*72)); +UNSUPPORTED("56q0neer7h6q9r2hlewrmtpac"); // ND_coord_i(n).y = (ROUND((ND_pos(n)[1])*72)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 56nlfv4elbzzbch9wiks1pqti +// main(int argc, char *argv[]) +public static Object main(Object... arg) { +UNSUPPORTED("8wkt709xta3burfudbrvdhsdm"); // main(int argc, char *argv[]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("75makfli697jao0r0h73ksibj"); // Agraph_t **gs; +UNSUPPORTED("8i0oxshyd0x2idt42lftg3zjx"); // Agraph_t **ccs; +UNSUPPORTED("1dbyk58q3r4fyfxxo7ovemkpu"); // Agraph_t *g; +UNSUPPORTED("3l5bdi04ekui6vvrgr3s666fx"); // Agraph_t *gp; +UNSUPPORTED("66jjdcm9x1i8fc2eq9b1z81d4"); // char *fname; +UNSUPPORTED("dn2hi0km4q5ldibguffbger1c"); // FILE *fp; +UNSUPPORTED("6iv4xusq3ncisurzdtlt8lhe9"); // int cnt; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("44luxtsxnt651zyc4b8x3r6po"); // init(argc, argv); +UNSUPPORTED("dmdjgm6j4zsty2ies7uit5831"); // if (!Files) { +UNSUPPORTED("4issxf2kepoao7ljc3j3jkos8"); // fprintf(stderr, "No input files given\n"); +UNSUPPORTED("dtw3cma0ziyha0w534bszl0tx"); // exit(1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9zj7hq1iiirxb7wx6osfdutah"); // PSinputscale = 72; +UNSUPPORTED("2szscn7gy6eg6ghb7zdqj0qwm"); // if (doComps) { +UNSUPPORTED("46pn2m7yn4pem434vcfqq1gei"); // if (verbose) +UNSUPPORTED("dawpetqdqceyrxbb0n5oi20vg"); // fprintf(stderr, "do Comps\n"); +UNSUPPORTED("2zdroao5t5zjp7reldctg2hic"); // while (fname = *Files++) { +UNSUPPORTED("c2vs68cvzv11vpc3d0vhgn0o6"); // fp = fopen(fname, "r"); +UNSUPPORTED("2de0glisr7me97htqp4v4qe2m"); // if (!fp) { +UNSUPPORTED("bruposf45ak9wnammmxs05uq2"); // fprintf(stderr, "Could not open %s\n", fname); +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4vtewfrcwhx9cqnhzzelmnc07"); // g = agread(fp); +UNSUPPORTED("81dgkqb2pfz2cmbpgkwbv8yca"); // fclose(fp); +UNSUPPORTED("9e4rervmy1jguubifdob867qa"); // if (!g) { +UNSUPPORTED("c3k9mm0laol4uhxfovks7vvx4"); // fprintf(stderr, "Could not read graph\n"); +UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("5ok0v4mf41z8mas48m0payhcd"); // printf("%s %d nodes %d edges %sconnected\n", +UNSUPPORTED("e4t4a5rs8mj1rhyqxa3t0bc7r"); // g->name, agnnodes(g), agnedges(g), +UNSUPPORTED("84a4uyu2upwydiyuzql8rnciu"); // (isConnected(g) ? "" : "not ")); +UNSUPPORTED("d3glokalvrf1m3vjonhaejamf"); // gs = ccomps(g, &cnt, "abc"); +UNSUPPORTED("ivgffft2q5w6sjw0k1jg6o4j"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("55ej4zekzmpz6h9dwcotkqzvn"); // gp = gs[i]; +UNSUPPORTED("dyst0rumkq269hhpmrynhel67"); // printf(" %s %d nodes %d edges\n", gp->name, agnnodes(gp), +UNSUPPORTED("af8li2e2oidx7nfn42l2lzqc0"); // agnedges(gp)); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("eob8bvfezsx0hr1brt37a4lyv"); // gs = (Agraph_t **)gmalloc((nFiles)*sizeof(Agraph_t *)); +UNSUPPORTED("5j7jmlebvv4x0vqasag7ecunu"); // cnt = 0; +UNSUPPORTED("ievvgb8tg6613rw4cwuvqtqm"); // while (fname = Files[cnt]) { +UNSUPPORTED("c2vs68cvzv11vpc3d0vhgn0o6"); // fp = fopen(fname, "r"); +UNSUPPORTED("2de0glisr7me97htqp4v4qe2m"); // if (!fp) { +UNSUPPORTED("bruposf45ak9wnammmxs05uq2"); // fprintf(stderr, "Could not open %s\n", fname); +UNSUPPORTED("7ujm7da8xuut83e2rygja0n9d"); // exit(1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4vtewfrcwhx9cqnhzzelmnc07"); // g = agread(fp); +UNSUPPORTED("81dgkqb2pfz2cmbpgkwbv8yca"); // fclose(fp); +UNSUPPORTED("9e4rervmy1jguubifdob867qa"); // if (!g) { +UNSUPPORTED("c3k9mm0laol4uhxfovks7vvx4"); // fprintf(stderr, "Could not read graph\n"); +UNSUPPORTED("7ujm7da8xuut83e2rygja0n9d"); // exit(1); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4ttwxmfi4jwb95u2zpmg90qlj"); // if (!single) { +UNSUPPORTED("344ixhk5pj5cgkfitztxg39wq"); // graph_init(g); +UNSUPPORTED("dgurzsu7a9v8li0uoqshe04ub"); // ptest_initGraph(g); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4ju9fxktkzm6g6k8jyu66ps6s"); // initPos(g); +UNSUPPORTED("4l3u0654thteocjvzjwfmdfc1"); // /* if (Verbose) dumpG (g); */ +UNSUPPORTED("2u2wotplp8k3k2hisg44444mr"); // gs[cnt++] = g; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9pza2sgruhfiag9f4hehchd0u"); // if (single) { +UNSUPPORTED("7xk90wmd7j06hqt7b7i3eeyfy"); // Agraph_t *root; +UNSUPPORTED("81iug4po5ggethdqgapdw9mez"); // Agnode_t *n; +UNSUPPORTED("8zwiekoyqkvb7nqu0jvrmjubj"); // Agnode_t *np; +UNSUPPORTED("7sxvwdnz5adoqfobhuxe9kpo7"); // Agnode_t *tp; +UNSUPPORTED("6dcxsvi3exhmbtwrpyagifa28"); // Agnode_t *hp; +UNSUPPORTED("7vvr9l0r0k3c179gu9edbannt"); // Agedge_t *e; +UNSUPPORTED("45l8sazink6wfvjc5iv9mbqfv"); // Agedge_t *ep; +UNSUPPORTED("2dsdl1tbecto2tl7rzbajp2ki"); // root = agopen("root", 0); +UNSUPPORTED("2qcacl7cdr2zcme1wtbp5nudb"); // agedgeattr(root, "pos", ""); +UNSUPPORTED("ivgffft2q5w6sjw0k1jg6o4j"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("150kyv7qt24hep1ix7ekbxzhv"); // g = gs[i]; +UNSUPPORTED("3mq66y5bl1rf1c70443ospyk"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("5e6yfzrf4s24izgf8jayt1s43"); // if ((agnode(root,n->name,0))) { +UNSUPPORTED("3iwc3dzplzj2jkbze5cd6zfh9"); // fprintf(stderr, +UNSUPPORTED("7hqzc3wtbhvlu2qsdc4y25qk6"); // "Error: node %s in graph %d (%s) previously added\n", +UNSUPPORTED("cj5j27wggqfiejzj83ygjjtfd"); // n->name, i, Files[i]); +UNSUPPORTED("8197k2c9bktvbqw28fy46jqt"); // exit(1); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("9tm8oxmtnz3g24k9p328sf9if"); // np = agnode(root, n->name); +UNSUPPORTED("k7qf5ks6w37bfi3z9eef3qlu"); // ND_pos(np)[0] = ND_pos(n)[0]; +UNSUPPORTED("bfzh6521nzll5lsnpw1k5n4m4"); // ND_pos(np)[1] = ND_pos(n)[1]; +UNSUPPORTED("khqpoz54xjfjkti1t9djhewn"); // ND_coord_i(np).x = ND_coord_i(n).x; +UNSUPPORTED("4x9c7uwd0kx0jhvnx5dxmudl"); // ND_coord_i(np).y = ND_coord_i(n).y; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("3mq66y5bl1rf1c70443ospyk"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) { +UNSUPPORTED("35xtxnvjglep45528xu3bdsj"); // tp = (agnode(root,n->name,0)); +UNSUPPORTED("a3z26j7g5efb4epbmqjb786zu"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) { +UNSUPPORTED("62fs4ym4p052thn1lyb29j2q5"); // hp = (agnode(root,e->head->name,0)); +UNSUPPORTED("dvwpkbrij9w40pbsbchqp4err"); // ep = agedge(root, tp, hp); +UNSUPPORTED("dn7joqnj1y0k5ua3p8eyyts4t"); // ED_spl(ep) = ED_spl(e); +UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // } +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ewdephguezv9n4j0pr1pilfay"); // graph_init(root); +UNSUPPORTED("8c3un2iqe187mmdrtw54jbkyc"); // ptest_initGraph(root); +UNSUPPORTED("7f8mdyxgvend9tx5cby8fsriu"); // ccs = ccomps(root, &cnt, 0); +UNSUPPORTED("bgk9mnbqancywhx9z6leue7ri"); // packGraphs(cnt, ccs, root, margin, doEdges); +UNSUPPORTED("2wu6h8z9h6pvzsdd62mmcfxg0"); // if (!doEdges) +UNSUPPORTED("2ghubirp3mlgcl6gjf50g3gbu"); // copyPos(root); +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("byjd9fn68fzvo0yhanif3ydum"); // State = 1; +UNSUPPORTED("664tfkoggn4h8g2k56p888fsg"); // attach_attrs(root); +UNSUPPORTED("ivgffft2q5w6sjw0k1jg6o4j"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("cpd2gdsuj81r184ywe3ya1863"); // agdelete(root, ccs[i]); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("byt1dlccqrnf77otl8aey0q7"); // agwrite(root, stdout); +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("6okr9lyl25rynlpeb541qyy7h"); // packGraphs(cnt, gs, 0, margin, doEdges); +UNSUPPORTED("durj7dcilnt6i4j5m304vugx7"); // if (doEdges) +UNSUPPORTED("byjd9fn68fzvo0yhanif3ydum"); // State = 1; +UNSUPPORTED("ivgffft2q5w6sjw0k1jg6o4j"); // for (i = 0; i < cnt; i++) { +UNSUPPORTED("2ebr0nay4ws6wvabvtsc7i6g6"); // if (!doEdges) +UNSUPPORTED("6msz5q1lfw4hvu5d3eqbs110s"); // copyPos(gs[i]); +UNSUPPORTED("1ue5ykok6uxlgcq1ob0qdyro8"); // attach_attrs(gs[i]); +UNSUPPORTED("4azg08ol0hnirn0s158w62j2j"); // agwrite(gs[i], stdout); +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/pathplan/cvt__c.java plantuml-8039/src/gen/lib/pathplan/cvt__c.java --- plantuml-8024/src/gen/lib/pathplan/cvt__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pathplan/cvt__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,309 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pathplan; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.UNSUPPORTED; +import h.pointf; +import smetana.core.__struct__; + +public class cvt__c { +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 7pb9zum2n4wlgil34lvh8i0ts +// typedef double COORD + + +//1 e75el5ykqd72ikokwkl7j2epc +// typedef COORD **array2 + + +//1 ej0x6pmbhu30xkhld8bcz4gwv +// typedef Ppoint_t ilcoord_t + + + + +//3 1xzun807liyzhh33wecbjr36t +// static void *mymalloc(size_t newsize) +public static Object mymalloc(Object... arg) { +UNSUPPORTED("4sbfatyg3fhc2c20h2xhk3mx9"); // static void *mymalloc(size_t newsize) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5ccnu5m92hidffpixzo964tna"); // void *rv; +UNSUPPORTED("bl8qbtd4wj1z7r9hhretdafhi"); // if (newsize > 0) +UNSUPPORTED("911ost0j5419vf2t0dcv9syl0"); // rv = malloc(newsize); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("c4gs555ukbqlir0vf7test5fk"); // rv = (void *) 0; +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4pfhgk8c796mhpyfqs8fd3fy9 +// vconfig_t *Pobsopen(Ppoly_t ** obs, int n_obs) +public static Object Pobsopen(Object... arg) { +UNSUPPORTED("dz610tzpr6mx5ioen71yt9lw2"); // vconfig_t *Pobsopen(Ppoly_t ** obs, int n_obs) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6h763iz1lhdcesjffuohit038"); // vconfig_t *rv; +UNSUPPORTED("6fyedst0dusa16an4rkc8wowr"); // int poly_i, pt_i, i, n; +UNSUPPORTED("aa6b5n017in5orglen9ktgs9a"); // int start, end; +UNSUPPORTED("2izagha9qm9hfmw2zjtq0yyqy"); // rv = malloc(sizeof(vconfig_t)); +UNSUPPORTED("3932k5yue8e2mb5g02yh32q3u"); // if (!rv) { +UNSUPPORTED("11hwqop4xebvtcskop4uhpp01"); // return NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("537ma80b4p1qif18ogmioua6f"); // /* get storage */ +UNSUPPORTED("5479ingjjk6qn2seps3k0btka"); // n = 0; +UNSUPPORTED("6pryh49akl0qqyof6t9enjse3"); // for (poly_i = 0; poly_i < n_obs; poly_i++) +UNSUPPORTED("7mn5akiq7xlxj3bhbg2hjyw43"); // n = n + obs[poly_i]->pn; +UNSUPPORTED("4w0j0xkeflf96a4msrd1djw60"); // rv->P = mymalloc(n * sizeof(Ppoint_t)); +UNSUPPORTED("d9e6s9bw2zqrvvmjjx99t8om5"); // rv->start = mymalloc((n_obs + 1) * sizeof(int)); +UNSUPPORTED("cxuszkdst7q9ivsqe8ioe2yrw"); // rv->next = mymalloc(n * sizeof(int)); +UNSUPPORTED("burxtua12xjppcbmval0ggvxg"); // rv->prev = mymalloc(n * sizeof(int)); +UNSUPPORTED("b6qs2ihtcpwqt5curgpzssi0t"); // rv->N = n; +UNSUPPORTED("y8pzts8dvguxzsn2xoi6o7xr"); // rv->Npoly = n_obs; +UNSUPPORTED("85r5n7qhz9w2j71ctswryvhs9"); // /* build arrays */ +UNSUPPORTED("9z3er49pc4h2rxja5r9grdo0h"); // i = 0; +UNSUPPORTED("a9lqcyerwxbnkjv25bsdl8zm4"); // for (poly_i = 0; poly_i < n_obs; poly_i++) { +UNSUPPORTED("c9man7k6dcktdn55nx8sc8hu2"); // start = i; +UNSUPPORTED("l4rzwhaigo1dmtzc7olyk6y2"); // rv->start[poly_i] = start; +UNSUPPORTED("do78yh8gawc61ywbjurslrmc7"); // end = start + obs[poly_i]->pn - 1; +UNSUPPORTED("ef97u4pbd8y1vhy459q7r4jlr"); // for (pt_i = 0; pt_i < obs[poly_i]->pn; pt_i++) { +UNSUPPORTED("duznt0bepum3jc0h5n1g0j6r1"); // rv->P[i] = obs[poly_i]->ps[pt_i]; +UNSUPPORTED("cbqnpyguo28y5hi6788clitol"); // rv->next[i] = i + 1; +UNSUPPORTED("75iqn38g2hugox3zmrro1eruh"); // rv->prev[i] = i - 1; +UNSUPPORTED("1lo0ackow66iudrq1gb15y3ry"); // i++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c62cdvr5s10dskbn3g3nv130u"); // rv->next[end] = start; +UNSUPPORTED("b77mp3jilxwb6gjveuwuldrvq"); // rv->prev[start] = end; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1u0umi0jiwt4fdh8n0nr1j8ns"); // rv->start[poly_i] = i; +UNSUPPORTED("26uynreqxoitqc5md315okjca"); // visibility(rv); +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e4migs6coi22m83vhdmasdpq2 +// void Pobsclose(vconfig_t * config) +public static Object Pobsclose(Object... arg) { +UNSUPPORTED("54tyi1oh5fd4a8lh1107ysppi"); // void Pobsclose(vconfig_t * config) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9i5pewoqi7dxp9hvkbh6p1kcd"); // free(config->P); +UNSUPPORTED("dyvruo3b8nwce9o0q2bcycvb6"); // free(config->start); +UNSUPPORTED("7at6jri0rjj24yyxd75duo75z"); // free(config->next); +UNSUPPORTED("akdd6tfoylim5pdwp1w2o0j20"); // free(config->prev); +UNSUPPORTED("e5hnzu51syeuaqx4dgswvpyje"); // if (config->vis) { +UNSUPPORTED("8rwcdtu45rfzpyn5z46pkkhl6"); // free(config->vis[0]); +UNSUPPORTED("i31zzb5907stuz3hbwbdcbhp"); // free(config->vis); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("61miap7xqs0is8dzf039j57nq"); // free(config); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8doijz2zl7icgvbs59qtqw2e6 +// int Pobspath(vconfig_t * config, Ppoint_t p0, int poly0, Ppoint_t p1, int poly1, Ppolyline_t * output_route) +public static Object Pobspath(Object... arg) { +UNSUPPORTED("es9wttiuk2pkcqinglvdetmxh"); // int Pobspath(vconfig_t * config, Ppoint_t p0, int poly0, Ppoint_t p1, +UNSUPPORTED("8waigfzvwmpsy4nk2ybswloiu"); // int poly1, Ppolyline_t * output_route) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("e2p3zngy6gppxlaxnza2atj67"); // int i, j, *dad; +UNSUPPORTED("e62ya6atrka5y0vefbxn9gvsd"); // int opn; +UNSUPPORTED("eio9tluzd00a9allc8rpk3sn3"); // Ppoint_t *ops; +UNSUPPORTED("ekriswamubxah5xbwpyub2glk"); // COORD *ptvis0, *ptvis1; +UNSUPPORTED("f3ay7pz98tp6wbnj91hh3kj"); // ptvis0 = ptVis(config, poly0, p0); +UNSUPPORTED("9d1jc97ql0y8dloqkw50mmzdj"); // ptvis1 = ptVis(config, poly1, p1); +UNSUPPORTED("7qs63rfsr6g17tfm9o33b3su6"); // dad = makePath(p0, poly0, ptvis0, p1, poly1, ptvis1, config); +UNSUPPORTED("b26wav438av32fij4hegkkgu6"); // opn = 1; +UNSUPPORTED("2vrbfn91t93xoyd85qnu32sy2"); // for (i = dad[config->N]; i != config->N + 1; i = dad[i]) +UNSUPPORTED("3qey9tefagfie3qnkiki4nf6l"); // opn++; +UNSUPPORTED("4196zy1bbqiysbv1glm6f6rs5"); // opn++; +UNSUPPORTED("3snkzyfbaaeiotrx64sx9tpni"); // ops = malloc(opn * sizeof(Ppoint_t)); +UNSUPPORTED("63lio5qjaoeboqhgiam7y7q0q"); // j = opn - 1; +UNSUPPORTED("ebor0877uiofxllu68qt0ni85"); // ops[j--] = p1; +UNSUPPORTED("2vrbfn91t93xoyd85qnu32sy2"); // for (i = dad[config->N]; i != config->N + 1; i = dad[i]) +UNSUPPORTED("53win5ovenp62h9g9qdgiu4wq"); // ops[j--] = config->P[i]; +UNSUPPORTED("2edzhlekn1dh9s7bk2yb2b4sm"); // ops[j] = p0; +UNSUPPORTED("7i8zqi2jg8upn1wjzqf5il16o"); // assert(j == 0); +UNSUPPORTED("4sudedq08kppbbadyqc21is7x"); // if (ptvis0) +UNSUPPORTED("6zdjevsy6rl1dvkniswano9ae"); // free(ptvis0); +UNSUPPORTED("1rp1r4ghfa31f1v07hmkoglxl"); // if (ptvis1) +UNSUPPORTED("au3lcfls1tf7t5z3skjuvfuv8"); // free(ptvis1); +UNSUPPORTED("70yf545lz9a6vp2qw2i0q9mr1"); // output_route->pn = opn; +UNSUPPORTED("e9qedm1c6q4ehjjxi6v3u68ms"); // output_route->ps = ops; +UNSUPPORTED("6qqkuw5cd4ebshxoji365xfkz"); // free(dad); +UNSUPPORTED("2mmsh4mer8e3bkt2jk4gf4cyq"); // return ((!(0))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dya1texcjg4i2qyusjnmin7d1 +// int Pobsbarriers(vconfig_t * config, Pedge_t ** barriers, int *n_barriers) +public static Object Pobsbarriers(Object... arg) { +UNSUPPORTED("bbaf03fwbv3733qfrsvd4eoom"); // int Pobsbarriers(vconfig_t * config, Pedge_t ** barriers, int *n_barriers) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j; +UNSUPPORTED("cjg450i3kmtjepexj18lku2oz"); // *barriers = malloc(config->N * sizeof(Pedge_t)); +UNSUPPORTED("b77jnv231p5441j8pofch6qjp"); // *n_barriers = config->N; +UNSUPPORTED("bt2nq7y73jm09gh8xqv1scjog"); // for (i = 0; i < config->N; i++) { +UNSUPPORTED("5xul9j0873agp8fm22e0halsf"); // barriers[i]->a.x = config->P[i].x; +UNSUPPORTED("ca43a9xp0edjts9sme3eysq0v"); // barriers[i]->a.y = config->P[i].y; +UNSUPPORTED("blqt6zbpyfb8cpsh8az3u154y"); // j = config->next[i]; +UNSUPPORTED("4iqggxhzor4r40emialldaqms"); // barriers[i]->b.x = config->P[j].x; +UNSUPPORTED("68b84cgnmyt50bomnqfrw8nau"); // barriers[i]->b.y = config->P[j].y; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 7jm8pu31yvt3fi0tc6t6go9tr +// static Ppoint_t Bezpt[1000] + + +//1 7h8jm5n1tlklgw1yaxx7dlvsx +// static int Bezctr + + + + +//3 oneie60d998qei37slgf3ce4 +// static void addpt(Ppoint_t p) +public static Object addpt(Object... arg) { +UNSUPPORTED("3r6t7ceh9f1lplt1ewgna2ynh"); // static void addpt(Ppoint_t p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ad7t5k9prp8sma4kc9pwszul3"); // if ((Bezctr == 0) || +UNSUPPORTED("eam5jo5658c75g0tppvkhcu31"); // (Bezpt[Bezctr - 1].x != p.x) || (Bezpt[Bezctr - 1].y != p.y)) +UNSUPPORTED("a0616m6xy91u5reig6r0gz4pg"); // Bezpt[Bezctr++] = p; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3xaxtxslceffm0wx9zcpiqjgb +// static ilcoord_t Bezier(ilcoord_t * V, int degree, double t, ilcoord_t * Left, ilcoord_t * Right) +public static __struct__ Bezier(pointf V, int degree, double t, pointf Left, pointf Right) { +// WARNING!! STRUCT +return Bezier_w_(V, degree, t, Left, Right).copy(); +} +private static __struct__ Bezier_w_(pointf V, int degree, double t, pointf Left, pointf Right) { +ENTERING("3xaxtxslceffm0wx9zcpiqjgb","Bezier"); +try { + int i, j; /* Index variables */ +UNSUPPORTED("3a1zgxysa3t54vyq7k6z62wlj"); // ilcoord_t Vtemp[5 + 1][5 + 1]; +UNSUPPORTED("byow1e8wyl29b607ktk3oabre"); // /* Copy control points */ +UNSUPPORTED("88y00f5lc64b0ryy0gup9n4sb"); // for (j = 0; j <= degree; j++) { +UNSUPPORTED("41awql5ne79yczmc4ilerplz3"); // Vtemp[0][j] = V[j]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("djq9b7i3h3uq77dr40ha5o1kr"); // /* Triangle computation */ +UNSUPPORTED("227fs1hi4i0vh0vutu3yqxarc"); // for (i = 1; i <= degree; i++) { +UNSUPPORTED("85sv74izli9gqstg0gqk2oznr"); // for (j = 0; j <= degree - i; j++) { +UNSUPPORTED("6iowld1ly15t67xtpbyotvond"); // Vtemp[i][j].x = +UNSUPPORTED("c9tdp4smiiyeg0r8t5udg667x"); // (1.0 - t) * Vtemp[i - 1][j].x + t * Vtemp[i - 1][j + 1].x; +UNSUPPORTED("d7sb593gdk2getmc8zbflz6wq"); // Vtemp[i][j].y = +UNSUPPORTED("d3h6zzsk3tsvl81ds9isu6lrl"); // (1.0 - t) * Vtemp[i - 1][j].y + t * Vtemp[i - 1][j + 1].y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7eb3j7c6ls3zjqm1bteyyg8dd"); // if (Left != ((ilcoord_t *)0)) +UNSUPPORTED("dzkatwg4oc51psd4chd1yao6"); // for (j = 0; j <= degree; j++) +UNSUPPORTED("7zwjg663emkibah35euakizmj"); // Left[j] = Vtemp[j][0]; +UNSUPPORTED("6h28oxt02m95ar9k62xgzs2"); // if (Right != ((ilcoord_t *)0)) +UNSUPPORTED("dzkatwg4oc51psd4chd1yao6"); // for (j = 0; j <= degree; j++) +UNSUPPORTED("1rki0omqbix35s4wfx442v4ty"); // Right[j] = Vtemp[degree - j][j]; +UNSUPPORTED("b23mms6jm55li1q74etrttq6m"); // return (Vtemp[degree][0]); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} finally { +LEAVING("3xaxtxslceffm0wx9zcpiqjgb","Bezier"); +} +} + + + + +//3 2e1dbsqqgp7k8i5doa7prt6jc +// static void append_bezier(Ppoint_t * bezier) +public static Object append_bezier(Object... arg) { +UNSUPPORTED("5zm80zw3vn3gsj6zre2ynedck"); // static void append_bezier(Ppoint_t * bezier) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("544oxt8zbzz0u06hmg8ivxp3p"); // double a; +UNSUPPORTED("2lyetpb097xdkox7xgnw605xd"); // ilcoord_t left[4], right[4]; +UNSUPPORTED("4c5enrmeixpvwutnq2tbdb7ck"); // a = fabs(area2(bezier[0], bezier[1], bezier[2])) +UNSUPPORTED("4fcyo20wfetvf2l99r0pchq0l"); // + fabs(area2(bezier[2], bezier[3], bezier[0])); +UNSUPPORTED("3y36bo7zjs0dx2q4g6sl5awol"); // if (a < .5) { +UNSUPPORTED("ar7l14fqklgvayi8jwebecz25"); // addpt(bezier[0]); +UNSUPPORTED("268jkzt57hijh09gst1b1yl1e"); // addpt(bezier[3]); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("4k2sg523wku7lp7tcc9l6ggoj"); // (void) Bezier(bezier, 3, .5, left, right); +UNSUPPORTED("bct90i183hbs4qhx4mmpnep1i"); // append_bezier(left); +UNSUPPORTED("5dcnwocv9fm5psu807c2hpft6"); // append_bezier(right); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/pathplan/inpoly__c.java plantuml-8039/src/gen/lib/pathplan/inpoly__c.java --- plantuml-8024/src/gen/lib/pathplan/inpoly__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pathplan/inpoly__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,76 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pathplan; +import static smetana.core.Macro.UNSUPPORTED; + +public class inpoly__c { +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 7pb9zum2n4wlgil34lvh8i0ts +// typedef double COORD + + + + +//3 8npqmbhzypa3vnvez32eenjfm +// int in_poly(Ppoly_t poly, Ppoint_t q) +public static Object in_poly(Object... arg) { +UNSUPPORTED("591yna7lwmr02zotphxiz9jfy"); // int in_poly(Ppoly_t poly, Ppoint_t q) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3i49psuyz9205y6sp22yi0vg6"); // int i, i1; /* point index; i1 = i-1 mod n */ +UNSUPPORTED("5jiiwgyq1pv7khw5ygfo33wmr"); // int n; +UNSUPPORTED("ds3u5c0i2zcpyxll28zg5jfxz"); // Ppoint_t *P; +UNSUPPORTED("aseexj0pf1b85gzltie980nx4"); // P = poly.ps; +UNSUPPORTED("5wttw208juz89to1dojh5ke2v"); // n = poly.pn; +UNSUPPORTED("1vi49g48u2rc9v88yhabta0yw"); // for (i = 0; i < n; i++) { +UNSUPPORTED("esgbg5oqpjx4h4cvtcp2vu9ar"); // i1 = (i + n - 1) % n; +UNSUPPORTED("40aader15dux12c5hbpxegrwb"); // if (wind(P[i1],P[i],q) == 1) return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2mmsh4mer8e3bkt2jk4gf4cyq"); // return ((!(0))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/pathplan/route__c.java plantuml-8039/src/gen/lib/pathplan/route__c.java --- plantuml-8024/src/gen/lib/pathplan/route__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pathplan/route__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,743 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pathplan; +import static gen.lib.pathplan.solvers__c.solve3; +import static smetana.core.JUtils.setjmp; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtils.sqrt; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.DISTSQ; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Ppoly_t; +import h.pointf; +import h.tna_t; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__array_of_struct__; +import smetana.core.__ptr__; +import smetana.core.__struct__; +import smetana.core.jmp_buf; + +public class route__c { +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 7pb9zum2n4wlgil34lvh8i0ts +// typedef double COORD + + +//1 540u5gu9i0x1wzoxqqx5n2vwp +// static jmp_buf jbuf +private static jmp_buf jbuf = new jmp_buf(); + +//1 3k2f2er3efsrl0210su710vf +// static Ppoint_t *ops +//static private __ptr__ ops; + +//1 ds2k0zdfzruet3qxk0duytkjx +// static int opn, opl +//private static int opn; +//private static int opl; + + + +//3 9stmrdqlmufyk2wutp3totr5j +// int Proutespline(Pedge_t * edges, int edgen, Ppolyline_t input, Ppoint_t * evs, Ppolyline_t * output) +public static int Proutespline(__ptr__ edges, int edgen, final __struct__ input, __ptr__ evs, __ptr__ output) { +// WARNING!! STRUCT +return Proutespline_w_(edges, edgen, input.copy(), evs, output); +} +private static int Proutespline_w_(__ptr__ edges, int edgen, final __struct__ input, __ptr__ evs, __ptr__ output) { +ENTERING("9stmrdqlmufyk2wutp3totr5j","Proutespline"); +try { + __ptr__ inps; + int inpn; + /* unpack into previous format rather than modify legacy code */ + inps = input.getPtr("ps"); + inpn = input.getInt("pn"); + if (setjmp(jbuf)!=0) +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; + /* generate the splines */ + evs.plus(0).getStruct().____(normv(evs.plus(0).getStruct())); + evs.plus(1).getStruct().____(normv(evs.plus(1).getStruct())); + Z._().opl = 0; + growops(4); + Z._().ops_route.plus(Z._().opl).setStruct(inps.plus(0).getStruct()); + Z._().opl++; + if (reallyroutespline(edges, edgen, inps, inpn, evs.plus(0).getStruct(), evs.plus(1).getStruct()) == -1) + return -1; + output.setInt("pn", Z._().opl); + output.setPtr("ps", Z._().ops_route); + return 0; +} finally { +LEAVING("9stmrdqlmufyk2wutp3totr5j","Proutespline"); +} +} + + + + +//3 13dxqzbgtpl4ubnnvw6ehzzi9 +// static int reallyroutespline(Pedge_t * edges, int edgen, Ppoint_t * inps, int inpn, Ppoint_t ev0, Ppoint_t ev1) +//private static __ptr__ tnas; +//private static int tnan; +public static int reallyroutespline(__ptr__ edges, int edgen, __ptr__ inps, int inpn, final __struct__ ev0, final __struct__ ev1) { +// WARNING!! STRUCT +return reallyroutespline_w_(edges, edgen, inps, inpn, ev0.copy(), ev1.copy()); +} +private static int reallyroutespline_w_(__ptr__ edges, int edgen, __ptr__ inps, int inpn, final __struct__ ev0, final __struct__ ev1) { +ENTERING("13dxqzbgtpl4ubnnvw6ehzzi9","reallyroutespline"); +try { + final __struct__ p1 = __struct__.from(pointf.class), p2 = __struct__.from(pointf.class), cp1 = __struct__.from(pointf.class), cp2 = __struct__.from(pointf.class), p = __struct__.from(pointf.class); + final __struct__ v1 = __struct__.from(pointf.class), v2 = __struct__.from(pointf.class), splitv = __struct__.from(pointf.class), splitv1 = __struct__.from(pointf.class), splitv2 = __struct__.from(pointf.class); + double maxd, d, t; + int maxi, i, spliti; + if (Z._().tnan < inpn) { + if (N(Z._().tnas)) { + if (N(Z._().tnas = Memory.malloc(sizeof(tna_t.class, inpn)))) + return -1; + } else { + if (N(Z._().tnas = Memory.realloc(Z._().tnas, sizeof(tna_t.class, inpn)))) + return -1; + } + Z._().tnan = inpn; + } + Z._().tnas.plus(0).getStruct().setDouble("t", 0); + for (i = 1; i < inpn; i++) + Z._().tnas.plus(i).getStruct().setDouble("t", Z._().tnas.plus(i-1).getStruct().getDouble("t") + dist(inps.plus(i).getStruct(), inps.plus(i-1).getStruct())); + for (i = 1; i < inpn; i++) + Z._().tnas.plus(i).getStruct().setDouble("t", Z._().tnas.plus(i).getStruct().getDouble("t") / Z._().tnas.plus(inpn - 1).getStruct().getDouble("t")); + for (i = 0; i < inpn; i++) { + Z._().tnas.plus(i).getStruct().getArrayOfStruct("a").plus(0).setStruct(scale(ev0, B1(Z._().tnas.plus(i).getStruct().getDouble("t")))); + Z._().tnas.plus(i).getStruct().getArrayOfStruct("a").plus(1).setStruct(scale(ev1, B2(Z._().tnas.plus(i).getStruct().getDouble("t")))); + } + if (mkspline(inps, inpn, Z._().tnas, ev0, ev1, p1.amp(), v1.amp(), p2.amp(), v2.amp()) == -1) + return -1; + if (splinefits(edges, edgen, p1, v1, p2, v2, inps, inpn)!=0) + return 0; + cp1.____(add(p1, scale(v1, 1 / 3.0))); + cp2.____(sub(p2, scale(v2, 1 / 3.0))); + for (maxd = -1, maxi = -1, i = 1; i < inpn - 1; i++) { + t = Z._().tnas.plus(i).getDouble("t"); + p.setDouble("x", B0(t) * p1.getDouble("x") + B1(t) * cp1.getDouble("x") + B2(t) * cp2.getDouble("x") + B3(t) * p2.getDouble("x")); + p.setDouble("y", B0(t) * p1.getDouble("y") + B1(t) * cp1.getDouble("y") + B2(t) * cp2.getDouble("y") + B3(t) * p2.getDouble("y")); + if ((d = dist(p, inps.plus(i).getStruct())) > maxd) + {maxd = d; maxi = i;} + } + spliti = maxi; + splitv1.____(normv(sub(inps.plus(spliti).getStruct(), inps.plus(spliti - 1).getStruct()))); + splitv2.____(normv(sub(inps.plus(spliti + 1).getStruct(), inps.plus(spliti).getStruct()))); + splitv.____(normv(add(splitv1, splitv2))); + reallyroutespline(edges, edgen, inps, spliti + 1, ev0, splitv); + reallyroutespline(edges, edgen, inps.plus(spliti), inpn - spliti, splitv, + ev1); + return 0; +} finally { +LEAVING("13dxqzbgtpl4ubnnvw6ehzzi9","reallyroutespline"); +} +} + + + + +//3 29sok6jkfyobf83q130snkhmh +// static int mkspline(Ppoint_t * inps, int inpn, tna_t * tnas, Ppoint_t ev0, Ppoint_t ev1, Ppoint_t * sp0, Ppoint_t * sv0, Ppoint_t * sp1, Ppoint_t * sv1) +public static int mkspline(__ptr__ inps, int inpn, __ptr__ tnas, final __struct__ ev0, final __struct__ ev1, __ptr__ sp0, __ptr__ sv0, __ptr__ sp1, __ptr__ sv1) { +// WARNING!! STRUCT +return mkspline_w_(inps, inpn, tnas, ev0.copy(), ev1.copy(), sp0, sv0, sp1, sv1); +} +private static int mkspline_w_(__ptr__ inps, int inpn, __ptr__ tnas, final __struct__ ev0, final __struct__ ev1, __ptr__ sp0, __ptr__ sv0, __ptr__ sp1, __ptr__ sv1) { +ENTERING("29sok6jkfyobf83q130snkhmh","mkspline"); +try { + final __struct__ tmp = __struct__.from(pointf.class); + double c[][] = new double[2][2]; + double x[] = new double[2]; + double det01, det0X, detX1; + double d01, scale0, scale3; + int i; + scale0 = scale3 = 0.0; + c[0][0] = c[0][1] = c[1][0] = c[1][1] = 0.0; + x[0] = x[1] = 0.0; + for (i = 0; i < inpn; i++) { + c[0][0] += dot(tnas.plus(i).getStruct().getArrayOfStruct("a").plus(0).getStruct(), tnas.plus(i).getStruct().getArrayOfStruct("a").plus(0).getStruct()); + c[0][1] += dot(tnas.plus(i).getStruct().getArrayOfStruct("a").plus(0).getStruct(), tnas.plus(i).getStruct().getArrayOfStruct("a").plus(1).getStruct()); + c[1][0] = c[0][1]; + c[1][1] += dot(tnas.plus(i).getStruct().getArrayOfStruct("a").plus(1).getStruct(), tnas.plus(i).getStruct().getArrayOfStruct("a").plus(1).getStruct()); + tmp.____(sub(inps.plus(i).getStruct(), add(scale(inps.plus(0).getStruct(), B01(tnas.plus(i).getStruct().getDouble("t"))), + scale(inps.plus(inpn - 1).getStruct(), B23(tnas.plus(i).getStruct().getDouble("t")))))); + x[0] += dot(tnas.plus(i).getStruct().getArrayOfStruct("a").plus(0).getStruct(), tmp); + x[1] += dot(tnas.plus(i).getStruct().getArrayOfStruct("a").plus(1).getStruct(), tmp); + } + det01 = c[0][0] * c[1][1] - c[1][0] * c[0][1]; + det0X = c[0][0] * x[1] - c[0][1] * x[0]; + detX1 = x[0] * c[1][1] - x[1] * c[0][1]; + if (((det01) >= 0 ? (det01) : -(det01)) >= 1e-6) { + scale0 = detX1 / det01; + scale3 = det0X / det01; + } + if (((det01) >= 0 ? (det01) : -(det01)) < 1e-6 || scale0 <= 0.0 || scale3 <= 0.0) { + d01 = dist(inps.plus(0).getStruct(), inps.plus(inpn - 1).getStruct()) / 3.0; + scale0 = d01; + scale3 = d01; + } + sp0.setStruct(inps.plus(0).getStruct()); + sv0.setStruct(scale(ev0, scale0)); + sp1.setStruct(inps.plus(inpn - 1).getStruct()); + sv1.setStruct(scale(ev1, scale3)); + return 0; +} finally { +LEAVING("29sok6jkfyobf83q130snkhmh","mkspline"); +} +} + + + + +//3 ea6jsc0rwfyjtmmuxax6r5ngk +// static double dist_n(Ppoint_t * p, int n) +public static double dist_n(__ptr__ p, int n) { +ENTERING("ea6jsc0rwfyjtmmuxax6r5ngk","dist_n"); +try { + int i; + double rv; + rv = 0.0; + for (i = 1; i < n; i++) { + rv += + sqrt((p.plus(i).getStruct().getDouble("x") - p.plus(i - 1).getStruct().getDouble("x")) * (p.plus(i).getStruct().getDouble("x") - p.plus(i - 1).getStruct().getDouble("x"))+ + (p.plus(i).getStruct().getDouble("y") - p.plus(i - 1).getStruct().getDouble("y")) * (p.plus(i).getStruct().getDouble("y") - p.plus(i - 1).getStruct().getDouble("y"))); + } + return rv; +} finally { +LEAVING("ea6jsc0rwfyjtmmuxax6r5ngk","dist_n"); +} +} + + + + +//3 987ednrgu5qo9dzhpiox47mhb +// static int splinefits(Pedge_t * edges, int edgen, Ppoint_t pa, Pvector_t va, Ppoint_t pb, Pvector_t vb, Ppoint_t * inps, int inpn) +public static int splinefits(__ptr__ edges, int edgen, final __struct__ pa, final __struct__ va, final __struct__ pb, final __struct__ vb, __ptr__ inps, int inpn) { +// WARNING!! STRUCT +return splinefits_w_(edges, edgen, pa.copy(), va.copy(), pb.copy(), vb.copy(), inps, inpn); +} +private static int splinefits_w_(__ptr__ edges, int edgen, final __struct__ pa, final __struct__ va, final __struct__ pb, final __struct__ vb, __ptr__ inps, int inpn) { +ENTERING("987ednrgu5qo9dzhpiox47mhb","splinefits"); +try { + final __array_of_struct__ sps = __array_of_struct__.malloc(pointf.class, 4); + double a, b; + int pi; + int forceflag; + int first = 1; + forceflag = (inpn == 2 ? 1 : 0); + a = b = 4; + for (;;) { + sps.plus(0).getStruct().setDouble("x", pa.getDouble("x")); + sps.plus(0).getStruct().setDouble("y", pa.getDouble("y")); + sps.plus(1).getStruct().setDouble("x", pa.getDouble("x") + a * va.getDouble("x") / 3.0); + sps.plus(1).getStruct().setDouble("y", pa.getDouble("y") + a * va.getDouble("y") / 3.0); + sps.plus(2).getStruct().setDouble("x", pb.getDouble("x") - b * vb.getDouble("x") / 3.0); + sps.plus(2).getStruct().setDouble("y", pb.getDouble("y") - b * vb.getDouble("y") / 3.0); + sps.plus(3).getStruct().setDouble("x", pb.getDouble("x")); + sps.plus(3).getStruct().setDouble("y", pb.getDouble("y")); + /* shortcuts (paths shorter than the shortest path) not allowed - + * they must be outside the constraint polygon. this can happen + * if the candidate spline intersects the constraint polygon exactly + * on sides or vertices. maybe this could be more elegant, but + * it solves the immediate problem. we could also try jittering the + * constraint polygon, or computing the candidate spline more carefully, + * for example using the path. SCN */ + if (first!=0 && (dist_n(sps.asPtr(), 4) < (dist_n(inps, inpn) - 1E-3))) + return 0; + first = 0; + if (splineisinside(edges, edgen, sps)) { + growops(Z._().opl + 4); + for (pi = 1; pi < 4; pi++) { + Z._().ops_route.plus(Z._().opl).setDouble("x", sps.plus(pi).getStruct().getDouble("x")); + Z._().ops_route.plus(Z._().opl).setDouble("y", sps.plus(pi).getStruct().getDouble("y")); + Z._().opl++; + } + return 1; + } + if (a == 0 && b == 0) { + if (forceflag!=0) { + growops(Z._().opl + 4); + for (pi = 1; pi < 4; pi++) + { + Z._().ops_route.plus(Z._().opl).setDouble("x", sps.plus(pi).getStruct().getDouble("x")); + Z._().ops_route.plus(Z._().opl).setDouble("y", sps.plus(pi).getStruct().getDouble("y")); + Z._().opl++; + } + return 1; + } + break; + } + if (a > .01) + { + a /= 2; + b /= 2; + } + else + a = b = 0; + } + return 0; +} finally { +LEAVING("987ednrgu5qo9dzhpiox47mhb","splinefits"); +} +} + + + + +//3 b6eghkeu16aum3l778ig52ht1 +// static int splineisinside(Pedge_t * edges, int edgen, Ppoint_t * sps) +public static boolean splineisinside(__ptr__ edges, int edgen, __array_of_struct__ sps) { +ENTERING("b6eghkeu16aum3l778ig52ht1","splineisinside"); +try { + double roots[] = new double[4]; + int rooti, rootn; + int ei; + final __array_of_struct__ lps = __array_of_struct__.malloc(pointf.class, 2); + final __struct__ ip = __struct__.from(pointf.class); + double t, ta, tb, tc, td; + for (ei = 0; ei < edgen; ei++) { + lps.plus(0).setStruct(edges.plus(ei).getStruct("a")); + lps.plus(1).setStruct(edges.plus(ei).getStruct("b")); + /* if ((rootn = splineintersectsline (sps, lps, roots)) == 4) + return 1; */ + if ((rootn = splineintersectsline(sps, lps, roots)) == 4) + continue; + for (rooti = 0; rooti < rootn; rooti++) { + if (roots[rooti] < 1E-6 || roots[rooti] > 1 - 1E-6) + continue; + t = roots[rooti]; + td = t * t * t; + tc = 3 * t * t * (1 - t); + tb = 3 * t * (1 - t) * (1 - t); + ta = (1 - t) * (1 - t) * (1 - t); + ip.setDouble("x", ta * sps.plus(0).getDouble("x") + tb * sps.plus(1).getDouble("x") + + tc * sps.plus(2).getDouble("x") + td * sps.plus(3).getDouble("x")); + ip.setDouble("y", ta * sps.plus(0).getDouble("y") + tb * sps.plus(1).getDouble("y") + + tc * sps.plus(2).getDouble("y") + td * sps.plus(3).getDouble("y")); + if (DISTSQ(ip, lps.plus(0).getStruct()) < 1E-3 || + DISTSQ(ip, lps.plus(1).getStruct()) < 1E-3) + continue; + return false; + } + } + return true; +} finally { +LEAVING("b6eghkeu16aum3l778ig52ht1","splineisinside"); +} +} + + + + +//3 32nc8itszi77u36la8npt2870 +// static int splineintersectsline(Ppoint_t * sps, Ppoint_t * lps, double *roots) +public static int splineintersectsline(__array_of_struct__ sps, __array_of_struct__ lps, double roots[]) { +ENTERING("32nc8itszi77u36la8npt2870","splineintersectsline"); +try { + double scoeff[] = new double[4]; + double xcoeff[] = new double[2]; + double ycoeff[] = new double[2]; + double xroots[] = new double[3]; + double yroots[] = new double[3]; + double tv, sv, rat; + int rootn[] = new int[]{0}; + int xrootn, yrootn, i, j; + xcoeff[0] = lps.plus(0).getStruct().getDouble("x"); + xcoeff[1] = lps.plus(1).getStruct().getDouble("x") - lps.plus(0).getStruct().getDouble("x"); + ycoeff[0] = lps.plus(0).getStruct().getDouble("y"); + ycoeff[1] = lps.plus(1).getStruct().getDouble("y") - lps.plus(0).getStruct().getDouble("y"); + rootn[0] = 0; + if (xcoeff[1] == 0) { + if (ycoeff[1] == 0) { + points2coeff(sps.plus(0).getStruct().getDouble("x"), sps.plus(1).getStruct().getDouble("x"), sps.plus(2).getStruct().getDouble("x"), sps.plus(3).getStruct().getDouble("x"), scoeff); + scoeff[0] -= xcoeff[0]; + xrootn = solve3(scoeff, xroots); + points2coeff(sps.plus(0).getStruct().getDouble("y"), sps.plus(1).getStruct().getDouble("y"), sps.plus(2).getStruct().getDouble("y"), sps.plus(3).getStruct().getDouble("y"), scoeff); + scoeff[0] -= ycoeff[0]; + yrootn = solve3(scoeff, yroots); + if (xrootn == 4) + if (yrootn == 4) + return 4; + else + for (j = 0; j < yrootn; j++) + addroot(yroots[j], roots, rootn); + else if (yrootn == 4) + for (i = 0; i < xrootn; i++) + addroot(xroots[i], roots, rootn); + else + for (i = 0; i < xrootn; i++) + for (j = 0; j < yrootn; j++) + if (xroots[i] == yroots[j]) + addroot(xroots[i], roots, rootn); + return rootn[0]; + } else { + points2coeff(sps.plus(0).getStruct().getDouble("x"), sps.plus(1).getStruct().getDouble("x"), sps.plus(2).getStruct().getDouble("x"), sps.plus(3).getStruct().getDouble("x"), scoeff); + scoeff[0] -= xcoeff[0]; + xrootn = solve3(scoeff, xroots); + if (xrootn == 4) + return 4; + for (i = 0; i < xrootn; i++) { + tv = xroots[i]; + if (tv >= 0 && tv <= 1) { + points2coeff(sps.plus(0).getStruct().getDouble("y"), sps.plus(1).getStruct().getDouble("y"), sps.plus(2).getStruct().getDouble("y"), sps.plus(3).getStruct().getDouble("y"), + scoeff); + sv = scoeff[0] + tv * (scoeff[1] + tv * + (scoeff[2] + tv * scoeff[3])); + sv = (sv - ycoeff[0]) / ycoeff[1]; + if ((0 <= sv) && (sv <= 1)) + addroot(tv, roots, rootn); + } + } + return rootn[0]; + } + } else { + rat = ycoeff[1] / xcoeff[1]; + points2coeff(sps.plus(0).getStruct().getDouble("y") - rat * sps.plus(0).getStruct().getDouble("x"), sps.plus(1).getStruct().getDouble("y") - rat * sps.plus(1).getStruct().getDouble("x"), + sps.plus(2).getStruct().getDouble("y") - rat * sps.plus(2).getStruct().getDouble("x"), sps.plus(3).getStruct().getDouble("y") - rat * sps.plus(3).getStruct().getDouble("x"), + scoeff); + scoeff[0] += rat * xcoeff[0] - ycoeff[0]; + xrootn = solve3(scoeff, xroots); + if (xrootn == 4) + return 4; + for (i = 0; i < xrootn; i++) { + tv = xroots[i]; + if (tv >= 0 && tv <= 1) { + points2coeff(sps.plus(0).getStruct().getDouble("x"), sps.plus(1).getStruct().getDouble("x"), sps.plus(2).getStruct().getDouble("x"), sps.plus(3).getStruct().getDouble("x"), + scoeff); + sv = scoeff[0] + tv * (scoeff[1] + + tv * (scoeff[2] + tv * scoeff[3])); + sv = (sv - xcoeff[0]) / xcoeff[1]; + if ((0 <= sv) && (sv <= 1)) + addroot(tv, roots, rootn); + } + } + return rootn[0]; + } +} finally { +LEAVING("32nc8itszi77u36la8npt2870","splineintersectsline"); +} +} + + + + +//3 9011b45d42bhwfxzhgxqnlfhp +// static void points2coeff(double v0, double v1, double v2, double v3, double *coeff) +public static void points2coeff(double v0, double v1, double v2, double v3, double coeff[]) { +ENTERING("9011b45d42bhwfxzhgxqnlfhp","points2coeff"); +try { + coeff[3] = v3 + 3 * v1 - (v0 + 3 * v2); + coeff[2] = 3 * v0 + 3 * v2 - 6 * v1; + coeff[1] = 3 * (v1 - v0); + coeff[0] = v0; +} finally { +LEAVING("9011b45d42bhwfxzhgxqnlfhp","points2coeff"); +} +} + + + + +//3 6ldk438jjflh0huxkg4cs8kwu +// static void addroot(double root, double *roots, int *rootnp) +public static void addroot(double root, double roots[], int rootnp[]) { +ENTERING("6ldk438jjflh0huxkg4cs8kwu","addroot"); +try { + if (root >= 0 && root <= 1) { + roots[rootnp[0]] = root; + rootnp[0]++; + } +} finally { +LEAVING("6ldk438jjflh0huxkg4cs8kwu","addroot"); +} +} + + + + +//3 3i8m1m9fg7qmnt8jloorwlu8e +// static Pvector_t normv(Pvector_t v) +public static __struct__ normv(final __struct__ v) { +// WARNING!! STRUCT +return normv_w_(v.copy()).copy(); +} +private static __struct__ normv_w_(final __struct__ v) { +ENTERING("3i8m1m9fg7qmnt8jloorwlu8e","normv"); +try { + double d; + d = v.getDouble("x") * v.getDouble("x") + v.getDouble("y") * v.getDouble("y"); + if (d > 1e-6) { + d = sqrt(d); + v.setDouble("x", v.getDouble("x") / d); + v.setDouble("y", v.getDouble("y") / d); + } + return v; +} finally { +LEAVING("3i8m1m9fg7qmnt8jloorwlu8e","normv"); +} +} + + + + +//3 d59jcnpi1y0wr8e9uwxny2fvk +// static void growops(int newopn) +public static void growops(int newopn) { +ENTERING("d59jcnpi1y0wr8e9uwxny2fvk","growops"); +try { + if (newopn <= Z._().opn_route) + return; + if (N(Z._().ops_route)) { + if (N(Z._().ops_route = Memory.malloc(sizeof (pointf.class, newopn)))) { +UNSUPPORTED("413an1hqgkb4ezaec6qdsdplx"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\route.c", 32, ("cannot malloc ops")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + } else { + if (N(Z._().ops_route = Memory.realloc(Z._().ops_route, + sizeof (pointf.class, newopn)))) { +UNSUPPORTED("8u0qgahxvk5pplf90thmhwxhl"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\route.c", 32, ("cannot realloc ops")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + } + Z._().opn_route = newopn; +} finally { +LEAVING("d59jcnpi1y0wr8e9uwxny2fvk","growops"); +} +} + + + + +//3 f4a7nt247bokdwr2owda050of +// static Ppoint_t add(Ppoint_t p1, Ppoint_t p2) +public static __struct__ add(final __struct__ p1, final __struct__ p2) { +// WARNING!! STRUCT +return add_w_(p1.copy(), p2.copy()).copy(); +} +private static __struct__ add_w_(final __struct__ p1, final __struct__ p2) { +ENTERING("f4a7nt247bokdwr2owda050of","add"); +try { + p1.setDouble("x", p1.getDouble("x") + p2.getDouble("x")); + p1.setDouble("y", p1.getDouble("y") + p2.getDouble("y")); + return p1; +} finally { +LEAVING("f4a7nt247bokdwr2owda050of","add"); +} +} + + + + +//3 c4l1gvlkv2s4mi6os7r9dh89f +// static Ppoint_t sub(Ppoint_t p1, Ppoint_t p2) +public static __struct__ sub(final __struct__ p1, final __struct__ p2) { +// WARNING!! STRUCT +return sub_w_(p1.copy(), p2.copy()).copy(); +} +private static __struct__ sub_w_(final __struct__ p1, final __struct__ p2) { +ENTERING("c4l1gvlkv2s4mi6os7r9dh89f","sub"); +try { + p1.setDouble("x", p1.getDouble("x") - p2.getDouble("x")); + p1.setDouble("y", p1.getDouble("y") - p2.getDouble("y")); + return p1; +} finally { +LEAVING("c4l1gvlkv2s4mi6os7r9dh89f","sub"); +} +} + + + + +//3 dqnlz0tceriykws4ngudl94w9 +// static double dist(Ppoint_t p1, Ppoint_t p2) +public static double dist(final __struct__ p1, final __struct__ p2) { +// WARNING!! STRUCT +return dist_w_(p1.copy(), p2.copy()); +} +private static double dist_w_(final __struct__ p1, final __struct__ p2) { +ENTERING("dqnlz0tceriykws4ngudl94w9","dist"); +try { + double dx, dy; + dx = p2.getDouble("x") - p1.getDouble("x"); + dy = p2.getDouble("y") - p1.getDouble("y"); + return sqrt(dx * dx + dy * dy); +} finally { +LEAVING("dqnlz0tceriykws4ngudl94w9","dist"); +} +} + + + + +//3 19149pdllzhplvew0bsh5v6hy +// static Ppoint_t scale(Ppoint_t p, double c) +public static __struct__ scale(final __struct__ p, double c) { +// WARNING!! STRUCT +return scale_w_(p.copy(), c).copy(); +} +private static __struct__ scale_w_(final __struct__ p, double c) { +ENTERING("19149pdllzhplvew0bsh5v6hy","scale"); +try { + p.setDouble("x", p.getDouble("x") * c); + p.setDouble("y", p.getDouble("y") * c); + return p; +} finally { +LEAVING("19149pdllzhplvew0bsh5v6hy","scale"); +} +} + + + + +//3 7ebsa2s1eoopqj1pp43bh5fw +// static double dot(Ppoint_t p1, Ppoint_t p2) +public static double dot(final __struct__ p1, final __struct__ p2) { +// WARNING!! STRUCT +return dot_w_(p1.copy(), p2.copy()); +} +private static double dot_w_(final __struct__ p1, final __struct__ p2) { +ENTERING("7ebsa2s1eoopqj1pp43bh5fw","dot"); +try { + return p1.getDouble("x") * p2.getDouble("x") + p1.getDouble("y") * p2.getDouble("y"); +} finally { +LEAVING("7ebsa2s1eoopqj1pp43bh5fw","dot"); +} +} + + + + +//3 73nhv3cuxqa9va0puve0ji2d5 +// static double B0(double t) +public static double B0(double t) { +ENTERING("73nhv3cuxqa9va0puve0ji2d5","B0"); +try { + double tmp = 1.0 - t; + return tmp * tmp * tmp; +} finally { +LEAVING("73nhv3cuxqa9va0puve0ji2d5","B0"); +} +} + + + + +//3 jkfs4ak0xr5pzwye7qnm6irp +// static double B1(double t) +public static double B1(double t) { +ENTERING("jkfs4ak0xr5pzwye7qnm6irp","B1"); +try { + double tmp = 1.0 - t; + return 3 * t * tmp * tmp; +} finally { +LEAVING("jkfs4ak0xr5pzwye7qnm6irp","B1"); +} +} + + + + +//3 9ziajuqys2xceftdw0vac02g9 +// static double B2(double t) +public static double B2(double t) { +ENTERING("9ziajuqys2xceftdw0vac02g9","B2"); +try { + double tmp = 1.0 - t; + return 3 * t * t * tmp; +} finally { +LEAVING("9ziajuqys2xceftdw0vac02g9","B2"); +} +} + + + + +//3 5sjstsgkvoou9grsty3y0cnvg +// static double B3(double t) +public static double B3(double t) { +ENTERING("5sjstsgkvoou9grsty3y0cnvg","B3"); +try { + return t * t * t; +} finally { +LEAVING("5sjstsgkvoou9grsty3y0cnvg","B3"); +} +} + + + + +//3 9hzfapzxcesobeegq4aokksbp +// static double B01(double t) +public static double B01(double t) { +ENTERING("9hzfapzxcesobeegq4aokksbp","B01"); +try { + double tmp = 1.0 - t; + return tmp * tmp * (tmp + 3 * t); +} finally { +LEAVING("9hzfapzxcesobeegq4aokksbp","B01"); +} +} + + + + +//3 571cxp9l20eyvqjwdoy9vnc6t +// static double B23(double t) +public static double B23(double t) { +ENTERING("571cxp9l20eyvqjwdoy9vnc6t","B23"); +try { + double tmp = 1.0 - t; + return t * t * (3 * tmp + t); +} finally { +LEAVING("571cxp9l20eyvqjwdoy9vnc6t","B23"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/pathplan/shortest__c.java plantuml-8039/src/gen/lib/pathplan/shortest__c.java --- plantuml-8024/src/gen/lib/pathplan/shortest__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pathplan/shortest__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,726 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pathplan; +import static smetana.core.JUtils.EQ; +import static smetana.core.JUtils.LOG2; +import static smetana.core.JUtils.NEQ; +import static smetana.core.JUtils.setjmp; +import static smetana.core.JUtils.sizeof; +import static smetana.core.JUtils.sizeof_starstar_empty; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; +import static smetana.core.Macro.HUGE_VAL; +import static smetana.core.Macro.N; +import static smetana.core.Macro.UNSUPPORTED; +import h.Ppoly_t; +import h.pointf; +import h.pointnlink_t; +import h.triangle_t; +import smetana.core.Memory; +import smetana.core.Z; +import smetana.core.__array_of_struct__; +import smetana.core.__ptr__; +import smetana.core.__struct__; +import smetana.core.jmp_buf; + +public class shortest__c { +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 7pb9zum2n4wlgil34lvh8i0ts +// typedef double COORD + + +//1 540u5gu9i0x1wzoxqqx5n2vwp +// static jmp_buf jbuf +private static jmp_buf jbuf = new jmp_buf(); + +//1 3gj35j1owzho1bj8qrr8j520a +// static pointnlink_t *pnls, **pnlps +//private static pointnlink_t pnls; +//private static __ptr__ pnlps; + +//1 6r0oj01m6zabkua5f5x778wq6 +// static int pnln, pnll +//private static int pnln, pnll; + +//1 aywrlzd2nea9kkv8kzuctk7pt +// static triangle_t *tris +//private static __ptr__ tris; + +//1 a6aizijrgkmhf8hoyeqj49b60 +// static int trin, tril +//private static int trin, tril; + +//1 cc2hmcygbtg3adbwgkunssdhx +// static deque_t dq +//private final static __struct__ dq = __struct__.from(deque_t.class); + +//1 3k2f2er3efsrl0210su710vf +// static Ppoint_t *ops +//static private __ptr__ ops; + +//1 68lm8qk1d212p1ngzu26gudjc +// static int opn +//private static int opn; + + + +//3 2gub5b19vo2qexn56nw23wage +// int Pshortestpath(Ppoly_t * polyp, Ppoint_t * eps, Ppolyline_t * output) +public static int Pshortestpath(Ppoly_t polyp, __array_of_struct__ eps, Ppoly_t output) { +ENTERING("2gub5b19vo2qexn56nw23wage","Pshortestpath"); +try { + int pi, minpi; + double minx; + final __struct__ p1 = __struct__.from(pointf.class), p2 = __struct__.from(pointf.class), p3 = __struct__.from(pointf.class); + int trii, trij, ftrii, ltrii; + int ei; + final __array_of_struct__ epnls = __array_of_struct__.malloc(pointnlink_t.class, 2); + pointnlink_t lpnlp=null, rpnlp=null, pnlp=null; + triangle_t trip; + int splitindex; + if (setjmp(jbuf)!=0) + return -2; + /* make space */ + growpnls(polyp.getInt("pn")); + Z._().pnll = 0; + Z._().tril = 0; + growdq(polyp.getInt("pn") * 2); + Z._().dq.setInt("fpnlpi", Z._().dq.getInt("pnlpn") / 2); + Z._().dq.setInt("lpnlpi", Z._().dq.getInt("fpnlpi") - 1); + /* make sure polygon is CCW and load pnls array */ + for (pi = 0, minx = HUGE_VAL, minpi = -1; pi < polyp.getInt("pn"); pi++) { + if (minx > polyp.getPtr("ps").plus(pi).getDouble("x")) + { minx = polyp.getPtr("ps").plus(pi).getDouble("x"); + minpi = pi; } + } + p2.____(polyp.getPtr("ps").plus(minpi)); + p1.____(polyp.getPtr("ps").plus(((minpi == 0) ? polyp.getInt("pn") - 1 : minpi - 1))); + p3.____(polyp.getPtr("ps").plus(((minpi == polyp.getInt("pn") - 1) ? 0 : minpi + 1))); + if (((p1.getDouble("x") == p2.getDouble("x") && p2.getDouble("x") == p3.getDouble("x")) && (p3.getDouble("y") > p2.getDouble("y"))) || + ccw(p1.amp(), p2.amp(), p3.amp()) != 1) { + for (pi = polyp.getInt("pn") - 1; pi >= 0; pi--) { + if (pi < polyp.getInt("pn") - 1 + && polyp.getPtr("ps").plus(pi).getDouble("x") == polyp.getPtr("ps").plus(pi+1).getDouble("x") + && polyp.getPtr("ps").plus(pi).getDouble("y") == polyp.getPtr("ps").plus(pi+1).getDouble("y")) + continue; + Z._().pnls.plus(Z._().pnll).setPtr("pp", polyp.getPtr("ps").plus(pi)); + Z._().pnls.plus(Z._().pnll).setPtr("link", Z._().pnls.plus(Z._().pnll % polyp.getInt("pn"))); + Z._().pnlps.plus(Z._().pnll).setPtr(Z._().pnls.plus(Z._().pnll).getPtr()); + Z._().pnll++; + } + } else { + for (pi = 0; pi < polyp.getInt("pn"); pi++) { + if (pi > 0 && polyp.getPtr("ps").plus(pi).getDouble("x") == polyp.getPtr("ps").plus(pi - 1).getDouble("x") && + polyp.getPtr("ps").plus(pi).getDouble("y") == polyp.getPtr("ps").plus(pi - 1).getDouble("y")) + continue; + Z._().pnls.plus(Z._().pnll).setPtr("pp", polyp.getPtr("ps").plus(pi)); + Z._().pnls.plus(Z._().pnll).setPtr("link", Z._().pnls.plus(Z._().pnll % polyp.getInt("pn"))); + Z._().pnlps.plus(Z._().pnll).setPtr(Z._().pnls.plus(Z._().pnll)); + Z._().pnll++; + } + } + /* generate list of triangles */ + triangulate(Z._().pnlps, Z._().pnll); + /* connect all pairs of triangles that share an edge */ + for (trii = 0; trii < Z._().tril; trii++) + for (trij = trii + 1; trij < Z._().tril; trij++) + connecttris(trii, trij); + /* find first and last triangles */ + for (trii = 0; trii < Z._().tril; trii++) + if (pointintri(trii, eps.plus(0).getStruct().amp())) + break; + if (trii == Z._().tril) { +UNSUPPORTED("4ma3y8l4lmjcsw49kmsgknig6"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\shortest.c", 26, ("source point not in any triangle")); +UNSUPPORTED("8d9xfgejx5vgd6shva5wk5k06"); // return -1; + } + ftrii = trii; + for (trii = 0; trii < Z._().tril; trii++) + if (pointintri(trii, eps.plus(1).getStruct().amp())) + break; + if (trii == Z._().tril) { + System.err.println("libpath/%s:%d: %s\n" + "graphviz-2.38.0\\lib\\pathplan\\shortest.c" + 26 + ("destination point not in any triangle")); + return -1; + } + ltrii = trii; + /* mark the strip of triangles from eps[0] to eps[1] */ + if (N(marktripath(ftrii, ltrii))) { + System.err.println("libpath/%s:%d: %s" + "graphviz-2.38.0\\lib\\pathplan\\shortest.c" + 26 + ("cannot find triangle path")); + /* a straight line is better than failing */ + growops(2); + output.setInt("pn", 2); + Z._().ops_shortest.plus(0).setStruct(eps.plus(0).getStruct()); + Z._().ops_shortest.plus(1).setStruct(eps.plus(1).getStruct()); + output.setPtr("ps", Z._().ops_shortest); + return 0; + } + /* if endpoints in same triangle, use a single line */ + if (ftrii == ltrii) { +UNSUPPORTED("2nnkwrdxg0ma2m482dqarlbz6"); // growops(2); +UNSUPPORTED("5penbn9ky80i7jw02belk2zoj"); // output->pn = 2; +UNSUPPORTED("8i925e1tnbqn909027lqcg3fi"); // ops[0] = eps[0], ops[1] = eps[1]; +UNSUPPORTED("3rcg6c9s9nmostq9c3r5n6x4h"); // output->ps = ops; +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; + } + /* build funnel and shortest path linked list (in add2dq) */ + epnls.plus(0).getStruct().setPtr("pp", eps.plus(0).asPtr()); + epnls.plus(0).getStruct().setPtr("link", null); + epnls.plus(1).getStruct().setPtr("pp", eps.plus(1).asPtr()); + epnls.plus(1).getStruct().setPtr("link", null); + add2dq(1, epnls.plus(0).asPtr()); + Z._().dq.setInt("apex", Z._().dq.getInt("fpnlpi")); + trii = ftrii; + while (trii != -1) { + trip = (triangle_t) Z._().tris.plus(trii); + trip.setInt("mark", 2); + /* find the left and right points of the exiting edge */ + for (ei = 0; ei < 3; ei++) + if (trip.getArrayOfStruct("e").plus(ei).getStruct().getPtr("rtp")!=null && + trip.getArrayOfStruct("e").plus(ei).getStruct().getPtr("rtp").getInt("mark") == 1) + break; + if (ei == 3) { /* in last triangle */ + if (ccw(eps.plus(1).asPtr(), Z._().dq.getPtr("pnlps").plus(Z._().dq.getInt("fpnlpi")).getPtr().getPtr("pp"), + Z._().dq.getPtr("pnlps").plus(Z._().dq.getInt("lpnlpi")).getPtr().getPtr("pp")) == 1) + { + lpnlp = (pointnlink_t) Z._().dq.getPtr("pnlps").plus(Z._().dq.getInt("lpnlpi")).getPtr(); + rpnlp = (pointnlink_t) epnls.plus(1).asPtr(); + } else { + lpnlp = (pointnlink_t) epnls.plus(1).asPtr(); + rpnlp = (pointnlink_t) Z._().dq.getPtr("pnlps").plus(Z._().dq.getInt("lpnlpi")).getPtr(); + } + } else { + pnlp = (pointnlink_t) trip.getArrayOfStruct("e").plus((ei + 1) % 3).getStruct().getPtr("pnl1p"); + if (ccw(trip.getArrayOfStruct("e").plus(ei).getStruct().getPtr("pnl0p").getPtr("pp"), pnlp.getPtr("pp"), + trip.getArrayOfStruct("e").plus(ei).getStruct().getPtr("pnl1p").getPtr("pp")) == 1) +UNSUPPORTED("2cii65lhw4wb8nyvjv702v7md"); // lpnlp = trip->e[ei].pnl1p, rpnlp = trip->e[ei].pnl0p; + else + { + lpnlp = (pointnlink_t) trip.getArrayOfStruct("e").plus(ei).getStruct().getPtr("pnl0p"); + rpnlp = (pointnlink_t) trip.getArrayOfStruct("e").plus(ei).getStruct().getPtr("pnl1p"); + } + } + /* update deque */ + if (trii == ftrii) { + add2dq(2, lpnlp); + add2dq(1, rpnlp); + } else { + if (NEQ(Z._().dq.getPtr("pnlps").plus(Z._().dq.getInt("fpnlpi")).getPtr(), rpnlp) + && NEQ(Z._().dq.getPtr("pnlps").plus(Z._().dq.getInt("lpnlpi")).getPtr(), rpnlp)) { + /* add right point to deque */ + splitindex = finddqsplit(rpnlp); + splitdq(2, splitindex); + add2dq(1, rpnlp); + /* if the split is behind the apex, then reset apex */ + if (splitindex > Z._().dq.getInt("apex")) + Z._().dq.setInt("apex", splitindex); + } else { + /* add left point to deque */ + splitindex = finddqsplit(lpnlp); + splitdq(1, splitindex); + add2dq(2, lpnlp); + /* if the split is in front of the apex, then reset apex */ + if (splitindex < Z._().dq.getInt("apex")) + Z._().dq.setInt("apex", splitindex); + } + } + trii = -1; + for (ei = 0; ei < 3; ei++) + if (trip.getArrayOfStruct("e").plus(ei).getStruct().getPtr("rtp")!=null && + trip.getArrayOfStruct("e").plus(ei).getStruct().getPtr("rtp").getInt("mark") == 1) { + trii = trip.getArrayOfStruct("e").plus(ei).getStruct().getPtr("rtp").minus(Z._().tris); + break; + } + } + for (pi = 0, pnlp = (pointnlink_t) epnls.plus(1).asPtr(); pnlp!=null; pnlp = (pointnlink_t) pnlp.getPtr("link")) + pi++; + growops(pi); + output.setInt("pn", pi); + for (pi = pi - 1, pnlp = (pointnlink_t) epnls.plus(1).asPtr(); pnlp!=null; pi--, pnlp = (pointnlink_t) pnlp.getPtr("link")) + Z._().ops_shortest.plus(pi).setPtr(pnlp.getPtr("pp")); + output.setPtr("ps", Z._().ops_shortest); + return 0; +} finally { +LEAVING("2gub5b19vo2qexn56nw23wage","Pshortestpath"); +} +} + + + + +//3 73cr7m3mqvtuotpzrmaw2y8zm +// static void triangulate(pointnlink_t ** pnlps, int pnln) +public static void triangulate(__ptr__ pnlps, int pnln) { +ENTERING("73cr7m3mqvtuotpzrmaw2y8zm","triangulate"); +try { + int pnli, pnlip1, pnlip2; + LOG2("triangulate "+pnln); + if (pnln > 3) + { + for (pnli = 0; pnli < pnln; pnli++) + { + pnlip1 = (pnli + 1) % pnln; + pnlip2 = (pnli + 2) % pnln; + if (isdiagonal(pnli, pnlip2, pnlps, pnln)) + { + loadtriangle(pnlps.plus(pnli).getPtr(), pnlps.plus(pnlip1).getPtr(), pnlps.plus(pnlip2).getPtr()); + for (pnli = pnlip1; pnli < pnln - 1; pnli++) + pnlps.plus(pnli).setPtr(pnlps.plus(pnli + 1).getPtr()); + triangulate(pnlps, pnln - 1); + return; + } + } + throw new IllegalStateException("libpath/%s:%d: %s\n" + "graphviz-2.38.0\\lib\\pathplan\\shortest.c" + 26 + ("triangulation failed")); + } + else + loadtriangle(pnlps.plus(0).getPtr(), pnlps.plus(1).getPtr(), pnlps.plus(2).getPtr()); +} finally { +LEAVING("73cr7m3mqvtuotpzrmaw2y8zm","triangulate"); +} +} + + + + +//3 72of3cd7shtwokglxapw04oe9 +// static int isdiagonal(int pnli, int pnlip2, pointnlink_t ** pnlps, int pnln) +public static boolean isdiagonal(int pnli, int pnlip2, __ptr__ pnlps, int pnln) { +ENTERING("72of3cd7shtwokglxapw04oe9","isdiagonal"); +try { + int pnlip1, pnlim1, pnlj, pnljp1; + boolean res; + /* neighborhood test */ + pnlip1 = (pnli + 1) % pnln; + pnlim1 = (pnli + pnln - 1) % pnln; + /* If P[pnli] is a convex vertex [ pnli+1 left of (pnli-1,pnli) ]. */ + if (ccw(pnlps.plus(pnlim1).getPtr("pp"), pnlps.plus(pnli).getPtr("pp"), pnlps.plus(pnlip1).getPtr("pp")) == + 1) + res = + (ccw(pnlps.plus(pnli).getPtr("pp"), pnlps.plus(pnlip2).getPtr("pp"), pnlps.plus(pnlim1).getPtr("pp")) == + 1) + && (ccw(pnlps.plus(pnlip2).getPtr("pp"), pnlps.plus(pnli).getPtr("pp"), pnlps.plus(pnlip1).getPtr("pp")) + == 1); + /* Assume (pnli - 1, pnli, pnli + 1) not collinear. */ + else + res = (ccw(pnlps.plus(pnli).getPtr("pp"), pnlps.plus(pnlip2).getPtr("pp"), + pnlps.plus(pnlip1).getPtr("pp")) == 2); + if (N(res)) + return false; + /* check against all other edges */ + for (pnlj = 0; pnlj < pnln; pnlj++) { + pnljp1 = (pnlj + 1) % pnln; + if (N((pnlj == pnli) || (pnljp1 == pnli) || + (pnlj == pnlip2) || (pnljp1 == pnlip2))) + if (intersects(pnlps.plus(pnli).getPtr("pp"), pnlps.plus(pnlip2).getPtr("pp"), + pnlps.plus(pnlj).getPtr("pp"), pnlps.plus(pnljp1).getPtr("pp"))) + return false; + } + return ((N(false))); +} finally { +LEAVING("72of3cd7shtwokglxapw04oe9","isdiagonal"); +} +} + + + + +//3 7vf9jtj9i8rg0cxrstbqswuck +// static void loadtriangle(pointnlink_t * pnlap, pointnlink_t * pnlbp, pointnlink_t * pnlcp) +public static void loadtriangle(__ptr__ pnlap, __ptr__ pnlbp, __ptr__ pnlcp) { +ENTERING("7vf9jtj9i8rg0cxrstbqswuck","loadtriangle"); +try { + triangle_t trip; + int ei; + /* make space */ + if (Z._().tril >= Z._().trin) + growtris(Z._().trin + 20); + trip = (triangle_t) Z._().tris.plus(Z._().tril++); + trip.setInt("mark", 0); + trip.getArrayOfStruct("e").plus(0).getStruct().setPtr("pnl0p", pnlap); + trip.getArrayOfStruct("e").plus(0).getStruct().setPtr("pnl1p", pnlbp); + trip.getArrayOfStruct("e").plus(0).getStruct().setPtr("rtp", null); + trip.getArrayOfStruct("e").plus(1).getStruct().setPtr("pnl0p", pnlbp); + trip.getArrayOfStruct("e").plus(1).getStruct().setPtr("pnl1p", pnlcp); + trip.getArrayOfStruct("e").plus(1).getStruct().setPtr("rtp", null); + trip.getArrayOfStruct("e").plus(2).getStruct().setPtr("pnl0p", pnlcp); + trip.getArrayOfStruct("e").plus(2).getStruct().setPtr("pnl1p", pnlap); + trip.getArrayOfStruct("e").plus(2).getStruct().setPtr("rtp", null); + for (ei = 0; ei < 3; ei++) + trip.getArrayOfStruct("e").plus(ei).getStruct().setPtr("ltp", trip); +} finally { +LEAVING("7vf9jtj9i8rg0cxrstbqswuck","loadtriangle"); +} +} + + + + +//3 6coujw0qksrgu5sxj0r39qm1u +// static void connecttris(int tri1, int tri2) +public static void connecttris(int tri1, int tri2) { +ENTERING("6coujw0qksrgu5sxj0r39qm1u","connecttris"); +try { + triangle_t tri1p, tri2p; + int ei, ej; + for (ei = 0; ei < 3; ei++) { + for (ej = 0; ej < 3; ej++) { + tri1p = (triangle_t) Z._().tris.plus(tri1); + tri2p = (triangle_t) Z._().tris.plus(tri2); + if ((EQ(tri1p.getArrayOfStruct("e").plus(ei).getStruct().getPtr("pnl0p").getPtr("pp"), + tri2p.getArrayOfStruct("e").plus(ej).getStruct().getPtr("pnl0p").getPtr("pp")) && + EQ(tri1p.getArrayOfStruct("e").plus(ei).getStruct().getPtr("pnl1p").getPtr("pp"), + tri2p.getArrayOfStruct("e").plus(ej).getStruct().getPtr("pnl1p").getPtr("pp"))) || + (EQ(tri1p.getArrayOfStruct("e").plus(ei).getStruct().getPtr("pnl0p").getPtr("pp"), + tri2p.getArrayOfStruct("e").plus(ej).getStruct().getPtr("pnl1p").getPtr("pp")) && + EQ(tri1p.getArrayOfStruct("e").plus(ei).getStruct().getPtr("pnl1p").getPtr("pp"), + tri2p.getArrayOfStruct("e").plus(ej).getStruct().getPtr("pnl0p").getPtr("pp")))) + { + tri1p.getArrayOfStruct("e").plus(ei).getStruct().setPtr("rtp", tri2p); + tri2p.getArrayOfStruct("e").plus(ej).getStruct().setPtr("rtp", tri1p); + } + } + } +} finally { +LEAVING("6coujw0qksrgu5sxj0r39qm1u","connecttris"); +} +} + + + + +//3 3waxf5wy3mwt12wpg5hxg3o9c +// static int marktripath(int trii, int trij) +public static boolean marktripath(int trii, int trij) { +ENTERING("3waxf5wy3mwt12wpg5hxg3o9c","marktripath"); +try { + int ei; + if (Z._().tris.plus(trii).getBoolean("mark")) + return false; + Z._().tris.plus(trii).setInt("mark", 1); + if (trii == trij) + return ((!(false))); + for (ei = 0; ei < 3; ei++) + if (Z._().tris.plus(trii).getArrayOfStruct("e").plus(ei).getStruct().getPtr("rtp")!=null && + marktripath(Z._().tris.plus(trii).getArrayOfStruct("e").plus(ei).getStruct().getPtr("rtp").minus(Z._().tris), trij)) + return ((!(false))); + Z._().tris.plus(trii).setInt("mark", 0); + return false; +} finally { +LEAVING("3waxf5wy3mwt12wpg5hxg3o9c","marktripath"); +} +} + + + + +//3 44szdl31mg8mt5qrfj70kb2sn +// static void add2dq(int side, pointnlink_t * pnlp) +public static void add2dq(int side, __ptr__ pnlp) { +ENTERING("44szdl31mg8mt5qrfj70kb2sn","add2dq"); +try { + if (side == 1) { + if (Z._().dq.getInt("lpnlpi") - Z._().dq.getInt("fpnlpi") >= 0) + pnlp.setPtr("link", Z._().dq.getPtr("pnlps").plus(Z._().dq.getInt("fpnlpi")).getPtr()); + /* shortest path links */ + Z._().dq.setInt("fpnlpi", Z._().dq.getInt("fpnlpi")-1); + Z._().dq.getPtr("pnlps").plus(Z._().dq.getInt("fpnlpi")).setPtr(pnlp); + } else { + if (Z._().dq.getInt("lpnlpi") - Z._().dq.getInt("fpnlpi") >= 0) + pnlp.setPtr("link", Z._().dq.getPtr("pnlps").plus(Z._().dq.getInt("lpnlpi")).getPtr()); + /* shortest path links */ + Z._().dq.setInt("lpnlpi", Z._().dq.getInt("lpnlpi")+1); + Z._().dq.getPtr("pnlps").plus(Z._().dq.getInt("lpnlpi")).setPtr(pnlp); + } +} finally { +LEAVING("44szdl31mg8mt5qrfj70kb2sn","add2dq"); +} +} + + + + +//3 572sssdz1se16w790xceiy5vr +// static void splitdq(int side, int index) +public static void splitdq(int side, int index) { +ENTERING("572sssdz1se16w790xceiy5vr","splitdq"); +try { + if (side == 1) + Z._().dq.setInt("lpnlpi", index); + else + Z._().dq.setInt("fpnlpi", index); +} finally { +LEAVING("572sssdz1se16w790xceiy5vr","splitdq"); +} +} + + + + +//3 9dnrc8vqpffp5t3bmsackgqtl +// static int finddqsplit(pointnlink_t * pnlp) +public static int finddqsplit(pointnlink_t pnlp) { +ENTERING("9dnrc8vqpffp5t3bmsackgqtl","finddqsplit"); +try { + int index; + for (index = Z._().dq.getInt("fpnlpi"); index < Z._().dq.getInt("apex"); index++) + if (ccw(Z._().dq.getPtr("pnlps").plus(index + 1).getPtr().getPtr("pp"), Z._().dq.getPtr("pnlps").plus(index).getPtr().getPtr("pp"), pnlp.getPtr("pp")) == + 1) + return index; + for (index = Z._().dq.getInt("lpnlpi"); index > Z._().dq.getInt("apex"); index--) + if (ccw(Z._().dq.getPtr("pnlps").plus(index - 1).getPtr().getPtr("pp"), Z._().dq.getPtr("pnlps").plus(index).getPtr().getPtr("pp"), pnlp.getPtr("pp")) == + 2) + return index; + return Z._().dq.getInt("apex"); +} finally { +LEAVING("9dnrc8vqpffp5t3bmsackgqtl","finddqsplit"); +} +} + + + + +//3 72h03s8inxtto2ekvmuqjtj3d +// static int ccw(Ppoint_t * p1p, Ppoint_t * p2p, Ppoint_t * p3p) +public static int ccw(__ptr__ p1p, __ptr__ p2p, __ptr__ p3p) { +ENTERING("72h03s8inxtto2ekvmuqjtj3d","ccw"); +try { + double d; + d = ((p1p.getDouble("y") - p2p.getDouble("y")) * (p3p.getDouble("x") - p2p.getDouble("x"))) - + ((p3p.getDouble("y") - p2p.getDouble("y")) * (p1p.getDouble("x") - p2p.getDouble("x"))); + return (d > 0) ? 1 : ((d < 0) ? 2 : 3); +} finally { +LEAVING("72h03s8inxtto2ekvmuqjtj3d","ccw"); +} +} + + + + +//3 22a9ajg9t8ovqsigk3tyu3rkd +// static int intersects(Ppoint_t * pap, Ppoint_t * pbp, Ppoint_t * pcp, Ppoint_t * pdp) +public static boolean intersects(__ptr__ pap, __ptr__ pbp, __ptr__ pcp, __ptr__ pdp) { +ENTERING("22a9ajg9t8ovqsigk3tyu3rkd","intersects"); +try { + int ccw1, ccw2, ccw3, ccw4; + if (ccw(pap, pbp, pcp) == 3 || ccw(pap, pbp, pdp) == 3 || + ccw(pcp, pdp, pap) == 3 || ccw(pcp, pdp, pbp) == 3) { + if (between(pap, pbp, pcp) || between(pap, pbp, pdp) || + between(pcp, pdp, pap) || between(pcp, pdp, pbp)) + return ((!(false))); + } else { + ccw1 = (ccw(pap, pbp, pcp) == 1) ? 1 : 0; + ccw2 = (ccw(pap, pbp, pdp) == 1) ? 1 : 0; + ccw3 = (ccw(pcp, pdp, pap) == 1) ? 1 : 0; + ccw4 = (ccw(pcp, pdp, pbp) == 1) ? 1 : 0; + return (ccw1 ^ ccw2)!=0 && (ccw3 ^ ccw4)!=0; + } + return false; +} finally { +LEAVING("22a9ajg9t8ovqsigk3tyu3rkd","intersects"); +} +} + + + + +//3 uh5n18rzyevtb4cwpni70qpc +// static int between(Ppoint_t * pap, Ppoint_t * pbp, Ppoint_t * pcp) +public static boolean between(__ptr__ pap, __ptr__ pbp, __ptr__ pcp) { +ENTERING("uh5n18rzyevtb4cwpni70qpc","between"); +try { + final __struct__ p1 = __struct__.from(pointf.class), p2 = __struct__.from(pointf.class); + p1.setDouble("x", pbp.getDouble("x") - pap.getDouble("x")); + p1.setDouble("y", pbp.getDouble("y") - pap.getDouble("y")); + p2.setDouble("x", pcp.getDouble("x") - pap.getDouble("x")); + p2.setDouble("y", pcp.getDouble("y") - pap.getDouble("y")); + if (ccw(pap, pbp, pcp) != 3) + return false; + return (p2.getDouble("x") * p1.getDouble("x") + p2.getDouble("y") * p1.getDouble("y") >= 0) && + (p2.getDouble("x") * p2.getDouble("x") + p2.getDouble("y") * p2.getDouble("y") <= p1.getDouble("x") * p1.getDouble("x") + p1.getDouble("y") * p1.getDouble("y")); +} finally { +LEAVING("uh5n18rzyevtb4cwpni70qpc","between"); +} +} + + + + +//3 zti1mzm2m7tr2xwnbf7e8u3d +// static int pointintri(int trii, Ppoint_t * pp) +public static boolean pointintri(int trii, __ptr__ pp) { +ENTERING("zti1mzm2m7tr2xwnbf7e8u3d","pointintri"); +try { + int ei, sum; + for (ei = 0, sum = 0; ei < 3; ei++) + if (ccw(Z._().tris.plus(trii).getArrayOfStruct("e").plus(ei).getStruct().getPtr("pnl0p").getPtr("pp"), + Z._().tris.plus(trii).getArrayOfStruct("e").plus(ei).getStruct().getPtr("pnl1p").getPtr("pp"), pp) != 2) + sum++; + return (sum == 3 || sum == 0); +} finally { +LEAVING("zti1mzm2m7tr2xwnbf7e8u3d","pointintri"); +} +} + + + + +//3 85wstb60jkjd0kbh9tyninm4h +// static void growpnls(int newpnln) +public static void growpnls(int newpnln) { +ENTERING("85wstb60jkjd0kbh9tyninm4h","growpnls"); +try { + if (newpnln <= Z._().pnln) + return; + if (N(Z._().pnls)) { + if (N(Z._().pnls = (pointnlink_t) Memory.malloc(sizeof (pointnlink_t.class, newpnln)))) { +UNSUPPORTED("9zyfc4bjg3i6rrna9vqf8doys"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\shortest.c", 26, ("cannot malloc pnls")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + if (N(Z._().pnlps = Memory.malloc(sizeof_starstar_empty(pointnlink_t.class, newpnln)))) { +UNSUPPORTED("1etar0wd2cbbvqo4jnmbvjiz4"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\shortest.c", 26, ("cannot malloc pnlps")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + } else { + if (N(Z._().pnls = (pointnlink_t) Memory.realloc(Z._().pnls, + sizeof (pointnlink_t.class, newpnln)))) { +UNSUPPORTED("105nogpkt0qqut0yu4alvkk1u"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\shortest.c", 26, ("cannot realloc pnls")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + if (N(Z._().pnlps = Memory.realloc(Z._().pnlps, + sizeof_starstar_empty(pointnlink_t.class, newpnln)))) { +UNSUPPORTED("be84alh84ub40x4um989aj20d"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\shortest.c", 26, ("cannot realloc pnlps")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + } + Z._().pnln = newpnln; +} finally { +LEAVING("85wstb60jkjd0kbh9tyninm4h","growpnls"); +} +} + + + + +//3 c5q8ult6w26jppe5ifzgcoq82 +// static void growtris(int newtrin) +public static void growtris(int newtrin) { +ENTERING("c5q8ult6w26jppe5ifzgcoq82","growtris"); +try { + if (newtrin <= Z._().trin) + return; + if (N(Z._().tris)) { + if (N(Z._().tris = Memory.malloc(sizeof(triangle_t.class, newtrin)))) { +UNSUPPORTED("5782e28cjpaa3dpf8up4zmtq7"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\shortest.c", 26, ("cannot malloc tris")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + } else { + if (N(Z._().tris = Memory.realloc(Z._().tris, sizeof (triangle_t.class, newtrin)))) { +UNSUPPORTED("d3fgu54pn5tydfhn7z73v73ra"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\shortest.c", 26, ("cannot realloc tris")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + } + Z._().trin = newtrin; +} finally { +LEAVING("c5q8ult6w26jppe5ifzgcoq82","growtris"); +} +} + + + + +//3 bzym9u6dtatii1vp4hcmofc80 +// static void growdq(int newdqn) +public static void growdq(int newdqn) { +ENTERING("bzym9u6dtatii1vp4hcmofc80","growdq"); +try { + if (newdqn <= Z._().dq.getInt("pnlpn")) + return; + if (N(Z._().dq.getPtr("pnlps"))) { + if (N + (Z._().dq.setPtr("pnlps", + (__ptr__) Memory.malloc(sizeof_starstar_empty(pointnlink_t.class, newdqn))))) { +UNSUPPORTED("88fwpb40wz9jc8jiz7u032s4t"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\shortest.c", 26, ("cannot malloc dq.pnls")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + } else { + if (N(Z._().dq.setPtr("pnlps", (__ptr__) Memory.realloc(Z._().dq.getPtr("pnlps"), + sizeof_starstar_empty(pointnlink_t.class, newdqn))))) { +UNSUPPORTED("exqx4ck7h15m8whgip6xpnhoo"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\shortest.c", 26, ("cannot realloc dq.pnls")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + } + Z._().dq.setInt("pnlpn", newdqn); +} finally { +LEAVING("bzym9u6dtatii1vp4hcmofc80","growdq"); +} +} + + + + +//3 d7vtt8xqxbdnx9kwtt1zzof75 +// static void growops(int newopn) +public static void growops(int newopn) { +ENTERING("d7vtt8xqxbdnx9kwtt1zzof75","growops"); +try { + if (newopn <= Z._().opn_shortest) + return; + if (N(Z._().ops_shortest)) { + if (N(Z._().ops_shortest = Memory.malloc(sizeof(pointf.class, newopn)))) { +UNSUPPORTED("7wxgcgah7iy6vetj5yszoq4k4"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\shortest.c", 26, ("cannot malloc ops")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + } else { + if (N(Z._().ops_shortest = Memory.realloc(Z._().ops_shortest, + sizeof(pointf.class, newopn)))) { +UNSUPPORTED("7azrdo5s3kc44taqmtmeu1s33"); // fprintf (stderr, "libpath/%s:%d: %s\n", "graphviz-2.38.0\\lib\\pathplan\\shortest.c", 26, ("cannot realloc ops")); +UNSUPPORTED("1r6uhbnmxv8c6msnscw07w0qx"); // longjmp(jbuf,1); + } + } + Z._().opn_shortest = newopn; +} finally { +LEAVING("d7vtt8xqxbdnx9kwtt1zzof75","growops"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/pathplan/shortestpth__c.java plantuml-8039/src/gen/lib/pathplan/shortestpth__c.java --- plantuml-8024/src/gen/lib/pathplan/shortestpth__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pathplan/shortestpth__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,144 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pathplan; +import static smetana.core.Macro.UNSUPPORTED; + +public class shortestpth__c { +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 7pb9zum2n4wlgil34lvh8i0ts +// typedef double COORD + + +//1 e75el5ykqd72ikokwkl7j2epc +// typedef COORD **array2 + + +//1 4lqn82dcexmb1ujfx7ciwkq7t +// static COORD unseen = (double) INT_MAX + + + + +//3 3vmsnhxv064fhv23juvb3901f +// int *shortestPath(int root, int target, int V, array2 wadj) +public static Object shortestPath(Object... arg) { +UNSUPPORTED("ck9i1aidj3wocmwgkt8103ov9"); // int *shortestPath(int root, int target, int V, array2 wadj) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7q38vtznktnwi60z79t1yl7kn"); // int *dad; +UNSUPPORTED("3n8lsf3bhkta5dw01y6dosbhw"); // COORD *vl; +UNSUPPORTED("emjv9wq86wxaz1mkis592qedk"); // COORD *val; +UNSUPPORTED("985nf8jew0zg19ydmlmarwyl1"); // int min; +UNSUPPORTED("5tszi7ot461b5xrq7t6i2p9jw"); // int k, t; +UNSUPPORTED("8lhpkwmemj4ejagiby4wce1tp"); // /* allocate arrays */ +UNSUPPORTED("70ahd60yay9ycxlgxj1zuyqwk"); // dad = (int *) malloc(V * sizeof(int)); +UNSUPPORTED("cwcxxkaw0opazqbubfd67ylkw"); // vl = (COORD *) malloc((V + 1) * sizeof(COORD)); /* One extra for sentinel */ +UNSUPPORTED("30bnpu1p596ets2fp9d9fcuuo"); // val = vl + 1; +UNSUPPORTED("6usgmh9di07cghsmczuausuqv"); // /* initialize arrays */ +UNSUPPORTED("7s35obmd4mmmswain6cq6kjyz"); // for (k = 0; k < V; k++) { +UNSUPPORTED("9g1fv9lo3mqgozp0hgspk0jfx"); // dad[k] = -1; +UNSUPPORTED("3dfr2o54vzdz7ow35rvkkupwp"); // val[k] = -unseen; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6vvn9wwyfshecuati4wkh0hb1"); // val[-1] = -(unseen + (COORD) 1); /* Set sentinel */ +UNSUPPORTED("ail1ie6r4omx0srfndd7uhkx8"); // min = root; +UNSUPPORTED("8iguu5odqkwyske4dcuz2zh5c"); // /* use (min >= 0) to fill entire tree */ +UNSUPPORTED("3b9mo25ltl9ubqm9ptv305emr"); // while (min != target) { +UNSUPPORTED("37uwanwupwkgvkiatkocsnwmi"); // k = min; +UNSUPPORTED("2yk23r7ym8txau8t7w94um5l9"); // val[k] *= -1; +UNSUPPORTED("d8r99m4cpfcmbygzpwrb87waf"); // min = -1; +UNSUPPORTED("99ykmzy96436vip14lubfa2jo"); // if (val[k] == unseen) +UNSUPPORTED("9vb74y52jxvq4iptd1w4dewnu"); // val[k] = 0; +UNSUPPORTED("45pfcyfo86ei9srti6g0iz6xo"); // for (t = 0; t < V; t++) { +UNSUPPORTED("didw0ewjf6uo68oewapzly1rv"); // if (val[t] < 0) { +UNSUPPORTED("ekeykiipkt1z2a3sn2ilt5gx7"); // COORD newpri; +UNSUPPORTED("bczxeah6ns9u23ey094g25kjz"); // COORD wkt; +UNSUPPORTED("cctfdc4m6tunpeulyd30cbdma"); // /* Use lower triangle */ +UNSUPPORTED("akz9x35nrpcyklhz1a227a4xh"); // if (k >= t) +UNSUPPORTED("6cx7tblgrev9yzb4ppafglzh7"); // wkt = wadj[k][t]; +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("bbx44cas4y4rgf8fnytgoavog"); // wkt = wadj[t][k]; +UNSUPPORTED("2p64h5oxifdj0iau4zuiebitc"); // newpri = -(val[k] + wkt); +UNSUPPORTED("1skepgmjhmtk882tbnh0ny10o"); // if ((wkt != 0) && (val[t] < newpri)) { +UNSUPPORTED("73wirchpqpajql6a751nimkyu"); // val[t] = newpri; +UNSUPPORTED("4hhrf0py8taqfmqeg3uvrx081"); // dad[t] = k; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("98nv5m3wkh33gdi3z4vns4n4k"); // if (val[t] > val[min]) +UNSUPPORTED("cpb83eu6rulsmbhc2rwsi9i5l"); // min = t; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("yxn5pc6i3jmimfvzmmhfotak"); // free(vl); +UNSUPPORTED("60tomuwdovbmgh94zzb3yeqib"); // return dad; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eb1kiq1ildiyme0qn3xszjyvk +// int *makePath(Ppoint_t p, int pp, COORD * pvis, Ppoint_t q, int qp, COORD * qvis, vconfig_t * conf) +public static Object makePath(Object... arg) { +UNSUPPORTED("2jth0bos9lrgk2xi5083p5rvp"); // int *makePath(Ppoint_t p, int pp, COORD * pvis, +UNSUPPORTED("a6dn81zxyfp9ydvajebmx15wt"); // Ppoint_t q, int qp, COORD * qvis, vconfig_t * conf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9e683sch2jealt2ckz48v9f0j"); // int V = conf->N; +UNSUPPORTED("5ykvw66ec1v4dm5wm0ujsfgt9"); // if (directVis(p, pp, q, qp, conf)) { +UNSUPPORTED("8y9o9xskc3crv3uecpyrsdakg"); // int *dad = (int *) malloc(sizeof(int) * (V + 2)); +UNSUPPORTED("7oo70ckt9z1mf09uljyji5zud"); // dad[V] = V + 1; +UNSUPPORTED("3akorfrpmzhjtlnjmmos6z20q"); // dad[V + 1] = -1; +UNSUPPORTED("7x27015v5wfafitei6hpx0rii"); // return dad; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("946fxixcelejjif01eiioqduy"); // array2 wadj = conf->vis; +UNSUPPORTED("5ynkls19r2ylvtzz36h6vjy0t"); // wadj[V] = qvis; +UNSUPPORTED("a8gy96zl4x1lwid18nfp48pbm"); // wadj[V + 1] = pvis; +UNSUPPORTED("1fm1wr69gee2idjkv025ovvwh"); // return (shortestPath(V + 1, V, V + 2, wadj)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/pathplan/solvers__c.java plantuml-8039/src/gen/lib/pathplan/solvers__c.java --- plantuml-8024/src/gen/lib/pathplan/solvers__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pathplan/solvers__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,151 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pathplan; +import static smetana.core.JUtils.atan2; +import static smetana.core.JUtils.cos; +import static smetana.core.JUtils.pow; +import static smetana.core.JUtils.sqrt; +import static smetana.core.JUtilsDebug.ENTERING; +import static smetana.core.JUtilsDebug.LEAVING; + +public class solvers__c { + + +//3 2rap7a11ad4ugnphkh9gbn4xl +// int solve3(double *coeff, double *roots) +public static int solve3(double coeff[], double roots[]) { +ENTERING("2rap7a11ad4ugnphkh9gbn4xl","solve3"); +try { + double a, b, c, d; + int rootn, i; + double p, q, disc, b_over_3a, c_over_a, d_over_a; + double r, theta, temp, alpha, beta; + a = coeff[3]; b = coeff[2]; c = coeff[1]; d = coeff[0]; + if ((((a) < 1E-7) && ((a) > -1E-7))) + return solve2(coeff, roots); + b_over_3a = b / (3 * a); + c_over_a = c / a; + d_over_a = d / a; + p = b_over_3a * b_over_3a; + q = 2 * b_over_3a * p - b_over_3a * c_over_a + d_over_a; + p = c_over_a / 3 - p; + disc = q * q + 4 * p * p * p; + if (disc < 0) { + r = .5 * sqrt(-disc + q * q); + theta = atan2(sqrt(-disc), -q); + temp = 2 * ((r < 0) ? (-1*pow(-r, 1.0/3.0)) : pow (r, 1.0/3.0)); + roots[0] = temp * cos(theta / 3); + roots[1] = temp * cos((theta + 3.14159265358979323846 + 3.14159265358979323846) / 3); + roots[2] = temp * cos((theta - 3.14159265358979323846 - 3.14159265358979323846) / 3); + rootn = 3; + } else { + alpha = .5 * (sqrt(disc) - q); + beta = -q - alpha; + roots[0] = ((alpha < 0) ? (-1*pow(-alpha, 1.0/3.0)) : pow (alpha, 1.0/3.0)) + ((beta < 0) ? (-1*pow(-beta, 1.0/3.0)) : pow (beta, 1.0/3.0)); + if (disc > 0) + rootn = 1; + else + {roots[1] = roots[2] = -.5 * roots[0]; rootn = 3;} + } + for (i = 0; i < rootn; i++) + roots[i] -= b_over_3a; + return rootn; +} finally { +LEAVING("2rap7a11ad4ugnphkh9gbn4xl","solve3"); +} +} + + + + +//3 9b5238tdddphds1x726z0osdm +// int solve2(double *coeff, double *roots) +public static int solve2(double coeff[], double roots[]) { +ENTERING("9b5238tdddphds1x726z0osdm","solve2"); +try { + double a, b, c; + double disc, b_over_2a, c_over_a; + a = coeff[2]; b = coeff[1]; c = coeff[0]; + if ((((a) < 1E-7) && ((a) > -1E-7))) + return solve1(coeff, roots); + b_over_2a = b / (2 * a); + c_over_a = c / a; + disc = b_over_2a * b_over_2a - c_over_a; + if (disc < 0) + return 0; + else if (disc == 0) { + roots[0] = -b_over_2a; + return 1; + } else { + roots[0] = -b_over_2a + sqrt(disc); + roots[1] = -2 * b_over_2a - roots[0]; + return 2; + } +} finally { +LEAVING("9b5238tdddphds1x726z0osdm","solve2"); +} +} + + + + +//3 8xtqt7j6wyxc1b6tj0qtcu1rd +// int solve1(double *coeff, double *roots) +public static int solve1(double coeff[], double roots[]) { +ENTERING("8xtqt7j6wyxc1b6tj0qtcu1rd","solve1"); +try { + double a, b; + a = coeff[1]; b = coeff[0]; + if ((((a) < 1E-7) && ((a) > -1E-7))) { + if ((((b) < 1E-7) && ((b) > -1E-7))) + return 4; + else + return 0; + } + roots[0] = -b / a; + return 1; +} finally { +LEAVING("8xtqt7j6wyxc1b6tj0qtcu1rd","solve1"); +} +} + + +} diff -Nru plantuml-8024/src/gen/lib/pathplan/triang__c.java plantuml-8039/src/gen/lib/pathplan/triang__c.java --- plantuml-8024/src/gen/lib/pathplan/triang__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pathplan/triang__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,234 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pathplan; +import static smetana.core.Macro.UNSUPPORTED; +import smetana.core.jmp_buf; + +public class triang__c { +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 7pb9zum2n4wlgil34lvh8i0ts +// typedef double COORD + + +//1 540u5gu9i0x1wzoxqqx5n2vwp +// static jmp_buf jbuf +private static jmp_buf jbuf = new jmp_buf(); + + + +//3 9l5xg5aowmh2yvhbzseo8ws0i +// static int dpd_ccw(Ppoint_t * p1, Ppoint_t * p2, Ppoint_t * p3) +public static Object dpd_ccw(Object... arg) { +UNSUPPORTED("66u8hjpmzz1u1podxvft7tqbr"); // static int dpd_ccw(Ppoint_t * p1, Ppoint_t * p2, Ppoint_t * p3) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8l4kygp6iwsssqf4pip9kt8ih"); // double d = +UNSUPPORTED("a5i2lyqa3iblrijf5i8d2gc2l"); // ((p1->y - p2->y) * (p3->x - p2->x)) - +UNSUPPORTED("8vxxbchvixjdl9bnn73jj0ken"); // ((p3->y - p2->y) * (p1->x - p2->x)); +UNSUPPORTED("2duek0l6qi5enj1p52uzx935s"); // return (d > 0) ? 2 : ((d < 0) ? 1 : 3); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3cpm045bql7do4skuvm0gysbz +// int Ptriangulate(Ppoly_t * polygon, void (*fn) (void *, Ppoint_t *), void *vc) +public static Object Ptriangulate(Object... arg) { +UNSUPPORTED("9wq0zzi4wsqf1qmh5lisb5tur"); // int Ptriangulate(Ppoly_t * polygon, void (*fn) (void *, Ppoint_t *), +UNSUPPORTED("aiup6hqt7vuonmdnhtadcpyyg"); // void *vc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("79ig2xj5nogd41esx7798m82t"); // int pointn; +UNSUPPORTED("vbp57y34yrr1stscac6ij6wl"); // Ppoint_t **pointp; +UNSUPPORTED("8i4e5opqy9uomak4ow0vdfkyu"); // pointn = polygon->pn; +UNSUPPORTED("c7ts682vzzct8ooh1x4u7zy09"); // pointp = (Ppoint_t **) malloc(pointn * sizeof(Ppoint_t *)); +UNSUPPORTED("69msjv91b63ali4jnpa1iae96"); // for (i = 0; i < pointn; i++) +UNSUPPORTED("66ykefpx20ohahuts3stdhpv4"); // pointp[i] = &(polygon->ps[i]); +UNSUPPORTED("ci9r8sj8tbc6yer5c8cebb0cm"); // if (setjmp(jbuf)) { +UNSUPPORTED("1hfjyk5uqecl2hrvu9vdplqm9"); // free(pointp); +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3epdv4rxh1dblgm1uu3cirnns"); // triangulate(pointp, pointn, fn, vc); +UNSUPPORTED("d7eui8n8t6ty33reomekpb4uy"); // free(pointp); +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 db1gjkgbhdyik8njcwxidnm06 +// static void triangulate(Ppoint_t ** pointp, int pointn, void (*fn) (void *, Ppoint_t *), void *vc) +public static Object triangulate(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("cycr5htq0awpt4lysrda94z75"); // triangulate(Ppoint_t ** pointp, int pointn, +UNSUPPORTED("b80kmvbhu4qon4ithxw7iqghl"); // void (*fn) (void *, Ppoint_t *), void *vc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("47im1y8cb3jov8e7vfoq6976"); // int i, ip1, ip2, j; +UNSUPPORTED("9vrtuc7i6xtgewghaf5mhcvw7"); // Ppoint_t A[3]; +UNSUPPORTED("exebh5u9jcrlenwyhvh1q7ydp"); // if (pointn > 3) { +UNSUPPORTED("17s2by4i08aiirk34qoufejm1"); // for (i = 0; i < pointn; i++) { +UNSUPPORTED("4s8abivdx5zru8lby110pnbr0"); // ip1 = (i + 1) % pointn; +UNSUPPORTED("el7eqg9364rd6m2jmmgd1x0w6"); // ip2 = (i + 2) % pointn; +UNSUPPORTED("eugvvlona15w69kyxc7uao5rn"); // if (dpd_isdiagonal(i, ip2, pointp, pointn)) { +UNSUPPORTED("7jt096yrjcjaka77bxj8ow4ur"); // A[0] = *pointp[i]; +UNSUPPORTED("798zfru1x3zjftqir7h3184cy"); // A[1] = *pointp[ip1]; +UNSUPPORTED("5sabp0m6pi8misjllge9rhs6i"); // A[2] = *pointp[ip2]; +UNSUPPORTED("3tx9m6zu4gpdon7itam4m4zj6"); // fn(vc, A); +UNSUPPORTED("cwdl8048erup925vkw9wm50tm"); // j = 0; +UNSUPPORTED("b406sjxectwut71daq5renp3v"); // for (i = 0; i < pointn; i++) +UNSUPPORTED("17mmkxxi6uyt2rtn26wqpnjq0"); // if (i != ip1) +UNSUPPORTED("20nocric7p5rwm1keba2y9u9s"); // pointp[j++] = pointp[i]; +UNSUPPORTED("f1yvgmqdgpzz2ld9mihtb1ny6"); // triangulate(pointp, pointn - 1, fn, vc); +UNSUPPORTED("6bj8inpmr5ulm16jmfxsstjtn"); // return; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("efu63j23oynz0w42y5x2ccgl"); // longjmp(jbuf,1); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("du12jp7y7eb3k2lzktkq97ocv"); // A[0] = *pointp[0]; +UNSUPPORTED("3zxe87agbrkgcdv3ezmeb4e0r"); // A[1] = *pointp[1]; +UNSUPPORTED("7kqa9p0bujx0a7qu7g0l8u5gf"); // A[2] = *pointp[2]; +UNSUPPORTED("4a2pon3qy0ncl805797s5a1cg"); // fn(vc, A); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6g3z4d4wjf8de2l784sgpmmol +// static int dpd_isdiagonal(int i, int ip2, Ppoint_t ** pointp, int pointn) +public static Object dpd_isdiagonal(Object... arg) { +UNSUPPORTED("6igaattr8mose3ux86cjxqy8f"); // static int dpd_isdiagonal(int i, int ip2, Ppoint_t ** pointp, int pointn) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("i2fy680j9sex9dnpbrntxl4b"); // int ip1, im1, j, jp1, res; +UNSUPPORTED("5lvzmrs5o783t9b2alzlkj6uq"); // /* neighborhood test */ +UNSUPPORTED("9eqc4ewd8x2tb2o7676bqvzbk"); // ip1 = (i + 1) % pointn; +UNSUPPORTED("7uaqndtt8y6wd5jenwxduolym"); // im1 = (i + pointn - 1) % pointn; +UNSUPPORTED("e4zga3b8zozs44qyy6bccq35q"); // /* If P[i] is a convex vertex [ i+1 left of (i-1,i) ]. */ +UNSUPPORTED("6rxb1urly3d45lz9xrdat9rjc"); // if (dpd_ccw(pointp[im1], pointp[i], pointp[ip1]) == 1) +UNSUPPORTED("1h8m3wqaqis9j4awgexj22ljg"); // res = (dpd_ccw(pointp[i], pointp[ip2], pointp[im1]) == 1) && +UNSUPPORTED("54snmiylw2hrwv7yf250ut7kk"); // (dpd_ccw(pointp[ip2], pointp[i], pointp[ip1]) == 1); +UNSUPPORTED("f2vywip5w6wo2ku9n219qyc0t"); // /* Assume (i - 1, i, i + 1) not collinear. */ +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("8s457vlt2s8q2dv1carkz8jw1"); // res = ((dpd_ccw(pointp[i], pointp[ip2], pointp[ip1]) == 2) +UNSUPPORTED("5lgnvc71rkx0ldj6euv5vtcsr"); // ); +UNSUPPORTED("4v614d3uabme2jyn0anuritbb"); // /* +UNSUPPORTED("71hkfc5n8im1y698xlsrhbyp5"); // && +UNSUPPORTED("axkcv4kehdkqwxnlh4284iio4"); // (dpd_ccw (pointp[ip2], pointp[i], pointp[im1]) != ISCW)); +UNSUPPORTED("bnetqzovnscxile7ao44kc0qd"); // */ +UNSUPPORTED("6o97tfdzw11zrs51pped6bix"); // if (!res) { +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bsnnstj5ry3f53yyx6h80if6r"); // /* check against all other edges */ +UNSUPPORTED("2eknpu2grk40zpq5rvl1rsf0e"); // for (j = 0; j < pointn; j++) { +UNSUPPORTED("7j38zwxm4hyg9g5fi62sr5dz6"); // jp1 = (j + 1) % pointn; +UNSUPPORTED("7cqino9kvp1bszwsv2z4zllv1"); // if (!((j == i) || (jp1 == i) || (j == ip2) || (jp1 == ip2))) +UNSUPPORTED("attqyhhvmboobjbl2qf7l6hk1"); // if (dpd_intersects +UNSUPPORTED("43hv90vngw3gvon8vmtn7o3in"); // (pointp[i], pointp[ip2], pointp[j], pointp[jp1])) { +UNSUPPORTED("5izxoao5ryte71964f8yjfd5y"); // return 0; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2mmsh4mer8e3bkt2jk4gf4cyq"); // return ((!(0))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8pjte4rru806nqx2myxn2h8tn +// static int dpd_intersects(Ppoint_t * pa, Ppoint_t * pb, Ppoint_t * pc, Ppoint_t * pd) +public static Object dpd_intersects(Object... arg) { +UNSUPPORTED("b7u1jnesjd68hfofduzpr4qf0"); // static int dpd_intersects(Ppoint_t * pa, Ppoint_t * pb, Ppoint_t * pc, +UNSUPPORTED("def51j09bielz8iq0blza86vg"); // Ppoint_t * pd) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9nscw3h7ol3rzfhy7cmityo7h"); // int ccw1, ccw2, ccw3, ccw4; +UNSUPPORTED("98ug1zrydddu1pwy2oplua9u6"); // if (dpd_ccw(pa, pb, pc) == 3 || dpd_ccw(pa, pb, pd) == 3 || +UNSUPPORTED("4cfcl9frsb20o33zdgi2pm67u"); // dpd_ccw(pc, pd, pa) == 3 || dpd_ccw(pc, pd, pb) == 3) { +UNSUPPORTED("48qgrwlmwsf461u8tcizu96zg"); // if (dpd_between(pa, pb, pc) || dpd_between(pa, pb, pd) || +UNSUPPORTED("64gna5xeh3ex4eoernwe8f797"); // dpd_between(pc, pd, pa) || dpd_between(pc, pd, pb)) +UNSUPPORTED("a56gc2zenjhptik6h3r86au9x"); // return ((!(0))); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("345wiq942wt8egchavxisiate"); // ccw1 = (dpd_ccw(pa, pb, pc) == 1) ? 1 : 0; +UNSUPPORTED("8ss56vnafb15h2m5amgdjkdeo"); // ccw2 = (dpd_ccw(pa, pb, pd) == 1) ? 1 : 0; +UNSUPPORTED("281uxj8f020cd62tq8wnntaf6"); // ccw3 = (dpd_ccw(pc, pd, pa) == 1) ? 1 : 0; +UNSUPPORTED("9u7kvtaa6q6nms4h93wl3llei"); // ccw4 = (dpd_ccw(pc, pd, pb) == 1) ? 1 : 0; +UNSUPPORTED("e8shba3pxorddpi51sfeac4ju"); // return (ccw1 ^ ccw2) && (ccw3 ^ ccw4); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 coo3dmcddl2hcgc5gprzj3xtf +// static int dpd_between(Ppoint_t * pa, Ppoint_t * pb, Ppoint_t * pc) +public static Object dpd_between(Object... arg) { +UNSUPPORTED("8i6slq3k2lvso1osulneg0qfd"); // static int dpd_between(Ppoint_t * pa, Ppoint_t * pb, Ppoint_t * pc) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("42b52ogcufv0s2qul8bwyz1mc"); // Ppoint_t pba, pca; +UNSUPPORTED("71f5gd0n8v9s3kgph6iiqu4xl"); // pba.x = pb->x - pa->x, pba.y = pb->y - pa->y; +UNSUPPORTED("8grh7ovfy0h3pcie2b7bxoxf9"); // pca.x = pc->x - pa->x, pca.y = pc->y - pa->y; +UNSUPPORTED("ajkxh6482351n4hst9pf3sajt"); // if (dpd_ccw(pa, pb, pc) != 3) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("e461rpw0ig3rd1xwxn9quym9h"); // return (pca.x * pba.x + pca.y * pba.y >= 0) && +UNSUPPORTED("2nprox8kgwp76fqf186ca4l78"); // (pca.x * pca.x + pca.y * pca.y <= pba.x * pba.x + pba.y * pba.y); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/pathplan/util__c.java plantuml-8039/src/gen/lib/pathplan/util__c.java --- plantuml-8024/src/gen/lib/pathplan/util__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pathplan/util__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,172 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pathplan; +import static smetana.core.Macro.UNSUPPORTED; + +public class util__c { +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 7pb9zum2n4wlgil34lvh8i0ts +// typedef double COORD + + + + +//3 carluwds75s8h206m05m74b3h +// Ppoly_t copypoly(Ppoly_t argpoly) +public static Object copypoly(Object... arg) { +UNSUPPORTED("98pcxyqxy9rpxukga9lzhom1l"); // Ppoly_t copypoly(Ppoly_t argpoly) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dzef9h5fvxtkk8wkn4kn0edc"); // Ppoly_t rv; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("cd3pkstbs6ds3ufjvrms7zt87"); // rv.pn = argpoly.pn; +UNSUPPORTED("7h1rkca2bkbjau89uq44bj6rc"); // rv.ps = malloc(sizeof(Ppoint_t) * argpoly.pn); +UNSUPPORTED("bc26n5uxrnb6d5gdge4vsdufw"); // for (i = 0; i < argpoly.pn; i++) +UNSUPPORTED("extja5g4z7gbi72cffs9hjfkz"); // rv.ps[i] = argpoly.ps[i]; +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 74f2l3kbysoz1jx37ybw786si +// void freePath(Ppolyline_t* p) +public static Object freePath(Object... arg) { +UNSUPPORTED("arisensk81s44uevsoenjkx4k"); // void freePath(Ppolyline_t* p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4wfnv6rzlk455oiie96g1328x"); // free(p->ps); +UNSUPPORTED("bo0y3vz195pcz24vm46pixpb2"); // free(p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b1oegen4vbhrooizaesj0qbc4 +// void freepoly(Ppoly_t argpoly) +public static Object freepoly(Object... arg) { +UNSUPPORTED("37smh22suphf2psfo815rvfa5"); // void freepoly(Ppoly_t argpoly) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("evt1iow9xd0lxmcp9o1ystvr4"); // free(argpoly.ps); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4lkt0le495f2sbojevq677n62 +// int Ppolybarriers(Ppoly_t ** polys, int npolys, Pedge_t ** barriers, int *n_barriers) +public static Object Ppolybarriers(Object... arg) { +UNSUPPORTED("6tzncqs5o5i3rjuimqmwkco8c"); // int Ppolybarriers(Ppoly_t ** polys, int npolys, Pedge_t ** barriers, +UNSUPPORTED("1ciabmjyrm3si7ov5e2nq2yre"); // int *n_barriers) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("l9iv7kwx0qdqzyzbm9jzmoeh"); // Ppoly_t pp; +UNSUPPORTED("ri456px9wye6dag9hjrx9igj"); // int i, j, k, n, b; +UNSUPPORTED("3qifo11sfcapaabkt29qxeyf3"); // Pedge_t *bar; +UNSUPPORTED("5479ingjjk6qn2seps3k0btka"); // n = 0; +UNSUPPORTED("7hu2o6gt6a1x3hz06uqj88mvq"); // for (i = 0; i < npolys; i++) +UNSUPPORTED("770fj3pnbv37giif1b0tfjafy"); // n = n + polys[i]->pn; +UNSUPPORTED("67tf52l267s83r3u3t4vz2fb3"); // bar = malloc(n * sizeof(Pedge_t)); +UNSUPPORTED("5bkjzlhrfwudnhdqvgcum89jk"); // b = 0; +UNSUPPORTED("409l75vikw9qauilz9d2vztce"); // for (i = 0; i < npolys; i++) { +UNSUPPORTED("ct16i4ubqpsg61cvvo21el407"); // pp = *polys[i]; +UNSUPPORTED("86ht42bn8i5wfk2joxg3g8876"); // for (j = 0; j < pp.pn; j++) { +UNSUPPORTED("x1ux3l93pwkw8ri2200m18g7"); // k = j + 1; +UNSUPPORTED("e103u6wglmn9dhi7e4a4okoz9"); // if (k >= pp.pn) +UNSUPPORTED("c4bsmdfnwwk5rcxfmp596kqdg"); // k = 0; +UNSUPPORTED("elv4yjqfsvkrgr9w336r9pnqp"); // bar[b].a = pp.ps[j]; +UNSUPPORTED("98pws89dkn1po2vhy5by2fbxx"); // bar[b].b = pp.ps[k]; +UNSUPPORTED("7vp6sv54f23ddwn8k74yzt98"); // b++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("d5kgqcba92v9u40uo4kdwuexd"); // assert(b == n); +UNSUPPORTED("16w4tlbc3naryaamw0wn6jfip"); // *barriers = bar; +UNSUPPORTED("brj70oj6k1scg3kfvjtk13idx"); // *n_barriers = n; +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ct6tszngugakbl42zkaqrt7p1 +// void make_polyline(Ppolyline_t line, Ppolyline_t* sline) +public static Object make_polyline(Object... arg) { +UNSUPPORTED("c01vxogao855zs8fe94tpim9g"); // void +UNSUPPORTED("caslgp07xc1rz7m4io9o6y06u"); // make_polyline(Ppolyline_t line, Ppolyline_t* sline) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("69kg050pehcqgm1vozba79nx6"); // static int isz = 0; +UNSUPPORTED("4fjyhrgkxtd8bira8nmu5i8b3"); // static Ppoint_t* ispline = 0; +UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j; +UNSUPPORTED("93m2yes5av2bhu9cbgdvgao05"); // int npts = 4 + 3*(line.pn-2); +UNSUPPORTED("c0tj1d84o2ebjy9ke6sgke9m8"); // if (npts > isz) { +UNSUPPORTED("av96wgpkd1n2udjlb9h7j3y3y"); // ispline = (ispline? (Ppoint_t*)realloc(ispline,(npts)*sizeof(Ppoint_t)):(Ppoint_t*)malloc((npts)*sizeof(Ppoint_t))); +UNSUPPORTED("ehmbnzpsz0najunz7f2xuutcf"); // isz = npts; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cjbplkbp2r33l9lxd9f4plw8q"); // j = i = 0; +UNSUPPORTED("3sl38lopto9lxrp6b54bo2mp9"); // ispline[j+1] = ispline[j] = line.ps[i]; +UNSUPPORTED("1jxyp8hw11938jx60dm71z97j"); // j += 2; +UNSUPPORTED("6xu6l640dwkn7142pwdqqinwh"); // i++; +UNSUPPORTED("73ap4ch7ov640gtez9np1qdy"); // for (; i < line.pn-1; i++) { +UNSUPPORTED("9mzuffh5epf8o14tph3qhs6bb"); // ispline[j+2] = ispline[j+1] = ispline[j] = line.ps[i]; +UNSUPPORTED("b6bx299910tris4yhn65it5di"); // j += 3; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3sl38lopto9lxrp6b54bo2mp9"); // ispline[j+1] = ispline[j] = line.ps[i]; +UNSUPPORTED("1m0hhl8du9lwz0vqvit6zf4cv"); // sline->pn = npts; +UNSUPPORTED("bsi255abbfm738aeiyf2i04u8"); // sline->ps = ispline; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/pathplan/visibility__c.java plantuml-8039/src/gen/lib/pathplan/visibility__c.java --- plantuml-8024/src/gen/lib/pathplan/visibility__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/pathplan/visibility__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,449 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.pathplan; +import static smetana.core.Macro.UNSUPPORTED; + +public class visibility__c { +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 7pb9zum2n4wlgil34lvh8i0ts +// typedef double COORD + + +//1 e75el5ykqd72ikokwkl7j2epc +// typedef COORD **array2 + + + + +//3 bsczl8sh39sr9x8mdrdw934gc +// static array2 allocArray(int V, int extra) +public static Object allocArray(Object... arg) { +UNSUPPORTED("2ep0t1ji7dax5248t02u6t7r6"); // static array2 allocArray(int V, int extra) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("6advqmqfqum2lcm4ln3micrah"); // array2 arr; +UNSUPPORTED("37gilvazosxkc28mj73rooar1"); // COORD *p; +UNSUPPORTED("8o8ej4mv7ezjz8fiws88yzo9q"); // arr = (COORD **) malloc((V + extra) * sizeof(COORD *)); +UNSUPPORTED("e510sd0tpqggpavb3qj1c1qxt"); // p = (COORD *) calloc(V * V, sizeof(COORD)); +UNSUPPORTED("95d7bboanqosxp7ljja94xzf3"); // for (i = 0; i < V; i++) { +UNSUPPORTED("cpb0ooq9n5nzvgd12sa7ws9h"); // arr[i] = p; +UNSUPPORTED("54buizub47gj1g6rqqp2nuxm"); // p += V; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dbbu9u15v89j269ghj0n14aj4"); // for (i = V; i < V + extra; i++) +UNSUPPORTED("w0dpyxz5clv9ki0kuw7rzfn7"); // arr[i] = (COORD *) 0; +UNSUPPORTED("ccsfhshi4ig5z5la1ju1x9cnc"); // return arr; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dlr6qgzk1zg621iotphi6ibd8 +// COORD area2(Ppoint_t a, Ppoint_t b, Ppoint_t c) +public static Object area2(Object... arg) { +UNSUPPORTED("955niwvmnzworzojvwdpapmof"); // COORD area2(Ppoint_t a, Ppoint_t b, Ppoint_t c) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("57vegsifiuko417qaa6szlm9n"); // return ((a.y - b.y) * (c.x - b.x) - (c.y - b.y) * (a.x - b.x)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 vt0jebecnhaqax0chaict0yw +// int wind(Ppoint_t a, Ppoint_t b, Ppoint_t c) +public static Object wind(Object... arg) { +UNSUPPORTED("7zwv4pv8g3dirkozmn0fe34z8"); // int wind(Ppoint_t a, Ppoint_t b, Ppoint_t c) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4ecssyhacl2ayvt0ote07teaw"); // COORD w; +UNSUPPORTED("5wu3j9ks9mimt6j7joxxnq9ia"); // w = ((a.y - b.y) * (c.x - b.x) - (c.y - b.y) * (a.x - b.x)); +UNSUPPORTED("es8qrkgjbswwyq90zllvcxwnh"); // /* need to allow for small math errors. seen with "gcc -O2 -mcpu=i686 -ffast-math" */ +UNSUPPORTED("dzqusvkt2ejo97ycithiv2ucf"); // return (w > .0001) ? 1 : ((w < -.0001) ? -1 : 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3zfwfpss5ea581xa4wtms7rxv +// int inBetween(Ppoint_t a, Ppoint_t b, Ppoint_t c) +public static Object inBetween(Object... arg) { +UNSUPPORTED("dnvtojgefs45udqxtt80ifsxm"); // int inBetween(Ppoint_t a, Ppoint_t b, Ppoint_t c) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9retom1yv4wpdu31f7jsiae8d"); // if (a.x != b.x) /* not vertical */ +UNSUPPORTED("7bptnkdfcpj5jr3mniv8eq3tl"); // return (((a.x < c.x) && (c.x < b.x)) +UNSUPPORTED("1v7hun84nlrv6wqpwv4dlqlxu"); // || ((b.x < c.x) && (c.x < a.x))); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("d2izj3dk2mx1gese9uwrde73a"); // return (((a.y < c.y) && (c.y < b.y)) +UNSUPPORTED("ey5cvegw2q4qz6328omtt2frt"); // || ((b.y < c.y) && (c.y < a.y))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 79f7jjxrrdgo9l858v24xof7v +// int intersect(Ppoint_t a, Ppoint_t b, Ppoint_t c, Ppoint_t d) +public static Object intersect(Object... arg) { +UNSUPPORTED("roqgz6tihjg6s1lbmr0j6phx"); // int intersect(Ppoint_t a, Ppoint_t b, Ppoint_t c, Ppoint_t d) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5ak23ep8c08cwpy4ro73kg6a9"); // int a_abc; +UNSUPPORTED("pkbc2911eqdxi3q3oig9iggz"); // int a_abd; +UNSUPPORTED("3x6q0p7p8vp6n3xuz68aqyi2z"); // int a_cda; +UNSUPPORTED("2nckaq0hwjy642bs8wytfrvzc"); // int a_cdb; +UNSUPPORTED("dh0rdktbccsux65trza0p1ex0"); // a_abc = wind(a, b, c); +UNSUPPORTED("8rg4ptpwwdazrael76ersibnj"); // if ((a_abc == 0) && inBetween(a, b, c)) { +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("65kyqogr1qwpdj4vzqhqdovjx"); // a_abd = wind(a, b, d); +UNSUPPORTED("f2bfktdr6qjmqrr2o4ngzp8hs"); // if ((a_abd == 0) && inBetween(a, b, d)) { +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("54toimzvo18mzs7vfnqvnumln"); // a_cda = wind(c, d, a); +UNSUPPORTED("7qvzemgdibqwxezutu4es8otb"); // a_cdb = wind(c, d, b); +UNSUPPORTED("4cp5ufnxuyvb9bthje52yijlm"); // /* True if c and d are on opposite sides of ab, +UNSUPPORTED("4k1c3jig81qg0as8woji48ew9"); // * and a and b are on opposite sides of cd. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("d581gmneeqsqn2uql7i5toff3"); // return (((a_abc * a_abd) < 0) && ((a_cda * a_cdb) < 0)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 897fne6m7yp6g1skatrohstqd +// static int in_cone(Ppoint_t a0, Ppoint_t a1, Ppoint_t a2, Ppoint_t b) +public static Object in_cone(Object... arg) { +UNSUPPORTED("6k9z11o3eut4ihkvof27ionw4"); // static int in_cone(Ppoint_t a0, Ppoint_t a1, Ppoint_t a2, Ppoint_t b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("azst6m11c18syon6lwf1d36gq"); // int m = wind(b, a0, a1); +UNSUPPORTED("edizv9dcv0vkkp4l4vuw7k97r"); // int p = wind(b, a1, a2); +UNSUPPORTED("6b5qii4lexve7f52xqb76yfuj"); // if (wind(a0, a1, a2) > 0) +UNSUPPORTED("eav3el0uo07672rpa2kyd0uge"); // return (m >= 0 && p >= 0); /* convex at a */ +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("21ufwcoiy0fe6t0dog8u1mgyb"); // return (m >= 0 || p >= 0); /* reflex at a */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bo8ti3cpgvbanj1uzsm9c1bhe +// COORD dist2(Ppoint_t a, Ppoint_t b) +public static Object dist2(Object... arg) { +UNSUPPORTED("blrxs1tia575ecxgyj1t3xyzr"); // COORD dist2(Ppoint_t a, Ppoint_t b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("p0k98xc3wk6x7in7sehd5dyh"); // COORD delx = a.x - b.x; +UNSUPPORTED("bw95b7u6pyi3v7wyz9gln4uus"); // COORD dely = a.y - b.y; +UNSUPPORTED("c07ue20s75ggd0htt7g0ow5sh"); // return (delx * delx + dely * dely); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e6i8sjhx5klba13ifnde18uay +// static COORD dist(Ppoint_t a, Ppoint_t b) +public static Object dist(Object... arg) { +UNSUPPORTED("f3414cvfyz69wnzb7u82byqr6"); // static COORD dist(Ppoint_t a, Ppoint_t b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c5c8q1zhigd7yv5pwxe30rbc4"); // return sqrt(dist2(a, b)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bbuqqywhkghz3a4pmrzvnwat3 +// static int inCone(int i, int j, Ppoint_t pts[], int nextPt[], int prevPt[]) +public static Object inCone(Object... arg) { +UNSUPPORTED("2m7xwhnvt83bmhre90ibjzp22"); // static int inCone(int i, int j, Ppoint_t pts[], int nextPt[], int prevPt[]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3nsyz336uzlzhdtn1ifpdpdbw"); // return in_cone(pts[prevPt[i]], pts[i], pts[nextPt[i]], pts[j]); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9k5g381ss7ta6nb7v37y3oo4x +// static int clear(Ppoint_t pti, Ppoint_t ptj, int start, int end, int V, Ppoint_t pts[], int nextPt[], int prevPt[]) +public static Object clear(Object... arg) { +UNSUPPORTED("68m9293lem1wya8xmo8rg6biv"); // static int clear(Ppoint_t pti, Ppoint_t ptj, +UNSUPPORTED("8lrao52hd6uwbjl78v0f7a7ec"); // int start, int end, +UNSUPPORTED("a8lvklwic5zz27yulrg7ododk"); // int V, Ppoint_t pts[], int nextPt[], int prevPt[]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b0kisc5bimb4jnz3z1g2yhbqv"); // int k; +UNSUPPORTED("9phanu31yb7616q5xjn3fva6x"); // for (k = 0; k < start; k++) { +UNSUPPORTED("ye8byugyetsemml5w5sus11k"); // if (intersect((pti),(ptj),(pts[k]),(pts[nextPt[k]]))) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("aey08ei9e4arvxt8hzy83qb9c"); // for (k = end; k < V; k++) { +UNSUPPORTED("ye8byugyetsemml5w5sus11k"); // if (intersect((pti),(ptj),(pts[k]),(pts[nextPt[k]]))) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 a5f84g6uyajcrmmt06a61ulyi +// static void compVis(vconfig_t * conf, int start) +public static Object compVis(Object... arg) { +UNSUPPORTED("izn0i9pb2n1dmy8hrpd016j1"); // static void compVis(vconfig_t * conf, int start) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9e683sch2jealt2ckz48v9f0j"); // int V = conf->N; +UNSUPPORTED("7d9bin19ief7l7y1pkikvuwiu"); // Ppoint_t *pts = conf->P; +UNSUPPORTED("9rljos3iubpdnzm02l6bd6pga"); // int *nextPt = conf->next; +UNSUPPORTED("4n11bnl3onnk0hldumoxfi7bx"); // int *prevPt = conf->prev; +UNSUPPORTED("e0225hhlmgxnr7acr4j9fr4rj"); // array2 wadj = conf->vis; +UNSUPPORTED("edgqyxis5vrh7zvky36d4e9a0"); // int j, i, previ; +UNSUPPORTED("bjc6w95h0ns9cjy8h8j9niggy"); // COORD d; +UNSUPPORTED("2xpkyvrmw8kb8hkc5g5820ed7"); // for (i = start; i < V; i++) { +UNSUPPORTED("4woc2r6ql8s9ni8zc78gafifx"); // /* add edge between i and previ. +UNSUPPORTED("aoxujkcbwbq2misfrn7k3d7x8"); // * Note that this works for the cases of polygons of 1 and 2 +UNSUPPORTED("1uyr4bh9q9mhcn76g13u98kh0"); // * vertices, though needless work is done. +UNSUPPORTED("62wb43w2xc6ex6hootjubbx22"); // */ +UNSUPPORTED("31w2a4xrdim19v0h965b1cr2c"); // previ = prevPt[i]; +UNSUPPORTED("4bd7y0t2a1w6hs3ohpem3ysgu"); // d = dist(pts[i], pts[previ]); +UNSUPPORTED("4otd40ic0u4tos8oseiipjzc9"); // wadj[i][previ] = d; +UNSUPPORTED("bib5b7wm3wqhsons82qecl"); // wadj[previ][i] = d; +UNSUPPORTED("e85r4voxpd10f2vhaakw43f9m"); // /* Check remaining, earlier vertices */ +UNSUPPORTED("34wvs6wxg9wroez0cob4eq0yt"); // if (previ == i - 1) +UNSUPPORTED("52l667dp9oah6rslc8wjoujp1"); // j = i - 2; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("9k7vxyf71hfmr8jfddpfd90fg"); // j = i - 1; +UNSUPPORTED("86i8ouw8og1peosqts789zl36"); // for (; j >= 0; j--) { +UNSUPPORTED("axb1scf1zch83hijq76uhgavw"); // if (inCone(i, j, pts, nextPt, prevPt) && +UNSUPPORTED("f53u8xtqvo7t5kx42e92w686r"); // inCone(j, i, pts, nextPt, prevPt) && +UNSUPPORTED("1g3bn9manlh9eb34pxq0uzz8t"); // clear(pts[i], pts[j], V, V, V, pts, nextPt, prevPt)) { +UNSUPPORTED("5qsnuuk4fv4fooabczbbd9ahx"); // /* if i and j see each other, add edge */ +UNSUPPORTED("9fadh88q86g90beilv0kqxmaa"); // d = dist(pts[i], pts[j]); +UNSUPPORTED("6ut8yosujth8pmmzsvs0rbn4r"); // wadj[i][j] = d; +UNSUPPORTED("dm7renktz4js1qpo4fxfpjv96"); // wadj[j][i] = d; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 afx2tbncgy8wtrk8wrpvt8c7v +// void visibility(vconfig_t * conf) +public static Object visibility(Object... arg) { +UNSUPPORTED("25e0cmz7nmahqmmpcvbvi3kbv"); // void visibility(vconfig_t * conf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("80p1p77b7wohnw2r3v9cilgja"); // conf->vis = allocArray(conf->N, 2); +UNSUPPORTED("cocdypij6tuxqzgtmgw0ffdyi"); // compVis(conf, 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f53btxccmpw07qdajkgza16dq +// static int polyhit(vconfig_t * conf, Ppoint_t p) +public static Object polyhit(Object... arg) { +UNSUPPORTED("3jhqkjkjkqnmtf4w0yu1vcgkm"); // static int polyhit(vconfig_t * conf, Ppoint_t p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("4a012clawvd7u5m72juylqzoa"); // Ppoly_t poly; +UNSUPPORTED("bdsnknxap30wvari7ivffhs3m"); // for (i = 0; i < conf->Npoly; i++) { +UNSUPPORTED("ey7hd6wdy31mr7tdmlijqjq0n"); // poly.ps = &(conf->P[conf->start[i]]); +UNSUPPORTED("3qtnbizhz0j64zuzkh3tthe1h"); // poly.pn = conf->start[i + 1] - conf->start[i]; +UNSUPPORTED("5mttoot38d7jpevufudmwxewd"); // if (in_poly(poly, p)) +UNSUPPORTED("8wtxouhhluawfic81s58qdk0e"); // return i; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b8wqo20wej72k4fwead61jun4"); // return -1111; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2yvo05bz8qq8rrhli2rlonyix +// COORD *ptVis(vconfig_t * conf, int pp, Ppoint_t p) +public static Object ptVis(Object... arg) { +UNSUPPORTED("d58fb5rw4i15qcu5i6zi8562u"); // COORD *ptVis(vconfig_t * conf, int pp, Ppoint_t p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9e683sch2jealt2ckz48v9f0j"); // int V = conf->N; +UNSUPPORTED("7d9bin19ief7l7y1pkikvuwiu"); // Ppoint_t *pts = conf->P; +UNSUPPORTED("9rljos3iubpdnzm02l6bd6pga"); // int *nextPt = conf->next; +UNSUPPORTED("4n11bnl3onnk0hldumoxfi7bx"); // int *prevPt = conf->prev; +UNSUPPORTED("b0kisc5bimb4jnz3z1g2yhbqv"); // int k; +UNSUPPORTED("aa6b5n017in5orglen9ktgs9a"); // int start, end; +UNSUPPORTED("ib3s5dce6s963vo6b8ltvstb"); // COORD *vadj; +UNSUPPORTED("99q4ws63ls29yvcb513my0kp3"); // Ppoint_t pk; +UNSUPPORTED("bjc6w95h0ns9cjy8h8j9niggy"); // COORD d; +UNSUPPORTED("amrnq8h2txtlsnydbwpxx8p9e"); // vadj = (COORD *) malloc((V + 2) * sizeof(COORD)); +UNSUPPORTED("1xmg38dmhrjwt80u0hb882akq"); // if (pp == -2222) +UNSUPPORTED("67gimzlcd9mmh55z0uwgo1svm"); // pp = polyhit(conf, p); +UNSUPPORTED("fcadmwema5f9zw0pun57mr61"); // if (pp >= 0) { +UNSUPPORTED("6rdfhzubd1dzowvcgtvu07skw"); // start = conf->start[pp]; +UNSUPPORTED("qr28k5sqgz293v061p9lh7mw"); // end = conf->start[pp + 1]; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("4k2lbbhod6d50bie3p0ovngng"); // start = V; +UNSUPPORTED("6p0gh50lvtsw3epczfbncrrzh"); // end = V; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9phanu31yb7616q5xjn3fva6x"); // for (k = 0; k < start; k++) { +UNSUPPORTED("685xi4ztalqspw63iho1ijb2a"); // pk = pts[k]; +UNSUPPORTED("ej65d6v3kqqc41pf2amjx9u8o"); // if (in_cone(pts[prevPt[k]], pk, pts[nextPt[k]], p) && +UNSUPPORTED("45whycl2s4k3gm8ltb52iawfc"); // clear(p, pk, start, end, V, pts, nextPt, prevPt)) { +UNSUPPORTED("204lwnssk9azp929idzzmu2oh"); // /* if p and pk see each other, add edge */ +UNSUPPORTED("2y5618jurnxt2bnwydutfzwr4"); // d = dist(p, pk); +UNSUPPORTED("d97qa8dblreww61gxggrpddq9"); // vadj[k] = d; +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("w27fuo0npg13jbsblev28cke"); // vadj[k] = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3aiu3msz4kw0sitr3eu403460"); // for (k = start; k < end; k++) +UNSUPPORTED("ecdly7fjptzn9hbgscfv42v5f"); // vadj[k] = 0; +UNSUPPORTED("aey08ei9e4arvxt8hzy83qb9c"); // for (k = end; k < V; k++) { +UNSUPPORTED("685xi4ztalqspw63iho1ijb2a"); // pk = pts[k]; +UNSUPPORTED("ej65d6v3kqqc41pf2amjx9u8o"); // if (in_cone(pts[prevPt[k]], pk, pts[nextPt[k]], p) && +UNSUPPORTED("45whycl2s4k3gm8ltb52iawfc"); // clear(p, pk, start, end, V, pts, nextPt, prevPt)) { +UNSUPPORTED("204lwnssk9azp929idzzmu2oh"); // /* if p and pk see each other, add edge */ +UNSUPPORTED("2y5618jurnxt2bnwydutfzwr4"); // d = dist(p, pk); +UNSUPPORTED("d97qa8dblreww61gxggrpddq9"); // vadj[k] = d; +UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else +UNSUPPORTED("w27fuo0npg13jbsblev28cke"); // vadj[k] = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6udsra1z6g208yb80gqshsz7i"); // vadj[V] = 0; +UNSUPPORTED("6cyoyzpz6109ngfp8zw4x3ign"); // vadj[V + 1] = 0; +UNSUPPORTED("euzt74fd0hlgexbbuks72111"); // return vadj; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 euo3asq18kkzr6xpldh1whj5j +// int directVis(Ppoint_t p, int pp, Ppoint_t q, int qp, vconfig_t * conf) +public static Object directVis(Object... arg) { +UNSUPPORTED("6vkegkahwe6v9zxmpo9y849de"); // int directVis(Ppoint_t p, int pp, Ppoint_t q, int qp, vconfig_t * conf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9e683sch2jealt2ckz48v9f0j"); // int V = conf->N; +UNSUPPORTED("7d9bin19ief7l7y1pkikvuwiu"); // Ppoint_t *pts = conf->P; +UNSUPPORTED("9rljos3iubpdnzm02l6bd6pga"); // int *nextPt = conf->next; +UNSUPPORTED("cn01t5vyidv9t9jp5k1ebvqnf"); // /* int* prevPt = conf->prev; */ +UNSUPPORTED("b0kisc5bimb4jnz3z1g2yhbqv"); // int k; +UNSUPPORTED("5jthc5ipz7t03l29ayjuyuwss"); // int s1, e1; +UNSUPPORTED("ewn7imvjy270ybgfwapp0tq42"); // int s2, e2; +UNSUPPORTED("7s1xhwbtcl4cfff6w7bovcx4p"); // if (pp < 0) { +UNSUPPORTED("8kwihfze04zickxvmduqyz9oz"); // s1 = 0; +UNSUPPORTED("d9lzfcaqs050pvd6f6sn4ybfd"); // e1 = 0; +UNSUPPORTED("bx8ug7ayoxr9yyklnxyk820fn"); // if (qp < 0) { +UNSUPPORTED("bz1de6hpp200ljwdvpkd5u3gn"); // s2 = 0; +UNSUPPORTED("at1mpgp51u974mlhndrczv2lo"); // e2 = 0; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("1w3zcz5sbss50hne5vn9c54uf"); // s2 = conf->start[qp]; +UNSUPPORTED("5aiw8tbtx5x4c6d90lqekac0k"); // e2 = conf->start[qp + 1]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("91fgea3cg2flt7f19hu4m9f3k"); // } else if (qp < 0) { +UNSUPPORTED("8kwihfze04zickxvmduqyz9oz"); // s1 = 0; +UNSUPPORTED("d9lzfcaqs050pvd6f6sn4ybfd"); // e1 = 0; +UNSUPPORTED("c7jjeiyrdte7kaqrcqi78tb6j"); // s2 = conf->start[pp]; +UNSUPPORTED("181206xgdu45tknm5eoc7vy7p"); // e2 = conf->start[pp + 1]; +UNSUPPORTED("1vsb0sn9g2id7jgf818wp2h61"); // } else if (pp <= qp) { +UNSUPPORTED("2jpazbnst1z69liefzlp7x6k5"); // s1 = conf->start[pp]; +UNSUPPORTED("birxkvbxsgsetxfbpuugteqbx"); // e1 = conf->start[pp + 1]; +UNSUPPORTED("2lmk984g1rwi6bvyc4aqlzovj"); // s2 = conf->start[qp]; +UNSUPPORTED("9sx0re3e6x3m54pfxrbuk571d"); // e2 = conf->start[qp + 1]; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("dun18brbfd255gv2nfo9sog80"); // s1 = conf->start[qp]; +UNSUPPORTED("c1zf66qllk0cm9c4q3cjv9f3r"); // e1 = conf->start[qp + 1]; +UNSUPPORTED("c7jjeiyrdte7kaqrcqi78tb6j"); // s2 = conf->start[pp]; +UNSUPPORTED("181206xgdu45tknm5eoc7vy7p"); // e2 = conf->start[pp + 1]; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("f28p3ogo8j178cx69vueppwjb"); // for (k = 0; k < s1; k++) { +UNSUPPORTED("an3a9zyfv6sgx5bn13egxyjbb"); // if (intersect((p),(q),(pts[k]),(pts[nextPt[k]]))) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ecib0ib1qhu5qbad78mhypnbs"); // for (k = e1; k < s2; k++) { +UNSUPPORTED("an3a9zyfv6sgx5bn13egxyjbb"); // if (intersect((p),(q),(pts[k]),(pts[nextPt[k]]))) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dawiv8sbk7c60uo6bv5kesrag"); // for (k = e2; k < V; k++) { +UNSUPPORTED("an3a9zyfv6sgx5bn13egxyjbb"); // if (intersect((p),(q),(pts[k]),(pts[nextPt[k]]))) +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3tcgz4dupb6kw5tdk7n3pca2l"); // return 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/lib/xdot/xdot__c.java plantuml-8039/src/gen/lib/xdot/xdot__c.java --- plantuml-8024/src/gen/lib/xdot/xdot__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/lib/xdot/xdot__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,1437 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.lib.xdot; +import static smetana.core.Macro.UNSUPPORTED; + +public class xdot__c { + + +//3 18i9xd96uncylv9umnz90gzrh +// static void agxbinit(agxbuf * xb, unsigned int hint, unsigned char *init) +public static Object agxbinit(Object... arg) { +UNSUPPORTED("84pe35dre7aor7etu052tqf8t"); // static void agxbinit(agxbuf * xb, unsigned int hint, unsigned char *init) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3ctz7esjgupftv01eshc2dhx2"); // if (init) { +UNSUPPORTED("7ccqm4ipez0mmdk6bv50shi8z"); // xb->buf = init; +UNSUPPORTED("bgb2e1tveztx6w0nuo6t6kxbd"); // xb->dyna = 0; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("49jhfm9yw3megswomc4gzzgd7"); // if (hint == 0) +UNSUPPORTED("5h1ggxg5ypn75rue18vgizp12"); // hint = BUFSIZ; +UNSUPPORTED("bwuph2kus95n04yy45ff0ygwg"); // xb->dyna = 1; +UNSUPPORTED("b3ogvpic8o2143ihrt95fsmt5"); // xb->buf = (unsigned char*)calloc((hint), sizeof(unsigned char)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1vqjbr0qaxnp1tks2ilwqgn3g"); // xb->eptr = xb->buf + hint; +UNSUPPORTED("dtbxbzhkw05lut0ozk9a49lw6"); // xb->ptr = xb->buf; +UNSUPPORTED("5ymin98xo0ermvpyhsuo8xwim"); // *xb->ptr = '\0'; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 deo0nqa6fmyacu293m9q0f3ad +// static int agxbmore(agxbuf * xb, unsigned int ssz) +public static Object agxbmore(Object... arg) { +UNSUPPORTED("dr7xxpbudfd4q496z1hjh0uam"); // static int agxbmore(agxbuf * xb, unsigned int ssz) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ayzlme0ebe3j87lpz076cg2vq"); // int cnt; /* current no. of characters in buffer */ +UNSUPPORTED("71r9w1f25l9h79jodjer7my8a"); // int size; /* current buffer size */ +UNSUPPORTED("2bckq0rejaf94iovglem6hqko"); // int nsize; /* new buffer size */ +UNSUPPORTED("dmokvf86b5kj3srnwwbr7ebmc"); // unsigned char *nbuf; /* new buffer */ +UNSUPPORTED("347vqdgen21gpinnet4lkk7gk"); // size = xb->eptr - xb->buf; +UNSUPPORTED("49rolm7orqt4aw3uud529g4qc"); // nsize = 2 * size; +UNSUPPORTED("6t3aq9fvpvhbjssfqnjmktfh0"); // if (size + ssz > nsize) +UNSUPPORTED("7ykdy1xuvrmibubukfxhfmz91"); // nsize = size + ssz; +UNSUPPORTED("bfinudkdiev8mwo6udbayoaex"); // cnt = xb->ptr - xb->buf; +UNSUPPORTED("4cmq49lu7qhmui59rl36qd6fr"); // if (xb->dyna) { +UNSUPPORTED("8vf8arbygb0610hkc403uiror"); // nbuf = realloc(xb->buf, nsize); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("3k38m0q2g7fwya1dna0s39dqc"); // nbuf = (unsigned char*)calloc((nsize), sizeof(unsigned char)); +UNSUPPORTED("do1ts7n0vopj00hs85yw95qjx"); // memcpy(nbuf, xb->buf, cnt); +UNSUPPORTED("bwuph2kus95n04yy45ff0ygwg"); // xb->dyna = 1; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5a5gutjqda6fhdylt7vi64g71"); // xb->buf = nbuf; +UNSUPPORTED("dodqzfdb41641741187lm9aci"); // xb->ptr = xb->buf + cnt; +UNSUPPORTED("e45cf41wsuzfjfi2my7jn7odp"); // xb->eptr = xb->buf + nsize; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8zf71o02uu26r06lmjzr6c8df +// static int agxbput(char *s, agxbuf * xb) +public static Object agxbput(Object... arg) { +UNSUPPORTED("dpuodut5jl740qijx0viiicj3"); // static int agxbput(char *s, agxbuf * xb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dmstj6pqesin7a4ufrtut65t5"); // unsigned int ssz = strlen(s); +UNSUPPORTED("6q0wy2t9qi11079j0wyuhsmiw"); // if (xb->ptr + ssz > xb->eptr) +UNSUPPORTED("82p9dlopf5tuzmyy5454sv4mm"); // agxbmore(xb, ssz); +UNSUPPORTED("9tvk5ztcu9lg2u40sfmevitl2"); // memcpy(xb->ptr, s, ssz); +UNSUPPORTED("2wy6om6o92zevnnevl5v0pr0c"); // xb->ptr += ssz; +UNSUPPORTED("dzondrrxi2pe7xy72r0jstd20"); // return ssz; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6pn991iar889bzaq1znh7dj3b +// static void agxbfree(agxbuf * xb) +public static Object agxbfree(Object... arg) { +UNSUPPORTED("3dnzpw59o9bwwyrb7eat7i3u4"); // static void agxbfree(agxbuf * xb) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("da8gv3dgf6bnks54n9mnlgzxk"); // if (xb->dyna) +UNSUPPORTED("62irfu7vrq2ewolixn0ksp5f6"); // free(xb->buf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4l360un6jpvisf8n73t7pqy9 +// static char *parseReal(char *s, double *fp) +public static Object parseReal(Object... arg) { +UNSUPPORTED("27cxezovcf9115tk1jj1gyw8j"); // static char *parseReal(char *s, double *fp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("8ne6p4d5pykwl1d3xk0yg0ipb"); // double d; +UNSUPPORTED("1xd0ne3bq4byy8xcbce2jvh7s"); // d = strtod(s, &p); +UNSUPPORTED("66hd5x2o87fqb7ug58kbyi4e5"); // if (p == s) return 0; +UNSUPPORTED("f3dzvb82hjtktpqsfn7uyp86z"); // *fp = d; +UNSUPPORTED("1fnaj5qlhzixwhovwrjmw4vgb"); // return (p); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bsxeh14qqmz6v3qdi9irrllr +// static char *parseInt(char *s, int *ip) +public static Object parseInt(Object... arg) { +UNSUPPORTED("73v5uzvbtjguvilqpgltjnq7t"); // static char *parseInt(char *s, int *ip) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bkz9mqmemp1ljxdwdbu8xv3e9"); // char* endp; +UNSUPPORTED("c5qif45ng54sfzc28pvot6iwq"); // *ip = (int)strtol (s, &endp, 10); +UNSUPPORTED("ct4gh2jrkm41477ikplh0rn57"); // if (s == endp) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("2ulm7bppf40z5aob8ngdrce73"); // return endp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3mwttoeqe8u9fia2d46vwzsve +// static char *parseUInt(char *s, unsigned int *ip) +public static Object parseUInt(Object... arg) { +UNSUPPORTED("enlzxotrmwou3zcdcg63q0u1i"); // static char *parseUInt(char *s, unsigned int *ip) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bkz9mqmemp1ljxdwdbu8xv3e9"); // char* endp; +UNSUPPORTED("2osjo1qcy5wbt8hb0i484t7gl"); // *ip = (unsigned int)strtoul (s, &endp, 10); +UNSUPPORTED("ct4gh2jrkm41477ikplh0rn57"); // if (s == endp) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("2ulm7bppf40z5aob8ngdrce73"); // return endp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8jcdtdxdrx01gn9f1nebzs68r +// static char *parseRect(char *s, xdot_rect * rp) +public static Object parseRect(Object... arg) { +UNSUPPORTED("8cfahk8txxaintbez7726qocf"); // static char *parseRect(char *s, xdot_rect * rp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bkz9mqmemp1ljxdwdbu8xv3e9"); // char* endp; +UNSUPPORTED("ayw7luucspha90kbooccenfvz"); // rp->x = strtod (s, &endp); +UNSUPPORTED("ct4gh2jrkm41477ikplh0rn57"); // if (s == endp) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6ojhqyohyu9t2drew53jrtxrw"); // s = endp; +UNSUPPORTED("3bz6uhgg11k6vjacbsjnx1wi3"); // rp->y = strtod (s, &endp); +UNSUPPORTED("ct4gh2jrkm41477ikplh0rn57"); // if (s == endp) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6ojhqyohyu9t2drew53jrtxrw"); // s = endp; +UNSUPPORTED("7o4n2gvc98j75dt3j9dxbjo78"); // rp->w = strtod (s, &endp); +UNSUPPORTED("ct4gh2jrkm41477ikplh0rn57"); // if (s == endp) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6ojhqyohyu9t2drew53jrtxrw"); // s = endp; +UNSUPPORTED("7yrlj0k618ctn709clsxdxl1d"); // rp->h = strtod (s, &endp); +UNSUPPORTED("ct4gh2jrkm41477ikplh0rn57"); // if (s == endp) +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6ojhqyohyu9t2drew53jrtxrw"); // s = endp; +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9zgiw1nnozptos14kotjlqzes +// static char *parsePolyline(char *s, xdot_polyline * pp) +public static Object parsePolyline(Object... arg) { +UNSUPPORTED("5vennd9p6hb7tz8vier5n3awr"); // static char *parsePolyline(char *s, xdot_polyline * pp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("aqektudazrrmp3o28qu9lc8lr"); // xdot_point *pts; +UNSUPPORTED("224clts6kmlangjk0mxje18pw"); // xdot_point *ps; +UNSUPPORTED("bkz9mqmemp1ljxdwdbu8xv3e9"); // char* endp; +UNSUPPORTED("9k4v6oml42z495w37d15bdhgq"); // s = parseInt(s, &i); +UNSUPPORTED("4tppo7loevc5w3rzs7kcd6q3s"); // if (!s) return s; +UNSUPPORTED("2jikm4wubyo74pnrnkqlp64n3"); // pts = ps = (xdot_point*)calloc((i), sizeof(xdot_point)); +UNSUPPORTED("4eh3im98g60ywzmhhcdwd6fvl"); // pp->cnt = i; +UNSUPPORTED("cphbu2o9nlpu87ymbrrqqzxyd"); // for (i = 0; i < pp->cnt; i++) { +UNSUPPORTED("31n0sbteq5vit0duqm4fw62us"); // ps->x = strtod (s, &endp); +UNSUPPORTED("1jb4h180dxiqktyhn2gltjn0v"); // if (s == endp) { +UNSUPPORTED("7bqn4djl4wq567zf4ce3ocb57"); // free (pts); +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("91nzbbhlz222quh6avosg1gs3"); // s = endp; +UNSUPPORTED("e65aaxn30tf5qsj1a1qq7w231"); // ps->y = strtod (s, &endp); +UNSUPPORTED("1jb4h180dxiqktyhn2gltjn0v"); // if (s == endp) { +UNSUPPORTED("7bqn4djl4wq567zf4ce3ocb57"); // free (pts); +UNSUPPORTED("6f1138i13x0xz1bf1thxgjgka"); // return 0; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("91nzbbhlz222quh6avosg1gs3"); // s = endp; +UNSUPPORTED("cc5r26z00xi25odsicfy1n1mg"); // ps->z = 0; +UNSUPPORTED("87sp63nt8twfjdetw9u20nv3l"); // ps++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6rgl3frmyuop1sfw5ytbajpe"); // pp->pts = pts; +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9ndna3jb07n84p1schywyuztb +// static char *parseString(char *s, char **sp) +public static Object parseString(Object... arg) { +UNSUPPORTED("6ho8lvhy0v0vmiwxtchvowdag"); // static char *parseString(char *s, char **sp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("a1dehvgts7vkximbs2yo0q6pa"); // char *c; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("9k4v6oml42z495w37d15bdhgq"); // s = parseInt(s, &i); +UNSUPPORTED("8t62hsoemjy6c138b6890zgr6"); // if (!s || (i <= 0)) return 0; +UNSUPPORTED("3ugsfktr0fa4ozg4wrl9ol7dc"); // while (*s && (*s != '-')) s++; +UNSUPPORTED("98g0ujdodpjy3g7nibv2z5ait"); // if (*s) s++; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("50parur6008yns69htbrun3l2"); // c = (char*)calloc((i + 1), sizeof(char)); +UNSUPPORTED("c920n72fhgint9bu1xhd382e5"); // p = c; +UNSUPPORTED("7ph7rzi6mme47sk2y140dwlbm"); // while ((i > 0) && *s) { +UNSUPPORTED("8e6st6hhl4yfs7qub4b87bkm0"); // *p++ = *s++; +UNSUPPORTED("2fvaz29y6ivihvxotxz84fsl9"); // i--; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2gn9hkx01ingqp86itwc4b5dm"); // if (i > 0) { +UNSUPPORTED("1jlx2cuwttezm3zsuuehbh1l8"); // free (c); +UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2t1d66kwn86kqh0i665hqw6cl"); // *p = '\0'; +UNSUPPORTED("a0gcud6ayeka85e6o5adbzjd2"); // *sp = c; +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7reshvtfhworq8s9q6lowo6nl +// static char *parseAlign(char *s, xdot_align * ap) +public static Object parseAlign(Object... arg) { +UNSUPPORTED("8si3sn14sdmyqz32r6ja6zl9h"); // static char *parseAlign(char *s, xdot_align * ap) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("9k4v6oml42z495w37d15bdhgq"); // s = parseInt(s, &i); +UNSUPPORTED("7jqpiltkvdvvkjldnxqmz4nfw"); // if (i < 0) +UNSUPPORTED("bfu0mpq4mmjh0pu6dyx8xlrna"); // *ap = xd_left; +UNSUPPORTED("8544wlrukmsh3w27eef43oivi"); // else if (i > 0) +UNSUPPORTED("1bi0jgsifwqkvdvmho2gvvfad"); // *ap = xd_right; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("6pvvrqivfj7ir7h3u5x5yfrrc"); // *ap = xd_center; +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ehnxo19guzhgzj6t8jgklcy9t +// static char *parseOp(xdot_op * op, char *s, drawfunc_t ops[], int* error) +public static Object parseOp(Object... arg) { +UNSUPPORTED("6n4wgd5e0tmwigktwbqr7b2mh"); // static char *parseOp(xdot_op * op, char *s, drawfunc_t ops[], int* error) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1al7rtqrsk1oru479p6d19nt"); // char* cs; +UNSUPPORTED("dcftaleqvuytghzlz8x1uo05u"); // xdot_color clr; +UNSUPPORTED("6fdmf6t8ozu6ifv41ah2khjh5"); // *error = 0; +UNSUPPORTED("5gi4ktom734bivy5bia2jyoyg"); // while (isspace(*s)) +UNSUPPORTED("1fe0kohehgdxhenrepo7ymdcw"); // s++; +UNSUPPORTED("avvtfrt0s9pcst93venr1pjk3"); // switch (*s++) { +UNSUPPORTED("4qkgjhvxkpafhor6qtoe37y14"); // case 'E': +UNSUPPORTED("9dnkzv2t54la5ntx5vagvydnh"); // op->kind = xd_filled_ellipse; +UNSUPPORTED("atahrjx7tu9jw9spyi7jwfptn"); // s = parseRect(s, &op->u.ellipse); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("f3txy198klrpx73ctc6lg125r"); // op->drawfunc = ops[xop_ellipse]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("yic0mjrlpepyvrda3gv6t25f"); // case 'e': +UNSUPPORTED("e9q42iiycw42fzv9sxtvjkwh1"); // op->kind = xd_unfilled_ellipse; +UNSUPPORTED("atahrjx7tu9jw9spyi7jwfptn"); // s = parseRect(s, &op->u.ellipse); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("f3txy198klrpx73ctc6lg125r"); // op->drawfunc = ops[xop_ellipse]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("61e1o543la5tkcimttlw8ywf2"); // case 'P': +UNSUPPORTED("altg4bjpb2pgvh11pwr1uwmr"); // op->kind = xd_filled_polygon; +UNSUPPORTED("7f8c0fkrsn9rb7rkurug6gf2z"); // s = parsePolyline(s, &op->u.polygon); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("3jz0du43oha0dv721jmcm9iaq"); // op->drawfunc = ops[xop_polygon]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8nhycr2g1b6hvihfh3uztphax"); // case 'p': +UNSUPPORTED("22idwk0wq7hih6wgv79c42gxj"); // op->kind = xd_unfilled_polygon; +UNSUPPORTED("7f8c0fkrsn9rb7rkurug6gf2z"); // s = parsePolyline(s, &op->u.polygon); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("3jz0du43oha0dv721jmcm9iaq"); // op->drawfunc = ops[xop_polygon]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("volih9dzznkmqxv0f6d40beq"); // case 'b': +UNSUPPORTED("dghgxw5iaz1lqcpx6khg9fwt5"); // op->kind = xd_filled_bezier; +UNSUPPORTED("de36xrnd6y03zp55847a4giju"); // s = parsePolyline(s, &op->u.bezier); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("1pmk6j85vg5odzetxiw461gw"); // op->drawfunc = ops[xop_bezier]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9nbe45sgjnq9pebqfddm57j34"); // case 'B': +UNSUPPORTED("7yupkrdo7hn0u4tlxtznjbh03"); // op->kind = xd_unfilled_bezier; +UNSUPPORTED("de36xrnd6y03zp55847a4giju"); // s = parsePolyline(s, &op->u.bezier); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("1pmk6j85vg5odzetxiw461gw"); // op->drawfunc = ops[xop_bezier]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("rzit3m9f6iuku0clu8nqw5ih"); // case 'c': +UNSUPPORTED("5mc0sy0u0wyb9hblr1cbvyp1h"); // s = parseString(s, &cs); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("ddh0k5n3l9rto4gcuggkkja61"); // cs = parseXDotColor (cs, &clr); +UNSUPPORTED("ix8ie1z4452fb8rtdsib6ufu"); // if(!cs){*error=1;return 0;}; +UNSUPPORTED("dqfrfyicjfcf6t6vr1g1atdpm"); // if (clr.type == xd_none) { +UNSUPPORTED("4jv4w1znjmyk4pv8e2882cz0"); // op->kind = xd_pen_color; +UNSUPPORTED("9ohuadhd8hihpbkr4vazi9dho"); // op->u.color = clr.u.clr; +UNSUPPORTED("8npw75ua3iw8jlh0dm8nidoy9"); // if (ops) +UNSUPPORTED("1r3cxmw9aafv54g3bc6bxkrey"); // op->drawfunc = ops[xop_pen_color]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("eamachthb8mef0nhonusnktu9"); // op->kind = xd_grad_pen_color; +UNSUPPORTED("1t72m9kz99a1xacrrrcfo1472"); // op->u.grad_color = clr; +UNSUPPORTED("8npw75ua3iw8jlh0dm8nidoy9"); // if (ops) +UNSUPPORTED("2uoht3mjgjvn6q5p8grt2eqt"); // op->drawfunc = ops[xop_grad_color]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1b9yj8jr8j9uh2dubizj3pb1w"); // case 'C': +UNSUPPORTED("5mc0sy0u0wyb9hblr1cbvyp1h"); // s = parseString(s, &cs); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("ddh0k5n3l9rto4gcuggkkja61"); // cs = parseXDotColor (cs, &clr); +UNSUPPORTED("ix8ie1z4452fb8rtdsib6ufu"); // if(!cs){*error=1;return 0;}; +UNSUPPORTED("dqfrfyicjfcf6t6vr1g1atdpm"); // if (clr.type == xd_none) { +UNSUPPORTED("50qk3ylyw205nzn8fqok09cs5"); // op->kind = xd_fill_color; +UNSUPPORTED("9ohuadhd8hihpbkr4vazi9dho"); // op->u.color = clr.u.clr; +UNSUPPORTED("8npw75ua3iw8jlh0dm8nidoy9"); // if (ops) +UNSUPPORTED("4zwt9xuucvf9zu22n83cq16mv"); // op->drawfunc = ops[xop_fill_color]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("crmgghygtre74dw1tfur2pnt4"); // op->kind = xd_grad_fill_color; +UNSUPPORTED("1t72m9kz99a1xacrrrcfo1472"); // op->u.grad_color = clr; +UNSUPPORTED("8npw75ua3iw8jlh0dm8nidoy9"); // if (ops) +UNSUPPORTED("2uoht3mjgjvn6q5p8grt2eqt"); // op->drawfunc = ops[xop_grad_color]; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("92wd4259ggzetbnn56kh75cap"); // case 'L': +UNSUPPORTED("adyh3da2x6ec56lvn4k7ke2if"); // op->kind = xd_polyline; +UNSUPPORTED("cxbj7pu045lx6cudbid7zp9qe"); // s = parsePolyline(s, &op->u.polyline); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("9vy8b22mc6n5byr6erdtsw40t"); // op->drawfunc = ops[xop_polyline]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("2s6hwvc7utwke7l45suhmumhk"); // case 'T': +UNSUPPORTED("7jtgg1g4yy9elu7uj6ort6gx5"); // op->kind = xd_text; +UNSUPPORTED("ddz6ejg5d3ser8syqgqgor5or"); // s = parseReal(s, &op->u.text.x); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("dtm3mydushiqsv1486knmsmk4"); // s = parseReal(s, &op->u.text.y); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("bprdmfsh0vryv3p7ij0qf40ew"); // s = parseAlign(s, &op->u.text.align); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("ah35sfvnqnxyb683wo4p2rk35"); // s = parseReal(s, &op->u.text.width); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("246imx3icdy7iqe7js9nneni"); // s = parseString(s, &op->u.text.text); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("5knq711m08yljnaejvjqfcg3j"); // op->drawfunc = ops[xop_text]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("6q33jx6joepwjvm90xt4bf0vh"); // case 'F': +UNSUPPORTED("9kl1bheiih6co789yxhdhiujb"); // op->kind = xd_font; +UNSUPPORTED("t4du5s5scamal3d24vj1iqbh"); // s = parseReal(s, &op->u.font.size); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("2fc9sdef2b51gow7bu6sjkkg4"); // s = parseString(s, &op->u.font.name); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("35fyib2apc4v7sbldsq0go062"); // op->drawfunc = ops[xop_font]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("a64n1v2knehfy9fh7m8eu7hsw"); // case 'S': +UNSUPPORTED("8zk5sf79y3v9t2m0y1ymj3iey"); // op->kind = xd_style; +UNSUPPORTED("7cq7xz66wdm8q5mb092031z4u"); // s = parseString(s, &op->u.style); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("7squrebrjdtz8u4fte81buvyz"); // op->drawfunc = ops[xop_style]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("29wq7b3fga4nijwl3yta17mv7"); // case 'I': +UNSUPPORTED("eg0zxy0wpuyiu2oougybrgiy7"); // op->kind = xd_image; +UNSUPPORTED("8z1u31p0vzmblgt8ohzyr1ndx"); // s = parseRect(s, &op->u.image.pos); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("bumle8azn9e1h3v7bopmk5n54"); // s = parseString(s, &op->u.image.name); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("6m0v33rzuqjeq92tc2rckvele"); // op->drawfunc = ops[xop_image]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("eat2i5ddqniirlvawyhxdst46"); // case 't': +UNSUPPORTED("e92hvbw42702796zjdpygw9hm"); // op->kind = xd_fontchar; +UNSUPPORTED("1ccegleo0pp43r2ln4pqcss9g"); // s = parseUInt(s, &op->u.fontchar); +UNSUPPORTED("dgnldyd2pb5vmg1g32106eh4l"); // if(!s){*error=1;return 0;}; +UNSUPPORTED("68fwibhr1nqhg298v23jvoosh"); // if (ops) +UNSUPPORTED("9d0mk8yn2iofol0nxgvjskxm2"); // op->drawfunc = ops[xop_fontchar]; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1luutzji7osg8esr8b5j2cmsr"); // case '\0': +UNSUPPORTED("cx0xi1vqbff1wttv329u71fsf"); // s = 0; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("12iorka61r0svbo67ymiyk2xm"); // *error = 1; +UNSUPPORTED("cx0xi1vqbff1wttv329u71fsf"); // s = 0; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5wc1slq9x7lxo1mohysgr0u9v +// xdot *parseXDotFOn (char *s, drawfunc_t fns[], int sz, xdot* x) +public static Object parseXDotFOn(Object... arg) { +UNSUPPORTED("del1weqvytt23ivpfz8ioo7lq"); // xdot *parseXDotFOn (char *s, drawfunc_t fns[], int sz, xdot* x) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6qc99eq4i3e3ogqtvwjenpax6"); // xdot_op op; +UNSUPPORTED("de9l6pn4qzf2wjdqbawozkf7e"); // char *ops; +UNSUPPORTED("1fre7x15xdukb9hyi6d6711i5"); // int oldsz, bufsz; +UNSUPPORTED("cknrkc54njhr0aclf9l9gw0bw"); // int error; +UNSUPPORTED("ecv0zeja1tcgfn8qgbqizf04m"); // int initcnt; +UNSUPPORTED("5io7qudgtw3wrjkc5ndpni08d"); // if (!s) +UNSUPPORTED("7ngxpkghjermbwbho2j4f5qvi"); // return x; +UNSUPPORTED("ke1x8t1fmvv316rneoda0ss2"); // if (!x) { +UNSUPPORTED("1bt9ibfd7selwlyjzzj8zugyw"); // x = (xdot*)calloc(1, sizeof(xdot)); +UNSUPPORTED("2e1w10luru5il8ocut51grwgv"); // if (sz <= sizeof(xdot_op)) +UNSUPPORTED("7apwr620hx5egvyfz58suchvi"); // sz = sizeof(xdot_op); +UNSUPPORTED("ek6enscr1j99c8kzgpj6u2bxa"); // /* cnt, freefunc, ops, flags zeroed by NEW */ +UNSUPPORTED("cajvvx0dkfkoti3nbxwiluats"); // x->sz = sz; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("e077xzd8dapealp6nhtlqdpl4"); // initcnt = x->cnt; +UNSUPPORTED("7mal8ay7kpitrb9g5mthqfbjb"); // sz = x->sz; +UNSUPPORTED("8i2hi7mj1cgsl90sxhbpqranx"); // if (initcnt == 0) { +UNSUPPORTED("bkcefor4uv5jyrv0x0yfbxyna"); // bufsz = 100; +UNSUPPORTED("201agqdoyv7sx9c17j6fuw2sg"); // ops = (char *) calloc(100, sz); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("cwo1tpf247100oddqjti32zmh"); // ops = (char*)(x->ops); +UNSUPPORTED("7nja6mm5tt34cve70y0571hub"); // bufsz = initcnt + 100; +UNSUPPORTED("cnb950g9dc109a90346xph8iy"); // ops = (char *) realloc(ops, bufsz * sz); +UNSUPPORTED("b43qdbc13emvwq99ngcburls5"); // memset(ops + (initcnt*sz), '\0', (bufsz - initcnt)*sz); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("73x1ejpfjxn2mhkzjznytsxvn"); // while ((s = parseOp(&op, s, fns, &error))) { +UNSUPPORTED("5ol0b0rd00pjdvj32o6c1il1x"); // if (x->cnt == bufsz) { +UNSUPPORTED("1w2w52ovyn8un9gr3j9lxj202"); // oldsz = bufsz; +UNSUPPORTED("3psgdtqxnrljp3xnkep0f4qm4"); // bufsz *= 2; +UNSUPPORTED("2ykj4yj4vfhwxjomqhhrg8uzr"); // ops = (char *) realloc(ops, bufsz * sz); +UNSUPPORTED("6hvg5i6znthuu7cdcsjq5mnz0"); // memset(ops + (oldsz*sz), '\0', (bufsz - oldsz)*sz); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("du21yaxgccjzlo45llct4tqak"); // *(xdot_op *) (ops + (x->cnt * sz)) = op; +UNSUPPORTED("ai5pt7k72sx5jp61rk4fvdhxp"); // x->cnt++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9ob7nuswfwxxvd5brie5gso4d"); // if (error) +UNSUPPORTED("dyyumzikvlv9fg24z6x09p5lu"); // x->flags |= 1; +UNSUPPORTED("1n5koxwuji1d5l2zzs1e4h1qi"); // if (x->cnt) { +UNSUPPORTED("4ssdlr3gorr9y6t08ll8z4znz"); // x->ops = (xdot_op *) realloc(ops, x->cnt * sz); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("cycxnymrxk0vovp1xbx5ma9md"); // free (ops); +UNSUPPORTED("c0mmv67btk6s9utzudcjef1b"); // free (x); +UNSUPPORTED("ajmuq0bs0l1j2jqys1lqyatkp"); // x = NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4jnfz0yeu1qihsx3sbr7l2fsh"); // return x; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4460p54l4myil3tss1cr4fryd +// xdot *parseXDotF(char *s, drawfunc_t fns[], int sz) +public static Object parseXDotF(Object... arg) { +UNSUPPORTED("969km4cd3fzkxaw7yidsr8p7p"); // xdot *parseXDotF(char *s, drawfunc_t fns[], int sz) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dlkx6l0c5f3r3r98huhdg2ooa"); // return parseXDotFOn (s, fns, sz, NULL); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1l1kp80xwz00t0yjxs3q5rmk3 +// xdot *parseXDot(char *s) +public static Object parseXDot(Object... arg) { +UNSUPPORTED("8q2xd8yodlhxzirc9af1nt5x5"); // xdot *parseXDot(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("arcemicyd1w4yf877xwdo6rx7"); // return parseXDotF(s, 0, 0); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2f1smkubo9aphaw4mu9x6fqep +// static void trim (char* buf) +public static Object trim(Object... arg) { +UNSUPPORTED("16qqcors2mtgshjsd8bo4p83w"); // static void trim (char* buf) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7puz5on3kut1d51f3su87yzvy"); // char* dotp; +UNSUPPORTED("a4px33i4moqe8ybwatz0g8k6"); // char* p; +UNSUPPORTED("25j4nlrn8fb330rtpgs3znj2e"); // if ((dotp = strchr (buf,'.'))) { +UNSUPPORTED("4ahv95yhrsexjeiyqeqh89ui5"); // p = dotp+1; +UNSUPPORTED("8owim6df9ae01xere8qw3zijk"); // while (*p) p++; // find end of string +UNSUPPORTED("6y68c149kyxt4ja9q3jh7bc19"); // p--; +UNSUPPORTED("e2htnsr0x54tbh21x4z55a8fg"); // while (*p == '0') *p-- = '\0'; +UNSUPPORTED("azdcgp3weiwu7xxfo6mjw11v3"); // if (*p == '.') // If all decimals were zeros, remove ".". +UNSUPPORTED("6568pmkatbjs0ljsylsyvwepv"); // *p = '\0'; +UNSUPPORTED("35nw1pbiz2p3s6qwlam5eoo3m"); // else +UNSUPPORTED("a0t85lvr3qdf70ajg30c8eadd"); // p++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dkdckkwtr1hxr1itqzjgv1uwc +// static void printRect(xdot_rect * r, pf print, void *info) +public static Object printRect(Object... arg) { +UNSUPPORTED("1j4yxl2tdu1mgcs8f18wo7y1p"); // static void printRect(xdot_rect * r, pf print, void *info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ao5jsn9dl1jrlcy9pc1frc1o0"); // char buf[128]; +UNSUPPORTED("6ded6umxsn4kpbdobx5psese6"); // sprintf(buf, " %.02f", r->x); +UNSUPPORTED("c6edvxq3lg824jb9zcjytatwi"); // trim(buf); +UNSUPPORTED("1pvfmyr62uut2ima4wfa83yq7"); // print(buf, info); +UNSUPPORTED("1dq8e468ztu7szq5wr6jwqoyk"); // sprintf(buf, " %.02f", r->y); +UNSUPPORTED("c6edvxq3lg824jb9zcjytatwi"); // trim(buf); +UNSUPPORTED("1pvfmyr62uut2ima4wfa83yq7"); // print(buf, info); +UNSUPPORTED("4hbjzmluo9cbzej5u95q8a7z4"); // sprintf(buf, " %.02f", r->w); +UNSUPPORTED("c6edvxq3lg824jb9zcjytatwi"); // trim(buf); +UNSUPPORTED("1pvfmyr62uut2ima4wfa83yq7"); // print(buf, info); +UNSUPPORTED("aneklasez7u2mjv2budi0ucgq"); // sprintf(buf, " %.02f", r->h); +UNSUPPORTED("c6edvxq3lg824jb9zcjytatwi"); // trim(buf); +UNSUPPORTED("1pvfmyr62uut2ima4wfa83yq7"); // print(buf, info); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 42jio1rnt74r1eotoz52e2103 +// static void printPolyline(xdot_polyline * p, pf print, void *info) +public static Object printPolyline(Object... arg) { +UNSUPPORTED("5duf17af1csfzpnc3dyas5huc"); // static void printPolyline(xdot_polyline * p, pf print, void *info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("bx1dr4weajm160sejmy560gvb"); // char buf[512]; +UNSUPPORTED("2wggiazumqcdxtujbvty42yuv"); // sprintf(buf, " %d", p->cnt); +UNSUPPORTED("1pvfmyr62uut2ima4wfa83yq7"); // print(buf, info); +UNSUPPORTED("1zh4rtgdnj1q51o48247n8113"); // for (i = 0; i < p->cnt; i++) { +UNSUPPORTED("6npaqu2tg8ldsxi0i5k0n0z3j"); // sprintf(buf, " %.02f", p->pts[i].x); +UNSUPPORTED("3b5kljt1py58tdgjxk9e2dsww"); // trim(buf); +UNSUPPORTED("7oss8g82at7padefgh6z1oko6"); // print(buf, info); +UNSUPPORTED("3ci7wlatgm8j39td4y1jtvcyq"); // sprintf(buf, " %.02f", p->pts[i].y); +UNSUPPORTED("3b5kljt1py58tdgjxk9e2dsww"); // trim(buf); +UNSUPPORTED("7oss8g82at7padefgh6z1oko6"); // print(buf, info); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4gdy7r7tpkmrd0prm55gzhki5 +// static void printString(char *p, pf print, void *info) +public static Object printString(Object... arg) { +UNSUPPORTED("9f4f8ckw2jx1xeiecbc5j14jx"); // static void printString(char *p, pf print, void *info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4f58isghm038gd5wa6xw6tk4k"); // char buf[30]; +UNSUPPORTED("axfy0wcb6535wfyimof2qaa44"); // sprintf(buf, " %d -", (int) strlen(p)); +UNSUPPORTED("1pvfmyr62uut2ima4wfa83yq7"); // print(buf, info); +UNSUPPORTED("bp53hk5r9lhkewy59gijr0m4j"); // print(p, info); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8sfpijalp2tilivgvo7ipgyo2 +// static void printInt(int i, pf print, void *info) +public static Object printInt(Object... arg) { +UNSUPPORTED("9vsvsk7dh3k27thd38londqpp"); // static void printInt(int i, pf print, void *info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4f58isghm038gd5wa6xw6tk4k"); // char buf[30]; +UNSUPPORTED("1ikq43mlxdu4l67uy39bejql4"); // sprintf(buf, " %d", i); +UNSUPPORTED("1pvfmyr62uut2ima4wfa83yq7"); // print(buf, info); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bb85wa9ydpjx8azkt6j8fkk9z +// static void printFloat(float f, pf print, void *info, int space) +public static Object printFloat(Object... arg) { +UNSUPPORTED("d94ew8o9g8u5ic657j9wqhrwz"); // static void printFloat(float f, pf print, void *info, int space) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ao5jsn9dl1jrlcy9pc1frc1o0"); // char buf[128]; +UNSUPPORTED("4syg3ja72oets2mdjgyjmzh5w"); // if (space) +UNSUPPORTED("8dxllh2z42b75e6r0pxkdg2j1"); // sprintf(buf, " %.02f", f); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("97zm9gyi28c0wrfbvlls52v1h"); // sprintf(buf, "%.02f", f); +UNSUPPORTED("481rvn40hp1stspd04wqvyej6"); // trim (buf); +UNSUPPORTED("1pvfmyr62uut2ima4wfa83yq7"); // print(buf, info); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cewa9h3fzdsvn1pbwq6owgc41 +// static void printAlign(xdot_align a, pf print, void *info) +public static Object printAlign(Object... arg) { +UNSUPPORTED("8miq75j7m3nbilqa8rw1slpm9"); // static void printAlign(xdot_align a, pf print, void *info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b5n0x9uualh7k0dnk80sdcgqs"); // switch (a) { +UNSUPPORTED("css95m4wfpdkor1v8y1jvb0yf"); // case xd_left: +UNSUPPORTED("5j6u0d7ydfnkl37wkp62dee5z"); // print(" -1", info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3qghu38yz817sx6eaztlm3p6l"); // case xd_right: +UNSUPPORTED("bm2tfxfdkjx58e5wkpecpko4u"); // print(" 1", info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1hh2q36cwlihkbrqqwveukrto"); // case xd_center: +UNSUPPORTED("8qpabgae6mxxb1ly8yuw0h9pa"); // print(" 0", info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8sdpv3zwgeio07qexxyifrki9 +// static void gradprint (char* s, void* v) +public static Object gradprint(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("e9q23vdw8dsq7sa76x8tatioi"); // gradprint (char* s, void* v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("byn5a1ck7ae0nmlhvjrcigb3i"); // agxbput(s, (agxbuf*)v); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d8h0f1ny0lfqgdlltgznth70f +// static void toGradString (agxbuf* xb, xdot_color* cp) +public static Object toGradString(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("e098a5mtgj1bjdwal9mpcyohu"); // toGradString (agxbuf* xb, xdot_color* cp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bg1wmmucmjnf92wix4t7nfnaa"); // int i, n_stops; +UNSUPPORTED("5c0mu092bwx9r1ah38xzg3b4c"); // xdot_color_stop* stops; +UNSUPPORTED("19ar0bs2h13txvy4uwtw868m"); // if (cp->type == xd_linear) { +UNSUPPORTED("a5e0eku2d7lu5e1urereer9qd"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)'['))); +UNSUPPORTED("26is4zw7egae66druypu7x87g"); // printFloat (cp->u.ling.x0, gradprint, xb, 0); +UNSUPPORTED("7enppj732f9vvrl746z88q49u"); // printFloat (cp->u.ling.y0, gradprint, xb, 1); +UNSUPPORTED("3gu8dszmue79k293so5y2wfvm"); // printFloat (cp->u.ling.x1, gradprint, xb, 1); +UNSUPPORTED("cal670m45zbhvvhzumai92o9y"); // printFloat (cp->u.ling.y1, gradprint, xb, 1); +UNSUPPORTED("es7ru0t95ecdn3lk7jb64x0h4"); // n_stops = cp->u.ling.n_stops; +UNSUPPORTED("24qiepo9vtk8pnivng82po3mt"); // stops = cp->u.ling.stops; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("4onc3nmgcaapl00s6m043sg26"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)'('))); +UNSUPPORTED("aagp8bu8z9h8c1osmyvdw10fi"); // printFloat (cp->u.ring.x0, gradprint, xb, 0); +UNSUPPORTED("5aksyngm1c2y5a0lcsafnlkx3"); // printFloat (cp->u.ring.y0, gradprint, xb, 1); +UNSUPPORTED("pf3sl7ifvvw4cxut4qrg5pyy"); // printFloat (cp->u.ring.r0, gradprint, xb, 1); +UNSUPPORTED("4h1gr2eixkyvubhblkd58jcbi"); // printFloat (cp->u.ring.x1, gradprint, xb, 1); +UNSUPPORTED("6e9hjapf13xkygv9wqzgrd6b3"); // printFloat (cp->u.ring.y1, gradprint, xb, 1); +UNSUPPORTED("a5durn757p58xt7ajmie3ne0r"); // printFloat (cp->u.ring.r1, gradprint, xb, 1); +UNSUPPORTED("9vzzyqc3eqpw3j9gk4twef732"); // n_stops = cp->u.ring.n_stops; +UNSUPPORTED("1ifkpfecqerrx44isr3gttz6y"); // stops = cp->u.ring.stops; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9bbs1gkxn1py6cenyvu86g6io"); // printInt (n_stops, gradprint, xb); +UNSUPPORTED("4c8mz82f1vdtbgs20z3sj5piu"); // for (i = 0; i < n_stops; i++) { +UNSUPPORTED("4hufkcyrhdph16ckosmd5cghd"); // printFloat (stops[i].frac, gradprint, xb, 1); +UNSUPPORTED("es15carbpwf4hdyr222w7gct0"); // printString (stops[i].color, gradprint, xb); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a0vxpwbxeeom01urwsawtv3c4"); // if (cp->type == xd_linear) +UNSUPPORTED("9pej3878vsbmnvzgtbqgdb9a5"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)']'))); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("yifq4dmob9tld1rc5va5zha8"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)')'))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2ifo26ctb4oo4z48u3q84ejrn +// static void printXDot_Op(xdot_op * op, pf print, void *info, int more) +public static Object printXDot_Op(Object... arg) { +UNSUPPORTED("1793b7u18bt999rej4hfqd18z"); // static void printXDot_Op(xdot_op * op, pf print, void *info, int more) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("esg3s800dx899v69pkng2kavv"); // unsigned char buf[BUFSIZ]; +UNSUPPORTED("cx1hx0xl1yzchdfsninsbfsek"); // agxbinit (&xb, BUFSIZ, buf); +UNSUPPORTED("egsu3y4d03wndsn6zaevl28hr"); // switch (op->kind) { +UNSUPPORTED("92w4nbepujb6qq0yhaml31tcv"); // case xd_filled_ellipse: +UNSUPPORTED("avfl9oam76dloz4i7gb63380f"); // print("E", info); +UNSUPPORTED("18zcxe29q21cnf6ocj8rtkhsv"); // printRect(&op->u.ellipse, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7zgc3n99mi30jda6c8ii6z9ij"); // case xd_unfilled_ellipse: +UNSUPPORTED("83413w1sz69a4c9t1pbqq1y"); // print("e", info); +UNSUPPORTED("18zcxe29q21cnf6ocj8rtkhsv"); // printRect(&op->u.ellipse, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("a02o53vx69zifve1qybxt6bwg"); // case xd_filled_polygon: +UNSUPPORTED("7u9vnqf5qa98cod2pe107pm8c"); // print("P", info); +UNSUPPORTED("awy43l3osrby3v6u35pv3pgcn"); // printPolyline(&op->u.polygon, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1amgc8nhs2zl8rzvqurr02syl"); // case xd_unfilled_polygon: +UNSUPPORTED("eqr0mrqf32c8edkz2vxxufss3"); // print("p", info); +UNSUPPORTED("awy43l3osrby3v6u35pv3pgcn"); // printPolyline(&op->u.polygon, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("i75482wp0xfww8yo6wanbdpe"); // case xd_filled_bezier: +UNSUPPORTED("dps7uwiaic5ssgx5ak76dknwc"); // print("b", info); +UNSUPPORTED("4btk2wauocq7ho3pcmjhpaep3"); // printPolyline(&op->u.bezier, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("cljys033beawi3mtklyme87lc"); // case xd_unfilled_bezier: +UNSUPPORTED("bx3k28i94anx726x3fsw3hcbn"); // print("B", info); +UNSUPPORTED("4btk2wauocq7ho3pcmjhpaep3"); // printPolyline(&op->u.bezier, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3hbkjfy0n8isa112ucvobo206"); // case xd_pen_color: +UNSUPPORTED("etajunwxx38izkyu1vgomrd18"); // print("c", info); +UNSUPPORTED("2acpcykvd9wut6d3psoj4licj"); // printString(op->u.color, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7xkva0g2qpvpgvf24yglj76mo"); // case xd_grad_pen_color: +UNSUPPORTED("etajunwxx38izkyu1vgomrd18"); // print("c", info); +UNSUPPORTED("dn1ii4k6v4t36te9fit9p5ow"); // toGradString (&xb, &op->u.grad_color); +UNSUPPORTED("50kwynjmi5e57cvsa7vzmi43r"); // printString((((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf)), print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("p898bkyv60y69qbm68pjwrc"); // case xd_fill_color: +UNSUPPORTED("42hiueari9313xfmjkmlsh4nl"); // print("C", info); +UNSUPPORTED("2acpcykvd9wut6d3psoj4licj"); // printString(op->u.color, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("iqk6nvbp31j9twtqmoldcx45"); // case xd_grad_fill_color: +UNSUPPORTED("42hiueari9313xfmjkmlsh4nl"); // print("C", info); +UNSUPPORTED("dn1ii4k6v4t36te9fit9p5ow"); // toGradString (&xb, &op->u.grad_color); +UNSUPPORTED("50kwynjmi5e57cvsa7vzmi43r"); // printString((((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf)), print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("a19xwyhpt7uym00dh6pmlvhhk"); // case xd_polyline: +UNSUPPORTED("bnzcmoivqx29pzecf56klb5rt"); // print("L", info); +UNSUPPORTED("6jpvv2wygo44odwyu9lynwlla"); // printPolyline(&op->u.polyline, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8iuq6qr8jjaqun0ulqu2u1x77"); // case xd_text: +UNSUPPORTED("1covx2pxt7w158hh2znfdjibj"); // print("T", info); +UNSUPPORTED("du2g2u2x2kjtop4xp0foszscr"); // printInt(op->u.text.x, print, info); +UNSUPPORTED("e5fzs5nglnsh9m8cvrm6mhh9j"); // printInt(op->u.text.y, print, info); +UNSUPPORTED("12ip8eyyw9723ifasdged1v2g"); // printAlign(op->u.text.align, print, info); +UNSUPPORTED("dff5na2fdib9h0c3ltg1q62m1"); // printInt(op->u.text.width, print, info); +UNSUPPORTED("4j0eb8wt0yftyu0xsxwmht5y0"); // printString(op->u.text.text, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7mkkywc80hjajd0vttqrsfcsz"); // case xd_font: +UNSUPPORTED("5cr592wslkjhte61diwmbbiao"); // print("F", info); +UNSUPPORTED("2v4nq9epbpb850zg0p0ne7i9z"); // printFloat(op->u.font.size, print, info, 1); +UNSUPPORTED("m0mhdn5rhrw213vfetr1qvrr"); // printString(op->u.font.name, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4bvixlppj4a6yebt6egxnzu9e"); // case xd_fontchar: +UNSUPPORTED("4paiwfmol6vza6gj5t58bj1tu"); // print("t", info); +UNSUPPORTED("7f3e0jgah853oke7gxa99azrt"); // printInt(op->u.fontchar, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9c1yqt1pf6mjkrdhf7pxoea82"); // case xd_style: +UNSUPPORTED("5s484jqdx1mqox7ld6hgx74h3"); // print("S", info); +UNSUPPORTED("31kaly9swqallffqmpz4d8g8q"); // printString(op->u.style, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3tev1dlfh70jm5km963v1i7rr"); // case xd_image: +UNSUPPORTED("8u2x1dwtxbkqfhrhav6mps4zz"); // print("I", info); +UNSUPPORTED("cmjkhpcu8kludztp79rewpw3r"); // printRect(&op->u.image.pos, print, info); +UNSUPPORTED("7huh682je4jhfwyzr6jis9v3e"); // printString(op->u.image.name, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("21eozdlhui5hv29fj41fdny45"); // if (more) +UNSUPPORTED("3fhfv2tii5y8pg1pxuqf61414"); // print(" ", info); +UNSUPPORTED("9ocnzhe59r19odwgtedwnydm"); // agxbfree (&xb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 22qizeibm0jpts105p4r4ssu7 +// static void jsonRect(xdot_rect * r, pf print, void *info) +public static Object jsonRect(Object... arg) { +UNSUPPORTED("atngzawms4mstydgpenmodeae"); // static void jsonRect(xdot_rect * r, pf print, void *info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ao5jsn9dl1jrlcy9pc1frc1o0"); // char buf[128]; +UNSUPPORTED("899gofiybbl25xf9pqimd5aww"); // sprintf(buf, "[%.06f,%.06f,%.06f,%.06f]", r->x, r->y, r->w, r->h); +UNSUPPORTED("1pvfmyr62uut2ima4wfa83yq7"); // print(buf, info); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cfkyn9xd2i5z05dsbh0ne2rjg +// static void jsonPolyline(xdot_polyline * p, pf print, void *info) +public static Object jsonPolyline(Object... arg) { +UNSUPPORTED("egjrc5eqaywh9r95et92i5j12"); // static void jsonPolyline(xdot_polyline * p, pf print, void *info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("ao5jsn9dl1jrlcy9pc1frc1o0"); // char buf[128]; +UNSUPPORTED("dx17wwbu2afo621ke8m0p66bx"); // print("[", info); +UNSUPPORTED("1zh4rtgdnj1q51o48247n8113"); // for (i = 0; i < p->cnt; i++) { +UNSUPPORTED("9kduk4sv1f8wp0siawqgz9c4o"); // sprintf(buf, "%.06f,%.06f", p->pts[i].x, p->pts[i].y); +UNSUPPORTED("7oss8g82at7padefgh6z1oko6"); // print(buf, info); +UNSUPPORTED("dmxnc6gb50dg4v9n0xtjz51hf"); // if (i < p->cnt-1) print(",", info); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4oeezkifb3drxphpg1cjeg70d"); // print("]", info); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 aje680ivpjh0mfzcsw9x1ht0r +// static void jsonString(char *p, pf print, void *info) +public static Object jsonString(Object... arg) { +UNSUPPORTED("xd8vixlem3ryrydnitavheuh"); // static void jsonString(char *p, pf print, void *info) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ccqtabt7b8gb82xm56jlgsmct"); // unsigned char c, buf[BUFSIZ]; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("3jwm77zyv02ukrvjv9jppejf7"); // agxbinit(&xb, BUFSIZ, buf); +UNSUPPORTED("b3e82u1ow4q1lk03crhf13ayh"); // ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'"'))); +UNSUPPORTED("5idssb31ihz3min8hoscutczg"); // while ((c = *p++)) { +UNSUPPORTED("cm03my2812x36d3fncswnob84"); // if (c == '"') agxbput("\\\"", &xb); +UNSUPPORTED("94otk4xgi87nfbyoszjr7j55w"); // else if (c == '\\') agxbput("\\\\", &xb); +UNSUPPORTED("2jd1vf95nxgl1jccn2hj57ltn"); // /* else if (c > 127) handle UTF-8 */ +UNSUPPORTED("2cra9r66covnc0bjlevlzi5jj"); // else ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)c))); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b3e82u1ow4q1lk03crhf13ayh"); // ((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'"'))); +UNSUPPORTED("cc3sjgjwfnwoa96mfkgf04x8y"); // print((((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf)), info); +UNSUPPORTED("1at5m9ctjn3ukv5gqtfswik02"); // agxbfree(&xb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 en6kdtyyuve3yy1mk979yf17k +// static void jsonXDot_Op(xdot_op * op, pf print, void *info, int more) +public static Object jsonXDot_Op(Object... arg) { +UNSUPPORTED("9emtpnf2em1erh1ibaoqmcvew"); // static void jsonXDot_Op(xdot_op * op, pf print, void *info, int more) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("esg3s800dx899v69pkng2kavv"); // unsigned char buf[BUFSIZ]; +UNSUPPORTED("cx1hx0xl1yzchdfsninsbfsek"); // agxbinit (&xb, BUFSIZ, buf); +UNSUPPORTED("egsu3y4d03wndsn6zaevl28hr"); // switch (op->kind) { +UNSUPPORTED("92w4nbepujb6qq0yhaml31tcv"); // case xd_filled_ellipse: +UNSUPPORTED("7shzdk63y5m3x09b9ff524dm6"); // print("{E : ", info); +UNSUPPORTED("cfit896buh0gkw7q1d7stizok"); // jsonRect(&op->u.ellipse, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7zgc3n99mi30jda6c8ii6z9ij"); // case xd_unfilled_ellipse: +UNSUPPORTED("101qypctltvfnagwnn6e8ofl"); // print("{e : ", info); +UNSUPPORTED("cfit896buh0gkw7q1d7stizok"); // jsonRect(&op->u.ellipse, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("a02o53vx69zifve1qybxt6bwg"); // case xd_filled_polygon: +UNSUPPORTED("6rcmfpfjotckasov8w4bzpb7r"); // print("{P : ", info); +UNSUPPORTED("cp182xgfbyzs7pjw98qp82hzb"); // jsonPolyline(&op->u.polygon, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1amgc8nhs2zl8rzvqurr02syl"); // case xd_unfilled_polygon: +UNSUPPORTED("dzu0713owvp18q74j7ppfmhw6"); // print("{p : ", info); +UNSUPPORTED("cp182xgfbyzs7pjw98qp82hzb"); // jsonPolyline(&op->u.polygon, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("i75482wp0xfww8yo6wanbdpe"); // case xd_filled_bezier: +UNSUPPORTED("dqqwbsqud2t7i7xz1gohsqcq5"); // print("{b : ", info); +UNSUPPORTED("4xnyfd4ws1ocexeydxb9xpvth"); // jsonPolyline(&op->u.bezier, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("cljys033beawi3mtklyme87lc"); // case xd_unfilled_bezier: +UNSUPPORTED("e7cley1ku4kmdkxq0aawfeb2t"); // print("{B : ", info); +UNSUPPORTED("4xnyfd4ws1ocexeydxb9xpvth"); // jsonPolyline(&op->u.bezier, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3hbkjfy0n8isa112ucvobo206"); // case xd_pen_color: +UNSUPPORTED("c4qk7i453wj5fobvuvr3ei45w"); // print("{c : ", info); +UNSUPPORTED("7zcrklnkletwkzkl84au4weoa"); // jsonString(op->u.color, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7xkva0g2qpvpgvf24yglj76mo"); // case xd_grad_pen_color: +UNSUPPORTED("c4qk7i453wj5fobvuvr3ei45w"); // print("{c : ", info); +UNSUPPORTED("dn1ii4k6v4t36te9fit9p5ow"); // toGradString (&xb, &op->u.grad_color); +UNSUPPORTED("efndbch1vq95g86ddil3h32hq"); // jsonString((((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf)), print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("p898bkyv60y69qbm68pjwrc"); // case xd_fill_color: +UNSUPPORTED("92we9quymvrj11tqzxd0xxwun"); // print("{C : ", info); +UNSUPPORTED("7zcrklnkletwkzkl84au4weoa"); // jsonString(op->u.color, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("iqk6nvbp31j9twtqmoldcx45"); // case xd_grad_fill_color: +UNSUPPORTED("92we9quymvrj11tqzxd0xxwun"); // print("{C : ", info); +UNSUPPORTED("dn1ii4k6v4t36te9fit9p5ow"); // toGradString (&xb, &op->u.grad_color); +UNSUPPORTED("efndbch1vq95g86ddil3h32hq"); // jsonString((((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf)), print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("a19xwyhpt7uym00dh6pmlvhhk"); // case xd_polyline: +UNSUPPORTED("7a0hwcdrq1t22zkthfk8rjvny"); // print("{L :", info); +UNSUPPORTED("agckpp5qx857omx0z2p1omp9w"); // jsonPolyline(&op->u.polyline, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8iuq6qr8jjaqun0ulqu2u1x77"); // case xd_text: +UNSUPPORTED("6su4jcg42a5hqw1iewbdbqss8"); // print("{T : [", info); +UNSUPPORTED("du2g2u2x2kjtop4xp0foszscr"); // printInt(op->u.text.x, print, info); +UNSUPPORTED("9vp943ns0hhsqhqgt5bko6l5e"); // print(",", info); +UNSUPPORTED("e5fzs5nglnsh9m8cvrm6mhh9j"); // printInt(op->u.text.y, print, info); +UNSUPPORTED("9vp943ns0hhsqhqgt5bko6l5e"); // print(",", info); +UNSUPPORTED("12ip8eyyw9723ifasdged1v2g"); // printAlign(op->u.text.align, print, info); +UNSUPPORTED("9vp943ns0hhsqhqgt5bko6l5e"); // print(",", info); +UNSUPPORTED("dff5na2fdib9h0c3ltg1q62m1"); // printInt(op->u.text.width, print, info); +UNSUPPORTED("9vp943ns0hhsqhqgt5bko6l5e"); // print(",", info); +UNSUPPORTED("exr3mgpya5ekmani7zwyecckp"); // jsonString(op->u.text.text, print, info); +UNSUPPORTED("1xljw3cra5mz10d8m2ofd93g1"); // print("]", info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7mkkywc80hjajd0vttqrsfcsz"); // case xd_font: +UNSUPPORTED("chm0rcdooqkwdilqs4ob4x7er"); // print("{F : [", info); +UNSUPPORTED("9kl1bheiih6co789yxhdhiujb"); // op->kind = xd_font; +UNSUPPORTED("2v4nq9epbpb850zg0p0ne7i9z"); // printFloat(op->u.font.size, print, info, 1); +UNSUPPORTED("9vp943ns0hhsqhqgt5bko6l5e"); // print(",", info); +UNSUPPORTED("4gjyxukif0iv2opnta7dxjuud"); // jsonString(op->u.font.name, print, info); +UNSUPPORTED("1xljw3cra5mz10d8m2ofd93g1"); // print("]", info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4bvixlppj4a6yebt6egxnzu9e"); // case xd_fontchar: +UNSUPPORTED("7kn2tqcgq6mh4f6a2wjucq8ut"); // print("{t : ", info); +UNSUPPORTED("7f3e0jgah853oke7gxa99azrt"); // printInt(op->u.fontchar, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9c1yqt1pf6mjkrdhf7pxoea82"); // case xd_style: +UNSUPPORTED("c96ck14wi4rohmbat8gi5dld6"); // print("{S : ", info); +UNSUPPORTED("aee1scodw2sd4ao9kc1vbmqhk"); // jsonString(op->u.style, print, info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3tev1dlfh70jm5km963v1i7rr"); // case xd_image: +UNSUPPORTED("arfqyu09gop5ue9k4msfg8etr"); // print("{I : [", info); +UNSUPPORTED("71vovzeon9tb2c11s1nknqmff"); // jsonRect(&op->u.image.pos, print, info); +UNSUPPORTED("9vp943ns0hhsqhqgt5bko6l5e"); // print(",", info); +UNSUPPORTED("cr1qzeh98mlvqnlw58iuual50"); // jsonString(op->u.image.name, print, info); +UNSUPPORTED("1xljw3cra5mz10d8m2ofd93g1"); // print("]", info); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("21eozdlhui5hv29fj41fdny45"); // if (more) +UNSUPPORTED("5b86atqkvtk6yh0jjr574te6i"); // print("},\n", info); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("697b92co0pv9qoy9ikskp8tt2"); // print("}\n", info); +UNSUPPORTED("9ocnzhe59r19odwgtedwnydm"); // agxbfree (&xb); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2zdgagi4yv5fkpnso5ildjfj5 +// static void _printXDot(xdot * x, pf print, void *info, print_op ofn) +public static Object _printXDot(Object... arg) { +UNSUPPORTED("beqsyisd37qh2rmab3wmlihg9"); // static void _printXDot(xdot * x, pf print, void *info, print_op ofn) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("7iglpnbs5h4cbinybqfog9ddx"); // xdot_op *op; +UNSUPPORTED("7hh6k0a6zqwhdnmtvr8eessta"); // char *base = (char *) (x->ops); +UNSUPPORTED("budcfgz6nozjl4wd3lhsp20s7"); // for (i = 0; i < x->cnt; i++) { +UNSUPPORTED("coll83cylkgt1g7npgfdqqgx3"); // op = (xdot_op *) (base + i * x->sz); +UNSUPPORTED("dh2m2dnrjv9clw1u2sgwmpw6t"); // ofn(op, print, info, (i < x->cnt - 1)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1c9ib0ywnb7bedzxnss4cmagy +// char *sprintXDot(xdot * x) +public static Object sprintXDot(Object... arg) { +UNSUPPORTED("2e52l2dihzy7a2f1vl7qlv1xl"); // char *sprintXDot(xdot * x) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("esg3s800dx899v69pkng2kavv"); // unsigned char buf[BUFSIZ]; +UNSUPPORTED("9gou5otj6s39l2cbyc8i5i5lq"); // agxbuf xb; +UNSUPPORTED("3jwm77zyv02ukrvjv9jppejf7"); // agxbinit(&xb, BUFSIZ, buf); +UNSUPPORTED("6sioi1y1n9tqffo04oybnku8f"); // _printXDot(x, (pf) agxbput, &xb, printXDot_Op); +UNSUPPORTED("ezli236dfm9v74jhi9tffjqlg"); // s = strdup((((((&xb)->ptr >= (&xb)->eptr) ? agxbmore(&xb,1) : 0), (int)(*(&xb)->ptr++ = ((unsigned char)'\0'))),(char*)((&xb)->ptr = (&xb)->buf))); +UNSUPPORTED("1at5m9ctjn3ukv5gqtfswik02"); // agxbfree(&xb); +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eyjcl48szw6vtlxtutpssg7q5 +// void fprintXDot(FILE * fp, xdot * x) +public static Object fprintXDot(Object... arg) { +UNSUPPORTED("85u4x93wot46fvnzf3cz0cfk0"); // void fprintXDot(FILE * fp, xdot * x) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1qdeobw8612jy9o2hfcrb6kq2"); // _printXDot(x, (pf) fputs, fp, printXDot_Op); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 701gu0x25va3ckongikjzclu2 +// void jsonXDot(FILE * fp, xdot * x) +public static Object jsonXDot(Object... arg) { +UNSUPPORTED("8gckq5ubk6r40s6smk07wzmip"); // void jsonXDot(FILE * fp, xdot * x) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6izaqjssjpc0w431vv0fizft2"); // fputs ("[\n", fp); +UNSUPPORTED("4ui1pnf80zlet8vuuq94tv91m"); // _printXDot(x, (pf) fputs, fp, jsonXDot_Op); +UNSUPPORTED("d0endh1to4wsuqqpyuqcwflcz"); // fputs ("]\n", fp); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eu3dz6gm2u949z4rva28vws5z +// static void freeXOpData(xdot_op * x) +public static Object freeXOpData(Object... arg) { +UNSUPPORTED("d67njmp17xncuo32921x74jb7"); // static void freeXOpData(xdot_op * x) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ebv1xjp5fu1yrwjo0u1nkgbku"); // switch (x->kind) { +UNSUPPORTED("a02o53vx69zifve1qybxt6bwg"); // case xd_filled_polygon: +UNSUPPORTED("1amgc8nhs2zl8rzvqurr02syl"); // case xd_unfilled_polygon: +UNSUPPORTED("3bulq0614xay7aipkjqh6zpyj"); // free(x->u.polyline.pts); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("i75482wp0xfww8yo6wanbdpe"); // case xd_filled_bezier: +UNSUPPORTED("cljys033beawi3mtklyme87lc"); // case xd_unfilled_bezier: +UNSUPPORTED("3bulq0614xay7aipkjqh6zpyj"); // free(x->u.polyline.pts); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("a19xwyhpt7uym00dh6pmlvhhk"); // case xd_polyline: +UNSUPPORTED("3bulq0614xay7aipkjqh6zpyj"); // free(x->u.polyline.pts); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8iuq6qr8jjaqun0ulqu2u1x77"); // case xd_text: +UNSUPPORTED("bsij5o7b7yq4jagg1x1rw9m7b"); // free(x->u.text.text); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("p898bkyv60y69qbm68pjwrc"); // case xd_fill_color: +UNSUPPORTED("3hbkjfy0n8isa112ucvobo206"); // case xd_pen_color: +UNSUPPORTED("4fm7etfn9hr7qh74k70k45uc5"); // free(x->u.color); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("iqk6nvbp31j9twtqmoldcx45"); // case xd_grad_fill_color: +UNSUPPORTED("7xkva0g2qpvpgvf24yglj76mo"); // case xd_grad_pen_color: +UNSUPPORTED("eeydb7vp5du56qijz8fccw2r3"); // freeXDotColor (&x->u.grad_color); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7mkkywc80hjajd0vttqrsfcsz"); // case xd_font: +UNSUPPORTED("5tw7fqrjrai5235dxqqspkn4e"); // free(x->u.font.name); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("9c1yqt1pf6mjkrdhf7pxoea82"); // case xd_style: +UNSUPPORTED("7ubzpnx9p19ff69lqpgd94zvj"); // free(x->u.style); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3tev1dlfh70jm5km963v1i7rr"); // case xd_image: +UNSUPPORTED("1hkdbbhj8w4le1mure7j1iycv"); // free(x->u.image.name); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6w9r3p709c95b1186uuktgd6w +// void freeXDot (xdot * x) +public static Object freeXDot(Object... arg) { +UNSUPPORTED("bkwtbjppiirw4uu074jdrqmwx"); // void freeXDot (xdot * x) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("7iglpnbs5h4cbinybqfog9ddx"); // xdot_op *op; +UNSUPPORTED("ejkl9z7itgy7zzscudx1yzdk7"); // char *base; +UNSUPPORTED("3wjppwgev4ff3xk0a3t00ad33"); // freefunc_t ff = x->freefunc; +UNSUPPORTED("122mngve03ds89670xc36bby4"); // if (!x) return; +UNSUPPORTED("bfek0k78f6s41yzixruv7bn0n"); // base = (char *) (x->ops); +UNSUPPORTED("budcfgz6nozjl4wd3lhsp20s7"); // for (i = 0; i < x->cnt; i++) { +UNSUPPORTED("coll83cylkgt1g7npgfdqqgx3"); // op = (xdot_op *) (base + i * x->sz); +UNSUPPORTED("btmjd8b69pae4tiax28j2a9yb"); // if (ff) ff (op); +UNSUPPORTED("7guxp0atlez0kkyrftijyd56n"); // freeXOpData(op); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bh93g0pb87hg3tj0uqdyob6ch"); // free(base); +UNSUPPORTED("8uuggodur7e2m5hhf7yudpatc"); // free(x); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5ppkb51932f7y8920b91b8yz0 +// int statXDot (xdot* x, xdot_stats* sp) +public static Object statXDot(Object... arg) { +UNSUPPORTED("b17qzxcu2x9pfzv1bgj20qzsu"); // int statXDot (xdot* x, xdot_stats* sp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("7iglpnbs5h4cbinybqfog9ddx"); // xdot_op *op; +UNSUPPORTED("ejkl9z7itgy7zzscudx1yzdk7"); // char *base; +UNSUPPORTED("dvr4f7ur0dz4axrewk8pjbmr6"); // if (!x || !sp) return 1; +UNSUPPORTED("dceumk5yz37ggmopa5ozrd0kd"); // memset(sp, 0, sizeof(xdot_stats)); +UNSUPPORTED("9qgptx96avnkvh76z1iqxnluz"); // sp->cnt = x->cnt; +UNSUPPORTED("bfek0k78f6s41yzixruv7bn0n"); // base = (char *) (x->ops); +UNSUPPORTED("budcfgz6nozjl4wd3lhsp20s7"); // for (i = 0; i < x->cnt; i++) { +UNSUPPORTED("coll83cylkgt1g7npgfdqqgx3"); // op = (xdot_op *) (base + i * x->sz); +UNSUPPORTED("a11dc1tsoh8jlk9a6zq7xidtf"); // switch (op->kind) { +UNSUPPORTED("gyhetlwsld2yu7e13jh9wl0p"); // case xd_filled_ellipse: +UNSUPPORTED("7o72maa292xeug6fqyefi5yeh"); // case xd_unfilled_ellipse: +UNSUPPORTED("byo1z59r61djcdrqo2sz0s6d8"); // sp->n_ellipse++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("c4cta0iol0ehph9h9jbj3hq6b"); // case xd_filled_polygon: +UNSUPPORTED("bouwa31z2x0t0i08rrhgcc80s"); // case xd_unfilled_polygon: +UNSUPPORTED("n653bv9uo9zdwuay4ttk727m"); // sp->n_polygon++; +UNSUPPORTED("8pkl31upi6bo7e5456dqgg9cf"); // sp->n_polygon_pts += op->u.polygon.cnt; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("c5d0rnemshsbpz91xa6p8zlgm"); // case xd_filled_bezier: +UNSUPPORTED("cfxvwl549fde103677s4mrkan"); // case xd_unfilled_bezier: +UNSUPPORTED("bc9n0o6ayfum7bnpr3uy803re"); // sp->n_bezier++; +UNSUPPORTED("eong22lj6t9v9twe68w6225vm"); // sp->n_bezier_pts += op->u.bezier.cnt; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("2o8knajzbqdw17pjofl3lyba5"); // case xd_polyline: +UNSUPPORTED("5yiqntymnbiahfga4vc7fodvi"); // sp->n_polyline++; +UNSUPPORTED("wqyxazka9baia8rl594mcn8v"); // sp->n_polyline_pts += op->u.polyline.cnt; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("3j1afgdctetzfhmpq1in869a8"); // case xd_text: +UNSUPPORTED("cmtkneyksr4n2nqm6zix8obpb"); // sp->n_text++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("a7hdcxzowxlm4uwwzc9birrhz"); // case xd_image: +UNSUPPORTED("cyrdu153ri3djcqvdysa3e9ma"); // sp->n_image++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5iiy6stlclt7q11quzekzoahe"); // case xd_fill_color: +UNSUPPORTED("dasyqbofzz98834s6dlt2j59r"); // case xd_pen_color: +UNSUPPORTED("drrnos6mkmowo515fz3aho484"); // sp->n_color++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("awaj31d0herhghbn9hyh0h1ud"); // case xd_grad_fill_color: +UNSUPPORTED("4jem039cg71t5w6niim5cmtja"); // case xd_grad_pen_color: +UNSUPPORTED("a0wcwsdvkhuvy96sq00kf9bdv"); // sp->n_gradcolor++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5buaw3jwt248z13cbi4dw72rv"); // case xd_font: +UNSUPPORTED("9vmuklbiba31872a14t1ah25g"); // sp->n_font++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("3zomvq2vb2nxfyjrz92qbvebb"); // case xd_fontchar: +UNSUPPORTED("ab2c6l3irdvzagnh22t7cm7u7"); // sp->n_fontchar++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("8y8p7g08bet801pbrz3v2318k"); // case xd_style: +UNSUPPORTED("64gbg1bn71xd32z3wwcxw7nvs"); // sp->n_style++; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5ujjs4gho9mjjupbibyqyplxp"); // default : +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 99e5rt9esmjy9qkrpjj7ynswj +// xdot_grad_type colorType (char* cp) +public static Object colorType(Object... arg) { +UNSUPPORTED("cwdrzw5wilfdxd4c2q0iq3jk7"); // xdot_grad_type +UNSUPPORTED("4mpmfofo3mrmcqks805lq8fcz"); // colorType (char* cp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cr1ew9y7c1x3j9hax94mlznse"); // xdot_grad_type rv; +UNSUPPORTED("eck0zpg9yxtq1rk3duhbe3bra"); // switch (*cp) { +UNSUPPORTED("5hf3lvn9xppbffbljy7ctxuws"); // case '[' : +UNSUPPORTED("cfshpws9bhzz0wwfffkxsx9zn"); // rv = xd_linear; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7fug2421p5vf8mm40vy1p2m9v"); // case '(' : +UNSUPPORTED("4q5p6a8iwssmvo5k6r8rh4w7p"); // rv = xd_radial; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("29hi90x8rlo9f7q3mhj5dg71d"); // default : +UNSUPPORTED("ev130oonej2ev8dyzjye3mh13"); // rv = xd_none; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cr8h18xais4lf1qgyf0g4asw8 +// static char* radGradient (char* cp, xdot_color* clr) +public static Object radGradient(Object... arg) { +UNSUPPORTED("1yranxmu2maol02ulzd1ka1re"); // static char* +UNSUPPORTED("c06wjt41hfdz5kqs2bgvfzceu"); // radGradient (char* cp, xdot_color* clr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("al4i3evop0chjzmtu1hand9z7"); // char* s = cp; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("8ne6p4d5pykwl1d3xk0yg0ipb"); // double d; +UNSUPPORTED("3cwcf8fhklyr0kmoplrimnxif"); // xdot_color_stop* stops = NULL; +UNSUPPORTED("9no119gmgymj8afua0bzjg6s"); // clr->type = xd_radial; +UNSUPPORTED("7tr6l5gdo66lrh52cf1q5euke"); // s = parseReal(s, &clr->u.ring.x0); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("aj0fpvr0kifndf28kqgvnvcxj"); // s = parseReal(s, &clr->u.ring.y0); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("8z7hm5iter228czykl2d7o2u"); // s = parseReal(s, &clr->u.ring.r0); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("5szk7acro300ld5mynca1crd7"); // s = parseReal(s, &clr->u.ring.x1); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("6mszl2wb5yjgawvt86wt4xnfk"); // s = parseReal(s, &clr->u.ring.y1); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("eonwrf0vyl6643nxoe4243ufp"); // s = parseReal(s, &clr->u.ring.r1); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("21uyg70wnmu3pyvfnpsru6z84"); // s = parseInt(s, &clr->u.ring.n_stops); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("463gu8qdr6ujd5ewcr0qb7iwt"); // stops = (xdot_color_stop*)calloc((clr->u.ring.n_stops), sizeof(xdot_color_stop)); +UNSUPPORTED("8ivfd2dyo5rbybzlrwxp6wyn3"); // for (i = 0; i < clr->u.ring.n_stops; i++) { +UNSUPPORTED("3u2xlz22rewp744asdc0bytvg"); // s = parseReal(s, &d); +UNSUPPORTED("a0v4lnk3pysd85f3bisny1r3d"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("jlx4hmg3e9km3tzyrivx28ia"); // stops[i].frac = d; +UNSUPPORTED("2epsrdxaugx40ma9hbigwwgwn"); // s = parseString(s, &stops[i].color); +UNSUPPORTED("a0v4lnk3pysd85f3bisny1r3d"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6m8rt8apu9sd63f5z0wr4k8b6"); // clr->u.ring.stops = stops; +UNSUPPORTED("az4lr3wfzqu3df9wce5kcyady"); // return cp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 etmxebtapyaikihfpbsuehvzw +// static char* linGradient (char* cp, xdot_color* clr) +public static Object linGradient(Object... arg) { +UNSUPPORTED("1yranxmu2maol02ulzd1ka1re"); // static char* +UNSUPPORTED("b55lo3bj9pnkmwxlyocdqefjc"); // linGradient (char* cp, xdot_color* clr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("al4i3evop0chjzmtu1hand9z7"); // char* s = cp; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("8ne6p4d5pykwl1d3xk0yg0ipb"); // double d; +UNSUPPORTED("3cwcf8fhklyr0kmoplrimnxif"); // xdot_color_stop* stops = NULL; +UNSUPPORTED("57x32822mgbsnq8whh355dqre"); // clr->type = xd_linear; +UNSUPPORTED("ark8bh8iswvlirv4bjk1bqhrw"); // s = parseReal(s, &clr->u.ling.x0); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("5td0oqu8abk0thbuh313mzd6o"); // s = parseReal(s, &clr->u.ling.y0); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("b8cvrv8opa85wy8igqk79g7d7"); // s = parseReal(s, &clr->u.ling.x1); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("dknvmejt8kipg3y8sbtkoep7z"); // s = parseReal(s, &clr->u.ling.y1); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("25k8bj46m6jyyal6cq6jekyvv"); // s = parseInt(s, &clr->u.ling.n_stops); +UNSUPPORTED("d12z8bcj00q4anqzoqw7ooslh"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("5rf9mvmwp48cnm63n826n47hs"); // stops = (xdot_color_stop*)calloc((clr->u.ling.n_stops), sizeof(xdot_color_stop)); +UNSUPPORTED("33udax4ghl8rclztmn80tqcms"); // for (i = 0; i < clr->u.ling.n_stops; i++) { +UNSUPPORTED("3u2xlz22rewp744asdc0bytvg"); // s = parseReal(s, &d); +UNSUPPORTED("a0v4lnk3pysd85f3bisny1r3d"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("jlx4hmg3e9km3tzyrivx28ia"); // stops[i].frac = d; +UNSUPPORTED("2epsrdxaugx40ma9hbigwwgwn"); // s = parseString(s, &stops[i].color); +UNSUPPORTED("a0v4lnk3pysd85f3bisny1r3d"); // if(!s){free(stops);return NULL;}; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ptvrq9unacmo19dbcuqsw5hs"); // clr->u.ling.stops = stops; +UNSUPPORTED("az4lr3wfzqu3df9wce5kcyady"); // return cp; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2xdgjw8k00kahh9gsbqku1umv +// char* parseXDotColor (char* cp, xdot_color* clr) +public static Object parseXDotColor(Object... arg) { +UNSUPPORTED("cqm25rponse4rsi686sbn1lo0"); // char* +UNSUPPORTED("b1mfye1zmcj65mtkq9c97iewc"); // parseXDotColor (char* cp, xdot_color* clr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4jzs7e30qz04dbigz4312soqm"); // char c = *cp; +UNSUPPORTED("8amt8fmqdipygnxirowfbawox"); // switch (c) { +UNSUPPORTED("5hf3lvn9xppbffbljy7ctxuws"); // case '[' : +UNSUPPORTED("6mfazl1u2o7yhg2w5wjkacuam"); // return linGradient (cp+1, clr); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("7fug2421p5vf8mm40vy1p2m9v"); // case '(' : +UNSUPPORTED("4q00cne45f9wmtg4ib0a706ke"); // return radGradient (cp+1, clr); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("4cj632tvft1wcpezg8rs6k4ux"); // case '#' : +UNSUPPORTED("akaqca9sqliw6p0fmic1xj32y"); // case '/' : +UNSUPPORTED("9lk7f6fpju45nq995i59ec3uq"); // clr->type = xd_none; +UNSUPPORTED("b1eztpupu7ok5m0w7u2ji432j"); // clr->u.clr = cp; +UNSUPPORTED("e6bh2um7pqrlkuxueips4t7pi"); // return cp; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("29hi90x8rlo9f7q3mhj5dg71d"); // default : +UNSUPPORTED("8ukynmh00mj2vf4p5rh4mn72h"); // if (isalnum(c)) { +UNSUPPORTED("3osvgszhwg2l36m35rz7hjl8d"); // clr->type = xd_none; +UNSUPPORTED("af2fdffzkgez7alg79ev8oafq"); // clr->u.clr = cp; +UNSUPPORTED("hlsdiu6i05x2q5cxsa9myd04"); // return cp; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("7t3fvwp9cv90qu5bdjdglcgtk"); // return NULL; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 am6ngtbh04wxuyw4ohmmjtiy2 +// void freeXDotColor (xdot_color* cp) +public static Object freeXDotColor(Object... arg) { +UNSUPPORTED("dz8v7jtcg5p1c58myh27zc9pt"); // void freeXDotColor (xdot_color* cp) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("19ar0bs2h13txvy4uwtw868m"); // if (cp->type == xd_linear) { +UNSUPPORTED("81392dv0g58pud5wxe52pgf6e"); // for (i = 0; i < cp->u.ling.n_stops; i++) { +UNSUPPORTED("6wzfng0iio7thawoxyaiwc5xt"); // free (cp->u.ling.stops[i].color); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3317yv7m2rcitjg00m6d02wnt"); // free (cp->u.ling.stops); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("etp4zs2ofz2x0b9yrx7z9xa08"); // else if (cp->type == xd_radial) { +UNSUPPORTED("8plb1dios9foj9qo7n5jc5n7m"); // for (i = 0; i < cp->u.ring.n_stops; i++) { +UNSUPPORTED("kp618tg06ig032jupq8pyp1k"); // free (cp->u.ring.stops[i].color); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("eo4csunnsophbm4ec0ilzoal8"); // free (cp->u.ring.stops); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +} diff -Nru plantuml-8024/src/gen/plugin/core/gvloadimage_core__c.java plantuml-8039/src/gen/plugin/core/gvloadimage_core__c.java --- plantuml-8024/src/gen/plugin/core/gvloadimage_core__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/core/gvloadimage_core__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,457 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.core; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvloadimage_core__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + + + +//3 29goij7ee0eovul0mzbqx3jtm +// static void core_loadimage_svg(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +public static Object core_loadimage_svg(Object... arg) { +UNSUPPORTED("6nk88j61lq1suxn7ouneycpcp"); // static void core_loadimage_svg(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dvlg6flv7gt7lh0gcin0uy3l9"); // double width = (b.UR.x-b.LL.x); +UNSUPPORTED("9wz3r0c7kyzar3i72jllttzwb"); // double height = (b.UR.y-b.LL.y); +UNSUPPORTED("372q395e12m69cssk3g0ukwxy"); // double originx = (b.UR.x+b.LL.x - width)/2; +UNSUPPORTED("e0lvri5s3y6isyvxbzp7653yf"); // double originy = (b.UR.y+b.LL.y + height)/2; +UNSUPPORTED("1nk5slg1h855ktp6d9uxli7u3"); // assert(job); +UNSUPPORTED("7gqi0ait1bhc4v9zl8rnn0wbs"); // assert(us); +UNSUPPORTED("xlffgd4fqdckxg2nbs0mxtlj"); // assert(us->name); +UNSUPPORTED("exol4q9xzni0vyr9nsjkskzb8"); // gvputs(job, "name); +UNSUPPORTED("3h1yo631e2fq69mxwoggya716"); // if (job->rotation) { +UNSUPPORTED("a8oo007b0fig1htfcdahd040r"); // // FIXME - this is messed up >>> +UNSUPPORTED("7mtjuxpu3v8f5jp6pvlspyh1a"); // gvprintf (job, "\" width=\"%gpx\" height=\"%gpx\" preserveAspectRatio=\"xMidYMid meet\" x=\"%g\" y=\"%g\"", +UNSUPPORTED("24tosnol9uj8kbohgufx2s1m5"); // height, width, originx, -originy); +UNSUPPORTED("ecvojyyyf3xwfchx60bgxozgv"); // gvprintf (job, " transform=\"rotate(%d %g %g)\"", +UNSUPPORTED("2ttp17y9k4a6sx4o1ft0ek3pu"); // job->rotation, originx, -originy); +UNSUPPORTED("57iw9hoiqdl157du9x27qmt5u"); // // <<< +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("7bmd7sn9bhyqyf2jkx9sba5us"); // gvprintf (job, "\" width=\"%gpx\" height=\"%gpx\" preserveAspectRatio=\"xMinYMin meet\" x=\"%g\" y=\"%g\"", +UNSUPPORTED("aew8hp12uey186go0vuwtc02d"); // width, height, originx, -originy); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("tkpriz9q4d4xzeglsnt7kh4c"); // gvputs(job, "/>\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 awiixve7n69ck2vx4dnqj8c5o +// static void core_loadimage_fig(GVJ_t * job, usershape_t *us, boxf bf, boolean filled) +public static Object core_loadimage_fig(Object... arg) { +UNSUPPORTED("1vcx0fw33mfxu0cqs69faf8ue"); // static void core_loadimage_fig(GVJ_t * job, usershape_t *us, boxf bf, boolean filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1250jrnrnv2ts7w11no09s3c0"); // int object_code = 2; /* always 2 for polyline */ +UNSUPPORTED("148en6b5hi275wxx19n6cp8gd"); // int sub_type = 5; /* always 5 for image */ +UNSUPPORTED("7tjgx9otv93qdrebs8rv7cyac"); // int line_style = 0; /* solid, dotted, dashed */ +UNSUPPORTED("30e0ixftw8701xjb61twlmbhq"); // int thickness = 0; +UNSUPPORTED("dftwk23t2axyh7uht019u3i0u"); // int pen_color = 0; +UNSUPPORTED("cem2frpnojzzocp1y610v2plc"); // int fill_color = -1; +UNSUPPORTED("8aj0xwj2jf76yit9k9rhnf5ns"); // int depth = 1; +UNSUPPORTED("wus8ctd22mlgr1imanbjzq23"); // int pen_style = -1; /* not used */ +UNSUPPORTED("1pvrunrk1ylb19scd5xzhf3lp"); // int area_fill = 0; +UNSUPPORTED("1lwafxtlvm06paa55v0re37kn"); // double style_val = 0.0; +UNSUPPORTED("emk8vv370o9kkt54b48xbckqk"); // int join_style = 0; +UNSUPPORTED("at27yenlhsw2mhidnzh560qs7"); // int cap_style = 0; +UNSUPPORTED("5ah3zh0iiveyst5794k0axkys"); // int radius = 0; +UNSUPPORTED("6aehzky7l6ssu826xre37yhtt"); // int forward_arrow = 0; +UNSUPPORTED("cvrcowx9gwh8vdfgelcwxhrhq"); // int backward_arrow = 0; +UNSUPPORTED("6cgv2nf65suhgjxqoahqfc6rs"); // int npoints = 5; +UNSUPPORTED("eij0m34z5k44tgdf6qkh2oy5k"); // int flipped = 0; +UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b; +UNSUPPORTED("1nk5slg1h855ktp6d9uxli7u3"); // assert(job); +UNSUPPORTED("7gqi0ait1bhc4v9zl8rnn0wbs"); // assert(us); +UNSUPPORTED("xlffgd4fqdckxg2nbs0mxtlj"); // assert(us->name); +UNSUPPORTED("b9iu6kbbbdei5no6t11x88z55"); // BF2B(bf, b); +UNSUPPORTED("8kr2slc04t19kslj4ccgdx67d"); // gvprintf(job, "%d %d %d %d %d %d %d %d %d %.1f %d %d %d %d %d %d\n %d %s\n", +UNSUPPORTED("aqhcl971r2txljfiisq3maosf"); // object_code, sub_type, line_style, thickness, pen_color, +UNSUPPORTED("7565hrxms7ljcrl0jc6pzqo2r"); // fill_color, depth, pen_style, area_fill, style_val, join_style, +UNSUPPORTED("1d2j1ewli8cdqxi5o6m08r2u9"); // cap_style, radius, forward_arrow, backward_arrow, npoints, +UNSUPPORTED("c7cn7eesrrv4hcu8c5cwj9hdx"); // flipped, us->name); +UNSUPPORTED("dlp90sbnetvo18p7neoiy44m2"); // gvprintf(job," %d %d %d %d %d %d %d %d %d %d\n", +UNSUPPORTED("3awclag88e7eg21axn0hj3pg0"); // b.LL.x, b.LL.y, +UNSUPPORTED("11zvogg3ty0403x7yuwy6ojq0"); // b.LL.x, b.UR.y, +UNSUPPORTED("8s3cyzq8f154a25bzouw9viu0"); // b.UR.x, b.UR.y, +UNSUPPORTED("elo0t85arc0xfjh4exd58ol1u"); // b.UR.x, b.LL.y, +UNSUPPORTED("3kygvlprcdhmx33nfvx79bo5"); // b.LL.x, b.LL.y); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e0srb4a7jout9298385qcktc +// static void core_loadimage_vrml(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +public static Object core_loadimage_vrml(Object... arg) { +UNSUPPORTED("6l83xscu9iu6f4q8ggkiinfbw"); // static void core_loadimage_vrml(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8lamppsqs7nhiu5v8k1f5jfh2"); // obj_state_t *obj; +UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n; +UNSUPPORTED("1nk5slg1h855ktp6d9uxli7u3"); // assert(job); +UNSUPPORTED("dfvn35vopdad6lj7flf800tqq"); // obj = job->obj; +UNSUPPORTED("cvrjqjl5r3cwa1izxxgzgzrap"); // assert(obj); +UNSUPPORTED("7gqi0ait1bhc4v9zl8rnn0wbs"); // assert(us); +UNSUPPORTED("xlffgd4fqdckxg2nbs0mxtlj"); // assert(us->name); +UNSUPPORTED("8vniyq800jfq5vcshi73on9n1"); // n = job->obj->u.n; +UNSUPPORTED("25fhmphgra40j368i6b09n5xz"); // assert(n); +UNSUPPORTED("5s8sa7g2p1i5jr6wwil4fkbal"); // gvprintf(job, "Shape {\n"); +UNSUPPORTED("7ku2bmvaeet8qzuuiubu8f6m9"); // gvprintf(job, " appearance Appearance {\n"); +UNSUPPORTED("c4wvt5ni6d27pjcj501qxdy4r"); // gvprintf(job, " material Material {\n"); +UNSUPPORTED("buqlt6jt41o18ca6qvrnxo9zu"); // gvprintf(job, " ambientIntensity 0.33\n"); +UNSUPPORTED("9732sepoh8vxkxd5c5z6n1xob"); // gvprintf(job, " diffuseColor 1 1 1\n"); +UNSUPPORTED("1ssfesmz57l8uwfj3pgj48ft9"); // gvprintf(job, " }\n"); +UNSUPPORTED("3ic6hlam7i4qdhjx51lmkyl6d"); // gvprintf(job, " texture ImageTexture { url \"%s\" }\n", us->name); +UNSUPPORTED("buxxkw2q5k2ois60qv3i78cx1"); // gvprintf(job, " }\n"); +UNSUPPORTED("5evvn7xr8ggxco146doj8qb8d"); // gvprintf(job, "}\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dkpdahf85whho6alw0wyi0589 +// static void ps_freeimage(usershape_t *us) +public static Object ps_freeimage(Object... arg) { +UNSUPPORTED("9sf6siqz00t6dace56itvz47b"); // static void ps_freeimage(usershape_t *us) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("47gtx7ffdovrgtqza8fnyxsug"); // free(us->data); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 nuj4ufu0lit6u72no7bfa0rd +// static void core_loadimage_ps(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +public static Object core_loadimage_ps(Object... arg) { +UNSUPPORTED("3fms3fyfhjnm6awkw5hqg4yl5"); // static void core_loadimage_ps(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1nk5slg1h855ktp6d9uxli7u3"); // assert(job); +UNSUPPORTED("7gqi0ait1bhc4v9zl8rnn0wbs"); // assert(us); +UNSUPPORTED("xlffgd4fqdckxg2nbs0mxtlj"); // assert(us->name); +UNSUPPORTED("3ustk9u43nfwube24g9ve98xz"); // if (us->data) { +UNSUPPORTED("afe4zn3m0v1pzuhkzgqpru8w4"); // if (us->datafree != ps_freeimage) { +UNSUPPORTED("14ok3e5cytlxzf48yq4we8eg9"); // us->datafree(us); /* free incompatible cache data */ +UNSUPPORTED("68mtdvgnb8rekg06am2p1had0"); // us->data = NULL; +UNSUPPORTED("db62bupqi5lihbntfqe7tlesg"); // us->datafree = NULL; +UNSUPPORTED("2yrrfg6saymvlwjvr1suu7q7o"); // us->datasize = 0; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6cah19vmbqd3lb4lb3na7ugk1"); // if (!us->data) { /* read file into cache */ +UNSUPPORTED("2lo7xzfretk2gbeewv8amikyl"); // int fd; +UNSUPPORTED("4vpkg06n5nt4a7401vz4vcqu8"); // struct stat statbuf; +UNSUPPORTED("d5mf2vtj9iib67q8oqf1ddfoy"); // if (!gvusershape_file_access(us)) +UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return; +UNSUPPORTED("de56k988tghtjxf7im4t0oh4w"); // fd = fileno(us->f); +UNSUPPORTED("6c857qum6nd7x5wc8q1jm7m0j"); // switch (us->type) { +UNSUPPORTED("9fdmy6cmkcs9xgg5u8d0r8az9"); // case FT_PS: +UNSUPPORTED("362x4fjrplaceoflc8oicvclf"); // case FT_EPS: +UNSUPPORTED("9rlgca7weqdcml6h34damptdz"); // fstat(fd, &statbuf); +UNSUPPORTED("aaef3zsmqgw7i8yzrzsa9f8ub"); // us->datasize = statbuf.st_size; +UNSUPPORTED("mvnxwqq1g43j0zwetc2lrbp0"); // us->data = malloc(statbuf.st_size); +UNSUPPORTED("8xav6nswhw039it5hkieqssre"); // read(fd, us->data, statbuf.st_size); +UNSUPPORTED("als7ie9jjt7wa384s4idszvj8"); // us->must_inline = NOT(0); +UNSUPPORTED("d1pumbibe8xz2i7gr1wj6zdak"); // break; +UNSUPPORTED("84cl4r6uveabh1lahtyw0ptb8"); // default: +UNSUPPORTED("d1pumbibe8xz2i7gr1wj6zdak"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("a9tazqo3lt2plzwxwbkazmark"); // if (us->data) +UNSUPPORTED("8xta46k7s6x1mogx5xomvejr3"); // us->datafree = ps_freeimage; +UNSUPPORTED("98myit7krb8a180ecsgm7wvjm"); // gvusershape_file_release(us); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3ustk9u43nfwube24g9ve98xz"); // if (us->data) { +UNSUPPORTED("50th0fnys6h3ghiyg8f4dfbdc"); // gvprintf(job, "gsave %g %g translate newpath\n", +UNSUPPORTED("5uhskkri1bhns0e9ddbr7mg4u"); // b.LL.x - (double)(us->x), b.LL.y - (double)(us->y)); +UNSUPPORTED("e1l98s1a0wb698pmm0ai481qi"); // if (us->must_inline) +UNSUPPORTED("988u2js5bqmntibjg98i07nz"); // epsf_emit_body(job, us); +UNSUPPORTED("35nw1pbiz2p3s6qwlam5eoo3m"); // else +UNSUPPORTED("az4q3r5wmapqascnw6mjghrmm"); // gvprintf(job, "user_shape_%d\n", us->macro_id); +UNSUPPORTED("1u16m9wjpuzt2gfhhilh5n9nv"); // gvprintf(job, "grestore\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cjibf8ypal3z8qjb7adn6tcix +// static void core_loadimage_pslib(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +public static Object core_loadimage_pslib(Object... arg) { +UNSUPPORTED("7n8f9on2nkf9werk0kza1vc7b"); // static void core_loadimage_pslib(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("en6q26cyrg17g6yd6el73b3ns"); // pointf AF[4]; +UNSUPPORTED("1l6nftr6o7rxwrg50yru6yu46"); // shape_desc *shape; +UNSUPPORTED("1nk5slg1h855ktp6d9uxli7u3"); // assert(job); +UNSUPPORTED("7gqi0ait1bhc4v9zl8rnn0wbs"); // assert(us); +UNSUPPORTED("xlffgd4fqdckxg2nbs0mxtlj"); // assert(us->name); +UNSUPPORTED("bbiovnfd6hlkzpdyqejaf3qb"); // if ((shape = (shape_desc*)us->data)) { +UNSUPPORTED("39kp6t9wenypchz2s58mkxgup"); // AF[0] = b.LL; +UNSUPPORTED("qpi4gufgxrvf8bx626lhkjwi"); // AF[2] = b.UR; +UNSUPPORTED("9lkdjc4of18mpcfe956xmzwet"); // AF[1].x = AF[0].x; +UNSUPPORTED("dpljjfhpwqivqkp6h79do3mqj"); // AF[1].y = AF[2].y; +UNSUPPORTED("32r2hu93lwrbd3zwxt303gh03"); // AF[3].x = AF[2].x; +UNSUPPORTED("edu3nrugftlt30kevnwc8y7f8"); // AF[3].y = AF[0].y; +UNSUPPORTED("9iv8yeefz2ll4zeeboqqtd4xu"); // if (filled) { +UNSUPPORTED("19zazncbqb0fh25slowlirl7k"); // // ps_begin_context(); +UNSUPPORTED("44dzyphll6m2rt2zvmxpxgr21"); // // ps_set_color(S[SP].fillcolor); +UNSUPPORTED("dhq1jxkwjggs0noew4i58yadj"); // gvprintf(job, "[ "); +UNSUPPORTED("8pozief1dm7j8crbw5313ff7f"); // for (i = 0; i < 4; i++) +UNSUPPORTED("4t5xu3wpffox1dcs6a4ulrynd"); // gvprintf(job, "%g %g ", AF[i].x, AF[i].y); +UNSUPPORTED("6peyrbfphj7hkptgimqm27sca"); // gvprintf(job, "%g %g ", AF[0].x, AF[0].y); +UNSUPPORTED("akrzmc2n64ahl34msb4iapdqx"); // gvprintf(job, "] %d true %s\n", 4, us->name); +UNSUPPORTED("3i17c088ltdll07ap9tqxpxs3"); // // ps_end_context(); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("erik7m9ivop3xh5y5fpto8q1n"); // gvprintf(job, "[ "); +UNSUPPORTED("ccewlfwc1gagj8vpwd576azfu"); // for (i = 0; i < 4; i++) +UNSUPPORTED("a68qmvv7ajcdvz4ko51ja25wy"); // gvprintf(job, "%g %g ", AF[i].x, AF[i].y); +UNSUPPORTED("eh6hpah3dqqf8n4pf1hn0urfi"); // gvprintf(job, "%g %g ", AF[0].x, AF[0].y); +UNSUPPORTED("aatxb1868s4jg7ocv1yy2rr7p"); // gvprintf(job, "] %d false %s\n", 4, us->name); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 11j2m0cxdp9z59j3doz82ei2o +// static void core_loadimage_vml(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +public static Object core_loadimage_vml(Object... arg) { +UNSUPPORTED("dp5zde6274mdvioy5u59hk5jc"); // static void core_loadimage_vml(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("oe4wxcwk2rxtensxhcfp70d8"); // unsigned int graphHeight; +UNSUPPORTED("e1b0xy1qef9gc82t0ivbjb8zh"); // graphHeight =(int)(job->bb.UR.y - job->bb.LL.y); +UNSUPPORTED("56vt25hvpvbnprocv3ga6amb9"); // gvprintf (job, "name, b.UR.x - b.LL.x, b.UR.y - b.LL.y, b.LL.x, graphHeight-b.UR.y); +UNSUPPORTED("bq4vgoqdsjkwuyyspku5kznhh"); // gvputs(job, " />\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9rnpduughujmxwpfj9uny5yfw +// static void core_loadimage_tk(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +public static Object core_loadimage_tk(Object... arg) { +UNSUPPORTED("2us7fsaz0xyimqhdmd2oabwoo"); // static void core_loadimage_tk(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("wkagaos2d0sha79uninstvkl"); // gvprintf (job, "image create photo \"photo_%s\" -file \"%s\"\n", +UNSUPPORTED("38kbczko9ldqe6gfwzsqn7ne1"); // us->name, us->name); +UNSUPPORTED("57qf7m9y8ekwlo8zafyotx1vi"); // gvprintf (job, "$c create image %.2f %.2f -image \"photo_%s\"\n", +UNSUPPORTED("amiu4sx3oah6j8cumbyac7fgu"); // us->name, (b.UR.x + b.LL.x) / 2, (b.UR.y + b.LL.y) / 2); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7r8kuhs5mt25fif8rga7ycuk4 +// void core_loadimage_null(GVJ_t *gvc, usershape_t *us, boxf b, boolean filled) +public static Object core_loadimage_null(Object... arg) { +UNSUPPORTED("10aeq8i34y842tyczscr6r92s"); // void core_loadimage_null(GVJ_t *gvc, usershape_t *us, boxf b, boolean filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("43g24def5o0e68iopoodbo6hq"); // /* null function - basically suppress the missing loader message */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 5caj98xv9ldmw6dinjt7jgpcx +// static gvloadimage_engine_t engine_svg = + + +//1 pv6o8s1n1h9zk3lxm9ryq5c8 +// static gvloadimage_engine_t engine_fig = + + +//1 a9e239ql9867ljor8u16cj2pf +// static gvloadimage_engine_t engine_vrml = + + +//1 8kzbk9u03208629mtai1ay942 +// static gvloadimage_engine_t engine_ps = + + +//1 dj5z2gmpjxtxsvujmovvwuyxw +// static gvloadimage_engine_t engine_pslib = + + +//1 3kvzpib9rpmlf3o00tet08n90 +// static gvloadimage_engine_t engine_null = + + +//1 bwx5544czjvaz5aigxvcx2nl +// static gvloadimage_engine_t engine_xdot = + + +//1 965gxus2gru0zhovsq4pc39w3 +// static gvloadimage_engine_t engine_vml = + + +//1 7h8ksznsrd48e4elfd9w6yqnm +// static gvloadimage_engine_t engine_tk = + + +//1 90d4e129eeox69ftipmimqjx2 +// gvplugin_installed_t gvloadimage_core_types[] = + + +} diff -Nru plantuml-8024/src/gen/plugin/core/gvplugin_core__c.java plantuml-8039/src/gen/plugin/core/gvplugin_core__c.java --- plantuml-8024/src/gen/plugin/core/gvplugin_core__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/core/gvplugin_core__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,132 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.core; + +public class gvplugin_core__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 bepawssupm52fq0lm5wsr16al +// extern gvplugin_installed_t gvdevice_dot_types[] + + +//1 2pmt8logi0mdp33cr7zd3t5x +// extern gvplugin_installed_t gvdevice_fig_types[] + + +//1 3ij2091oltlpvbck9v2wmkp43 +// extern gvplugin_installed_t gvdevice_map_types[] + + +//1 o66br7py774tlamewghimqwy +// extern gvplugin_installed_t gvdevice_ps_types[] + + +//1 bbd6wneeg6dm1orwkfatpg2pt +// extern gvplugin_installed_t gvdevice_svg_types[] + + +//1 6n8md2u2h4ivi8wi95wu4evhb +// extern gvplugin_installed_t gvdevice_tk_types[] + + +//1 epwx6myt1ewysie9m8plglnf2 +// extern gvplugin_installed_t gvdevice_vml_types[] + + +//1 uwhavpdt2nhldg6pblapnc4 +// extern gvplugin_installed_t gvdevice_pic_types[] + + +//1 7elvfkn2p7kfk7xsvkggoyzu6 +// extern gvplugin_installed_t gvdevice_pov_types[] + + +//1 3ym6hp8b5grhq3cqzehssxwy7 +// extern gvplugin_installed_t gvrender_dot_types[] + + +//1 6fnl9wlb1ri61mczhdj1di9l8 +// extern gvplugin_installed_t gvrender_fig_types[] + + +//1 6byuxy9waz31wtr27jgyc25il +// extern gvplugin_installed_t gvrender_map_types[] + + +//1 a0f2mn4xwrnalx5a84k2lm9u +// extern gvplugin_installed_t gvrender_ps_types[] + + +//1 91fai7sbb5q5qqqrzaq8x1wyr +// extern gvplugin_installed_t gvrender_svg_types[] + + +//1 5arrl0krk3iai3qq91lhdp395 +// extern gvplugin_installed_t gvrender_tk_types[] + + +//1 bfgrpitg0x3zaoq0u3hz4ferf +// extern gvplugin_installed_t gvrender_vml_types[] + + +//1 blbevajtwilj9dpc57os4m20m +// extern gvplugin_installed_t gvrender_pic_types[] + + +//1 dx46eihm4es1r0uynbli6oncl +// extern gvplugin_installed_t gvrender_pov_types[] + + +//1 bxmum7q70ivk3bagjvirwncj8 +// extern gvplugin_installed_t gvloadimage_core_types[] + + +//1 cbnrpy2p824ffaki379rnbq2s +// static gvplugin_api_t apis[] = + + +//1 331lykt41pc1qfqahndu3jpo0 +// gvplugin_library_t gvplugin_core_LTX_library = + + +} diff -Nru plantuml-8024/src/gen/plugin/core/gvrender_core_dot__c.java plantuml-8039/src/gen/plugin/core/gvrender_core_dot__c.java --- plantuml-8024/src/gen/plugin/core/gvrender_core_dot__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/core/gvrender_core_dot__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,978 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.core; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvrender_core_dot__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 9u9ddh5oeqjnkh6gb2tfp88y1 +// static agxbuf* xbufs[] = + + +//1 cf69o2d8bfvl354bx5dd5ac0e +// static double penwidth [] = + + +//1 9wf85aesqstltvkdjt9p083n0 +// static unsigned int textflags[EMIT_ELABEL+1] + + +//1 7ivt3fjvux748h2yxbenc8bqq +// static xdot_state_t* xd + + + + +//3 1wkd9anhtvlykvgmpcy4zkduu +// static void xdot_str_xbuf (agxbuf* xb, char* pfx, char* s) +public static Object xdot_str_xbuf(Object... arg) { +UNSUPPORTED("eiqhtkofka0l2zcf53e6v3ylf"); // static void xdot_str_xbuf (agxbuf* xb, char* pfx, char* s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("ewqeh9hox7co8bzse7rxlkc2z"); // sprintf (buf, "%s%d -", pfx, (int)strlen(s)); +UNSUPPORTED("5q33wkzo42rb2ovinz8n32geq"); // agxbput(xb, buf); +UNSUPPORTED("cuyd9w1qxswgadsoaaheatuqb"); // agxbput(xb, s); +UNSUPPORTED("dmja623e9ktger7ewkxjzmo84"); // ((((xb)->ptr >= (xb)->eptr) ? agxbmore(xb,1) : 0), (int)(*(xb)->ptr++ = ((unsigned char)' '))); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 mk0pj46oyko8l6ihsvvttvsc +// static void xdot_str (GVJ_t *job, char* pfx, char* s) +public static Object xdot_str(Object... arg) { +UNSUPPORTED("80ilwf46sqp2jfv94cqcri1ic"); // static void xdot_str (GVJ_t *job, char* pfx, char* s) +UNSUPPORTED("4ecslok588dpq5vf5tzktm48k"); // { +UNSUPPORTED("5tol2owvqctfpttgzs7ee7b7x"); // emit_state_t emit_state = job->obj->emit_state; +UNSUPPORTED("8v27eq2fu6i17hxi8j7rfmkj5"); // xdot_str_xbuf (xbufs[emit_state], pfx, s); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9uxhmu9h5insv750upobc4o0l +// static void xdot_trim_zeros (char* buf, int addSpace) +public static Object xdot_trim_zeros(Object... arg) { +UNSUPPORTED("bvi7exukjrwib9dsydzfrdk4n"); // static void xdot_trim_zeros (char* buf, int addSpace) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7puz5on3kut1d51f3su87yzvy"); // char* dotp; +UNSUPPORTED("a4px33i4moqe8ybwatz0g8k6"); // char* p; +UNSUPPORTED("25j4nlrn8fb330rtpgs3znj2e"); // if ((dotp = strchr (buf,'.'))) { +UNSUPPORTED("8w9fei3kxjnvyzike65mh21t7"); // p = dotp+1; +UNSUPPORTED("5ntwg5wj08qs7n9uot1y5hwwf"); // while (*p) p++; // find end of string +UNSUPPORTED("8gbgjwvss67q2imd2llmusuvd"); // p--; +UNSUPPORTED("9mqht74ijjj8b90otim0hl4q2"); // while (*p == '0') *p-- = '\0'; +UNSUPPORTED("azdcgp3weiwu7xxfo6mjw11v3"); // if (*p == '.') // If all decimals were zeros, remove ".". +UNSUPPORTED("6568pmkatbjs0ljsylsyvwepv"); // *p = '\0'; +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4o5kpau9io5iwhvou436hc35q"); // else if (addSpace) +UNSUPPORTED("e3s0jnyo85s4deod5zf8oc5hc"); // p = buf + strlen(buf); +UNSUPPORTED("96j5jq7x4zyb0h1l4pde9eq3q"); // if (addSpace) { /* p points to null byte */ +UNSUPPORTED("eeruol8z2e2a5p96651r1p4sc"); // *p++ = ' '; +UNSUPPORTED("8wxgv4s6cq9cor6gqhrq2ho9a"); // *p = '\0'; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cot7kk25j8se9g2df0gbmku2a +// static void xdot_fmt_num (char* buf, double v) +public static Object xdot_fmt_num(Object... arg) { +UNSUPPORTED("5jrqa3gbng6pjj5nyqacr9khf"); // static void xdot_fmt_num (char* buf, double v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5ckf35csnj99dtdulm0zo7w0y"); // sprintf(buf, "%.02f", v); +UNSUPPORTED("5jyfg2es8t6ywaex3wqf67xef"); // xdot_trim_zeros (buf, 1); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d2kq7iarnvxb8dkbj93p7ug4v +// static void xdot_point(agxbuf *xbuf, pointf p) +public static Object xdot_point(Object... arg) { +UNSUPPORTED("6twuxzj24ui8i4qsb1236n5bu"); // static void xdot_point(agxbuf *xbuf, pointf p) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("6n9sqsgqw9k9278ve5k3bf33w"); // xdot_fmt_num (buf, p.x); +UNSUPPORTED("2mti8qvk2i3vu0hgebyml4mf5"); // agxbput(xbuf, buf); +UNSUPPORTED("4ywl1kwk6cjwjju7h13jgn4is"); // xdot_fmt_num (buf, yDir(p.y)); +UNSUPPORTED("2mti8qvk2i3vu0hgebyml4mf5"); // agxbput(xbuf, buf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 633vtcrwss117gqzfi65hphsk +// static void xdot_num(agxbuf *xbuf, double v) +public static Object xdot_num(Object... arg) { +UNSUPPORTED("brgmp34gkz1uzv465rpmizl3q"); // static void xdot_num(agxbuf *xbuf, double v) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("3b78vqzlsntfrji71cvxnl52w"); // xdot_fmt_num (buf, v); +UNSUPPORTED("2mti8qvk2i3vu0hgebyml4mf5"); // agxbput(xbuf, buf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 21r3xgncf7w8o613kfnmva18a +// static void xdot_points(GVJ_t *job, char c, pointf * A, int n) +public static Object xdot_points(Object... arg) { +UNSUPPORTED("9lvr3j68zawvig186yetti81t"); // static void xdot_points(GVJ_t *job, char c, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5tol2owvqctfpttgzs7ee7b7x"); // emit_state_t emit_state = job->obj->emit_state; +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("279in5xyusoen2ceb3tjlpk6s"); // int i, rc; +UNSUPPORTED("dwc16jocaa8wb6rvy807ka8l0"); // rc = ((((xbufs[emit_state])->ptr >= (xbufs[emit_state])->eptr) ? agxbmore(xbufs[emit_state],1) : 0), (int)(*(xbufs[emit_state])->ptr++ = ((unsigned char)c))); +UNSUPPORTED("einyohdycmivi09l9gvzgu3db"); // sprintf(buf, " %d ", n); +UNSUPPORTED("9rhyq2cgol181qsty6dn352bn"); // agxbput(xbufs[emit_state], buf); +UNSUPPORTED("e6c6vkuvc5wlnup26rm248nss"); // for (i = 0; i < n; i++) +UNSUPPORTED("f2f5qt5d5wp2skos4tmlo5tbx"); // xdot_point(xbufs[emit_state], A[i]); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9kyijycd11rekgoyg64rgqh44 +// static char* color2str (unsigned char rgba[4]) +public static Object color2str(Object... arg) { +UNSUPPORTED("1yranxmu2maol02ulzd1ka1re"); // static char* +UNSUPPORTED("bsnee5s0jupootudg18ki3jq7"); // color2str (unsigned char rgba[4]) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("796b8xr3u6v0v9uvbkc4b7w4n"); // static char buf [10]; +UNSUPPORTED("eexjt0hdr3nf2yolzswuxniiu"); // if (rgba[3] == 0xFF) +UNSUPPORTED("dbarmk43l3dgnnz7gsuxz67s3"); // sprintf (buf, "#%02x%02x%02x", rgba[0], rgba[1], rgba[2]); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("4563xhb68jjvke8ljnprmby5y"); // sprintf (buf, "#%02x%02x%02x%02x", rgba[0], rgba[1], rgba[2], rgba[3]); +UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 blqpsel4jzy8tyzcf9wk6ratz +// static void xdot_pencolor (GVJ_t *job) +public static Object xdot_pencolor(Object... arg) { +UNSUPPORTED("b6vezfwlb588uhbpb1thq72v8"); // static void xdot_pencolor (GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("eltetchcdlchlpqxrbt93wyl5"); // xdot_str (job, "c ", color2str (job->obj->pencolor.u.rgba)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3aob3mp6ea6z3uiuz7je5xgnp +// static void xdot_fillcolor (GVJ_t *job) +public static Object xdot_fillcolor(Object... arg) { +UNSUPPORTED("ejjftiuyrxovyl636o8pnpcj6"); // static void xdot_fillcolor (GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("boz2fjqox1pq60m56eico3v0p"); // xdot_str (job, "C ", color2str (job->obj->fillcolor.u.rgba)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 akblfseh504uvt16lpiz8w2rs +// static void xdot_style (GVJ_t *job) +public static Object xdot_style(Object... arg) { +UNSUPPORTED("db76ixln345h83r6te7s58z7x"); // static void xdot_style (GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("afhr40frddxftx356soi57rg3"); // unsigned char buf0[BUFSIZ]; +UNSUPPORTED("2gnjttug203yi2oh7n4j4a3hg"); // char buf [128]; /* enough to hold a double */ +UNSUPPORTED("d7xb6maj0ydcfhxp7ibk0szkw"); // agxbuf xbuf; +UNSUPPORTED("ccvotvthaccdugxq4vhorvsrj"); // char* p, **s; +UNSUPPORTED("8lluzb23zpt42lfn1j18s337z"); // int more; +UNSUPPORTED("cykkurgudosfmfhpzldhi18aj"); // agxbinit(&xbuf, BUFSIZ, buf0); +UNSUPPORTED("2tyl80zoe1rs9g95dx69tqk3w"); // /* First, check if penwidth state is correct */ +UNSUPPORTED("6ip3ef109ytqv03buns0pf7yj"); // if (job->obj->penwidth != penwidth[job->obj->emit_state]) { +UNSUPPORTED("6jbvmrfuwla67iwyeqizjvc43"); // penwidth[job->obj->emit_state] = job->obj->penwidth; +UNSUPPORTED("d6elqy8gvxv6tj6ko8vrcey51"); // agxbput (&xbuf, "setlinewidth("); +UNSUPPORTED("9drk08ktte1le712u4fb8cx3e"); // sprintf (buf, "%.3f", job->obj->penwidth); +UNSUPPORTED("2x3jw5oglrvbttiesukwcs1gc"); // xdot_trim_zeros (buf, 0); +UNSUPPORTED("8e0455x8th67gro0sitvj7rtm"); // agxbput(&xbuf, buf); +UNSUPPORTED("cazm9btr28fejr5n4cwsma7tw"); // ((((&xbuf)->ptr >= (&xbuf)->eptr) ? agxbmore(&xbuf,1) : 0), (int)(*(&xbuf)->ptr++ = ((unsigned char)')'))); +UNSUPPORTED("caplzv8idwd0qnoaq3w2vy5ff"); // xdot_str (job, "S ", (((((&xbuf)->ptr >= (&xbuf)->eptr) ? agxbmore(&xbuf,1) : 0), (int)(*(&xbuf)->ptr++ = ((unsigned char)'\0'))),(char*)((&xbuf)->ptr = (&xbuf)->buf))); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ezgpaevuurfv1bn90du0txpse"); // /* now process raw style, if any */ +UNSUPPORTED("e6dlq4pw8dw2g5an1ea0m2wii"); // s = job->obj->rawstyle; +UNSUPPORTED("5io7qudgtw3wrjkc5ndpni08d"); // if (!s) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("catth0ogzsfgrpygkfd0cbryu"); // while ((p = *s++)) { +UNSUPPORTED("dodemy5m4a5amvr3bhs96zfni"); // if ((*(p)==*("filled")&&!strcmp(p,"filled")) || (*(p)==*("bold")&&!strcmp(p,"bold")) || (*(p)==*("setlinewidth")&&!strcmp(p,"setlinewidth"))) continue; +UNSUPPORTED("2nyfr4iutosldh71xx4giq7ld"); // agxbput(&xbuf, p); +UNSUPPORTED("59gu8gjy0gkpkkgmy7w3c6hz8"); // while (*p) +UNSUPPORTED("a0t85lvr3qdf70ajg30c8eadd"); // p++; +UNSUPPORTED("5ms90gds9d7jyok5oqzrumfjz"); // p++; +UNSUPPORTED("1rk1yssdqhcu8mg9wsz5s403g"); // if (*p) { /* arguments */ +UNSUPPORTED("ezc5o9bz1652ofqsi8ceaswyk"); // ((((&xbuf)->ptr >= (&xbuf)->eptr) ? agxbmore(&xbuf,1) : 0), (int)(*(&xbuf)->ptr++ = ((unsigned char)'('))); +UNSUPPORTED("dld8yejzb1pzu4wrg97fvx3jc"); // more = 0; +UNSUPPORTED("3xy02it8l5j1ou46bxrmcmj9g"); // while (*p) { +UNSUPPORTED("6w8b4rzmwbn832ggmg5z2hz3k"); // if (more) +UNSUPPORTED("f014jjwukcwe1h27o8tb4elz7"); // ((((&xbuf)->ptr >= (&xbuf)->eptr) ? agxbmore(&xbuf,1) : 0), (int)(*(&xbuf)->ptr++ = ((unsigned char)','))); +UNSUPPORTED("f14rwp6u955tfu6cz9c5dykoe"); // agxbput(&xbuf, p); +UNSUPPORTED("cc4ka25bv1qo01yebmhukrudh"); // while (*p) p++; +UNSUPPORTED("9qg60ras48o8da5tv4x27825z"); // p++; +UNSUPPORTED("b7uckf8huqm9rbpqs7i2shp26"); // more++; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("e2cqo5jxgtpd6regkfgu974a2"); // ((((&xbuf)->ptr >= (&xbuf)->eptr) ? agxbmore(&xbuf,1) : 0), (int)(*(&xbuf)->ptr++ = ((unsigned char)')'))); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("caplzv8idwd0qnoaq3w2vy5ff"); // xdot_str (job, "S ", (((((&xbuf)->ptr >= (&xbuf)->eptr) ? agxbmore(&xbuf,1) : 0), (int)(*(&xbuf)->ptr++ = ((unsigned char)'\0'))),(char*)((&xbuf)->ptr = (&xbuf)->buf))); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9audbw57i2imjhpg3zy9xu5mv"); // agxbfree(&xbuf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 djj0v1y6ft33l01s92mhmr3j1 +// static void xdot_end_node(GVJ_t* job) +public static Object xdot_end_node(Object... arg) { +UNSUPPORTED("95abravuaefe897744oovdbgg"); // static void xdot_end_node(GVJ_t* job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2lezgk5o9qmdslgwzpqrn1h4k"); // Agnode_t* n = job->obj->u.n; +UNSUPPORTED("dnj3m7u15yca5e0djce9ndvvp"); // if ((((xbufs[EMIT_NDRAW])->ptr)-((xbufs[EMIT_NDRAW])->buf))) +UNSUPPORTED("3erl3ds6swm4uogbpfesahw0u"); // agxset(n, xd->n_draw, (((((xbufs[EMIT_NDRAW])->ptr >= (xbufs[EMIT_NDRAW])->eptr) ? agxbmore(xbufs[EMIT_NDRAW],1) : 0), (int)(*(xbufs[EMIT_NDRAW])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_NDRAW])->ptr = (xbufs[EMIT_NDRAW])->buf))); +UNSUPPORTED("d19b8c2q143j6pjrn1imkr6cb"); // if ((((xbufs[EMIT_NLABEL])->ptr)-((xbufs[EMIT_NLABEL])->buf))) +UNSUPPORTED("33169rwgvzvqy0fn0jr86ukzc"); // agxset(n, xd->n_l_draw, (((((xbufs[EMIT_NLABEL])->ptr >= (xbufs[EMIT_NLABEL])->eptr) ? agxbmore(xbufs[EMIT_NLABEL],1) : 0), (int)(*(xbufs[EMIT_NLABEL])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_NLABEL])->ptr = (xbufs[EMIT_NLABEL])->buf))); +UNSUPPORTED("9ethb4ntxk0h21pjx0sv6g8w5"); // penwidth[EMIT_NDRAW] = 1; +UNSUPPORTED("d8dohyb2l7olxqf7no2cc3182"); // penwidth[EMIT_NLABEL] = 1; +UNSUPPORTED("4ib1axosef2xal7sx0hnv73el"); // textflags[EMIT_NDRAW] = 0; +UNSUPPORTED("27ks7p26fei0vcpbqhvhyreve"); // textflags[EMIT_NLABEL] = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ephot24v485u441t22spc1qxd +// static void xdot_end_edge(GVJ_t* job) +public static Object xdot_end_edge(Object... arg) { +UNSUPPORTED("5h94a39uxt4m5kq9bcyd2jcup"); // static void xdot_end_edge(GVJ_t* job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cs9lngw1dgp8n3lvti2wx4ro4"); // Agedge_t* e = job->obj->u.e; +UNSUPPORTED("5aqbusskhk2rgmt0v3anuaod0"); // if ((((xbufs[EMIT_EDRAW])->ptr)-((xbufs[EMIT_EDRAW])->buf))) +UNSUPPORTED("8jbq0gt6cplwr2t4lb8r3o03u"); // agxset(e, xd->e_draw, (((((xbufs[EMIT_EDRAW])->ptr >= (xbufs[EMIT_EDRAW])->eptr) ? agxbmore(xbufs[EMIT_EDRAW],1) : 0), (int)(*(xbufs[EMIT_EDRAW])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_EDRAW])->ptr = (xbufs[EMIT_EDRAW])->buf))); +UNSUPPORTED("7jyyj1fsz2gdq8093dto36oql"); // if ((((xbufs[EMIT_TDRAW])->ptr)-((xbufs[EMIT_TDRAW])->buf))) +UNSUPPORTED("113qjp9jjxo9ee7n0norzpy94"); // agxset(e, xd->t_draw, (((((xbufs[EMIT_TDRAW])->ptr >= (xbufs[EMIT_TDRAW])->eptr) ? agxbmore(xbufs[EMIT_TDRAW],1) : 0), (int)(*(xbufs[EMIT_TDRAW])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_TDRAW])->ptr = (xbufs[EMIT_TDRAW])->buf))); +UNSUPPORTED("1s5rfn5msds0g3l08ukdnatf6"); // if ((((xbufs[EMIT_HDRAW])->ptr)-((xbufs[EMIT_HDRAW])->buf))) +UNSUPPORTED("5mnz5pqsbe8l1nrt4dx2qgotx"); // agxset(e, xd->h_draw, (((((xbufs[EMIT_HDRAW])->ptr >= (xbufs[EMIT_HDRAW])->eptr) ? agxbmore(xbufs[EMIT_HDRAW],1) : 0), (int)(*(xbufs[EMIT_HDRAW])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_HDRAW])->ptr = (xbufs[EMIT_HDRAW])->buf))); +UNSUPPORTED("6dv2nqce6ve0m7l061jjlmaye"); // if ((((xbufs[EMIT_ELABEL])->ptr)-((xbufs[EMIT_ELABEL])->buf))) +UNSUPPORTED("3budwb0zd8tka557wgarsszrz"); // agxset(e, xd->e_l_draw,(((((xbufs[EMIT_ELABEL])->ptr >= (xbufs[EMIT_ELABEL])->eptr) ? agxbmore(xbufs[EMIT_ELABEL],1) : 0), (int)(*(xbufs[EMIT_ELABEL])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_ELABEL])->ptr = (xbufs[EMIT_ELABEL])->buf))); +UNSUPPORTED("bbq0f5l1m6tifwlpdbgjxjxmb"); // if ((((xbufs[EMIT_TLABEL])->ptr)-((xbufs[EMIT_TLABEL])->buf))) +UNSUPPORTED("4hcvf4p9vrk0ep0jjusj3jfhg"); // agxset(e, xd->tl_draw, (((((xbufs[EMIT_TLABEL])->ptr >= (xbufs[EMIT_TLABEL])->eptr) ? agxbmore(xbufs[EMIT_TLABEL],1) : 0), (int)(*(xbufs[EMIT_TLABEL])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_TLABEL])->ptr = (xbufs[EMIT_TLABEL])->buf))); +UNSUPPORTED("8npymvk65ot8kt7ab3njeurja"); // if ((((xbufs[EMIT_HLABEL])->ptr)-((xbufs[EMIT_HLABEL])->buf))) +UNSUPPORTED("aiq65lb7yped6b0lu116yo7a4"); // agxset(e, xd->hl_draw, (((((xbufs[EMIT_HLABEL])->ptr >= (xbufs[EMIT_HLABEL])->eptr) ? agxbmore(xbufs[EMIT_HLABEL],1) : 0), (int)(*(xbufs[EMIT_HLABEL])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_HLABEL])->ptr = (xbufs[EMIT_HLABEL])->buf))); +UNSUPPORTED("2x0ufa4uwhp9bb7fn3s7usmzd"); // penwidth[EMIT_EDRAW] = 1; +UNSUPPORTED("ayk6jgfpc8vvemv998gbjnsww"); // penwidth[EMIT_ELABEL] = 1; +UNSUPPORTED("agspcnz5b0suqpit8cner6mhc"); // penwidth[EMIT_TDRAW] = 1; +UNSUPPORTED("1e0b8ziuh0xrcaq0zplxix85s"); // penwidth[EMIT_HDRAW] = 1; +UNSUPPORTED("6q4g8p0xtw5agqvlkpum8e9vz"); // penwidth[EMIT_TLABEL] = 1; +UNSUPPORTED("7zohf6ywwsdckdn01n3cs1hjl"); // penwidth[EMIT_HLABEL] = 1; +UNSUPPORTED("cb1xiw693bv2yaimwk2pjorom"); // textflags[EMIT_EDRAW] = 0; +UNSUPPORTED("ezfay17uxlha202qtn3sntxaq"); // textflags[EMIT_ELABEL] = 0; +UNSUPPORTED("e3whco999z8g1b67c9zy58eu0"); // textflags[EMIT_TDRAW] = 0; +UNSUPPORTED("cguuvn26z1l27ish4rurbai3w"); // textflags[EMIT_HDRAW] = 0; +UNSUPPORTED("bhdmf1uvv60ds7vyrvwu4u9dl"); // textflags[EMIT_TLABEL] = 0; +UNSUPPORTED("2jq39xm07ptt1y0oamn4scxht"); // textflags[EMIT_HLABEL] = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dgd04lnzpx25r8td4fyyg7u9n +// static void xdot_end_cluster(GVJ_t * job) +public static Object xdot_end_cluster(Object... arg) { +UNSUPPORTED("748xi07ak7ijn36t3dcv852k6"); // static void xdot_end_cluster(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7hp4cwsa27640rg8l9i1oc3au"); // Agraph_t* cluster_g = job->obj->u.sg; +UNSUPPORTED("7b9pvrvxfs1gy8pbpc556vgxn"); // agxset(cluster_g, xd->g_draw, (((((xbufs[EMIT_CDRAW])->ptr >= (xbufs[EMIT_CDRAW])->eptr) ? agxbmore(xbufs[EMIT_CDRAW],1) : 0), (int)(*(xbufs[EMIT_CDRAW])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_CDRAW])->ptr = (xbufs[EMIT_CDRAW])->buf))); +UNSUPPORTED("4wwr02p3sc6z77r6pac172u8s"); // if (GD_label(cluster_g)) +UNSUPPORTED("2dcg44k25x6u6ovhi0x82ky18"); // agxset(cluster_g, xd->g_l_draw, (((((xbufs[EMIT_CLABEL])->ptr >= (xbufs[EMIT_CLABEL])->eptr) ? agxbmore(xbufs[EMIT_CLABEL],1) : 0), (int)(*(xbufs[EMIT_CLABEL])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_CLABEL])->ptr = (xbufs[EMIT_CLABEL])->buf))); +UNSUPPORTED("6mewhqzermfouij20dxeiylv4"); // penwidth[EMIT_CDRAW] = 1; +UNSUPPORTED("13g8ea820qlbpgkiw8okcurxy"); // penwidth[EMIT_CLABEL] = 1; +UNSUPPORTED("2ihltn665xnv186ed88nlcu5c"); // textflags[EMIT_CDRAW] = 0; +UNSUPPORTED("ais8984m9rao3r8qrdv5oyrqd"); // textflags[EMIT_CLABEL] = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 8w9h04r6wb5w595zzittoeka4 +// static unsigned short versionStr2Version (char* str) +public static Object versionStr2Version(Object... arg) { +UNSUPPORTED("chrcy094x7ttaya3h1exscw7v"); // static unsigned short +UNSUPPORTED("e4d2kbrvn8htupn0iafoih5mq"); // versionStr2Version (char* str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4stmwy26608swzz374tod0ean"); // char c, buf[BUFSIZ]; +UNSUPPORTED("bvxkingiukxgnvvl6kws5dtd3"); // int n = 0; +UNSUPPORTED("2abz7v9cw72cf6hqjox54nmwp"); // char* s = str; +UNSUPPORTED("5c5g7fflmrhni3g2nuv63ojib"); // unsigned short us; +UNSUPPORTED("c5ryg6x0ohski7pfyjfenou9s"); // while ((c = *s++)) { +UNSUPPORTED("1pnj5rt1fbfrxp7zvqffa53x5"); // if (isdigit(c)) { +UNSUPPORTED("ehkrwnuhx00twplplqn1558ge"); // if (n < BUFSIZ-1) buf[n++] = c; +UNSUPPORTED("6q044im7742qhglc4553noina"); // else { +UNSUPPORTED("6l35fjttf01gcmuqayv4bqy2w"); // agerr(AGWARN, "xdot version \"%s\" too long", str); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dduxfzva8x0mdh16aqyebatl1"); // buf[n] = '\0'; +UNSUPPORTED("ogkrzx48vpp24yudp5vze1k"); // us = atoi(buf); +UNSUPPORTED("2iqrgjc97xskxvw6791yf0sl7"); // return us; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b6dujnnnx0vkz2azj96gb7m4s +// static void xdot_begin_graph (graph_t *g, int s_arrows, int e_arrows, format_type id) +public static Object xdot_begin_graph(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("2rjz3mulunwdz9ta0eo4csy2b"); // xdot_begin_graph (graph_t *g, int s_arrows, int e_arrows, format_type id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ic1aerpescva8qu266cf4kgz"); // int i, us; +UNSUPPORTED("yiuh599p05f2mpu2e3pesu2o"); // char* s; +UNSUPPORTED("3vqymbo4wpza3fq6x8saz6rn7"); // xd = (xdot_state_t*)malloc(sizeof(xdot_state_t)); +UNSUPPORTED("3a76ht5j9z1ccvqedbdgme3dd"); // if (id == FORMAT_XDOT14) { +UNSUPPORTED("dt2u9y3kkmi56oskm69x8mikm"); // xd->version = 14; +UNSUPPORTED("66cdr1t0wjaf0s0kucjxfuwim"); // xd->version_s = "1.4"; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("bf0zctwltwc67p5nltorciugj"); // else if (id == FORMAT_XDOT12) { +UNSUPPORTED("4878ji8ec7yej8s8b623nj7pp"); // xd->version = 12; +UNSUPPORTED("aaqxtlgybeiz9p9nyseoms49t"); // xd->version_s = "1.2"; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dnjx9r21tejepmqiuwox2oxrg"); // else if ((s = agget(g, "xdotversion")) && s[0] && ((us = versionStr2Version(s)) > 10)) { +UNSUPPORTED("4s8ywxustrk8erm1tc6ejw2rg"); // xd->version = us; +UNSUPPORTED("1424no2f3makhwi7tfl8c5q80"); // xd->version_s = s; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("1b4xz050q21m7lott5uquc11d"); // xd->version = versionStr2Version("1.7"); +UNSUPPORTED("5kd75c5wqbvyshanptxfkj057"); // xd->version_s = "1.7"; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7zymy8kk3ewvzchagbq7uv1cu"); // if (GD_n_cluster(g)) +UNSUPPORTED("cucvefvtr19ty35o4vh2yk4oz"); // xd->g_draw = safe_dcl(g, AGRAPH, "_draw_", ""); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("62tnc1j7duax67f6mmiymrdfa"); // xd->g_draw = NULL; +UNSUPPORTED("2e1fr0r03jmw794odl240c8f7"); // if (GD_has_labels(g) & (1 << 3)) +UNSUPPORTED("9a39cc2g4ltbio86mu69qmvj"); // xd->g_l_draw = safe_dcl(g, AGRAPH, "_ldraw_", ""); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("e0ldg474fh8tbrhv0i9u0aqjp"); // xd->g_l_draw = NULL; +UNSUPPORTED("dw68da3w0j8rbxtrn9vhq44of"); // xd->n_draw = safe_dcl(g, AGNODE, "_draw_", ""); +UNSUPPORTED("f4nik9l77a4c6uvt9x55ngopt"); // xd->n_l_draw = safe_dcl(g, AGNODE, "_ldraw_", ""); +UNSUPPORTED("93zg18zlp7hsfph618t3hyejs"); // xd->e_draw = safe_dcl(g, AGEDGE, "_draw_", ""); +UNSUPPORTED("6d4jdibq9wvx7on8dimlxq0yn"); // if (e_arrows) +UNSUPPORTED("9ou3qp01825r9ps5uo5xfzgzc"); // xd->h_draw = safe_dcl(g, AGEDGE, "_hdraw_", ""); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("be9ld1gbisp6a176vdzaof8d3"); // xd->h_draw = NULL; +UNSUPPORTED("euj2g8y61z0t4qjvgr0jss8v1"); // if (s_arrows) +UNSUPPORTED("dowfh8qe11fawskapg5ro3jfr"); // xd->t_draw = safe_dcl(g, AGEDGE, "_tdraw_", ""); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("danxd49is8wbz9kakvzoq5odi"); // xd->t_draw = NULL; +UNSUPPORTED("3ufm3epx8zs5wivuj6wsveht6"); // if (GD_has_labels(g) & ((1 << 0)|(1 << 5))) +UNSUPPORTED("enylxaurlxd4or2zdfs634dga"); // xd->e_l_draw = safe_dcl(g, AGEDGE, "_ldraw_", ""); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("bi02qgm8vwdvqv11mwmnhs6to"); // xd->e_l_draw = NULL; +UNSUPPORTED("9o41hpfnkkzxiqf6wmsulmacd"); // if (GD_has_labels(g) & (1 << 1)) +UNSUPPORTED("6nvmq2gfvww01ewp3x9sjkuke"); // xd->hl_draw = safe_dcl(g, AGEDGE, "_hldraw_", ""); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("3nwv12jiirdbiz1oc47o2r3dg"); // xd->hl_draw = NULL; +UNSUPPORTED("cpnv97fkn07xq4zk0ujfs1ae5"); // if (GD_has_labels(g) & (1 << 2)) +UNSUPPORTED("da26r5gjgp3688l1z4tpzbq31"); // xd->tl_draw = safe_dcl(g, AGEDGE, "_tldraw_", ""); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("2tye9jzgetwsilq9chtxirz1i"); // xd->tl_draw = NULL; +UNSUPPORTED("7kk0ag26ulyeot56meorf4p5s"); // for (i = 0; i < (EMIT_HLABEL+1); i++) +UNSUPPORTED("8ajne0cu6u9nmlfrbjocyi684"); // agxbinit(xbuf+i, BUFSIZ, xd->buf[i]); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9el3cs7jw7xcl0wowpu7ct3rz +// static void dot_begin_graph(GVJ_t *job) +public static Object dot_begin_graph(Object... arg) { +UNSUPPORTED("55cwgn2ctpl1i38b5pfptyfxh"); // static void dot_begin_graph(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5trsosjncbloszlsxd8sslp3o"); // int e_arrows; /* graph has edges with end arrows */ +UNSUPPORTED("1bxz1lm8m0fgeoigia5tikg9d"); // int s_arrows; /* graph has edges with start arrows */ +UNSUPPORTED("a3q119d7e1ostqe1x435lxrvm"); // graph_t *g = job->obj->u.g; +UNSUPPORTED("69opxqj69jbqthw7e5x8p71j0"); // switch (job->render.id) { +UNSUPPORTED("asbdg30zpxv93m8c8q7ut9pp7"); // case FORMAT_DOT: +UNSUPPORTED("2ufbsycafpqid948lx5vaouyr"); // attach_attrs(g); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("d55f2zrc5u2nlqzvfrhox6uyo"); // case FORMAT_CANON: +UNSUPPORTED("3tclamickukum1mag8ngi9dc4"); // if ((GD_flags(g) & 1)) +UNSUPPORTED("13lh6smzxcir33yrc79wvp3ps"); // undoClusterEdges(g); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4p4opxbu0ika01d9nbkvr7c5a"); // case FORMAT_PLAIN: +UNSUPPORTED("b4g1j6lxp030dk3zr7rcgwrkn"); // case FORMAT_PLAIN_EXT: +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("drwnou77a82tgjqpyix5e973i"); // case FORMAT_XDOT: +UNSUPPORTED("oq1yoczrthmfym4uucuuvtwg"); // case FORMAT_XDOT12: +UNSUPPORTED("5detc6thxx6k2gbql8t37kino"); // case FORMAT_XDOT14: +UNSUPPORTED("e517lrgflyjmfilgki7hwb0v0"); // attach_attrs_and_arrows(g, &s_arrows, &e_arrows); +UNSUPPORTED("8kje0t3r1kyhxp9ztlespm94x"); // xdot_begin_graph(g, s_arrows, e_arrows, job->render.id); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5frt5zpj5ehffb4xazrp3bk5a +// static void xdot_end_graph(graph_t* g) +public static Object xdot_end_graph(Object... arg) { +UNSUPPORTED("644gqx36xocy4ypd9o808hu8k"); // static void xdot_end_graph(graph_t* g) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("5in05wx4rr8c79fscbbuj0ny4"); // if ((((xbufs[EMIT_GDRAW])->ptr)-((xbufs[EMIT_GDRAW])->buf))) { +UNSUPPORTED("71dz7nzjnm6fuzbfeq9vq9fhd"); // if (!xd->g_draw) +UNSUPPORTED("d00l0rr0wvgnbyncpg4c280md"); // xd->g_draw = safe_dcl(g, AGRAPH, "_draw_", ""); +UNSUPPORTED("col5wyh184hm8s7tk9u3wduo4"); // agxset(g, xd->g_draw, (((((xbufs[EMIT_GDRAW])->ptr >= (xbufs[EMIT_GDRAW])->eptr) ? agxbmore(xbufs[EMIT_GDRAW],1) : 0), (int)(*(xbufs[EMIT_GDRAW])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_GDRAW])->ptr = (xbufs[EMIT_GDRAW])->buf))); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("aplr7sm051i57jygcfj6gigoh"); // if (GD_label(g)) +UNSUPPORTED("6hnqed76xd8ub681wy4l61i6k"); // agxset(g, xd->g_l_draw, (((((xbufs[EMIT_GLABEL])->ptr >= (xbufs[EMIT_GLABEL])->eptr) ? agxbmore(xbufs[EMIT_GLABEL],1) : 0), (int)(*(xbufs[EMIT_GLABEL])->ptr++ = ((unsigned char)'\0'))),(char*)((xbufs[EMIT_GLABEL])->ptr = (xbufs[EMIT_GLABEL])->buf))); +UNSUPPORTED("9l6hpui3e7ttewt7f0pbdmj7n"); // agsafeset (g, "xdotversion", xd->version_s, ""); +UNSUPPORTED("7kk0ag26ulyeot56meorf4p5s"); // for (i = 0; i < (EMIT_HLABEL+1); i++) +UNSUPPORTED("7oy2gkodmmkkpcrpnsqj8zo3y"); // agxbfree(xbuf+i); +UNSUPPORTED("8zq3l17h8kry49np2uj156vbf"); // free (xd); +UNSUPPORTED("1k9pby72xelcehm9qyzsmgbuj"); // penwidth[EMIT_GDRAW] = 1; +UNSUPPORTED("a4udc0v8tnpzqfdhk4ey7hlj2"); // penwidth[EMIT_GLABEL] = 1; +UNSUPPORTED("85vfts415fxmowpvc6oa94wtk"); // textflags[EMIT_GDRAW] = 0; +UNSUPPORTED("bprw4c19qmn4tbiyw95senow2"); // textflags[EMIT_GLABEL] = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 365wp64if2aqqmz88lgc2acad +// static void dot_end_graph(GVJ_t *job) +public static Object dot_end_graph(Object... arg) { +UNSUPPORTED("7od3m4syfzwmjresag6exqpa2"); // static void dot_end_graph(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a3q119d7e1ostqe1x435lxrvm"); // graph_t *g = job->obj->u.g; +UNSUPPORTED("4y5ui7sbb6i9ctt3c57thi7gr"); // Agiodisc_t* io_save; +UNSUPPORTED("17vaxtfzi2nvsvj86pltalk4h"); // static Agiodisc_t io; +UNSUPPORTED("dooum3itkcwjhytfxgpkqy2bc"); // if (io.afread == NULL) { +UNSUPPORTED("buq0dfl65l186567ldevfu1lc"); // io.afread = AgIoDisc.afread; +UNSUPPORTED("61t5ae3n3uf6lem5ma8yk8g8r"); // io.putstr = (putstrfn)gvputs; +UNSUPPORTED("9myl5023j2t6dyfsi6w7rnvi6"); // io.flush = (flushfn)gvflush; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4qb1dpqvvr2x20dk4v9y86cr2"); // io_save = g->clos->disc.io; +UNSUPPORTED("cgto05kv6b8s6ytjz5jz9698n"); // g->clos->disc.io = &io; +UNSUPPORTED("69opxqj69jbqthw7e5x8p71j0"); // switch (job->render.id) { +UNSUPPORTED("4p4opxbu0ika01d9nbkvr7c5a"); // case FORMAT_PLAIN: +UNSUPPORTED("1samwnyuotk102w959rrud5i7"); // write_plain(job, g, (FILE*)job, 0); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("b4g1j6lxp030dk3zr7rcgwrkn"); // case FORMAT_PLAIN_EXT: +UNSUPPORTED("1jrd36rj77i6km0m420xlpul"); // write_plain(job, g, (FILE*)job, NOT(0)); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("asbdg30zpxv93m8c8q7ut9pp7"); // case FORMAT_DOT: +UNSUPPORTED("d55f2zrc5u2nlqzvfrhox6uyo"); // case FORMAT_CANON: +UNSUPPORTED("3pog4cju4ila5a12l0p0zeb88"); // if (!(job->flags & (1<<27))) +UNSUPPORTED("3lsqt99njjcj8p92ycwhmflh6"); // agwrite(g, (FILE*)job); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("drwnou77a82tgjqpyix5e973i"); // case FORMAT_XDOT: +UNSUPPORTED("oq1yoczrthmfym4uucuuvtwg"); // case FORMAT_XDOT12: +UNSUPPORTED("5detc6thxx6k2gbql8t37kino"); // case FORMAT_XDOT14: +UNSUPPORTED("58qfh8cm3k2usaxu31aasg2q0"); // xdot_end_graph(g); +UNSUPPORTED("3pog4cju4ila5a12l0p0zeb88"); // if (!(job->flags & (1<<27))) +UNSUPPORTED("3lsqt99njjcj8p92ycwhmflh6"); // agwrite(g, (FILE*)job); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2khgjvw37rb0f0u56v0bmeuhk"); // g->clos->disc.io = io_save; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 miu9dqoprpn4z02dr1v5dp5m +// static unsigned int flag_masks[] = + + + + +//3 cxy8ygsrutpg71gnj7rvevr82 +// static void xdot_textspan(GVJ_t * job, pointf p, textspan_t * span) +public static Object xdot_textspan(Object... arg) { +UNSUPPORTED("gwiq1hicnrtpzvgg8epkkvav"); // static void xdot_textspan(GVJ_t * job, pointf p, textspan_t * span) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5tol2owvqctfpttgzs7ee7b7x"); // emit_state_t emit_state = job->obj->emit_state; +UNSUPPORTED("bvksijlrvlrkfx8y487wyj382"); // int flags; +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("2bs0wcp6367dz1o5x166ec7l8"); // int j; +UNSUPPORTED("6l9fjr9roux0dfl0wfu7fcddr"); // agxbput(xbufs[emit_state], "F "); +UNSUPPORTED("az3hohvk4k0kbhvylbungddx3"); // xdot_fmt_num (buf, span->font->size); +UNSUPPORTED("9rhyq2cgol181qsty6dn352bn"); // agxbput(xbufs[emit_state], buf); +UNSUPPORTED("99k2as158r23heb0l4ctcm9vy"); // xdot_str (job, "", span->font->name); +UNSUPPORTED("b60954b8v5dalvf3r6llehqzf"); // xdot_pencolor(job); +UNSUPPORTED("bpqxh9mig0sh1gasrlkg6hbph"); // switch (span->just) { +UNSUPPORTED("15tf5rbprgr65ucp24e4bba9t"); // case 'l': +UNSUPPORTED("2suvzg8lg1f7fj0rjb3xgexxo"); // j = -1; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("8pu80wsk8me7q17ensqlviq86"); // case 'r': +UNSUPPORTED("bd07lgrxf1a60vz7i2yh1oc5y"); // j = 1; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("37fbny64zwo23oymypyreuldc"); // case 'n': +UNSUPPORTED("r79hxjsrgn8qe981wwjhqv5r"); // j = 0; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3ph6hw1a9g39ebdmtg6m2z1e6"); // if (span->font) +UNSUPPORTED("1h81g9cqefbz374gnxhsrzihh"); // flags = span->font->flags; +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("1zfq2ftnydeuv7ocl0s1qswos"); // flags = 0; +UNSUPPORTED("byh8c2fia9mydfrbinzik1yj"); // if (xd->version >= 15) { +UNSUPPORTED("adh7i3qky231rctbj07n1ltuh"); // unsigned int mask = flag_masks[xd->version-15]; +UNSUPPORTED("5zcevqq4z3m3xk2679v33aydh"); // unsigned int bits = flags & mask; +UNSUPPORTED("1aj03a1vg8w23trgnu1prqjjn"); // if (textflags[emit_state] != bits) { +UNSUPPORTED("3qyyq68k6zvnwy5s3w6dtw9i3"); // sprintf (buf, "t %u ", bits); +UNSUPPORTED("4rkyue7yryguey5gmxi33gx43"); // agxbput(xbufs[emit_state], buf); +UNSUPPORTED("bbejxaf27qcm3hgffhoos4cep"); // textflags[emit_state] = bits; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c9qtg5nyqzscz54w8w9mfwv7v"); // p.y += span->yoffset_centerline; +UNSUPPORTED("dx3kapcolqs61rakt0sf1g2ne"); // agxbput(xbufs[emit_state], "T "); +UNSUPPORTED("cn33udbmfohead259f30gigu9"); // xdot_point(xbufs[emit_state], p); +UNSUPPORTED("e6ynnabzexm69rwnkcujg3ytl"); // sprintf(buf, "%d ", j); +UNSUPPORTED("9rhyq2cgol181qsty6dn352bn"); // agxbput(xbufs[emit_state], buf); +UNSUPPORTED("69ugzyybutpdllfj7qjgdpzzf"); // xdot_fmt_num (buf, span->size.x); +UNSUPPORTED("9rhyq2cgol181qsty6dn352bn"); // agxbput(xbufs[emit_state], buf); +UNSUPPORTED("eyg91nw45p8h7ujjgtsrndc38"); // xdot_str (job, "", span->str); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 951oub23cl7586oxghh5so2n4 +// static void xdot_color_stop (agxbuf* xb, float v, gvcolor_t* clr) +public static Object xdot_color_stop(Object... arg) { +UNSUPPORTED("3bwn7e5owadbvieiqpx44m016"); // static void xdot_color_stop (agxbuf* xb, float v, gvcolor_t* clr) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("bh3lqw75arlp2hvbqi7hw0plv"); // sprintf (buf, "%.03f", v); +UNSUPPORTED("5jyfg2es8t6ywaex3wqf67xef"); // xdot_trim_zeros (buf, 1); +UNSUPPORTED("absgo5laog0paf2par7r2x2gj"); // xdot_str_xbuf (xb, buf, color2str (clr->u.rgba)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 81lb9t5vutop207f66wrvrzmv +// static void xdot_gradient_fillcolor (GVJ_t* job, int filled, pointf* A, int n) +public static Object xdot_gradient_fillcolor(Object... arg) { +UNSUPPORTED("cfu8qq2194ludhgqlobf0hd99"); // static void xdot_gradient_fillcolor (GVJ_t* job, int filled, pointf* A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("afhr40frddxftx356soi57rg3"); // unsigned char buf0[BUFSIZ]; +UNSUPPORTED("d7xb6maj0ydcfhxp7ibk0szkw"); // agxbuf xbuf; +UNSUPPORTED("dkl0vzbfc5x8033scv4snd5jw"); // obj_state_t* obj = job->obj; +UNSUPPORTED("apv553335q0u7zdmvsw0pkwua"); // float angle = obj->gradient_angle * M_PI / 180; +UNSUPPORTED("4qdy8fespthd4iw616b9kqbug"); // float r1,r2; +UNSUPPORTED("1jkyxz2untcdunxnh5lg110bm"); // pointf G[2],c1,c2; +UNSUPPORTED("4s3lilfwec0zb6xral9scaw8w"); // if (xd->version < 14) { +UNSUPPORTED("jhsnzw28kj9x70ilt7413rx1"); // xdot_fillcolor (job); +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cykkurgudosfmfhpzldhi18aj"); // agxbinit(&xbuf, BUFSIZ, buf0); +UNSUPPORTED("6ix1vu2jcuffbc6bfez9ob1bm"); // if (filled == 2) { +UNSUPPORTED("cj0ole2l1i4n8tqoqi5ttskq0"); // get_gradient_points(A, G, n, angle, 2); +UNSUPPORTED("2qhqfakxqg575vnxt8hl977es"); // ((((&xbuf)->ptr >= (&xbuf)->eptr) ? agxbmore(&xbuf,1) : 0), (int)(*(&xbuf)->ptr++ = ((unsigned char)'['))); +UNSUPPORTED("d5n6wae9wjfp1nge6poeog0ne"); // xdot_point (&xbuf, G[0]); +UNSUPPORTED("4it3udjo4ot3vncc2d0azcj3y"); // xdot_point (&xbuf, G[1]); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("552p8gqtzfrli5iijew1yzbc2"); // get_gradient_points(A, G, n, 0, 3); +UNSUPPORTED("azmgl3vqx13s5t2zy71yqt0zv"); // //r1 is inner radius, r2 is outer radius +UNSUPPORTED("cgza74zbphmgyazdy25a1yjwd"); // r1 = G[1].x; +UNSUPPORTED("8sucs08ls3j7nrift30lvczdo"); // r2 = G[1].y; +UNSUPPORTED("3xbidpbr5d8c0q1a9e5r3m3bf"); // if (angle == 0) { +UNSUPPORTED("33xdqpb7fle8qc4kgvrlyb978"); // c1.x = G[0].x; +UNSUPPORTED("azjf33tlorlkh7g3obi1fw9o8"); // c1.y = G[0].y; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("ctiy8a8egqtw0wdettm82nol3"); // c1.x = G[0].x + (r2/4) * cos(angle); +UNSUPPORTED("f55breu5jzgg9cdf1yjle3ldk"); // c1.y = G[0].y + (r2/4) * sin(angle); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2de5pr45z8x035q11la5yj7mr"); // c2.x = G[0].x; +UNSUPPORTED("3uy8a7vkkzkc62z0w7rwbftff"); // c2.y = G[0].y; +UNSUPPORTED("33tuj6sqq0diph014rq1qr5l2"); // r1 = r2/4; +UNSUPPORTED("1e7clx93h8m75wd14f3tz60a5"); // ((((&xbuf)->ptr >= (&xbuf)->eptr) ? agxbmore(&xbuf,1) : 0), (int)(*(&xbuf)->ptr++ = ((unsigned char)'('))); +UNSUPPORTED("73hnifpkt5nmlbooav542m03w"); // xdot_point (&xbuf, c1); +UNSUPPORTED("c2f1hoenqv8l25y3hjr50uj98"); // xdot_num (&xbuf, r1); +UNSUPPORTED("3e41s473bda488ppw2goj2b2s"); // xdot_point (&xbuf, c2); +UNSUPPORTED("5hvhixnw8w82m7kro7wcn3q6i"); // xdot_num (&xbuf, r2); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("do5q72ggtf3cz3etzwfza579u"); // agxbput(&xbuf, "2 "); +UNSUPPORTED("8fgkppjkw1zj55kkf5f3vfttd"); // if (obj->gradient_frac > 0) { +UNSUPPORTED("2sd2i1enczhlwsjncjv8mae1z"); // xdot_color_stop (&xbuf, obj->gradient_frac, &obj->fillcolor); +UNSUPPORTED("1dto0ii6gendp8jq487yi1hca"); // xdot_color_stop (&xbuf, obj->gradient_frac, &obj->stopcolor); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("is1pyjf8le3sjv4tl7l3ziaf"); // xdot_color_stop (&xbuf, 0, &obj->fillcolor); +UNSUPPORTED("24knhjivq0t12zx1guvl5rf7f"); // xdot_color_stop (&xbuf, 1, &obj->stopcolor); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9px7n8ot0ypjfbsjvvoc0sw9f"); // agxbpop(&xbuf); +UNSUPPORTED("xfkgq4px6z7dad4dxc34hfda"); // if (filled == 2) +UNSUPPORTED("8qcdfuctjpke1bbm2pfd8botk"); // ((((&xbuf)->ptr >= (&xbuf)->eptr) ? agxbmore(&xbuf,1) : 0), (int)(*(&xbuf)->ptr++ = ((unsigned char)']'))); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("cazm9btr28fejr5n4cwsma7tw"); // ((((&xbuf)->ptr >= (&xbuf)->eptr) ? agxbmore(&xbuf,1) : 0), (int)(*(&xbuf)->ptr++ = ((unsigned char)')'))); +UNSUPPORTED("6zoxco27bs4sptdv3yvk4b4f4"); // xdot_str (job, "C ", (((((&xbuf)->ptr >= (&xbuf)->eptr) ? agxbmore(&xbuf,1) : 0), (int)(*(&xbuf)->ptr++ = ((unsigned char)'\0'))),(char*)((&xbuf)->ptr = (&xbuf)->buf))); +UNSUPPORTED("9audbw57i2imjhpg3zy9xu5mv"); // agxbfree(&xbuf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 elpdgf7i39797gvcc6b2t7ff0 +// static void xdot_ellipse(GVJ_t * job, pointf * A, int filled) +public static Object xdot_ellipse(Object... arg) { +UNSUPPORTED("5ui8vu8fdabmwbsjpzn9fke7j"); // static void xdot_ellipse(GVJ_t * job, pointf * A, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5tol2owvqctfpttgzs7ee7b7x"); // emit_state_t emit_state = job->obj->emit_state; +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("6xsl5ij07s1n8lkq3esgcpnkd"); // xdot_style (job); +UNSUPPORTED("afipplsdzhk8ka8f8byy3b6ew"); // xdot_pencolor (job); +UNSUPPORTED("9yhmhvzz81x2bovke5qc93036"); // if (filled) { +UNSUPPORTED("5vocstppqgtqsgie6wt3h97lx"); // if ((filled == 2) || (filled == 3)) { +UNSUPPORTED("32wte71cc4mwvlc654ryoqvgp"); // xdot_gradient_fillcolor (job, filled, A, 2); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("2ny1fosqv89i3jorx0crjx93q"); // else +UNSUPPORTED("e2g0v2azia2l0a317ei6s9lc7"); // xdot_fillcolor (job); +UNSUPPORTED("4fy4eziyv5vh3mm1f4yikgh1g"); // agxbput(xbufs[emit_state], "E "); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("7z7k33fjb8nol2vfc95j2so4v"); // agxbput(xbufs[emit_state], "e "); +UNSUPPORTED("3k8oqnla7s88jh4xlmwpxlefs"); // xdot_point(xbufs[emit_state], A[0]); +UNSUPPORTED("19tmmds723z70vc4nukjdbn6v"); // xdot_fmt_num (buf, A[1].x - A[0].x); +UNSUPPORTED("9rhyq2cgol181qsty6dn352bn"); // agxbput(xbufs[emit_state], buf); +UNSUPPORTED("9llhc3ra6q58d31qhdtzspgb7"); // xdot_fmt_num (buf, A[1].y - A[0].y); +UNSUPPORTED("9rhyq2cgol181qsty6dn352bn"); // agxbput(xbufs[emit_state], buf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4lnrf12q3ldkwy8zf6gci2pks +// static void xdot_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, int arrow_at_end, int filled) +public static Object xdot_bezier(Object... arg) { +UNSUPPORTED("37xlnhhrtu9vagol2alnbwrk8"); // static void xdot_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, int arrow_at_end, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6xsl5ij07s1n8lkq3esgcpnkd"); // xdot_style (job); +UNSUPPORTED("afipplsdzhk8ka8f8byy3b6ew"); // xdot_pencolor (job); +UNSUPPORTED("9yhmhvzz81x2bovke5qc93036"); // if (filled) { +UNSUPPORTED("5vocstppqgtqsgie6wt3h97lx"); // if ((filled == 2) || (filled == 3)) { +UNSUPPORTED("bpeb0kmrjxd69y7dwei7wnoal"); // xdot_gradient_fillcolor (job, filled, A, n); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("35nw1pbiz2p3s6qwlam5eoo3m"); // else +UNSUPPORTED("e2g0v2azia2l0a317ei6s9lc7"); // xdot_fillcolor (job); +UNSUPPORTED("98py6ghqeml2v4q8ndh3x8a1b"); // xdot_points(job, 'b', A, n); /* NB - 'B' & 'b' are reversed in comparison to the other items */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("8o1bgpp5kvqu13syxpzk68480"); // xdot_points(job, 'B', A, n); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dqb35ass6fhia5ed3fazmq2me +// static void xdot_polygon(GVJ_t * job, pointf * A, int n, int filled) +public static Object xdot_polygon(Object... arg) { +UNSUPPORTED("cndk7usyfoi66d0rxi8ep9ehq"); // static void xdot_polygon(GVJ_t * job, pointf * A, int n, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6xsl5ij07s1n8lkq3esgcpnkd"); // xdot_style (job); +UNSUPPORTED("afipplsdzhk8ka8f8byy3b6ew"); // xdot_pencolor (job); +UNSUPPORTED("9yhmhvzz81x2bovke5qc93036"); // if (filled) { +UNSUPPORTED("5vocstppqgtqsgie6wt3h97lx"); // if ((filled == 2) || (filled == 3)) { +UNSUPPORTED("bpeb0kmrjxd69y7dwei7wnoal"); // xdot_gradient_fillcolor (job, filled, A, n); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("35nw1pbiz2p3s6qwlam5eoo3m"); // else +UNSUPPORTED("e2g0v2azia2l0a317ei6s9lc7"); // xdot_fillcolor (job); +UNSUPPORTED("ezmi4i7cc8d9uelz9assws82f"); // xdot_points(job, 'P', A, n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("48nm1x4l16t2ale21cdz3mcza"); // xdot_points(job, 'p', A, n); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e7grmvqgv9168jtqtt87zmzyy +// static void xdot_polyline(GVJ_t * job, pointf * A, int n) +public static Object xdot_polyline(Object... arg) { +UNSUPPORTED("6d20bb7cmgbtsecpavuqttst6"); // static void xdot_polyline(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6xsl5ij07s1n8lkq3esgcpnkd"); // xdot_style (job); +UNSUPPORTED("afipplsdzhk8ka8f8byy3b6ew"); // xdot_pencolor (job); +UNSUPPORTED("cpqh42avxgy10sr2b44k34o5r"); // xdot_points(job, 'L', A, n); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eykvrl427om1rgwd7xrbbwrzk +// void core_loadimage_xdot(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +public static Object core_loadimage_xdot(Object... arg) { +UNSUPPORTED("6rbh44wuyqe0mblq32vw2cf7p"); // void core_loadimage_xdot(GVJ_t * job, usershape_t *us, boxf b, boolean filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5tol2owvqctfpttgzs7ee7b7x"); // emit_state_t emit_state = job->obj->emit_state; +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("bghgst163im2c320on8x4w3zh"); // agxbput(xbufs[emit_state], "I "); +UNSUPPORTED("asxolcwcmi1gbbpelswru4bbo"); // xdot_point(xbufs[emit_state], b.LL); +UNSUPPORTED("bhn6trlb4cfurw7boroefzm9t"); // xdot_fmt_num (buf, b.UR.x - b.LL.x); +UNSUPPORTED("9rhyq2cgol181qsty6dn352bn"); // agxbput(xbufs[emit_state], buf); +UNSUPPORTED("3azj7tzkveayr8ycyk2gu34pw"); // xdot_fmt_num (buf, b.UR.y - b.LL.y); +UNSUPPORTED("9rhyq2cgol181qsty6dn352bn"); // agxbput(xbufs[emit_state], buf); +UNSUPPORTED("dmjnxlq1z32kfdqx4y7zhegaw"); // xdot_str (job, "", (char*)(us->name)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 8pi2ts65r8gsvbkjt5wq965nq +// gvrender_engine_t dot_engine = + + +//1 1plhtdsvqvsimvarzf4jj1eq7 +// gvrender_engine_t xdot_engine = + + +//1 au6z2onamntzabqj683rh3n3a +// gvrender_features_t render_features_dot = + + +//1 6f9e1l4u72pnxzq9wtm1r9lti +// gvrender_features_t render_features_xdot = + + +//1 3lwgnw04i5fjt5ies1vspsbt6 +// gvdevice_features_t device_features_canon = + + +//1 blql9jmu6ahfd8lqid7tast8h +// gvdevice_features_t device_features_dot = + + +//1 8t8p2uw0f9lt9lbs33nt9zhpy +// gvplugin_installed_t gvrender_dot_types[] = + + +//1 4p12wx67x4s3z9tqpkk0xnq2g +// gvplugin_installed_t gvdevice_dot_types[] = + + +} diff -Nru plantuml-8024/src/gen/plugin/core/gvrender_core_fig__c.java plantuml-8039/src/gen/plugin/core/gvrender_core_fig__c.java --- plantuml-8024/src/gen/plugin/core/gvrender_core_fig__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/core/gvrender_core_fig__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,738 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.core; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvrender_core_fig__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 4ywl2my7bw54moba4jmobv1yt +// static int Depth + + + + +//3 col13zsmm8179we47mk0y0ryx +// static void figptarray(GVJ_t *job, pointf * A, int n, int close) +public static Object figptarray(Object... arg) { +UNSUPPORTED("5sak5etnrhk4n1c20jbn4x6sw"); // static void figptarray(GVJ_t *job, pointf * A, int n, int close) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("41nrdsugvfgw23s93g0dhizkn"); // point p; +UNSUPPORTED("1vi49g48u2rc9v88yhabta0yw"); // for (i = 0; i < n; i++) { +UNSUPPORTED("4pvmqbw3yqtv1skjcmzaxzz1j"); // PF2P(A[i],p); +UNSUPPORTED("9l156bri4abd87e44n6ponvf7"); // gvprintf(job, " %d %d", p.x, p.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("125u8ocmya1ui6f2vy92ys41c"); // if (close) { +UNSUPPORTED("3nww6192gmqzcyq5v0whqebqg"); // PF2P(A[0],p); +UNSUPPORTED("9l156bri4abd87e44n6ponvf7"); // gvprintf(job, " %d %d", p.x, p.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b7eafy5bhxn361xe2c8x8553b"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 awvjm7vo78a8gt65eab40rjv3 +// static char *fig_string(char *s) +public static Object fig_string(Object... arg) { +UNSUPPORTED("7jy2u90k97u4zfgxqxjryrrij"); // static char *fig_string(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("210phh7av8ei8ajjmpptx96m6"); // static char *buf = NULL; +UNSUPPORTED("6fpm1wk8mz0hofn15361g6nzn"); // static int bufsize = 0; +UNSUPPORTED("3xzujk207ipx0d60nbbrwyjez"); // int pos = 0; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("10sir32iwi5l2jyfgp65pihto"); // unsigned char c; +UNSUPPORTED("cjyiejw67ffjjsk60tgeebvif"); // if (!buf) { +UNSUPPORTED("7mna7k5m37x6jycc55rpeeje8"); // bufsize = 64; +UNSUPPORTED("ep0onxumq5jdi6uy8gbmbmcbb"); // buf = malloc(bufsize * sizeof(char)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dpfzdhkfq6u86uv5f9lnqfbpq"); // p = buf; +UNSUPPORTED("c5ryg6x0ohski7pfyjfenou9s"); // while ((c = *s++)) { +UNSUPPORTED("9zdb3w6p9hdzpyyb0migch83s"); // if (pos > (bufsize - 8)) { +UNSUPPORTED("6e6hti39a4qgpg5w8s3kln578"); // bufsize *= 2; +UNSUPPORTED("5ws50ei3kkqkw4ut1rt6a53bm"); // buf = realloc(buf, bufsize * sizeof(char)); +UNSUPPORTED("7bji4miupgafja2y29safeneg"); // p = buf + pos; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("19kfsb89ftcmo72ye73cn1plm"); // if (isascii(c)) { +UNSUPPORTED("q0pniw6fxx771jygciq7vzx8"); // if (c == '\\') { +UNSUPPORTED("et6mc0jzry6p7o1acim2wudi9"); // *p++ = '\\'; +UNSUPPORTED("e2z9y4j5uutkew1vp7bi9rhl4"); // pos++; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("a9lw77m0m78a5a98c3vho52nx"); // *p++ = c; +UNSUPPORTED("80sypvk9gmir13zzfmeeey8ri"); // pos++; +UNSUPPORTED("7g575y36b78djy0o00izqx7eq"); // } else { +UNSUPPORTED("9x6j5mtq8ejbmg0m64b60ml"); // *p++ = '\\'; +UNSUPPORTED("dev643k7td5xqer5x35ldenoh"); // sprintf(p, "%03o", c); +UNSUPPORTED("5xg21ei3admmdqgn97zgseutd"); // p += 3; +UNSUPPORTED("8sk7u4qhds42x15qm3hujzttc"); // pos += 4; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2t1d66kwn86kqh0i665hqw6cl"); // *p = '\0'; +UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c9fcem04fcrcl4xar0xmrikcd +// static int figColorResolve(int *new, int r, int g, int b) +public static Object figColorResolve(Object... arg) { +UNSUPPORTED("8axwcbee7joccp1jlpniopwsa"); // static int figColorResolve(int *new, int r, int g, int b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c2sddndcjmau5tt4mtu64l1ez"); // static int top = 0; +UNSUPPORTED("bnrhaqz49cielpy7fgo6dz2ub"); // static short red[256], green[256], blue[256]; +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("5hsogcx940isfoos26t853z9j"); // int ct = -1; +UNSUPPORTED("4nf4ocdnzdty5edptkslzgrhc"); // long rd, gd, bd, dist; +UNSUPPORTED("b9jn6a9ked66uo0b0um0kfzfb"); // long mindist = 3 * 255 * 255; /* init to max poss dist */ +UNSUPPORTED("c5tawsm7j8n0vkq0qcls0soc3"); // *new = 0; /* in case it is not a new color */ +UNSUPPORTED("39bm5fhhzyquf4rlun9zbcbi4"); // for (c = 0; c < top; c++) { +UNSUPPORTED("6412n3rfkfyimbx1puriyeqqz"); // rd = (long) (red[c] - r); +UNSUPPORTED("amn29e9pu9d8t9ccunm7fn20f"); // gd = (long) (green[c] - g); +UNSUPPORTED("1qvtyk7n5kdkzxz8gi0t6sl7m"); // bd = (long) (blue[c] - b); +UNSUPPORTED("5awh60zjinxyaizmnt7bcnsgo"); // dist = rd * rd + gd * gd + bd * bd; +UNSUPPORTED("72niuav6m4ahb9zc0o87j3rup"); // if (dist < mindist) { +UNSUPPORTED("45pwtf48ibwznp83ycluh93rj"); // if (dist == 0) +UNSUPPORTED("39io4oxurhajbqm5r7elzwd3g"); // return c; /* Return exact match color */ +UNSUPPORTED("9ctfnrqq05xpz8c2upf35fhfw"); // mindist = dist; +UNSUPPORTED("2b2qywvsce8xntf2r51qyo3lz"); // ct = c; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("92ga17xtfz92ju9egrpkatfx5"); // /* no exact match. We now know closest, but first try to allocate exact */ +UNSUPPORTED("5ovv0tkjil1wqwcyc3cvzxgha"); // if (top++ == 256) +UNSUPPORTED("1qskgh83m3zps1l8d7o3ylo8g"); // return ct; /* Return closest available color */ +UNSUPPORTED("7lij9fxsovvuk0nh18y6qq0cr"); // red[c] = r; +UNSUPPORTED("7uavxrqaipwwg1svkkt5e6gon"); // green[c] = g; +UNSUPPORTED("eew689jpibm80nsjrhdscvx6g"); // blue[c] = b; +UNSUPPORTED("4ocisp2giicxopfp4qg90x7u9"); // *new = 1; /* flag new color */ +UNSUPPORTED("264d1dm29x04zyyqjdk3ddnl5"); // return c; /* Return newly allocated color */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 11cnk7gp9g9cdub4ga2u8jszp +// static char *figcolor[] = + + + + +//3 gzljm8fc35nb7t3z7v13qxsl +// static void fig_resolve_color(GVJ_t *job, gvcolor_t * color) +public static Object fig_resolve_color(Object... arg) { +UNSUPPORTED("d9huvcouhj8yhy5b4fps1vy3m"); // static void fig_resolve_color(GVJ_t *job, gvcolor_t * color) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bq377qzls373nkw9grr3xbhb9"); // int object_code = 0; /* always 0 for color */ +UNSUPPORTED("dj1t9kf7kksjvw5f22h1orpag"); // int i, new; +UNSUPPORTED("bxo9w7e24zf8i5xwh6wi8bxh4"); // switch (color->type) { +UNSUPPORTED("3963t7kz3wj9jmr4b42bh0ikz"); // case COLOR_STRING: +UNSUPPORTED("amg503k352sitwi1mo9d5l09"); // for (i = 0; figcolor[i]; i++) { +UNSUPPORTED("1a2fom7wr1ukqwuv9pvsldw8d"); // if ((*(figcolor[i])==*(color->u.string)&&!strcmp(figcolor[i],color->u.string))) { +UNSUPPORTED("9fmop7ycuw4c06a6ourx7vv8l"); // color->u.index = i; +UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("4qyq5lb20pb6flw57yam37kot"); // case RGBA_BYTE: +UNSUPPORTED("cnl3ezckqhpxx1k3zwy7hql2p"); // i = 32 + figColorResolve(&new, +UNSUPPORTED("7ypz6k2dstjlbvkqpf28ryrka"); // color->u.rgba[0], +UNSUPPORTED("1pkpumtkequn1fci0837v2e9a"); // color->u.rgba[1], +UNSUPPORTED("dt4rc3qfwjro0c9kpkkqmtgw8"); // color->u.rgba[2]); +UNSUPPORTED("438u9aoruxazb8jrtx91hlbdz"); // if (new) +UNSUPPORTED("613atevuo7fg5d4ei7jbuj8x4"); // gvprintf(job, "%d %d #%02x%02x%02x\n", +UNSUPPORTED("2gvnwuloyapznbrz8e4t06b35"); // object_code, i, +UNSUPPORTED("7ypz6k2dstjlbvkqpf28ryrka"); // color->u.rgba[0], +UNSUPPORTED("1pkpumtkequn1fci0837v2e9a"); // color->u.rgba[1], +UNSUPPORTED("dt4rc3qfwjro0c9kpkkqmtgw8"); // color->u.rgba[2]); +UNSUPPORTED("9d1rbsakym2mocpx05cjm9vua"); // color->u.index = i; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("bkkv1y1k8t2tqld7taz25diq9"); // assert(0); /* internal error */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dn17pk6kdqb9z3cs77yg6syfc"); // color->type = COLOR_INDEX; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c3uupx3hhjief1a1ojoxqlei8 +// static void fig_line_style(obj_state_t *obj, int *line_style, double *style_val) +public static Object fig_line_style(Object... arg) { +UNSUPPORTED("7m4ggpn5o0f67nqnhdm0hh4oe"); // static void fig_line_style(obj_state_t *obj, int *line_style, double *style_val) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1a0u5t2wyxdqipaswmaz0wsvz"); // switch (obj->pen) { +UNSUPPORTED("ersst7rw166izs2gaqp8nna81"); // case PEN_DASHED: +UNSUPPORTED("2anynsrc9mionezyitu3h8ust"); // *line_style = 1; +UNSUPPORTED("13xgbwsnirhzzkr4rhxlssp80"); // *style_val = 10.; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5u2fwmkidl1tehl5ms86n9ior"); // case PEN_DOTTED: +UNSUPPORTED("6w3l2bm01hn2c597o758rnjdd"); // *line_style = 2; +UNSUPPORTED("13xgbwsnirhzzkr4rhxlssp80"); // *style_val = 10.; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("f0tv0x0m7ey5lru9fd0f8d6zq"); // case PEN_SOLID: +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("d8wx5390c9r0unl07858cm345"); // *line_style = 0; +UNSUPPORTED("3eu0slevfiogpisxlbf0y2b5m"); // *style_val = 0.; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 68usbfogj1fgje2tybh6k9wpv +// static void fig_comment(GVJ_t *job, char *str) +public static Object fig_comment(Object... arg) { +UNSUPPORTED("1o50j8sbyabs2ev6hhz4w4sgr"); // static void fig_comment(GVJ_t *job, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5ls4cp3mls7mazf3b7jw70mpv"); // gvprintf(job, "# %s\n", str); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 chft6a85fdy4m0a4qvlktap4v +// static void fig_begin_graph(GVJ_t * job) +public static Object fig_begin_graph(Object... arg) { +UNSUPPORTED("b4s3t12w52npmo1ujd63j2f5k"); // static void fig_begin_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("2pap898oez8d25yf5kfweuuk6"); // gvputs(job, "#FIG 3.2\n"); +UNSUPPORTED("edxtivvelwys6lghpf7qc76zg"); // gvprintf(job, "# Generated by %s version %s (%s)\n", +UNSUPPORTED("59dk4u30jduauy0wtxlpr76x1"); // job->common->info[0], job->common->info[1], job->common->info[2]); +UNSUPPORTED("ekao5tqpl20bazozknsb9hrd8"); // gvprintf(job, "# Title: %s\n", agnameof(obj->u.g)); +UNSUPPORTED("8b6jyihvfmhd2n5rvghchmrt2"); // gvprintf(job, "# Pages: %d\n", job->pagesArraySize.x * job->pagesArraySize.y); +UNSUPPORTED("19fci1x0tibc9yaswa1vpwvj7"); // gvputs(job, "Portrait\n"); /* orientation */ +UNSUPPORTED("bla0mad3joi37n0me8lt7abry"); // gvputs(job, "Center\n"); /* justification */ +UNSUPPORTED("99jmbek36mwgrm1390uej329j"); // gvputs(job, "Inches\n"); /* units */ +UNSUPPORTED("bv6sjdnyrgv0ewmwbbdy7oexf"); // gvputs(job, "Letter\n"); /* papersize */ +UNSUPPORTED("b4pzpk2ljd50g6ytib67dvf9p"); // gvputs(job, "100.00\n"); /* magnification % */ +UNSUPPORTED("ex1qio5jby5iqrzmx3wpne0i2"); // gvputs(job, "Single\n"); /* multiple-page */ +UNSUPPORTED("cbaxpw5xdqyrxsc7zb2jf6kn9"); // gvputs(job, "-2\n"); /* transparent color (none) */ +UNSUPPORTED("9rabahws1hd55k75f87vxna8h"); // gvputs(job, "1200"); /* resolution */ +UNSUPPORTED("4f41n0n1ycxa4axvle5vo3i5d"); // gvputs(job, " 2\n"); /* coordinate system (upper left) */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bkqqnus0p5047dqnvj8xcmwcg +// static void fig_end_graph(GVJ_t * job) +public static Object fig_end_graph(Object... arg) { +UNSUPPORTED("70oxcx7i9b6krmj29wltu7d6e"); // static void fig_end_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7pkjok4dkmqeqrch0exb583uq"); // gvputs(job, "# end of FIG file\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4fe9t0bc320bhbivcpnyky0mw +// static void fig_begin_page(GVJ_t * job) +public static Object fig_begin_page(Object... arg) { +UNSUPPORTED("ddvv6085s21jjkyi1wqmvdhpb"); // static void fig_begin_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c1gm14tiwad4k4eoml1bsd3k5"); // Depth = 2; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c1nntth6qdw8345t3z9utbg2i +// static void fig_begin_node(GVJ_t * job) +public static Object fig_begin_node(Object... arg) { +UNSUPPORTED("9w1pcgb9r7k9nki9s1m44ocvv"); // static void fig_begin_node(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9hk8obst6wz63uuuikjjdwyzz"); // Depth = 1; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cn90ubz6l6mp7s7mvo837mo8z +// static void fig_end_node(GVJ_t * job) +public static Object fig_end_node(Object... arg) { +UNSUPPORTED("bfrwx5xveq0p3tjz8wblhrcyu"); // static void fig_end_node(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c1gm14tiwad4k4eoml1bsd3k5"); // Depth = 2; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6al11pypki5kl1rtaf7punyjv +// static void fig_begin_edge(GVJ_t * job) +public static Object fig_begin_edge(Object... arg) { +UNSUPPORTED("bxqu7omuy56mmwk0yzpvuk5i4"); // static void fig_begin_edge(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cioni2yvv899csf3dtmg9eha3"); // Depth = 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7a9nvpozbckjvcqfyiziwmerf +// static void fig_end_edge(GVJ_t * job) +public static Object fig_end_edge(Object... arg) { +UNSUPPORTED("2o0jbz0jjtxfi8cigc8cay4h9"); // static void fig_end_edge(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c1gm14tiwad4k4eoml1bsd3k5"); // Depth = 2; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4oxer4job7tqemycu51w9p3mh +// static void fig_textspan(GVJ_t * job, pointf p, textspan_t * span) +public static Object fig_textspan(Object... arg) { +UNSUPPORTED("djabt0co2f7pjs7jc9bvgxsr6"); // static void fig_textspan(GVJ_t * job, pointf p, textspan_t * span) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("7pxhx3kruwsackat2315zxaxh"); // PostscriptAlias *pA; +UNSUPPORTED("9d9rjo8dlx1gxguygcjybx74m"); // int object_code = 4; /* always 4 for text */ +UNSUPPORTED("5s2ydywbdzlqmetnfugnfe5fl"); // int sub_type = 0; /* text justification */ +UNSUPPORTED("7ybdgnput9qe5cha4v5bregdu"); // int color = obj->pencolor.u.index; +UNSUPPORTED("240u1bsplk74etvnv0m0z4af6"); // int depth = Depth; +UNSUPPORTED("4mqqliisakngnea1fbgw3n16w"); // int pen_style = 0; /* not used */ +UNSUPPORTED("dziv47p6oqiz76xbamjxu0z3o"); // int font = -1; /* init to xfig's default font */ +UNSUPPORTED("5ocaelp6q7jvbtn5uhwco76xq"); // double font_size = span->font->size * job->zoom; +UNSUPPORTED("5zziwmkfz3qorpubyv0ulb9po"); // double angle = job->rotation ? (M_PI / 2.0) : 0.0; +UNSUPPORTED("eevxabquf9e055685n7suxe0i"); // int font_flags = 6; /* PostScript font + Special text */ +UNSUPPORTED("5kl4au0hs3siodz66xvefluxd"); // /* Special text indicates that latex markup may exist +UNSUPPORTED("2fgvo02dcn6m14crur8mksddh"); // * in the output - but note that dot knows nothing about latex, +UNSUPPORTED("axpbsmglcjaf7wxm2hjju6p5z"); // * so the node sizes may be wrong. +UNSUPPORTED("e5xwyhh2l2jm6g9w2ofnktaf6"); // */ +UNSUPPORTED("dc3yhtv0s5gn1oiueksfstlmg"); // double height = 0.0; +UNSUPPORTED("6kzarmuop6iucuc80316jjlh0"); // double length = 0.0; +UNSUPPORTED("5gvgwpzq8o9hz6bmkphkldr14"); // pA = span->font->postscript_alias; +UNSUPPORTED("1h5aj1b720joqhv55iufgqpfp"); // if (pA) /* if it is a standard postscript font */ +UNSUPPORTED("bjr18qse2hemimgc5t7yvhb5o"); // font = pA->xfig_code; +UNSUPPORTED("bpqxh9mig0sh1gasrlkg6hbph"); // switch (span->just) { +UNSUPPORTED("15tf5rbprgr65ucp24e4bba9t"); // case 'l': +UNSUPPORTED("7mx7u2dej8vdo3cx0ey3lm4l0"); // sub_type = 0; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("8pu80wsk8me7q17ensqlviq86"); // case 'r': +UNSUPPORTED("dj3b12q9461tclhahjftmfegb"); // sub_type = 2; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("37fbny64zwo23oymypyreuldc"); // case 'n': +UNSUPPORTED("9zod2h747f4609jdryh6ur7c8"); // sub_type = 1; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("yye4jazfsuupscl2ouv9wvr5"); // "%d %d %d %d %d %d %.1f %.4f %d %.1f %.1f %d %d %s\\001\n", +UNSUPPORTED("elwt9xmgpxwk1vhtzqyo7kspm"); // object_code, sub_type, color, depth, pen_style, font, +UNSUPPORTED("8slvsonq7x735w041f8tgfmql"); // font_size, angle, font_flags, height, length, ROUND(p.x), ROUND(p.y), +UNSUPPORTED("7d4x8ygbd1tufei47zggvjf88"); // fig_string(span->str)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1jiv2yy8nu32uzog6alaa8v8k +// static void fig_ellipse(GVJ_t * job, pointf * A, int filled) +public static Object fig_ellipse(Object... arg) { +UNSUPPORTED("6eij12yycbzfznuo59zpz9m0j"); // static void fig_ellipse(GVJ_t * job, pointf * A, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("49cpg15v3wnis47c6rhryrszg"); // int object_code = 1; /* always 1 for ellipse */ +UNSUPPORTED("cejin2mgxtn6j73itzswkqp7r"); // int sub_type = 1; /* ellipse defined by radii */ +UNSUPPORTED("7yz13t0sqtqvzxyddzcozxe33"); // int line_style; /* solid, dotted, dashed */ +UNSUPPORTED("9pyxwz1r98uut10u02vkx6v1q"); // int thickness = obj->penwidth; +UNSUPPORTED("spi81120or5799hcfjb8itk6"); // int pen_color = obj->pencolor.u.index; +UNSUPPORTED("85qo3gmfwzm58xlqrukeg2vyr"); // int fill_color = obj->fillcolor.u.index; +UNSUPPORTED("240u1bsplk74etvnv0m0z4af6"); // int depth = Depth; +UNSUPPORTED("4mqqliisakngnea1fbgw3n16w"); // int pen_style = 0; /* not used */ +UNSUPPORTED("1rb7krh80rapa6zt9gze6d8y"); // int area_fill = filled ? 20 : -1; +UNSUPPORTED("erg3jyrsg6mbllclii9gqtczn"); // double style_val; +UNSUPPORTED("3ii4kknfj31pfzxrmkfltt2zt"); // int direction = 0; +UNSUPPORTED("dxmz1yn7d7fvno32wnups9ycf"); // double angle = 0.0; +UNSUPPORTED("1t06o3s897149fuj9mx3ajyo0"); // int center_x, center_y, radius_x, radius_y; +UNSUPPORTED("cht658tehrm3ih06a53hsv4yu"); // int start_x, start_y, end_x, end_y; +UNSUPPORTED("dub6ackp2wp6jel838haqwj85"); // fig_line_style(obj, &line_style, &style_val); +UNSUPPORTED("96gojoqvhtu23bt4w73sv8qna"); // start_x = center_x = ROUND(A[0].x); +UNSUPPORTED("1dxdqoj7ddbigydx3mvemwwc7"); // start_y = center_y = ROUND(A[0].y); +UNSUPPORTED("xzlx4ukt6lrd3oi5mdp7un5e"); // radius_x = ROUND(A[1].x - A[0].x); +UNSUPPORTED("7xpj066ootir8rxi2ugf3nfxi"); // radius_y = ROUND(A[1].y - A[0].y); +UNSUPPORTED("a6imzbkbllgyj947xlfc0xw4p"); // end_x = ROUND(A[1].x); +UNSUPPORTED("55csxx8x7gw7hqe8mrozi6892"); // end_y = ROUND(A[1].y); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("7asl8kr2p5g9tx5jjbdl7lu8a"); // "%d %d %d %d %d %d %d %d %d %.3f %d %.4f %d %d %d %d %d %d %d %d\n", +UNSUPPORTED("aqhcl971r2txljfiisq3maosf"); // object_code, sub_type, line_style, thickness, pen_color, +UNSUPPORTED("dmgl7afna6bbrvwxo139s3dy0"); // fill_color, depth, pen_style, area_fill, style_val, direction, +UNSUPPORTED("bvlsv4p2qx2rvc3xhdqsxwgbr"); // angle, center_x, center_y, radius_x, radius_y, start_x, +UNSUPPORTED("5r9wxj6okv0n9dayg4f863i5x"); // start_y, end_x, end_y); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 crvis3ujujfabp7xi5hzoizsf +// static void fig_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, int arrow_at_end, int filled) +public static Object fig_bezier(Object... arg) { +UNSUPPORTED("ba3o2mpkld3037uow23zovho7"); // static void fig_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, +UNSUPPORTED("77j21vz8ekimnj6b6uefavtz2"); // int arrow_at_end, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("3slisz3umk8yx744ufnbbf50r"); // int object_code = 3; /* always 3 for spline */ +UNSUPPORTED("dg2m9953dx1s3kh2xh49cl6j9"); // int sub_type; +UNSUPPORTED("7yz13t0sqtqvzxyddzcozxe33"); // int line_style; /* solid, dotted, dashed */ +UNSUPPORTED("9pyxwz1r98uut10u02vkx6v1q"); // int thickness = obj->penwidth; +UNSUPPORTED("spi81120or5799hcfjb8itk6"); // int pen_color = obj->pencolor.u.index; +UNSUPPORTED("85qo3gmfwzm58xlqrukeg2vyr"); // int fill_color = obj->fillcolor.u.index; +UNSUPPORTED("240u1bsplk74etvnv0m0z4af6"); // int depth = Depth; +UNSUPPORTED("4mqqliisakngnea1fbgw3n16w"); // int pen_style = 0; /* not used */ +UNSUPPORTED("cv6hsumgyv706zrsc1mb79vjt"); // int area_fill; +UNSUPPORTED("erg3jyrsg6mbllclii9gqtczn"); // double style_val; +UNSUPPORTED("at27yenlhsw2mhidnzh560qs7"); // int cap_style = 0; +UNSUPPORTED("6aehzky7l6ssu826xre37yhtt"); // int forward_arrow = 0; +UNSUPPORTED("cvrcowx9gwh8vdfgelcwxhrhq"); // int backward_arrow = 0; +UNSUPPORTED("cnai2dhmnp0nlkurdvfgcftzp"); // int npoints = n; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("2ripxrfk1hjvzu0cnqlmtvz7q"); // pointf pf, V[4]; +UNSUPPORTED("41nrdsugvfgw23s93g0dhizkn"); // point p; +UNSUPPORTED("54a5cffl70pabwgya54wkrjdt"); // int j, step; +UNSUPPORTED("551funk1bxiemly3silcqtngw"); // int count = 0; +UNSUPPORTED("cav0e7ncloqss0hsvc4fyfi7s"); // int size; +UNSUPPORTED("6wvmmuf1e3qp2qoi1k1njw0a0"); // char *buffer; +UNSUPPORTED("6ik3p99apk5rihypipg0uxu8i"); // char *buf; +UNSUPPORTED("8gbsddpwt5ezq32xj2np650w7"); // assert (n >= 4); +UNSUPPORTED("6v2xdvwnmehi99gxnutv3kf38"); // buffer = +UNSUPPORTED("7ls09ukxgkos4a02570trbo11"); // malloc((npoints + 1) * (6 + +UNSUPPORTED("82a2b3l9tnp4wb4zntqluobrf"); // 1) * 20 * sizeof(char)); +UNSUPPORTED("3fe0hbpwq6bj9ioyuwkjdzyzz"); // buf = buffer; +UNSUPPORTED("dub6ackp2wp6jel838haqwj85"); // fig_line_style(obj, &line_style, &style_val); +UNSUPPORTED("9yhmhvzz81x2bovke5qc93036"); // if (filled) { +UNSUPPORTED("bj3webccz9d6zwkfor1wbs62"); // sub_type = 5; /* closed X-spline */ +UNSUPPORTED("7zcxl4upa7xx6c4i5y2x03nm8"); // area_fill = 20; /* fully saturated color */ +UNSUPPORTED("72p315i58kf1cm2zd3q0u8cn9"); // fill_color = job->obj->fillcolor.u.index; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("b42prafms4wcjet9oaqz2r9an"); // sub_type = 4; /* opened X-spline */ +UNSUPPORTED("e8seyevdqkm3o522h0kw3ofoo"); // area_fill = -1; +UNSUPPORTED("cnfp5y1qtuaq6rg9e86neg62e"); // fill_color = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a5n7zezdexpwwfy12hsc5q41m"); // V[3].x = A[0].x; +UNSUPPORTED("3wrmg8m53mwjg50y22lcyblmg"); // V[3].y = A[0].y; +UNSUPPORTED("d4fw6y4mj6hshwm4fwoegfv1"); // /* Write first point in line */ +UNSUPPORTED("7ap9l0s2x29me32trtt38kph0"); // count++; +UNSUPPORTED("8hem85phuz76zejto4bkwovw1"); // PF2P(A[0], p); +UNSUPPORTED("73o6ys1pid2ocs41fxtzlcv8n"); // size = sprintf(buf, " %d %d", p.x, p.y); +UNSUPPORTED("1j1vfgxpkci66jmmmccgza2lm"); // buf += size; +UNSUPPORTED("a3w2dgd3a2dpgvb5n1a63c9ar"); // /* write subsequent points */ +UNSUPPORTED("3s0blwgctqa0ygs872bnu4kye"); // for (i = 0; i + 3 < n; i += 3) { +UNSUPPORTED("4a58elv5pvvi5twh4hrzzzj3d"); // V[0] = V[3]; +UNSUPPORTED("cr2c5h66bahjj7gd63bz4bhl7"); // for (j = 1; j <= 3; j++) { +UNSUPPORTED("d5p6lhssn8pxlfrjhmbm89neq"); // V[j].x = A[i + j].x; +UNSUPPORTED("aasvql7kiskb32j9te9gp5xif"); // V[j].y = A[i + j].y; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("afevm918v5rewrdihltcjtka7"); // for (step = 1; step <= 6; step++) { +UNSUPPORTED("cc15ym2418ncxwrvmrbf7d5fb"); // count++; +UNSUPPORTED("1maly6enkyv5xs410cfeocfo8"); // pf = Bezier (V, 3, (double) step / 6, NULL, NULL); +UNSUPPORTED("9hehuild0uke3e57cn1cu37d4"); // PF2P(pf, p); +UNSUPPORTED("dlhqn2sqdjrfl9iuem0x42sg7"); // size = sprintf(buf, " %d %d", p.x, p.y); +UNSUPPORTED("dc1iwkgf67a40ouxumqgp087o"); // buf += size; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c4x928a1fx4pey929yv4i7xi7"); // gvprintf(job, "%d %d %d %d %d %d %d %d %d %.1f %d %d %d %d\n", +UNSUPPORTED("1dqdjogaxgb0j9mm27wtggy5a"); // object_code, +UNSUPPORTED("391a91dumfga72c7rkunzsagw"); // sub_type, +UNSUPPORTED("3flh0qnrquemq28lvxyxvwr2z"); // line_style, +UNSUPPORTED("bgi0dskp51huj9xln98wnumjz"); // thickness, +UNSUPPORTED("3e88wabokfvxz8grv7y8pcp7x"); // pen_color, +UNSUPPORTED("71yn2s9gjpe47twtrov8pg08y"); // fill_color, +UNSUPPORTED("5zqiluvq3fq9xui090kw9js36"); // depth, +UNSUPPORTED("6f5tu3f8cchk4yg41erz05hd0"); // pen_style, +UNSUPPORTED("kgl9ed0oj2lceff9d2ufi72n"); // area_fill, +UNSUPPORTED("c5pgscy9jqkl0df0tcd2xh7d9"); // style_val, cap_style, forward_arrow, backward_arrow, count); +UNSUPPORTED("cqyleb6lm2k4okgz6yyfsnyvs"); // gvprintf(job, " %s\n", buffer); /* print points */ +UNSUPPORTED("2puk68crvxxdnxykmgd8hccpb"); // free(buffer); +UNSUPPORTED("880df02j7ml0ml3y149lcn5r0"); // for (i = 0; i < count; i++) { +UNSUPPORTED("aqnpclkffnis7si1mcldfnqzb"); // gvprintf(job, " %d", i % (count - 1) ? 1 : 0); /* -1 on all */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b7eafy5bhxn361xe2c8x8553b"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b6u8ndxbe2p5x3otn62y515vj +// static void fig_polygon(GVJ_t * job, pointf * A, int n, int filled) +public static Object fig_polygon(Object... arg) { +UNSUPPORTED("60icufw43hiimy7u8y66joumx"); // static void fig_polygon(GVJ_t * job, pointf * A, int n, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("1250jrnrnv2ts7w11no09s3c0"); // int object_code = 2; /* always 2 for polyline */ +UNSUPPORTED("1u7xi4usjz62x26cm8thbbuzf"); // int sub_type = 3; /* always 3 for polygon */ +UNSUPPORTED("7yz13t0sqtqvzxyddzcozxe33"); // int line_style; /* solid, dotted, dashed */ +UNSUPPORTED("9pyxwz1r98uut10u02vkx6v1q"); // int thickness = obj->penwidth; +UNSUPPORTED("spi81120or5799hcfjb8itk6"); // int pen_color = obj->pencolor.u.index; +UNSUPPORTED("85qo3gmfwzm58xlqrukeg2vyr"); // int fill_color = obj->fillcolor.u.index; +UNSUPPORTED("240u1bsplk74etvnv0m0z4af6"); // int depth = Depth; +UNSUPPORTED("4mqqliisakngnea1fbgw3n16w"); // int pen_style = 0; /* not used */ +UNSUPPORTED("1rb7krh80rapa6zt9gze6d8y"); // int area_fill = filled ? 20 : -1; +UNSUPPORTED("erg3jyrsg6mbllclii9gqtczn"); // double style_val; +UNSUPPORTED("emk8vv370o9kkt54b48xbckqk"); // int join_style = 0; +UNSUPPORTED("at27yenlhsw2mhidnzh560qs7"); // int cap_style = 0; +UNSUPPORTED("5ah3zh0iiveyst5794k0axkys"); // int radius = 0; +UNSUPPORTED("6aehzky7l6ssu826xre37yhtt"); // int forward_arrow = 0; +UNSUPPORTED("cvrcowx9gwh8vdfgelcwxhrhq"); // int backward_arrow = 0; +UNSUPPORTED("b2q7ayijmq412v8tkb0p5a4xq"); // int npoints = n + 1; +UNSUPPORTED("dub6ackp2wp6jel838haqwj85"); // fig_line_style(obj, &line_style, &style_val); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("46ua4zhlbcjsh2nua5zhohuez"); // "%d %d %d %d %d %d %d %d %d %.1f %d %d %d %d %d %d\n", +UNSUPPORTED("aqhcl971r2txljfiisq3maosf"); // object_code, sub_type, line_style, thickness, pen_color, +UNSUPPORTED("7565hrxms7ljcrl0jc6pzqo2r"); // fill_color, depth, pen_style, area_fill, style_val, join_style, +UNSUPPORTED("cyfkuqh06tebk11sxbz22gb"); // cap_style, radius, forward_arrow, backward_arrow, npoints); +UNSUPPORTED("2raacuz450jnyzch78nhdpi5r"); // figptarray(job, A, n, 1); /* closed shape */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1afauosj6wr5u4dhbjovifgei +// static void fig_polyline(GVJ_t * job, pointf * A, int n) +public static Object fig_polyline(Object... arg) { +UNSUPPORTED("1sx5zjyuegemqg5bkzvssc1bn"); // static void fig_polyline(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("1250jrnrnv2ts7w11no09s3c0"); // int object_code = 2; /* always 2 for polyline */ +UNSUPPORTED("2xiuwyphr1m2pc2o9smsohpy7"); // int sub_type = 1; /* always 1 for polyline */ +UNSUPPORTED("7yz13t0sqtqvzxyddzcozxe33"); // int line_style; /* solid, dotted, dashed */ +UNSUPPORTED("9pyxwz1r98uut10u02vkx6v1q"); // int thickness = obj->penwidth; +UNSUPPORTED("spi81120or5799hcfjb8itk6"); // int pen_color = obj->pencolor.u.index; +UNSUPPORTED("afxyknafudgf6s6v5jw9qx8p9"); // int fill_color = 0; +UNSUPPORTED("240u1bsplk74etvnv0m0z4af6"); // int depth = Depth; +UNSUPPORTED("4mqqliisakngnea1fbgw3n16w"); // int pen_style = 0; /* not used */ +UNSUPPORTED("1pvrunrk1ylb19scd5xzhf3lp"); // int area_fill = 0; +UNSUPPORTED("erg3jyrsg6mbllclii9gqtczn"); // double style_val; +UNSUPPORTED("emk8vv370o9kkt54b48xbckqk"); // int join_style = 0; +UNSUPPORTED("at27yenlhsw2mhidnzh560qs7"); // int cap_style = 0; +UNSUPPORTED("5ah3zh0iiveyst5794k0axkys"); // int radius = 0; +UNSUPPORTED("6aehzky7l6ssu826xre37yhtt"); // int forward_arrow = 0; +UNSUPPORTED("cvrcowx9gwh8vdfgelcwxhrhq"); // int backward_arrow = 0; +UNSUPPORTED("cnai2dhmnp0nlkurdvfgcftzp"); // int npoints = n; +UNSUPPORTED("dub6ackp2wp6jel838haqwj85"); // fig_line_style(obj, &line_style, &style_val); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("46ua4zhlbcjsh2nua5zhohuez"); // "%d %d %d %d %d %d %d %d %d %.1f %d %d %d %d %d %d\n", +UNSUPPORTED("aqhcl971r2txljfiisq3maosf"); // object_code, sub_type, line_style, thickness, pen_color, +UNSUPPORTED("7565hrxms7ljcrl0jc6pzqo2r"); // fill_color, depth, pen_style, area_fill, style_val, join_style, +UNSUPPORTED("cyfkuqh06tebk11sxbz22gb"); // cap_style, radius, forward_arrow, backward_arrow, npoints); +UNSUPPORTED("8pzdn1xlgnbq81goh0w0k3roi"); // figptarray(job, A, n, 0); /* open shape */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 am7q7qqmqp3cj87eqv61ag2tt +// gvrender_engine_t fig_engine = + + +//1 ar7bi3fv0al906tc46yku4qmt +// static char *fig_knowncolors[] = + + +//1 2qcp4lauqvs4msrc3ulasniqr +// gvrender_features_t render_features_fig = + + +//1 1hl171y3pew4vgjt6v4vsax61 +// gvdevice_features_t device_features_fig = + + +//1 472dfp6vcnqblz1b82crth1dc +// gvplugin_installed_t gvrender_fig_types[] = + + +//1 3dtvxqen0zlfmzz1ygg4lnixq +// gvplugin_installed_t gvdevice_fig_types[] = + + +} diff -Nru plantuml-8024/src/gen/plugin/core/gvrender_core_map__c.java plantuml-8039/src/gen/plugin/core/gvrender_core_map__c.java --- plantuml-8024/src/gen/plugin/core/gvrender_core_map__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/core/gvrender_core_map__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,384 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.core; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvrender_core_map__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + + + +//3 csv3l33vvs1vebcphye24jq0f +// static void map_output_shape (GVJ_t *job, map_shape_t map_shape, pointf * AF, int nump, char* url, char *tooltip, char *target, char *id) +public static Object map_output_shape(Object... arg) { +UNSUPPORTED("8kf7pfh75y963yumtk9b9z3ys"); // static void map_output_shape (GVJ_t *job, map_shape_t map_shape, pointf * AF, int nump, +UNSUPPORTED("bfj85pn6xenrvqizqe3wao6l7"); // char* url, char *tooltip, char *target, char *id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("4yzh52cxlcnx4kwijawrsiq93"); // static point *A; +UNSUPPORTED("ajll5vpeb8zhkx6ef6exlg0x"); // static int size_A; +UNSUPPORTED("1w53t40nspe671k7na03lhgrq"); // if (!AF || !nump) +UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return; +UNSUPPORTED("d68wemoq0y2k254bi7ibengwn"); // if (size_A < nump) { +UNSUPPORTED("7edr6xzvxhtgwcv3aqikccj9i"); // size_A = nump + 10; +UNSUPPORTED("497iml6bv2y1ybutiuoiszh1m"); // A = realloc(A, size_A * sizeof(point)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4v4y5eb8k5nr6qaau3ynqhvcq"); // for (i = 0; i < nump; i++) +UNSUPPORTED("cx0olmahgh2xwrv8z1bx82xm2"); // PF2P(AF[i], A[i]); +UNSUPPORTED("5i3rds5u46g9ststudzor9xt"); // if (job->render.id == FORMAT_IMAP && url && url[0]) { +UNSUPPORTED("2hz9rwf090vttuoibzu9fsw5q"); // switch (map_shape) { +UNSUPPORTED("9ny69tiwv0c1k92wg0f5bc2hx"); // case MAP_RECTANGLE: +UNSUPPORTED("3fnbb8my11ctfv54p20sjx95u"); // /* Y_GOES_DOWN so need UL to LR */ +UNSUPPORTED("13myxcrwgvjfs7vqhn41gptdg"); // gvprintf(job, "rect %s %d,%d %d,%d\n", url, +UNSUPPORTED("apxbzz2r91p4jj1fzpftrnwll"); // A[0].x, A[1].y, A[1].x, A[0].y); +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("969pm8kka9j9ajn1lpb3q0e7f"); // case MAP_CIRCLE: +UNSUPPORTED("1f8q1mvrhrf0asqye0b30as1n"); // gvprintf(job, "circle %s %d,%d,%d\n", url, +UNSUPPORTED("e8ycnkoqzmazghue74s8t4ods"); // A[0].x, A[0].y, A[1].x-A[0].x); +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("clptlh6vuwx7mynynpacj0ktl"); // case MAP_POLYGON: +UNSUPPORTED("8fgyk7ask8my1kx2al65iaaje"); // gvprintf(job, "poly %s", url); +UNSUPPORTED("d0fj0wck6hjqyxoodtze7797f"); // for (i = 0; i < nump; i++) +UNSUPPORTED("d0b7gixn87mqrfgw7cfdyuj9h"); // gvprintf(job, " %d,%d", A[i].x, A[i].y); +UNSUPPORTED("5uq09elejy2ot3s8x5d13dxs9"); // gvputs(job, "\n"); +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("p0mt8wznalavjdm44ot4ykl7"); // default: +UNSUPPORTED("1hh9o1t0fynw7ejmjny7gevig"); // assert(0); +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("d3576y606phfrc0nvil7m7j14"); // } else if (job->render.id == FORMAT_ISMAP && url && url[0]) { +UNSUPPORTED("2hz9rwf090vttuoibzu9fsw5q"); // switch (map_shape) { +UNSUPPORTED("9ny69tiwv0c1k92wg0f5bc2hx"); // case MAP_RECTANGLE: +UNSUPPORTED("3fnbb8my11ctfv54p20sjx95u"); // /* Y_GOES_DOWN so need UL to LR */ +UNSUPPORTED("4cujqj1wxkt2prhfpa93ocz33"); // gvprintf(job, "rectangle (%d,%d) (%d,%d) %s %s\n", +UNSUPPORTED("b0bipjx63l5bwm4ur9r16oddw"); // A[0].x, A[1].y, A[1].x, A[0].y, url, tooltip); +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("p0mt8wznalavjdm44ot4ykl7"); // default: +UNSUPPORTED("1hh9o1t0fynw7ejmjny7gevig"); // assert(0); +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("f271g0t382wvokvh5b79gnj3c"); // } else if (job->render.id == FORMAT_CMAP || job->render.id == FORMAT_CMAPX) { +UNSUPPORTED("2hz9rwf090vttuoibzu9fsw5q"); // switch (map_shape) { +UNSUPPORTED("969pm8kka9j9ajn1lpb3q0e7f"); // case MAP_CIRCLE: +UNSUPPORTED("apmt6zpnpwkhkathi0qvmwxok"); // gvputs(job, "render.id == FORMAT_CMAPX) +UNSUPPORTED("9wuepleq2yxn1w8g9l2t5bv8n"); // gvputs(job, "\"/>\n"); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("8ljg9ari52ao59grstt68083c"); // gvputs(job, "\">\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ecfzje2iii2p83pu7a8oknudk +// static void map_begin_page(GVJ_t * job) +public static Object map_begin_page(Object... arg) { +UNSUPPORTED("51hmqgn59iqb0k30s7slug47h"); // static void map_begin_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("69opxqj69jbqthw7e5x8p71j0"); // switch (job->render.id) { +UNSUPPORTED("7txd1s74e7fla0b5ppbpj4e9m"); // case FORMAT_IMAP: +UNSUPPORTED("5qsnhnk2hikn4v5rngaesebru"); // gvputs(job, "base referer\n"); +UNSUPPORTED("bgwmnukjcck9eqoe70218t5sl"); // if (obj->url && obj->url[0]) { +UNSUPPORTED("5mfw77dfjvx7mortvgofrjffx"); // gvputs(job, "default "); +UNSUPPORTED("cmkzfcsqw6lcz4oeepg7r0ysr"); // gvputs(job, xml_string(obj->url)); +UNSUPPORTED("3wbqcj3wgh85ybkhw9jxfnqt5"); // gvputs(job, "\n"); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("azd5ozzc5h2655cjyqy5l6xdm"); // case FORMAT_ISMAP: +UNSUPPORTED("bgwmnukjcck9eqoe70218t5sl"); // if (obj->url && obj->url[0]) { +UNSUPPORTED("5mfw77dfjvx7mortvgofrjffx"); // gvputs(job, "default "); +UNSUPPORTED("cmkzfcsqw6lcz4oeepg7r0ysr"); // gvputs(job, xml_string(obj->url)); +UNSUPPORTED("6iupbw97yijdtdpg2bxm4syfu"); // gvputs(job, " "); +UNSUPPORTED("4ujbj52xrmo4jrufevyc1puvo"); // gvputs(job, xml_string(agnameof(obj->u.g))); +UNSUPPORTED("3wbqcj3wgh85ybkhw9jxfnqt5"); // gvputs(job, "\n"); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("t5h5je1zpt3u8ndyh15gdg9l"); // case FORMAT_CMAPX: +UNSUPPORTED("f34ya28ve4bvds8gp4exdfj56"); // s = xml_string(agnameof(obj->u.g)); +UNSUPPORTED("xrk4koadrppi4k4gs57d4h9m"); // gvputs(job, "\n"); +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4mrmum1lvc20st1t0ngkucbc4 +// static void map_end_page(GVJ_t * job) +public static Object map_end_page(Object... arg) { +UNSUPPORTED("em0rrlv2wa8t6mbr0f800q1n0"); // static void map_end_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("69opxqj69jbqthw7e5x8p71j0"); // switch (job->render.id) { +UNSUPPORTED("d2zsw3sbah6m5v82up3yiqu8w"); // case FORMAT_CMAP: +UNSUPPORTED("1l81rvjolrz0avoek7zv4ikn6"); // map_output_shape(job, obj->url_map_shape, +UNSUPPORTED("b1a3iatyrxuif1n4gqu0f8u5u"); // obj->url_map_p,obj->url_map_n, +UNSUPPORTED("av1tl9edbbm94up94c6rfx2tc"); // obj->url, obj->tooltip, obj->target, obj->id); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("t5h5je1zpt3u8ndyh15gdg9l"); // case FORMAT_CMAPX: +UNSUPPORTED("1l81rvjolrz0avoek7zv4ikn6"); // map_output_shape(job, obj->url_map_shape, +UNSUPPORTED("b1a3iatyrxuif1n4gqu0f8u5u"); // obj->url_map_p,obj->url_map_n, +UNSUPPORTED("av1tl9edbbm94up94c6rfx2tc"); // obj->url, obj->tooltip, obj->target, obj->id); +UNSUPPORTED("bli0vsh6dvw26mi7hr07pgrto"); // gvputs(job, "\n"); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6gah2kjnd3decve8krn1svbqb +// static void map_begin_anchor(GVJ_t * job, char *url, char *tooltip, char *target, char *id) +public static Object map_begin_anchor(Object... arg) { +UNSUPPORTED("5qn8yqjbqcyx0grv0yypccdy2"); // static void map_begin_anchor(GVJ_t * job, char *url, char *tooltip, char *target, char *id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("6s3igifxj8shhox656bdbx5pf"); // map_output_shape(job, obj->url_map_shape, +UNSUPPORTED("2clu43j15vr7y290qz69husnn"); // obj->url_map_p, obj->url_map_n, +UNSUPPORTED("6vqhbjy76o3uv1cptjwt6y45l"); // url, tooltip, target, id); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 aunc2bv7z37pgfwoea8pqzdw6 +// static gvrender_engine_t map_engine = + + +//1 1zilsb5vzp5hkz1bqy634l392 +// static gvrender_features_t render_features_map = + + +//1 bi57uhrsu8bhcnnl39xr27v97 +// static gvdevice_features_t device_features_map = + + +//1 3nksama0j9ayv22motim935v3 +// static gvdevice_features_t device_features_map_nopoly = + + +//1 zv8eak0r501gmnqu92pzr5x5 +// gvplugin_installed_t gvrender_map_types[] = + + +//1 97mwnp7oqdjce0xttnqhkq7t3 +// gvplugin_installed_t gvdevice_map_types[] = + + +} diff -Nru plantuml-8024/src/gen/plugin/core/gvrender_core_pic__c.java plantuml-8039/src/gen/plugin/core/gvrender_core_pic__c.java --- plantuml-8024/src/gen/plugin/core/gvrender_core_pic__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/core/gvrender_core_pic__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,850 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.core; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvrender_core_pic__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 bfefdbmxgotf4qqkevk6qvjfy +// static int BezierSubdivision = 10 + + +//1 8505t85skxggg0irl1tfmrgdy +// static int onetime = NOT(0) + + +//1 4xmsfk0yyzqo0cf2y9ajr36ty +// static double Fontscale + + +//1 dffduaq2lkvewi20yyl0idqlq +// static const char *EscComment = + + +//1 1u8ij16cx26ycd5fobsl8g2di +// static const char picgen_msghdr[] = + + + + +//3 ayos3jxehp1ztek0fzcl358ep +// static void unsupported(char *s) +public static Object unsupported(Object... arg) { +UNSUPPORTED("7088si6a7r2vno19b32uo8410"); // static void unsupported(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bf1fgr4hqu10lh6v19a4jkjgv"); // agerr(AGWARN, "%s%s unsupported\n", picgen_msghdr, s); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 caqxhmpta2lx5mq13dxzj2u8x +// static void warn(char *s) +public static Object warn(Object... arg) { +UNSUPPORTED("eeixovji04zzi8o9wfp7t9t7o"); // static void warn(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("w0ej7p9v7ag2pzzics45jb9x"); // agerr(AGWARN, "%s%s\n", picgen_msghdr, s); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 554f31iuqyl7u1zcf17z53d5d +// static fontinfo fonttab[] = + + + + +//3 8rp81pt8d1m62r13763vzqa4x +// static char *picfontname(char *psname) +public static Object picfontname(Object... arg) { +UNSUPPORTED("3cgi3bkyyuwjkob8wjbv3j9jb"); // static char *picfontname(char *psname) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ehyq61leulhsbvzo34gv4br20"); // char *rv; +UNSUPPORTED("ddbhwe6t3q29agh7a7xgastxx"); // fontinfo *p; +UNSUPPORTED("1quze5gak9fidti4u2gpcgauq"); // for (p = fonttab; p->psname; p++) +UNSUPPORTED("2d2432dtxx1g5wbcjejux4jqi"); // if (strcmp(p->psname, psname) == 0) +UNSUPPORTED("dtx9szdvwh3uhziubh9zvgbk5"); // break; +UNSUPPORTED("epo8hgm34vxye7ud1qqax9ilb"); // if (p->psname) +UNSUPPORTED("kyhn9y1x9lm133bxfmj4bwek"); // rv = p->trname; +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("k08w7t9x1k6guv6vfivs4v2s"); // agerr(AGERR, "%s%s is not a troff font\n", picgen_msghdr, psname); +UNSUPPORTED("6ulxsks045sya9n5eia1i7ddp"); // /* try base font names, e.g. Helvetica-Outline-Oblique -> Helvetica-Outline -> Helvetica */ +UNSUPPORTED("72ll8tnxnsj2tpmxl5khlayu0"); // if ((rv = strrchr(psname, '-'))) { +UNSUPPORTED("btt8svsoi3k8j99f4n3rlc843"); // *rv = '\0'; /* psname is not specified as const ... */ +UNSUPPORTED("aa0y2bm93qvnsy4kdck9f1f2a"); // rv = picfontname(psname); +UNSUPPORTED("59zykg2pjkae9ritp3zmr9eeo"); // } else +UNSUPPORTED("5zdgc0gkiq6npy5xb86pim6b7"); // rv = "R"; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 wa4nhto9uu4kuly7ppruahop +// static void pic_set_color(GVJ_t *job, char *name) +public static Object pic_set_color(Object... arg) { +UNSUPPORTED("64zybybdqdszgcglznula2i6f"); // static void pic_set_color(GVJ_t *job, char *name) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dicmblysf3rxg5j4drimtm362"); // gvcolor_t color; +UNSUPPORTED("e5viuqy4awhjy9yfqag7onhm1"); // colorxlate(name, &color, HSVA_DOUBLE); +UNSUPPORTED("baelh9sxxexicjnrlbx7vdyb4"); // /* just v used to set grayscale value */ +UNSUPPORTED("er4wz5rvcluf3o1z6qwlatuzh"); // gvprintf(job, "setfillval %f\n", color.u.HSVA[2]); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c5pyghjxe3qfm0n6mgm79rdlm +// static void pic_set_style(GVJ_t *job, char **s) +public static Object pic_set_style(Object... arg) { +UNSUPPORTED("96wpaw44vdacs0vh6jgoj4tz6"); // static void pic_set_style(GVJ_t *job, char **s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("balwwj76p8kmfix80qmjiugl4"); // const char *line, *p; +UNSUPPORTED("cs3d00usngkaxu4kgv7kkyckp"); // char skip = 0; +UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ]; +UNSUPPORTED("32ofqlv8xfhdrh1ooiw235kv6"); // buf[0] = '\0'; +UNSUPPORTED("6xleu4rgsqy1817r9he4r47b0"); // gvprintf(job, "define attrs%d %%", 0); +UNSUPPORTED("1azyqxax8ahnngehbhvuqt8gz"); // while ((p = line = *s++)) { +UNSUPPORTED("59gu8gjy0gkpkkgmy7w3c6hz8"); // while (*p) +UNSUPPORTED("a0t85lvr3qdf70ajg30c8eadd"); // p++; +UNSUPPORTED("5ms90gds9d7jyok5oqzrumfjz"); // p++; +UNSUPPORTED("8tvf313utqfv0v9axl6r3wlkl"); // while (*p) { +UNSUPPORTED("cf7nujm2cqcn2a02hkvyf1mvw"); // if (!strcmp(line, "setlinewidth")) { /* a hack to handle the user-defined (PS) style spec in proc3d.gv */ +UNSUPPORTED("ai5a1136garr7covbnxk6pyxr"); // long n = atol(p); +UNSUPPORTED("16jrsjmpt5dozkg3fowz598p1"); // sprintf(buf, +UNSUPPORTED("1nvkg4g1u8xahxfewtp3c722z"); // "oldlinethick = linethick;linethick = %ld * scalethickness / %.0f\n", +UNSUPPORTED("eg7jvgq9596hgaq35cxgye91g"); // n, Fontscale); +UNSUPPORTED("5kcdmo80e6cptkdn6zgvgxf81"); // skip = 1; +UNSUPPORTED("8983k01wuaibmqpm7x4605bp7"); // } else +UNSUPPORTED("2fvo48a0txnpmru0ceovu13vm"); // gvprintf(job, " %s", p); +UNSUPPORTED("bc3tgg2q6b0su4mo7wfruc1lb"); // while (*p) +UNSUPPORTED("9qg60ras48o8da5tv4x27825z"); // p++; +UNSUPPORTED("a0t85lvr3qdf70ajg30c8eadd"); // p++; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("26drzkow7ea1ue7a2odilltn8"); // if (!skip) +UNSUPPORTED("32d5j591dz6q8zd5wzds7vbrw"); // gvprintf(job, " %s", line); +UNSUPPORTED("v8fuj86tc7ilar46z8lk0ou9"); // skip = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3n37k03ptdiq5ledify5lcl9w"); // gvprintf(job, " %%\n"); +UNSUPPORTED("7bnv6h5iccaz38t7o7b8u1dlh"); // gvprintf(job, "%s", buf); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 48ntim1de294utfi4bxsk074i +// static void picptarray(GVJ_t *job, pointf * A, int n, int close) +public static Object picptarray(Object... arg) { +UNSUPPORTED("bmccbawo91lbcivkwyf8vc4hg"); // static void picptarray(GVJ_t *job, pointf * A, int n, int close) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("41nrdsugvfgw23s93g0dhizkn"); // point p; +UNSUPPORTED("1vi49g48u2rc9v88yhabta0yw"); // for (i = 0; i < n; i++) { +UNSUPPORTED("4pvmqbw3yqtv1skjcmzaxzz1j"); // PF2P(A[i],p); +UNSUPPORTED("9l156bri4abd87e44n6ponvf7"); // gvprintf(job, " %d %d", p.x, p.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("125u8ocmya1ui6f2vy92ys41c"); // if (close) { +UNSUPPORTED("3nww6192gmqzcyq5v0whqebqg"); // PF2P(A[0],p); +UNSUPPORTED("9l156bri4abd87e44n6ponvf7"); // gvprintf(job, " %d %d", p.x, p.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b7eafy5bhxn361xe2c8x8553b"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6ijginogo45k3r7evz06wou90 +// static char *pic_string(char *s) +public static Object pic_string(Object... arg) { +UNSUPPORTED("dw9uiu4spxd1twnomgmszil97"); // static char *pic_string(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("210phh7av8ei8ajjmpptx96m6"); // static char *buf = NULL; +UNSUPPORTED("6fpm1wk8mz0hofn15361g6nzn"); // static int bufsize = 0; +UNSUPPORTED("3xzujk207ipx0d60nbbrwyjez"); // int pos = 0; +UNSUPPORTED("aexhdud6z2wbwwi73yppp0ynl"); // char *p; +UNSUPPORTED("10sir32iwi5l2jyfgp65pihto"); // unsigned char c; +UNSUPPORTED("cjyiejw67ffjjsk60tgeebvif"); // if (!buf) { +UNSUPPORTED("7mna7k5m37x6jycc55rpeeje8"); // bufsize = 64; +UNSUPPORTED("ep0onxumq5jdi6uy8gbmbmcbb"); // buf = malloc(bufsize * sizeof(char)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dpfzdhkfq6u86uv5f9lnqfbpq"); // p = buf; +UNSUPPORTED("c5ryg6x0ohski7pfyjfenou9s"); // while ((c = *s++)) { +UNSUPPORTED("9zdb3w6p9hdzpyyb0migch83s"); // if (pos > (bufsize - 8)) { +UNSUPPORTED("6e6hti39a4qgpg5w8s3kln578"); // bufsize *= 2; +UNSUPPORTED("5ws50ei3kkqkw4ut1rt6a53bm"); // buf = realloc(buf, bufsize * sizeof(char)); +UNSUPPORTED("7bji4miupgafja2y29safeneg"); // p = buf + pos; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("19kfsb89ftcmo72ye73cn1plm"); // if (isascii(c)) { +UNSUPPORTED("q0pniw6fxx771jygciq7vzx8"); // if (c == '\\') { +UNSUPPORTED("et6mc0jzry6p7o1acim2wudi9"); // *p++ = '\\'; +UNSUPPORTED("e2z9y4j5uutkew1vp7bi9rhl4"); // pos++; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("a9lw77m0m78a5a98c3vho52nx"); // *p++ = c; +UNSUPPORTED("80sypvk9gmir13zzfmeeey8ri"); // pos++; +UNSUPPORTED("7g575y36b78djy0o00izqx7eq"); // } else { +UNSUPPORTED("9x6j5mtq8ejbmg0m64b60ml"); // *p++ = '\\'; +UNSUPPORTED("dev643k7td5xqer5x35ldenoh"); // sprintf(p, "%03o", c); +UNSUPPORTED("5xg21ei3admmdqgn97zgseutd"); // p += 3; +UNSUPPORTED("8sk7u4qhds42x15qm3hujzttc"); // pos += 4; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2t1d66kwn86kqh0i665hqw6cl"); // *p = '\0'; +UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 18gvpecdvza39yoravsxzyqgm +// static int picColorResolve(int *new, int r, int g, int b) +public static Object picColorResolve(Object... arg) { +UNSUPPORTED("50j17slpkgnb1ezx64xqzce87"); // static int picColorResolve(int *new, int r, int g, int b) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c2sddndcjmau5tt4mtu64l1ez"); // static int top = 0; +UNSUPPORTED("bnrhaqz49cielpy7fgo6dz2ub"); // static short red[256], green[256], blue[256]; +UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c; +UNSUPPORTED("5hsogcx940isfoos26t853z9j"); // int ct = -1; +UNSUPPORTED("4nf4ocdnzdty5edptkslzgrhc"); // long rd, gd, bd, dist; +UNSUPPORTED("b9jn6a9ked66uo0b0um0kfzfb"); // long mindist = 3 * 255 * 255; /* init to max poss dist */ +UNSUPPORTED("c5tawsm7j8n0vkq0qcls0soc3"); // *new = 0; /* in case it is not a new color */ +UNSUPPORTED("39bm5fhhzyquf4rlun9zbcbi4"); // for (c = 0; c < top; c++) { +UNSUPPORTED("6412n3rfkfyimbx1puriyeqqz"); // rd = (long) (red[c] - r); +UNSUPPORTED("amn29e9pu9d8t9ccunm7fn20f"); // gd = (long) (green[c] - g); +UNSUPPORTED("1qvtyk7n5kdkzxz8gi0t6sl7m"); // bd = (long) (blue[c] - b); +UNSUPPORTED("5awh60zjinxyaizmnt7bcnsgo"); // dist = rd * rd + gd * gd + bd * bd; +UNSUPPORTED("72niuav6m4ahb9zc0o87j3rup"); // if (dist < mindist) { +UNSUPPORTED("45pwtf48ibwznp83ycluh93rj"); // if (dist == 0) +UNSUPPORTED("39io4oxurhajbqm5r7elzwd3g"); // return c; /* Return exact match color */ +UNSUPPORTED("9ctfnrqq05xpz8c2upf35fhfw"); // mindist = dist; +UNSUPPORTED("2b2qywvsce8xntf2r51qyo3lz"); // ct = c; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("92ga17xtfz92ju9egrpkatfx5"); // /* no exact match. We now know closest, but first try to allocate exact */ +UNSUPPORTED("5ovv0tkjil1wqwcyc3cvzxgha"); // if (top++ == 256) +UNSUPPORTED("1qskgh83m3zps1l8d7o3ylo8g"); // return ct; /* Return closest available color */ +UNSUPPORTED("7lij9fxsovvuk0nh18y6qq0cr"); // red[c] = r; +UNSUPPORTED("7uavxrqaipwwg1svkkt5e6gon"); // green[c] = g; +UNSUPPORTED("eew689jpibm80nsjrhdscvx6g"); // blue[c] = b; +UNSUPPORTED("4ocisp2giicxopfp4qg90x7u9"); // *new = 1; /* flag new color */ +UNSUPPORTED("264d1dm29x04zyyqjdk3ddnl5"); // return c; /* Return newly allocated color */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ct81u9217meiyte0vlkysz69d +// static void pic_line_style(obj_state_t *obj, int *line_style, double *style_val) +public static Object pic_line_style(Object... arg) { +UNSUPPORTED("7vmwghtuxdgpvfbhfzdv2z1xm"); // static void pic_line_style(obj_state_t *obj, int *line_style, double *style_val) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1a0u5t2wyxdqipaswmaz0wsvz"); // switch (obj->pen) { +UNSUPPORTED("ersst7rw166izs2gaqp8nna81"); // case PEN_DASHED: +UNSUPPORTED("2anynsrc9mionezyitu3h8ust"); // *line_style = 1; +UNSUPPORTED("13xgbwsnirhzzkr4rhxlssp80"); // *style_val = 10.; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("5u2fwmkidl1tehl5ms86n9ior"); // case PEN_DOTTED: +UNSUPPORTED("6w3l2bm01hn2c597o758rnjdd"); // *line_style = 2; +UNSUPPORTED("13xgbwsnirhzzkr4rhxlssp80"); // *style_val = 10.; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("f0tv0x0m7ey5lru9fd0f8d6zq"); // case PEN_SOLID: +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("d8wx5390c9r0unl07858cm345"); // *line_style = 0; +UNSUPPORTED("3eu0slevfiogpisxlbf0y2b5m"); // *style_val = 0.; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7y7rby3rupqrhq7ae1qveool3 +// static void pic_comment(GVJ_t *job, char *str) +public static Object pic_comment(Object... arg) { +UNSUPPORTED("bfsgdr1g2hvv18xxk5d8ghv5v"); // static void pic_comment(GVJ_t *job, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8h60idnupi1k47ro0clunyh5q"); // gvprintf(job, "%s %s\n", EscComment, str); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 38dpgquwrcip8qpihgqze85vh +// static void pic_begin_graph(GVJ_t * job) +public static Object pic_begin_graph(Object... arg) { +UNSUPPORTED("4fvhhvcs3op3q4yyanzl48yik"); // static void pic_begin_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("dcigebmf6s6f51j4m9qa6yymj"); // gvprintf(job, "%s Creator: %s version %s (%s)\n", +UNSUPPORTED("5998iss16ljg5pzhhht19mmwr"); // EscComment, job->common->info[0], job->common->info[1], job->common->info[2]); +UNSUPPORTED("equqpxkstjemlzo2j1dd344zl"); // gvprintf(job, "%s Title: %s\n", EscComment, agnameof(obj->u.g)); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("7ktvkleeg0xcthzjlfhuhmzhl"); // "%s save point size and font\n.nr .S \\n(.s\n.nr DF \\n(.f\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 cj0z02tehuufzejuqii6uk31t +// static void pic_end_graph(GVJ_t * job) +public static Object pic_end_graph(Object... arg) { +UNSUPPORTED("8n0jembcnqf86g3lkgvtafy41"); // static void pic_end_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("f2kfkuj6972o4mzg4g2s5v725"); // "%s restore point size and font\n.ps \\n(.S\n.ft \\n(DF\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4efot5904qdgxwian7og8s7yz +// static void pic_begin_page(GVJ_t * job) +public static Object pic_begin_page(Object... arg) { +UNSUPPORTED("59k0cacsr6yc1k00zy49jcoha"); // static void pic_begin_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("76g96x1rehn6s0a72jz2no0bi"); // box pbr = job->pageBoundingBox; +UNSUPPORTED("2b2vsocq8sefpglko8y2rk3za"); // double height, width; +UNSUPPORTED("m5wp5531idyj44zub1521718"); // if (onetime && job->rotation && (job->rotation != 90)) { +UNSUPPORTED("4bqo9fs7mwf1m4oohl243dc7g"); // unsupported("rotation"); +UNSUPPORTED("6d9vivazko02yncki54y6wxr0"); // onetime = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("3qzghrup4vwvnoamerwu2xyju"); // height = (((double)(pbr.UR.y) -(double)(pbr.LL.y))/(double)72); +UNSUPPORTED("7gvykkmmv8bjpav4giilxkevx"); // width = (((double)(pbr.UR.x) -(double)(pbr.LL.x))/(double)72); +UNSUPPORTED("cipcm9rjowjd96dkcyfo6kj26"); // if (job->rotation == 90) { +UNSUPPORTED("b0dr2avp0yfrvx3x6lo32hcc9"); // double temp = width; +UNSUPPORTED("4ayhsbggju2dkkm9haen3dcuj"); // width = height; +UNSUPPORTED("vjy6msvtpf98lv27ygdmc3an"); // height = temp; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("brwmt6ymnb9j9k57fp6dwx0z1"); // gvprintf(job, ".PS %.5f %.5f\n", width, height); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("4xv98dzt9da1iwfbed3qzbz51"); // "%s to change drawing size, multiply the width and height on the .PS line above and the number on the two lines below (rounded to the nearest integer) by a scale factor\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("cvyjdl3qzdzycj7001kaj2al3"); // if (width > 0.0) { +UNSUPPORTED("8qqxw44yvv1gjotw76yaj9yiq"); // Fontscale = log10(width); +UNSUPPORTED("3gge74lntaihg4dvjhwv7oqhw"); // Fontscale += 3.0 - (int) Fontscale; /* between 3.0 and 4.0 */ +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("hjzl5l4sn9hwtlrmk9lvsx80"); // Fontscale = 3.0; +UNSUPPORTED("1otido4r7tr5suta2iikwypjq"); // Fontscale = pow(10.0, Fontscale); /* a power of 10 times width, between 1000 and 10000 */ +UNSUPPORTED("dpnhw47fss92k4dkrtrjk13ar"); // gvprintf(job, ".nr SF %.0f\nscalethickness = %.0f\n", Fontscale, +UNSUPPORTED("2eilbgmfjnjynn65kgq9ridff"); // Fontscale); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("dfbnxc3d0zif5ki61u2qhpi0u"); // "%s don't change anything below this line in this drawing\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("4q8frt9vf2a38v6cjjeow3hhv"); // "%s non-fatal run-time pic version determination, version 2\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("dc09zp41jpx1ar2yhyc3alm6p"); // "boxrad=2.0 %s will be reset to 0.0 by gpic only\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("87vg3zmzozd5n9v73rd4rorjp"); // gvprintf(job, "scale=1.0 %s required for comparisons\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("fb2hg6vh04qtr5rds817ytzw"); // "%s boxrad is now 0.0 in gpic, else it remains 2.0\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("907w2hhexounybm744hrqew70"); // "%s dashwid is 0.1 in 10th Edition, 0.05 in DWB 2 and in gpic\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("b9scmygr8ue1db38lhe0ugf74"); // "%s fillval is 0.3 in 10th Edition (fill 0 means black), 0.5 in gpic (fill 0 means white), undefined in DWB 2\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("3q4puqndbhga2mrwvj5w2j7ss"); // "%s fill has no meaning in DWB 2, gpic can use fill or filled, 10th Edition uses fill only\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("a3x53q93b4sksa7vee61vtsls"); // "%s DWB 2 doesn't use fill and doesn't define fillval\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("cglsqpq97ek5itbkjjzdm0w8k"); // "%s reset works in gpic and 10th edition, but isn't defined in DWB 2\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("6vzczz8vf0wqmrionyd7tqda8"); // gvprintf(job, "%s DWB 2 compatibility definitions\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("ce0em94lu4t3pt85r2za9mvf2"); // "if boxrad > 1.0 && dashwid < 0.075 then X\n\tfillval = 1;\n\tdefine fill Y Y;\n\tdefine solid Y Y;\n\tdefine reset Y scale=1.0 Y;\nX\n"); +UNSUPPORTED("dq09jmz8i5yv8jt3stebgbyqd"); // gvprintf(job, "reset %s set to known state\n", EscComment); +UNSUPPORTED("dph08fr8e18senfvv4uvyofo6"); // gvprintf(job, "%s GNU pic vs. 10th Edition d\\(e'tente\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("dqdtm7xiklcacg5om9np226lc"); // "if fillval > 0.4 then X\n\tdefine setfillval Y fillval = 1 - Y;\n\tdefine bold Y thickness 2 Y;\n"); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("18lex7q6g1l8eu6dnpt343s2e"); // "\t%s if you use gpic and it barfs on encountering \"solid\",\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("5ik7ebm2ec8itf29vezxtz2dd"); // "\t%s\tinstall a more recent version of gpic or switch to DWB or 10th Edition pic;\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("3y2bp6wbvp7p7lfnqdb8643gt"); // "\t%s\tsorry, the groff folks changed gpic; send any complaint to them;\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("bjxixh8i6komlukzxuq6bzuxm"); // "X else Z\n\tdefine setfillval Y fillval = Y;\n\tdefine bold Y Y;\n\tdefine filled Y fill Y;\nZ\n"); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("1etnf378bbiv7frkkx646nc6x"); // "%s arrowhead has no meaning in DWB 2, arrowhead = 7 makes filled arrowheads in gpic and in 10th Edition\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("dypqrdzmizcvbpx12mt4t7n5t"); // "%s arrowhead is undefined in DWB 2, initially 1 in gpic, 2 in 10th Edition\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("2laq9xrgobmth8qhrini8rhsi"); // gvprintf(job, "arrowhead = 7 %s not used by graphviz\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("avkzkz4i40ucrl9ssi3p6pyo5"); // "%s GNU pic supports a boxrad variable to draw boxes with rounded corners; DWB and 10th Ed. do not\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("2oi2oo2n1kmide3fp6c7nidfb"); // gvprintf(job, "boxrad = 0 %s no rounded corners in graphviz\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("aa64gd28t5mwmg704oordujc5"); // "%s GNU pic supports a linethick variable to set line thickness; DWB and 10th Ed. do not\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("53sr2p9jkfa612b87p2yb66sq"); // gvprintf(job, "linethick = 0; oldlinethick = linethick\n"); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("db9i2enfon83i8aia8hn3nz90"); // "%s .PS w/o args causes GNU pic to scale drawing to fit 8.5x11 paper; DWB does not\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("3a8pqeqq1melrwpx86klp29z7"); // "%s maxpsht and maxpswid have no meaning in DWB 2.0, set page boundaries in gpic and in 10th Edition\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("3z8mzj59f8c2eyp4tue6ey7yc"); // "%s maxpsht and maxpswid are predefined to 11.0 and 8.5 in gpic\n", +UNSUPPORTED("4eth1b45y2w7jpem9jkc8sblp"); // EscComment); +UNSUPPORTED("e3g7qqt4wwzno1yygiv98l5o9"); // gvprintf(job, "maxpsht = %f\nmaxpswid = %f\n", height, width); +UNSUPPORTED("5ju4jha3xnti1j2ieoce0qmdf"); // gvprintf(job, "Dot: [\n"); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("eynntob2c9h5peks987ekrzym"); // "define attrs0 %% %%; define unfilled %% %%; define rounded %% %%; define diagonals %% %%\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6nt6zbbo643w8j7t009y2v5bm +// static void pic_end_page(GVJ_t * job) +public static Object pic_end_page(Object... arg) { +UNSUPPORTED("c239lltddwrudapv2a7xxlxga"); // static void pic_end_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("2teal9uw4ezwoi03qufhfiwlq"); // "]\n.PE\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d9e0jepdo8c58ajdoxng9e1h5 +// static void pic_textspan(GVJ_t * job, pointf p, textspan_t * span) +public static Object pic_textspan(Object... arg) { +UNSUPPORTED("cauh218qle2ae9yjf61ud9p2r"); // static void pic_textspan(GVJ_t * job, pointf p, textspan_t * span) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2z4ulhebckee70a2cyx0dq01k"); // static char *lastname; +UNSUPPORTED("begkqws1spfd955d0kagsh1jc"); // static int lastsize; +UNSUPPORTED("bpt627vzs0r1tzo7jgpyjdssp"); // int sz; +UNSUPPORTED("bpqxh9mig0sh1gasrlkg6hbph"); // switch (span->just) { +UNSUPPORTED("b1mhc3reptgjo2p3hwaxyqgfu"); // case 'l': +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("estx9pvff1tn1neki26jky2py"); // case 'r': +UNSUPPORTED("lzwxwwf5wl644m2hvx2zioue"); // p.x -= span->size.x; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("bb1f2erxhc1jxdi9awn26znil"); // case 'n': +UNSUPPORTED("6tzmt862u12ecdvt2d00dk679"); // p.x -= span->size.x / 2; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("4wr1p5fnqbdu0f5yq4dxvlir6"); // /* Why on earth would we do this. But it works. SCN 2/26/2002 */ +UNSUPPORTED("d421di00t94nr476ghy7h70n3"); // p.y += span->font->size / (3.0 * 72); +UNSUPPORTED("ee4w493wyhc900xnxk58kqlin"); // p.x += span->size.x / (2.0 * 72); +UNSUPPORTED("cmznyqe6zlkta59u4wlkwm0b6"); // if (span->font->name && (!(lastname) || strcmp(lastname, span->font->name))) { +UNSUPPORTED("4mtb7uml2hzvmd5f3v4vak5ta"); // gvprintf(job, ".ft %s\n", picfontname(span->font->name)); +UNSUPPORTED("7hlu4ruvtzkys6hdg160ghzq4"); // lastname = span->font->name; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1cwn7rsimk721vf93302dq6l3"); // if ((sz = (int)span->font->size) < 1); +UNSUPPORTED("8nr9q999sn2bf0neqzuypuipz"); // sz = 1; +UNSUPPORTED("3nh3xkjixssc69c7r9h07udba"); // if (sz != lastsize) { +UNSUPPORTED("7ve9efsns80c8bp56ezays3c5"); // gvprintf(job, ".ps %d*\\n(SFu/%.0fu\n", sz, Fontscale); +UNSUPPORTED("ar7ezodtm533ndxpfoz661cp9"); // lastsize = sz; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("cpdm8yivurrmx8ub86bpgs4vn"); // gvprintf(job, "\"%s\" at (%.5f,%.5f);\n", +UNSUPPORTED("5zts6obdghaq7mbeyq13bucln"); // pic_string(span->str), p.x, p.y); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3rlk5pvbfad7rr584hs87fbaa +// static void pic_ellipse(GVJ_t * job, pointf * A, int filled) +public static Object pic_ellipse(Object... arg) { +UNSUPPORTED("1v59z1y3qs6icmg9adsga165a"); // static void pic_ellipse(GVJ_t * job, pointf * A, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8tuvacxowvjyekfxkm6dgvp8f"); // /* A[] contains 2 points: the center and corner. */ +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("dwfvg3ih86afd5uzqvndt9ur4"); // "ellipse attrs%d %swid %.5f ht %.5f at (%.5f,%.5f);\n", 1, +UNSUPPORTED("457e4jaeiuoxhg7v340gy9rw4"); // filled ? "fill " : "", +UNSUPPORTED("cfsz2r42gzz2n7gz9o93odh4i"); // ((2*(A[1].x - A[0].x))/(double)72), +UNSUPPORTED("9mgg3lvutbvo26fsphghc4c"); // ((2*(A[1].y - A[0].y))/(double)72), +UNSUPPORTED("4hj3y2hq0474p3ghy1l4x0lxf"); // ((A[0].x)/(double)72), +UNSUPPORTED("6ccewir86nmmtromy3mivt1ao"); // ((A[0].y)/(double)72)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1sw3gedor8k03dnq5rspgqe0b +// static void pic_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, +public static Object pic_bezier(Object... arg) { +UNSUPPORTED("2mb1csja400u5qyc223ocy3me"); // static void pic_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, +UNSUPPORTED("aucu2oah5hsehslkm52zjqn3q"); // // start_y, end_x, end_y); +UNSUPPORTED("77j21vz8ekimnj6b6uefavtz2"); // int arrow_at_end, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("3slisz3umk8yx744ufnbbf50r"); // int object_code = 3; /* always 3 for spline */ +UNSUPPORTED("dg2m9953dx1s3kh2xh49cl6j9"); // int sub_type; +UNSUPPORTED("7yz13t0sqtqvzxyddzcozxe33"); // int line_style; /* solid, dotted, dashed */ +UNSUPPORTED("9pyxwz1r98uut10u02vkx6v1q"); // int thickness = obj->penwidth; +UNSUPPORTED("spi81120or5799hcfjb8itk6"); // int pen_color = obj->pencolor.u.index; +UNSUPPORTED("85qo3gmfwzm58xlqrukeg2vyr"); // int fill_color = obj->fillcolor.u.index; +UNSUPPORTED("4mqqliisakngnea1fbgw3n16w"); // int pen_style = 0; /* not used */ +UNSUPPORTED("cv6hsumgyv706zrsc1mb79vjt"); // int area_fill; +UNSUPPORTED("erg3jyrsg6mbllclii9gqtczn"); // double style_val; +UNSUPPORTED("at27yenlhsw2mhidnzh560qs7"); // int cap_style = 0; +UNSUPPORTED("6aehzky7l6ssu826xre37yhtt"); // int forward_arrow = 0; +UNSUPPORTED("cvrcowx9gwh8vdfgelcwxhrhq"); // int backward_arrow = 0; +UNSUPPORTED("cnai2dhmnp0nlkurdvfgcftzp"); // int npoints = n; +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("2ripxrfk1hjvzu0cnqlmtvz7q"); // pointf pf, V[4]; +UNSUPPORTED("41nrdsugvfgw23s93g0dhizkn"); // point p; +UNSUPPORTED("54a5cffl70pabwgya54wkrjdt"); // int j, step; +UNSUPPORTED("551funk1bxiemly3silcqtngw"); // int count = 0; +UNSUPPORTED("cav0e7ncloqss0hsvc4fyfi7s"); // int size; +UNSUPPORTED("6wvmmuf1e3qp2qoi1k1njw0a0"); // char *buffer; +UNSUPPORTED("6ik3p99apk5rihypipg0uxu8i"); // char *buf; +UNSUPPORTED("2oge79a1lz0azw1572k9culsm"); // buffer = +UNSUPPORTED("7ls09ukxgkos4a02570trbo11"); // malloc((npoints + 1) * (6 + +UNSUPPORTED("82a2b3l9tnp4wb4zntqluobrf"); // 1) * 20 * sizeof(char)); +UNSUPPORTED("3fe0hbpwq6bj9ioyuwkjdzyzz"); // buf = buffer; +UNSUPPORTED("e77xa6hsjckwgdadat7v55pl6"); // pic_line_style(obj, &line_style, &style_val); +UNSUPPORTED("9yhmhvzz81x2bovke5qc93036"); // if (filled) { +UNSUPPORTED("bj3webccz9d6zwkfor1wbs62"); // sub_type = 5; /* closed X-spline */ +UNSUPPORTED("7zcxl4upa7xx6c4i5y2x03nm8"); // area_fill = 20; /* fully saturated color */ +UNSUPPORTED("72p315i58kf1cm2zd3q0u8cn9"); // fill_color = job->obj->fillcolor.u.index; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("b42prafms4wcjet9oaqz2r9an"); // sub_type = 4; /* opened X-spline */ +UNSUPPORTED("e8seyevdqkm3o522h0kw3ofoo"); // area_fill = -1; +UNSUPPORTED("cnfp5y1qtuaq6rg9e86neg62e"); // fill_color = 0; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a5n7zezdexpwwfy12hsc5q41m"); // V[3].x = A[0].x; +UNSUPPORTED("3wrmg8m53mwjg50y22lcyblmg"); // V[3].y = A[0].y; +UNSUPPORTED("d4fw6y4mj6hshwm4fwoegfv1"); // /* Write first point in line */ +UNSUPPORTED("7ap9l0s2x29me32trtt38kph0"); // count++; +UNSUPPORTED("8hem85phuz76zejto4bkwovw1"); // PF2P(A[0], p); +UNSUPPORTED("73o6ys1pid2ocs41fxtzlcv8n"); // size = sprintf(buf, " %d %d", p.x, p.y); +UNSUPPORTED("1j1vfgxpkci66jmmmccgza2lm"); // buf += size; +UNSUPPORTED("a3w2dgd3a2dpgvb5n1a63c9ar"); // /* write subsequent points */ +UNSUPPORTED("3s0blwgctqa0ygs872bnu4kye"); // for (i = 0; i + 3 < n; i += 3) { +UNSUPPORTED("4a58elv5pvvi5twh4hrzzzj3d"); // V[0] = V[3]; +UNSUPPORTED("cr2c5h66bahjj7gd63bz4bhl7"); // for (j = 1; j <= 3; j++) { +UNSUPPORTED("d5p6lhssn8pxlfrjhmbm89neq"); // V[j].x = A[i + j].x; +UNSUPPORTED("aasvql7kiskb32j9te9gp5xif"); // V[j].y = A[i + j].y; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("afevm918v5rewrdihltcjtka7"); // for (step = 1; step <= 6; step++) { +UNSUPPORTED("cc15ym2418ncxwrvmrbf7d5fb"); // count++; +UNSUPPORTED("1maly6enkyv5xs410cfeocfo8"); // pf = Bezier (V, 3, (double) step / 6, NULL, NULL); +UNSUPPORTED("9hehuild0uke3e57cn1cu37d4"); // PF2P(pf, p); +UNSUPPORTED("dlhqn2sqdjrfl9iuem0x42sg7"); // size = sprintf(buf, " %d %d", p.x, p.y); +UNSUPPORTED("dc1iwkgf67a40ouxumqgp087o"); // buf += size; +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("adja5audqilxvakjhc4ffv918"); // // gvprintf(job, "%d %d %d %d %d %d %d %d %d %.1f %d %d %d %d\n", +UNSUPPORTED("6biruvlzylxqarkvvvk8f1kj1"); // // object_code, +UNSUPPORTED("1gvy5x6e4tb8y1t58ea5a9gbr"); // // sub_type, +UNSUPPORTED("3j51v7djf78may8pc7fqmbfu9"); // // line_style, +UNSUPPORTED("6qk3rwg8n74pfvc3t1l02mcbk"); // // thickness, +UNSUPPORTED("e4i6ly0erhqrn6l0sdh52e09w"); // // pen_color, +UNSUPPORTED("e6lb1qzdgn5b1xs9adtu5z1a2"); // // fill_color, +UNSUPPORTED("du7j3ee3lzjzintra1dpg14fx"); // // depth, +UNSUPPORTED("3k0iccc4zc3dcn6wva0b62aue"); // // pen_style, +UNSUPPORTED("3i8kq2rp9dnqrluiipxuw59tv"); // // area_fill, +UNSUPPORTED("4yigk5lhyfyre5v90resjpok8"); // // style_val, cap_style, forward_arrow, backward_arrow, count); +UNSUPPORTED("cqyleb6lm2k4okgz6yyfsnyvs"); // gvprintf(job, " %s\n", buffer); /* print points */ +UNSUPPORTED("2puk68crvxxdnxykmgd8hccpb"); // free(buffer); +UNSUPPORTED("880df02j7ml0ml3y149lcn5r0"); // for (i = 0; i < count; i++) { +UNSUPPORTED("aqnpclkffnis7si1mcldfnqzb"); // gvprintf(job, " %d", i % (count - 1) ? 1 : 0); /* -1 on all */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b7eafy5bhxn361xe2c8x8553b"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6vpufqet2cxqbjkd7b1oz5nqd +// static void pic_polygon(GVJ_t * job, pointf * A, int n, int filled) +public static Object pic_polygon(Object... arg) { +UNSUPPORTED("72rnzkq710hqh92i1k0acfd37"); // static void pic_polygon(GVJ_t * job, pointf * A, int n, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("1250jrnrnv2ts7w11no09s3c0"); // int object_code = 2; /* always 2 for polyline */ +UNSUPPORTED("1u7xi4usjz62x26cm8thbbuzf"); // int sub_type = 3; /* always 3 for polygon */ +UNSUPPORTED("7yz13t0sqtqvzxyddzcozxe33"); // int line_style; /* solid, dotted, dashed */ +UNSUPPORTED("9pyxwz1r98uut10u02vkx6v1q"); // int thickness = obj->penwidth; +UNSUPPORTED("spi81120or5799hcfjb8itk6"); // int pen_color = obj->pencolor.u.index; +UNSUPPORTED("85qo3gmfwzm58xlqrukeg2vyr"); // int fill_color = obj->fillcolor.u.index; +UNSUPPORTED("4mqqliisakngnea1fbgw3n16w"); // int pen_style = 0; /* not used */ +UNSUPPORTED("1rb7krh80rapa6zt9gze6d8y"); // int area_fill = filled ? 20 : -1; +UNSUPPORTED("erg3jyrsg6mbllclii9gqtczn"); // double style_val; +UNSUPPORTED("emk8vv370o9kkt54b48xbckqk"); // int join_style = 0; +UNSUPPORTED("at27yenlhsw2mhidnzh560qs7"); // int cap_style = 0; +UNSUPPORTED("5ah3zh0iiveyst5794k0axkys"); // int radius = 0; +UNSUPPORTED("6aehzky7l6ssu826xre37yhtt"); // int forward_arrow = 0; +UNSUPPORTED("cvrcowx9gwh8vdfgelcwxhrhq"); // int backward_arrow = 0; +UNSUPPORTED("b2q7ayijmq412v8tkb0p5a4xq"); // int npoints = n + 1; +UNSUPPORTED("e77xa6hsjckwgdadat7v55pl6"); // pic_line_style(obj, &line_style, &style_val); +UNSUPPORTED("5y46af2tm0pigzfxvxrfcb4lk"); // // gvprintf(job, +UNSUPPORTED("5jxusmce4v4hqmp46sfkrhqiu"); // // "%d %d %d %d %d %d %d %d %d %.1f %d %d %d %d %d %d\n", +UNSUPPORTED("9gl7rgac8iy5bwp4aik7fhxhm"); // // object_code, sub_type, line_style, thickness, pen_color, +UNSUPPORTED("f00qd9ts19m4zytpw9ul3nw86"); // // fill_color, depth, pen_style, area_fill, style_val, join_style, +UNSUPPORTED("6zilgzihyxax6qcclohoma171"); // // cap_style, radius, forward_arrow, backward_arrow, npoints); +UNSUPPORTED("bb2br2kig62zs308gqpx7dl6j"); // picptarray(job, A, n, 1); /* closed shape */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7rlxbmvn1s9o400xa6a47b3u0 +// static void pic_polyline(GVJ_t * job, pointf * A, int n) +public static Object pic_polyline(Object... arg) { +UNSUPPORTED("2ifmtbi7jzs4ziyl98lik2sln"); // static void pic_polyline(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("1250jrnrnv2ts7w11no09s3c0"); // int object_code = 2; /* always 2 for polyline */ +UNSUPPORTED("2xiuwyphr1m2pc2o9smsohpy7"); // int sub_type = 1; /* always 1 for polyline */ +UNSUPPORTED("7yz13t0sqtqvzxyddzcozxe33"); // int line_style; /* solid, dotted, dashed */ +UNSUPPORTED("9pyxwz1r98uut10u02vkx6v1q"); // int thickness = obj->penwidth; +UNSUPPORTED("spi81120or5799hcfjb8itk6"); // int pen_color = obj->pencolor.u.index; +UNSUPPORTED("afxyknafudgf6s6v5jw9qx8p9"); // int fill_color = 0; +UNSUPPORTED("4mqqliisakngnea1fbgw3n16w"); // int pen_style = 0; /* not used */ +UNSUPPORTED("1pvrunrk1ylb19scd5xzhf3lp"); // int area_fill = 0; +UNSUPPORTED("erg3jyrsg6mbllclii9gqtczn"); // double style_val; +UNSUPPORTED("emk8vv370o9kkt54b48xbckqk"); // int join_style = 0; +UNSUPPORTED("at27yenlhsw2mhidnzh560qs7"); // int cap_style = 0; +UNSUPPORTED("5ah3zh0iiveyst5794k0axkys"); // int radius = 0; +UNSUPPORTED("6aehzky7l6ssu826xre37yhtt"); // int forward_arrow = 0; +UNSUPPORTED("cvrcowx9gwh8vdfgelcwxhrhq"); // int backward_arrow = 0; +UNSUPPORTED("cnai2dhmnp0nlkurdvfgcftzp"); // int npoints = n; +UNSUPPORTED("e77xa6hsjckwgdadat7v55pl6"); // pic_line_style(obj, &line_style, &style_val); +UNSUPPORTED("5y46af2tm0pigzfxvxrfcb4lk"); // // gvprintf(job, +UNSUPPORTED("5jxusmce4v4hqmp46sfkrhqiu"); // // "%d %d %d %d %d %d %d %d %d %.1f %d %d %d %d %d %d\n", +UNSUPPORTED("9gl7rgac8iy5bwp4aik7fhxhm"); // // object_code, sub_type, line_style, thickness, pen_color, +UNSUPPORTED("f00qd9ts19m4zytpw9ul3nw86"); // // fill_color, depth, pen_style, area_fill, style_val, join_style, +UNSUPPORTED("6zilgzihyxax6qcclohoma171"); // // cap_style, radius, forward_arrow, backward_arrow, npoints); +UNSUPPORTED("aclk0i1g5h2w55leog4sbehnt"); // picptarray(job, A, n, 0); /* open shape */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 1qbgpljw1sasfxrm2urmq04xv +// gvrender_engine_t pic_engine = + + +//1 562akbmoglmbe4vhlm4vhgl7d +// static gvrender_features_t render_features_pic = + + +//1 brpaeygrxu0b0eyu2x62og81 +// static gvdevice_features_t device_features_pic = + + +//1 buvtiax25ah766ey9qhdtidlo +// gvplugin_installed_t gvrender_pic_types[] = + + +//1 3t0wgwjmiuh24ntyxb1zv6u5n +// gvplugin_installed_t gvdevice_pic_types[] = + + +} diff -Nru plantuml-8024/src/gen/plugin/core/gvrender_core_pov__c.java plantuml-8039/src/gen/plugin/core/gvrender_core_pov__c.java --- plantuml-8024/src/gen/plugin/core/gvrender_core_pov__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/core/gvrender_core_pov__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,704 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.core; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvrender_core_pov__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 axr8iiqze4sowxdzhp5h67ccy +// static char *pov_knowncolors[] = + + +//1 1xn6uqvhqpp8aql9dt6qqh2z2 +// static float layerz = 0 + + +//1 bz4ial18k2hf5bfpuvztnf8tr +// static float z = 0 + + + + +//3 9vn87676zx3r2mmmw7rp52uyy +// char *el(GVJ_t* job, char *template, ...) +public static Object el(Object... arg) { +UNSUPPORTED("dr1ui1v7k7dfzi58sjrxnr8hq"); // char *el(GVJ_t* job, char *template, ...) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3bclex5rigeol6kpwga9nrp4o"); // /* Dummy function that will never be used */ +UNSUPPORTED("c65npejb203kqftvj9of8tg28"); // return strdup(""); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9pw2lre7mxb30qh6ob8oaebc2 +// static char *pov_color_as_str(GVJ_t * job, gvcolor_t color, float transparency) +public static Object pov_color_as_str(Object... arg) { +UNSUPPORTED("bl2yw1wd29bda0ivzrrgu9edn"); // static char *pov_color_as_str(GVJ_t * job, gvcolor_t color, float transparency) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ef8yz870ibkbk17ridydfygym"); // char *pov, *c; +UNSUPPORTED("5fmow7rd08qdpjro9ggko2axg"); // switch (color.type) { +UNSUPPORTED("3963t7kz3wj9jmr4b42bh0ikz"); // case COLOR_STRING: +UNSUPPORTED("4bi7a75t9gvcwhnm13jo31q8g"); // if (!strcmp(color.u.string, "red")) +UNSUPPORTED("eu9kml5h4p55xr8jdh2cccm3c"); // c = el(job, "%s transmit %.3f", "Red", transparency); +UNSUPPORTED("677fpercxitfukr8v78x2w5cb"); // else if (!strcmp(color.u.string, "green")) +UNSUPPORTED("1qiiwyqveadi00g1dvya9gofj"); // c = el(job, "%s transmit %.3f", "Green", transparency); +UNSUPPORTED("144n6nl0tohqej0icjdjh72sp"); // else if (!strcmp(color.u.string, "blue")) +UNSUPPORTED("6ysoqjit3c4036kfg992gdju"); // c = el(job, "%s transmit %.3f", "Blue", transparency); +UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else +UNSUPPORTED("5xvdf2fd67dqx75mdmvchi5ct"); // c = el(job, "%s transmit %.3f", color.u.string, transparency); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("4qyq5lb20pb6flw57yam37kot"); // case RGBA_BYTE: +UNSUPPORTED("5wxuremuazucr0f5jubhi97ms"); // c = el(job, "rgb""<%9.3f, %9.3f, %9.3f>"" transmit %.3f", +UNSUPPORTED("12zckwop92tdxv6dlv1vp0fbs"); // color.u.rgba[0] / 256.0, color.u.rgba[1] / 256.0, +UNSUPPORTED("3aw03ntnbxbvdxah2aeh3p24b"); // color.u.rgba[2] / 256.0, transparency); +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("18zn34qcs4vsdhhh831gn9vc9"); // fprintf(stderr, +UNSUPPORTED("4i3x2ar1txrydae0r4ejyuz6a"); // "oops, internal error: unhandled color type=%d %s\n", +UNSUPPORTED("11r7e8g9h9a5htgibzuoxopjl"); // color.type, color.u.string); +UNSUPPORTED("cgq902zwbdbdny3ekubc7rtwg"); // assert(0); //oops, wrong type set in gvrender_features_t? +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1umcnsvyiiij01szhjjwci3fw"); // pov = el(job, "pigment { color %s }\n", c); +UNSUPPORTED("5rfulyznntlt1olqapu82esby"); // free(c); +UNSUPPORTED("ec6nf0cxneh8g9w1p13kiy0dj"); // return pov; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 blyo0peeuj2vdpa4s7h40t882 +// static void pov_comment(GVJ_t * job, char *str) +public static Object pov_comment(Object... arg) { +UNSUPPORTED("5ny39zebhyjkf7c8wtacqvks9"); // static void pov_comment(GVJ_t * job, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ep887hrpmp4h57zbiq58d1fdl"); // gvprintf(job, "//*** comment: %s\n", str); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 19jx65sbu7mzdlbpobkqmkcm5 +// static void pov_begin_job(GVJ_t * job) +public static Object pov_begin_job(Object... arg) { +UNSUPPORTED("e7ucc8led9jhpy4503iyu1mx3"); // static void pov_begin_job(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ezi9hebxdhn31a8g77mjddcho"); // gvputs(job, "#version 3.6;\n"); +UNSUPPORTED("717tvalowegvfefto6nsu0ssr"); // gvputs(job, "global_settings { assumed_gamma 1.0 }\n"); +UNSUPPORTED("ambfxfnqqcqjwa371wi2xxa7j"); // gvputs(job, "#default { finish { ambient 0.1 diffuse 0.9 } }\n"); +UNSUPPORTED("2fr5g4jf2x5dkqy2rzur089sd"); // gvputs(job, "#include \"colors.inc\"\n" "#include \"textures.inc\"\n" "#include \"shapes.inc\"\n"); +UNSUPPORTED("3p0r7bbc28ao5qtxrbbv16p1v"); // gvprintf(job, "#declare %s = %s;\n", "black", "Black"); +UNSUPPORTED("bv59pn9i50oaiu2joqodi7v3m"); // gvprintf(job, "#declare %s = %s;\n", "white", "White"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2uod4qhdoe2sxk49g7jnnxej1 +// static void pov_begin_graph(GVJ_t * job) +public static Object pov_begin_graph(Object... arg) { +UNSUPPORTED("7r54iz4ovg2j1636jr02tb0fq"); // static void pov_begin_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("67e4xbpzccjioks12bk0w12s7"); // float x, y, d, px, py; +UNSUPPORTED("2np0pxewx2qr0hc4wvdsukjdi"); // gvprintf(job, "//*** begin_graph %s\n", agnameof(job->obj->u.g)); +UNSUPPORTED("4p6634f0ays00wyvz0jqew496"); // //setup scene +UNSUPPORTED("c6yotkg0ed9f75gui9axv2rob"); // x = job->view.x / 2.0 * job->scale.x; +UNSUPPORTED("2jqapjhabefytb0cnl8zra3c1"); // y = job->view.y / 2.0 * job->scale.y; +UNSUPPORTED("eepp86bbm9j6kz7yrj6bxm7rd"); // d = -500; +UNSUPPORTED("8cvhzu1hyz5hi8nkkdodtwn49"); // px = atanf(x / abs(d)) * 180 / M_PI * 2; +UNSUPPORTED("6rvfie6mwp4jpauy66s5ef9po"); // py = atanf(y / abs(d)) * 180 / M_PI * 2; +UNSUPPORTED("a5t124x5xel6027dgfcxkc1k0"); // gvprintf(job, "camera { location <%.3f , %.3f , %.3f>\n" " look_at <%.3f , %.3f , %.3f>\n" " right x * image_width / image_height\n" " angle %.3f\n" "}\n", x, y, d, x, y, 0.0, +UNSUPPORTED("f0y37qj1uxr9qkprkzpddptic"); // (px > py ? px : py) * 1.2); +UNSUPPORTED("4ejvtub36nhniqc8kx0q9ugcc"); // gvputs(job, "//sky\n" "plane { <0, 1, 0>, 1 hollow\n" " texture {\n" " pigment { bozo turbulence 0.95\n" " color_map {\n" " [0.00 rgb <0.05, 0.20, 0.50>]\n" " [0.50 rgb <0.05, 0.20, 0.50>]\n" " [0.75 rgb <1.00, 1.00, 1.00>]\n" " [0.75 rgb <0.25, 0.25, 0.25>]\n" " [1.00 rgb <0.50, 0.50, 0.50>]\n" " }\n" " scale <1.00, 1.00, 1.50> * 2.50\n" " translate <0.00, 0.00, 0.00>\n" " }\n" " finish { ambient 1 diffuse 0 }\n" " }\n" " scale 10000\n" "}\n" "//mist\n" "fog { fog_type 2\n" " distance 50\n" " color rgb <1.00, 1.00, 1.00> * 0.75\n" " fog_offset 0.10\n" " fog_alt 1.50\n" " turbulence 1.75\n" "}\n" "//gnd\n" "plane { <0.00, 1.00, 0.00>, 0\n" " texture {\n" " pigment{ color rgb <0.25, 0.45, 0.00> }\n" " normal { bumps 0.75 scale 0.01 }\n" " finish { phong 0.10 }\n" " }\n" "}\n"); +UNSUPPORTED("2wxid02webko3zekheejcp2ak"); // gvputs(job, "light_source { <1500,3000,-2500> color White }\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4i3fvchaaqy0lecs9urmfd8c9 +// static void pov_end_graph(GVJ_t * job) +public static Object pov_end_graph(Object... arg) { +UNSUPPORTED("a62y9av6or8p2emv2p63mc48t"); // static void pov_end_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1hga3nvp22vfl40enmsok6fol"); // gvputs(job, "//*** end_graph\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 e5tq67bjtp1mxou7ivnyjj96c +// static void pov_begin_layer(GVJ_t * job, char *layername, int layerNum, int numLayers) +public static Object pov_begin_layer(Object... arg) { +UNSUPPORTED("21l3qlfmtt9jj25ltili90086"); // static void pov_begin_layer(GVJ_t * job, char *layername, int layerNum, int numLayers) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6vxpb1gk8xxy3aeje3hukjj8f"); // gvprintf(job, "//*** begin_layer: %s, %d/%d\n", layername, layerNum, +UNSUPPORTED("3p7uxhm5ftq2vewm5vqpgyl52"); // numLayers); +UNSUPPORTED("7afht14wina8ef7t2obgzr53z"); // layerz = layerNum * -10; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6ot7jtlpa5ns5g8mrljucw73p +// static void pov_end_layer(GVJ_t * job) +public static Object pov_end_layer(Object... arg) { +UNSUPPORTED("msmg6mchcw6wk1hwzv4vfh9"); // static void pov_end_layer(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6wmd7mpzynz9r6txzhga6hseq"); // gvputs(job, "//*** end_layer\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4z4wr7z5q5tb2nw3y70re05w2 +// static void pov_begin_page(GVJ_t * job) +public static Object pov_begin_page(Object... arg) { +UNSUPPORTED("du0jdd44z91nfwdqe62phoc7c"); // static void pov_begin_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("jj3s1e88b3c3eeucmt9a2dl1"); // gvputs(job, "//*** begin_page\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6ort6jt20rg9fnad6wyg7pwor +// static void pov_end_page(GVJ_t * job) +public static Object pov_end_page(Object... arg) { +UNSUPPORTED("3rhzejrofrliwvfg22jrq09tg"); // static void pov_end_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cpbqx0fkzv5v1omdltbdfb03"); // gvputs(job, "//*** end_page\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6knkobsw1frd76zp1qw7z53rj +// static void pov_begin_cluster(GVJ_t * job) +public static Object pov_begin_cluster(Object... arg) { +UNSUPPORTED("2juyfkoz2kja04ue6gwra6vd8"); // static void pov_begin_cluster(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8g6u83xzr1yp6es8v82x6t712"); // gvputs(job, "//*** begin_cluster\n"); +UNSUPPORTED("6xzjyk7shpggapmx9msnltpor"); // layerz -= 2; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1so9pfvjq4zz182ufinyv9fv2 +// static void pov_end_cluster(GVJ_t * job) +public static Object pov_end_cluster(Object... arg) { +UNSUPPORTED("3vp8n8w4vn3uthzjzd0x0k41x"); // static void pov_end_cluster(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5n89byozotfig7g8ibo1gao3p"); // gvputs(job, "//*** end_cluster\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2p7ma5wim7eq25qp8gx7cocuq +// static void pov_begin_node(GVJ_t * job) +public static Object pov_begin_node(Object... arg) { +UNSUPPORTED("es06i47dskbixwwotieeyv5mr"); // static void pov_begin_node(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ez8i1j34mzm9in29mtx4b3v0"); // gvprintf(job, "//*** begin_node: %s\n", agnameof(job->obj->u.n)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4asyy6qwnihawoxqyey2uw0d5 +// static void pov_end_node(GVJ_t * job) +public static Object pov_end_node(Object... arg) { +UNSUPPORTED("6o3vlh6gnxvtq9jdzf2it0x1b"); // static void pov_end_node(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("cbfh6mmc1rbt7m9l9s9ypvdj7"); // gvputs(job, "//*** end_node\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3nnmi75q7dx9uhggg3eqsssez +// static void pov_begin_edge(GVJ_t * job) +public static Object pov_begin_edge(Object... arg) { +UNSUPPORTED("2z40r4qoltjdiqjwr1htt5bp4"); // static void pov_begin_edge(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("c6ba404gdc9z8520xq82tknvw"); // gvputs(job, "//*** begin_edge\n"); +UNSUPPORTED("b1i8thw6fnr132r6o719oly3i"); // layerz -= 5; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 67ua9o3fipl6vujo4osgu6pew +// static void pov_end_edge(GVJ_t * job) +public static Object pov_end_edge(Object... arg) { +UNSUPPORTED("6e3hav877emt1quzaldcem28y"); // static void pov_end_edge(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5n48qab4bxl9dxf8rgqw44ix2"); // gvputs(job, "//*** end_edge\n"); +UNSUPPORTED("dhvja5wqkslqorvosluq18fwn"); // layerz += 5; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dzgi67xn3f7g3qpvtluivy9b4 +// static void pov_textspan(GVJ_t * job, pointf c, textspan_t * span) +public static Object pov_textspan(Object... arg) { +UNSUPPORTED("da91j5br6qhlfr421zkx076tx"); // static void pov_textspan(GVJ_t * job, pointf c, textspan_t * span) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bhqtz42wh5ojvof66mrtbotz5"); // double x, y; +UNSUPPORTED("3cohebhm3opbm2vh6b4wzdlkl"); // char *pov, *s, *r, *t, *p; +UNSUPPORTED("caph5wpsys7oxxneh5xjl1ge2"); // gvprintf(job, "//*** textspan: %s, fontsize = %.3f, fontname = %s\n", +UNSUPPORTED("aatbh13pgi2seywuv58l164sg"); // span->str, span->font->size, span->font->name); +UNSUPPORTED("p78pafc3a70q01a93j3hakqj"); // z = layerz - 9; +UNSUPPORTED("8yrhor0piybk3cx5mqluj6ct0"); // //handle text justification +UNSUPPORTED("abi5cnvri7biecl3jbz3ljbqn"); // switch (span->just) { +UNSUPPORTED("f0b1gez33b7p2l2mh99g8szv9"); // case 'l': //left justified +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("2unsigciyurjjkm59j0x51yks"); // case 'r': //right justified +UNSUPPORTED("bawpoz7lcmuf4ttemxc072smd"); // c.x = c.x - span->size.x; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("6imja9q9r4w9xkws4jnkxaoib"); // case 'n': //centered +UNSUPPORTED("arerr6hl1fo2r21lgv6dq0fhe"); // c.x = c.x - span->size.x / 2.0; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5dp6hqhk8pdh35zmahjmrbil4"); // x = (c.x + job->translation.x) * job->scale.x; +UNSUPPORTED("8g5ivywnwkgbkamexmslhkbwl"); // y = (c.y + job->translation.y) * job->scale.y; +UNSUPPORTED("7ibjof57xyrrbjfq984fhq53q"); // s = el(job, "scale %.3f\n", span->font->size * job->scale.x); +UNSUPPORTED("12hm1ht9azi6mmxv4dvc2dvih"); // r = el(job, "rotate ""<%9.3f, %9.3f, %9.3f>""\n", 0.0, 0.0, (float)job->rotation); +UNSUPPORTED("9tdxqqkubd9vcc8ei2ek0ohsu"); // t = el(job, "translate""<%9.3f, %9.3f, %9.3f>""\n", x, y, z); +UNSUPPORTED("3boaqla3jgicjsvi0cj6tylfw"); // p = pov_color_as_str(job, job->obj->pencolor, 0.0); +UNSUPPORTED("b2ejqbz7lvl4hg7pgh487n64i"); // //pov bundled fonts: timrom.ttf, cyrvetic.ttf +UNSUPPORTED("6igjb924cisay3j6lgi0ongrm"); // pov = el(job, "text {\n" " ttf \"%s\",\n" " \"%s\", %.3f, %.3f\n" " %s %s %s %s %s" "}\n", +UNSUPPORTED("3xx9l0bux74bmtji5uhkw2ik8"); // span->font->name, 0.25, 0.0, //font, depth (0.5 ... 2.0), offset +UNSUPPORTED("a1wi2fm46kq0gl96wwx26fgab"); // span->str, " no_shadow\n", s, r, t, p); +UNSUPPORTED("3x0tju516ycfkyg76dbmy12z3"); // gvputs(job, pov); +UNSUPPORTED("1nwb9ca1mjxkgynagbneulg58"); // free(pov); +UNSUPPORTED("7scwdfzpkx03bafy8mo9p36ku"); // free(r); +UNSUPPORTED("cy5x5dma0v4hiepir7lrfuo17"); // free(p); +UNSUPPORTED("9r1kr4nla99ts81ivi2g8ne6q"); // free(t); +UNSUPPORTED("d285xdylp7oj81aar06ulc7kh"); // free(s); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 80vqnzdsz7alwxdre4myzs7cz +// static void pov_ellipse(GVJ_t * job, pointf * A, int filled) +public static Object pov_ellipse(Object... arg) { +UNSUPPORTED("41s3h16cmnt5btexht7j82vat"); // static void pov_ellipse(GVJ_t * job, pointf * A, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3cohebhm3opbm2vh6b4wzdlkl"); // char *pov, *s, *r, *t, *p; +UNSUPPORTED("2c4bbxdmt2mx4fss2xa1kkfap"); // float cx, cy, rx, ry, w; +UNSUPPORTED("eposezldvr4ehjm1pb4ymq2u5"); // gvputs(job, "//*** ellipse\n"); +UNSUPPORTED("4yafz83qky6zhzfs6o2wgxklk"); // z = layerz - 6; +UNSUPPORTED("bhf89737crzdptaovef0dh68a"); // // A[0] center, A[1] corner of ellipse +UNSUPPORTED("9fxk9sykye0f78f0i5b95gtaw"); // cx = (A[0].x + job->translation.x) * job->scale.x; +UNSUPPORTED("19fh9jhjbqwtt9qitwkzy7jb2"); // cy = (A[0].y + job->translation.y) * job->scale.y; +UNSUPPORTED("d48v01y3j249ssh8yx85xfm5u"); // rx = (A[1].x - A[0].x) * job->scale.x; +UNSUPPORTED("7rbc982nuc7nd1tuc5effk4fw"); // ry = (A[1].y - A[0].y) * job->scale.y; +UNSUPPORTED("aekbfd5p6hwhtk3o1acksvq6"); // w = job->obj->penwidth / (rx + ry) / 2.0 * 5; +UNSUPPORTED("2zqnnknbzl1cnu2qmt2uquiuh"); // //draw rim (torus) +UNSUPPORTED("d1xsz8zm5cmzpth3kx2ypj6ae"); // s = el(job, "scale ""<%9.3f, %9.3f, %9.3f>""\n", rx, (rx + ry) / 4.0, ry); +UNSUPPORTED("c8v01mji8vpxow1hdefxz0xy5"); // r = el(job, "rotate ""<%9.3f, %9.3f, %9.3f>""\n", 90.0, 0.0, (float)job->rotation); +UNSUPPORTED("995xgtqf93yds26fofxapqasn"); // t = el(job, "translate""<%9.3f, %9.3f, %9.3f>""\n", cx, cy, z); +UNSUPPORTED("3boaqla3jgicjsvi0cj6tylfw"); // p = pov_color_as_str(job, job->obj->pencolor, 0.0); +UNSUPPORTED("ditiwhg74so8wkvce2dz1ctsc"); // pov = el(job, "torus { %.3f, %.3f\n" " %s %s %s %s" "}\n", 1.0, w, //radius, size of ring +UNSUPPORTED("3k6wpzzzs2t4gtijl8zs1c6e"); // s, r, t, p); +UNSUPPORTED("3x0tju516ycfkyg76dbmy12z3"); // gvputs(job, pov); +UNSUPPORTED("d285xdylp7oj81aar06ulc7kh"); // free(s); +UNSUPPORTED("7scwdfzpkx03bafy8mo9p36ku"); // free(r); +UNSUPPORTED("9r1kr4nla99ts81ivi2g8ne6q"); // free(t); +UNSUPPORTED("cy5x5dma0v4hiepir7lrfuo17"); // free(p); +UNSUPPORTED("1nwb9ca1mjxkgynagbneulg58"); // free(pov); +UNSUPPORTED("b6xpllwn0s7t41md7rql9u6ps"); // //backgroud of ellipse if filled +UNSUPPORTED("2atgu691bmn6h9jvk8lve5qzc"); // if (filled) { +UNSUPPORTED("d55j0r2nj3jas2svuuhd22due"); // s = el(job, "scale ""<%9.3f, %9.3f, %9.3f>""\n", rx, ry, 1.0); +UNSUPPORTED("95ovvy40bmmuglc6s7uitv3jq"); // r = el(job, "rotate ""<%9.3f, %9.3f, %9.3f>""\n", 0.0, 0.0, (float)job->rotation); +UNSUPPORTED("58dmanx0lpf638fy0xe5bb2qu"); // t = el(job, "translate""<%9.3f, %9.3f, %9.3f>""\n", cx, cy, z); +UNSUPPORTED("a5gghuf60fymy4ca6p0yubyro"); // p = pov_color_as_str(job, job->obj->fillcolor, 0.0); +UNSUPPORTED("ek1cqknka7kxhnsb5frwqxjvk"); // pov = el(job, "sphere {""<%9.3f, %9.3f, %9.3f>"", 1.0\n" " %s %s %s %s" "}\n", +UNSUPPORTED("4glbfmpx1gp42z1y90x0sn18x"); // 0.0, 0.0, 0.0, s, r, t, p); +UNSUPPORTED("38o9oyyy59mzbbt6zzozzj5kp"); // gvputs(job, pov); +UNSUPPORTED("80itb1itky2rb7sgcktyeypr2"); // free(s); +UNSUPPORTED("3t86d4kz7zwqy3xx9m37y0eoa"); // free(r); +UNSUPPORTED("iagyh21osy84ww1ekih6gqlh"); // free(t); +UNSUPPORTED("8eho71vuxbyqy1c76wpeqzivl"); // free(p); +UNSUPPORTED("8aa1al3xqgdhiv4dq7n9t47bu"); // free(pov); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1nwr700gjhj5a5axcdo060csj +// static void pov_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, int arrow_at_end, int filled) +public static Object pov_bezier(Object... arg) { +UNSUPPORTED("ee8875esc1r7im8eq6n9m1bbb"); // static void pov_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, +UNSUPPORTED("yl0kcnz0uvxq0ffk8eb6kcon"); // int arrow_at_end, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i; +UNSUPPORTED("coyatly5x4mbjcq0bwhb3ky4k"); // char *v, *x; +UNSUPPORTED("3cohebhm3opbm2vh6b4wzdlkl"); // char *pov, *s, *r, *t, *p; +UNSUPPORTED("9swckmk8r5e9zhs7k5ljct6nt"); // gvputs(job, "//*** bezier\n"); +UNSUPPORTED("6w5t2p8ujl2czgk9nm8q9twwq"); // z = layerz - 4; +UNSUPPORTED("2omh8jf0yjm0iz8fp4udk4f62"); // s = el(job, "scale ""<%9.3f, %9.3f, %9.3f>""\n", job->scale.x, job->scale.y, 1.0); +UNSUPPORTED("12hm1ht9azi6mmxv4dvc2dvih"); // r = el(job, "rotate ""<%9.3f, %9.3f, %9.3f>""\n", 0.0, 0.0, (float)job->rotation); +UNSUPPORTED("e4zn7gmaqed5rgvrdfmn4aws9"); // t = el(job, "translate""<%9.3f, %9.3f, %9.3f>""\n", 0.0, 0.0, z - 2); +UNSUPPORTED("av7kz9qqnv0p5fnbcld2iw2qa"); // p = pov_color_as_str(job, job->obj->fillcolor, 0.0); +UNSUPPORTED("a24ea5773bp2lh6m5pc3nb3cq"); // pov = el(job, "sphere_sweep {\n" " %s\n" " %d,\n", "b_spline", n + 2); +UNSUPPORTED("7lppn4o65696k131iftk9aihq"); // for (i = 0; i < n; i++) { +UNSUPPORTED("321e5283swfg4sm1s1vl257nh"); // v = el(job, "<%9.3f, %9.3f, %9.3f>" ", %.3f\n", A[i].x + job->translation.x, A[i].y + job->translation.y, 0.0, job->obj->penwidth); //z coordinate, thickness +UNSUPPORTED("4zdxrso8p4mqjcbsmj89gqlte"); // x = el(job, "%s %s", pov, v); //catenate pov & vector v +UNSUPPORTED("vfr0wm9gm15yrovhwdzvfjj3"); // free(v); +UNSUPPORTED("8aa1al3xqgdhiv4dq7n9t47bu"); // free(pov); +UNSUPPORTED("b536z5l52wpzyul7cr4nfyjml"); // pov = x; +UNSUPPORTED("a2hqs30x24m07r0la4yg21n03"); // //TODO: we currently just use the start and end points of the curve as +UNSUPPORTED("874oelxej10s2jdrj46nlkyhy"); // //control points but we should use center of nodes +UNSUPPORTED("33w4htg1ddnzrlrn3aaqx4mih"); // if (i == 0 || i == n - 1) { +UNSUPPORTED("ejfxr9c5tlyeymuqusujnge65"); // v = el(job, "<%9.3f, %9.3f, %9.3f>" ", %.3f\n", A[i].x + job->translation.x, A[i].y + job->translation.y, 0.0, job->obj->penwidth); //z coordinate, thickness +UNSUPPORTED("117aoj4wdcidfnr09ttcuh0bq"); // x = el(job, "%s %s", pov, v); //catenate pov & vector v +UNSUPPORTED("2ms9r7llvwurv03vshuwp33g0"); // free(v); +UNSUPPORTED("36ulf5u2x88apdfvl8575t0pw"); // free(pov); +UNSUPPORTED("52w8yci1wukx08u5iw209foki"); // pov = x; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6rjarox8bj4qvyn5xm8l44ek3"); // x = el(job, " tolerance 0.01\n %s %s %s %s" "}\n", s, r, t, +UNSUPPORTED("75z6hiocdm99uxsymxnekqzz4"); // p); +UNSUPPORTED("57yf8g8kqm96q238qx5boux2p"); // pov = el(job, "%s%s", pov, x); //catenate pov & end str +UNSUPPORTED("6laycqh8jpxy4ruipf713audd"); // free(x); +UNSUPPORTED("3x0tju516ycfkyg76dbmy12z3"); // gvputs(job, pov); +UNSUPPORTED("d285xdylp7oj81aar06ulc7kh"); // free(s); +UNSUPPORTED("7scwdfzpkx03bafy8mo9p36ku"); // free(r); +UNSUPPORTED("9r1kr4nla99ts81ivi2g8ne6q"); // free(t); +UNSUPPORTED("cy5x5dma0v4hiepir7lrfuo17"); // free(p); +UNSUPPORTED("1nwb9ca1mjxkgynagbneulg58"); // free(pov); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 byjm8zehiu37tz6v8axr9pw3n +// static void pov_polygon(GVJ_t * job, pointf * A, int n, int filled) +public static Object pov_polygon(Object... arg) { +UNSUPPORTED("66neyti84r77ayxgttnq6ja44"); // static void pov_polygon(GVJ_t * job, pointf * A, int n, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7w62ed76qkbpnwrmdmtxuvbqt"); // char *pov, *s, *r, *t, *p, *v, *x; +UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i; +UNSUPPORTED("7qf2cy4yl409rjtqmxp9e15zk"); // gvputs(job, "//*** polygon\n"); +UNSUPPORTED("egmkaiy8ma7d7wgilpj7gjfx8"); // z = layerz - 2; +UNSUPPORTED("2omh8jf0yjm0iz8fp4udk4f62"); // s = el(job, "scale ""<%9.3f, %9.3f, %9.3f>""\n", job->scale.x, job->scale.y, 1.0); +UNSUPPORTED("12hm1ht9azi6mmxv4dvc2dvih"); // r = el(job, "rotate ""<%9.3f, %9.3f, %9.3f>""\n", 0.0, 0.0, (float)job->rotation); +UNSUPPORTED("e4zn7gmaqed5rgvrdfmn4aws9"); // t = el(job, "translate""<%9.3f, %9.3f, %9.3f>""\n", 0.0, 0.0, z - 2); +UNSUPPORTED("3boaqla3jgicjsvi0cj6tylfw"); // p = pov_color_as_str(job, job->obj->pencolor, 0.0); +UNSUPPORTED("37ahpca2y7feyrvstporqhl8u"); // pov = el(job, "sphere_sweep {\n" " %s\n" " %d,\n", "linear_spline", n + 1); +UNSUPPORTED("7lppn4o65696k131iftk9aihq"); // for (i = 0; i < n; i++) { +UNSUPPORTED("321e5283swfg4sm1s1vl257nh"); // v = el(job, "<%9.3f, %9.3f, %9.3f>" ", %.3f\n", A[i].x + job->translation.x, A[i].y + job->translation.y, 0.0, job->obj->penwidth); //z coordinate, thickness +UNSUPPORTED("4zdxrso8p4mqjcbsmj89gqlte"); // x = el(job, "%s %s", pov, v); //catenate pov & vector v +UNSUPPORTED("vfr0wm9gm15yrovhwdzvfjj3"); // free(v); +UNSUPPORTED("8aa1al3xqgdhiv4dq7n9t47bu"); // free(pov); +UNSUPPORTED("b536z5l52wpzyul7cr4nfyjml"); // pov = x; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("514o3in8i24vfy9zenseu42h1"); // //close polygon, add starting point as final point^ +UNSUPPORTED("9tnc5necekjr89isqg9turon9"); // v = el(job, "<%9.3f, %9.3f, %9.3f>" ", %.3f\n", A[0].x + job->translation.x, A[0].y + job->translation.y, 0.0, job->obj->penwidth); //z coordinate, thickness +UNSUPPORTED("4ktvr5g349qqwk467rn1z63az"); // x = el(job, "%s %s", pov, v); //catenate pov & vector v +UNSUPPORTED("cuo9qqlefcz4kzzualo1de3no"); // free(v); +UNSUPPORTED("1nwb9ca1mjxkgynagbneulg58"); // free(pov); +UNSUPPORTED("7xz82xouyjrr6uykusy7qpf2w"); // pov = x; +UNSUPPORTED("ht1aje0654drgytpm5le9rjh"); // x = el(job, " tolerance 0.1\n %s %s %s %s" "}\n", s, r, t, p); +UNSUPPORTED("57yf8g8kqm96q238qx5boux2p"); // pov = el(job, "%s%s", pov, x); //catenate pov & end str +UNSUPPORTED("6laycqh8jpxy4ruipf713audd"); // free(x); +UNSUPPORTED("3x0tju516ycfkyg76dbmy12z3"); // gvputs(job, pov); +UNSUPPORTED("d285xdylp7oj81aar06ulc7kh"); // free(s); +UNSUPPORTED("7scwdfzpkx03bafy8mo9p36ku"); // free(r); +UNSUPPORTED("9r1kr4nla99ts81ivi2g8ne6q"); // free(t); +UNSUPPORTED("cy5x5dma0v4hiepir7lrfuo17"); // free(p); +UNSUPPORTED("1nwb9ca1mjxkgynagbneulg58"); // free(pov); +UNSUPPORTED("aq1dxinpieit5q7d2nbxcebql"); // //create fill background +UNSUPPORTED("2atgu691bmn6h9jvk8lve5qzc"); // if (filled) { +UNSUPPORTED("3ruh2ygmjwz4qt3cdfolchjsr"); // s = el(job, "scale ""<%9.3f, %9.3f, %9.3f>""\n", job->scale.x, job->scale.y, 1.0); +UNSUPPORTED("95ovvy40bmmuglc6s7uitv3jq"); // r = el(job, "rotate ""<%9.3f, %9.3f, %9.3f>""\n", 0.0, 0.0, (float)job->rotation); +UNSUPPORTED("13w1x4vkx03vnimou254113c9"); // t = el(job, "translate""<%9.3f, %9.3f, %9.3f>""\n", 0.0, 0.0, z - 2); +UNSUPPORTED("2d03xv6bj4q7cciljhxeyma7w"); // p = pov_color_as_str(job, job->obj->fillcolor, 0.25); +UNSUPPORTED("ay7d9vngvzwvfr5gm3r67e4sg"); // pov = el(job, "polygon { %d,\n", n); +UNSUPPORTED("2rrnw2qr4kt708c1ryyszovp9"); // for (i = 0; i < n; i++) { +UNSUPPORTED("1yhl4u2jvgrqqs92asnmn634"); // //create on z = 0 plane, then translate to real z pos +UNSUPPORTED("323gm6pkek1kq1f80pdg2baje"); // v = el(job, "<%9.3f, %9.3f, %9.3f>", +UNSUPPORTED("9y7o0jvy5fig3ebzjjuvxrp9"); // A[i].x + job->translation.x, +UNSUPPORTED("7dm6pesqrr4ofolkoau22kfyw"); // A[i].y + job->translation.y, 0.0); +UNSUPPORTED("5426ydiaul7suvot22wcxj4ql"); // x = el(job, "%s\n %s", pov, v); //catenate pov & vector v +UNSUPPORTED("2ms9r7llvwurv03vshuwp33g0"); // free(v); +UNSUPPORTED("36ulf5u2x88apdfvl8575t0pw"); // free(pov); +UNSUPPORTED("52w8yci1wukx08u5iw209foki"); // pov = x; +UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // } +UNSUPPORTED("1c5gz2uin3fm53ihebst7i310"); // x = el(job, "\n %s %s %s %s" "}\n", s, r, t, p); +UNSUPPORTED("a5ui5eg32sxrkxt68rvk1y6nd"); // pov = el(job, "%s%s", pov, x); //catenate pov & end str +UNSUPPORTED("akxc4ygimq2dxgjssmv2tcw24"); // free(x); +UNSUPPORTED("38o9oyyy59mzbbt6zzozzj5kp"); // gvputs(job, pov); +UNSUPPORTED("80itb1itky2rb7sgcktyeypr2"); // free(s); +UNSUPPORTED("3t86d4kz7zwqy3xx9m37y0eoa"); // free(r); +UNSUPPORTED("iagyh21osy84ww1ekih6gqlh"); // free(t); +UNSUPPORTED("8eho71vuxbyqy1c76wpeqzivl"); // free(p); +UNSUPPORTED("8aa1al3xqgdhiv4dq7n9t47bu"); // free(pov); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4tenvyj7b9pbo2g8hb5qwdl5e +// static void pov_polyline(GVJ_t * job, pointf * A, int n) +public static Object pov_polyline(Object... arg) { +UNSUPPORTED("6y14qhe4e218exwzocw9x5gfq"); // static void pov_polyline(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7w62ed76qkbpnwrmdmtxuvbqt"); // char *pov, *s, *r, *t, *p, *v, *x; +UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i; +UNSUPPORTED("diupy09i3wc1frcvkvjwnyty1"); // gvputs(job, "//*** polyline\n"); +UNSUPPORTED("4yafz83qky6zhzfs6o2wgxklk"); // z = layerz - 6; +UNSUPPORTED("2omh8jf0yjm0iz8fp4udk4f62"); // s = el(job, "scale ""<%9.3f, %9.3f, %9.3f>""\n", job->scale.x, job->scale.y, 1.0); +UNSUPPORTED("12hm1ht9azi6mmxv4dvc2dvih"); // r = el(job, "rotate ""<%9.3f, %9.3f, %9.3f>""\n", 0.0, 0.0, (float)job->rotation); +UNSUPPORTED("9wdvdavwfn1nyjtjdobqa9137"); // t = el(job, "translate""<%9.3f, %9.3f, %9.3f>""\n", 0.0, 0.0, z); +UNSUPPORTED("3boaqla3jgicjsvi0cj6tylfw"); // p = pov_color_as_str(job, job->obj->pencolor, 0.0); +UNSUPPORTED("dp2pkyhb12fz76mwb5hgddd7l"); // pov = el(job, "sphere_sweep {\n" " %s\n" " %d,\n", "linear_spline", n); +UNSUPPORTED("7lppn4o65696k131iftk9aihq"); // for (i = 0; i < n; i++) { +UNSUPPORTED("321e5283swfg4sm1s1vl257nh"); // v = el(job, "<%9.3f, %9.3f, %9.3f>" ", %.3f\n", A[i].x + job->translation.x, A[i].y + job->translation.y, 0.0, job->obj->penwidth); //z coordinate, thickness +UNSUPPORTED("4zdxrso8p4mqjcbsmj89gqlte"); // x = el(job, "%s %s", pov, v); //catenate pov & vector v +UNSUPPORTED("vfr0wm9gm15yrovhwdzvfjj3"); // free(v); +UNSUPPORTED("8aa1al3xqgdhiv4dq7n9t47bu"); // free(pov); +UNSUPPORTED("b536z5l52wpzyul7cr4nfyjml"); // pov = x; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5oy4ofx9kib8m20osqf5183js"); // x = el(job, " tolerance 0.01\n %s %s %s %s" "}\n", s, r, t, p); +UNSUPPORTED("57yf8g8kqm96q238qx5boux2p"); // pov = el(job, "%s%s", pov, x); //catenate pov & end str +UNSUPPORTED("6laycqh8jpxy4ruipf713audd"); // free(x); +UNSUPPORTED("3x0tju516ycfkyg76dbmy12z3"); // gvputs(job, pov); +UNSUPPORTED("d285xdylp7oj81aar06ulc7kh"); // free(s); +UNSUPPORTED("7scwdfzpkx03bafy8mo9p36ku"); // free(r); +UNSUPPORTED("9r1kr4nla99ts81ivi2g8ne6q"); // free(t); +UNSUPPORTED("cy5x5dma0v4hiepir7lrfuo17"); // free(p); +UNSUPPORTED("1nwb9ca1mjxkgynagbneulg58"); // free(pov); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 60ddyecwuwk1q703j08lxofaw +// gvrender_engine_t pov_engine = + + +//1 3mk6p83k5m6nkdmz9a3zgngia +// gvrender_features_t render_features_pov = + + +//1 4vl7xgwqefutkozj8utzeuuwh +// gvdevice_features_t device_features_pov = + + +//1 4xnrqrdo6vuoa096fq2ib607n +// gvplugin_installed_t gvrender_pov_types[] = + + +//1 7glwt7v8poq3kemx5yiig02a8 +// gvplugin_installed_t gvdevice_pov_types[] = + + +} diff -Nru plantuml-8024/src/gen/plugin/core/gvrender_core_ps__c.java plantuml-8039/src/gen/plugin/core/gvrender_core_ps__c.java --- plantuml-8024/src/gen/plugin/core/gvrender_core_ps__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/core/gvrender_core_ps__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,751 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.core; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvrender_core_ps__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 1qtflsog3urfbtfk7yequcb6l +// static const char *ps_txt[] = + + +//1 7fq6ozjgi243ox7yrdb2ep5lx +// static int isLatin1 + + +//1 u3p8me9bh8fnyshn034rzpzo +// static char setupLatin1 + + + + +//3 4jsbd8kmwbzb2dkxcq0akopqt +// static void psgen_begin_job(GVJ_t * job) +public static Object psgen_begin_job(Object... arg) { +UNSUPPORTED("9orw8eslfn5kltlv212oz9m4t"); // static void psgen_begin_job(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2gqkshnzesys4oyr4v83wtm7r"); // gvputs(job, "%!PS-Adobe-3.0"); +UNSUPPORTED("10cxufp7bdbg3focj7i2ji75x"); // if (job->render.id == FORMAT_EPS) +UNSUPPORTED("d7jryk3bdwpt507jq18ibacn5"); // gvputs(job, " EPSF-3.0\n"); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("ab9vno2hfka5wkcaq86o3njmq"); // gvputs(job, "\n"); +UNSUPPORTED("dv3jmvt7myav44xtzcqkbrvpa"); // gvprintf(job, "%%%%Creator: %s version %s (%s)\n", +UNSUPPORTED("4avcb2reh8m3qem3f2716wav3"); // job->common->info[0], job->common->info[1], job->common->info[2]); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3vsgq26dsfvpzsck4p2l68jv8 +// static void psgen_end_job(GVJ_t * job) +public static Object psgen_end_job(Object... arg) { +UNSUPPORTED("829ltuhwlzr8hozer6oad9sz5"); // static void psgen_end_job(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("djedkpe7zjd45r39k271iaxcu"); // gvputs(job, "%%Trailer\n"); +UNSUPPORTED("b3iu4ks8uomai9twz4bxnbipx"); // if (job->render.id != FORMAT_EPS) +UNSUPPORTED("36ngacoh31azhdowttvvpjjk2"); // gvprintf(job, "%%%%Pages: %d\n", job->common->viewNum); +UNSUPPORTED("dgmf05k9an1qfxjxd97hq1buj"); // if (job->common->show_boxes == NULL) +UNSUPPORTED("6h3w6ikmuw9ywilwm2qpevp3l"); // if (job->render.id != FORMAT_EPS) +UNSUPPORTED("18j4zj26y29rtjxd0cekzpfee"); // gvprintf(job, "%%%%BoundingBox: %d %d %d %d\n", +UNSUPPORTED("dxbze4i780qyz19i2rh8y5jht"); // job->boundingBox.LL.x, job->boundingBox.LL.y, +UNSUPPORTED("60out7dqilui46fgktwm5ej8r"); // job->boundingBox.UR.x, job->boundingBox.UR.y); +UNSUPPORTED("c1p513mbeu7uv14dlqfw6abkg"); // gvputs(job, "end\nrestore\n"); +UNSUPPORTED("4uqbd6po1wgmrs3zrxz4ik9mw"); // gvputs(job, "%%EOF\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3gb6ikypoueyb2y6i764cxbhx +// static void psgen_begin_graph(GVJ_t * job) +public static Object psgen_begin_graph(Object... arg) { +UNSUPPORTED("apgmzjzeua7qxnlanxaxe3hua"); // static void psgen_begin_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("bhf3m2sbf59gs5cg8rpaiywew"); // setupLatin1 = 0; +UNSUPPORTED("8bju5ndiwsdb8q2ly29dv84wm"); // if (job->common->viewNum == 0) { +UNSUPPORTED("7q41bmyw0rrgi4x6negigle3m"); // gvprintf(job, "%%%%Title: %s\n", agnameof(obj->u.g)); +UNSUPPORTED("5n912p3phcw0i5akike49jiqc"); // if (job->render.id != FORMAT_EPS) +UNSUPPORTED("8aqdygs4r7d8g3i6xp7mj8e50"); // gvputs(job, "%%Pages: (atend)\n"); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("4vsc5buyrhwh1ovu2agkm6zjy"); // gvputs(job, "%%Pages: 1\n"); +UNSUPPORTED("d56ndgp8enkjfui03ixmhufw3"); // if (job->common->show_boxes == NULL) { +UNSUPPORTED("w7ueydz0ch59r5x7jz39zgtp"); // if (job->render.id != FORMAT_EPS) +UNSUPPORTED("bxgfbxaraautik8cspg1wmptv"); // gvputs(job, "%%BoundingBox: (atend)\n"); +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("6wpp34s0c7tqg0wv4g8ltebzm"); // gvprintf(job, "%%%%BoundingBox: %d %d %d %d\n", +UNSUPPORTED("1smwnfuueu6rmd1bgwt1zhvtx"); // job->pageBoundingBox.LL.x, job->pageBoundingBox.LL.y, +UNSUPPORTED("6lr43m798s3534swmbhen5m0q"); // job->pageBoundingBox.UR.x, job->pageBoundingBox.UR.y); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("6q85d3glhzmompt5xmvj42zoa"); // gvputs(job, "%%EndComments\nsave\n"); +UNSUPPORTED("c9ohr5sqm5pydsv4h8o12ku9h"); // /* include shape library */ +UNSUPPORTED("sk0bwxtidaigb1oi4xkk10up"); // cat_libfile(job, job->common->lib, ps_txt); +UNSUPPORTED("clqt6n30kglwpmnxf6ayp06x9"); // /* include epsf */ +UNSUPPORTED("61opdwqs031lj4tzzg2sgcci2"); // epsf_define(job); +UNSUPPORTED("6vg9px4q8r7fdndbyt64w62lt"); // if (job->common->show_boxes) { +UNSUPPORTED("edalkp7jyj28icbidbcmfsz4y"); // const char* args[2]; +UNSUPPORTED("912tsmkymhqfhqp25qexxz6m5"); // args[0] = job->common->show_boxes[0]; +UNSUPPORTED("83o9dwn4xs47t734kcj652p5p"); // args[1] = NULL; +UNSUPPORTED("7miirzhxs42qrp2ovadq92khu"); // cat_libfile(job, NULL, args); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("33xxzmz1g6bggeapvxm1zx9yr"); // isLatin1 = (GD_charset(obj->u.g) == 1 ? 1 : -1); +UNSUPPORTED("1xv4b98ox7mq8hhp97i19zfor"); // /* We always setup Latin1. The charset info is always output, +UNSUPPORTED("1d9yupk35hp3i9e12yycbevaz"); // * and installing it is cheap. With it installed, we can then +UNSUPPORTED("m5mzxzrnlpf7h3hy7np9zmd0"); // * rely on ps_string to convert UTF-8 characters whose encoding +UNSUPPORTED("cajcmda1cmsbpwhy0mvm56dao"); // * is in the range of Latin-1 into the Latin-1 equivalent and +UNSUPPORTED("eko1rvgwxxxitm2caqgogrvhq"); // * get the expected PostScript output. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("a6gal7mia1c9lnenwqr2je5bh"); // if (!setupLatin1) { +UNSUPPORTED("erhruwqa7hy0mxl27hsdhwjvq"); // gvputs(job, "setupLatin1\n"); /* as defined in ps header */ +UNSUPPORTED("4yyacs2oqpdxm2x0r5pdup66w"); // setupLatin1 = NOT(0); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6szrbi81oehk1yhwceaheeuev"); // /* Set base URL for relative links (for Distiller >= 3.0) */ +UNSUPPORTED("4jozt8n5f1lyy86sk34jfrvgg"); // if (obj->url) +UNSUPPORTED("36rstk5tbud6jtt4g6z61q808"); // gvprintf(job, "[ {Catalog} << /URI << /Base %s >> >>\n" +UNSUPPORTED("d3gnahi0ckutslapcmkiqsd7p"); // "/PUT pdfmark\n", ps_string(obj->url,isLatin1)); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ar4xx7dz90q15xh2y4klc4num +// static void psgen_begin_layer(GVJ_t * job, char *layername, int layerNum, int numLayers) +public static Object psgen_begin_layer(Object... arg) { +UNSUPPORTED("agsvap2lizd7txyml3u0vrp85"); // static void psgen_begin_layer(GVJ_t * job, char *layername, int layerNum, int numLayers) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("61nwew8w1g6gyi8sfcje734f0"); // gvprintf(job, "%d %d setlayer\n", layerNum, numLayers); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7m0sjz6ewwd4y7tot8bmcfcei +// static void psgen_begin_page(GVJ_t * job) +public static Object psgen_begin_page(Object... arg) { +UNSUPPORTED("cogyrlqcthcac2sfe3ms3b7v8"); // static void psgen_begin_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("76g96x1rehn6s0a72jz2no0bi"); // box pbr = job->pageBoundingBox; +UNSUPPORTED("br2sfjk7c29me4e6ggop0ljk3"); // gvprintf(job, "%%%%Page: %d %d\n", +UNSUPPORTED("17n0zsnmgi4zptncq1uvxywuu"); // job->common->viewNum + 1, job->common->viewNum + 1); +UNSUPPORTED("dgmf05k9an1qfxjxd97hq1buj"); // if (job->common->show_boxes == NULL) +UNSUPPORTED("68yf7k1sgpmnim51dqkg7iijt"); // gvprintf(job, "%%%%PageBoundingBox: %d %d %d %d\n", +UNSUPPORTED("21d5hfu7mone3g6dbuen2sgg3"); // pbr.LL.x, pbr.LL.y, pbr.UR.x, pbr.UR.y); +UNSUPPORTED("3x0ssk90v3lg33lsr6b4ula1p"); // gvprintf(job, "%%%%PageOrientation: %s\n", +UNSUPPORTED("78a69y96uj20rf1bjroairawi"); // (job->rotation ? "Landscape" : "Portrait")); +UNSUPPORTED("2ztdn9tzegcfj0564qx2gwyq0"); // if (job->render.id == FORMAT_PS2) +UNSUPPORTED("3uk2omkh4h2oh9x6p6gdfgezn"); // gvprintf(job, "<< /PageSize [%d %d] >> setpagedevice\n", +UNSUPPORTED("alr7wses0g3ewh8vkfvlk58fc"); // pbr.UR.x, pbr.UR.y); +UNSUPPORTED("4h7sybrqpqww3pcpixnfe21z6"); // gvprintf(job, "%d %d %d beginpage\n", +UNSUPPORTED("96jucytj8f7c6fy6z1gy6r1ze"); // job->pagesArrayElem.x, job->pagesArrayElem.y, job->numPages); +UNSUPPORTED("dgmf05k9an1qfxjxd97hq1buj"); // if (job->common->show_boxes == NULL) +UNSUPPORTED("5koijcwi38ci3a4qx13pvfwlw"); // gvprintf(job, "gsave\n%d %d %d %d boxprim clip newpath\n", +UNSUPPORTED("9clbdsb3beptgdszw41ynvu0p"); // pbr.LL.x, pbr.LL.y, pbr.UR.x-pbr.LL.x, pbr.UR.y-pbr.LL.y); +UNSUPPORTED("4a7e5k6q3rlacd537rx9ub20c"); // gvprintf(job, "%g %g set_scale %d rotate %g %g translate\n", +UNSUPPORTED("10afwn16gj676dpglziigsm50"); // job->scale.x, job->scale.y, +UNSUPPORTED("a1cdlhacjn1xlkc1yude0wrql"); // job->rotation, +UNSUPPORTED("c7ifb58gy4lomkldshbldytbo"); // job->translation.x, job->translation.y); +UNSUPPORTED("1z8ea74p9uxtwtwscul3o3jz7"); // /* Define the size of the PS canvas */ +UNSUPPORTED("4sr6w5mogwrv0l5izwjeu7ryc"); // if (job->render.id == FORMAT_PS2) { +UNSUPPORTED("co3q2mi6gjxi3gchpln4w4567"); // if (pbr.UR.x >= 14400 || pbr.UR.y >= 14400) +UNSUPPORTED("31162iy3wjwmhqlutqv8nfc7d"); // job->common->errorfn("canvas size (%d,%d) exceeds PDF limit (%d)\n" +UNSUPPORTED("an7h4u4y334blwkn06120ydt5"); // "\t(suggest setting a bounding box size, see dot(1))\n", +UNSUPPORTED("c56zgl5pu3nxenerpmp3f3o0z"); // pbr.UR.x, pbr.UR.y, 14400); +UNSUPPORTED("dxf3rvnawk3z9x2n179fzbxt9"); // gvprintf(job, "[ /CropBox [%d %d %d %d] /PAGES pdfmark\n", +UNSUPPORTED("ddbug0c0aj9lbqu8f829kzjvm"); // pbr.LL.x, pbr.LL.y, pbr.UR.x, pbr.UR.y); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7jxfd86j0csce75s68ekegiq6 +// static void psgen_end_page(GVJ_t * job) +public static Object psgen_end_page(Object... arg) { +UNSUPPORTED("5uicvg0h4t78pg6xobhau861e"); // static void psgen_end_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3u573a16zqopxfboi2w0zqqzz"); // if (job->common->show_boxes) { +UNSUPPORTED("8uc8ww599n2y8x603qf4a4b06"); // gvputs(job, "0 0 0 edgecolor\n"); +UNSUPPORTED("c67xlny46u43tnb3m46iy32o4"); // cat_libfile(job, NULL, job->common->show_boxes + 1); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5flwz55ptjslg8li9ttksuap5"); // /* the showpage is really a no-op, but at least one PS processor +UNSUPPORTED("9eh3687p6imh9z6upt3sok5ka"); // * out there needs to see this literal token. endpage does the real work. +UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */ +UNSUPPORTED("2jczhqdkf2v0tvqskulv69qq3"); // gvputs(job, "endpage\nshowpage\ngrestore\n"); +UNSUPPORTED("eof3ypspah8sg4phxnbptv9l"); // gvputs(job, "%%PageTrailer\n"); +UNSUPPORTED("48g7wddoi0h6l2ma38gg97vcs"); // gvprintf(job, "%%%%EndPage: %d\n", job->common->viewNum); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 64yihbmjh014pmpusuctsl3sl +// static void psgen_begin_cluster(GVJ_t * job) +public static Object psgen_begin_cluster(Object... arg) { +UNSUPPORTED("9m23jcvafreyz22sgraim1dr6"); // static void psgen_begin_cluster(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("e2btf3o0oasmpyurrr5iedyei"); // gvprintf(job, "%% %s\n", agnameof(obj->u.g)); +UNSUPPORTED("br61vl70v0xgjsjgnfhks64fr"); // gvputs(job, "gsave\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3yzoaq9nyxn75ghsk94xknu7c +// static void psgen_end_cluster(GVJ_t * job) +public static Object psgen_end_cluster(Object... arg) { +UNSUPPORTED("x7ci6jzq6e6cbwdkt9cbd1az"); // static void psgen_end_cluster(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8efwipnmlx4cesl8wwb0fxsi1"); // gvputs(job, "grestore\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4gsfnvgb2qcux6uz1kdumc5vr +// static void psgen_begin_node(GVJ_t * job) +public static Object psgen_begin_node(Object... arg) { +UNSUPPORTED("4ngrphh4a1xs5qfo6vgfzqgh0"); // static void psgen_begin_node(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("br61vl70v0xgjsjgnfhks64fr"); // gvputs(job, "gsave\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f0az3wc3ll61cwwyyr8dsyphs +// static void psgen_end_node(GVJ_t * job) +public static Object psgen_end_node(Object... arg) { +UNSUPPORTED("ecuij4nzrh3ztsf6nmjoubsqu"); // static void psgen_end_node(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8efwipnmlx4cesl8wwb0fxsi1"); // gvputs(job, "grestore\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6d5xpnziymgn6d0min85jfjvv +// static void psgen_begin_edge(GVJ_t * job) +public static Object psgen_begin_edge(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("eni14d6lyslf5a4etuic39aa8"); // psgen_begin_edge(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("br61vl70v0xgjsjgnfhks64fr"); // gvputs(job, "gsave\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1smwxyj2mbjasopcdnl2snrpe +// static void psgen_end_edge(GVJ_t * job) +public static Object psgen_end_edge(Object... arg) { +UNSUPPORTED("f2g7y2r104tklwtr280jfpf5h"); // static void psgen_end_edge(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8efwipnmlx4cesl8wwb0fxsi1"); // gvputs(job, "grestore\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b0pad7wyg5jnhkvyvxxfex8ij +// static void psgen_begin_anchor(GVJ_t *job, char *url, char *tooltip, char *target, char *id) +public static Object psgen_begin_anchor(Object... arg) { +UNSUPPORTED("51xu7flm3qjo0cjkkrc57auwy"); // static void psgen_begin_anchor(GVJ_t *job, char *url, char *tooltip, char *target, char *id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("9cok0gxbmxzogxgwng4xmi787"); // if (url && obj->url_map_p) { +UNSUPPORTED("18v6n3l39cjzkzv2qek8f5afv"); // gvputs(job, "[ /Rect [ "); +UNSUPPORTED("chip985p4cjoasqpkgaiuru5f"); // gvprintpointflist(job, obj->url_map_p, 2); +UNSUPPORTED("672y6r8zwkhwb44q91feajtwe"); // gvputs(job, " ]\n"); +UNSUPPORTED("15sn5jwyf74feyieb8amxyl2n"); // gvprintf(job, " /Border [ 0 0 0 ]\n" +UNSUPPORTED("efeqhwnyncozgnojuosrolj8l"); // " /Action << /Subtype /URI /URI %s >>\n" +UNSUPPORTED("5zen76z1f3ruolu46nam3b8sm"); // " /Subtype /Link\n" +UNSUPPORTED("4xsvt507xerg3xtxu3l0co4zn"); // "/ANN pdfmark\n", +UNSUPPORTED("2xp015vqrvd5x2cu42yttmbvv"); // ps_string(url, isLatin1)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 azkjcny2ozhl5ngrex3xy1920 +// static void ps_set_pen_style(GVJ_t *job) +public static Object ps_set_pen_style(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("7tbc3p5jgba58vc3atp666q9o"); // ps_set_pen_style(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3jhg4yacyumgqbahinlar0ugn"); // double penwidth = job->obj->penwidth; +UNSUPPORTED("9nzbcv0dhv0ufp0gxl6imgp7c"); // char *p, *line, **s = job->obj->rawstyle; +UNSUPPORTED("a54kc8hkuqkvqgh8t0g3edgg6"); // gvprintdouble(job, penwidth); +UNSUPPORTED("193mrkgt2kaa19s0ahu3qlpvn"); // gvputs(job," setlinewidth\n"); +UNSUPPORTED("exk7aqfswofs5s40p0nulkkbq"); // while (s && (p = line = *s++)) { +UNSUPPORTED("996bsna1tw4r0r1j0ontx6960"); // if (strcmp(line, "setlinewidth") == 0) +UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue; +UNSUPPORTED("yxnvzyld8ixj1ioqsioffpte"); // while (*p) +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("2wdgcrx402aszs54rq2kh9txd"); // p++; +UNSUPPORTED("1bnbwdqgkfyku19nvuttx2w2d"); // while (*p) { +UNSUPPORTED("32m73n62g8mlcoc4opqo15aug"); // gvprintf(job,"%s ", p); +UNSUPPORTED("48rrlpibv3umwc6ofz2eg3007"); // while (*p) +UNSUPPORTED("f0iluvyv5shsjqi6qh07pclgc"); // p++; +UNSUPPORTED("847zwwso12sey42b59zepembc"); // p++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3uz4rodnpqcb2rgbcjlk95s2c"); // if (strcmp(line, "invis") == 0) +UNSUPPORTED("1tn42ug84sznim8sne8iif91k"); // job->obj->penwidth = 0; +UNSUPPORTED("f3bcgmltuhfwlwib8wdxiq8vz"); // gvprintf(job, "%s\n", line); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ewmcmbew48t6xoasz1f2dg37q +// static void ps_set_color(GVJ_t *job, gvcolor_t *color) +public static Object ps_set_color(Object... arg) { +UNSUPPORTED("97ps1rl0dp2n5licoxgmtrh4d"); // static void ps_set_color(GVJ_t *job, gvcolor_t *color) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("aqb0odbaeg51ab9k2c5qo3x9x"); // char *objtype; +UNSUPPORTED("aut7kl4l7gn4g3hxqkru7ilg4"); // if (color) { +UNSUPPORTED("5loilaiyk3wcqxx79q7zkv8pe"); // switch (job->obj->type) { +UNSUPPORTED("4twjeggzt94nyvkfk4ngj7uqp"); // case ROOTGRAPH_OBJTYPE: +UNSUPPORTED("bs92udgg6yjwdh38r8entr4c"); // case CLUSTER_OBJTYPE: +UNSUPPORTED("4nfiirl3mvtumxrrh21gbk154"); // objtype = "graph"; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("c7xs8ak1x3jqu2f4z7haikpgw"); // case NODE_OBJTYPE: +UNSUPPORTED("31u8h2s30zfu9ub2557w6y2n1"); // objtype = "node"; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("5cvje3cnq8nvl851sut6sdhs9"); // case EDGE_OBJTYPE: +UNSUPPORTED("4aw3ehtuh69fgbi7j764udybx"); // objtype = "edge"; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("bt2g0yhsy3c7keqyftf3c98ut"); // default: +UNSUPPORTED("6o2vs9xfrblfvi3oi2nzlvsaa"); // objtype = "sethsb"; +UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("3xu9fluch6hl1rf5xj3p7bmwh"); // gvprintf(job, "%.5g %.5g %.5g %scolor\n", +UNSUPPORTED("bfjslqaz3l8lvo8opshvafth"); // color->u.HSVA[0], color->u.HSVA[1], color->u.HSVA[2], objtype); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ay05ube2905przfamsvtiz6l6 +// static void psgen_textspan(GVJ_t * job, pointf p, textspan_t * span) +public static Object psgen_textspan(Object... arg) { +UNSUPPORTED("d3apfsoqjlwvrkzxkew5ymyrd"); // static void psgen_textspan(GVJ_t * job, pointf p, textspan_t * span) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("76nok3eiyr33qf4ecv69ujxn6"); // char *str; +UNSUPPORTED("27583bfrnkeiouhqlzq21bpee"); // if (job->obj->pencolor.u.HSVA[3] < .5) +UNSUPPORTED("6p588rupwy8yjjk196zz8qcvj"); // return; /* skip transparent text */ +UNSUPPORTED("78h44lidscrr82izbmmtwxpvy"); // ps_set_color(job, &(job->obj->pencolor)); +UNSUPPORTED("33ezxcuazz0b3dqe48eqxi81p"); // gvprintdouble(job, span->font->size); +UNSUPPORTED("29wnsn5uix8ajohqm9brgm9gr"); // gvprintf(job, " /%s set_font\n", span->font->name); +UNSUPPORTED("9mljtbtg6rnqp0ppoda72glkp"); // str = ps_string(span->str,isLatin1); +UNSUPPORTED("bpqxh9mig0sh1gasrlkg6hbph"); // switch (span->just) { +UNSUPPORTED("8pu80wsk8me7q17ensqlviq86"); // case 'r': +UNSUPPORTED("lzwxwwf5wl644m2hvx2zioue"); // p.x -= span->size.x; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("15tf5rbprgr65ucp24e4bba9t"); // case 'l': +UNSUPPORTED("5u1yeddr7gxqz7isver6zd56p"); // p.x -= 0.0; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("37fbny64zwo23oymypyreuldc"); // case 'n': +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("e3odj4lftxsik5ovvxgbu6ddv"); // p.x -= span->size.x / 2.0; +UNSUPPORTED("bzxyddcf9jharsko2rb8asyik"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c9qtg5nyqzscz54w8w9mfwv7v"); // p.y += span->yoffset_centerline; +UNSUPPORTED("i7zx9lpif6lu4yrqqzsw2a4o"); // gvprintpointf(job, p); +UNSUPPORTED("bj02ifjyeidil7b0nmgp8v2p3"); // gvputs(job, " moveto "); +UNSUPPORTED("ckz29c0pawvdlkc5buih60dss"); // gvprintdouble(job, span->size.x); +UNSUPPORTED("8lffoflzrv4a2q19ehsyhtrpb"); // gvprintf(job, " %s alignedtext\n", str); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1g8u7srxnvq1rd50aunp0in6i +// static void psgen_ellipse(GVJ_t * job, pointf * A, int filled) +public static Object psgen_ellipse(Object... arg) { +UNSUPPORTED("2jfirodbjd67iil3z6l362as"); // static void psgen_ellipse(GVJ_t * job, pointf * A, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8tuvacxowvjyekfxkm6dgvp8f"); // /* A[] contains 2 points: the center and corner. */ +UNSUPPORTED("6c99ntmslfdjq7lacoxq90io4"); // pointf AA[2]; +UNSUPPORTED("9m1ds5xbx68961mur5f3hmoa0"); // AA[0] = A[0]; +UNSUPPORTED("ad7su3a8dtyp8cqjizxb1fa0w"); // AA[1].x = A[1].x - A[0].x; +UNSUPPORTED("2k9sojs8nidphiuatou9i7dmw"); // AA[1].y = A[1].y - A[0].y; +UNSUPPORTED("2ream5c4u1f89xiwzlijg1ydk"); // if (filled && job->obj->fillcolor.u.HSVA[3] > .5) { +UNSUPPORTED("ba0yi3he6a0tf9iisvs2r7lud"); // ps_set_color(job, &(job->obj->fillcolor)); +UNSUPPORTED("c9ias5z64yrffrtfmr2jmrp6o"); // gvprintpointflist(job, AA, 2); +UNSUPPORTED("7gxao5sidmj76sv5nozugni5x"); // gvputs(job, " ellipse_path fill\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5745blic5ogwm4kppw7oweo2d"); // if (job->obj->pencolor.u.HSVA[3] > .5) { +UNSUPPORTED("21kugn3mt0fvrcqbct2bxlb7t"); // ps_set_pen_style(job); +UNSUPPORTED("axvgzd7tszpjn2lhenmufiumy"); // ps_set_color(job, &(job->obj->pencolor)); +UNSUPPORTED("c9ias5z64yrffrtfmr2jmrp6o"); // gvprintpointflist(job, AA, 2); +UNSUPPORTED("5zt3wwgax2r40r61om4iuqlfx"); // gvputs(job, " ellipse_path stroke\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dbmkwnmkz2w3ar1495wtjqo79 +// static void psgen_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, int arrow_at_end, int filled) +public static Object psgen_bezier(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("9fpyhlu20gavb794dxeeud675"); // psgen_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, +UNSUPPORTED("e5hr0515188mok0vrr6ri5swt"); // int arrow_at_end, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bs0wcp6367dz1o5x166ec7l8"); // int j; +UNSUPPORTED("2ream5c4u1f89xiwzlijg1ydk"); // if (filled && job->obj->fillcolor.u.HSVA[3] > .5) { +UNSUPPORTED("ba0yi3he6a0tf9iisvs2r7lud"); // ps_set_color(job, &(job->obj->fillcolor)); +UNSUPPORTED("eb3xzimrw2og0neoowz566azn"); // gvputs(job, "newpath "); +UNSUPPORTED("bjs7upob2hu49ojei4bhcfxz7"); // gvprintpointf(job, A[0]); +UNSUPPORTED("d8x140qupg29prem26ttu4koj"); // gvputs(job, " moveto\n"); +UNSUPPORTED("8wzekl6ndy167eorf6dv1b631"); // for (j = 1; j < n; j += 3) { +UNSUPPORTED("3xyqg3mc833hr109cg8gvmv2t"); // gvprintpointflist(job, &A[j], 3); +UNSUPPORTED("1m65lci1avkdlwjkxllj4m6gw"); // gvputs(job, " curveto\n"); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("i9jma968ecg2ludmdn9y0lee"); // gvputs(job, "closepath fill\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5745blic5ogwm4kppw7oweo2d"); // if (job->obj->pencolor.u.HSVA[3] > .5) { +UNSUPPORTED("21kugn3mt0fvrcqbct2bxlb7t"); // ps_set_pen_style(job); +UNSUPPORTED("axvgzd7tszpjn2lhenmufiumy"); // ps_set_color(job, &(job->obj->pencolor)); +UNSUPPORTED("eb3xzimrw2og0neoowz566azn"); // gvputs(job, "newpath "); +UNSUPPORTED("bjs7upob2hu49ojei4bhcfxz7"); // gvprintpointf(job, A[0]); +UNSUPPORTED("d8x140qupg29prem26ttu4koj"); // gvputs(job, " moveto\n"); +UNSUPPORTED("8wzekl6ndy167eorf6dv1b631"); // for (j = 1; j < n; j += 3) { +UNSUPPORTED("3xyqg3mc833hr109cg8gvmv2t"); // gvprintpointflist(job, &A[j], 3); +UNSUPPORTED("1m65lci1avkdlwjkxllj4m6gw"); // gvputs(job, " curveto\n"); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("87zw9vd7draxbwfkbyy134lil"); // gvputs(job, "stroke\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3uv0mikukldcg9dyvrcagotsn +// static void psgen_polygon(GVJ_t * job, pointf * A, int n, int filled) +public static Object psgen_polygon(Object... arg) { +UNSUPPORTED("4qcfsf0li4k9lm1473wfiyl8a"); // static void psgen_polygon(GVJ_t * job, pointf * A, int n, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bs0wcp6367dz1o5x166ec7l8"); // int j; +UNSUPPORTED("2ream5c4u1f89xiwzlijg1ydk"); // if (filled && job->obj->fillcolor.u.HSVA[3] > .5) { +UNSUPPORTED("ba0yi3he6a0tf9iisvs2r7lud"); // ps_set_color(job, &(job->obj->fillcolor)); +UNSUPPORTED("eb3xzimrw2og0neoowz566azn"); // gvputs(job, "newpath "); +UNSUPPORTED("bjs7upob2hu49ojei4bhcfxz7"); // gvprintpointf(job, A[0]); +UNSUPPORTED("d8x140qupg29prem26ttu4koj"); // gvputs(job, " moveto\n"); +UNSUPPORTED("d3tqpplutqsilsr0svy23b35k"); // for (j = 1; j < n; j++) { +UNSUPPORTED("de5j1zrilg6nolqeb004l2e18"); // gvprintpointf(job, A[j]); +UNSUPPORTED("2u9oh4cykwgv0xspreoaonj0k"); // gvputs(job, " lineto\n"); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("i9jma968ecg2ludmdn9y0lee"); // gvputs(job, "closepath fill\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5745blic5ogwm4kppw7oweo2d"); // if (job->obj->pencolor.u.HSVA[3] > .5) { +UNSUPPORTED("21kugn3mt0fvrcqbct2bxlb7t"); // ps_set_pen_style(job); +UNSUPPORTED("axvgzd7tszpjn2lhenmufiumy"); // ps_set_color(job, &(job->obj->pencolor)); +UNSUPPORTED("eb3xzimrw2og0neoowz566azn"); // gvputs(job, "newpath "); +UNSUPPORTED("bjs7upob2hu49ojei4bhcfxz7"); // gvprintpointf(job, A[0]); +UNSUPPORTED("d8x140qupg29prem26ttu4koj"); // gvputs(job, " moveto\n"); +UNSUPPORTED("8d369cvojmdwbhvjfm3dy9wci"); // for (j = 1; j < n; j++) { +UNSUPPORTED("de5j1zrilg6nolqeb004l2e18"); // gvprintpointf(job, A[j]); +UNSUPPORTED("2u9oh4cykwgv0xspreoaonj0k"); // gvputs(job, " lineto\n"); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("94j5qi9ukl2l2ogh7z7dosq32"); // gvputs(job, "closepath stroke\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 emshu7ex2sb49zftzpu7v7nl8 +// static void psgen_polyline(GVJ_t * job, pointf * A, int n) +public static Object psgen_polyline(Object... arg) { +UNSUPPORTED("dzdwhrdgsj0bxjp7f2uws63rf"); // static void psgen_polyline(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2bs0wcp6367dz1o5x166ec7l8"); // int j; +UNSUPPORTED("5745blic5ogwm4kppw7oweo2d"); // if (job->obj->pencolor.u.HSVA[3] > .5) { +UNSUPPORTED("21kugn3mt0fvrcqbct2bxlb7t"); // ps_set_pen_style(job); +UNSUPPORTED("axvgzd7tszpjn2lhenmufiumy"); // ps_set_color(job, &(job->obj->pencolor)); +UNSUPPORTED("eb3xzimrw2og0neoowz566azn"); // gvputs(job, "newpath "); +UNSUPPORTED("bjs7upob2hu49ojei4bhcfxz7"); // gvprintpointf(job, A[0]); +UNSUPPORTED("d8x140qupg29prem26ttu4koj"); // gvputs(job, " moveto\n"); +UNSUPPORTED("8d369cvojmdwbhvjfm3dy9wci"); // for (j = 1; j < n; j++) { +UNSUPPORTED("de5j1zrilg6nolqeb004l2e18"); // gvprintpointf(job, A[j]); +UNSUPPORTED("2u9oh4cykwgv0xspreoaonj0k"); // gvputs(job, " lineto\n"); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("87zw9vd7draxbwfkbyy134lil"); // gvputs(job, "stroke\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2gsov0kt2cm8uz4mmsiy83z46 +// static void psgen_comment(GVJ_t * job, char *str) +public static Object psgen_comment(Object... arg) { +UNSUPPORTED("45z5nair27wr5kf22brmgmms1"); // static void psgen_comment(GVJ_t * job, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("64ek15nfld1t8q7vi9x33fpvy"); // gvputs(job, "% "); +UNSUPPORTED("de7p50zdgdv1ycamcx5ibians"); // gvputs(job, str); +UNSUPPORTED("b7eafy5bhxn361xe2c8x8553b"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 f2bghtv809eimejb28i73kzia +// static void psgen_library_shape(GVJ_t * job, char *name, pointf * A, int n, int filled) +public static Object psgen_library_shape(Object... arg) { +UNSUPPORTED("dn0m6cdwn28bcu1u2vmoy1a2c"); // static void psgen_library_shape(GVJ_t * job, char *name, pointf * A, int n, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("2ream5c4u1f89xiwzlijg1ydk"); // if (filled && job->obj->fillcolor.u.HSVA[3] > .5) { +UNSUPPORTED("ba0yi3he6a0tf9iisvs2r7lud"); // ps_set_color(job, &(job->obj->fillcolor)); +UNSUPPORTED("2p1j7dn4pu0imzbf77mre9k3s"); // gvputs(job, "[ "); +UNSUPPORTED("af44mg78omj8g3sx02euas8s"); // gvprintpointflist(job, A, n); +UNSUPPORTED("8dk2likbqm43q0p28bspn3ux4"); // gvputs(job, " "); +UNSUPPORTED("didklqh38lq2cm8zufhnkjy94"); // gvprintpointf(job, A[0]); +UNSUPPORTED("8c4717nsqb9qh1m5pkqxu3nab"); // gvprintf(job, " ] %d true %s\n", n, name); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5745blic5ogwm4kppw7oweo2d"); // if (job->obj->pencolor.u.HSVA[3] > .5) { +UNSUPPORTED("21kugn3mt0fvrcqbct2bxlb7t"); // ps_set_pen_style(job); +UNSUPPORTED("axvgzd7tszpjn2lhenmufiumy"); // ps_set_color(job, &(job->obj->pencolor)); +UNSUPPORTED("a9rnggimah1qzsbj25u9gxjvi"); // gvputs(job, "[ "); +UNSUPPORTED("af44mg78omj8g3sx02euas8s"); // gvprintpointflist(job, A, n); +UNSUPPORTED("8dk2likbqm43q0p28bspn3ux4"); // gvputs(job, " "); +UNSUPPORTED("didklqh38lq2cm8zufhnkjy94"); // gvprintpointf(job, A[0]); +UNSUPPORTED("ar45etwgai0wcnglwou25mka6"); // gvprintf(job, " ] %d false %s\n", n, name); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 4f0tedaxz1mg2o27rukecbmjl +// static gvrender_engine_t psgen_engine = + + +//1 6mtxeu6btxy3ypxd3uwk9m4s5 +// static gvrender_features_t render_features_ps = + + +//1 4tcujj00n5zmmxavjrh1y4cv +// static gvdevice_features_t device_features_ps = + + +//1 2fdbmmc7eh40yzthi2e79fs6v +// static gvdevice_features_t device_features_eps = + + +//1 8ccgm6294yfcwokwubby9ui9t +// gvplugin_installed_t gvrender_ps_types[] = + + +//1 40zb59jhewjfetnd2oqgm1wh7 +// gvplugin_installed_t gvdevice_ps_types[] = + + +} diff -Nru plantuml-8024/src/gen/plugin/core/gvrender_core_svg__c.java plantuml-8039/src/gen/plugin/core/gvrender_core_svg__c.java --- plantuml-8024/src/gen/plugin/core/gvrender_core_svg__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/core/gvrender_core_svg__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,909 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.core; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvrender_core_svg__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 bvcf56ia0p6vpyltaakksum8n +// static char *sdasharray = + + +//1 32o9ll4py294p7pqt1k953d4w +// static char *sdotarray = + + + + +//3 827ujd356a39nqzblmaenq91m +// static void svg_bzptarray(GVJ_t * job, pointf * A, int n) +public static Object svg_bzptarray(Object... arg) { +UNSUPPORTED("cazk54t3k9gr91cuy8thjwn1l"); // static void svg_bzptarray(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("wrvu9u7a8j6i6y6552zncxfk"); // char c; +UNSUPPORTED("6828kr12yxx3rtky06j9ffxcx"); // c = 'M'; /* first point */ +UNSUPPORTED("1vi49g48u2rc9v88yhabta0yw"); // for (i = 0; i < n; i++) { +UNSUPPORTED("e6mg6rzvpgtjw4cqzq98shznt"); // gvprintf(job, "%c%g,%g", c, A[i].x, -A[i].y); +UNSUPPORTED("82djk3ejfh3b927h8m60dmvut"); // if (i == 0) +UNSUPPORTED("96i2xuik7cifcs9jthuh45l7g"); // c = 'C'; /* second point */ +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("5xdp61gfqysw7d4xy1nav6fbf"); // c = ' '; /* remaining points */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ayourvjaaejk97eijt6e5i8v3 +// static void svg_print_color(GVJ_t * job, gvcolor_t color) +public static Object svg_print_color(Object... arg) { +UNSUPPORTED("2fy9dz4og1ebbt4qo1ewgqlj6"); // static void svg_print_color(GVJ_t * job, gvcolor_t color) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1hn9tht7vq6fnuzbw3mgpwl6i"); // switch (color.type) { +UNSUPPORTED("8d4tzwdd3f608e3jl4lzyugu0"); // case COLOR_STRING: +UNSUPPORTED("13cycml8lfb1s4abkvnuhd8dh"); // gvputs(job, color.u.string); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1ke9k1couoeb4od2nwibgg0xu"); // case RGBA_BYTE: +UNSUPPORTED("abau3frv1i9j8mksgb01245yj"); // if (color.u.rgba[3] == 0) /* transparent */ +UNSUPPORTED("azlrdflufy5e04p9xhwe83phw"); // gvputs(job, "none"); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("7jq54scftd6wr5k5aefwuq5r4"); // gvprintf(job, "#%02x%02x%02x", +UNSUPPORTED("625ktjnk20h4ovl2ahumf26wi"); // color.u.rgba[0], color.u.rgba[1], color.u.rgba[2]); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("3yz4iw4v7mm470if4vb6yaack"); // assert(0); /* internal error */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 ewal0ri6n9uxj2sbig9gocp29 +// static void svg_grstyle(GVJ_t * job, int filled, int gid) +public static Object svg_grstyle(Object... arg) { +UNSUPPORTED("7elkc6m9imb8varjnzb30xb02"); // static void svg_grstyle(GVJ_t * job, int filled, int gid) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("c2x5gho26hata2tuomem5yvki"); // gvputs(job, " fill=\""); +UNSUPPORTED("6ix1vu2jcuffbc6bfez9ob1bm"); // if (filled == 2) { +UNSUPPORTED("dvtv0kwd2akm1jigbiozoiqw5"); // gvprintf(job, "url(#l_%d)", gid); +UNSUPPORTED("efd7920d59k4ry70p4ywahhv7"); // } else if (filled == 3) { +UNSUPPORTED("477jazwco6vx5txrrroe5v8z5"); // gvprintf(job, "url(#r_%d)", gid); +UNSUPPORTED("1vkwrzn8i2sf7fo7hsb8koiqs"); // } else if (filled) { +UNSUPPORTED("4gxgoulqqxervkv6xlv14to0z"); // svg_print_color(job, obj->fillcolor); +UNSUPPORTED("7qngwi9a7zbb7rz4n2iflsxnb"); // if (obj->fillcolor.type == RGBA_BYTE +UNSUPPORTED("2pteb6b7jxu3tu27ixhdkxkwr"); // && obj->fillcolor.u.rgba[3] > 0 +UNSUPPORTED("chj56ql2g9vj2sr7r5vc0ot60"); // && obj->fillcolor.u.rgba[3] < 255) +UNSUPPORTED("ckmt75f4ouzjccut0i5hbpjg1"); // gvprintf(job, "\" fill-opacity=\"%f", +UNSUPPORTED("deszrkdt62tz6uhj3w9wa76jm"); // ((float) obj->fillcolor.u.rgba[3] / 255.0)); +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("30hha2b9y77pqqb6gvdbgcm43"); // gvputs(job, "none"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5e5xi4p9sv1ne0igfwfygfhru"); // gvputs(job, "\" stroke=\""); +UNSUPPORTED("9gt78yg9a3ph8mbbfsrn902ib"); // svg_print_color(job, obj->pencolor); +UNSUPPORTED("eeukvd8elh15jnqvrpkyb0m4q"); // if (obj->penwidth != 1.) +UNSUPPORTED("4oq6l59kmwm1i8icb12lytqrk"); // gvprintf(job, "\" stroke-width=\"%g", obj->penwidth); +UNSUPPORTED("djo67r65tyuacmqc3z1ydjwqz"); // if (obj->pen == PEN_DASHED) { +UNSUPPORTED("a4974y0ir8mq99xudu33ptkas"); // gvprintf(job, "\" stroke-dasharray=\"%s", sdasharray); +UNSUPPORTED("8lyt1l1t8621bzmtn7js5zd27"); // } else if (obj->pen == PEN_DOTTED) { +UNSUPPORTED("427m3m7ogg0sx6ys62nnfa6dl"); // gvprintf(job, "\" stroke-dasharray=\"%s", sdotarray); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9iyzhe3jrf11fsglobdu8z73k"); // if (obj->pencolor.type == RGBA_BYTE && obj->pencolor.u.rgba[3] > 0 +UNSUPPORTED("77a9crd4hjv6i9wqpfa5vc90d"); // && obj->pencolor.u.rgba[3] < 255) +UNSUPPORTED("mhthumv7lzyftxticeftd06x"); // gvprintf(job, "\" stroke-opacity=\"%f", +UNSUPPORTED("89yrujjhfpvunosus21e587nh"); // ((float) obj->pencolor.u.rgba[3] / 255.0)); +UNSUPPORTED("37rm205a74loh45pr3ipamp7f"); // gvputs(job, "\""); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 29mng6on9ihwuvj7oo9qtysys +// static void svg_comment(GVJ_t * job, char *str) +public static Object svg_comment(Object... arg) { +UNSUPPORTED("5l1vlrhw8bkx7tct31qeo6151"); // static void svg_comment(GVJ_t * job, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6944t04aqfgp80pwqjz0owo0u"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6mwdhf5su8dr537zquta04atq +// static void svg_begin_job(GVJ_t * job) +public static Object svg_begin_job(Object... arg) { +UNSUPPORTED("4e7xpfs5qzccui3jexpu1pqoe"); // static void svg_begin_job(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s; +UNSUPPORTED("ayed4u3e3kuzbpmriet6gf3jg"); // gvputs(job, +UNSUPPORTED("4gl5ch5bkikklz0xjqvf4kwku"); // "\n"); +UNSUPPORTED("dydthgf8fenq2b363w8o1seqw"); // if ((s = agget(job->gvc->g, "stylesheet")) && s[0]) { +UNSUPPORTED("eucq5lq6nxhzzmxfzcixi5h4f"); // gvputs(job, "\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("ctj0hnvfmv4c6uy6y5b9bel4o"); // gvputs(job, "\n"); +UNSUPPORTED("9e78axv4zzrr2igh04wi6f9t7"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6u4qt4f63eb32j74vgthrvm3k +// static void svg_begin_graph(GVJ_t * job) +public static Object svg_begin_graph(Object... arg) { +UNSUPPORTED("etwt71rr36sz8xg8iwyo3lxpm"); // static void svg_begin_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("86eziot3ia26vo3saxgg09478"); // gvputs(job, "\n", +UNSUPPORTED("1ej7utiu4i2qo6za5fe4yt3mk"); // job->pagesArraySize.x * job->pagesArraySize.y); +UNSUPPORTED("bvmajkx0qvgcj8bp8btgb0aat"); // gvprintf(job, "width, job->height); +UNSUPPORTED("6rttd8yqbzg3ge9sbgwv1rc7f"); // gvprintf(job, " viewBox=\"%.2f %.2f %.2f %.2f\"", +UNSUPPORTED("1tgix2fnrgqsbtjao4h5qa8y8"); // job->canvasBox.LL.x, +UNSUPPORTED("clzvcjx7z45oixlhix29si3iq"); // job->canvasBox.LL.y, +UNSUPPORTED("4l8ealx1li6nrviboxdy946k5"); // job->canvasBox.UR.x, +UNSUPPORTED("s6k2ogvbwyc0koya5xkl6qz7"); // job->canvasBox.UR.y); +UNSUPPORTED("2bzmoimqon8kjq0pd5r46qm39"); // /* namespace of svg */ +UNSUPPORTED("4cefpshby7cvk6nh7o5k9dd1l"); // gvputs(job, " xmlns=\"http://www.w3.org/2000/svg\""); +UNSUPPORTED("173phnczur0o8y4nl77tj7w4t"); // /* namespace of xlink */ +UNSUPPORTED("26qfcwfkirbk76zvu4fbvw4dg"); // gvputs(job, " xmlns:xlink=\"http://www.w3.org/1999/xlink\""); +UNSUPPORTED("8nnf9bugtewncr07cqxfrhd2f"); // gvputs(job, ">\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2hipijo16x18tlxywsjp6iuco +// static void svg_end_graph(GVJ_t * job) +public static Object svg_end_graph(Object... arg) { +UNSUPPORTED("4avti5hfwd5zukwiqponwsj4p"); // static void svg_end_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("67oo7pytz2b3e3mgw1csct2it"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4n6b17byr3am0te4kjrvg0out +// static void svg_begin_layer(GVJ_t * job, char *layername, int layerNum, int numLayers) +public static Object svg_begin_layer(Object... arg) { +UNSUPPORTED("1r9c8oevaa5ry2zdcz0aacjqk"); // static void svg_begin_layer(GVJ_t * job, char *layername, int layerNum, +UNSUPPORTED("19krtcvsu8mqw2qgui7bmaa55"); // int numLayers) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a34kpoo0q6rr9pc4et7430a4v"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7t2zqyq53yz5otut6qswu0dwl +// static void svg_end_layer(GVJ_t * job) +public static Object svg_end_layer(Object... arg) { +UNSUPPORTED("944h0psiepf1zvjpjbct7pd04"); // static void svg_end_layer(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3hlnrvjmgpq1q1u2yiwyshlu7"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9xak74k7uwv1dmzpqrrjngk0d +// static void svg_begin_page(GVJ_t * job) +public static Object svg_begin_page(Object... arg) { +UNSUPPORTED("603r99thfc1ydss48z9z4a4xq"); // static void svg_begin_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("8idc8bxfl4rmppt1hunj7lyc8"); // /* its really just a page of the graph, but its still a graph, +UNSUPPORTED("4ftdfj0v4nvlad96sxezwsljv"); // * and it is the entire graph if we're not currently paging */ +UNSUPPORTED("a34kpoo0q6rr9pc4et7430a4v"); // gvputs(job, "id)); +UNSUPPORTED("5ad32c614mvtmwco7ib5x86r5"); // gvputs(job, "\" class=\"graph\""); +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("2g7b7oapf1f994y3cbzhwtffs"); // " transform=\"scale(%g %g) rotate(%d) translate(%g %g)\">\n", +UNSUPPORTED("5dcg2db7g2mpvt9u2skn5pvza"); // job->scale.x, job->scale.y, -job->rotation, +UNSUPPORTED("8bf40j0648ock32z2279j44lw"); // job->translation.x, -job->translation.y); +UNSUPPORTED("9ab0b7dzh2g3iqza181l2oauj"); // /* default style */ +UNSUPPORTED("a140rb3spyp62aewcsebcj6lz"); // if (agnameof(obj->u.g)[0]) { +UNSUPPORTED("5kgm2a3rpk6s37lzlp8n3f1tc"); // gvputs(job, ""); +UNSUPPORTED("56224uoiibb4gtpsqio4wdtya"); // gvputs(job, xml_string(agnameof(obj->u.g))); +UNSUPPORTED("4rj6l5z1l0bf3ie9wy97io0dl"); // gvputs(job, "\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3lrylfpzwboor5fazs5bzblqy +// static void svg_end_page(GVJ_t * job) +public static Object svg_end_page(Object... arg) { +UNSUPPORTED("a63vtpfz17jfrg1v6k4ithnck"); // static void svg_end_page(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3hlnrvjmgpq1q1u2yiwyshlu7"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1i2x52qcsyl7b2n1uk3xo8bt2 +// static void svg_begin_cluster(GVJ_t * job) +public static Object svg_begin_cluster(Object... arg) { +UNSUPPORTED("5770ni8d11ktmtniojx88vupg"); // static void svg_begin_cluster(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("a34kpoo0q6rr9pc4et7430a4v"); // gvputs(job, "id)); +UNSUPPORTED("ak3v9uh54ekp5ra6l7niqmhir"); // gvputs(job, "\" class=\"cluster\">"); +UNSUPPORTED("2wuzvoqzbmnfp97tc2ns323h7"); // gvputs(job, ""); +UNSUPPORTED("1y1fios3ue07ny9j6953yqqgl"); // gvputs(job, xml_string(agnameof(obj->u.g))); +UNSUPPORTED("6c646bxlvxh07x9tspq8c6op6"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 12501qs5dpkc4yvizuoe3oszr +// static void svg_end_cluster(GVJ_t * job) +public static Object svg_end_cluster(Object... arg) { +UNSUPPORTED("bf99mf7m7ypqllj8l88ybolew"); // static void svg_end_cluster(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3hlnrvjmgpq1q1u2yiwyshlu7"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 62sozvxvxh2xvvuz04updxsoj +// static void svg_begin_node(GVJ_t * job) +public static Object svg_begin_node(Object... arg) { +UNSUPPORTED("6kr2t5s0pv6i3wkyf85csih71"); // static void svg_begin_node(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("a34kpoo0q6rr9pc4et7430a4v"); // gvputs(job, "id)); +UNSUPPORTED("3t9kr3ms5xoxx12pel4pthxrk"); // if (job->layerNum > 1) +UNSUPPORTED("28x41kw3rxtipdm6pxbqd0m0x"); // gvprintf (job, "_%s", xml_string(job->gvc->layerIDs[job->layerNum])); +UNSUPPORTED("7brh7599jyc889z01a186atee"); // gvputs(job, "\" class=\"node\">"); +UNSUPPORTED("2wuzvoqzbmnfp97tc2ns323h7"); // gvputs(job, ""); +UNSUPPORTED("enr2p4c7ke6vme870ssfffrvf"); // gvputs(job, xml_string(agnameof(obj->u.n))); +UNSUPPORTED("6c646bxlvxh07x9tspq8c6op6"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2ssu7z7ncurc3v03vezyd70jd +// static void svg_end_node(GVJ_t * job) +public static Object svg_end_node(Object... arg) { +UNSUPPORTED("e42ev4sec4fgoa1lxjoddv9vc"); // static void svg_end_node(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3hlnrvjmgpq1q1u2yiwyshlu7"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4lkaj8kdorw3nudimt40x1p0m +// static void svg_begin_edge(GVJ_t * job) +public static Object svg_begin_edge(Object... arg) { +UNSUPPORTED("5wtieu2gn40jt7gdgind9bf4"); // static void svg_begin_edge(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("6ujcykx18mkszn1x15d0ptd8m"); // char *ename; +UNSUPPORTED("a34kpoo0q6rr9pc4et7430a4v"); // gvputs(job, "id)); +UNSUPPORTED("62xyzl6khtp7jteidlu55vcar"); // gvputs(job, "\" class=\"edge\">"); +UNSUPPORTED("2wuzvoqzbmnfp97tc2ns323h7"); // gvputs(job, ""); +UNSUPPORTED("dakm0rgzt870aen1gs4yfkqvm"); // ename = strdup_and_subst_obj("\\E", (void *) (obj->u.e)); +UNSUPPORTED("4h38cdc7bvsawzk220q60efus"); // gvputs(job, xml_string(ename)); +UNSUPPORTED("1ptaw1megx8o1nxddb9cru8b1"); // free(ename); +UNSUPPORTED("6c646bxlvxh07x9tspq8c6op6"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5jbl4ebzw11dwjfx2exyr6twj +// static void svg_end_edge(GVJ_t * job) +public static Object svg_end_edge(Object... arg) { +UNSUPPORTED("9d2i3nxvvtquponlm7cw31rha"); // static void svg_end_edge(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3hlnrvjmgpq1q1u2yiwyshlu7"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 2ls1kg5xerh9e6l4ngof4km0p +// static void svg_begin_anchor(GVJ_t * job, char *href, char *tooltip, char *target, char *id) +public static Object svg_begin_anchor(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("4y9u0dzkdunolhcze5gpuysob"); // svg_begin_anchor(GVJ_t * job, char *href, char *tooltip, char *target, +UNSUPPORTED("6tix47kj9o1r14xs59rhq05qt"); // char *id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("an2ri99x8tiwg2vb9fhwft10s"); // gvputs(job, ""); +UNSUPPORTED("amqsywm4tf3cr4mn35bngqsho"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4ddtxxh621w5w7uuokg15lfuk +// static void svg_end_anchor(GVJ_t * job) +public static Object svg_end_anchor(Object... arg) { +UNSUPPORTED("96oojtu8n7eizsc1uma8aeq1f"); // static void svg_end_anchor(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("gdbgsnwooftm30av6d4pf8vp"); // gvputs(job, "\n"); +UNSUPPORTED("3hlnrvjmgpq1q1u2yiwyshlu7"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 509rbvnnpffihwcds1q4o4el5 +// static void svg_textspan(GVJ_t * job, pointf p, textspan_t * span) +public static Object svg_textspan(Object... arg) { +UNSUPPORTED("cdh2myddciaij2jg2ygpu0f4d"); // static void svg_textspan(GVJ_t * job, pointf p, textspan_t * span) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("7pxhx3kruwsackat2315zxaxh"); // PostscriptAlias *pA; +UNSUPPORTED("boqtrshd5fxyaq9o4qrp6ies"); // char *family = NULL, *weight = NULL, *stretch = NULL, *style = NULL; +UNSUPPORTED("f0j3qhox7adw2oktxrx3z6n3b"); // unsigned int flags; +UNSUPPORTED("6eq2wimnyond8hhyt7fj62jkq"); // gvputs(job, "just) { +UNSUPPORTED("15tf5rbprgr65ucp24e4bba9t"); // case 'l': +UNSUPPORTED("256awp1qimuok9dpwcna489jx"); // gvputs(job, " text-anchor=\"start\""); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8pu80wsk8me7q17ensqlviq86"); // case 'r': +UNSUPPORTED("eyrb4ojjun5482g8v15qc73r3"); // gvputs(job, " text-anchor=\"end\""); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("37fbny64zwo23oymypyreuldc"); // case 'n': +UNSUPPORTED("3023vn5j4xt8ewwp1kfhet7lv"); // gvputs(job, " text-anchor=\"middle\""); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c9qtg5nyqzscz54w8w9mfwv7v"); // p.y += span->yoffset_centerline; +UNSUPPORTED("7l5wmvdydbzztglmyvtqj67ac"); // gvprintf(job, " x=\"%g\" y=\"%g\"", p.x, -p.y); +UNSUPPORTED("5gvgwpzq8o9hz6bmkphkldr14"); // pA = span->font->postscript_alias; +UNSUPPORTED("85v4mh1bambtpopgva0jmspn9"); // if (pA) { +UNSUPPORTED("93b89673s4m4oux21ikja33by"); // switch (GD_fontnames(job->gvc->g)) { +UNSUPPORTED("7t6u02vcbbp8pgwlv0s475wy7"); // case PSFONTS: +UNSUPPORTED("1zo7hx1h667n22l58hefai6xu"); // family = pA->name; +UNSUPPORTED("tzy3gy5xrkn2kylegnfq40gx"); // weight = pA->weight; +UNSUPPORTED("4biccq2rftoyzak5v0rx6bbua"); // style = pA->style; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("92e0ccltko27a70yl2qkogz66"); // case SVGFONTS: +UNSUPPORTED("d29jpipvsssvit4udg5m4rb9z"); // family = pA->svg_font_family; +UNSUPPORTED("b7bano7beynz6cdjgdw5p10xh"); // weight = pA->svg_font_weight; +UNSUPPORTED("9u0c8t1jl3ksdy4uqeau1ytm9"); // style = pA->svg_font_style; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("1drv0xz8hp34qnf72b4jpprg2"); // default: +UNSUPPORTED("8usgbe5tejhe3ynslgkg0pw79"); // case NATIVEFONTS: +UNSUPPORTED("e2iij4hncoq1z5mod74s7xb9l"); // family = pA->family; +UNSUPPORTED("tzy3gy5xrkn2kylegnfq40gx"); // weight = pA->weight; +UNSUPPORTED("4biccq2rftoyzak5v0rx6bbua"); // style = pA->style; +UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("apakty8ulxpur721psab8qc25"); // stretch = pA->stretch; +UNSUPPORTED("f2ahbdlyhogvxic3wgumxlnx4"); // gvprintf(job, " font-family=\"%s", family); +UNSUPPORTED("dlvmrp3zu9by9thsalw30kor9"); // if (pA->svg_font_family) +UNSUPPORTED("32af7qmlteybi80xxc5ku3d6c"); // gvprintf(job, ",%s", pA->svg_font_family); +UNSUPPORTED("5dipay2vdinr7r0bjdg2vqthj"); // gvputs(job, "\""); +UNSUPPORTED("1823tfo3ifqci6w34a3hp2jm3"); // if (weight) +UNSUPPORTED("erjhhd4wujeagj8jj8i553pyb"); // gvprintf(job, " font-weight=\"%s\"", weight); +UNSUPPORTED("dddcuk8zw7ruwe8def3hcqhq1"); // if (stretch) +UNSUPPORTED("1gicoqs8k03tm9i7r2n7yvtaf"); // gvprintf(job, " font-stretch=\"%s\"", stretch); +UNSUPPORTED("2k6etsm6v3ivdzk5e818fki9r"); // if (style) +UNSUPPORTED("dwa6mvk6ta3fyrds7hknr5e2l"); // gvprintf(job, " font-style=\"%s\"", style); +UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else +UNSUPPORTED("9rrqjadroq7mnlchw9ylzerl5"); // gvprintf(job, " font-family=\"%s\"", span->font->name); +UNSUPPORTED("8pu27ywa7vnvu5xu1c6mfmdcb"); // if ((span->font) && (flags = span->font->flags)) { +UNSUPPORTED("7ba191a6p5dly5azwbzrnq45c"); // if ((flags & (1 << 0)) && !weight) +UNSUPPORTED("4xpkdz7hajytfllktyx3iaoxg"); // gvprintf(job, " font-weight=\"bold\""); +UNSUPPORTED("8hb411ksceuuz5uydsa7vfjfz"); // if ((flags & (1 << 1)) && !style) +UNSUPPORTED("ch4ehek8vqzttd65qrzb0wgm5"); // gvprintf(job, " font-style=\"italic\""); +UNSUPPORTED("8lsjw9ngsxcsmcngqckbis5rr"); // if ((flags & ((1 << 2)|(1 << 5)|(1 << 6)))) { +UNSUPPORTED("5ceh1yy4z3eou7y6sb7daoij0"); // int comma = 0; +UNSUPPORTED("4ol2se2oh595cmdhxyppj02k0"); // gvprintf(job, " text-decoration=\""); +UNSUPPORTED("5rdoupdxxwd930xga1248jy1j"); // if ((flags & (1 << 2))) { +UNSUPPORTED("5pt5lms126q1c044gxn7rma8m"); // gvprintf(job, "underline"); +UNSUPPORTED("5cv6nleg9qer8wzue8yj3mhu2"); // comma = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("4z5scs2etzrpry6bj0hqsph8v"); // if ((flags & (1 << 6))) { +UNSUPPORTED("cipt1c28whuawjgtwpo5bgob3"); // gvprintf(job, "%soverline", (comma?",":"")); +UNSUPPORTED("5cv6nleg9qer8wzue8yj3mhu2"); // comma = 1; +UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // } +UNSUPPORTED("eqjv5jxaigje1i0o5dz9obtt5"); // if ((flags & (1 << 5))) +UNSUPPORTED("29q3ccadncw279yksfy435h8g"); // gvprintf(job, "%sline-through", (comma?",":"")); +UNSUPPORTED("8o2uvz97hn60l8j1okfocnsbl"); // gvprintf(job, "\""); +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9m7kf0pwe40hzlub06abvfeh9"); // if ((flags & (1 << 3))) +UNSUPPORTED("nr8krq8748jfkd0ispcblf9f"); // gvprintf(job, " baseline-shift=\"super\""); +UNSUPPORTED("clacovmef99qjhl0yk3rl7piu"); // if ((flags & (1 << 4))) +UNSUPPORTED("1sfxrrei9occxyku20wyj1583"); // gvprintf(job, " baseline-shift=\"sub\""); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("5emn8p1yeoecdhojsizg5m36t"); // gvprintf(job, " font-size=\"%.2f\"", span->font->size); +UNSUPPORTED("1ns59jz9xcw8otsxv6kgjgr5e"); // switch (obj->pencolor.type) { +UNSUPPORTED("8d4tzwdd3f608e3jl4lzyugu0"); // case COLOR_STRING: +UNSUPPORTED("b7fzwqzuy02m4jzy6m43xnpd1"); // if (strcasecmp(obj->pencolor.u.string, "black")) +UNSUPPORTED("f4bdj41dxfe9c90otbtpckefx"); // gvprintf(job, " fill=\"%s\"", obj->pencolor.u.string); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1ke9k1couoeb4od2nwibgg0xu"); // case RGBA_BYTE: +UNSUPPORTED("8ajndit7j1806751z61j7gfj9"); // gvprintf(job, " fill=\"#%02x%02x%02x\"", +UNSUPPORTED("5raiao60ivpnxzihbubbx93ls"); // obj->pencolor.u.rgba[0], obj->pencolor.u.rgba[1], +UNSUPPORTED("1y0xlsu8sbuudl5682umhlese"); // obj->pencolor.u.rgba[2]); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("3yz4iw4v7mm470if4vb6yaack"); // assert(0); /* internal error */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("b0wlwv4nycnh5og2scvone3i5"); // gvputs(job, ">"); +UNSUPPORTED("b2d727ygdp49jzxj4mltky63u"); // gvputs(job, xml_string0(span->str, NOT(0))); +UNSUPPORTED("dmq45ciur1vva2ppfymdb900x"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3gjy3fev22j4mgz0ihk6o8twf +// static int svg_gradstyle(GVJ_t * job, pointf * A, int n) +public static Object svg_gradstyle(Object... arg) { +UNSUPPORTED("2bfo7hixlhvjvrfaafyyg88ar"); // static int svg_gradstyle(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4umvnon5n2rousfurm6sgtb1j"); // pointf G[2]; +UNSUPPORTED("c7hjgducl4grlwhjwsinbtcee"); // float angle; +UNSUPPORTED("egjk91955uvmmeb20amqowi0s"); // static int gradId; +UNSUPPORTED("6fce7laz159a9nfec1weed9tk"); // int id = gradId++; +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("3fni3vsly1h90xeevvu56dkuj"); // angle = obj->gradient_angle * M_PI / 180; //angle of gradient line +UNSUPPORTED("2qsw987g3l3zzvlx93ioi4gx2"); // G[0].x = G[0].y = G[1].x = G[1].y = 0.; +UNSUPPORTED("3bsktxjgzrewl1tjtpyx52p3f"); // get_gradient_points(A, G, n, angle, 0); //get points on gradient line +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("aq4i0pf82yoa5atdyl1f1efy6"); // "\n\n", G[0].x, +UNSUPPORTED("biy1yz3z88ncz02663a4qs5fz"); // G[0].y, G[1].x, G[1].y); +UNSUPPORTED("bzb8si8h6dzcj4rpku675ennh"); // if (obj->gradient_frac > 0) +UNSUPPORTED("z96xvbayfas7iuiat2o7lacc"); // gvprintf(job, "gradient_frac - 0.001); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("5j0brbmsc3uac75nrnbi7hbjg"); // gvputs(job, "fillcolor); +UNSUPPORTED("25yyjy09rw6wj1hem358rrtx5"); // gvputs(job, ";stop-opacity:"); +UNSUPPORTED("894falzn9ikb3ugxo7rf30v01"); // if (obj->fillcolor.type == RGBA_BYTE && obj->fillcolor.u.rgba[3] > 0 +UNSUPPORTED("7msi3z20gjxrpjeseoycqw22g"); // && obj->fillcolor.u.rgba[3] < 255) +UNSUPPORTED("2dbabn5cv0kwtysa1rcpsrcq7"); // gvprintf(job, "%f", ((float) obj->fillcolor.u.rgba[3] / 255.0)); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("czmoa1w0n08fmcmgutwcr3apz"); // gvputs(job, "1."); +UNSUPPORTED("dy96k8bewexhluplfg196pr0c"); // gvputs(job, ";\"/>\n"); +UNSUPPORTED("bzb8si8h6dzcj4rpku675ennh"); // if (obj->gradient_frac > 0) +UNSUPPORTED("5vmqn1vuq3rb8jtl78xdov7zm"); // gvprintf(job, "gradient_frac); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("3nhcni3eauuet4n0oul1y75zp"); // gvputs(job, "stopcolor); +UNSUPPORTED("25yyjy09rw6wj1hem358rrtx5"); // gvputs(job, ";stop-opacity:"); +UNSUPPORTED("69jkl15qlmjhgsrh61j09jxp9"); // if (obj->stopcolor.type == RGBA_BYTE && obj->stopcolor.u.rgba[3] > 0 +UNSUPPORTED("5yvxwp3rfgj1z2d6dri2q83cx"); // && obj->stopcolor.u.rgba[3] < 255) +UNSUPPORTED("bivsghea127ronz4jnplynoy"); // gvprintf(job, "%f", ((float) obj->stopcolor.u.rgba[3] / 255.0)); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("czmoa1w0n08fmcmgutwcr3apz"); // gvputs(job, "1."); +UNSUPPORTED("1iszsyeqv6zyj3zb7w2pfpu4i"); // gvputs(job, ";\"/>\n\n\n"); +UNSUPPORTED("8jjtthatl5k37wbc9wfeogjct"); // return id; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 67ww4214261qqk7os79dnxb91 +// static int svg_rgradstyle(GVJ_t * job, pointf * A, int n) +public static Object svg_rgradstyle(Object... arg) { +UNSUPPORTED("2qd44o0nwqzg9a83ie5f868kk"); // static int svg_rgradstyle(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("anwmj45eahbja1x9uwxa4z67q"); // /* pointf G[2]; */ +UNSUPPORTED("c7hjgducl4grlwhjwsinbtcee"); // float angle; +UNSUPPORTED("1gwihowmrjihhujhiqo20snqq"); // int ifx, ify; +UNSUPPORTED("1v43j91cccrl5r4pl30a68se3"); // static int rgradId; +UNSUPPORTED("bg4c10jkjriorbj66ijiyhvh0"); // int id = rgradId++; +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("3fni3vsly1h90xeevvu56dkuj"); // angle = obj->gradient_angle * M_PI / 180; //angle of gradient line +UNSUPPORTED("a7sn2w4y0sbdrtnmup718yxk2"); // /* G[0].x = G[0].y = G[1].x = G[1].y; */ +UNSUPPORTED("ea160wg5wxr6lqtaddejmsqka"); // /* get_gradient_points(A, G, n, 0, 1); */ +UNSUPPORTED("ylvjn4yu1p8yxux37vu789na"); // if (angle == 0.) { +UNSUPPORTED("2izgqowow6pmwmv27fiva3tvz"); // ifx = ify = 50; +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("aum9vd35r7s7f9use8zf38z9k"); // ifx = 50 * (1 + cos(angle)); +UNSUPPORTED("cm03wwy8l2b9wnla83wnp3msr"); // ify = 50 * (1 - sin(angle)); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("a8yoal1dchk0nt5nro0jh2f29"); // gvprintf(job, +UNSUPPORTED("14gmgrq5aclflj13s6zyh43is"); // "\n\n", +UNSUPPORTED("l5wr5d3d8joaguf800asanct"); // id, ifx, ify); +UNSUPPORTED("8ado4ojlrd7ipx162vau7fxvx"); // gvputs(job, "fillcolor); +UNSUPPORTED("25yyjy09rw6wj1hem358rrtx5"); // gvputs(job, ";stop-opacity:"); +UNSUPPORTED("894falzn9ikb3ugxo7rf30v01"); // if (obj->fillcolor.type == RGBA_BYTE && obj->fillcolor.u.rgba[3] > 0 +UNSUPPORTED("7msi3z20gjxrpjeseoycqw22g"); // && obj->fillcolor.u.rgba[3] < 255) +UNSUPPORTED("2dbabn5cv0kwtysa1rcpsrcq7"); // gvprintf(job, "%f", ((float) obj->fillcolor.u.rgba[3] / 255.0)); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("czmoa1w0n08fmcmgutwcr3apz"); // gvputs(job, "1."); +UNSUPPORTED("dy96k8bewexhluplfg196pr0c"); // gvputs(job, ";\"/>\n"); +UNSUPPORTED("2ciprtix75p6n1rvrofzer09k"); // gvputs(job, "stopcolor); +UNSUPPORTED("25yyjy09rw6wj1hem358rrtx5"); // gvputs(job, ";stop-opacity:"); +UNSUPPORTED("69jkl15qlmjhgsrh61j09jxp9"); // if (obj->stopcolor.type == RGBA_BYTE && obj->stopcolor.u.rgba[3] > 0 +UNSUPPORTED("5yvxwp3rfgj1z2d6dri2q83cx"); // && obj->stopcolor.u.rgba[3] < 255) +UNSUPPORTED("bivsghea127ronz4jnplynoy"); // gvprintf(job, "%f", ((float) obj->stopcolor.u.rgba[3] / 255.0)); +UNSUPPORTED("div10atae09n36x269sl208r1"); // else +UNSUPPORTED("czmoa1w0n08fmcmgutwcr3apz"); // gvputs(job, "1."); +UNSUPPORTED("82y1ud8efmpl12973l04ba0xk"); // gvputs(job, ";\"/>\n\n\n"); +UNSUPPORTED("8jjtthatl5k37wbc9wfeogjct"); // return id; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6179wcbuyu90qz6rpi6mgppxr +// static void svg_ellipse(GVJ_t * job, pointf * A, int filled) +public static Object svg_ellipse(Object... arg) { +UNSUPPORTED("aeulny0gu30zb5sbdc2fb6i8q"); // static void svg_ellipse(GVJ_t * job, pointf * A, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("5n5mg10ujef23pj2i3tfg98mb"); // int gid = 0; +UNSUPPORTED("8tuvacxowvjyekfxkm6dgvp8f"); // /* A[] contains 2 points: the center and corner. */ +UNSUPPORTED("6ix1vu2jcuffbc6bfez9ob1bm"); // if (filled == 2) { +UNSUPPORTED("408j2y19ppayrgj8rcylk5uej"); // gid = svg_gradstyle(job, A, 2); +UNSUPPORTED("1f3u2rbrimcdejw1fhkimfmtq"); // } else if (filled == (3)) { +UNSUPPORTED("17dijdtidp3dm9zedxik5pte8"); // gid = svg_rgradstyle(job, A, 2); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("prza2073gtuthtmkfaeasaom"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4voh5pqlltjszwhlaqt8qc6h +// static void svg_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, int arrow_at_end, int filled) +public static Object svg_bezier(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("4b2sf54o9xlmuusu6iujw6tzo"); // svg_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, +UNSUPPORTED("dxw18xwwo4n9p0pz03h53njzw"); // int arrow_at_end, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bva9x0qdlhvut574wqidcp51o"); // int gid = 0; +UNSUPPORTED("6ix1vu2jcuffbc6bfez9ob1bm"); // if (filled == 2) { +UNSUPPORTED("336pt1lxutdhk6cn1yrrnb31g"); // gid = svg_gradstyle(job, A, n); +UNSUPPORTED("1f3u2rbrimcdejw1fhkimfmtq"); // } else if (filled == (3)) { +UNSUPPORTED("7ykd3tlli3mnnab2q0uiotvhd"); // gid = svg_rgradstyle(job, A, n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2wytgj2mvbp924ox0n93mx0s2"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7ibkd0we1erd0sjwcq0769ynl +// static void svg_polygon(GVJ_t * job, pointf * A, int n, int filled) +public static Object svg_polygon(Object... arg) { +UNSUPPORTED("bs95s3hzmbofgepmna889krqu"); // static void svg_polygon(GVJ_t * job, pointf * A, int n, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9rv93hlp64hdng1p33rot7lfv"); // int i, gid = 0; +UNSUPPORTED("6ix1vu2jcuffbc6bfez9ob1bm"); // if (filled == 2) { +UNSUPPORTED("336pt1lxutdhk6cn1yrrnb31g"); // gid = svg_gradstyle(job, A, n); +UNSUPPORTED("1f3u2rbrimcdejw1fhkimfmtq"); // } else if (filled == (3)) { +UNSUPPORTED("7ykd3tlli3mnnab2q0uiotvhd"); // gid = svg_rgradstyle(job, A, n); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("78z961zddfij8pb5rmwl4n2tm"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c8rn5juypta39ccw5pbh8pk49 +// static void svg_polyline(GVJ_t * job, pointf * A, int n) +public static Object svg_polyline(Object... arg) { +UNSUPPORTED("38urwxhvfthoaqtp3stv44nr7"); // static void svg_polyline(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("6g8w45vwmydzwnarkgxk5lr6g"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 b9hjnmz91lrhcgjntnr3pxxg8 +// static char *svg_knowncolors[] = + + +//1 4e1dh88puzpsk9gnuuog4v6n +// gvrender_engine_t svg_engine = + + +//1 eaglivfetg4iko7wbadzatuu1 +// gvrender_features_t render_features_svg = + + +//1 4n103oc5z61rm55i81psizksi +// gvdevice_features_t device_features_svg = + + +//1 bd33dnvj2ff9ha2832sa7e0u8 +// gvdevice_features_t device_features_svgz = + + +//1 c8ccvawathznbo5pws5jwz6q0 +// gvplugin_installed_t gvrender_svg_types[] = + + +//1 3g6v0vqqku0vco0few4b26in8 +// gvplugin_installed_t gvdevice_svg_types[] = + + +} diff -Nru plantuml-8024/src/gen/plugin/core/gvrender_core_tk__c.java plantuml-8039/src/gen/plugin/core/gvrender_core_tk__c.java --- plantuml-8024/src/gen/plugin/core/gvrender_core_tk__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/core/gvrender_core_tk__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,585 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.core; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvrender_core_tk__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + + + +//3 vnba6ctep0vnompe5n04xa3l +// static char *tkgen_string(char *s) +public static Object tkgen_string(Object... arg) { +UNSUPPORTED("aa32h5bkponzvoqtod1mva7ps"); // static char *tkgen_string(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("3y6wj3ntgmr1qkdpm7wp1dsch"); // return s; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dplaa6pgfnvndktf7zizb0dd9 +// static void tkgen_print_color(GVJ_t * job, gvcolor_t color) +public static Object tkgen_print_color(Object... arg) { +UNSUPPORTED("2038ixzt93lz5npkbq5uh0qwr"); // static void tkgen_print_color(GVJ_t * job, gvcolor_t color) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1hn9tht7vq6fnuzbw3mgpwl6i"); // switch (color.type) { +UNSUPPORTED("8d4tzwdd3f608e3jl4lzyugu0"); // case COLOR_STRING: +UNSUPPORTED("13cycml8lfb1s4abkvnuhd8dh"); // gvputs(job, color.u.string); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1ke9k1couoeb4od2nwibgg0xu"); // case RGBA_BYTE: +UNSUPPORTED("bk6hmzzce8zu1dqkcetedyx8a"); // if (color.u.rgba[3] == 0) /* transparent */ +UNSUPPORTED("cqkxybfy03p6sdzaw403x4anw"); // gvputs(job, "\"\""); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("7jq54scftd6wr5k5aefwuq5r4"); // gvprintf(job, "#%02x%02x%02x", +UNSUPPORTED("e0jr1wda5b2t6n9g1aas984rf"); // color.u.rgba[0], color.u.rgba[1], color.u.rgba[2]); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("3yz4iw4v7mm470if4vb6yaack"); // assert(0); /* internal error */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7fftf2s66s7nkjfvfwqxq2wri +// static void tkgen_print_tags(GVJ_t *job) +public static Object tkgen_print_tags(Object... arg) { +UNSUPPORTED("5rwzkk8kjevk7s1e5igx8wikf"); // static void tkgen_print_tags(GVJ_t *job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("6fmxub3a5s4yqhi6k71lbbewx"); // char *ObjType; +UNSUPPORTED("36c1s92uv6tfwjm89w624ibxa"); // unsigned int ObjId; +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("e6yyipvortaqhjfzpnfvdaea6"); // int ObjFlag; +UNSUPPORTED("9kqeoqv8k67h4o1r0zmzcpja4"); // switch (obj->emit_state) { +UNSUPPORTED("edn2txxwkd2kmwwo2dgazo6hg"); // case EMIT_NDRAW: +UNSUPPORTED("9wmdny2syd27ay1uhzyj36k2k"); // ObjType = "node"; +UNSUPPORTED("3x8av8kig5q0u8qayofbq7ao5"); // ObjFlag = 1; +UNSUPPORTED("4lrn04rxio5vdym9mvu96uakv"); // ObjId = AGSEQ(obj->u.n); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("3dkus0mrhy1dxovvhot9s7zc4"); // case EMIT_NLABEL: +UNSUPPORTED("9wmdny2syd27ay1uhzyj36k2k"); // ObjType = "node"; +UNSUPPORTED("arrey7e5x7t7ug3fcbir0h99f"); // ObjFlag = 0; +UNSUPPORTED("4lrn04rxio5vdym9mvu96uakv"); // ObjId = AGSEQ(obj->u.n); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("ddijyz6xr6xxiji0xwi84qsq1"); // case EMIT_EDRAW: +UNSUPPORTED("2zes9o0ykhutqmeeyeizb6sw6"); // case EMIT_TDRAW: +UNSUPPORTED("f4ax0wnfz42m0mvpo8ov4uwgj"); // case EMIT_HDRAW: +UNSUPPORTED("ekq5izr299kjgtxohtoayjuay"); // ObjType = "edge"; +UNSUPPORTED("3x8av8kig5q0u8qayofbq7ao5"); // ObjFlag = 1; +UNSUPPORTED("2n6su1jan1lfwl3bv3vpvtf2m"); // ObjId = AGSEQ(obj->u.e); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("82u5g3c6sjjwnob1gwc3bumud"); // case EMIT_ELABEL: +UNSUPPORTED("5a42wk0iyr9uwqezh67ujkaci"); // case EMIT_TLABEL: +UNSUPPORTED("bgniadjg8rn6697mbbbrtdj46"); // case EMIT_HLABEL: +UNSUPPORTED("ekq5izr299kjgtxohtoayjuay"); // ObjType = "edge"; +UNSUPPORTED("arrey7e5x7t7ug3fcbir0h99f"); // ObjFlag = 0; +UNSUPPORTED("2n6su1jan1lfwl3bv3vpvtf2m"); // ObjId = AGSEQ(obj->u.e); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("eoday7rklu6k6yz10yospl4fm"); // case EMIT_GDRAW: +UNSUPPORTED("8kzghiwhkdmm0vv0aph5lnl24"); // ObjType = "graph"; +UNSUPPORTED("3x8av8kig5q0u8qayofbq7ao5"); // ObjFlag = 1; +UNSUPPORTED("caivixbej5pdp5nezbwnt2ncp"); // ObjId = -1; /* hack! */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("bs2bx2mdpt81ogx6xg3uu2tmf"); // case EMIT_GLABEL: +UNSUPPORTED("arrey7e5x7t7ug3fcbir0h99f"); // ObjFlag = 0; +UNSUPPORTED("3gtg1b09awmbttihqzq7we0yl"); // ObjType = "graph label"; +UNSUPPORTED("caivixbej5pdp5nezbwnt2ncp"); // ObjId = -1; /* hack! */ +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("5mi2jlcl1mkxh27aq4swcrvsd"); // case EMIT_CDRAW: +UNSUPPORTED("8kzghiwhkdmm0vv0aph5lnl24"); // ObjType = "graph"; +UNSUPPORTED("3x8av8kig5q0u8qayofbq7ao5"); // ObjFlag = 1; +UNSUPPORTED("3019wv5sfqax6te4ocvlvdik2"); // ObjId = AGSEQ(obj->u.sg); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("2g9uft4wkkmqft2kfgbtkig71"); // case EMIT_CLABEL: +UNSUPPORTED("8kzghiwhkdmm0vv0aph5lnl24"); // ObjType = "graph"; +UNSUPPORTED("arrey7e5x7t7ug3fcbir0h99f"); // ObjFlag = 0; +UNSUPPORTED("3019wv5sfqax6te4ocvlvdik2"); // ObjId = AGSEQ(obj->u.sg); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("b844if1dn4kjcevyd28kssy2e"); // assert (0); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("55znmxgknag5qirkz1z6lpksh"); // gvprintf(job, " -tags {%d%s%d}", ObjFlag, ObjType, ObjId); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6oyiwbg0tt965z8czwrybx7sk +// static void tkgen_canvas(GVJ_t * job) +public static Object tkgen_canvas(Object... arg) { +UNSUPPORTED("3jvfz8f5qzwiglrakhy83umfp"); // static void tkgen_canvas(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("9h891dv6xzcbe003pt2da6zaa"); // if (job->external_context) +UNSUPPORTED("5qodxedfoew7wk6n6u7a55eoy"); // gvputs(job, job->imagedata); +UNSUPPORTED("axam71d21fg4esy4zqklfrwm4"); // else +UNSUPPORTED("2vrpkklffbp4w437thim0u8b7"); // gvputs(job, "$c"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 234xlyukcgtfrl83jcxd9lago +// static void tkgen_comment(GVJ_t * job, char *str) +public static Object tkgen_comment(Object... arg) { +UNSUPPORTED("2280389c7mo073ymgoiqe9zc7"); // static void tkgen_comment(GVJ_t * job, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ea77c3tz79kbzzy6ixp1d2kh4"); // gvputs(job, "# "); +UNSUPPORTED("5q62ijbcsw35n264ivjfulqvt"); // gvputs(job, tkgen_string(str)); +UNSUPPORTED("b7eafy5bhxn361xe2c8x8553b"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9fhmin70b5qf04bp9t3gp6ql5 +// static void tkgen_begin_job(GVJ_t * job) +public static Object tkgen_begin_job(Object... arg) { +UNSUPPORTED("7099eur0jsw3fx3t04i009op4"); // static void tkgen_begin_job(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8phrhbpt3gwyqfay75nnt01sn"); // gvputs(job, "# Generated by "); +UNSUPPORTED("4fmowhw6woxnz0yfmf7ihnv5w"); // gvputs(job, tkgen_string(job->common->info[0])); +UNSUPPORTED("cx22tlhx29vhu1t7qu0qa4qq7"); // gvputs(job, " version "); +UNSUPPORTED("71t1hukev4nj9d5vgu67aecnu"); // gvputs(job, tkgen_string(job->common->info[1])); +UNSUPPORTED("85rsmmnqjhjgun71czh20mlqf"); // gvputs(job, " ("); +UNSUPPORTED("eq1ksgr2y9k7jkdl3l5fx2dxr"); // gvputs(job, tkgen_string(job->common->info[2])); +UNSUPPORTED("2e9opn4z98non8389n3x7cvfj"); // gvputs(job, ")\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bidf6nln7jad77uyvyjiwsahj +// static void tkgen_begin_graph(GVJ_t * job) +public static Object tkgen_begin_graph(Object... arg) { +UNSUPPORTED("c66a3xz9acxwt162a2639p0kf"); // static void tkgen_begin_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("bf5z85r4dnnsytsyyw7t3gx6o"); // gvputs(job, "#"); +UNSUPPORTED("a140rb3spyp62aewcsebcj6lz"); // if (agnameof(obj->u.g)[0]) { +UNSUPPORTED("dzpnxf48rus9qbb0ks0h8dqd1"); // gvputs(job, " Title: "); +UNSUPPORTED("aqk6vyc91z34ikxpps386o2gb"); // gvputs(job, tkgen_string(agnameof(obj->u.g))); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9zpqzsstpmkb5v40kv0rt86rx"); // gvprintf(job, " Pages: %d\n", job->pagesArraySize.x * job->pagesArraySize.y); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 578fx153hsm0thk9yst8xsav +// static int first_periphery + + + + +//3 3y0ogli6wn5tiuel1z0cdvpmp +// static void tkgen_begin_node(GVJ_t * job) +public static Object tkgen_begin_node(Object... arg) { +UNSUPPORTED("65n9qvpouyi5n69pxqhy3ly5j"); // static void tkgen_begin_node(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("ekl6yorur1ahi50axky7lyawh"); // first_periphery = 1; /* FIXME - this is an ugly hack! */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 48o8qk8mdvwx737vbohxu80s6 +// static void tkgen_begin_edge(GVJ_t * job) +public static Object tkgen_begin_edge(Object... arg) { +UNSUPPORTED("4jelx905puajzw3pw79wr399g"); // static void tkgen_begin_edge(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("8rousoe1k1rgca46ysx8k11n9"); // first_periphery = -1; /* FIXME - this is an ugly ugly hack! Need this one for arrowheads. */ +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 elok7zvfwcod280ol1ewx7xi6 +// static void tkgen_textspan(GVJ_t * job, pointf p, textspan_t * span) +public static Object tkgen_textspan(Object... arg) { +UNSUPPORTED("ctbqa72rfic93u34n0vcy070n"); // static void tkgen_textspan(GVJ_t * job, pointf p, textspan_t * span) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("2eltcrenufen27upw0otuj5rg"); // const char *font; +UNSUPPORTED("7pxhx3kruwsackat2315zxaxh"); // PostscriptAlias *pA; +UNSUPPORTED("cav0e7ncloqss0hsvc4fyfi7s"); // int size; +UNSUPPORTED("t8jc65c5jcpqdkfpg4fjb8u4"); // if (obj->pen != PEN_NONE) { +UNSUPPORTED("jmu515qulcvrabiwjcvrcc3z"); // /* determine font size */ +UNSUPPORTED("27qmq4a14tm7p6a47yf7m6bwl"); // /* round fontsize down, better too small than too big */ +UNSUPPORTED("d6wfbdo0cro4b8en0ny4b4zn0"); // size = (int)(span->font->size * job->zoom); +UNSUPPORTED("2jso8vydmg40ljyk6riyesqpe"); // /* don't even bother if fontsize < 1 point */ +UNSUPPORTED("4ek995evzufhzop2kinw7g53o"); // if (size) { +UNSUPPORTED("9g1m3v4tgit2cudtd1mdwt6ui"); // tkgen_canvas(job); +UNSUPPORTED("efw4q0zbq8bz1zbek9qh8r362"); // gvputs(job, " create text "); +UNSUPPORTED("6z6wkidq5hq6evjicc4xdclir"); // p.y -= size * 0.55; /* cl correction */ +UNSUPPORTED("2v1yrsn7wzpnae01zojw8d7no"); // gvprintpointf(job, p); +UNSUPPORTED("786rbjesnuuzbso73vd0nop0m"); // gvputs(job, " -text {"); +UNSUPPORTED("3rqoe86bgahp689yo06e13tg9"); // gvputs(job, span->str); +UNSUPPORTED("c5daf8oxiupwtbg0xqvnmhcja"); // gvputs(job, "}"); +UNSUPPORTED("eyrt0ozexqiogwfvx6afjau6i"); // gvputs(job, " -fill "); +UNSUPPORTED("2g5b6wr0r6zs9h8szn82kzlwh"); // tkgen_print_color(job, obj->pencolor); +UNSUPPORTED("2f348xbokrc8ke8cqvx1n8r8t"); // gvputs(job, " -font {"); +UNSUPPORTED("9sp1k6nk7qgspuoh1fsykad1d"); // /* tk doesn't like PostScript font names like "Times-Roman" */ +UNSUPPORTED("3fgue2b4or4v2ea9156z83s40"); // /* so use family names */ +UNSUPPORTED("8hnpk6w2tpf5af6930s0fwjzv"); // pA = span->font->postscript_alias; +UNSUPPORTED("25qpoikp60eudd2s2rx82m4nz"); // if (pA) +UNSUPPORTED("8jg0mf1p0gcs81yus1o9buib3"); // font = pA->family; +UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else +UNSUPPORTED("blasxdo35r0ck273xhl4rt9aq"); // font = span->font->name; +UNSUPPORTED("eec8oj7b6e89hy8dovtjq79l3"); // gvputs(job, "\""); +UNSUPPORTED("bfjoee7kusanzqqsijx9fv8e3"); // gvputs(job, font); +UNSUPPORTED("eec8oj7b6e89hy8dovtjq79l3"); // gvputs(job, "\""); +UNSUPPORTED("3iim7kn92kmgyv6y3ksj64yts"); // /* use -ve fontsize to indicate pixels - see "man n font" */ +UNSUPPORTED("1npabltzbojkssc7y6zaax68z"); // gvprintf(job, " %d}", size); +UNSUPPORTED("aa77x3rwsgl9w2j4emr2slvvg"); // switch (span->just) { +UNSUPPORTED("dva9utlw6mjaqopti10jmbumi"); // case 'l': +UNSUPPORTED("3axfyb1v0b6zx9rpx0zk823t8"); // gvputs(job, " -anchor w"); +UNSUPPORTED("d1pumbibe8xz2i7gr1wj6zdak"); // break; +UNSUPPORTED("8t43r13dsz4v58jm5myew417n"); // case 'r': +UNSUPPORTED("21sml808kswrqs8l2ia7cc6lw"); // gvputs(job, " -anchor e"); +UNSUPPORTED("d1pumbibe8xz2i7gr1wj6zdak"); // break; +UNSUPPORTED("84cl4r6uveabh1lahtyw0ptb8"); // default: +UNSUPPORTED("9szdbf50c5ed9xajhvikui4o6"); // case 'n': +UNSUPPORTED("d1pumbibe8xz2i7gr1wj6zdak"); // break; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("2il2s87ajd09islkh7e2kirpo"); // tkgen_print_tags(job); +UNSUPPORTED("5uq09elejy2ot3s8x5d13dxs9"); // gvputs(job, "\n"); +UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // } +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3g3c5t15h39grskbujipsb3n7 +// static void tkgen_ellipse(GVJ_t * job, pointf * A, int filled) +public static Object tkgen_ellipse(Object... arg) { +UNSUPPORTED("5092mqkkvnba8iben6dh14iz5"); // static void tkgen_ellipse(GVJ_t * job, pointf * A, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r; +UNSUPPORTED("t8jc65c5jcpqdkfpg4fjb8u4"); // if (obj->pen != PEN_NONE) { +UNSUPPORTED("dm4570wcyjb3rox4itsi86l1q"); // /* A[] contains 2 points: the center and top right corner. */ +UNSUPPORTED("5s8l5jhamrhlmzhbxbollx0ce"); // r.x = A[1].x - A[0].x; +UNSUPPORTED("5xe23krn77wrf3q2cnb8tid6u"); // r.y = A[1].y - A[0].y; +UNSUPPORTED("42w8f4syzoodosc4lqh7zdhf6"); // A[0].x -= r.x; +UNSUPPORTED("8v0iqqzghk3op67s3lqog6ehb"); // A[0].y -= r.y; +UNSUPPORTED("cpyq52t64pblc9nfne0q9tzvv"); // tkgen_canvas(job); +UNSUPPORTED("897mq76heyo6hgxh4e95wy9zi"); // gvputs(job, " create oval "); +UNSUPPORTED("cxoxxyz7qmjvft5cr1rcjstyo"); // gvprintpointflist(job, A, 2); +UNSUPPORTED("cfzbaouamgyduscf63lup4oww"); // gvputs(job, " -fill "); +UNSUPPORTED("2r3o5gud8djix2uwr2zk2pvtr"); // if (filled) +UNSUPPORTED("in3qxhb278ephlrwa1dj9da8"); // tkgen_print_color(job, obj->fillcolor); +UNSUPPORTED("1zsbuj1o3uaqqaqgzt5q0kcs"); // else if (first_periphery) +UNSUPPORTED("1q9z405druym0tb73iu7wgsbj"); // /* tk ovals default to no fill, some fill +UNSUPPORTED("aeswylfea9yhqvz6vm9o2vu8l"); // * is necessary else "canvas find overlapping" doesn't +UNSUPPORTED("mj4s48s0gyalklfrcrgpxdol"); // * work as expected, use white instead */ +UNSUPPORTED("vh2rv9mnbc28spfzs8cyaoar"); // gvputs(job, "white"); +UNSUPPORTED("df5svfeo1imlc8qm6azeqkkmh"); // else +UNSUPPORTED("cqkxybfy03p6sdzaw403x4anw"); // gvputs(job, "\"\""); +UNSUPPORTED("67pmynbmmb156i27d3hh6z2lm"); // if (first_periphery == 1) +UNSUPPORTED("beq2s7wwrxfrqoschrxojlq3"); // first_periphery = 0; +UNSUPPORTED("5d33cl4ogs78yvw2i75icg9g6"); // gvputs(job, " -width "); +UNSUPPORTED("9lzl69uuazscmin8fqgbic818"); // gvprintdouble(job, obj->penwidth); +UNSUPPORTED("4cpwr3m94g1ys1g7qno3p7770"); // gvputs(job, " -outline "); +UNSUPPORTED("b1kdoymo0peu76atwvwlvppxm"); // tkgen_print_color(job, obj->pencolor); +UNSUPPORTED("7ljsiyfswf1fyq7u5u5meig9b"); // if (obj->pen == PEN_DASHED) +UNSUPPORTED("48ujmq20gr1bcmnb9x7qstuon"); // gvputs(job, " -dash 5"); +UNSUPPORTED("qz536d4xx8biptvgrkpjg3wo"); // if (obj->pen == PEN_DOTTED) +UNSUPPORTED("nxz0zcvg2vp69h2k4vz0zxjo"); // gvputs(job, " -dash 2"); +UNSUPPORTED("7xbsyhpezhbss8vlckn2p77i7"); // tkgen_print_tags(job); +UNSUPPORTED("427r2p9r3ymmxp5p69rt99ymp"); // gvputs(job, "\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eeajnb6p79ncip1c7g31tb6ig +// static void tkgen_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, int arrow_at_end, int filled) +public static Object tkgen_bezier(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("3iwjodya57audhxb7vhl6mtnt"); // tkgen_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, +UNSUPPORTED("77j21vz8ekimnj6b6uefavtz2"); // int arrow_at_end, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("t8jc65c5jcpqdkfpg4fjb8u4"); // if (obj->pen != PEN_NONE) { +UNSUPPORTED("cpyq52t64pblc9nfne0q9tzvv"); // tkgen_canvas(job); +UNSUPPORTED("bb6nsdbnte9p73wmrdar55mb7"); // gvputs(job, " create line "); +UNSUPPORTED("af44mg78omj8g3sx02euas8s"); // gvprintpointflist(job, A, n); +UNSUPPORTED("cfzbaouamgyduscf63lup4oww"); // gvputs(job, " -fill "); +UNSUPPORTED("8lreipxfzo9h2hdub9byfimmx"); // tkgen_print_color(job, obj->pencolor); +UNSUPPORTED("5d33cl4ogs78yvw2i75icg9g6"); // gvputs(job, " -width "); +UNSUPPORTED("9lzl69uuazscmin8fqgbic818"); // gvprintdouble(job, obj->penwidth); +UNSUPPORTED("7ljsiyfswf1fyq7u5u5meig9b"); // if (obj->pen == PEN_DASHED) +UNSUPPORTED("48ujmq20gr1bcmnb9x7qstuon"); // gvputs(job, " -dash 5"); +UNSUPPORTED("qz536d4xx8biptvgrkpjg3wo"); // if (obj->pen == PEN_DOTTED) +UNSUPPORTED("nxz0zcvg2vp69h2k4vz0zxjo"); // gvputs(job, " -dash 2"); +UNSUPPORTED("3rjk6ae9vk516ajz9hz4fr70p"); // gvputs(job, " -smooth bezier "); +UNSUPPORTED("7xbsyhpezhbss8vlckn2p77i7"); // tkgen_print_tags(job); +UNSUPPORTED("427r2p9r3ymmxp5p69rt99ymp"); // gvputs(job, "\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 d9qc2t2e84r1dyjrjh9lvaaqc +// static void tkgen_polygon(GVJ_t * job, pointf * A, int n, int filled) +public static Object tkgen_polygon(Object... arg) { +UNSUPPORTED("17wb4p46hmuuq5j0pxtx7ui5x"); // static void tkgen_polygon(GVJ_t * job, pointf * A, int n, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("t8jc65c5jcpqdkfpg4fjb8u4"); // if (obj->pen != PEN_NONE) { +UNSUPPORTED("cpyq52t64pblc9nfne0q9tzvv"); // tkgen_canvas(job); +UNSUPPORTED("1sccvd9iuqc3n3fkzk810g0y"); // gvputs(job, " create polygon "); +UNSUPPORTED("af44mg78omj8g3sx02euas8s"); // gvprintpointflist(job, A, n); +UNSUPPORTED("cfzbaouamgyduscf63lup4oww"); // gvputs(job, " -fill "); +UNSUPPORTED("2r3o5gud8djix2uwr2zk2pvtr"); // if (filled) +UNSUPPORTED("in3qxhb278ephlrwa1dj9da8"); // tkgen_print_color(job, obj->fillcolor); +UNSUPPORTED("1zsbuj1o3uaqqaqgzt5q0kcs"); // else if (first_periphery) +UNSUPPORTED("b9wx5iz0yfgk23y63056w64g8"); // /* tk polygons default to black fill, some fill +UNSUPPORTED("85jmgncgec9epxj3v03qzl4x6"); // * is necessary else "canvas find overlapping" doesn't +UNSUPPORTED("aorsjpcyvmasihruyarjm4f8p"); // * work as expected, use white instead */ +UNSUPPORTED("3jjudqx9sb6o5u51zdnpfjf9q"); // gvputs(job, "white"); +UNSUPPORTED("35nw1pbiz2p3s6qwlam5eoo3m"); // else +UNSUPPORTED("cys9b9aepuo25ntuuyhiqb6ln"); // gvputs(job, "\"\""); +UNSUPPORTED("94eif945asnu8gb1psb6wspvz"); // if (first_periphery == 1) +UNSUPPORTED("beq2s7wwrxfrqoschrxojlq3"); // first_periphery = 0; +UNSUPPORTED("5d33cl4ogs78yvw2i75icg9g6"); // gvputs(job, " -width "); +UNSUPPORTED("9lzl69uuazscmin8fqgbic818"); // gvprintdouble(job, obj->penwidth); +UNSUPPORTED("4cpwr3m94g1ys1g7qno3p7770"); // gvputs(job, " -outline "); +UNSUPPORTED("b1kdoymo0peu76atwvwlvppxm"); // tkgen_print_color(job, obj->pencolor); +UNSUPPORTED("7ljsiyfswf1fyq7u5u5meig9b"); // if (obj->pen == PEN_DASHED) +UNSUPPORTED("48ujmq20gr1bcmnb9x7qstuon"); // gvputs(job, " -dash 5"); +UNSUPPORTED("qz536d4xx8biptvgrkpjg3wo"); // if (obj->pen == PEN_DOTTED) +UNSUPPORTED("nxz0zcvg2vp69h2k4vz0zxjo"); // gvputs(job, " -dash 2"); +UNSUPPORTED("7xbsyhpezhbss8vlckn2p77i7"); // tkgen_print_tags(job); +UNSUPPORTED("427r2p9r3ymmxp5p69rt99ymp"); // gvputs(job, "\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 6c5hyqf18vqv7zjvhkfe6ti35 +// static void tkgen_polyline(GVJ_t * job, pointf * A, int n) +public static Object tkgen_polyline(Object... arg) { +UNSUPPORTED("at98nvxsdu2h0dornar4y15ul"); // static void tkgen_polyline(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("t8jc65c5jcpqdkfpg4fjb8u4"); // if (obj->pen != PEN_NONE) { +UNSUPPORTED("cpyq52t64pblc9nfne0q9tzvv"); // tkgen_canvas(job); +UNSUPPORTED("bb6nsdbnte9p73wmrdar55mb7"); // gvputs(job, " create line "); +UNSUPPORTED("af44mg78omj8g3sx02euas8s"); // gvprintpointflist(job, A, n); +UNSUPPORTED("cfzbaouamgyduscf63lup4oww"); // gvputs(job, " -fill "); +UNSUPPORTED("8lreipxfzo9h2hdub9byfimmx"); // tkgen_print_color(job, obj->pencolor); +UNSUPPORTED("7ljsiyfswf1fyq7u5u5meig9b"); // if (obj->pen == PEN_DASHED) +UNSUPPORTED("48ujmq20gr1bcmnb9x7qstuon"); // gvputs(job, " -dash 5"); +UNSUPPORTED("qz536d4xx8biptvgrkpjg3wo"); // if (obj->pen == PEN_DOTTED) +UNSUPPORTED("nxz0zcvg2vp69h2k4vz0zxjo"); // gvputs(job, " -dash 2"); +UNSUPPORTED("7xbsyhpezhbss8vlckn2p77i7"); // tkgen_print_tags(job); +UNSUPPORTED("427r2p9r3ymmxp5p69rt99ymp"); // gvputs(job, "\n"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 2zi5rrmhj45i69kzgpbc74bsu +// gvrender_engine_t tkgen_engine = + + +//1 89ucnxk8hokecx6wfztqf0uyc +// gvrender_features_t render_features_tk = + + +//1 bl8y4t7jlhz6ojwhbki4xl65i +// gvdevice_features_t device_features_tk = + + +//1 9u0gr6vcp1rk5yi3h4xw8lvbp +// gvplugin_installed_t gvrender_tk_types[] = + + +//1 2ge2ai9gnykik4apwbrsp6qua +// gvplugin_installed_t gvdevice_tk_types[] = + + +} diff -Nru plantuml-8024/src/gen/plugin/core/gvrender_core_vml__c.java plantuml-8039/src/gen/plugin/core/gvrender_core_vml__c.java --- plantuml-8024/src/gen/plugin/core/gvrender_core_vml__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/core/gvrender_core_vml__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,797 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.core; +import static smetana.core.Macro.UNSUPPORTED; + +public class gvrender_core_vml__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 btjrd0itqwulq8xqtw1togigv +// unsigned int graphHeight,graphWidth + + + + +//3 bevzgi4opmmgxwksl1lssepxc +// static int xml_isentity(char *s) +public static Object xml_isentity(Object... arg) { +UNSUPPORTED("ddxpdim5n11qvep9b61kpijae"); // static int xml_isentity(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("7309b02hjekdyss2l1jlfa3o5"); // s++; /* already known to be '&' */ +UNSUPPORTED("ee1xg58k0yj6mgak36f7bqx4z"); // if (*s == '#') { +UNSUPPORTED("1fe0kohehgdxhenrepo7ymdcw"); // s++; +UNSUPPORTED("autyof60ysqv0zxvcovs8ol1o"); // if (*s == 'x' || *s == 'X') { +UNSUPPORTED("8dqpp2f04tbhgnmk4gjjb8dga"); // s++; +UNSUPPORTED("7z8kjrmcms9gfhq10a65dbjog"); // while ((*s >= '0' && *s <= '9') +UNSUPPORTED("cvyao8709l4lhttkvu9hcnvne"); // || (*s >= 'a' && *s <= 'f') +UNSUPPORTED("5q6n6p2xf3gohuffw81ur8vhb"); // || (*s >= 'A' && *s <= 'F')) +UNSUPPORTED("zybbca41b450wccgr0kkur00"); // s++; +UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else { +UNSUPPORTED("1hg41j8n8b0uz0lmqlqcy30so"); // while (*s >= '0' && *s <= '9') +UNSUPPORTED("zybbca41b450wccgr0kkur00"); // s++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else { +UNSUPPORTED("8h0cru3h3jveaqc5sgyq4rk71"); // while ((*s >= 'a' && *s <= 'z') +UNSUPPORTED("31bir978ftxj7zjleb3mr1bei"); // || (*s >= 'A' && *s <= 'Z')) +UNSUPPORTED("8dqpp2f04tbhgnmk4gjjb8dga"); // s++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9hcbv4ydnt8trlfaz870sjsyh"); // if (*s == ';') +UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1; +UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 4b9su7anr30347e1zthtrc5ym +// static void vml_bzptarray(GVJ_t * job, pointf * A, int n) +public static Object vml_bzptarray(Object... arg) { +UNSUPPORTED("6cz31arpp4llfud9so2l10aha"); // static void vml_bzptarray(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("a1dehvgts7vkximbs2yo0q6pa"); // char *c; +UNSUPPORTED("7ldg2xw8jnkip042t0h8hr93d"); // c = "m "; /* first point */ +UNSUPPORTED("1vi49g48u2rc9v88yhabta0yw"); // for (i = 0; i < n; i++) { +UNSUPPORTED("1hgvbe15yhlrd0rd46akda9gh"); // /* integers only in path! */ +UNSUPPORTED("e0prmugfew3rqlba7h143j07h"); // gvprintf(job, "%s%.0f,%.0f ", c, A[i].x, graphHeight-A[i].y); +UNSUPPORTED("82djk3ejfh3b927h8m60dmvut"); // if (i == 0) +UNSUPPORTED("en3ws2ntk263bznbygnksiaqs"); // c = "c "; /* second point */ +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("bhkjgxzahx5z8sapqu2kv00g6"); // c = ""; /* remaining points */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("37rm205a74loh45pr3ipamp7f"); // gvputs(job, "\""); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 c7gxm1yprlzzrruo8zduf87vr +// static void vml_print_color(GVJ_t * job, gvcolor_t color) +public static Object vml_print_color(Object... arg) { +UNSUPPORTED("cq7w4y4atb4wd7qbo6b5xu52q"); // static void vml_print_color(GVJ_t * job, gvcolor_t color) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("1hn9tht7vq6fnuzbw3mgpwl6i"); // switch (color.type) { +UNSUPPORTED("8d4tzwdd3f608e3jl4lzyugu0"); // case COLOR_STRING: +UNSUPPORTED("13cycml8lfb1s4abkvnuhd8dh"); // gvputs(job, color.u.string); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1ke9k1couoeb4od2nwibgg0xu"); // case RGBA_BYTE: +UNSUPPORTED("bk6hmzzce8zu1dqkcetedyx8a"); // if (color.u.rgba[3] == 0) /* transparent */ +UNSUPPORTED("azlrdflufy5e04p9xhwe83phw"); // gvputs(job, "none"); +UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else +UNSUPPORTED("7jq54scftd6wr5k5aefwuq5r4"); // gvprintf(job, "#%02x%02x%02x", +UNSUPPORTED("e0jr1wda5b2t6n9g1aas984rf"); // color.u.rgba[0], color.u.rgba[1], color.u.rgba[2]); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("3yz4iw4v7mm470if4vb6yaack"); // assert(0); /* internal error */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 eev3wa4msf4zlx50e30mpo9cg +// static void vml_grstroke(GVJ_t * job, int filled) +public static Object vml_grstroke(Object... arg) { +UNSUPPORTED("4sobdt8jkapv72q76h5vuwa4d"); // static void vml_grstroke(GVJ_t * job, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("ehybj1eln7oznx97cjgnxbsh4"); // gvputs(job, "pencolor); +UNSUPPORTED("eeukvd8elh15jnqvrpkyb0m4q"); // if (obj->penwidth != 1.) +UNSUPPORTED("17tvpctzkynev0i8kjxunhih0"); // gvprintf(job, "\" weight=\"%.0fpt", obj->penwidth); +UNSUPPORTED("djo67r65tyuacmqc3z1ydjwqz"); // if (obj->pen == PEN_DASHED) { +UNSUPPORTED("ezihanuro72spak2bn2a3hsgj"); // gvputs(job, "\" dashstyle=\"dash"); +UNSUPPORTED("8lyt1l1t8621bzmtn7js5zd27"); // } else if (obj->pen == PEN_DOTTED) { +UNSUPPORTED("8c5eqi9230prlfcpffd4p996q"); // gvputs(job, "\" dashstyle=\"dot"); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6ojsqtwezy0tjycbxcwjo31az"); // gvputs(job, "\" />"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5pomyedqfnet64wh6uod6vb2q +// static void vml_grfill(GVJ_t * job, int filled) +public static Object vml_grfill(Object... arg) { +UNSUPPORTED("ajogwjsu07g39q2rvxv7fkhes"); // static void vml_grfill(GVJ_t * job, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("76ttmy9v8uqmlqtu38x3c4z7j"); // if (filled){ +UNSUPPORTED("57p42rg5dkh6garwd1jzybkv5"); // gvputs(job, " filled=\"true\" fillcolor=\""); +UNSUPPORTED("1n6pvxcwsq6w87n3kgcvwrkc0"); // vml_print_color(job, obj->fillcolor); +UNSUPPORTED("5mqqon1gnvkayrizou1xqmzp7"); // gvputs(job, "\" "); +UNSUPPORTED("d5hubmf3ko4b709pzj48gex81"); // }else{ +UNSUPPORTED("5bqy4mcc9vk4ut4zsywfztdpy"); // gvputs(job, " filled=\"false\" "); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dyzsyf54kn673uhch0r5fwpg +// char *html_string(char *s) +public static Object html_string(Object... arg) { +UNSUPPORTED("8tv9tnhw9ye4r7idvy9m4aey6"); // char *html_string(char *s) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("210phh7av8ei8ajjmpptx96m6"); // static char *buf = NULL; +UNSUPPORTED("6fpm1wk8mz0hofn15361g6nzn"); // static int bufsize = 0; +UNSUPPORTED("1q9p9mppsiolvz4xyp1xfe8s2"); // char *p, *sub, *prev = NULL; +UNSUPPORTED("9ee5mdh9hsw491mz8n88ey33d"); // int len, pos = 0; +UNSUPPORTED("29p3td3mgocxg8wzsqpdzufk1"); // int temp,cnt,remaining=0; +UNSUPPORTED("3kfrqsdr0zbtgcprb136f6jf7"); // char workstr[16]; +UNSUPPORTED("dqghet86b6lisy95vk1aiqmoq"); // long unsigned int charnum=0; +UNSUPPORTED("blujo31vwffo3a9xik8oit7xl"); // unsigned char byte; +UNSUPPORTED("a6hm2qvtj6ubjqjo5o0y1nbv6"); // unsigned char mask; +UNSUPPORTED("cjyiejw67ffjjsk60tgeebvif"); // if (!buf) { +UNSUPPORTED("4xkxdnucjd4ldoikgelnsa7c9"); // bufsize = 64; +UNSUPPORTED("9pvgystp8nwvblycum3rps3tz"); // buf = gmalloc(bufsize); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("dpfzdhkfq6u86uv5f9lnqfbpq"); // p = buf; +UNSUPPORTED("e8ng575h9ts71v7d04mtpxyr5"); // while (s && *s) { +UNSUPPORTED("85svsyrkaau2681m7ya7tygx6"); // if (pos > (bufsize - 8)) { +UNSUPPORTED("aa09fjtytqkag416h6457rmkr"); // bufsize *= 2; +UNSUPPORTED("3vu2n3g10rrkdmia0oyndfj4s"); // buf = grealloc(buf, bufsize); +UNSUPPORTED("cz6j3s7zlvrbs83g3e42o83z7"); // p = buf + pos; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("97iud4axotxlk7ywlijb75m3d"); // /* escape '&' only if not part of a legal entity sequence */ +UNSUPPORTED("2ulqzjhkp81o1cpur4y62jck9"); // if (*s == '&' && !(xml_isentity(s))) { +UNSUPPORTED("cac1jzftgtiz1fvztpxrb5pzr"); // sub = "&"; +UNSUPPORTED("17g0bn2jwfuvdxn93z9lsronr"); // len = 5; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7e1vaedh6l0yfegrgw9donb9e"); // /* '<' '>' are safe to substitute even if string is already UTF-8 coded +UNSUPPORTED("2hspzajrej6p5fmxtp3xo33mw"); // * since UTF-8 strings won't contain '<' or '>' */ +UNSUPPORTED("3xg4wo6utmvnlgyvg8ciz4tey"); // else if (*s == '<') { +UNSUPPORTED("13qv1mf2mabbasi5mgrjsqs3n"); // sub = "<"; +UNSUPPORTED("cn6mu8yh8covbdy1zkhq7256"); // len = 4; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("art2agkl4px2ncm5gmygaoi4v"); // else if (*s == '>') { +UNSUPPORTED("dbkjqbduusn4tza1p3ng8iuyi"); // sub = ">"; +UNSUPPORTED("cn6mu8yh8covbdy1zkhq7256"); // len = 4; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("aundz2f5ze9pcxo1dksgg0zxi"); // else if (*s == '-') { /* can't be used in xml comment strings */ +UNSUPPORTED("37g3n162xpdox7os6l6tphpwc"); // sub = "-"; +UNSUPPORTED("17g0bn2jwfuvdxn93z9lsronr"); // len = 5; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("1lvkv9camdmveih40gwylsnw6"); // else if (*s == ' ' && prev && *prev == ' ') { +UNSUPPORTED("b0atdb6d1uzal5s04csjvyq30"); // /* substitute 2nd and subsequent spaces with required_spaces */ +UNSUPPORTED("72g8c8ott8fvqjni8tir0plf7"); // sub = " "; /* inkscape doesn't recognise   */ +UNSUPPORTED("axaethtisavqkan2dx7laigpw"); // len = 6; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("9e32cag083iuoabhlvpcldsa8"); // else if (*s == '"') { +UNSUPPORTED("4w7kby1vesehrcs7zpowfb0q6"); // sub = """; +UNSUPPORTED("axaethtisavqkan2dx7laigpw"); // len = 6; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("akz9vs5rt6crj61e0batgdi09"); // else if (*s == '\'') { +UNSUPPORTED("6ohptq6v6vjhjivmjf7d5auoz"); // sub = "'"; +UNSUPPORTED("17g0bn2jwfuvdxn93z9lsronr"); // len = 5; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("7osubpgj63tmt0wj4pvxpwxoe"); // else if ((unsigned char)*s > 127) { +UNSUPPORTED("ck3iw54e1uosgnoar7tuj5yiq"); // byte=(unsigned char)*s; +UNSUPPORTED("685r14yvgnv8corj4fyj87dwc"); // cnt=0; +UNSUPPORTED("1sk7v07qqsmtkhcx3a69hnjyd"); // for (mask=127; mask < byte; mask=mask >>1){ +UNSUPPORTED("8fopryll06kvr0jnyzk09qfpq"); // cnt++; +UNSUPPORTED("3kqngicr09spfic6rk1h6wfin"); // byte=byte & mask; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("9i47zp8uygm8m9vcerpifoq21"); // if (cnt>1){ +UNSUPPORTED("ac2ry7rlqffp1fgrhemc934gu"); // charnum=byte; +UNSUPPORTED("90z94v1tlojflavsqt0s26r6j"); // remaining=cnt-1; +UNSUPPORTED("exa3odb9ukrxd1fpltrrdron7"); // }else{ +UNSUPPORTED("1og0iux5l20krj89wdqh9w7uv"); // charnum=charnum<<6; +UNSUPPORTED("cft38jo0ay29phgz8mhgumxq1"); // charnum+=byte; +UNSUPPORTED("aeih2m1vf4h9mot9xtfcgud99"); // remaining--; +UNSUPPORTED("7g94ubxa48a1yi3mf9v521b7c"); // } +UNSUPPORTED("5a72e9ko8v0uosbb9u6k1hcc6"); // if (remaining>0){ +UNSUPPORTED("6rtxeprdkn5hl12mzahfp266n"); // s++; +UNSUPPORTED("5ltvgvxpweo0rh2kdfohxc2hz"); // continue; +UNSUPPORTED("bqxp6rw8noicrlglo8qe8unqq"); // } +UNSUPPORTED("7et6ic8p4hqvhv3yec3yk55p6"); // /* we will build the html value right-to-left +UNSUPPORTED("2mvg42q0v95d1x1ed42qbvx01"); // * (least significant-to-most) */ +UNSUPPORTED("31b55rw6kawn2r6zmqrh228qf"); // workstr[15]=';'; +UNSUPPORTED("8i1jougg0os93j7bodx0va50k"); // sub=&workstr[14]; +UNSUPPORTED("d3rh9e3or0bar417dv1fit5fo"); // len=3; /* &# + ; */ +UNSUPPORTED("ewhmvw4ooekot2lyb18r4tj5g"); // do { +UNSUPPORTED("cwwv0otu07pe13eakls5xxerm"); // temp=charnum%10; +UNSUPPORTED("da252sqmro65h7ak83r4m3obu"); // *(sub--)=(char)((int)'0'+ temp); +UNSUPPORTED("1zirekhu226huecycep0ne7pu"); // charnum/=10; +UNSUPPORTED("aq5hs10z0fbv4mhaeuzcmkgog"); // len++; +UNSUPPORTED("4bx2iu76wtvgwdtj1yxkeo7bw"); // if (len>12){ /* 12 is arbitrary, but clearly in error */ +UNSUPPORTED("btpcnzuplf607blcmfn5tmveu"); // fprintf(stderr, "Error during conversion to \"UTF-8\". Quiting.\n"); +UNSUPPORTED("5s066qy9i7y4r1rxj2y59o0cj"); // exit(1); +UNSUPPORTED("43y12cfgcytwnxmxacc66zhaa"); // } +UNSUPPORTED("8lm55matje4172sjn6kkr5hxq"); // } while (charnum>0); +UNSUPPORTED("9y3km5dpa85tacgkfb6yz1mnf"); // *(sub--)='#'; +UNSUPPORTED("bo52wzef6reby5fe9dmhkk81l"); // *(sub)='&'; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else { +UNSUPPORTED("adxr80w3fzxvf4gxvbuo78rm5"); // sub = s; +UNSUPPORTED("ct414lk8my1pywj7ypk05e6d"); // len = 1; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("25ryz7f7izh8r6792860c1d0y"); // while (len--) { +UNSUPPORTED("byu93mjyl867v3xyy1fb9pw9"); // *p++ = *sub++; +UNSUPPORTED("27349aw1zezm0lpez1jn3pcw4"); // pos++; +UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // } +UNSUPPORTED("5j7yubj14qnrajv5mpkfylpk3"); // prev = s; +UNSUPPORTED("1fe0kohehgdxhenrepo7ymdcw"); // s++; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("2t1d66kwn86kqh0i665hqw6cl"); // *p = '\0'; +UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf; +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 dur880fsg5atx9nvy1p3ela10 +// static void vml_comment(GVJ_t * job, char *str) +public static Object vml_comment(Object... arg) { +UNSUPPORTED("c00kjo9ns7f17wgw1ohzw57tm"); // static void vml_comment(GVJ_t * job, char *str) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("66eb4g2o03hr5raslmg9nfbeu"); // gvputs(job, " \n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5oyyq924hjocedbpq4l7oehzv +// static void vml_begin_job(GVJ_t * job) +public static Object vml_begin_job(Object... arg) { +UNSUPPORTED("4vv3qhgtpbes35jfx8pclwrgh"); // static void vml_begin_job(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("4cbnyzmzg3cvvcs2o2oquee16"); // gvputs(job, "\n"); +UNSUPPORTED("928w4si5zj3hjwozhxchpdea3"); // gvputs(job, "\n\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3xv9atzf4fzy1912qmp1uvq0m +// static void vml_begin_graph(GVJ_t * job) +public static Object vml_begin_graph(Object... arg) { +UNSUPPORTED("avqdb0s2nmtb6gvp76ps0ei2k"); // static void vml_begin_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("8i0d7frxcvvmzhidle0zin9i0"); // char *name; +UNSUPPORTED("e1b0xy1qef9gc82t0ivbjb8zh"); // graphHeight =(int)(job->bb.UR.y - job->bb.LL.y); +UNSUPPORTED("55u7wm7xjrcquuu2n0hz1jizw"); // graphWidth =(int)(job->bb.UR.x - job->bb.LL.x); +UNSUPPORTED("6dl46e1222e567abtx5vifkzq"); // gvputs(job, ""); +UNSUPPORTED("b70phb0h3tdknwo7m1tzk0yu9"); // gvputs(job, "\n"); +UNSUPPORTED("an46m2db2jmg9d78f3cw0oeep"); // name = agnameof(obj->u.g); +UNSUPPORTED("2bwa0axbof4o9lendy4mv0cpr"); // if (name[0]) { +UNSUPPORTED("9a7iaj7rt5y0ad0nng4a7jxbo"); // gvputs(job, ""); +UNSUPPORTED("1upiypaoqqpwx9r8wle6ufk2g"); // gvputs(job, html_string(name)); +UNSUPPORTED("6hyq1ok8iavza1xukic96q0h"); // gvputs(job, ""); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("9tm5u4fe5an4thc0q7bjxnr75"); // gvprintf(job, "\n", job->pagesArraySize.x * job->pagesArraySize.y); +UNSUPPORTED("5la678eg2w90eh0sdfjkqn7cz"); // /* the next chunk and all the "DIV" stuff is not required, +UNSUPPORTED("6zlticf1cev2j2vigz4tx779o"); // * but it helps with non-IE browsers */ +UNSUPPORTED("lhp79l7hlsjswf7b7tw8wpdx"); // gvputs(job, " \n"); +UNSUPPORTED("269gwva6ivx61sjbdee3m8vj0"); // gvputs(job, ""); +UNSUPPORTED("93pwzzgpdh9757l4olxop6pi0"); // gvputs(job, "\n"); +UNSUPPORTED("3kryaxr0uaxo7qpu3ktwzjhz9"); // /* add 10pt pad to the bottom of the graph */ +UNSUPPORTED("87yakm6jlsdw93lwf21ta1fdh"); // gvputs(job, "
\n", graphWidth, 10+graphHeight); +UNSUPPORTED("5jwc1lxfhyiu5a3waqioulo3"); // gvputs(job, "\n"); +UNSUPPORTED("kfdibijgk7342gk871tg8gje"); // gvputs(job, "\n"); +UNSUPPORTED("35orfdyus9v7xk40ooebirkq5"); // gvputs(job, " ", graphWidth, graphHeight); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 9qyew5qsglzdy9qx7swdfe7mp +// static void vml_end_graph(GVJ_t * job) +public static Object vml_end_graph(Object... arg) { +UNSUPPORTED("anrryg4l39vgr225rotun9gnr"); // static void vml_end_graph(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("bxensc87sjojotvuy3k04i58o"); // gvputs(job, "\n"); +UNSUPPORTED("dvq6wxetnzd2fc0ug9uz2zppo"); // gvputs(job, "
\n"); +UNSUPPORTED("1s3mj7n718sgb6k6qbmbcdc9v"); // /* add 10pt pad to the bottom of the graph */ +UNSUPPORTED("27m6w3kfdqelgtlqxrx56jlxr"); // gvputs(job, "
\n"); +UNSUPPORTED("ebb37y083syliy72ozkhk4wks"); // gvputs(job, "\n"); +UNSUPPORTED("dvq6wxetnzd2fc0ug9uz2zppo"); // gvputs(job, "
\n"); +UNSUPPORTED("3s1hxsrzd7hxfmm8x5jyyjieh"); // gvputs(job, "
\n"); +UNSUPPORTED("5fd7vc4jew0i3dt9bu5fowugo"); // gvputs(job, "\n"); +UNSUPPORTED("2vufe64jniejolxnz5681gxqe"); // gvputs(job, "

Sorry, this diagram will only display correctly on Internet Explorer 5 (and up) browsers.

\n"); +UNSUPPORTED("dvq6wxetnzd2fc0ug9uz2zppo"); // gvputs(job, "
\n"); +UNSUPPORTED("ez37b3bcyingy4jq78tmg0pxj"); // gvputs(job, "
\n"); +UNSUPPORTED("eq3lzj7qatimzfjmxipjhyiqz"); // gvputs(job, "\n"); +UNSUPPORTED("dvq6wxetnzd2fc0ug9uz2zppo"); // gvputs(job, "
\n"); +UNSUPPORTED("dy4p0jrbfldkelbyrvvyzj4qz"); // gvputs(job, "\n\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 bl9rzlwd1nwcpeg5ugnuzqa5e +// static void vml_begin_anchor(GVJ_t * job, char *href, char *tooltip, char *target, char *id) +public static Object vml_begin_anchor(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("1a7vcj7j4eg713imsharya0ud"); // vml_begin_anchor(GVJ_t * job, char *href, char *tooltip, char *target, char *id) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("amqsywm4tf3cr4mn35bngqsho"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 1x3m9i59qmjupolfx4vhxw0v7 +// static void vml_end_anchor(GVJ_t * job) +public static Object vml_end_anchor(Object... arg) { +UNSUPPORTED("9vhqbnuimouv0ow47wxsqyrls"); // static void vml_end_anchor(GVJ_t * job) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("gdbgsnwooftm30av6d4pf8vp"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 3w9m053yxsneu33cud9timt9t +// static void vml_textspan(GVJ_t * job, pointf p, textspan_t * span) +public static Object vml_textspan(Object... arg) { +UNSUPPORTED("aizdf41m4lp84vrfxtqqjm5kk"); // static void vml_textspan(GVJ_t * job, pointf p, textspan_t * span) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("a6cqx0inp0ev3s5i17yp4krl3"); // pointf p1,p2; +UNSUPPORTED("84llcpxtvxaggx841n2t03850"); // obj_state_t *obj = job->obj; +UNSUPPORTED("7pxhx3kruwsackat2315zxaxh"); // PostscriptAlias *pA; +UNSUPPORTED("bpqxh9mig0sh1gasrlkg6hbph"); // switch (span->just) { +UNSUPPORTED("15tf5rbprgr65ucp24e4bba9t"); // case 'l': +UNSUPPORTED("bx5btb16vs7f3gj67kpy77ey5"); // p1.x=p.x; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8pu80wsk8me7q17ensqlviq86"); // case 'r': +UNSUPPORTED("88f68xft9y7x7p7757jw5v539"); // p1.x=p.x-span->size.x; +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("37fbny64zwo23oymypyreuldc"); // case 'n': +UNSUPPORTED("41f56eyenmswtnwdl92dgzi6i"); // p1.x=p.x-(span->size.x/2); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("6v5kd5y5vru7rgdgdqpx8v5qn"); // p2.x=p1.x+span->size.x; +UNSUPPORTED("8qe9sncool5td3uxg4au3fcr3"); // if (span->size.y < span->font->size){ +UNSUPPORTED("2ta69i4d7oe74st195r1on46r"); // span->size.y = 1 + (1.1*span->font->size); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("l7n28ygxehizidxvci80c5eo"); // p1.x-=8; /* vml textbox margin fudge factor */ +UNSUPPORTED("d04wets4lspsvs5pxjr5f7qiv"); // p2.x+=8; /* vml textbox margin fudge factor */ +UNSUPPORTED("8y5r2cgryhw2do4ex1gj8g5k2"); // p2.y=graphHeight-(p.y); +UNSUPPORTED("348q7svrvxy55boyhh6ini0m5"); // p1.y=(p2.y-span->size.y); +UNSUPPORTED("dn75y57iaumqs7rtia0ypr6ho"); // /* text "y" was too high +UNSUPPORTED("1lan35rlz4uz5bucr5o7r0g4v"); // * Graphviz uses "baseline", VML seems to use bottom of descenders - so we fudge a little +UNSUPPORTED("20rbf35vu5ppvv7irnm95dyo"); // * (heuristics - based on eyeballs) */ +UNSUPPORTED("2612tyqxei5p6h4f9ys5dee86"); // if (span->font->size <12.){ /* see graphs/directed/arrows.gv */ +UNSUPPORTED("cvs1mwall6wq4ij48lqm4op48"); // p1.y+=1.4+span->font->size/5; /* adjust by approx. descender */ +UNSUPPORTED("1rt3dk2b5mwsszlr7636vr1iu"); // p2.y+=1.4+span->font->size/5; /* adjust by approx. descender */ +UNSUPPORTED("d5hubmf3ko4b709pzj48gex81"); // }else{ +UNSUPPORTED("d562p565hvv27m9q6hboqoceg"); // p1.y+=2+span->font->size/5; /* adjust by approx. descender */ +UNSUPPORTED("9zyp3amjqv7igfjsyakzl17mh"); // p2.y+=2+span->font->size/5; /* adjust by approx. descender */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("euxy967coeahp4bc20yubm2yl"); // gvprintf(job, "\n"); +UNSUPPORTED("9qq0nba1t0ng7kljc1sbs0qfj"); // gvputs(job, "font->postscript_alias; +UNSUPPORTED("85v4mh1bambtpopgva0jmspn9"); // if (pA) { +UNSUPPORTED("bgqxo8khg1e099cxrptiwit1z"); // gvprintf(job, "font-family: '%s';", pA->family); +UNSUPPORTED("9h5q63fru796qjss1e7qmjs87"); // if (pA->weight) +UNSUPPORTED("d27tbziquy9uwa9ti4aosdkhl"); // gvprintf(job, "font-weight: %s;", pA->weight); +UNSUPPORTED("9huytp1h7voa42nmxmer22vzu"); // if (pA->stretch) +UNSUPPORTED("3pki43hxuzxyud3tzdxwrhaa0"); // gvprintf(job, "font-stretch: %s;", pA->stretch); +UNSUPPORTED("5d7zj4s1n6561mk9pcx6o6cgu"); // if (pA->style) +UNSUPPORTED("eh8ev5fgxm7vpxf9pk75n85ex"); // gvprintf(job, "font-style: %s;", pA->style); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else { +UNSUPPORTED("fz55kaucqr8430w3mc1m8hwl"); // gvprintf(job, "font-family: \'%s\';", span->font->name); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("7rot1wnzwom21e0ppkrh5zdav"); // gvprintf(job, " font-size: %.2fpt;", span->font->size); +UNSUPPORTED("1ns59jz9xcw8otsxv6kgjgr5e"); // switch (obj->pencolor.type) { +UNSUPPORTED("8d4tzwdd3f608e3jl4lzyugu0"); // case COLOR_STRING: +UNSUPPORTED("b7fzwqzuy02m4jzy6m43xnpd1"); // if (strcasecmp(obj->pencolor.u.string, "black")) +UNSUPPORTED("8nzpd9zrx7vpp0m8m1qgid7do"); // gvprintf(job, "color:%s;", obj->pencolor.u.string); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("1ke9k1couoeb4od2nwibgg0xu"); // case RGBA_BYTE: +UNSUPPORTED("c3dfl7pq8vixzp7cbj7583mln"); // gvprintf(job, "color:#%02x%02x%02x;", +UNSUPPORTED("7se80bj4r3ij8yqdqdw96l2d2"); // obj->pencolor.u.rgba[0], obj->pencolor.u.rgba[1], obj->pencolor.u.rgba[2]); +UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break; +UNSUPPORTED("8l3rwj6ctswoa4gvh2j4poq70"); // default: +UNSUPPORTED("3yz4iw4v7mm470if4vb6yaack"); // assert(0); /* internal error */ +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8stgz0xogc10yjcir6sanbobh"); // gvputs(job, "\">
"); +UNSUPPORTED("2y2125yjs17y8io61dtxwyrmo"); // gvputs(job, html_string(span->str)); +UNSUPPORTED("32wtt9g6cjyw7gk6tdrbhp88n"); // gvputs(job, "
\n"); +UNSUPPORTED("ec1nzz2ms8uxq882p4akkdc7x"); // gvputs(job, "
\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 7uemnirlwr6y4ngurfwnenkrx +// static void vml_ellipse(GVJ_t * job, pointf * A, int filled) +public static Object vml_ellipse(Object... arg) { +UNSUPPORTED("2rzq7xornook326ugiqtx9ip8"); // static void vml_ellipse(GVJ_t * job, pointf * A, int filled) +UNSUPPORTED("4ecslok588dpq5vf5tzktm48k"); // { +UNSUPPORTED("a736y55qgt64cklrj8yk9uvu"); // double dx, dy, left, right, top, bottom; +UNSUPPORTED("8tuvacxowvjyekfxkm6dgvp8f"); // /* A[] contains 2 points: the center and corner. */ +UNSUPPORTED("7s2m9hgonz1vxyrkaunqzmm0x"); // gvputs(job, " "); +UNSUPPORTED("7gqf6f2q0xzi9bhfhrkseam0y"); // vml_grstroke(job, filled); +UNSUPPORTED("18q2t3ic8pbe1l0wsmw06z2n5"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 b5kmfiqdu9573i9iqip2kkynm +// static void vml_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, int arrow_at_end, int filled) +public static Object vml_bezier(Object... arg) { +UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void +UNSUPPORTED("cxwdtprcwq7lm3c780w1tds29"); // vml_bezier(GVJ_t * job, pointf * A, int n, int arrow_at_start, +UNSUPPORTED("77j21vz8ekimnj6b6uefavtz2"); // int arrow_at_end, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("dticghuio7so5b1whdvly7d4h"); // gvputs(job, " "); +UNSUPPORTED("7gqf6f2q0xzi9bhfhrkseam0y"); // vml_grstroke(job, filled); +UNSUPPORTED("3sp32zqf7o27wlhfm0e8qwo8f"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 5k4nobte06p1zh3op4d1ubct2 +// static void vml_polygon(GVJ_t * job, pointf * A, int n, int filled) +public static Object vml_polygon(Object... arg) { +UNSUPPORTED("14advi4blywcgi43gbteimc7r"); // static void vml_polygon(GVJ_t * job, pointf * A, int n, int filled) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("dwt7qbi5bm9qnisfbxetj2c1u"); // double px,py; +UNSUPPORTED("dticghuio7so5b1whdvly7d4h"); // gvputs(job, " "); +UNSUPPORTED("7gqf6f2q0xzi9bhfhrkseam0y"); // vml_grstroke(job, filled); +UNSUPPORTED("3sp32zqf7o27wlhfm0e8qwo8f"); // gvputs(job, ""); +UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // } +UNSUPPORTED("8va191an28d0k948tf16y0nxn"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + + + +//3 elv8mlcw3hix4jbez3msjvwl3 +// static void vml_polyline(GVJ_t * job, pointf * A, int n) +public static Object vml_polyline(Object... arg) { +UNSUPPORTED("9k67ncobudll8378huzqmql4u"); // static void vml_polyline(GVJ_t * job, pointf * A, int n) +UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // { +UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i; +UNSUPPORTED("dticghuio7so5b1whdvly7d4h"); // gvputs(job, " ", graphWidth, graphHeight); +UNSUPPORTED("8xo83512azztf61gbgqbp60i"); // gvputs(job, ""); +UNSUPPORTED("1k6f5ran45kpeb0vrbfuqpswu"); // vml_grstroke(job, 0); /* no fill here for polyline */ +UNSUPPORTED("8va191an28d0k948tf16y0nxn"); // gvputs(job, "\n"); +UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // } + +throw new UnsupportedOperationException(); +} + + +//1 d0v2ctv7fk7xyjshwyllfkcpt +// static char *vml_knowncolors[] = + + +//1 i4obs2vdal7jcgzcmqpiabad +// gvrender_engine_t vml_engine = + + +//1 f19ql4f0xzpd3o01gsqdld6hy +// gvrender_features_t render_features_vml = + + +//1 do5wawnnfhzf2g7r3wftgsy4o +// gvdevice_features_t device_features_vml = + + +//1 8yst1dqk2z5q83e32t3wmrr75 +// gvdevice_features_t device_features_vmlz = + + +//1 65n0gf390fc3raflk4vdbxp9y +// gvplugin_installed_t gvrender_vml_types[] = + + +//1 2pmjyl28in77fbh1nf0xxn20c +// gvplugin_installed_t gvdevice_vml_types[] = + + +} diff -Nru plantuml-8024/src/gen/plugin/dot_layout/gvlayout_dot_layout__c.java plantuml-8039/src/gen/plugin/dot_layout/gvlayout_dot_layout__c.java --- plantuml-8024/src/gen/plugin/dot_layout/gvlayout_dot_layout__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/dot_layout/gvlayout_dot_layout__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,156 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.dot_layout; + +public class gvlayout_dot_layout__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 baedz5i9est5csw3epz3cv7z +// typedef Ppoly_t Ppolyline_t + + +//1 9k44uhd5foylaeoekf3llonjq +// extern Dtmethod_t* Dtset + + +//1 1ahfywsmzcpcig2oxm7pt9ihj +// extern Dtmethod_t* Dtbag + + +//1 anhghfj3k7dmkudy2n7rvt31v +// extern Dtmethod_t* Dtoset + + +//1 5l6oj1ux946zjwvir94ykejbc +// extern Dtmethod_t* Dtobag + + +//1 2wtf222ak6cui8cfjnw6w377z +// extern Dtmethod_t* Dtlist + + +//1 d1s1s6ibtcsmst88e3057u9r7 +// extern Dtmethod_t* Dtstack + + +//1 axa7mflo824p6fspjn1rdk0mt +// extern Dtmethod_t* Dtqueue + + +//1 ega812utobm4xx9oa9w9ayij6 +// extern Dtmethod_t* Dtdeque + + +//1 cyfr996ur43045jv1tjbelzmj +// extern Dtmethod_t* Dtorder + + +//1 wlofoiftbjgrrabzb2brkycg +// extern Dtmethod_t* Dttree + + +//1 12bds94t7voj7ulwpcvgf6agr +// extern Dtmethod_t* Dthash + + +//1 9lqknzty480cy7zsubmabkk8h +// extern Dtmethod_t _Dttree + + +//1 bvn6zkbcp8vjdhkccqo1xrkrb +// extern Dtmethod_t _Dthash + + +//1 9lidhtd6nsmmv3e7vjv9e10gw +// extern Dtmethod_t _Dtlist + + +//1 34ujfamjxo7xn89u90oh2k6f8 +// extern Dtmethod_t _Dtqueue + + +//1 3jy4aceckzkdv950h89p4wjc8 +// extern Dtmethod_t _Dtstack + + +//1 8dfqgf3u1v830qzcjqh9o8ha7 +// extern Agmemdisc_t AgMemDisc + + +//1 18k2oh2t6llfsdc5x0wlcnby8 +// extern Agiddisc_t AgIdDisc + + +//1 a4r7hi80gdxtsv4hdoqpyiivn +// extern Agiodisc_t AgIoDisc + + +//1 bnzt5syjb7mgeru19114vd6xx +// extern Agdisc_t AgDefaultDisc + + +//1 35y2gbegsdjilegaribes00mg +// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected + + +//1 c2rygslq6bcuka3awmvy2b3ow +// typedef Agsubnode_t Agnoderef_t + + +//1 xam6yv0dcsx57dtg44igpbzn +// typedef Dtlink_t Agedgeref_t + + +//1 3rtanuqep8p4j1ff0fu8pc317 +// gvlayout_engine_t dotgen_engine = + + +//1 d72gzhpu1133ozfmxotx96w15 +// gvlayout_features_t dotgen_features = + + +//1 b4znay22fp8g1gn9bsyovltke +// gvplugin_installed_t gvlayout_dot_layout[] = + + +} diff -Nru plantuml-8024/src/gen/plugin/dot_layout/gvplugin_dot_layout__c.java plantuml-8039/src/gen/plugin/dot_layout/gvplugin_dot_layout__c.java --- plantuml-8024/src/gen/plugin/dot_layout/gvplugin_dot_layout__c.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/gen/plugin/dot_layout/gvplugin_dot_layout__c.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package gen.plugin.dot_layout; + +public class gvplugin_dot_layout__c { +//1 2digov3edok6d5srhgtlmrycs +// extern lt_symlist_t lt_preloaded_symbols[] + + +//1 7fijea0rwszpxhs4k5zka76di +// extern gvplugin_installed_t gvlayout_dot_layout[] + + +//1 b52d96517bdj0tz5tyri3l3ma +// static gvplugin_api_t apis[] = + + +//1 91j4f2ok2soe72bm33t6lrnvv +// gvplugin_library_t gvplugin_dot_layout_LTX_library = + + +} diff -Nru plantuml-8024/src/h/aag_buffer_state.java plantuml-8039/src/h/aag_buffer_state.java --- plantuml-8024/src/h/aag_buffer_state.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/aag_buffer_state.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 e7lgo132acoi1iqay15jxdzl9 + +public interface aag_buffer_state extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct aag_buffer_state *YY_BUFFER_STATE"); +} + +// typedef struct aag_buffer_state *YY_BUFFER_STATE; \ No newline at end of file diff -Nru plantuml-8024/src/h/aag_trans_info.java plantuml-8039/src/h/aag_trans_info.java --- plantuml-8024/src/h/aag_trans_info.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/aag_trans_info.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8hrh4p1c1600bqkq54h8v51u7 + +public interface aag_trans_info extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct aag_trans_info", +"{", +"flex_int32_t aag_verify", +"flex_int32_t aag_nxt", +"}"); +} + +// struct aag_trans_info +// { +// flex_int32_t aag_verify; +// flex_int32_t aag_nxt; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/adjmatrix_t.java plantuml-8039/src/h/adjmatrix_t.java --- plantuml-8024/src/h/adjmatrix_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/adjmatrix_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 lba1kw4oxusponhglgarjnj1 + +public interface adjmatrix_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct adjmatrix_t", +"{", +"int nrows, ncols", +"char *data", +"}", +"adjmatrix_t"); +} + +// typedef struct adjmatrix_t { +// int nrows, ncols; +// char *data; +// } adjmatrix_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agattr_s.java plantuml-8039/src/h/Agattr_s.java --- plantuml-8024/src/h/Agattr_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agattr_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 bhyg6b8o9rt02pkq0cw5v7v8l + +public interface Agattr_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agattr_s", +"{", +"Agrec_t h", +"Dict_t *dict", +"char **str", +"}"); +} + +// struct Agattr_s { /* dynamic string attributes */ +// Agrec_t h; /* common data header */ +// Dict_t *dict; /* shared dict to interpret attr field */ +// char **str; /* the attribute string values */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agattr_t.java plantuml-8039/src/h/Agattr_t.java --- plantuml-8024/src/h/Agattr_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agattr_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 4eab8jpwd22sxwe7231h81ak7 + +public interface Agattr_t extends Agattr_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agattr_s Agattr_t"); +} + +// typedef struct Agattr_s Agattr_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agcbdisc_s.java plantuml-8039/src/h/Agcbdisc_s.java --- plantuml-8024/src/h/Agcbdisc_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agcbdisc_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,69 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4bs0remcyjtoc7ic0ezb77hjt + +public interface Agcbdisc_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agcbdisc_s", +"{", +"struct", +"{", +"agobjfn_t ins", +"agobjupdfn_t mod", +"agobjfn_t del", +"}", +"graph, node, edge", +"}"); +} + +// struct Agcbdisc_s { +// struct { +// agobjfn_t ins; +// agobjupdfn_t mod; +// agobjfn_t del; +// } graph, node, edge; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agcbdisc_t.java plantuml-8039/src/h/Agcbdisc_t.java --- plantuml-8024/src/h/Agcbdisc_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agcbdisc_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 5yq6nwzfy7wrzq92i583nbcxk + +public interface Agcbdisc_t extends Agcbdisc_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agcbdisc_s Agcbdisc_t"); +} + +// typedef struct Agcbdisc_s Agcbdisc_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agcbstack_s.java plantuml-8039/src/h/Agcbstack_s.java --- plantuml-8024/src/h/Agcbstack_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agcbstack_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 c13tvg963ir8gy4n4hq85wlp5 + +public interface Agcbstack_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agcbstack_s", +"{", +"Agcbdisc_t *f", +"void *state", +"Agcbstack_t *prev", +"}"); +} + +// struct Agcbstack_s { /* object event callbacks */ +// Agcbdisc_t *f; /* methods */ +// void *state; /* closure */ +// Agcbstack_t *prev; /* kept in a stack, unlike other disciplines */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agcbstack_t.java plantuml-8039/src/h/Agcbstack_t.java --- plantuml-8024/src/h/Agcbstack_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agcbstack_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 9vl1n1ipo4hb9ftk6z6tbxabj + +public interface Agcbstack_t extends Agcbstack_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agcbstack_s Agcbstack_t"); +} + +// typedef struct Agcbstack_s Agcbstack_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agclos_s.java plantuml-8039/src/h/Agclos_s.java --- plantuml-8024/src/h/Agclos_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agclos_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,73 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 eo8sfsh5lby147igpryzvitu7 + +public interface Agclos_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agclos_s", +"{", +"Agdisc_t disc", +"Agdstate_t state", +"Dict_t *strdict", +"unsigned long seq[3]", +"Agcbstack_t *cb", +"unsigned char callbacks_enabled", +"Dict_t *lookup_by_name[3]", +"Dict_t *lookup_by_id[3]", +"}"); +} + +// struct Agclos_s { +// Agdisc_t disc; /* resource discipline functions */ +// Agdstate_t state; /* resource closures */ +// Dict_t *strdict; /* shared string dict */ +// unsigned long seq[3]; /* local object sequence number counter */ +// Agcbstack_t *cb; /* user and system callback function stacks */ +// unsigned char callbacks_enabled; /* issue user callbacks or hold them? */ +// Dict_t *lookup_by_name[3]; +// Dict_t *lookup_by_id[3]; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agclos_t.java plantuml-8039/src/h/Agclos_t.java --- plantuml-8024/src/h/Agclos_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agclos_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 b7spmxawwjlyako5bvwhmto82 + +public interface Agclos_t extends Agclos_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agclos_s Agclos_t"); +} + +// typedef struct Agclos_s Agclos_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agcmpedge_t.java plantuml-8039/src/h/Agcmpedge_t.java --- plantuml-8024/src/h/Agcmpedge_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agcmpedge_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 aaoij3s9ltd2qv1eegfydx2a3 + +public interface Agcmpedge_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Agcmpedge_s", +"{", +"Agrec_t hdr", +"save_stack_t stack[2]", +"}", +"Agcmpedge_t"); +} + +// typedef struct Agcmpedge_s { +// Agrec_t hdr; +// save_stack_t stack[2]; /* IN and OUT save stacks */ +// } Agcmpedge_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agcmpgraph_t.java plantuml-8039/src/h/Agcmpgraph_t.java --- plantuml-8024/src/h/Agcmpgraph_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agcmpgraph_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5vqgch0hhxdt8uyrsm383989v + +public interface Agcmpgraph_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Agcmpgraph_s", +"{", +"Agrec_t hdr", +"Agnode_t *node", +"Dict_t *hidden_node_set", +"}", +"Agcmpgraph_t"); +} + +// typedef struct Agcmpgraph_s { +// Agrec_t hdr; +// Agnode_t *node; /* its associated node */ +// Dict_t *hidden_node_set; +// } Agcmpgraph_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agcmpnode_t.java plantuml-8039/src/h/Agcmpnode_t.java --- plantuml-8024/src/h/Agcmpnode_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agcmpnode_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 cym8pkipa9u10pg85jps0y6fj + +public interface Agcmpnode_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Agcmpnode_s", +"{", +"Agrec_t hdr", +"Agraph_t *subg", +"int collapsed", +"}", +"Agcmpnode_t"); +} + +// typedef struct Agcmpnode_s { +// Agrec_t hdr; +// Agraph_t *subg; +// int collapsed; +// } Agcmpnode_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agdatadict_s.java plantuml-8039/src/h/Agdatadict_s.java --- plantuml-8024/src/h/Agdatadict_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agdatadict_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,67 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 1wbtv41cwqamseppeo0vb4kjf + +public interface Agdatadict_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agdatadict_s", +"{", +"Agrec_t h", +"struct", +"{", +"Dict_t *n, *e, *g", +"}", +"dict", +"}"); +} + +// struct Agdatadict_s { /* set of dictionaries per graph */ +// Agrec_t h; /* installed in list of graph recs */ +// struct { +// Dict_t *n, *e, *g; +// } dict; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agdatadict_t.java plantuml-8039/src/h/Agdatadict_t.java --- plantuml-8024/src/h/Agdatadict_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agdatadict_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 cx24b8rdaygr5mrcvg063ostp + +public interface Agdatadict_t extends Agdatadict_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agdatadict_s Agdatadict_t"); +} + +// typedef struct Agdatadict_s Agdatadict_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agdesc_s.java plantuml-8039/src/h/Agdesc_s.java --- plantuml-8024/src/h/Agdesc_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agdesc_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,73 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 drqmj6wswekevi9i4ghve61wj + +public interface Agdesc_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agdesc_s", +"{", +"unsigned directed:1", +"unsigned strict:1", +"unsigned no_loop:1", +"unsigned maingraph:1", +"unsigned flatlock:1", +"unsigned no_write:1", +"unsigned has_attrs:1", +"unsigned has_cmpnd:1", +"}"); +} + +// struct Agdesc_s { /* graph descriptor */ +// unsigned directed:1; /* if edges are asymmetric */ +// unsigned strict:1; /* if multi-edges forbidden */ +// unsigned no_loop:1; /* if no loops */ +// unsigned maingraph:1; /* if this is the top level graph */ +// unsigned flatlock:1; /* if sets are flattened into lists in cdt */ +// unsigned no_write:1; /* if a temporary subgraph */ +// unsigned has_attrs:1; /* if string attr tables should be initialized */ +// unsigned has_cmpnd:1; /* if may contain collapsed nodes */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agdesc_t.java plantuml-8039/src/h/Agdesc_t.java --- plantuml-8024/src/h/Agdesc_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agdesc_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 2nxdbvy3uxd7hzq9yspewhiy2 + +public interface Agdesc_t extends Agdesc_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agdesc_s Agdesc_t"); +} + +// typedef struct Agdesc_s Agdesc_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agdisc_s.java plantuml-8039/src/h/Agdisc_s.java --- plantuml-8024/src/h/Agdisc_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agdisc_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 88aohxn7kudu5j4oxbyvcxvz9 + +public interface Agdisc_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agdisc_s", +"{", +"Agmemdisc_t *mem", +"Agiddisc_t *id", +"Agiodisc_t *io", +"}"); +} + +// struct Agdisc_s { /* user's discipline */ +// Agmemdisc_t *mem; +// Agiddisc_t *id; +// Agiodisc_t *io; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agdisc_t.java plantuml-8039/src/h/Agdisc_t.java --- plantuml-8024/src/h/Agdisc_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agdisc_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 a75fiuk7wedgsbsb3dymg9c1c + +public interface Agdisc_t extends Agdisc_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agdisc_s Agdisc_t"); +} + +// typedef struct Agdisc_s Agdisc_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agdstate_s.java plantuml-8039/src/h/Agdstate_s.java --- plantuml-8024/src/h/Agdstate_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agdstate_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 87jmuxk6h1j3ep0k0s2qz7fsb + +public interface Agdstate_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agdstate_s", +"{", +"void *mem", +"void *id", +"}"); +} + +// struct Agdstate_s { +// void *mem; +// void *id; +// /* IO must be initialized and finalized outside Cgraph, +// * and channels (FILES) are passed as void* arguments. */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agdstate_t.java plantuml-8039/src/h/Agdstate_t.java --- plantuml-8024/src/h/Agdstate_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agdstate_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 5kp1ggrs1pvfbdfrnl42a1l69 + +public interface Agdstate_t extends Agdstate_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agdstate_s Agdstate_t"); +} + +// typedef struct Agdstate_s Agdstate_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agedgeinfo_t.java plantuml-8039/src/h/Agedgeinfo_t.java --- plantuml-8024/src/h/Agedgeinfo_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agedgeinfo_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,105 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 c1b3tf6cmbwk2cvu1u6j2rduc + +public interface Agedgeinfo_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Agedgeinfo_t", +"{", +"Agrec_t hdr", +"splines *spl", +"port tail_port, head_port", +"textlabel_t *label, *head_label, *tail_label, *xlabel", +"char edge_type", +"char adjacent", +"char label_ontop", +"unsigned char gui_state", +"edge_t *to_orig", +"void *alg", +"double factor", +"double dist", +"Ppolyline_t path", +"unsigned char showboxes", +"boolean conc_opp_flag", +"short xpenalty", +"int weight", +"int cutvalue, tree_index", +"short count", +"unsigned short minlen", +"edge_t *to_virt", +"}", +"Agedgeinfo_t"); +} + +// typedef struct Agedgeinfo_t { +// Agrec_t hdr; +// splines *spl; +// port tail_port, head_port; +// textlabel_t *label, *head_label, *tail_label, *xlabel; +// char edge_type; +// char adjacent; /* true for flat edge with adjacent nodes */ +// char label_ontop; +// unsigned char gui_state; /* Edge state for GUI ops */ +// edge_t *to_orig; /* for dot's shapes.c */ +// void *alg; +// +// +// double factor; +// double dist; +// Ppolyline_t path; +// +// +// unsigned char showboxes; +// boolean conc_opp_flag; +// short xpenalty; +// int weight; +// int cutvalue, tree_index; +// short count; +// unsigned short minlen; +// edge_t *to_virt; +// +// } Agedgeinfo_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agedgepair_s.java plantuml-8039/src/h/Agedgepair_s.java --- plantuml-8024/src/h/Agedgepair_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agedgepair_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,59 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 57xqkv3rhmm29ure1eqi4xjwm + +public interface Agedgepair_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agedgepair_s", +"{", +"Agedge_t out, in", +"}"); +} + +// struct Agedgepair_s { +// Agedge_t out, in; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agedgepair_t.java plantuml-8039/src/h/Agedgepair_t.java --- plantuml-8024/src/h/Agedgepair_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agedgepair_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 9y2h3138nynj283jcxucqmaib + +public interface Agedgepair_t extends Agedgepair_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agedgepair_s Agedgepair_t"); +} + +// typedef struct Agedgepair_s Agedgepair_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agedge_s.java plantuml-8039/src/h/Agedge_s.java --- plantuml-8024/src/h/Agedge_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agedge_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,65 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5g85sn734cnzkqf8sdgtdesgl + +public interface Agedge_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agedge_s", +"{", +"Agobj_t base", +"Dtlink_t id_link", +"Dtlink_t seq_link", +"Agnode_t *node", +"}"); +} + +// struct Agedge_s { +// Agobj_t base; +// Dtlink_t id_link; /* main graph only */ +// Dtlink_t seq_link; +// Agnode_t *node; /* the endpoint node */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agedge_t.java plantuml-8039/src/h/Agedge_t.java --- plantuml-8024/src/h/Agedge_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agedge_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 at817e3s1icc92sqipan1gjl9 + +public interface Agedge_t extends Agedge_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agedge_s Agedge_t"); +} + +// typedef struct Agedge_s Agedge_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/agerrlevel_t.java plantuml-8039/src/h/agerrlevel_t.java --- plantuml-8024/src/h/agerrlevel_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/agerrlevel_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 eplx3pd5fkm68aeae4k6rwmj7 + +public interface agerrlevel_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"AGWARN, AGERR, AGMAX, AGPREV", +"}", +"agerrlevel_t"); +} + +// typedef enum { AGWARN, AGERR, AGMAX, AGPREV } agerrlevel_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agiddisc_s.java plantuml-8039/src/h/Agiddisc_s.java --- plantuml-8024/src/h/Agiddisc_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agiddisc_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9v8qggm3xqq7ok84lmnkhvpv8 + +public interface Agiddisc_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agiddisc_s", +"{", +"void *(*open) (Agraph_t * g, Agdisc_t*)", +"long (*map) (void *state, int objtype, char *str, unsigned long *id, int createflag)", +"long (*alloc) (void *state, int objtype, unsigned long id)", +"void (*free) (void *state, int objtype, unsigned long id)", +"char *(*print) (void *state, int objtype, unsigned long id)", +"void (*close) (void *state)", +"void (*idregister) (void *state, int objtype, void *obj)", +"}"); +} + +// struct Agiddisc_s { /* object ID allocator */ +// void *(*open) (Agraph_t * g, Agdisc_t*); /* associated with a graph */ +// long (*map) (void *state, int objtype, char *str, unsigned long *id, +// int createflag); +// long (*alloc) (void *state, int objtype, unsigned long id); +// void (*free) (void *state, int objtype, unsigned long id); +// char *(*print) (void *state, int objtype, unsigned long id); +// void (*close) (void *state); +// void (*idregister) (void *state, int objtype, void *obj); +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agiddisc_t.java plantuml-8039/src/h/Agiddisc_t.java --- plantuml-8024/src/h/Agiddisc_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agiddisc_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 7fbm9w57ywtqk4kw5c3z6zwm1 + +public interface Agiddisc_t extends Agiddisc_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agiddisc_s Agiddisc_t"); +} + +// typedef struct Agiddisc_s Agiddisc_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agiodisc_s.java plantuml-8039/src/h/Agiodisc_s.java --- plantuml-8024/src/h/Agiodisc_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agiodisc_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 e7kjont9j5j3b97ohu5k7ur89 + +public interface Agiodisc_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agiodisc_s", +"{", +"int (*afread) (void *chan, char *buf, int bufsize)", +"int (*putstr) (void *chan, const char *str)", +"int (*flush) (void *chan)", +"}"); +} + +// struct Agiodisc_s { +// int (*afread) (void *chan, char *buf, int bufsize); +// int (*putstr) (void *chan, const char *str); +// int (*flush) (void *chan); /* sync */ +// /* error messages? */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agiodisc_t.java plantuml-8039/src/h/Agiodisc_t.java --- plantuml-8024/src/h/Agiodisc_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agiodisc_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 63k1fn4amvhaud4remizhg2ks + +public interface Agiodisc_t extends Agiodisc_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agiodisc_s Agiodisc_t"); +} + +// typedef struct Agiodisc_s Agiodisc_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agmemdisc_s.java plantuml-8039/src/h/Agmemdisc_s.java --- plantuml-8024/src/h/Agmemdisc_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agmemdisc_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,67 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 366ph8t7jvjosq0zlqhb1g26x + +public interface Agmemdisc_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agmemdisc_s", +"{", +"void *(*open) (Agdisc_t*)", +"void *(*alloc) (void *state, size_t req)", +"void *(*resize) (void *state, void *ptr, size_t old, size_t req)", +"void (*free) (void *state, void *ptr)", +"void (*close) (void *state)", +"}"); +} + +// struct Agmemdisc_s { /* memory allocator */ +// void *(*open) (Agdisc_t*); /* independent of other resources */ +// void *(*alloc) (void *state, size_t req); +// void *(*resize) (void *state, void *ptr, size_t old, size_t req); +// void (*free) (void *state, void *ptr); +// void (*close) (void *state); +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agmemdisc_t.java plantuml-8039/src/h/Agmemdisc_t.java --- plantuml-8024/src/h/Agmemdisc_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agmemdisc_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 e2u8m7bby3ay236un81y217mm + +public interface Agmemdisc_t extends Agmemdisc_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agmemdisc_s Agmemdisc_t"); +} + +// typedef struct Agmemdisc_s Agmemdisc_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agnodeinfo_t.java plantuml-8039/src/h/Agnodeinfo_t.java --- plantuml-8024/src/h/Agnodeinfo_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agnodeinfo_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,145 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 da1kcmh9tvz6n7xaqw78dn4h8 + +public interface Agnodeinfo_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Agnodeinfo_t", +"{", +"Agrec_t hdr", +"shape_desc *shape", +"void *shape_info", +"pointf coord", +"double width, height", +"boxf bb", +"double ht, lw, rw", +"textlabel_t *label", +"textlabel_t *xlabel", +"void *alg", +"char state", +"unsigned char gui_state", +"boolean clustnode", +"unsigned char pinned", +"int id, heapindex, hops", +"double *pos, dist", +"unsigned char showboxes", +"boolean has_port", +"node_t* rep", +"node_t *set", +"char node_type, mark, onstack", +"char ranktype, weight_class", +"node_t *next, *prev", +"elist in, out, flat_out, flat_in, other", +"graph_t *clust", +"int UF_size", +"node_t *UF_parent", +"node_t *inleaf, *outleaf", +"int rank, order", +"double mval", +"elist save_in, save_out", +"elist tree_in, tree_out", +"edge_t *par", +"int low, lim", +"int priority", +"double pad[1]", +"}", +"Agnodeinfo_t"); +} + +// typedef struct Agnodeinfo_t { +// Agrec_t hdr; +// shape_desc *shape; +// void *shape_info; +// pointf coord; +// double width, height; /* inches */ +// boxf bb; +// double ht, lw, rw; +// textlabel_t *label; +// textlabel_t *xlabel; +// void *alg; +// char state; +// unsigned char gui_state; /* Node state for GUI ops */ +// boolean clustnode; +// +// +// unsigned char pinned; +// int id, heapindex, hops; +// double *pos, dist; +// +// +// unsigned char showboxes; +// boolean has_port; +// node_t* rep; +// node_t *set; +// +// /* fast graph */ +// char node_type, mark, onstack; +// char ranktype, weight_class; +// node_t *next, *prev; +// elist in, out, flat_out, flat_in, other; +// graph_t *clust; +// +// /* for union-find and collapsing nodes */ +// int UF_size; +// node_t *UF_parent; +// node_t *inleaf, *outleaf; +// +// /* for placing nodes */ +// int rank, order; /* initially, order = 1 for ordered edges */ +// double mval; +// elist save_in, save_out; +// +// /* for network-simplex */ +// elist tree_in, tree_out; +// edge_t *par; +// int low, lim; +// int priority; +// +// double pad[1]; +// +// +// } Agnodeinfo_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agnode_s.java plantuml-8039/src/h/Agnode_s.java --- plantuml-8024/src/h/Agnode_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agnode_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5h58ys5dc8q21vir1hk2r7xr7 + +public interface Agnode_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agnode_s", +"{", +"Agobj_t base", +"Agraph_t *root", +"Agsubnode_t mainsub", +"}"); +} + +// struct Agnode_s { +// Agobj_t base; +// Agraph_t *root; +// Agsubnode_t mainsub; /* embedded for main graph */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agnode_t.java plantuml-8039/src/h/Agnode_t.java --- plantuml-8024/src/h/Agnode_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agnode_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 8eeq5jtusu1u57hjz90nc9i9m + +public interface Agnode_t extends Agnode_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agnode_s Agnode_t"); +} + +// typedef struct Agnode_s Agnode_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/agobjfn_t.java plantuml-8039/src/h/agobjfn_t.java --- plantuml-8024/src/h/agobjfn_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/agobjfn_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 af6h9515752o3oaywyt2y8x34 + +public interface agobjfn_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef void (*agobjfn_t) (Agraph_t * g, Agobj_t * obj, void *arg)"); +} + +// typedef void (*agobjfn_t) (Agraph_t * g, Agobj_t * obj, void *arg); \ No newline at end of file diff -Nru plantuml-8024/src/h/agobjsearchfn_t.java plantuml-8039/src/h/agobjsearchfn_t.java --- plantuml-8024/src/h/agobjsearchfn_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/agobjsearchfn_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 dr9rtwhzssf8aypcenb0z3tfy + +public interface agobjsearchfn_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef Agobj_t *(*agobjsearchfn_t) (Agraph_t * g, Agobj_t * obj)"); +} + +// typedef Agobj_t *(*agobjsearchfn_t) (Agraph_t * g, Agobj_t * obj); \ No newline at end of file diff -Nru plantuml-8024/src/h/Agobj_s.java plantuml-8039/src/h/Agobj_s.java --- plantuml-8024/src/h/Agobj_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agobj_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,61 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7fv7yqhmqaa7u2qszrcz1x603 + +public interface Agobj_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agobj_s", +"{", +"Agtag_t tag", +"Agrec_t *data", +"}"); +} + +// struct Agobj_s { +// Agtag_t tag; +// Agrec_t *data; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agobj_t.java plantuml-8039/src/h/Agobj_t.java --- plantuml-8024/src/h/Agobj_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agobj_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 cxj639s7ndfjcf3ku07ins96y + +public interface Agobj_t extends Agobj_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agobj_s Agobj_t"); +} + +// typedef struct Agobj_s Agobj_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/agobjupdfn_t.java plantuml-8039/src/h/agobjupdfn_t.java --- plantuml-8024/src/h/agobjupdfn_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/agobjupdfn_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,55 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8ezqpl2zflq85hy4pay4rex52 + +public interface agobjupdfn_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef void (*agobjupdfn_t) (Agraph_t * g, Agobj_t * obj, void *arg, Agsym_t * sym)"); +} + +// typedef void (*agobjupdfn_t) (Agraph_t * g, Agobj_t * obj, void *arg, +// Agsym_t * sym); \ No newline at end of file diff -Nru plantuml-8024/src/h/Agraphinfo_t.java plantuml-8039/src/h/Agraphinfo_t.java --- plantuml-8024/src/h/Agraphinfo_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agraphinfo_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,166 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2mtqmob86ayzjvuxgvhlg4ctl + +public interface Agraphinfo_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Agraphinfo_t", +"{", +"Agrec_t hdr", +"layout_t *drawing", +"textlabel_t *label", +"boxf bb", +"pointf border[4]", +"unsigned char gui_state", +"unsigned char has_labels", +"boolean has_images", +"unsigned char charset", +"int rankdir", +"double ht1, ht2", +"unsigned short flags", +"void *alg", +"GVC_t *gvc", +"void (*cleanup) (graph_t * g)", +"node_t **neato_nlist", +"int move", +"double **dist, **spring, **sum_t, ***t", +"unsigned short ndim", +"unsigned short odim", +"int n_cluster", +"graph_t **clust", +"graph_t *dotroot", +"node_t *nlist", +"rank_t *rank", +"graph_t *parent", +"int level", +"node_t *minrep, *maxrep", +"nlist_t comp", +"node_t *minset, *maxset", +"long n_nodes", +"short minrank, maxrank", +"boolean has_flat_edges", +"boolean has_sourcerank", +"boolean has_sinkrank", +"unsigned char showboxes", +"fontname_kind fontnames", +"int nodesep, ranksep", +"node_t *ln, *rn", +"node_t *leader, **rankleader", +"boolean expanded", +"char installed", +"char set_type", +"char label_pos", +"boolean exact_ranksep", +"}", +"Agraphinfo_t"); +} + +// typedef struct Agraphinfo_t { +// Agrec_t hdr; +// /* to generate code */ +// layout_t *drawing; +// textlabel_t *label; /* if the cluster has a title */ +// boxf bb; /* bounding box */ +// pointf border[4]; /* sizes of margins for graph labels */ +// unsigned char gui_state; /* Graph state for GUI ops */ +// unsigned char has_labels; +// boolean has_images; +// unsigned char charset; /* input character set */ +// int rankdir; +// double ht1, ht2; /* below and above extremal ranks */ +// unsigned short flags; +// void *alg; +// GVC_t *gvc; /* context for "globals" over multiple graphs */ +// void (*cleanup) (graph_t * g); /* function to deallocate layout-specific data */ +// +// +// /* to place nodes */ +// node_t **neato_nlist; +// int move; +// double **dist, **spring, **sum_t, ***t; +// unsigned short ndim; +// unsigned short odim; +// +// +// /* to have subgraphs */ +// int n_cluster; +// graph_t **clust; /* clusters are in clust[1..n_cluster] !!! */ +// graph_t *dotroot; +// node_t *nlist; +// rank_t *rank; +// graph_t *parent; /* containing cluster (not parent subgraph) */ +// int level; /* cluster nesting level (not node level!) */ +// node_t *minrep, *maxrep; /* set leaders for min and max rank */ +// +// /* fast graph node list */ +// nlist_t comp; +// /* connected components */ +// node_t *minset, *maxset; /* set leaders */ +// long n_nodes; +// /* includes virtual */ +// short minrank, maxrank; +// +// /* various flags */ +// boolean has_flat_edges; +// boolean has_sourcerank; +// boolean has_sinkrank; +// unsigned char showboxes; +// fontname_kind fontnames; /* to override mangling in SVG */ +// +// int nodesep, ranksep; +// node_t *ln, *rn; /* left, right nodes of bounding box */ +// +// /* for clusters */ +// node_t *leader, **rankleader; +// boolean expanded; +// char installed; +// char set_type; +// char label_pos; +// boolean exact_ranksep; +// +// +// } Agraphinfo_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agraph_s.java plantuml-8039/src/h/Agraph_s.java --- plantuml-8024/src/h/Agraph_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agraph_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,75 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5ho0f0m8hitlfq9j032lww947 + +public interface Agraph_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agraph_s", +"{", +"Agobj_t base", +"Agdesc_t desc", +"Dtlink_t link", +"Dict_t *n_seq", +"Dict_t *n_id", +"Dict_t *e_seq, *e_id", +"Dict_t *g_dict", +"Agraph_t *parent, *root", +"Agclos_t *clos", +"}"); +} + +// struct Agraph_s { +// Agobj_t base; +// Agdesc_t desc; +// Dtlink_t link; +// Dict_t *n_seq; /* the node set in sequence */ +// Dict_t *n_id; /* the node set indexed by ID */ +// Dict_t *e_seq, *e_id; /* holders for edge sets */ +// Dict_t *g_dict; /* subgraphs - descendants */ +// Agraph_t *parent, *root; /* subgraphs - ancestors */ +// Agclos_t *clos; /* shared resources */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agraph_t.java plantuml-8039/src/h/Agraph_t.java --- plantuml-8024/src/h/Agraph_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agraph_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 aqw3i7b3unkie2w709gyzy18f + +public interface Agraph_t extends Agraph_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agraph_s Agraph_t"); +} + +// typedef struct Agraph_s Agraph_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agrec_s.java plantuml-8039/src/h/Agrec_s.java --- plantuml-8024/src/h/Agrec_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agrec_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 87jgefxbqnrx426i1quuhv9a1 + +public interface Agrec_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agrec_s", +"{", +"char *name", +"Agrec_t *next", +"}"); +} + +// struct Agrec_s { +// char *name; +// Agrec_t *next; +// /* following this would be any programmer-defined data */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agrec_t.java plantuml-8039/src/h/Agrec_t.java --- plantuml-8024/src/h/Agrec_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agrec_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 6w4pxxbi3ief76hgbmcde192u + +public interface Agrec_t extends Agrec_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agrec_s Agrec_t"); +} + +// typedef struct Agrec_s Agrec_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agsplice_arg_t.java plantuml-8039/src/h/Agsplice_arg_t.java --- plantuml-8024/src/h/Agsplice_arg_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agsplice_arg_t.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6utnqddi1e85hs0re8q6xa1vy + +public interface Agsplice_arg_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Agsplice_arg_s", +"{", +"int head_side", +"Agnode_t *target", +"}", +"Agsplice_arg_t"); +} + +// typedef struct Agsplice_arg_s { +// int head_side; +// Agnode_t *target; +// } Agsplice_arg_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agsubnode_s.java plantuml-8039/src/h/Agsubnode_s.java --- plantuml-8024/src/h/Agsubnode_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agsubnode_s.java 2016-04-22 16:26:06.000000000 +0000 @@ -0,0 +1,67 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 eykrclzau59zmxissqegaiilg + +public interface Agsubnode_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agsubnode_s", +"{", +"Dtlink_t seq_link", +"Dtlink_t id_link", +"Agnode_t *node", +"Dtlink_t *in_id, *out_id", +"Dtlink_t *in_seq, *out_seq", +"}"); +} + +// struct Agsubnode_s { /* the node-per-graph-or-subgraph record */ +// Dtlink_t seq_link; /* must be first */ +// Dtlink_t id_link; +// Agnode_t *node; /* the object */ +// Dtlink_t *in_id, *out_id; /* by node/ID for random access */ +// Dtlink_t *in_seq, *out_seq; /* by node/sequence for serial access */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agsubnode_t.java plantuml-8039/src/h/Agsubnode_t.java --- plantuml-8024/src/h/Agsubnode_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agsubnode_t.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 df23022lk4w8conzi4uihoqpu + +public interface Agsubnode_t extends Agsubnode_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agsubnode_s Agsubnode_t"); +} + +// typedef struct Agsubnode_s Agsubnode_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agsym_s.java plantuml-8039/src/h/Agsym_s.java --- plantuml-8024/src/h/Agsym_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agsym_s.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,71 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 38c2s12koxcpi2c7vwl72qrsp + +public interface Agsym_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agsym_s", +"{", +"Dtlink_t link", +"char *name", +"char *defval", +"int id", +"unsigned char kind", +"unsigned char fixed", +"unsigned char print", +"}"); +} + +// struct Agsym_s { /* symbol in one of the above dictionaries */ +// Dtlink_t link; +// char *name; /* attribute's name */ +// char *defval; /* its default value for initialization */ +// int id; /* its index in attr[] */ +// unsigned char kind; /* referent object type */ +// unsigned char fixed; /* immutable value */ +// unsigned char print; /* always print */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agsym_t.java plantuml-8039/src/h/Agsym_t.java --- plantuml-8024/src/h/Agsym_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agsym_t.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 c6lodtp6m9o7i924kguh8py09 + +public interface Agsym_t extends Agsym_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agsym_s Agsym_t"); +} + +// typedef struct Agsym_s Agsym_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agtag_s.java plantuml-8039/src/h/Agtag_s.java --- plantuml-8024/src/h/Agtag_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agtag_s.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,67 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 f4eovs59su6ztmd1h9rq229c2 + +public interface Agtag_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct Agtag_s", +"{", +"unsigned objtype:2", +"unsigned mtflock:1", +"unsigned attrwf:1", +"unsigned seq:(sizeof(unsigned) * 8 - 4)", +"unsigned long id", +"}"); +} + +// struct Agtag_s { +// unsigned objtype:2; /* see literal tags below */ +// unsigned mtflock:1; /* move-to-front lock, see above */ +// unsigned attrwf:1; /* attrs written (parity, write.c) */ +// unsigned seq:(sizeof(unsigned) * 8 - 4); /* sequence no. */ +// unsigned long id; /* client ID */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Agtag_t.java plantuml-8039/src/h/Agtag_t.java --- plantuml-8024/src/h/Agtag_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Agtag_t.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 bfyeakqg0xg9gqt8ssajorir5 + +public interface Agtag_t extends Agtag_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agtag_s Agtag_t"); +} + +// typedef struct Agtag_s Agtag_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/agusererrf.java plantuml-8039/src/h/agusererrf.java --- plantuml-8024/src/h/agusererrf.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/agusererrf.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 dar3eyxi2ee4qldba8o9a54az + +public interface agusererrf extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef int (*agusererrf) (char*)"); +} + +// typedef int (*agusererrf) (char*); \ No newline at end of file diff -Nru plantuml-8024/src/h/agxbuf.java plantuml-8039/src/h/agxbuf.java --- plantuml-8024/src/h/agxbuf.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/agxbuf.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2bvk4wwyb3pp3ygpa39hp9xqw + +public interface agxbuf extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"unsigned char *buf", +"unsigned char *ptr", +"unsigned char *eptr", +"int dyna", +"}", +"agxbuf"); +} + +// typedef struct { +// unsigned char *buf; /* start of buffer */ +// unsigned char *ptr; /* next place to write */ +// unsigned char *eptr; /* end of buffer */ +// int dyna; /* true if buffer is malloc'ed */ +// } agxbuf; \ No newline at end of file diff -Nru plantuml-8024/src/h/ainfo.java plantuml-8039/src/h/ainfo.java --- plantuml-8024/src/h/ainfo.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/ainfo.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 aqlnras6a8pluk7ulr2jzajlz + +public interface ainfo extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"double width, height", +"int index", +"}", +"ainfo"); +} + +// typedef struct { +// double width, height; +// int index; /* index in original array */ +// } ainfo; \ No newline at end of file diff -Nru plantuml-8024/src/h/api_t.java plantuml-8039/src/h/api_t.java --- plantuml-8024/src/h/api_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/api_t.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 jt0nf4pbk6zp8gpe1a9abjx9 + +public interface api_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"API_render, API_layout, API_textlayout, API_device, API_loadimage, _DUMMY_ELEM_=0", +"}", +"api_t"); +} + +// typedef enum { API_render, API_layout, API_textlayout, API_device, API_loadimage, _DUMMY_ELEM_=0 } api_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/arrowdir_t.java plantuml-8039/src/h/arrowdir_t.java --- plantuml-8024/src/h/arrowdir_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/arrowdir_t.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5ghieyxthirf2pc6x8z6vuj05 + +public interface arrowdir_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct arrowdir_t", +"{", +"char *dir", +"int sflag", +"int eflag", +"}", +"arrowdir_t"); +} + +// typedef struct arrowdir_t { +// char *dir; +// int sflag; +// int eflag; +// } arrowdir_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/arrowname_t.java plantuml-8039/src/h/arrowname_t.java --- plantuml-8024/src/h/arrowname_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/arrowname_t.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9xua47nwla43qv3cmy92tx1mr + +public interface arrowname_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct arrowname_t", +"{", +"char *name", +"int type", +"}", +"arrowname_t"); +} + +// typedef struct arrowname_t { +// char *name; +// int type; +// } arrowname_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/arrowtype_t.java plantuml-8039/src/h/arrowtype_t.java --- plantuml-8024/src/h/arrowtype_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/arrowtype_t.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 cvw01xnbdvcxj00pawmicyx3p + +public interface arrowtype_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct arrowtype_t", +"{", +"int type", +"double lenfact", +"void (*gen) (GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag)", +"}", +"arrowtype_t"); +} + +// typedef struct arrowtype_t { +// int type; +// double lenfact; /* ratio of length of this arrow type to standard arrow */ +// void (*gen) (GVJ_t * job, pointf p, pointf u, double arrowsize, double penwidth, int flag); /* generator function for type */ +// } arrowtype_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/aspect_t.java plantuml-8039/src/h/aspect_t.java --- plantuml-8024/src/h/aspect_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/aspect_t.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,73 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7ric227rdgzts8ajl8qu4g4r3 + +public interface aspect_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct aspect_t", +"{", +"double targetAR", +"double combiAR", +"int prevIterations", +"int curIterations", +"int nextIter", +"int nPasses", +"int badGraph", +"}", +"aspect_t"); +} + +// typedef struct aspect_t { +// double targetAR; /* target aspect ratio */ +// double combiAR; +// int prevIterations; /* no. of iterations in previous pass */ +// int curIterations; /* no. of iterations in current pass */ +// int nextIter; /* dynamically adjusted no. of iterations */ +// int nPasses; /* bound on no. of top-level passes */ +// int badGraph; /* hack: set if graph is disconnected or has +// * clusters. If so, turn off aspect */ +// } aspect_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/attr_state_t.java plantuml-8039/src/h/attr_state_t.java --- plantuml-8024/src/h/attr_state_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/attr_state_t.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,138 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9k0huyjtpb77v42bdkmmy7zo5 + +public interface attr_state_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"attrsym_t* E_constr", +"attrsym_t* E_samehead", +"attrsym_t* E_sametail", +"attrsym_t* E_weight", +"attrsym_t* E_minlen", +"attrsym_t* E_fontcolor", +"attrsym_t* E_fontname", +"attrsym_t* E_fontsize", +"attrsym_t* E_headclip", +"attrsym_t* E_headlabel", +"attrsym_t* E_label", +"attrsym_t* E_label_float", +"attrsym_t* E_labelfontcolor", +"attrsym_t* E_labelfontname", +"attrsym_t* E_labelfontsize", +"attrsym_t* E_tailclip", +"attrsym_t* E_taillabel", +"attrsym_t* E_xlabel", +"attrsym_t* N_height", +"attrsym_t* N_width", +"attrsym_t* N_shape", +"attrsym_t* N_style", +"attrsym_t* N_fontsize", +"attrsym_t* N_fontname", +"attrsym_t* N_fontcolor", +"attrsym_t* N_label", +"attrsym_t* N_xlabel", +"attrsym_t* N_showboxes", +"attrsym_t* N_ordering", +"attrsym_t* N_sides", +"attrsym_t* N_peripheries", +"attrsym_t* N_skew", +"attrsym_t* N_orientation", +"attrsym_t* N_distortion", +"attrsym_t* N_fixed", +"attrsym_t* N_nojustify", +"attrsym_t* N_group", +"attrsym_t* G_ordering", +"int State", +"}", +"attr_state_t"); +} + +// typedef struct { +// attrsym_t* E_constr; +// attrsym_t* E_samehead; +// attrsym_t* E_sametail; +// attrsym_t* E_weight; +// attrsym_t* E_minlen; +// attrsym_t* E_fontcolor; +// attrsym_t* E_fontname; +// attrsym_t* E_fontsize; +// attrsym_t* E_headclip; +// attrsym_t* E_headlabel; +// attrsym_t* E_label; +// attrsym_t* E_label_float; +// attrsym_t* E_labelfontcolor; +// attrsym_t* E_labelfontname; +// attrsym_t* E_labelfontsize; +// attrsym_t* E_tailclip; +// attrsym_t* E_taillabel; +// attrsym_t* E_xlabel; +// +// attrsym_t* N_height; +// attrsym_t* N_width; +// attrsym_t* N_shape; +// attrsym_t* N_style; +// attrsym_t* N_fontsize; +// attrsym_t* N_fontname; +// attrsym_t* N_fontcolor; +// attrsym_t* N_label; +// attrsym_t* N_xlabel; +// attrsym_t* N_showboxes; +// attrsym_t* N_ordering; +// attrsym_t* N_sides; +// attrsym_t* N_peripheries; +// attrsym_t* N_skew; +// attrsym_t* N_orientation; +// attrsym_t* N_distortion; +// attrsym_t* N_fixed; +// attrsym_t* N_nojustify; +// attrsym_t* N_group; +// +// attrsym_t* G_ordering; +// int State; +// } attr_state_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/attrsym_t.java plantuml-8039/src/h/attrsym_t.java --- plantuml-8024/src/h/attrsym_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/attrsym_t.java 2016-04-22 16:26:07.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 d4orkcxq0xaek87mt94led8jv + +public interface attrsym_t extends Agsym_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agsym_s attrsym_t"); +} + +// typedef struct Agsym_s attrsym_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/bend.java plantuml-8039/src/h/bend.java --- plantuml-8024/src/h/bend.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/bend.java 2016-04-22 16:26:08.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5vksevapsq3dmbrs630cwnpqp + +public interface bend extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"B_NODE, B_UP, B_LEFT, B_DOWN, B_RIGHT", +"}", +"bend"); +} + +// typedef enum {B_NODE, B_UP, B_LEFT, B_DOWN, B_RIGHT} bend; \ No newline at end of file diff -Nru plantuml-8024/src/h/BestPos_t.java plantuml-8039/src/h/BestPos_t.java --- plantuml-8024/src/h/BestPos_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/BestPos_t.java 2016-04-22 16:26:08.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 42vrsrrzqoc36nrw8vum1390l + +public interface BestPos_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct best_p_s", +"{", +"int n", +"double area", +"pointf pos", +"}", +"BestPos_t"); +} + +// typedef struct best_p_s { +// int n; +// double area; +// pointf pos; +// } BestPos_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/bezier.java plantuml-8039/src/h/bezier.java --- plantuml-8024/src/h/bezier.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/bezier.java 2016-04-22 16:26:08.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2rm8pcuhkjly1xk9haledn1k9 + +public interface bezier extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct bezier", +"{", +"pointf *list", +"int size", +"int sflag, eflag", +"pointf sp, ep", +"}", +"bezier"); +} + +// typedef struct bezier { +// pointf *list; +// int size; +// int sflag, eflag; +// pointf sp, ep; +// } bezier; \ No newline at end of file diff -Nru plantuml-8024/src/h/blk_t.java plantuml-8039/src/h/blk_t.java --- plantuml-8024/src/h/blk_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/blk_t.java 2016-04-22 16:26:09.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 az8jvz0appwxv09fzo6ia7pw2 + +public interface blk_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct blk_t", +"{", +"Agnode_t **data", +"Agnode_t **endp", +"struct blk_t *prev", +"struct blk_t *next", +"}", +"blk_t"); +} + +// typedef struct blk_t { +// Agnode_t **data; +// Agnode_t **endp; +// struct blk_t *prev; +// struct blk_t *next; +// } blk_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/block.java plantuml-8039/src/h/block.java --- plantuml-8024/src/h/block.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/block.java 2016-04-22 16:26:09.000000000 +0000 @@ -0,0 +1,75 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 aeiesb8xknt6qv58gj7tdny3l + +public interface block extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct block", +"{", +"Agnode_t *child", +"block_t *next", +"Agraph_t *sub_graph", +"double radius", +"double rad0", +"nodelist_t *circle_list", +"blocklist_t children", +"double parent_pos", +"int flags", +"}"); +} + +// struct block { +// Agnode_t *child; /* if non-null, points to node in parent block */ +// block_t *next; /* sibling block */ +// Agraph_t *sub_graph; /* nodes and edges in this block */ +// double radius; /* radius of block and subblocks */ +// double rad0; /* radius of block */ +// nodelist_t *circle_list; /* ordered list of nodes in block */ +// blocklist_t children; /* child blocks */ +// double parent_pos; /* if block has 1 node, angle to place parent */ +// int flags; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/blocklist_t.java plantuml-8039/src/h/blocklist_t.java --- plantuml-8024/src/h/blocklist_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/blocklist_t.java 2016-04-22 16:26:09.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4fuyio1lh8xw103g3n4akljx4 + +public interface blocklist_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"block_t *first", +"block_t *last", +"}", +"blocklist_t"); +} + +// typedef struct { +// block_t *first; +// block_t *last; +// } blocklist_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/block_t.java plantuml-8039/src/h/block_t.java --- plantuml-8024/src/h/block_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/block_t.java 2016-04-22 16:26:09.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 9hb5i7kwpg2hbs4jpz9n14is + +public interface block_t extends block { + public static List DEFINITION = Arrays.asList( +"typedef struct block block_t"); +} + +// typedef struct block block_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/boxf.java plantuml-8039/src/h/boxf.java --- plantuml-8024/src/h/boxf.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/boxf.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5ixaxdj4kxutnllqftpefs67r + +public interface boxf extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"pointf LL, UR", +"}", +"boxf"); +} + +// typedef struct { pointf LL, UR; } boxf; \ No newline at end of file diff -Nru plantuml-8024/src/h/box.java plantuml-8039/src/h/box.java --- plantuml-8024/src/h/box.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/box.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 ecciois6ttiu20v5ds6ne801k + +public interface box extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"point LL, UR", +"}", +"box"); +} + +// typedef struct { point LL, UR; } box; \ No newline at end of file diff -Nru plantuml-8024/src/h/bport_t.java plantuml-8039/src/h/bport_t.java --- plantuml-8024/src/h/bport_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/bport_t.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 enjd0328nmx4raj6kmm6ktq7y + +public interface bport_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct bport_s", +"{", +"edge_t *e", +"node_t *n", +"double alpha", +"}", +"bport_t"); +} + +// typedef struct bport_s { +// edge_t *e; +// node_t *n; +// double alpha; +// } bport_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Branch_t.java plantuml-8039/src/h/Branch_t.java --- plantuml-8024/src/h/Branch_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Branch_t.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 85dckzvbvghwxxfvifa6k6n9u + +public interface Branch_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Branch", +"{", +"Rect_t rect", +"struct Node *child", +"}", +"Branch_t"); +} + +// typedef struct Branch { +// Rect_t rect; +// struct Node *child; +// } Branch_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/bsearch_cmpf.java plantuml-8039/src/h/bsearch_cmpf.java --- plantuml-8024/src/h/bsearch_cmpf.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/bsearch_cmpf.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 dw2o83im6nk4bxd64xd6z2z00 + +public interface bsearch_cmpf extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef int (*bsearch_cmpf) (const void *, const void *)"); +} + +// typedef int (*bsearch_cmpf) (const void *, const void *); \ No newline at end of file diff -Nru plantuml-8024/src/h/buff_s.java plantuml-8039/src/h/buff_s.java --- plantuml-8024/src/h/buff_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/buff_s.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 f33zs2sbhgsvvrelmw2nq6vt3 + +public interface buff_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct buff_s", +"{", +"int fd", +"fpos_t pos", +"char *template", +"}"); +} + +// struct buff_s { +// int fd; +// fpos_t pos; +// char *template; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/ccgnodeinfo_t.java plantuml-8039/src/h/ccgnodeinfo_t.java --- plantuml-8024/src/h/ccgnodeinfo_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/ccgnodeinfo_t.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,74 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 e6r3vblqbmjwwqavuqcrl06zb + +public interface ccgnodeinfo_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Agrec_t h", +"char mark", +"union", +"{", +"Agraph_t* g", +"Agnode_t* n", +"void* v", +"}", +"ptr", +"}", +"ccgnodeinfo_t"); +} + +// typedef struct { +// Agrec_t h; +// char mark; +// union { +// Agraph_t* g; +// Agnode_t* n; +// void* v; +// } ptr; +// } ccgnodeinfo_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/ccgraphinfo_t.java plantuml-8039/src/h/ccgraphinfo_t.java --- plantuml-8024/src/h/ccgraphinfo_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/ccgraphinfo_t.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 b28r73e4bd3fdpfewruggsvk1 + +public interface ccgraphinfo_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Agrec_t h", +"char cc_subg", +"}", +"ccgraphinfo_t"); +} + +// typedef struct { +// Agrec_t h; +// char cc_subg; /* true iff subgraph corresponds to a component */ +// } ccgraphinfo_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/cdata.java plantuml-8039/src/h/cdata.java --- plantuml-8024/src/h/cdata.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/cdata.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,120 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 39c66ffd2kgahvaaf8e61dspv + +public interface cdata extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"union", +"{", +"Agraph_t *g", +"Agnode_t *np", +"}", +"orig", +"int flags", +"node_t *parent", +"block_t *block", +"union", +"{", +"struct", +"{", +"node_t *next", +"int val", +"int low_val", +"}", +"bc", +"node_t *clone", +"struct", +"{", +"node_t *tparent", +"node_t *first", +"node_t *second", +"int fdist", +"int sdist", +"}", +"t", +"struct", +"{", +"int pos", +"double psi", +"}", +"f", +"}", +"u", +"}", +"cdata"); +} + +// typedef struct { +// union { /* Pointer to node/cluster in original graph */ +// Agraph_t *g; +// Agnode_t *np; +// } orig; +// int flags; +// node_t *parent; /* parent in block-cutpoint traversal (1,2,4) */ +// block_t *block; /* Block containing node (1,2,3,4) */ +// union { +// struct { /* Pass 1 */ +// node_t *next; /* used for stack */ +// int val; +// int low_val; +// } bc; +// node_t *clone; /* Cloned node (3a) */ +// struct { /* Spanning tree and longest path (3b) */ +// node_t *tparent; /* Parent in tree */ +// node_t *first; /* Leaf on longest path from node */ +// node_t *second; /* Leaf on 2nd longest path from node */ +// int fdist; /* Length of longest path from node */ +// int sdist; /* Length of 2nd longest path from node */ +// } t; +// struct { +// int pos; /* Index of node in block circle (3c,4) */ +// double psi; /* Offset angle of children (4) */ +// } f; +// } u; +// } cdata; \ No newline at end of file diff -Nru plantuml-8024/src/h/cell.java plantuml-8039/src/h/cell.java --- plantuml-8024/src/h/cell.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/cell.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5st453umnwqp8rukqzc30apk6 + +public interface cell extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"gridpt p", +"node_list *nodes", +"Dtlink_t link", +"}", +"cell"); +} + +// typedef struct { +// gridpt p; /* index of cell */ +// node_list *nodes; /* nodes in cell */ +// Dtlink_t link; /* cdt data */ +// } cell; \ No newline at end of file diff -Nru plantuml-8024/src/h/chanItem.java plantuml-8039/src/h/chanItem.java --- plantuml-8024/src/h/chanItem.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/chanItem.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 caod2kxpi4xwamq1g7wm3mm6o + +public interface chanItem extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"double v", +"Dt_t* chans", +"}", +"chanItem"); +} + +// typedef struct { +// Dtlink_t link; +// double v; +// Dt_t* chans; +// } chanItem; \ No newline at end of file diff -Nru plantuml-8024/src/h/channel.java plantuml-8039/src/h/channel.java --- plantuml-8024/src/h/channel.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/channel.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,70 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 71crbqpwuxwtsnppsp39wccqp + +public interface channel extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"paird p", +"int cnt", +"segment** seg_list", +"rawgraph* G", +"struct cell* cp", +"}", +"channel"); +} + +// typedef struct { +// Dtlink_t link; +// paird p; /* extrema of channel */ +// int cnt; /* number of segments */ +// segment** seg_list; /* array of segment pointers */ +// rawgraph* G; +// struct cell* cp; +// } channel; \ No newline at end of file diff -Nru plantuml-8024/src/h/cinfo_t.java plantuml-8039/src/h/cinfo_t.java --- plantuml-8024/src/h/cinfo_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/cinfo_t.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9i2jwknpgmej0gz38zz670oa + +public interface cinfo_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"boxf bb", +"object_t* objp", +"}", +"cinfo_t"); +} + +// typedef struct { +// boxf bb; +// object_t* objp; +// } cinfo_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/circ_state.java plantuml-8039/src/h/circ_state.java --- plantuml-8024/src/h/circ_state.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/circ_state.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3lnrtud6sukofbfngncbfav33 + +public interface circ_state extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"blocklist_t bl", +"int orderCount", +"int blockCount", +"attrsym_t *N_artpos", +"attrsym_t *N_root", +"char *rootname", +"double min_dist", +"}", +"circ_state"); +} + +// typedef struct { +// blocklist_t bl; +// int orderCount; +// int blockCount; +// attrsym_t *N_artpos; +// attrsym_t *N_root; +// char *rootname; +// double min_dist; +// } circ_state; \ No newline at end of file diff -Nru plantuml-8024/src/h/clist_t.java plantuml-8039/src/h/clist_t.java --- plantuml-8024/src/h/clist_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/clist_t.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2ibe0en9njq1f3z4y5g2kzaj2 + +public interface clist_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"graph_t **cl", +"int sz", +"int cnt", +"}", +"clist_t"); +} + +// typedef struct { +// graph_t **cl; +// int sz; +// int cnt; +// } clist_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/clust_t.java plantuml-8039/src/h/clust_t.java --- plantuml-8024/src/h/clust_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/clust_t.java 2016-04-22 16:26:10.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3lissut0g2m7y25k8erhz18z7 + +public interface clust_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"char* name", +"Agraph_t* clp", +"}", +"clust_t"); +} + +// typedef struct { +// Dtlink_t link; +// char* name; +// Agraph_t* clp; +// } clust_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/colorsegs_t.java plantuml-8039/src/h/colorsegs_t.java --- plantuml-8024/src/h/colorsegs_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/colorsegs_t.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 84j0pyfjr7xbsnzkzlwsc5tin + +public interface colorsegs_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int numc", +"char* base", +"colorseg_t* segs", +"}", +"colorsegs_t"); +} + +// typedef struct { +// int numc; /* number of used segments in segs; may include segs with t == 0 */ +// char* base; /* storage of color names */ +// colorseg_t* segs; /* array of segments; real segments always followed by a sentinel */ +// } colorsegs_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/colorseg_t.java plantuml-8039/src/h/colorseg_t.java --- plantuml-8024/src/h/colorseg_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/colorseg_t.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 38z6pew8kytg1kjpmiov8etuh + +public interface colorseg_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"char* color", +"float t", +"boolean hasFraction", +"}", +"colorseg_t"); +} + +// typedef struct { +// char* color; /* segment color */ +// float t; /* segment size >= 0 */ +// boolean hasFraction; /* true if color explicitly specifies its fraction */ +// } colorseg_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/color_type_t.java plantuml-8039/src/h/color_type_t.java --- plantuml-8024/src/h/color_type_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/color_type_t.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,59 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4mmho2n6bv9tphi419uxzrpes + +public interface color_type_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"HSVA_DOUBLE, RGBA_BYTE, RGBA_WORD, CMYK_BYTE, RGBA_DOUBLE, COLOR_STRING, COLOR_INDEX", +"}", +"color_type_t"); +} + +// typedef enum { HSVA_DOUBLE, RGBA_BYTE, RGBA_WORD, CMYK_BYTE, +// RGBA_DOUBLE, COLOR_STRING, COLOR_INDEX } color_type_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/compile_stack_elt_t.java plantuml-8039/src/h/compile_stack_elt_t.java --- plantuml-8024/src/h/compile_stack_elt_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/compile_stack_elt_t.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,69 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4l4tfavjmu8v5sgzzud7q5c6n + +public interface compile_stack_elt_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"pattern_offset_t begalt_offset", +"pattern_offset_t fixup_alt_jump", +"pattern_offset_t inner_group_offset", +"pattern_offset_t laststart_offset", +"regnum_t regnum", +"}", +"compile_stack_elt_t"); +} + +// typedef struct +// { +// pattern_offset_t begalt_offset; +// pattern_offset_t fixup_alt_jump; +// pattern_offset_t inner_group_offset; +// pattern_offset_t laststart_offset; +// regnum_t regnum; +// } compile_stack_elt_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/compile_stack_type.java plantuml-8039/src/h/compile_stack_type.java --- plantuml-8024/src/h/compile_stack_type.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/compile_stack_type.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,65 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6mc1jtf0ah6aikjxfamdk90i + +public interface compile_stack_type extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"compile_stack_elt_t *stack", +"unsigned size", +"unsigned avail", +"}", +"compile_stack_type"); +} + +// typedef struct +// { +// compile_stack_elt_t *stack; +// unsigned size; +// unsigned avail; /* Offset of next open position. */ +// } compile_stack_type; \ No newline at end of file diff -Nru plantuml-8024/src/h/degitem.java plantuml-8039/src/h/degitem.java --- plantuml-8024/src/h/degitem.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/degitem.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 a0671ts08zydaqdyqkjudgjhm + +public interface degitem extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"int deg", +"Agnode_t *np", +"}", +"degitem"); +} + +// typedef struct { +// Dtlink_t link; +// int deg; +// Agnode_t *np; /* linked list of nodes of same degree */ +// } degitem; \ No newline at end of file diff -Nru plantuml-8024/src/h/deque_t.java plantuml-8039/src/h/deque_t.java --- plantuml-8024/src/h/deque_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/deque_t.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 15n6mbjkpo4mjswqo3d30dej6 + +public interface deque_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct deque_t", +"{", +"pointnlink_t **pnlps", +"int pnlpn, fpnlpi, lpnlpi, apex", +"}", +"deque_t"); +} + +// typedef struct deque_t { +// pointnlink_t **pnlps; +// int pnlpn, fpnlpi, lpnlpi, apex; +// } deque_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Dict_t.java plantuml-8039/src/h/Dict_t.java --- plantuml-8024/src/h/Dict_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dict_t.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 2ggfcdw1rvmiwttzvdn3ew5b9 + +public interface Dict_t extends _dt_s { + public static List DEFINITION = Arrays.asList( +"typedef struct _dt_s Dict_t"); +} + +// typedef struct _dt_s Dict_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/dndata.java plantuml-8039/src/h/dndata.java --- plantuml-8024/src/h/dndata.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/dndata.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,67 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 a4zm7bj4ibv3mswu1844wdstr + +public interface dndata extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int deg", +"int wdeg", +"node_t *dn", +"double disp[2]", +"}", +"dndata"); +} + +// typedef struct { +// int deg; /* degree of node */ +// int wdeg; /* weighted degree of node */ +// node_t *dn; /* If derived node is not a cluster, */ +// /* dn points real node. */ +// double disp[2]; /* incremental displacement */ +// } dndata; \ No newline at end of file diff -Nru plantuml-8024/src/h/drawfunc_t.java plantuml-8039/src/h/drawfunc_t.java --- plantuml-8024/src/h/drawfunc_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/drawfunc_t.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 c0knfy0z2w7qhmdudke2ar4xz + +public interface drawfunc_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef void (*drawfunc_t)(xdot_op*, int)"); +} + +// typedef void (*drawfunc_t)(xdot_op*, int); \ No newline at end of file diff -Nru plantuml-8024/src/h/Dtcompar_f.java plantuml-8039/src/h/Dtcompar_f.java --- plantuml-8024/src/h/Dtcompar_f.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dtcompar_f.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8l0hamj2h9wjmxntnfif8qr0u + +public interface Dtcompar_f extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef int (*Dtcompar_f)(Dt_t*,void*,void*,Dtdisc_t*)"); +} + +// typedef int (*Dtcompar_f)(Dt_t*,void*,void*,Dtdisc_t*); \ No newline at end of file diff -Nru plantuml-8024/src/h/_dtdata_s.java plantuml-8039/src/h/_dtdata_s.java --- plantuml-8024/src/h/_dtdata_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/_dtdata_s.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,80 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2ncfjhm10yijctdn20pwnelos + +public interface _dtdata_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct _dtdata_s", +"{", +"int type", +"Dtlink_t* here", +"union", +"{", +"Dtlink_t** _htab", +"Dtlink_t* _head", +"}", +"hh", +"int ntab", +"int size", +"int loop", +"int minp", +"}"); +} + +// struct _dtdata_s +// { int type; /* type of dictionary */ +// Dtlink_t* here; /* finger to last search element */ +// union +// { Dtlink_t** _htab; /* hash table */ +// Dtlink_t* _head; /* linked list */ +// } hh; +// int ntab; /* number of hash slots */ +// int size; /* number of objects */ +// int loop; /* number of nested loops */ +// int minp; /* min path before splay, always even */ +// /* for hash dt, > 0: fixed table size */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Dtdata_t.java plantuml-8039/src/h/Dtdata_t.java --- plantuml-8024/src/h/Dtdata_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dtdata_t.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 864wtxvrdrty5k31pa1h7jqki + +public interface Dtdata_t extends _dtdata_s { + public static List DEFINITION = Arrays.asList( +"typedef struct _dtdata_s Dtdata_t"); +} + +// typedef struct _dtdata_s Dtdata_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/_dtdisc_s.java plantuml-8039/src/h/_dtdisc_s.java --- plantuml-8024/src/h/_dtdisc_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/_dtdisc_s.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,75 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7uiwhqnseej0oaqiv35vi47k1 + +public interface _dtdisc_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct _dtdisc_s", +"{", +"int key", +"int size", +"int link", +"Dtmake_f makef", +"Dtfree_f freef", +"Dtcompar_f comparf", +"Dthash_f hashf", +"Dtmemory_f memoryf", +"Dtevent_f eventf", +"}"); +} + +// struct _dtdisc_s +// { int key; /* where the key begins in an object */ +// int size; /* key size and type */ +// int link; /* offset to Dtlink_t field */ +// Dtmake_f makef; /* object constructor */ +// Dtfree_f freef; /* object destructor */ +// Dtcompar_f comparf;/* to compare two objects */ +// Dthash_f hashf; /* to compute hash value of an object */ +// Dtmemory_f memoryf;/* to allocate/free memory */ +// Dtevent_f eventf; /* to process events */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Dtdisc_t.java plantuml-8039/src/h/Dtdisc_t.java --- plantuml-8024/src/h/Dtdisc_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dtdisc_t.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 3n3lg4dzicyo9pzjj6bv0krf5 + +public interface Dtdisc_t extends _dtdisc_s { + public static List DEFINITION = Arrays.asList( +"typedef struct _dtdisc_s Dtdisc_t"); +} + +// typedef struct _dtdisc_s Dtdisc_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Dtevent_f.java plantuml-8039/src/h/Dtevent_f.java --- plantuml-8024/src/h/Dtevent_f.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dtevent_f.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 aok6h7reyx9aof9o5x8vmhrdl + +public interface Dtevent_f extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef int (*Dtevent_f)(Dt_t*,int,void*,Dtdisc_t*)"); +} + +// typedef int (*Dtevent_f)(Dt_t*,int,void*,Dtdisc_t*); \ No newline at end of file diff -Nru plantuml-8024/src/h/Dtfree_f.java plantuml-8039/src/h/Dtfree_f.java --- plantuml-8024/src/h/Dtfree_f.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dtfree_f.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 77oaerxzxja1o4hf22u53nx0q + +public interface Dtfree_f extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef void (*Dtfree_f)(Dt_t*,void*,Dtdisc_t*)"); +} + +// typedef void (*Dtfree_f)(Dt_t*,void*,Dtdisc_t*); \ No newline at end of file diff -Nru plantuml-8024/src/h/Dthash_f.java plantuml-8039/src/h/Dthash_f.java --- plantuml-8024/src/h/Dthash_f.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dthash_f.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 df6rxih396i1t0qdbcbr992aw + +public interface Dthash_f extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef unsigned int (*Dthash_f)(Dt_t*,void*,Dtdisc_t*)"); +} + +// typedef unsigned int (*Dthash_f)(Dt_t*,void*,Dtdisc_t*); \ No newline at end of file diff -Nru plantuml-8024/src/h/_dthold_s.java plantuml-8039/src/h/_dthold_s.java --- plantuml-8024/src/h/_dthold_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/_dthold_s.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,61 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 bj5vks4vb3mb95f68v6qwe1q + +public interface _dthold_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct _dthold_s", +"{", +"Dtlink_t hdr", +"void* obj", +"}"); +} + +// struct _dthold_s +// { Dtlink_t hdr; /* header */ +// void* obj; /* user object */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Dthold_t.java plantuml-8039/src/h/Dthold_t.java --- plantuml-8024/src/h/Dthold_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dthold_t.java 2016-04-22 16:26:11.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 1tob3f90syune1bxwbffctfmj + +public interface Dthold_t extends _dthold_s { + public static List DEFINITION = Arrays.asList( +"typedef struct _dthold_s Dthold_t"); +} + +// typedef struct _dthold_s Dthold_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/_dtlink_s.java plantuml-8039/src/h/_dtlink_s.java --- plantuml-8024/src/h/_dtlink_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/_dtlink_s.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,69 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6b881ar4wz3iwu5spghy0ocnj + +public interface _dtlink_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct _dtlink_s", +"{", +"Dtlink_t* right", +"union", +"{", +"unsigned int _hash", +"Dtlink_t* _left", +"}", +"hl", +"}"); +} + +// struct _dtlink_s +// { Dtlink_t* right; /* right child */ +// union +// { unsigned int _hash; /* hash value */ +// Dtlink_t* _left; /* left child */ +// } hl; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Dtlink_t.java plantuml-8039/src/h/Dtlink_t.java --- plantuml-8024/src/h/Dtlink_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dtlink_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 8y38rtlesz0zzh2ncgic680by + +public interface Dtlink_t extends _dtlink_s { + public static List DEFINITION = Arrays.asList( +"typedef struct _dtlink_s Dtlink_t"); +} + +// typedef struct _dtlink_s Dtlink_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Dtmake_f.java plantuml-8039/src/h/Dtmake_f.java --- plantuml-8024/src/h/Dtmake_f.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dtmake_f.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9m2e8f1zyiy1pfo2wn5pxlrd4 + +public interface Dtmake_f extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef void* (*Dtmake_f)(Dt_t*,void*,Dtdisc_t*)"); +} + +// typedef void* (*Dtmake_f)(Dt_t*,void*,Dtdisc_t*); \ No newline at end of file diff -Nru plantuml-8024/src/h/Dtmemory_f.java plantuml-8039/src/h/Dtmemory_f.java --- plantuml-8024/src/h/Dtmemory_f.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dtmemory_f.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4zc871fjqyem7alnz2wj8tbr1 + +public interface Dtmemory_f extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef void* (*Dtmemory_f)(Dt_t*,void*,size_t,Dtdisc_t*)"); +} + +// typedef void* (*Dtmemory_f)(Dt_t*,void*,size_t,Dtdisc_t*); \ No newline at end of file diff -Nru plantuml-8024/src/h/_dtmethod_s.java plantuml-8039/src/h/_dtmethod_s.java --- plantuml-8024/src/h/_dtmethod_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/_dtmethod_s.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,61 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4djfx98e5oxk0jjryvk4600wt + +public interface _dtmethod_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct _dtmethod_s", +"{", +"Dtsearch_f searchf", +"int type", +"}"); +} + +// struct _dtmethod_s +// { Dtsearch_f searchf; /* search function */ +// int type; /* type of operation */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Dtmethod_t.java plantuml-8039/src/h/Dtmethod_t.java --- plantuml-8024/src/h/Dtmethod_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dtmethod_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 14xcg8o7gvv98a59xu3dtokd + +public interface Dtmethod_t extends _dtmethod_s { + public static List DEFINITION = Arrays.asList( +"typedef struct _dtmethod_s Dtmethod_t"); +} + +// typedef struct _dtmethod_s Dtmethod_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Dtsearch_f.java plantuml-8039/src/h/Dtsearch_f.java --- plantuml-8024/src/h/Dtsearch_f.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dtsearch_f.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 aagzksky19to67t04s3ajytr4 + +public interface Dtsearch_f extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef void* (*Dtsearch_f)(Dt_t*,void*,int)"); +} + +// typedef void* (*Dtsearch_f)(Dt_t*,void*,int); \ No newline at end of file diff -Nru plantuml-8024/src/h/_dt_s.java plantuml-8039/src/h/_dt_s.java --- plantuml-8024/src/h/_dt_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/_dt_s.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,77 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 926gualwyh744kklf86qw5qsj + +public interface _dt_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct _dt_s", +"{", +"Dtsearch_f searchf", +"Dtdisc_t* disc", +"Dtdata_t* data", +"Dtmemory_f memoryf", +"Dtmethod_t* meth", +"int type", +"int nview", +"Dt_t* view", +"Dt_t* walk", +"void* user", +"}"); +} + +// struct _dt_s +// { Dtsearch_f searchf;/* search function */ +// Dtdisc_t* disc; /* method to manipulate objs */ +// Dtdata_t* data; /* sharable data */ +// Dtmemory_f memoryf;/* function to alloc/free memory */ +// Dtmethod_t* meth; /* dictionary method */ +// int type; /* type information */ +// int nview; /* number of parent view dictionaries */ +// Dt_t* view; /* next on viewpath */ +// Dt_t* walk; /* dictionary being walked */ +// void* user; /* for user's usage */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/_dtstat_s.java plantuml-8039/src/h/_dtstat_s.java --- plantuml-8024/src/h/_dtstat_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/_dtstat_s.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,67 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 d0ga3dn66q62mmy36kk5eorat + +public interface _dtstat_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct _dtstat_s", +"{", +"int dt_meth", +"int dt_size", +"int dt_n", +"int dt_max", +"int* dt_count", +"}"); +} + +// struct _dtstat_s +// { int dt_meth; /* method type */ +// int dt_size; /* number of elements */ +// int dt_n; /* number of chains or levels */ +// int dt_max; /* max size of a chain or a level */ +// int* dt_count; /* counts of chains or levels by size */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Dtstat_t.java plantuml-8039/src/h/Dtstat_t.java --- plantuml-8024/src/h/Dtstat_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dtstat_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 1r5lk2p40u9awvooeu2vq9dks + +public interface Dtstat_t extends _dtstat_s { + public static List DEFINITION = Arrays.asList( +"typedef struct _dtstat_s Dtstat_t"); +} + +// typedef struct _dtstat_s Dtstat_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Dt_t.java plantuml-8039/src/h/Dt_t.java --- plantuml-8024/src/h/Dt_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Dt_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 u1i3hxdborawdyw7d778quhw + +public interface Dt_t extends _dt_s { + public static List DEFINITION = Arrays.asList( +"typedef struct _dt_s Dt_t"); +} + +// typedef struct _dt_s Dt_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/edata.java plantuml-8039/src/h/edata.java --- plantuml-8024/src/h/edata.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/edata.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 aa8lv40j7f2q31yuuqyzqncnl + +public interface edata extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int order", +"Agedge_t* next", +"}", +"edata"); +} + +// typedef struct { +// int order; +// Agedge_t* next; +// } edata; \ No newline at end of file diff -Nru plantuml-8024/src/h/edgelistitem.java plantuml-8039/src/h/edgelistitem.java --- plantuml-8024/src/h/edgelistitem.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/edgelistitem.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2pomqgw3z041x7wlav4wa7554 + +public interface edgelistitem extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct edgelistitem", +"{", +"Dtlink_t link", +"Agedge_t *edge", +"}", +"edgelistitem"); +} + +// typedef struct edgelistitem { +// Dtlink_t link; +// Agedge_t *edge; +// } edgelistitem; \ No newline at end of file diff -Nru plantuml-8024/src/h/edge_t.java plantuml-8039/src/h/edge_t.java --- plantuml-8024/src/h/edge_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/edge_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 1fsfdd86c8isg6ylp15pwknbu + +public interface edge_t extends Agedge_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agedge_s edge_t"); +} + +// typedef struct Agedge_s edge_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/elist.java plantuml-8039/src/h/elist.java --- plantuml-8024/src/h/elist.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/elist.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8lw80si2xjoivlskhxdmff5mu + +public interface elist extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct elist", +"{", +"edge_t **list", +"int size", +"}", +"elist"); +} + +// typedef struct elist { +// edge_t **list; +// int size; +// } elist; \ No newline at end of file diff -Nru plantuml-8024/src/h/elist_t.java plantuml-8039/src/h/elist_t.java --- plantuml-8024/src/h/elist_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/elist_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8ya2p1uqesbvs87po5upckzn0 + +public interface elist_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct elist_t", +"{", +"Pedge_t *ep", +"struct elist_t *next, *prev", +"}", +"elist_t"); +} + +// typedef struct elist_t { +// Pedge_t *ep; +// struct elist_t *next, *prev; +// } elist_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/ellipse_t.java plantuml-8039/src/h/ellipse_t.java --- plantuml-8024/src/h/ellipse_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/ellipse_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,93 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7sm9vcfcserrygyo079543gdf + +public interface ellipse_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"double cx, cy", +"double a, b", +"double theta, cosTheta, sinTheta", +"double eta1, eta2", +"double x1, y1, x2, y2", +"double xF1, yF1, xF2, yF2", +"double xLeft", +"double yUp", +"double width, height", +"double f, e2, g, g2", +"}", +"ellipse_t"); +} + +// typedef struct { +// double cx, cy; /* center */ +// double a, b; /* semi-major and -minor axes */ +// +// /* Orientation of the major axis with respect to the x axis. */ +// double theta, cosTheta, sinTheta; +// +// /* Start and end angles of the arc. */ +// double eta1, eta2; +// +// /* Position of the start and end points. */ +// double x1, y1, x2, y2; +// +// /* Position of the foci. */ +// double xF1, yF1, xF2, yF2; +// +// /* x of the leftmost point of the arc. */ +// double xLeft; +// +// /* y of the highest point of the arc. */ +// double yUp; +// +// /* Horizontal width and vertical height of the arc. */ +// double width, height; +// +// double f, e2, g, g2; +// } ellipse_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/emit_state_t.java plantuml-8039/src/h/emit_state_t.java --- plantuml-8024/src/h/emit_state_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/emit_state_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6f8ug3prsw7z33swixem3j76r + +public interface emit_state_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"EMIT_GDRAW, EMIT_CDRAW, EMIT_TDRAW, EMIT_HDRAW, EMIT_GLABEL, EMIT_CLABEL, EMIT_TLABEL, EMIT_HLABEL, EMIT_NDRAW, EMIT_EDRAW, EMIT_NLABEL, EMIT_ELABEL,", +"}", +"emit_state_t"); +} + +// typedef enum { +// EMIT_GDRAW, EMIT_CDRAW, EMIT_TDRAW, EMIT_HDRAW, +// EMIT_GLABEL, EMIT_CLABEL, EMIT_TLABEL, EMIT_HLABEL, +// EMIT_NDRAW, EMIT_EDRAW, EMIT_NLABEL, EMIT_ELABEL, +// } emit_state_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/epair_t.java plantuml-8039/src/h/epair_t.java --- plantuml-8024/src/h/epair_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/epair_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 47wrxm3dq9ggw4h17ykphv1ck + +public interface epair_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int d", +"Agedge_t* e", +"}", +"epair_t"); +} + +// typedef struct { +// int d; +// Agedge_t* e; +// } epair_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/epsf_t.java plantuml-8039/src/h/epsf_t.java --- plantuml-8024/src/h/epsf_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/epsf_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 69jjtteuvsovhvkrfbvx2021c + +public interface epsf_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct epsf_s", +"{", +"int macro_id", +"point offset", +"}", +"epsf_t"); +} + +// typedef struct epsf_s { +// int macro_id; +// point offset; +// } epsf_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/erec.java plantuml-8039/src/h/erec.java --- plantuml-8024/src/h/erec.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/erec.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 1zoua45sppb09q1mpfhzlvhus + +public interface erec extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"edge_t *e", +"double alpha", +"double dist2", +"}", +"erec"); +} + +// typedef struct { +// edge_t *e; +// double alpha; +// double dist2; +// } erec; \ No newline at end of file diff -Nru plantuml-8024/src/h/estack.java plantuml-8039/src/h/estack.java --- plantuml-8024/src/h/estack.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/estack.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9fnin5thtg37gur12wihsuz4j + +public interface estack extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Agedge_t *top", +"int sz", +"}", +"estack"); +} + +// typedef struct { +// Agedge_t *top; +// int sz; +// } estack; \ No newline at end of file diff -Nru plantuml-8024/src/h/exdot_op.java plantuml-8039/src/h/exdot_op.java --- plantuml-8024/src/h/exdot_op.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/exdot_op.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5dtjk4eaksfp1h28795tk7u7h + +public interface exdot_op extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"xdot_op op", +"boxf bb", +"textspan_t* span", +"}", +"exdot_op"); +} + +// typedef struct { +// xdot_op op; +// boxf bb; +// textspan_t* span; +// } exdot_op; \ No newline at end of file diff -Nru plantuml-8024/src/h/fail_stack_type.java plantuml-8039/src/h/fail_stack_type.java --- plantuml-8024/src/h/fail_stack_type.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/fail_stack_type.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,65 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 el5ktmij22s6d4cvfe81842jd + +public interface fail_stack_type extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"fail_stack_elt_t *stack", +"unsigned size", +"unsigned avail", +"}", +"fail_stack_type"); +} + +// typedef struct +// { +// fail_stack_elt_t *stack; +// unsigned size; +// unsigned avail; /* Offset of next open position. */ +// } fail_stack_type; \ No newline at end of file diff -Nru plantuml-8024/src/h/fdpParms_s.java plantuml-8039/src/h/fdpParms_s.java --- plantuml-8024/src/h/fdpParms_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/fdpParms_s.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,73 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 f7uv7vj69dm0khl1b380tapm + +public interface fdpParms_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct fdpParms_s", +"{", +"int useGrid", +"int useNew", +"int numIters", +"int unscaled", +"double C", +"double Tfact", +"double K", +"double T0", +"}"); +} + +// struct fdpParms_s { +// int useGrid; /* use grid for speed up */ +// int useNew; /* encode x-K into attractive force */ +// int numIters; /* actual iterations in layout */ +// int unscaled; /* % of iterations used in pass 1 */ +// double C; /* Repulsion factor in xLayout */ +// double Tfact; /* scale temp from default expression */ +// double K; /* spring constant; ideal distance */ +// double T0; /* initial temperature */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/fdpParms_t.java plantuml-8039/src/h/fdpParms_t.java --- plantuml-8024/src/h/fdpParms_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/fdpParms_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 8unwxxsfji1yz0v4p07nrybhu + +public interface fdpParms_t extends fdpParms_s { + public static List DEFINITION = Arrays.asList( +"typedef struct fdpParms_s fdpParms_t"); +} + +// typedef struct fdpParms_s fdpParms_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/field_t.java plantuml-8039/src/h/field_t.java --- plantuml-8024/src/h/field_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/field_t.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,74 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5slbuxsxkyuboijzrnorwqjk4 + +public interface field_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct field_t", +"{", +"pointf size", +"boxf b", +"int n_flds", +"textlabel_t *lp", +"struct field_t **fld", +"char *id", +"unsigned char LR", +"unsigned char sides", +"}", +"field_t"); +} + +// typedef struct field_t { +// pointf size; /* its dimension */ +// boxf b; /* its placement in node's coordinates */ +// int n_flds; +// textlabel_t *lp; /* n_flds == 0 */ +// struct field_t **fld; /* n_flds > 0 */ +// char *id; /* user's identifier */ +// unsigned char LR; /* if box list is horizontal (left to right) */ +// unsigned char sides; /* sides of node exposed to field */ +// } field_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/fill_type.java plantuml-8039/src/h/fill_type.java --- plantuml-8024/src/h/fill_type.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/fill_type.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7yr1sspvlqw3sgiyhkr854cd + +public interface fill_type extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"FILL_NONE, FILL_SOLID, FILL_LINEAR, FILL_RADIAL", +"}", +"fill_type"); +} + +// typedef enum { FILL_NONE, FILL_SOLID, FILL_LINEAR, FILL_RADIAL } fill_type; \ No newline at end of file diff -Nru plantuml-8024/src/h/fitem.java plantuml-8039/src/h/fitem.java --- plantuml-8024/src/h/fitem.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/fitem.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2w2z3tmg7hmxrqko2dt5rsqag + +public interface fitem extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"textspan_t ti", +"}", +"fitem"); +} + +// typedef struct { +// Dtlink_t link; +// textspan_t ti; +// } fitem; \ No newline at end of file diff -Nru plantuml-8024/src/h/flushfn.java plantuml-8039/src/h/flushfn.java --- plantuml-8024/src/h/flushfn.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/flushfn.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6co8gnhn5xjhq4c6lyebol0jr + +public interface flushfn extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef int (*flushfn) (void *chan)"); +} + +// typedef int (*flushfn) (void *chan); \ No newline at end of file diff -Nru plantuml-8024/src/h/fontinfo.java plantuml-8039/src/h/fontinfo.java --- plantuml-8024/src/h/fontinfo.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/fontinfo.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 964775l6tcok47z2sykyt451v + +public interface fontinfo extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct fontinfo", +"{", +"double fontsize", +"char *fontname", +"char *fontcolor", +"}"); +} + +// struct fontinfo { +// double fontsize; +// char *fontname; +// char *fontcolor; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/fontname_kind.java plantuml-8039/src/h/fontname_kind.java --- plantuml-8024/src/h/fontname_kind.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/fontname_kind.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 b9cjioxrhs04ztwegqflwrjk9 + +public interface fontname_kind extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"NATIVEFONTS,PSFONTS,SVGFONTS", +"}", +"fontname_kind"); +} + +// typedef enum {NATIVEFONTS,PSFONTS,SVGFONTS} fontname_kind; \ No newline at end of file diff -Nru plantuml-8024/src/h/font_type.java plantuml-8039/src/h/font_type.java --- plantuml-8024/src/h/font_type.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/font_type.java 2016-04-22 16:26:12.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2xdqtc3a2c3n08rywh1rm8cjw + +public interface font_type extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"FONT_REGULAR, FONT_BOLD, FONT_ITALIC", +"}", +"font_type"); +} + +// typedef enum { FONT_REGULAR, FONT_BOLD, FONT_ITALIC } font_type; \ No newline at end of file diff -Nru plantuml-8024/src/h/format_type.java plantuml-8039/src/h/format_type.java --- plantuml-8024/src/h/format_type.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/format_type.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 48gvd3f5a7qs6f6eid493tvyl + +public interface format_type extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"FORMAT_PNG_XDOT, FORMAT_GIF_XDOT, FORMAT_JPEG_XDOT, FORMAT_SVG_XDOT, FORMAT_PS_XDOT, FORMAT_PNG_DOT, FORMAT_GIF_DOT, FORMAT_JPEG_DOT, FORMAT_SVG_DOT, FORMAT_PS_DOT, FORMAT_PNG_MAP, FORMAT_GIF_MAP, FORMAT_JPEG_MAP, FORMAT_SVG_MAP, FORMAT_PS_MAP, FORMAT_PNG_SVG, FORMAT_GIF_SVG, FORMAT_JPEG_SVG, FORMAT_SVG_SVG, FORMAT_PNG_FIG, FORMAT_GIF_FIG, FORMAT_JPEG_FIG, FORMAT_PNG_VRML, FORMAT_GIF_VRML, FORMAT_JPEG_VRML, FORMAT_PS_PS, FORMAT_PSLIB_PS, FORMAT_PNG_VML, FORMAT_GIF_VML, FORMAT_JPEG_VML, FORMAT_GIF_TK,", +"}", +"format_type"); +} + +// typedef enum { +// FORMAT_PNG_XDOT, FORMAT_GIF_XDOT, FORMAT_JPEG_XDOT, FORMAT_SVG_XDOT, FORMAT_PS_XDOT, +// FORMAT_PNG_DOT, FORMAT_GIF_DOT, FORMAT_JPEG_DOT, FORMAT_SVG_DOT, FORMAT_PS_DOT, +// FORMAT_PNG_MAP, FORMAT_GIF_MAP, FORMAT_JPEG_MAP, FORMAT_SVG_MAP, FORMAT_PS_MAP, +// FORMAT_PNG_SVG, FORMAT_GIF_SVG, FORMAT_JPEG_SVG, FORMAT_SVG_SVG, +// FORMAT_PNG_FIG, FORMAT_GIF_FIG, FORMAT_JPEG_FIG, +// FORMAT_PNG_VRML, FORMAT_GIF_VRML, FORMAT_JPEG_VRML, +// FORMAT_PS_PS, FORMAT_PSLIB_PS, +// FORMAT_PNG_VML, FORMAT_GIF_VML, FORMAT_JPEG_VML, +// FORMAT_GIF_TK, +// } format_type; \ No newline at end of file diff -Nru plantuml-8024/src/h/freefunc_t.java plantuml-8039/src/h/freefunc_t.java --- plantuml-8024/src/h/freefunc_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/freefunc_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 e8aa7nh48ajm604b51pz19bub + +public interface freefunc_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef void (*freefunc_t)(xdot_op*)"); +} + +// typedef void (*freefunc_t)(xdot_op*); \ No newline at end of file diff -Nru plantuml-8024/src/h/fspan.java plantuml-8039/src/h/fspan.java --- plantuml-8024/src/h/fspan.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/fspan.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 ey73hen3l0l82tzpokzw8heu4 + +public interface fspan extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"htextspan_t lp", +"}", +"fspan"); +} + +// typedef struct { +// Dtlink_t link; +// htextspan_t lp; +// } fspan; \ No newline at end of file diff -Nru plantuml-8024/src/h/gdata.java plantuml-8039/src/h/gdata.java --- plantuml-8024/src/h/gdata.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gdata.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,73 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2ruxso0qdpjclz5edssp197zm + +public interface gdata extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"bport_t *ports", +"int nports", +"boxf bb", +"int flags", +"int level", +"graph_t *parent", +"}", +"gdata"); +} + +// typedef struct { +// bport_t *ports; /* boundary ports. 0-terminated */ +// int nports; /* no. of ports */ +// boxf bb; /* bounding box of graph */ +// int flags; +// int level; /* depth in graph hierarchy */ +// graph_t *parent; /* smallest containing cluster */ +// +// +// +// } gdata; \ No newline at end of file diff -Nru plantuml-8024/src/h/ginfo.java plantuml-8039/src/h/ginfo.java --- plantuml-8024/src/h/ginfo.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/ginfo.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 49o2f0vj6o2k7glkg59q1t341 + +public interface ginfo extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int perim", +"point *cells", +"int nc", +"int index", +"}", +"ginfo"); +} + +// typedef struct { +// int perim; /* half size of bounding rectangle perimeter */ +// point *cells; /* cells in covering polyomino */ +// int nc; /* no. of cells */ +// int index; /* index in original array */ +// } ginfo; \ No newline at end of file diff -Nru plantuml-8024/src/h/graph_t.java plantuml-8039/src/h/graph_t.java --- plantuml-8024/src/h/graph_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/graph_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 ebapqf0991e4p4fqcr0tva8qa + +public interface graph_t extends Agraph_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agraph_s graph_t"); +} + +// typedef struct Agraph_s graph_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/_grid.java plantuml-8039/src/h/_grid.java --- plantuml-8024/src/h/_grid.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/_grid.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,69 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 bzaoe3mouoxna5q5cxl3fdw6b + +public interface _grid extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct _grid", +"{", +"Dt_t *data", +"block_t *cellMem", +"block_t *cellCur", +"int listSize", +"node_list *listMem", +"node_list *listCur", +"}"); +} + +// struct _grid { +// Dt_t *data; /* cells indexed by (i,j) */ +// block_t *cellMem; /* list of memory blocks for cells */ +// block_t *cellCur; /* current block */ +// int listSize; /* memory of nodes */ +// node_list *listMem; /* list of memory for node items */ +// node_list *listCur; /* next node item */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/Grid.java plantuml-8039/src/h/Grid.java --- plantuml-8024/src/h/Grid.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Grid.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 4i6l1ddogjsyl2pt4s30fqmwy + +public interface Grid extends _grid { + public static List DEFINITION = Arrays.asList( +"typedef struct _grid Grid"); +} + +// typedef struct _grid Grid; \ No newline at end of file diff -Nru plantuml-8024/src/h/gridpt.java plantuml-8039/src/h/gridpt.java --- plantuml-8024/src/h/gridpt.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gridpt.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 bh966kf6yzel6b62omfkro2sw + +public interface gridpt extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int i, j", +"}", +"gridpt"); +} + +// typedef struct { +// int i, j; +// } gridpt; \ No newline at end of file diff -Nru plantuml-8024/src/h/gstack_t.java plantuml-8039/src/h/gstack_t.java --- plantuml-8024/src/h/gstack_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gstack_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * PlantUML is free software; you can redistribute it and/or modify it + * under the terms of the Eclipse Public License. + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 831302imlb2pb01kdebykh623 + +public interface gstack_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct gstack_s", +"{", +"Agraph_t *g", +"Agraph_t *subg", +"list_t nodelist,edgelist,attrlist", +"struct gstack_s *down", +"}", +"gstack_t"); +} + +// typedef struct gstack_s { +// Agraph_t *g; +// Agraph_t *subg; +// list_t nodelist,edgelist,attrlist; +// struct gstack_s *down; +// } gstack_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gv_argvlist_t.java plantuml-8039/src/h/gv_argvlist_t.java --- plantuml-8024/src/h/gv_argvlist_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gv_argvlist_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 ed9gxxtmujpu6gyrtmhxdut42 + +public interface gv_argvlist_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct gv_argvlist_s", +"{", +"char **argv", +"int argc", +"int alloc", +"}", +"gv_argvlist_t"); +} + +// typedef struct gv_argvlist_s { +// char **argv; +// int argc; +// int alloc; +// } gv_argvlist_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvattr_t.java plantuml-8039/src/h/gvattr_t.java --- plantuml-8024/src/h/gvattr_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvattr_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2sx3fd85hu0bac6ji75ngovnu + +public interface gvattr_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"GVATTR_STRING, GVATTR_BOOL, GVATTR_COLOR", +"}", +"gvattr_t"); +} + +// typedef enum { GVATTR_STRING, GVATTR_BOOL, GVATTR_COLOR } gvattr_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvcolor_t.java plantuml-8039/src/h/gvcolor_t.java --- plantuml-8024/src/h/gvcolor_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvcolor_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,80 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9xilv9or3ptvy3gupp6t2ql19 + +public interface gvcolor_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct color_s", +"{", +"union", +"{", +"double RGBA[4]", +"double HSVA[4]", +"unsigned char rgba[4]", +"unsigned char cmyk[4]", +"int rrggbbaa[4]", +"char *string", +"int index", +"}", +"u", +"color_type_t type", +"}", +"gvcolor_t"); +} + +// typedef struct color_s { +// union { +// double RGBA[4]; +// double HSVA[4]; +// unsigned char rgba[4]; +// unsigned char cmyk[4]; +// int rrggbbaa[4]; +// char *string; +// int index; +// } u; +// color_type_t type; +// } gvcolor_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/GVCOMMON_t.java plantuml-8039/src/h/GVCOMMON_t.java --- plantuml-8024/src/h/GVCOMMON_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/GVCOMMON_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,81 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3xlydw5hu2becv89l6tup8eo + +public interface GVCOMMON_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct GVCOMMON_s", +"{", +"char **info", +"char *cmdname", +"int verbose", +"boolean config, auto_outfile_names", +"void (*errorfn) (const char *fmt, ...)", +"const char **show_boxes", +"const char **lib", +"int viewNum", +"const lt_symlist_t *builtins", +"int demand_loading", +"}", +"GVCOMMON_t"); +} + +// typedef struct GVCOMMON_s { +// char **info; +// char *cmdname; +// int verbose; +// boolean config, auto_outfile_names; +// void (*errorfn) (const char *fmt, ...); +// const char **show_boxes; /* emit code for correct box coordinates */ +// const char **lib; +// +// /* rendering state */ +// int viewNum; /* current view - 1 based count of views, +// all pages in all layers */ +// const lt_symlist_t *builtins; +// int demand_loading; +// } GVCOMMON_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/GVC_s.java plantuml-8039/src/h/GVC_s.java --- plantuml-8024/src/h/GVC_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/GVC_s.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,168 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 clpjw996k49ieh47hl09lwwq1 + +public interface GVC_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct GVC_s", +"{", +"GVCOMMON_t common", +"char *config_path", +"boolean config_found", +"char **input_filenames", +"GVG_t *gvgs", +"GVG_t *gvg", +"gvplugin_available_t *apis[ +1 +1 +1 +1 +1 ]", +"gvplugin_available_t *api[ +1 +1 +1 +1 +1 ]", +"gvplugin_package_t *packages", +"size_t (*write_fn) (GVJ_t *job, const char *s, size_t len)", +"Dtdisc_t textfont_disc", +"Dt_t *textfont_dt", +"gvplugin_active_textlayout_t textlayout", +"GVJ_t *jobs", +"GVJ_t *job", +"graph_t *g", +"gvplugin_active_layout_t layout", +"char *graphname", +"GVJ_t *active_jobs", +"char *pagedir", +"pointf margin", +"pointf pad", +"pointf pageSize", +"point pb", +"boxf bb", +"int rotation", +"boolean graph_sets_pad, graph_sets_margin, graph_sets_pageSize, graph_sets_rotation", +"char *layerDelims", +"char *layerListDelims", +"char *layers", +"char **layerIDs", +"int numLayers", +"int *layerlist", +"char *defaultfontname", +"double defaultfontsize", +"char **defaultlinestyle", +"gvcolor_t bgcolor", +"int fontrenaming", +"}"); +} + +// struct GVC_s { +// GVCOMMON_t common; +// +// char *config_path; +// boolean config_found; +// +// /* gvParseArgs */ +// char **input_filenames; /* null terminated array of input filenames */ +// +// /* gvNextInputGraph() */ +// GVG_t *gvgs; /* linked list of graphs */ +// GVG_t *gvg; /* current graph */ +// +// /* plugins */ +// +// /* APIS expands to "+1 +1 ... +1" to give the number of APIs */ +// gvplugin_available_t *apis[ +1 +1 +1 +1 +1 ]; /* array of linked-list of plugins per api */ +// gvplugin_available_t *api[ +1 +1 +1 +1 +1 ]; /* array of current plugins per api */ +// +// gvplugin_package_t *packages; /* list of available packages */ +// +// /* externally provided write() displine */ +// size_t (*write_fn) (GVJ_t *job, const char *s, size_t len); +// +// /* fonts and textlayout */ +// Dtdisc_t textfont_disc; +// Dt_t *textfont_dt; +// gvplugin_active_textlayout_t textlayout; /* always use best avail for all jobs */ +// // void (*free_layout) (void *layout); /* function for freeing layouts (mostly used by pango) */ +// +// /* FIXME - everything below should probably move to GVG_t */ +// +// /* gvrender_config() */ +// GVJ_t *jobs; /* linked list of jobs */ +// GVJ_t *job; /* current job */ +// +// graph_t *g; /* current graph */ +// +// /* gvrender_begin_job() */ +// gvplugin_active_layout_t layout; +// +// char *graphname; /* name from graph */ +// GVJ_t *active_jobs; /* linked list of active jobs */ +// +// /* pagination */ +// char *pagedir; /* pagination order */ +// pointf margin; /* margins in graph units */ +// pointf pad; /* pad in graph units */ +// pointf pageSize; /* pageSize in graph units, not including margins */ +// point pb; /* page size - including margins (inches) */ +// boxf bb; /* graph bb in graph units, not including margins */ +// int rotation; /* rotation - 0 = portrait, 90 = landscape */ +// boolean graph_sets_pad, graph_sets_margin, graph_sets_pageSize, graph_sets_rotation; +// +// /* layers */ +// char *layerDelims; /* delimiters in layer names */ +// char *layerListDelims; /* delimiters between layer ranges */ +// char *layers; /* null delimited list of layer names */ +// char **layerIDs; /* array of layer names */ +// int numLayers; /* number of layers */ +// int *layerlist; +// +// /* default font */ +// char *defaultfontname; +// double defaultfontsize; +// +// /* default line style */ +// char **defaultlinestyle; +// +// /* render defaults set from graph */ +// gvcolor_t bgcolor; /* background color */ +// +// /* whether to mangle font names (at least in SVG), usually false */ +// int fontrenaming; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/GVC_t.java plantuml-8039/src/h/GVC_t.java --- plantuml-8024/src/h/GVC_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/GVC_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 fg8z912mbk6t13fn38q7zn7l + +public interface GVC_t extends GVC_s { + public static List DEFINITION = Arrays.asList( +"typedef struct GVC_s GVC_t"); +} + +// typedef struct GVC_s GVC_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvdevice_callbacks_t.java plantuml-8039/src/h/gvdevice_callbacks_t.java --- plantuml-8024/src/h/gvdevice_callbacks_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvdevice_callbacks_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,76 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 f3e0bdxm3k2e7dwusmutjfhyg + +public interface gvdevice_callbacks_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct gvdevice_callbacks_s", +"{", +"void (*refresh) (GVJ_t * job)", +"void (*button_press) (GVJ_t * job, int button, pointf pointer)", +"void (*button_release) (GVJ_t * job, int button, pointf pointer)", +"void (*motion) (GVJ_t * job, pointf pointer)", +"void (*modify) (GVJ_t * job, const char *name, const char *value)", +"void (*del) (GVJ_t * job)", +"void (*read) (GVJ_t * job, const char *filename, const char *layout)", +"void (*layout) (GVJ_t * job, const char *layout)", +"void (*render) (GVJ_t * job, const char *format, const char *filename)", +"}", +"gvdevice_callbacks_t"); +} + +// typedef struct gvdevice_callbacks_s { +// void (*refresh) (GVJ_t * job); +// void (*button_press) (GVJ_t * job, int button, pointf pointer); +// void (*button_release) (GVJ_t * job, int button, pointf pointer); +// void (*motion) (GVJ_t * job, pointf pointer); +// void (*modify) (GVJ_t * job, const char *name, const char *value); +// void (*del) (GVJ_t * job); /* can't use "delete" 'cos C++ stole it */ +// void (*read) (GVJ_t * job, const char *filename, const char *layout); +// void (*layout) (GVJ_t * job, const char *layout); +// void (*render) (GVJ_t * job, const char *format, const char *filename); +// } gvdevice_callbacks_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvdevice_engine_s.java plantuml-8039/src/h/gvdevice_engine_s.java --- plantuml-8024/src/h/gvdevice_engine_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvdevice_engine_s.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 z4n2hij703yppdzze03zzgi6 + +public interface gvdevice_engine_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct gvdevice_engine_s", +"{", +"void (*initialize) (GVJ_t * firstjob)", +"void (*format) (GVJ_t * firstjob)", +"void (*finalize) (GVJ_t * firstjob)", +"}"); +} + +// struct gvdevice_engine_s { +// void (*initialize) (GVJ_t * firstjob); +// void (*format) (GVJ_t * firstjob); +// void (*finalize) (GVJ_t * firstjob); +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvdevice_engine_t.java plantuml-8039/src/h/gvdevice_engine_t.java --- plantuml-8024/src/h/gvdevice_engine_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvdevice_engine_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 3xl6s6o9sk6ni7l5g3amrl4p3 + +public interface gvdevice_engine_t extends gvdevice_engine_s { + public static List DEFINITION = Arrays.asList( +"typedef struct gvdevice_engine_s gvdevice_engine_t"); +} + +// typedef struct gvdevice_engine_s gvdevice_engine_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvdevice_features_t.java plantuml-8039/src/h/gvdevice_features_t.java --- plantuml-8024/src/h/gvdevice_features_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvdevice_features_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7mtrzu9286sibihpev6m1kq0d + +public interface gvdevice_features_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int flags", +"pointf default_margin", +"pointf default_pagesize", +"pointf default_dpi", +"}", +"gvdevice_features_t"); +} + +// typedef struct { +// int flags; +// pointf default_margin; /* left/right, top/bottom - points */ +// pointf default_pagesize;/* default page width, height - points */ +// pointf default_dpi; +// } gvdevice_features_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvevent_key_binding_t.java plantuml-8039/src/h/gvevent_key_binding_t.java --- plantuml-8024/src/h/gvevent_key_binding_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvevent_key_binding_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 36q7p68bw2kihtosgcli2ebnl + +public interface gvevent_key_binding_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct gvevent_key_binding_s", +"{", +"char *keystring", +"gvevent_key_callback_t callback", +"}", +"gvevent_key_binding_t"); +} + +// typedef struct gvevent_key_binding_s { +// char *keystring; +// gvevent_key_callback_t callback; +// } gvevent_key_binding_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvevent_key_callback_t.java plantuml-8039/src/h/gvevent_key_callback_t.java --- plantuml-8024/src/h/gvevent_key_callback_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvevent_key_callback_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8od0u0s38rvhqrafwy4nh1i0 + +public interface gvevent_key_callback_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef int (*gvevent_key_callback_t) (GVJ_t * job)"); +} + +// typedef int (*gvevent_key_callback_t) (GVJ_t * job); \ No newline at end of file diff -Nru plantuml-8024/src/h/gvformatter_engine_t.java plantuml-8039/src/h/gvformatter_engine_t.java --- plantuml-8024/src/h/gvformatter_engine_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvformatter_engine_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.gvformatter_engine_s; + +//2 3vj53t416qxwn8efaetlwcvoc + +public interface gvformatter_engine_t extends gvformatter_engine_s { + public static List DEFINITION = Arrays.asList( +"typedef struct gvformatter_engine_s gvformatter_engine_t"); +} + +// typedef struct gvformatter_engine_s gvformatter_engine_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/GVG_s.java plantuml-8039/src/h/GVG_s.java --- plantuml-8024/src/h/GVG_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/GVG_s.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 cvpkcmk8fwmnuwmcjl85zzkxc + +public interface GVG_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct GVG_s", +"{", +"GVC_t *gvc", +"GVG_t *next", +"char *input_filename", +"int graph_index", +"graph_t *g", +"}"); +} + +// struct GVG_s { +// GVC_t *gvc; /* parent gvc */ +// GVG_t *next; /* next gvg in list */ +// +// char *input_filename; /* or NULL if stdin */ +// int graph_index; /* index of graph within input_file */ +// graph_t *g; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/GVG_t.java plantuml-8039/src/h/GVG_t.java --- plantuml-8024/src/h/GVG_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/GVG_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 3h2jjekexv13eg90o5lqy1d0j + +public interface GVG_t extends GVG_s { + public static List DEFINITION = Arrays.asList( +"typedef struct GVG_s GVG_t"); +} + +// typedef struct GVG_s GVG_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/GVJ_s.java plantuml-8039/src/h/GVJ_s.java --- plantuml-8024/src/h/GVJ_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/GVJ_s.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,225 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 dg8cqsmppn0zl04sycueci9yw + +public interface GVJ_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct GVJ_s", +"{", +"GVC_t *gvc", +"GVJ_t *next", +"GVJ_t *next_active", +"GVCOMMON_t *common", +"obj_state_t *obj", +"char *input_filename", +"int graph_index", +"const char *layout_type", +"const char *output_filename", +"FILE *output_file", +"char *output_data", +"unsigned int output_data_allocated", +"unsigned int output_data_position", +"const char *output_langname", +"int output_lang", +"gvplugin_active_render_t render", +"gvplugin_active_device_t device", +"gvplugin_active_loadimage_t loadimage", +"gvdevice_callbacks_t *callbacks", +"pointf device_dpi", +"boolean device_sets_dpi", +"void *display", +"int screen", +"void *context", +"boolean external_context", +"char *imagedata", +"int flags", +"int numLayers", +"int layerNum", +"point pagesArraySize", +"point pagesArrayFirst", +"point pagesArrayMajor", +"point pagesArrayMinor", +"point pagesArrayElem", +"int numPages", +"boxf bb", +"pointf pad", +"boxf clip", +"boxf pageBox", +"pointf pageSize", +"pointf focus", +"double zoom", +"int rotation", +"pointf view", +"boxf canvasBox", +"pointf margin", +"pointf dpi", +"unsigned int width", +"unsigned int height", +"box pageBoundingBox", +"box boundingBox", +"pointf scale", +"pointf translation", +"pointf devscale", +"boolean fit_mode, needs_refresh, click, has_grown, has_been_rendered", +"unsigned char button", +"pointf pointer", +"pointf oldpointer", +"void *current_obj", +"void *selected_obj", +"char *active_tooltip", +"char *selected_href", +"gv_argvlist_t selected_obj_type_name", +"gv_argvlist_t selected_obj_attributes", +"void *window", +"gvevent_key_binding_t *keybindings", +"int numkeys", +"void *keycodes", +"}"); +} + +// struct GVJ_s { +// GVC_t *gvc; /* parent gvc */ +// GVJ_t *next; /* linked list of jobs */ +// GVJ_t *next_active; /* linked list of active jobs (e.g. multiple windows) */ +// +// GVCOMMON_t *common; +// +// obj_state_t *obj; /* objects can be nested (at least clusters can) +// so keep object state on a stack */ +// char *input_filename; +// int graph_index; +// +// const char *layout_type; +// +// const char *output_filename; +// FILE *output_file; +// char *output_data; +// unsigned int output_data_allocated; +// unsigned int output_data_position; +// +// const char *output_langname; +// int output_lang; +// +// gvplugin_active_render_t render; +// gvplugin_active_device_t device; +// gvplugin_active_loadimage_t loadimage; +// gvdevice_callbacks_t *callbacks; +// pointf device_dpi; +// boolean device_sets_dpi; +// +// void *display; +// int screen; +// +// void *context; /* gd or cairo surface */ +// boolean external_context; /* context belongs to caller */ +// char *imagedata; /* location of imagedata */ +// +// int flags; /* emit_graph flags */ +// +// int numLayers; /* number of layers */ +// int layerNum; /* current layer - 1 based*/ +// +// point pagesArraySize; /* 2D size of page array */ +// point pagesArrayFirst;/* 2D starting corner in */ +// point pagesArrayMajor;/* 2D major increment */ +// point pagesArrayMinor;/* 2D minor increment */ +// point pagesArrayElem; /* 2D coord of current page - 0,0 based */ +// int numPages; /* number of pages */ +// +// boxf bb; /* graph bb with padding - graph units */ +// pointf pad; /* padding around bb - graph units */ +// boxf clip; /* clip region in graph units */ +// boxf pageBox; /* current page in graph units */ +// pointf pageSize; /* page size in graph units */ +// pointf focus; /* viewport focus - graph units */ +// +// double zoom; /* viewport zoom factor (points per graph unit) */ +// int rotation; /* viewport rotation (degrees) 0=portrait, 90=landscape */ +// +// pointf view; /* viewport size - points */ +// boxf canvasBox; /* viewport area - points */ +// pointf margin; /* job-specific margin - points */ +// +// pointf dpi; /* device resolution device-units-per-inch */ +// +// unsigned int width; /* device width - device units */ +// unsigned int height; /* device height - device units */ +// box pageBoundingBox;/* rotated boundingBox - device units */ +// box boundingBox; /* cumulative boundingBox over all pages - device units */ +// +// pointf scale; /* composite device to graph units (zoom and dpi) */ +// pointf translation; /* composite translation */ +// pointf devscale; /* composite device to points: dpi, y_goes_down */ +// +// boolean fit_mode, +// needs_refresh, +// click, +// has_grown, +// has_been_rendered; +// +// unsigned char button; /* active button */ +// pointf pointer; /* pointer position in device units */ +// pointf oldpointer; /* old pointer position in device units */ +// +// void *current_obj; /* graph object that pointer is in currently */ +// +// void *selected_obj; /* graph object that has been selected */ +// /* (e.g. button 1 clicked on current obj) */ +// char *active_tooltip; /* tooltip of active object - or NULL */ +// char *selected_href; /* href of selected object - or NULL */ +// gv_argvlist_t selected_obj_type_name; /* (e.g. "edge" "node3" "e" "->" "node5" "") */ +// gv_argvlist_t selected_obj_attributes; /* attribute triplets: name, value, type */ +// /* e.g. "color", "red", GVATTR_COLOR, +// "style", "filled", GVATTR_BOOL, */ +// +// void *window; /* display-specific data for gvrender plugin */ +// +// /* keybindings for keyboard events */ +// gvevent_key_binding_t *keybindings; +// int numkeys; +// void *keycodes; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/GVJ_t.java plantuml-8039/src/h/GVJ_t.java --- plantuml-8024/src/h/GVJ_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/GVJ_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 1emyokhi9lvf2dq2tz1mt5lq6 + +public interface GVJ_t extends GVJ_s { + public static List DEFINITION = Arrays.asList( +"typedef struct GVJ_s GVJ_t"); +} + +// typedef struct GVJ_s GVJ_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvlayout_engine_s.java plantuml-8039/src/h/gvlayout_engine_s.java --- plantuml-8024/src/h/gvlayout_engine_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvlayout_engine_s.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,61 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 aufqatak555umhtr2zwzdxcam + +public interface gvlayout_engine_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct gvlayout_engine_s", +"{", +"void (*layout) (graph_t * g)", +"void (*cleanup) (graph_t * g)", +"}"); +} + +// struct gvlayout_engine_s { +// void (*layout) (graph_t * g); +// void (*cleanup) (graph_t * g); +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvlayout_engine_t.java plantuml-8039/src/h/gvlayout_engine_t.java --- plantuml-8024/src/h/gvlayout_engine_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvlayout_engine_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 6neg5ydx7okjqcbqz9nndxl88 + +public interface gvlayout_engine_t extends gvlayout_engine_s { + public static List DEFINITION = Arrays.asList( +"typedef struct gvlayout_engine_s gvlayout_engine_t"); +} + +// typedef struct gvlayout_engine_s gvlayout_engine_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvlayout_features_t.java plantuml-8039/src/h/gvlayout_features_t.java --- plantuml-8024/src/h/gvlayout_features_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvlayout_features_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5ixrh5lzf6cgqakcirp2uozbb + +public interface gvlayout_features_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int flags", +"}", +"gvlayout_features_t"); +} + +// typedef struct { +// int flags; +// } gvlayout_features_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvloadimage_engine_s.java plantuml-8039/src/h/gvloadimage_engine_s.java --- plantuml-8024/src/h/gvloadimage_engine_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvloadimage_engine_s.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,59 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9857ym486lfba1vbejkz0jesv + +public interface gvloadimage_engine_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct gvloadimage_engine_s", +"{", +"void (*loadimage) (GVJ_t *job, usershape_t *us, boxf b, boolean filled)", +"}"); +} + +// struct gvloadimage_engine_s { +// void (*loadimage) (GVJ_t *job, usershape_t *us, boxf b, boolean filled); +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvloadimage_engine_t.java plantuml-8039/src/h/gvloadimage_engine_t.java --- plantuml-8024/src/h/gvloadimage_engine_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvloadimage_engine_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 2ribkbowigqfs0otd9wwditp5 + +public interface gvloadimage_engine_t extends gvloadimage_engine_s { + public static List DEFINITION = Arrays.asList( +"typedef struct gvloadimage_engine_s gvloadimage_engine_t"); +} + +// typedef struct gvloadimage_engine_s gvloadimage_engine_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_active_device_t.java plantuml-8039/src/h/gvplugin_active_device_t.java --- plantuml-8024/src/h/gvplugin_active_device_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_active_device_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 c5u1u6iz4msxf9y4q5w78w22 + +public interface gvplugin_active_device_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct gvplugin_active_device_s", +"{", +"gvdevice_engine_t *engine", +"int id", +"gvdevice_features_t *features", +"const char *type", +"}", +"gvplugin_active_device_t"); +} + +// typedef struct gvplugin_active_device_s { +// gvdevice_engine_t *engine; +// int id; +// gvdevice_features_t *features; +// const char *type; +// } gvplugin_active_device_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_active_layout_t.java plantuml-8039/src/h/gvplugin_active_layout_t.java --- plantuml-8024/src/h/gvplugin_active_layout_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_active_layout_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 13w4wtxe0z0sh446ur163yvhf + +public interface gvplugin_active_layout_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct gvplugin_active_layout_s", +"{", +"gvlayout_engine_t *engine", +"int id", +"gvlayout_features_t *features", +"const char *type", +"}", +"gvplugin_active_layout_t"); +} + +// typedef struct gvplugin_active_layout_s { +// gvlayout_engine_t *engine; +// int id; +// gvlayout_features_t *features; +// const char *type; +// } gvplugin_active_layout_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_active_loadimage_t.java plantuml-8039/src/h/gvplugin_active_loadimage_t.java --- plantuml-8024/src/h/gvplugin_active_loadimage_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_active_loadimage_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 633mt1gwzq159n5j6n0lzgzam + +public interface gvplugin_active_loadimage_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct gvplugin_active_loadimage_t", +"{", +"gvloadimage_engine_t *engine", +"int id", +"const char *type", +"}", +"gvplugin_active_loadimage_t"); +} + +// typedef struct gvplugin_active_loadimage_t { +// gvloadimage_engine_t *engine; +// int id; +// const char *type; +// } gvplugin_active_loadimage_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_active_render_t.java plantuml-8039/src/h/gvplugin_active_render_t.java --- plantuml-8024/src/h/gvplugin_active_render_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_active_render_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4af9oysh9wk1u0m5wjc60jcr3 + +public interface gvplugin_active_render_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct gvplugin_active_render_s", +"{", +"gvrender_engine_t *engine", +"int id", +"gvrender_features_t *features", +"const char *type", +"}", +"gvplugin_active_render_t"); +} + +// typedef struct gvplugin_active_render_s { +// gvrender_engine_t *engine; +// int id; +// gvrender_features_t *features; +// const char *type; +// } gvplugin_active_render_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_active_textlayout_t.java plantuml-8039/src/h/gvplugin_active_textlayout_t.java --- plantuml-8024/src/h/gvplugin_active_textlayout_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_active_textlayout_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4ht0rt62yul08h6v5kje6jk1x + +public interface gvplugin_active_textlayout_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct gvplugin_active_textlayout_s", +"{", +"gvtextlayout_engine_t *engine", +"int id", +"char *type", +"}", +"gvplugin_active_textlayout_t"); +} + +// typedef struct gvplugin_active_textlayout_s { +// gvtextlayout_engine_t *engine; +// int id; +// char *type; +// } gvplugin_active_textlayout_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_api_t.java plantuml-8039/src/h/gvplugin_api_t.java --- plantuml-8024/src/h/gvplugin_api_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_api_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 epw5dncvmltf7yue85r8t00a7 + +public interface gvplugin_api_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"api_t api", +"gvplugin_installed_t *types", +"}", +"gvplugin_api_t"); +} + +// typedef struct { +// api_t api; +// gvplugin_installed_t *types; +// } gvplugin_api_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_available_s.java plantuml-8039/src/h/gvplugin_available_s.java --- plantuml-8024/src/h/gvplugin_available_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_available_s.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,69 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4mff7kl30vs5cmzxe47j17hex + +public interface gvplugin_available_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct gvplugin_available_s", +"{", +"gvplugin_available_t *next", +"const char *typestr", +"int quality", +"gvplugin_package_t *package", +"gvplugin_installed_t *typeptr", +"}"); +} + +// struct gvplugin_available_s { +// gvplugin_available_t *next; /* next plugin in linked list, or NULL */ +// const char *typestr; /* type string, e.g. "png" or "ps" */ +// int quality; /* Programmer assigned quality ranking within type (+ve or -ve int). +// First implementation of type should be given "0" quality */ +// gvplugin_package_t *package; /* details of library containing plugin */ +// gvplugin_installed_t *typeptr; /* pointer to jumptable for plugin, +// or NULL if not yet loaded */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_available_t.java plantuml-8039/src/h/gvplugin_available_t.java --- plantuml-8024/src/h/gvplugin_available_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_available_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 6ct699hskqmknua7dg0fdwvmz + +public interface gvplugin_available_t extends gvplugin_available_s { + public static List DEFINITION = Arrays.asList( +"typedef struct gvplugin_available_s gvplugin_available_t"); +} + +// typedef struct gvplugin_available_s gvplugin_available_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_installed_t.java plantuml-8039/src/h/gvplugin_installed_t.java --- plantuml-8024/src/h/gvplugin_installed_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_installed_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,76 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 dcmpl8ruksxab5p8161qcvxcw + +public interface gvplugin_installed_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int id", +"const char *type", +"int quality", +"void *engine", +"void *features", +"}", +"gvplugin_installed_t"); +} + +// typedef struct { +// int id; /* an id that is only unique within a package +// of plugins of the same api. +// A renderer-type such as "png" in the cairo package +// has an id that is different from the "ps" type +// in the same package */ +// const char *type; /* a string name, such as "png" or "ps" that +// distinguishes different types withing the same +// (renderer in this case) */ +// int quality; /* an arbitrary integer used for ordering plugins of +// the same type from different packages */ +// void *engine; /* pointer to the jump table for the plugin */ +// void *features; /* pointer to the feature description +// void* because type varies by api */ +// } gvplugin_installed_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_library_t.java plantuml-8039/src/h/gvplugin_library_t.java --- plantuml-8024/src/h/gvplugin_library_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_library_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 elhfawlitxj3187hf4lyyku80 + +public interface gvplugin_library_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"char *packagename", +"gvplugin_api_t *apis", +"}", +"gvplugin_library_t"); +} + +// typedef struct { +// char *packagename; /* used when this plugin is builtin and has +// no pathname */ +// gvplugin_api_t *apis; +// } gvplugin_library_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_package_s.java plantuml-8039/src/h/gvplugin_package_s.java --- plantuml-8024/src/h/gvplugin_package_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_package_s.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4x42jt53r4w0hua6kytv25z05 + +public interface gvplugin_package_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct gvplugin_package_s", +"{", +"gvplugin_package_t *next", +"char *path", +"char *name", +"}"); +} + +// struct gvplugin_package_s { +// gvplugin_package_t *next; +// char *path; +// char *name; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvplugin_package_t.java plantuml-8039/src/h/gvplugin_package_t.java --- plantuml-8024/src/h/gvplugin_package_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvplugin_package_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 4mfo0bv62esvw8qme2tplg7k + +public interface gvplugin_package_t extends gvplugin_package_s { + public static List DEFINITION = Arrays.asList( +"typedef struct gvplugin_package_s gvplugin_package_t"); +} + +// typedef struct gvplugin_package_s gvplugin_package_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvrender_engine_s.java plantuml-8039/src/h/gvrender_engine_s.java --- plantuml-8024/src/h/gvrender_engine_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvrender_engine_s.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,120 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 c9lcfmvndhmluehnjakiea1ei + +public interface gvrender_engine_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct gvrender_engine_s", +"{", +"void (*begin_job) (GVJ_t * job)", +"void (*end_job) (GVJ_t * job)", +"void (*begin_graph) (GVJ_t * job)", +"void (*end_graph) (GVJ_t * job)", +"void (*begin_layer) (GVJ_t * job, char *layername, int layerNum, int numLayers)", +"void (*end_layer) (GVJ_t * job)", +"void (*begin_page) (GVJ_t * job)", +"void (*end_page) (GVJ_t * job)", +"void (*begin_cluster) (GVJ_t * job)", +"void (*end_cluster) (GVJ_t * job)", +"void (*begin_nodes) (GVJ_t * job)", +"void (*end_nodes) (GVJ_t * job)", +"void (*begin_edges) (GVJ_t * job)", +"void (*end_edges) (GVJ_t * job)", +"void (*begin_node) (GVJ_t * job)", +"void (*end_node) (GVJ_t * job)", +"void (*begin_edge) (GVJ_t * job)", +"void (*end_edge) (GVJ_t * job)", +"void (*begin_anchor) (GVJ_t * job, char *href, char *tooltip, char *target, char *id)", +"void (*end_anchor) (GVJ_t * job)", +"void (*begin_label) (GVJ_t * job, label_type type)", +"void (*end_label) (GVJ_t * job)", +"void (*textspan) (GVJ_t * job, pointf p, textspan_t * span)", +"void (*resolve_color) (GVJ_t * job, gvcolor_t * color)", +"void (*ellipse) (GVJ_t * job, pointf * A, int filled)", +"void (*polygon) (GVJ_t * job, pointf * A, int n, int filled)", +"void (*beziercurve) (GVJ_t * job, pointf * A, int n, int arrow_at_start, int arrow_at_end, int)", +"void (*polyline) (GVJ_t * job, pointf * A, int n)", +"void (*comment) (GVJ_t * job, char *comment)", +"void (*library_shape) (GVJ_t * job, char *name, pointf * A, int n, int filled)", +"}"); +} + +// struct gvrender_engine_s { +// void (*begin_job) (GVJ_t * job); +// void (*end_job) (GVJ_t * job); +// void (*begin_graph) (GVJ_t * job); +// void (*end_graph) (GVJ_t * job); +// void (*begin_layer) (GVJ_t * job, char *layername, +// int layerNum, int numLayers); +// void (*end_layer) (GVJ_t * job); +// void (*begin_page) (GVJ_t * job); +// void (*end_page) (GVJ_t * job); +// void (*begin_cluster) (GVJ_t * job); +// void (*end_cluster) (GVJ_t * job); +// void (*begin_nodes) (GVJ_t * job); +// void (*end_nodes) (GVJ_t * job); +// void (*begin_edges) (GVJ_t * job); +// void (*end_edges) (GVJ_t * job); +// void (*begin_node) (GVJ_t * job); +// void (*end_node) (GVJ_t * job); +// void (*begin_edge) (GVJ_t * job); +// void (*end_edge) (GVJ_t * job); +// void (*begin_anchor) (GVJ_t * job, +// char *href, char *tooltip, char *target, char *id); +// void (*end_anchor) (GVJ_t * job); +// void (*begin_label) (GVJ_t * job, label_type type); +// void (*end_label) (GVJ_t * job); +// void (*textspan) (GVJ_t * job, pointf p, textspan_t * span); +// void (*resolve_color) (GVJ_t * job, gvcolor_t * color); +// void (*ellipse) (GVJ_t * job, pointf * A, int filled); +// void (*polygon) (GVJ_t * job, pointf * A, int n, int filled); +// void (*beziercurve) (GVJ_t * job, pointf * A, int n, +// int arrow_at_start, int arrow_at_end, int); +// void (*polyline) (GVJ_t * job, pointf * A, int n); +// void (*comment) (GVJ_t * job, char *comment); +// void (*library_shape) (GVJ_t * job, char *name, pointf * A, int n, int filled); +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvrender_engine_t.java plantuml-8039/src/h/gvrender_engine_t.java --- plantuml-8024/src/h/gvrender_engine_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvrender_engine_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 5bxr6kqlo53bavjt2xfhgd4p8 + +public interface gvrender_engine_t extends gvrender_engine_s { + public static List DEFINITION = Arrays.asList( +"typedef struct gvrender_engine_s gvrender_engine_t"); +} + +// typedef struct gvrender_engine_s gvrender_engine_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvrender_features_t.java plantuml-8039/src/h/gvrender_features_t.java --- plantuml-8024/src/h/gvrender_features_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvrender_features_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 b5pxs48fv8n5ovo8dntg7yyiw + +public interface gvrender_features_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int flags", +"double default_pad", +"char **knowncolors", +"int sz_knowncolors", +"color_type_t color_type", +"}", +"gvrender_features_t"); +} + +// typedef struct { +// int flags; +// double default_pad; /* graph units */ +// char **knowncolors; +// int sz_knowncolors; +// color_type_t color_type; +// } gvrender_features_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvtextlayout_engine_s.java plantuml-8039/src/h/gvtextlayout_engine_s.java --- plantuml-8024/src/h/gvtextlayout_engine_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvtextlayout_engine_s.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,59 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 btpkmksp5qljd7s3c2whxtupr + +public interface gvtextlayout_engine_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct gvtextlayout_engine_s", +"{", +"boolean (*textlayout) (textspan_t *span, char** fontpath)", +"}"); +} + +// struct gvtextlayout_engine_s { +// boolean (*textlayout) (textspan_t *span, char** fontpath); +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/gvtextlayout_engine_t.java plantuml-8039/src/h/gvtextlayout_engine_t.java --- plantuml-8024/src/h/gvtextlayout_engine_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/gvtextlayout_engine_t.java 2016-04-22 16:26:13.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 6ftez1uvnskvljccs3z0sfspf + +public interface gvtextlayout_engine_t extends gvtextlayout_engine_s { + public static List DEFINITION = Arrays.asList( +"typedef struct gvtextlayout_engine_s gvtextlayout_engine_t"); +} + +// typedef struct gvtextlayout_engine_s gvtextlayout_engine_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/HDict_t.java plantuml-8039/src/h/HDict_t.java --- plantuml-8024/src/h/HDict_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/HDict_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 d6n85f1kdf00c97r9x4uf3hdy + +public interface HDict_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct obyh", +"{", +"Dtlink_t link", +"int key", +"Leaf_t d", +"}", +"HDict_t"); +} + +// typedef struct obyh { +// Dtlink_t link; +// int key; +// Leaf_t d; +// } HDict_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/hsvrgbacolor_t.java plantuml-8039/src/h/hsvrgbacolor_t.java --- plantuml-8024/src/h/hsvrgbacolor_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/hsvrgbacolor_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 a81kzkq5n7k0bft1xpxzn8sof + +public interface hsvrgbacolor_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct hsvrgbacolor_t", +"{", +"char *name", +"unsigned char h, s, v", +"unsigned char r, g, b, a", +"}", +"hsvrgbacolor_t"); +} + +// typedef struct hsvrgbacolor_t { +// char *name; +// unsigned char h, s, v; +// unsigned char r, g, b, a; +// } hsvrgbacolor_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/htextspan_t.java plantuml-8039/src/h/htextspan_t.java --- plantuml-8024/src/h/htextspan_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/htextspan_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 73dlf2ef4p53l8j1jla74ryhq + +public interface htextspan_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"textspan_t *items", +"short nitems", +"char just", +"double size", +"double lfsize", +"}", +"htextspan_t"); +} + +// typedef struct { +// textspan_t *items; +// short nitems; +// char just; +// double size; /* width of span */ +// double lfsize; /* offset from previous baseline to current one */ +// } htextspan_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/htmlcell_t.java plantuml-8039/src/h/htmlcell_t.java --- plantuml-8024/src/h/htmlcell_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/htmlcell_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 c3fdy8b5qt90u4c5ss75lcguu + +public interface htmlcell_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct htmlcell_t htmlcell_t"); +} + +// typedef struct htmlcell_t htmlcell_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/htmldata_t.java plantuml-8039/src/h/htmldata_t.java --- plantuml-8024/src/h/htmldata_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/htmldata_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,92 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3ndpf3koymkortrl6lwwvih5k + +public interface htmldata_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"char *href", +"char *port", +"char *target", +"char *title", +"char *id", +"char *bgcolor", +"char *pencolor", +"int gradientangle", +"signed char space", +"unsigned char border", +"unsigned char pad", +"unsigned char sides", +"unsigned short flags", +"unsigned short width", +"unsigned short height", +"unsigned short style", +"boxf box", +"}", +"htmldata_t"); +} + +// typedef struct { +// char *href; /* pointer to an external resource */ +// char *port; +// char *target; +// char *title; +// char *id; +// char *bgcolor; +// char *pencolor; +// int gradientangle; +// signed char space; +// unsigned char border; +// unsigned char pad; +// unsigned char sides; /* set of sides exposed to field */ +// unsigned short flags; +// unsigned short width; +// unsigned short height; +// unsigned short style; +// boxf box; /* its geometric placement in points */ +// } htmldata_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/htmlenv_t.java plantuml-8039/src/h/htmlenv_t.java --- plantuml-8024/src/h/htmlenv_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/htmlenv_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 c1g03t0hv8uptocwfcdelqwqa + +public interface htmlenv_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"pointf pos", +"textfont_t finfo", +"void *obj", +"graph_t *g", +"char *imgscale", +"char *objid", +"boolean objid_set", +"}", +"htmlenv_t"); +} + +// typedef struct { +// pointf pos; +// textfont_t finfo; +// void *obj; +// graph_t *g; +// char *imgscale; +// char *objid; +// boolean objid_set; +// } htmlenv_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/htmlimg_t.java plantuml-8039/src/h/htmlimg_t.java --- plantuml-8024/src/h/htmlimg_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/htmlimg_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2qx8kiwbmyh61vxkplyhzp0i7 + +public interface htmlimg_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"boxf box", +"char *src", +"char *scale", +"}", +"htmlimg_t"); +} + +// typedef struct { +// boxf box; +// char *src; +// char *scale; +// } htmlimg_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/htmllabel_t.java plantuml-8039/src/h/htmllabel_t.java --- plantuml-8024/src/h/htmllabel_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/htmllabel_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 gzde2tumx5vupv2vjpzbv299 + +public interface htmllabel_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct htmllabel_t htmllabel_t"); +} + +// typedef struct htmllabel_t htmllabel_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/htmlmap_data_t.java plantuml-8039/src/h/htmlmap_data_t.java --- plantuml-8024/src/h/htmlmap_data_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/htmlmap_data_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 d20oliwp4ordsbln3u0w8ovgu + +public interface htmlmap_data_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"char *url", +"char *tooltip", +"char *target", +"char *id", +"boolean explicit_tooltip", +"point LL", +"point UR", +"}", +"htmlmap_data_t"); +} + +// typedef struct { +// char *url; +// char *tooltip; +// char *target; +// char *id; +// boolean explicit_tooltip; +// point LL; +// point UR; +// } htmlmap_data_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/htmltbl_t.java plantuml-8039/src/h/htmltbl_t.java --- plantuml-8024/src/h/htmltbl_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/htmltbl_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4l8qax3cpj0f9m5mv6n7ijuw3 + +public interface htmltbl_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct htmltbl_t htmltbl_t"); +} + +// typedef struct htmltbl_t htmltbl_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/htmltxt_t.java plantuml-8039/src/h/htmltxt_t.java --- plantuml-8024/src/h/htmltxt_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/htmltxt_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9d3jp17twvv6zmypz9ry6ulqm + +public interface htmltxt_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"htextspan_t *spans", +"short nspans", +"char simple", +"boxf box", +"}", +"htmltxt_t"); +} + +// typedef struct { +// htextspan_t *spans; +// short nspans; +// char simple; +// boxf box; +// } htmltxt_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/imagescale_t.java plantuml-8039/src/h/imagescale_t.java --- plantuml-8024/src/h/imagescale_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/imagescale_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 89sw2fm15jrbgce4w1skvyxcw + +public interface imagescale_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"IMAGESCALE_FALSE,", +"IMAGESCALE_TRUE,", +"IMAGESCALE_WIDTH,", +"IMAGESCALE_HEIGHT,", +"IMAGESCALE_BOTH", +"}", +"imagescale_t"); +} + +// typedef enum { +// IMAGESCALE_FALSE, /* no image scaling */ +// IMAGESCALE_TRUE, /* scale image to fit but keep aspect ratio */ +// IMAGESCALE_WIDTH, /* scale image width to fit, keep height fixed */ +// IMAGESCALE_HEIGHT, /* scale image height to fit, keep width fixed */ +// IMAGESCALE_BOTH /* scale image to fit without regard for aspect ratio */ +// } imagescale_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/imagetype_t.java plantuml-8039/src/h/imagetype_t.java --- plantuml-8024/src/h/imagetype_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/imagetype_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 323qopt4v37hk4tf587zjqima + +public interface imagetype_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"FT_NULL, FT_BMP, FT_GIF, FT_PNG, FT_JPEG, FT_PDF, FT_PS, FT_EPS, FT_SVG, FT_XML, FT_RIFF, FT_WEBP, FT_ICO, FT_TIFF", +"}", +"imagetype_t"); +} + +// typedef enum { FT_NULL, +// FT_BMP, FT_GIF, FT_PNG, FT_JPEG, +// FT_PDF, FT_PS, FT_EPS, FT_SVG, FT_XML, +// FT_RIFF, FT_WEBP, FT_ICO, FT_TIFF +// } imagetype_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/IMapEntry_t.java plantuml-8039/src/h/IMapEntry_t.java --- plantuml-8024/src/h/IMapEntry_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/IMapEntry_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 et72dr7wfb74xjns0mtbfof0b + +public interface IMapEntry_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct IMapEntry_s", +"{", +"Dtlink_t namedict_link", +"Dtlink_t iddict_link", +"unsigned long id", +"char *str", +"}", +"IMapEntry_t"); +} + +// typedef struct IMapEntry_s { +// Dtlink_t namedict_link; +// Dtlink_t iddict_link; +// unsigned long id; +// char *str; +// } IMapEntry_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/inside_t.java plantuml-8039/src/h/inside_t.java --- plantuml-8024/src/h/inside_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/inside_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,78 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 1ntxl46xf9k1rah2wosqhcdno + +public interface inside_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef union inside_t", +"{", +"struct", +"{", +"pointf* p", +"double* r", +"}", +"a", +"struct", +"{", +"node_t* n", +"boxf* bp", +"}", +"s", +"}", +"inside_t"); +} + +// typedef union inside_t { +// struct { +// pointf* p; +// double* r; +// } a; +// struct { +// node_t* n; +// boxf* bp; +// } s; +// } inside_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/intitem.java plantuml-8039/src/h/intitem.java --- plantuml-8024/src/h/intitem.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/intitem.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7b66x6dd9gr7x0hzm479cbpjg + +public interface intitem extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int id", +"Dtlink_t link", +"}", +"intitem"); +} + +// typedef struct { +// int id; +// Dtlink_t link; +// } intitem; \ No newline at end of file diff -Nru plantuml-8024/src/h/item.java plantuml-8039/src/h/item.java --- plantuml-8024/src/h/item.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/item.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6pciw9nctk1zwl2yxkga3xn64 + +public interface item extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"void *p[2]", +"node_t *t", +"node_t *h", +"}", +"item"); +} + +// typedef struct { +// Dtlink_t link; /* cdt data */ +// void *p[2]; /* key */ +// node_t *t; +// node_t *h; +// } item; \ No newline at end of file diff -Nru plantuml-8024/src/h/knowntype_t.java plantuml-8039/src/h/knowntype_t.java --- plantuml-8024/src/h/knowntype_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/knowntype_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3x7rb5nh45r9eb6pmyo1jg63w + +public interface knowntype_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"char *template", +"int size", +"int type", +"char *stringtype", +"}", +"knowntype_t"); +} + +// typedef struct { +// char *template; +// int size; +// int type; +// char *stringtype; +// } knowntype_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/label_params_t.java plantuml-8039/src/h/label_params_t.java --- plantuml-8024/src/h/label_params_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/label_params_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 hnxz1757w4pts48w055n1a2r + +public interface label_params_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"boxf bb", +"unsigned char force", +"}", +"label_params_t"); +} + +// typedef struct { +// boxf bb; /* Bounding box of all objects */ +// unsigned char force; /* If true, all labels must be placed */ +// } label_params_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/label_type.java plantuml-8039/src/h/label_type.java --- plantuml-8024/src/h/label_type.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/label_type.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 anrmbfb1beni5tl0v3mgwb9j0 + +public interface label_type extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"LABEL_PLAIN, LABEL_HTML", +"}", +"label_type"); +} + +// typedef enum { LABEL_PLAIN, LABEL_HTML } label_type; \ No newline at end of file diff -Nru plantuml-8024/src/h/layerWidthInfo_t.java plantuml-8039/src/h/layerWidthInfo_t.java --- plantuml-8024/src/h/layerWidthInfo_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/layerWidthInfo_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3a7yg8rwvl5zylbzoufm1r2ak + +public interface layerWidthInfo_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct layerWidthInfo_t", +"{", +"int layerNumber", +"nodeGroup_t **nodeGroupsInLayer", +"int *removed", +"int nNodeGroupsInLayer", +"int nDummyNodes", +"double width", +"double height", +"}", +"layerWidthInfo_t"); +} + +// typedef struct layerWidthInfo_t { +// int layerNumber; +// nodeGroup_t **nodeGroupsInLayer; +// int *removed; /* is the node group removed? */ +// int nNodeGroupsInLayer; +// int nDummyNodes; +// double width; +// double height; +// } layerWidthInfo_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/layout_info.java plantuml-8039/src/h/layout_info.java --- plantuml-8024/src/h/layout_info.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/layout_info.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,70 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5mkovfn67mfcvlnamhjqfmd15 + +public interface layout_info extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"graph_t* rootg", +"attrsym_t *G_coord", +"attrsym_t *G_width", +"attrsym_t *G_height", +"int gid", +"pack_info pack", +"}", +"layout_info"); +} + +// typedef struct { +// graph_t* rootg; /* logical root; graph passed in to fdp_layout */ +// attrsym_t *G_coord; +// attrsym_t *G_width; +// attrsym_t *G_height; +// int gid; +// pack_info pack; +// } layout_info; \ No newline at end of file diff -Nru plantuml-8024/src/h/layout_t.java plantuml-8039/src/h/layout_t.java --- plantuml-8024/src/h/layout_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/layout_t.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,84 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6njlcutz3q6rco547vwgggk5l + +public interface layout_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct layout_t", +"{", +"double quantum", +"double scale", +"double ratio", +"double dpi", +"pointf margin", +"pointf page", +"pointf size", +"boolean filled", +"boolean landscape", +"boolean centered", +"ratio_t ratio_kind", +"void* xdots", +"char* id", +"}", +"layout_t"); +} + +// typedef struct layout_t { +// double quantum; +// double scale; +// double ratio; /* set only if ratio_kind == R_VALUE */ +// double dpi; +// pointf margin; +// pointf page; +// pointf size; +// boolean filled; +// boolean landscape; +// boolean centered; +// ratio_t ratio_kind; +// void* xdots; +// char* id; +// } layout_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/layout_type.java plantuml-8039/src/h/layout_type.java --- plantuml-8024/src/h/layout_type.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/layout_type.java 2016-04-22 16:26:14.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6g73ng9kl31nlub97di73mpi3 + +public interface layout_type extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"LAYOUT_DOT,", +"}", +"layout_type"); +} + +// typedef enum { LAYOUT_DOT, } layout_type; \ No newline at end of file diff -Nru plantuml-8024/src/h/LeafList_t.java plantuml-8039/src/h/LeafList_t.java --- plantuml-8024/src/h/LeafList_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/LeafList_t.java 2016-04-22 16:26:15.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5wb626r2549k6hvj4smr38atg + +public interface LeafList_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct LeafList", +"{", +"struct LeafList *next", +"Leaf_t *leaf", +"}", +"LeafList_t"); +} + +// typedef struct LeafList { +// struct LeafList *next; +// Leaf_t *leaf; +// } LeafList_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Leaf_t.java plantuml-8039/src/h/Leaf_t.java --- plantuml-8024/src/h/Leaf_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Leaf_t.java 2016-04-22 16:26:15.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 222l43uzb7c0te92wbi9jdkk4 + +public interface Leaf_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Leaf", +"{", +"Rect_t rect", +"void *data", +"}", +"Leaf_t"); +} + +// typedef struct Leaf { +// Rect_t rect; +// void *data; +// } Leaf_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/lexstate_t.java plantuml-8039/src/h/lexstate_t.java --- plantuml-8024/src/h/lexstate_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/lexstate_t.java 2016-04-22 16:26:15.000000000 +0000 @@ -0,0 +1,85 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8p2u7sziyialmpuyrxsg8ptw6 + +public interface lexstate_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"char* ptr", +"int tok", +"agxbuf* xb", +"agxbuf lb", +"char warn", +"char error", +"char inCell", +"char mode", +"char *currtok", +"char *prevtok", +"int currtoklen", +"int prevtoklen", +"}", +"lexstate_t"); +} + +// typedef struct { +// +// +// +// char* ptr; /* input source */ +// int tok; /* token type */ +// agxbuf* xb; /* buffer to gather T_string data */ +// agxbuf lb; /* buffer for translating lexical data */ +// char warn; /* set if warning given */ +// char error; /* set if error given */ +// char inCell; /* set if in TD to allow T_string */ +// char mode; /* for handling artificial .. */ +// char *currtok; /* for error reporting */ +// char *prevtok; /* for error reporting */ +// int currtoklen; +// int prevtoklen; +// } lexstate_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/ListNode_t.java plantuml-8039/src/h/ListNode_t.java --- plantuml-8024/src/h/ListNode_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/ListNode_t.java 2016-04-22 16:26:15.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2e7wm1x0xyl1l19f34nw52e1c + +public interface ListNode_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct ListNode", +"{", +"struct ListNode *next", +"struct Node *node", +"}", +"ListNode_t"); +} + +// typedef struct ListNode { +// struct ListNode *next; +// struct Node *node; +// } ListNode_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/list_t.java plantuml-8039/src/h/list_t.java --- plantuml-8024/src/h/list_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/list_t.java 2016-04-22 16:26:16.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * PlantUML is free software; you can redistribute it and/or modify it + * under the terms of the Eclipse Public License. + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 67szzzwvgx8wjittlg7atd5zm + +public interface list_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct list_s", +"{", +"item *first", +"item *last", +"}", +"list_t"); +} + +// typedef struct list_s { /* maintain head and tail ptrs for fast append */ +// item *first; +// item *last; +// } list_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/ltriangle_t.java plantuml-8039/src/h/ltriangle_t.java --- plantuml-8024/src/h/ltriangle_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/ltriangle_t.java 2016-04-22 16:26:16.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3566t0d7zo0xk2bqt6gkpxwbo + +public interface ltriangle_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct dpd_triangle", +"{", +"Ppoint_t *v[3]", +"}", +"ltriangle_t"); +} + +// typedef struct dpd_triangle { +// Ppoint_t *v[3]; +// } ltriangle_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/lt_symlist_t.java plantuml-8039/src/h/lt_symlist_t.java --- plantuml-8024/src/h/lt_symlist_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/lt_symlist_t.java 2016-04-22 16:26:16.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 309opqtj1406u6ign73nfq4m4 + +public interface lt_symlist_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"const char *name", +"void* address", +"}", +"lt_symlist_t"); +} + +// typedef struct { +// const char *name; +// void* address; +// } lt_symlist_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/lvertex_2_t.java plantuml-8039/src/h/lvertex_2_t.java --- plantuml-8024/src/h/lvertex_2_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/lvertex_2_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 89tzmfb64xv1whqvoh9qplgib + +public interface lvertex_2_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct lvertex_2_t", +"{", +"double x, y", +"}", +"lvertex_2_t"); +} + +// typedef struct lvertex_2_t { +// double x, y; +// } lvertex_2_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/map_shape_t.java plantuml-8039/src/h/map_shape_t.java --- plantuml-8024/src/h/map_shape_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/map_shape_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 demuj81ppuddcmcukr5ibr2ow + +public interface map_shape_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"MAP_RECTANGLE, MAP_CIRCLE, MAP_POLYGON,", +"}", +"map_shape_t"); +} + +// typedef enum {MAP_RECTANGLE, MAP_CIRCLE, MAP_POLYGON, } map_shape_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/maze.java plantuml-8039/src/h/maze.java --- plantuml-8024/src/h/maze.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/maze.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,70 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 etmr8p3tgfovcabhg7h432rr7 + +public interface maze extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int ncells, ngcells", +"cell* cells", +"cell* gcells", +"sgraph* sg", +"Dt_t* hchans", +"Dt_t* vchans", +"}", +"maze"); +} + +// typedef struct { +// int ncells, ngcells; +// cell* cells; /* cells not corresponding to graph nodes */ +// cell* gcells; /* cells corresponding to graph nodes */ +// sgraph* sg; +// Dt_t* hchans; +// Dt_t* vchans; +// } maze; \ No newline at end of file diff -Nru plantuml-8024/src/h/monchain_t.java plantuml-8039/src/h/monchain_t.java --- plantuml-8024/src/h/monchain_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/monchain_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 54inajo7osrhht39i3f0jv3yq + +public interface monchain_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int vnum", +"int next", +"int prev", +"int marked", +"}", +"monchain_t"); +} + +// typedef struct { +// int vnum; +// int next; /* Circularly linked list */ +// int prev; /* describing the monotone */ +// int marked; /* polygon */ +// } monchain_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/MPairDisc.java plantuml-8039/src/h/MPairDisc.java --- plantuml-8024/src/h/MPairDisc.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/MPairDisc.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4elpghprbfhy6q6283wnrh4wv + +public interface MPairDisc extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtdisc_t disc", +"mpair *flist", +"}", +"MPairDisc"); +} + +// typedef struct { +// Dtdisc_t disc; +// mpair *flist; +// } MPairDisc; \ No newline at end of file diff -Nru plantuml-8024/src/h/mpair.java plantuml-8039/src/h/mpair.java --- plantuml-8024/src/h/mpair.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/mpair.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7ew589ru405xxz59tz7c44626 + +public interface mpair extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"point id", +"int v", +"}", +"mpair"); +} + +// typedef struct { +// Dtlink_t link; +// point id; +// int v; +// } mpair; \ No newline at end of file diff -Nru plantuml-8024/src/h/mytime_t.java plantuml-8039/src/h/mytime_t.java --- plantuml-8024/src/h/mytime_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/mytime_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.tms; + +//2 eevewge4moog8cb48ratfyry + +public interface mytime_t extends tms { + public static List DEFINITION = Arrays.asList( +"typedef struct tms mytime_t"); +} + +// typedef struct tms mytime_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/ndata.java plantuml-8039/src/h/ndata.java --- plantuml-8024/src/h/ndata.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/ndata.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 agft9d3rpslafvegya5hlggdj + +public interface ndata extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Agnode_t *dnode", +"}", +"ndata"); +} + +// typedef struct { +// Agnode_t *dnode; +// } ndata; \ No newline at end of file diff -Nru plantuml-8024/src/h/nlist_t.java plantuml-8039/src/h/nlist_t.java --- plantuml-8024/src/h/nlist_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/nlist_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 21yt3x3ukjw41rbx7gc4w7ebj + +public interface nlist_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct nlist_t", +"{", +"node_t **list", +"int size", +"}", +"nlist_t"); +} + +// typedef struct nlist_t { +// node_t **list; +// int size; +// } nlist_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/nodeGroup_t.java plantuml-8039/src/h/nodeGroup_t.java --- plantuml-8024/src/h/nodeGroup_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/nodeGroup_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7osdhdc58wglwftiwr8ad9ocj + +public interface nodeGroup_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct nodeGroup_t", +"{", +"node_t **nodes", +"int nNodes", +"double width, height", +"}", +"nodeGroup_t"); +} + +// typedef struct nodeGroup_t { +// node_t **nodes; +// int nNodes; +// double width, height; +// } nodeGroup_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/nodelistitem.java plantuml-8039/src/h/nodelistitem.java --- plantuml-8024/src/h/nodelistitem.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/nodelistitem.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9tgul5z9izqfjpthq6opcm8cx + +public interface nodelistitem extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct nodelistitem", +"{", +"node_t *curr", +"nodelistitem_t *next", +"nodelistitem_t *prev", +"}"); +} + +// struct nodelistitem { +// node_t *curr; +// nodelistitem_t *next; +// nodelistitem_t *prev; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/nodelistitem_t.java plantuml-8039/src/h/nodelistitem_t.java --- plantuml-8024/src/h/nodelistitem_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/nodelistitem_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 bafagz7d505sofeisu9sq7ssj + +public interface nodelistitem_t extends nodelistitem { + public static List DEFINITION = Arrays.asList( +"typedef struct nodelistitem nodelistitem_t"); +} + +// typedef struct nodelistitem nodelistitem_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/node_list.java plantuml-8039/src/h/node_list.java --- plantuml-8024/src/h/node_list.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/node_list.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 vma2gttg3cuyksw8xvwfgf30 + +public interface node_list extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct _node_list", +"{", +"Agnode_t *node", +"struct _node_list *next", +"}", +"node_list"); +} + +// typedef struct _node_list { +// Agnode_t *node; +// struct _node_list *next; +// } node_list; \ No newline at end of file diff -Nru plantuml-8024/src/h/nodelist_t.java plantuml-8039/src/h/nodelist_t.java --- plantuml-8024/src/h/nodelist_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/nodelist_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 cvnwgrhim9meq1d0au3lunrpz + +public interface nodelist_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"nodelistitem_t *first", +"nodelistitem_t *last", +"int sz", +"}", +"nodelist_t"); +} + +// typedef struct { +// nodelistitem_t *first; +// nodelistitem_t *last; +// int sz; +// } nodelist_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/nodequeue.java plantuml-8039/src/h/nodequeue.java --- plantuml-8024/src/h/nodequeue.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/nodequeue.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 aevkl4zsbstj3pc33rpzrocul + +public interface nodequeue extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct nodequeue", +"{", +"node_t **store, **limit, **head, **tail", +"}", +"nodequeue"); +} + +// typedef struct nodequeue { +// node_t **store, **limit, **head, **tail; +// } nodequeue; \ No newline at end of file diff -Nru plantuml-8024/src/h/nodesizefn_t.java plantuml-8039/src/h/nodesizefn_t.java --- plantuml-8024/src/h/nodesizefn_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/nodesizefn_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 40pzqs0lu99zr390eymloav3n + +public interface nodesizefn_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef void (*nodesizefn_t) (Agnode_t *, boolean)"); +} + +// typedef void (*nodesizefn_t) (Agnode_t *, boolean); \ No newline at end of file diff -Nru plantuml-8024/src/h/node_t.java plantuml-8039/src/h/node_t.java --- plantuml-8024/src/h/node_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/node_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 9eay2w1ulq4b60xf1edcfkkmi + +public interface node_t extends Agnode_s { + public static List DEFINITION = Arrays.asList( +"typedef struct Agnode_s node_t"); +} + +// typedef struct Agnode_s node_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/_Note_t___.java plantuml-8039/src/h/_Note_t___.java --- plantuml-8024/src/h/_Note_t___.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/_Note_t___.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 aqoki3wwzhqcy2mpz21vzdona + +public interface _Note_t___ extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Node", +"{", +"int count", +"int level", +"struct Branch branch[64]", +"}", +"Node_t"); +} + +// typedef struct Node { +// int count; +// int level; /* 0 is leaf, others positive */ +// struct Branch branch[64]; +// } Node_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/nsitem_t.java plantuml-8039/src/h/nsitem_t.java --- plantuml-8024/src/h/nsitem_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/nsitem_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9b6xyzk04h9hcfqxkrertg16r + +public interface nsitem_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"Agnode_t *np", +"}", +"nsitem_t"); +} + +// typedef struct { +// Dtlink_t link; +// Agnode_t *np; +// } nsitem_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/object_t.java plantuml-8039/src/h/object_t.java --- plantuml-8024/src/h/object_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/object_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3ll53gc239t205eaimof9u6ah + +public interface object_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"pointf pos", +"pointf sz", +"xlabel_t *lbl", +"}", +"object_t"); +} + +// typedef struct { +// pointf pos; /* Position of lower-left corner of object */ +// pointf sz; /* Size of object; may be zero for a point */ +// xlabel_t *lbl; /* Label attached to object, or NULL */ +// } object_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/objlist.java plantuml-8039/src/h/objlist.java --- plantuml-8024/src/h/objlist.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/objlist.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 bap0murffzh9iwgtluqxcuzxl + +public interface objlist extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int cnt", +"int sz", +"Ppoly_t **obs", +"}", +"objlist"); +} + +// typedef struct { +// int cnt; +// int sz; +// Ppoly_t **obs; +// } objlist; \ No newline at end of file diff -Nru plantuml-8024/src/h/obj_state_s.java plantuml-8039/src/h/obj_state_s.java --- plantuml-8024/src/h/obj_state_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/obj_state_s.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,183 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7rfvc65ygzocig64xmd4vm8m8 + +public interface obj_state_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct obj_state_s", +"{", +"obj_state_t *parent", +"obj_type type", +"union", +"{", +"graph_t *g", +"graph_t *sg", +"node_t *n", +"edge_t *e", +"}", +"u", +"emit_state_t emit_state", +"gvcolor_t pencolor, fillcolor, stopcolor", +"int gradient_angle", +"float gradient_frac", +"pen_type pen", +"fill_type fill", +"double penwidth", +"char **rawstyle", +"double z, tail_z, head_z", +"char *label", +"char *xlabel", +"char *taillabel", +"char *headlabel", +"char *url", +"char *id", +"char *labelurl", +"char *tailurl", +"char *headurl", +"char *tooltip", +"char *labeltooltip", +"char *tailtooltip", +"char *headtooltip", +"char *target", +"char *labeltarget", +"char *tailtarget", +"char *headtarget", +"int explicit_tooltip:1", +"int explicit_tailtooltip:1", +"int explicit_headtooltip:1", +"int explicit_labeltooltip:1", +"int explicit_tailtarget:1", +"int explicit_headtarget:1", +"int explicit_edgetarget:1", +"int explicit_tailurl:1", +"int explicit_headurl:1", +"map_shape_t url_map_shape", +"int url_map_n", +"pointf *url_map_p", +"int url_bsplinemap_poly_n", +"int *url_bsplinemap_n", +"pointf *url_bsplinemap_p", +"int tailendurl_map_n", +"pointf *tailendurl_map_p", +"int headendurl_map_n", +"pointf *headendurl_map_p", +"}"); +} + +// struct obj_state_s { +// obj_state_t *parent; +// +// obj_type type; +// union { +// graph_t *g; +// graph_t *sg; +// node_t *n; +// edge_t *e; +// } u; +// +// emit_state_t emit_state; +// +// gvcolor_t pencolor, fillcolor, stopcolor; +// int gradient_angle; +// float gradient_frac; +// pen_type pen; +// fill_type fill; +// double penwidth; +// char **rawstyle; +// +// double z, tail_z, head_z; /* z depths for 2.5D renderers such as vrml */ +// +// /* fully substituted text strings */ +// char *label; +// char *xlabel; +// char *taillabel; +// char *headlabel; +// +// char *url; /* if GVRENDER_DOES_MAPS */ +// char *id; +// char *labelurl; +// char *tailurl; +// char *headurl; +// +// char *tooltip; /* if GVRENDER_DOES_TOOLTIPS */ +// char *labeltooltip; +// char *tailtooltip; +// char *headtooltip; +// +// char *target; /* if GVRENDER_DOES_TARGETS */ +// char *labeltarget; +// char *tailtarget; +// char *headtarget; +// +// int explicit_tooltip:1; +// int explicit_tailtooltip:1; +// int explicit_headtooltip:1; +// int explicit_labeltooltip:1; +// int explicit_tailtarget:1; +// int explicit_headtarget:1; +// int explicit_edgetarget:1; +// int explicit_tailurl:1; +// int explicit_headurl:1; +// +// /* primary mapped region - node shape, edge labels */ +// map_shape_t url_map_shape; +// int url_map_n; /* number of points for url map if GVRENDER_DOES_MAPS */ +// pointf *url_map_p; +// +// /* additonal mapped regions for edges */ +// int url_bsplinemap_poly_n; /* number of polygons in url bspline map +// if GVRENDER_DOES_MAPS && GVRENDER_DOES_MAP_BSPLINES */ +// int *url_bsplinemap_n; /* array of url_bsplinemap_poly_n ints +// of number of points in each polygon */ +// pointf *url_bsplinemap_p; /* all the polygon points */ +// +// int tailendurl_map_n; /* tail end intersection with node */ +// pointf *tailendurl_map_p; +// +// int headendurl_map_n; /* head end intersection with node */ +// pointf *headendurl_map_p; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/obj_state_t.java plantuml-8039/src/h/obj_state_t.java --- plantuml-8024/src/h/obj_state_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/obj_state_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 ol13mjn4n7xeyqspov33hno8 + +public interface obj_state_t extends obj_state_s { + public static List DEFINITION = Arrays.asList( +"typedef struct obj_state_s obj_state_t"); +} + +// typedef struct obj_state_s obj_state_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/obj_type.java plantuml-8039/src/h/obj_type.java --- plantuml-8024/src/h/obj_type.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/obj_type.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4karyr6plzrqsfs5wpstvmzdx + +public interface obj_type extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"ROOTGRAPH_OBJTYPE, CLUSTER_OBJTYPE, NODE_OBJTYPE, EDGE_OBJTYPE", +"}", +"obj_type"); +} + +// typedef enum {ROOTGRAPH_OBJTYPE, CLUSTER_OBJTYPE, NODE_OBJTYPE, EDGE_OBJTYPE} obj_type; \ No newline at end of file diff -Nru plantuml-8024/src/h/opts_t.java plantuml-8039/src/h/opts_t.java --- plantuml-8024/src/h/opts_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/opts_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,74 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8jr1ed153znr4z4552bl1bfkj + +public interface opts_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"GVC_t *gvc", +"char *infname", +"char *outfname", +"FILE *inf", +"FILE *outf", +"char *lay", +"char *fmt", +"int force", +"}", +"opts_t"); +} + +// typedef struct { +// GVC_t *gvc; +// char *infname; +// char *outfname; +// FILE *inf; +// FILE *outf; +// char *lay; +// char *fmt; +// int force; +// } opts_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/p2e_t.java plantuml-8039/src/h/p2e_t.java --- plantuml-8024/src/h/p2e_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/p2e_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 1im40ams3kh5v6dlvxd8o76ql + +public interface p2e_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct p2e_t", +"{", +"Ppoint_t *pp", +"Pedge_t *ep", +"}", +"p2e_t"); +} + +// typedef struct p2e_t { +// Ppoint_t *pp; +// Pedge_t *ep; +// } p2e_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/pack_info.java plantuml-8039/src/h/pack_info.java --- plantuml-8024/src/h/pack_info.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pack_info.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,74 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 95stwmwomxnw1qea4q6lmeekb + +public interface pack_info extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"float aspect", +"int sz", +"unsigned int margin", +"int doSplines", +"pack_mode mode", +"boolean *fixed", +"packval_t* vals", +"int flags", +"}", +"pack_info"); +} + +// typedef struct { +// float aspect; /* desired aspect ratio */ +// int sz; /* row/column size size */ +// unsigned int margin; /* margin left around objects, in points */ +// int doSplines; /* use splines in constructing graph shape */ +// pack_mode mode; /* granularity and method */ +// boolean *fixed; /* fixed[i] == true implies g[i] should not be moved */ +// packval_t* vals; /* for arrays, sort numbers */ +// int flags; +// } pack_info; \ No newline at end of file diff -Nru plantuml-8024/src/h/pack_mode.java plantuml-8039/src/h/pack_mode.java --- plantuml-8024/src/h/pack_mode.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pack_mode.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 1ptr5q16rzf9tt2rxbfqjxump + +public interface pack_mode extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"l_undef, l_clust, l_node, l_graph, l_array, l_aspect", +"}", +"pack_mode"); +} + +// typedef enum { l_undef, l_clust, l_node, l_graph, l_array, l_aspect } pack_mode; \ No newline at end of file diff -Nru plantuml-8024/src/h/pair2.java plantuml-8039/src/h/pair2.java --- plantuml-8024/src/h/pair2.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pair2.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 dy5r1sdgz0max2193u4q02fxa + +public interface pair2 extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"pair t1, t2", +"}", +"pair2"); +} + +// typedef struct { +// pair t1, t2; +// } pair2; \ No newline at end of file diff -Nru plantuml-8024/src/h/paird.java plantuml-8039/src/h/paird.java --- plantuml-8024/src/h/paird.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/paird.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 einfe3q62jgv9xhayk3bntd2n + +public interface paird extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"double p1, p2", +"}", +"paird"); +} + +// typedef struct { +// double p1, p2; +// } paird; \ No newline at end of file diff -Nru plantuml-8024/src/h/pair.java plantuml-8039/src/h/pair.java --- plantuml-8024/src/h/pair.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pair.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 ddwipekygokokhhjsvpkehl11 + +public interface pair extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"point id", +"}", +"pair"); +} + +// typedef struct { +// Dtlink_t link; +// point id; +// } pair; \ No newline at end of file diff -Nru plantuml-8024/src/h/parms_t.java plantuml-8039/src/h/parms_t.java --- plantuml-8024/src/h/parms_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/parms_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,98 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9cd2h3321diwjh8ip8pl0j7no + +public interface parms_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int useGrid", +"int useNew", +"long seed", +"int numIters", +"int maxIters", +"int unscaled", +"double C", +"double Tfact", +"double K", +"double T0", +"int smode", +"double Cell", +"double Cell2", +"double K2", +"double Wd", +"double Ht", +"double Wd2", +"double Ht2", +"int pass1", +"int loopcnt", +"}", +"parms_t"); +} + +// typedef struct { +// int useGrid; /* use grid for speed up */ +// int useNew; /* encode x-K into attractive force */ +// long seed; /* seed for position RNG */ +// int numIters; /* actual iterations in layout */ +// int maxIters; /* max iterations in layout */ +// int unscaled; /* % of iterations used in pass 1 */ +// double C; /* Repulsion factor in xLayout */ +// double Tfact; /* scale temp from default expression */ +// double K; /* spring constant; ideal distance */ +// double T0; /* initial temperature */ +// int smode; /* seed mode */ +// double Cell; /* grid cell size */ +// double Cell2; /* Cell*Cell */ +// double K2; /* K*K */ +// double Wd; /* half-width of boundary */ +// double Ht; /* half-height of boundary */ +// double Wd2; /* Wd*Wd */ +// double Ht2; /* Ht*Ht */ +// int pass1; /* iterations used in pass 1 */ +// int loopcnt; /* actual iterations in this pass */ +// } parms_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/PartitionVars.java plantuml-8039/src/h/PartitionVars.java --- plantuml-8024/src/h/PartitionVars.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/PartitionVars.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,67 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3bl1j8t9m914f4j86dshaf3ec + +public interface PartitionVars extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct PartitionVars", +"{", +"int partition[64 + 1]", +"int taken[64 + 1]", +"int count[2]", +"struct Rect cover[2]", +"int area[2]", +"}"); +} + +// struct PartitionVars { +// int partition[64 + 1]; +// int taken[64 + 1]; +// int count[2]; +// struct Rect cover[2]; +// int area[2]; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/pathend_t.java plantuml-8039/src/h/pathend_t.java --- plantuml-8024/src/h/pathend_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pathend_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 42vd8ru4xms0dzzipvkxpb5xt + +public interface pathend_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct pathend_t", +"{", +"boxf nb", +"pointf np", +"int sidemask", +"int boxn", +"boxf boxes[20]", +"}", +"pathend_t"); +} + +// typedef struct pathend_t { +// boxf nb; /* the node box */ +// pointf np; /* node port */ +// int sidemask; +// int boxn; +// boxf boxes[20]; +// } pathend_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/path.java plantuml-8039/src/h/path.java --- plantuml-8024/src/h/path.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/path.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 ccnx75vstszprxk6fxhq89rpu + +public interface path extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct path", +"{", +"port start, end", +"int nbox", +"boxf *boxes", +"void *data", +"}", +"path"); +} + +// typedef struct path { /* internal specification for an edge spline */ +// port start, end; +// int nbox; /* number of subdivisions */ +// boxf *boxes; /* rectangular regions of subdivision */ +// void *data; +// } path; \ No newline at end of file diff -Nru plantuml-8024/src/h/pathpoint.java plantuml-8039/src/h/pathpoint.java --- plantuml-8024/src/h/pathpoint.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pathpoint.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,74 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 a5i7wzlk8jfe8fjde2lmrcxmi + +public interface pathpoint extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"double x", +"double y", +"double lengthsofar", +"char type", +"double dir", +"double lout", +"int bevel", +"double dir2", +"}", +"pathpoint"); +} + +// typedef struct { +// double x; +// double y; +// double lengthsofar; +// char type; +// double dir; +// double lout; +// int bevel; +// double dir2; +// } pathpoint; \ No newline at end of file diff -Nru plantuml-8024/src/h/Pedge_t.java plantuml-8039/src/h/Pedge_t.java --- plantuml-8024/src/h/Pedge_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Pedge_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 2nvsp26kuu9u7ogyjj0s4xc6g + +public interface Pedge_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Pedge_t", +"{", +"Ppoint_t a, b", +"}", +"Pedge_t"); +} + +// typedef struct Pedge_t { +// Ppoint_t a, b; +// } Pedge_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/pending_cb_t.java plantuml-8039/src/h/pending_cb_t.java --- plantuml-8024/src/h/pending_cb_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pending_cb_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7egb0316v9vsn8jyhhkr2gszq + +public interface pending_cb_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"unsigned long key", +"Agraph_t *g", +"Agobj_t *obj", +"symlist_t *symlist", +"}", +"pending_cb_t"); +} + +// typedef struct { +// Dtlink_t link; +// unsigned long key; /* universal key for main or sub-object */ +// Agraph_t *g; +// Agobj_t *obj; +// symlist_t *symlist; /* attributes involved */ +// } pending_cb_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/pendingset_t.java plantuml-8039/src/h/pendingset_t.java --- plantuml-8024/src/h/pendingset_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pendingset_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3vwa5jq346b29ho1uecj2lpz7 + +public interface pendingset_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Agrec_t h", +"struct", +"{", +"Dict_t *g, *n, *e", +"}", +"ins, mod, del", +"}", +"pendingset_t"); +} + +// typedef struct { +// Agrec_t h; +// struct { +// Dict_t *g, *n, *e; +// } ins, mod, del; +// } pendingset_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/pen_type.java plantuml-8039/src/h/pen_type.java --- plantuml-8024/src/h/pen_type.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pen_type.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 1soyedn2kokhqrl0ppmbkgno9 + +public interface pen_type extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"PEN_NONE, PEN_DASHED, PEN_DOTTED, PEN_SOLID", +"}", +"pen_type"); +} + +// typedef enum { PEN_NONE, PEN_DASHED, PEN_DOTTED, PEN_SOLID } pen_type; \ No newline at end of file diff -Nru plantuml-8024/src/h/pf.java plantuml-8039/src/h/pf.java --- plantuml-8024/src/h/pf.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pf.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9wkvh85air3altazyul27m0gc + +public interface pf extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef void (*pf) (char *, void *)"); +} + +// typedef void (*pf) (char *, void *); \ No newline at end of file diff -Nru plantuml-8024/src/h/pitem.java plantuml-8039/src/h/pitem.java --- plantuml-8024/src/h/pitem.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pitem.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 1mvg2nc9o3ce4978cy5j457yj + +public interface pitem extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Dtlink_t link", +"union", +"{", +"Dt_t *rp", +"htmlcell_t *cp", +"}", +"u", +"unsigned char ruled", +"}", +"pitem"); +} + +// typedef struct { +// Dtlink_t link; +// union { +// Dt_t *rp; +// htmlcell_t *cp; +// } u; +// unsigned char ruled; +// } pitem; \ No newline at end of file diff -Nru plantuml-8024/src/h/pointf.java plantuml-8039/src/h/pointf.java --- plantuml-8024/src/h/pointf.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pointf.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 c2dqy43vdg0rr841peh6gqytj + +public interface pointf extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct pointf_s", +"{", +"double x, y", +"}", +"pointf"); +} + +// typedef struct pointf_s { double x, y; } pointf; \ No newline at end of file diff -Nru plantuml-8024/src/h/point.java plantuml-8039/src/h/point.java --- plantuml-8024/src/h/point.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/point.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 axpj7c8u90q3k5tbk9sy03qy6 + +public interface point extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int x, y", +"}", +"point"); +} + +// typedef struct { int x, y; } point; \ No newline at end of file diff -Nru plantuml-8024/src/h/pointnlink_t.java plantuml-8039/src/h/pointnlink_t.java --- plantuml-8024/src/h/pointnlink_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/pointnlink_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3pqj1ldfe9xn0d28j7xc7apm0 + +public interface pointnlink_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct pointnlink_t", +"{", +"Ppoint_t *pp", +"struct pointnlink_t *link", +"}", +"pointnlink_t"); +} + +// typedef struct pointnlink_t { +// Ppoint_t *pp; +// struct pointnlink_t *link; +// } pointnlink_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/poly_desc_t.java plantuml-8039/src/h/poly_desc_t.java --- plantuml-8024/src/h/poly_desc_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/poly_desc_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6mt9ui9xo6b1joat1z7c0klmi + +public interface poly_desc_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"pointf (*size_gen) (pointf)", +"void (*vertex_gen) (pointf*, pointf*)", +"}", +"poly_desc_t"); +} + +// typedef struct { +// pointf (*size_gen) (pointf); +// void (*vertex_gen) (pointf*, pointf*); +// } poly_desc_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/polygon_t.java plantuml-8039/src/h/polygon_t.java --- plantuml-8024/src/h/polygon_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/polygon_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,74 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 23el548cy5m8f5wz8b2x5tihx + +public interface polygon_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct polygon_t", +"{", +"int regular", +"int peripheries", +"int sides", +"double orientation", +"double distortion", +"double skew", +"int option", +"pointf *vertices", +"}", +"polygon_t"); +} + +// typedef struct polygon_t { /* mutable shape information for a node */ +// int regular; /* true for symmetric shapes */ +// int peripheries; /* number of periphery lines */ +// int sides; /* number of sides */ +// double orientation; /* orientation of shape (+ve degrees) */ +// double distortion; /* distortion factor - as in trapezium */ +// double skew; /* skew factor - as in parallelogram */ +// int option; /* ROUNDED, DIAGONAL corners, etc. */ +// pointf *vertices; /* array of vertex points */ +// } polygon_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/port.java plantuml-8039/src/h/port.java --- plantuml-8024/src/h/port.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/port.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,83 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 71w78cxaan0929s365t8kncr6 + +public interface port extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct port", +"{", +"pointf p", +"double theta", +"boxf *bp", +"boolean defined", +"boolean constrained", +"boolean clip", +"boolean dyna", +"unsigned char order", +"unsigned char side", +"char *name", +"}", +"port"); +} + +// typedef struct port { /* internal edge endpoint specification */ +// pointf p; /* aiming point relative to node center */ +// double theta; /* slope in radians */ +// boxf *bp; /* if not null, points to bbox of +// * rectangular area that is port target +// */ +// boolean defined; /* if true, edge has port info at this end */ +// boolean constrained; /* if true, constraints such as theta are set */ +// boolean clip; /* if true, clip end to node/port shape */ +// boolean dyna; /* if true, assign compass point dynamically */ +// unsigned char order; /* for mincross */ +// unsigned char side; /* if port is on perimeter of node, this +// * contains the bitwise OR of the sides (TOP, +// * BOTTOM, etc.) it is on. +// */ +// char *name; /* port name, if it was explicitly given, otherwise NULL */ +// } port; \ No newline at end of file diff -Nru plantuml-8024/src/h/posinfo_t.java plantuml-8039/src/h/posinfo_t.java --- plantuml-8024/src/h/posinfo_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/posinfo_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 dce4b7kx8f1rue2zogxekzxww + +public interface posinfo_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"Agnode_t* n", +"double theta", +"double minRadius", +"double maxRadius", +"double diameter", +"double scale", +"int childCount", +"}", +"posinfo_t"); +} + +// typedef struct { +// Agnode_t* n; +// double theta; /* angle of node */ +// double minRadius; /* minimum radius for child circle */ +// double maxRadius; /* maximum radius of child blocks */ +// double diameter; /* length of arc needed for child blocks */ +// double scale; /* scale factor to increase minRadius to parents' children don't overlap */ +// int childCount; /* no. of child blocks attached at n */ +// } posinfo_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/posstate.java plantuml-8039/src/h/posstate.java --- plantuml-8024/src/h/posstate.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/posstate.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 92zaxjl5ni7v139jf56a43ebk + +public interface posstate extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"double radius", +"double subtreeR", +"double nodeAngle", +"double firstAngle", +"double lastAngle", +"block_t *cp", +"node_t *neighbor", +"}", +"posstate"); +} + +// typedef struct { +// double radius; /* Basic radius of block */ +// double subtreeR; /* Max of subtree radii */ +// double nodeAngle; /* Angle allocated to each node in block */ +// double firstAngle; /* Smallest child angle when block has 1 node */ +// double lastAngle; /* Largest child angle when block has 1 node */ +// block_t *cp; /* Children of block */ +// node_t *neighbor; /* Node connected to parent block, if any */ +// } posstate; \ No newline at end of file diff -Nru plantuml-8024/src/h/PostscriptAlias.java plantuml-8039/src/h/PostscriptAlias.java --- plantuml-8024/src/h/PostscriptAlias.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/PostscriptAlias.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,76 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 bz3dqxllqmg9suinb2cpbn15d + +public interface PostscriptAlias extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct _PostscriptAlias", +"{", +"char* name", +"char* family", +"char* weight", +"char* stretch", +"char* style", +"int xfig_code", +"char* svg_font_family", +"char* svg_font_weight", +"char* svg_font_style", +"}", +"PostscriptAlias"); +} + +// typedef struct _PostscriptAlias { +// char* name; +// char* family; +// char* weight; +// char* stretch; +// char* style; +// int xfig_code; +// char* svg_font_family; +// char* svg_font_weight; +// char* svg_font_style; +// } PostscriptAlias; \ No newline at end of file diff -Nru plantuml-8024/src/h/Ppoint_t.java plantuml-8039/src/h/Ppoint_t.java --- plantuml-8024/src/h/Ppoint_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Ppoint_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.pointf_s; + +//2 5ih4079ytax8x1xfcnbvykspw + +public interface Ppoint_t extends pointf_s { + public static List DEFINITION = Arrays.asList( +"typedef struct pointf_s Ppoint_t"); +} + +// typedef struct pointf_s Ppoint_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Ppoly_t.java plantuml-8039/src/h/Ppoly_t.java --- plantuml-8024/src/h/Ppoly_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Ppoly_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 e64uez8phkm446sopxainj3um + +public interface Ppoly_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Ppoly_t", +"{", +"Ppoint_t *ps", +"int pn", +"}", +"Ppoly_t"); +} + +// typedef struct Ppoly_t { +// Ppoint_t *ps; +// int pn; +// } Ppoly_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/print_op.java plantuml-8039/src/h/print_op.java --- plantuml-8024/src/h/print_op.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/print_op.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8175ey66kudr10vwd06s8mqz + +public interface print_op extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef void (*print_op)(xdot_op * op, pf print, void *info, int more)"); +} + +// typedef void (*print_op)(xdot_op * op, pf print, void *info, int more); \ No newline at end of file diff -Nru plantuml-8024/src/h/putstrfn.java plantuml-8039/src/h/putstrfn.java --- plantuml-8024/src/h/putstrfn.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/putstrfn.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9trwr3s9t77smt1kilyj442wh + +public interface putstrfn extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef int (*putstrfn) (void *chan, const char *str)"); +} + +// typedef int (*putstrfn) (void *chan, const char *str); \ No newline at end of file diff -Nru plantuml-8024/src/h/Pvector_t.java plantuml-8039/src/h/Pvector_t.java --- plantuml-8024/src/h/Pvector_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Pvector_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.pointf_s; + +//2 7u6ia0m5l63lzjsh8q9g4m0z0 + +public interface Pvector_t extends pointf_s { + public static List DEFINITION = Arrays.asList( +"typedef struct pointf_s Pvector_t"); +} + +// typedef struct pointf_s Pvector_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Pxy_t.java plantuml-8039/src/h/Pxy_t.java --- plantuml-8024/src/h/Pxy_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Pxy_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6l32s8asvxzjzhd33lym87bk6 + +public interface Pxy_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Pxy_t", +"{", +"double x, y", +"}", +"Pxy_t"); +} + +// typedef struct Pxy_t { +// double x, y; +// } Pxy_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/qnode_t.java plantuml-8039/src/h/qnode_t.java --- plantuml-8024/src/h/qnode_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/qnode_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,70 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 27lijxqu2p29w0d5l19be0n3m + +public interface qnode_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int nodetype", +"int segnum", +"pointf yval", +"int trnum", +"int parent", +"int left, right", +"}", +"qnode_t"); +} + +// typedef struct { +// int nodetype; /* Y-node or S-node */ +// int segnum; +// pointf yval; +// int trnum; +// int parent; /* doubly linked DAG */ +// int left, right; /* children */ +// } qnode_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/qsort_cmpf.java plantuml-8039/src/h/qsort_cmpf.java --- plantuml-8024/src/h/qsort_cmpf.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/qsort_cmpf.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 760ti35q5jpka8zpo262spvnl + +public interface qsort_cmpf extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef int (*qsort_cmpf) (const void *, const void *)"); +} + +// typedef int (*qsort_cmpf) (const void *, const void *); \ No newline at end of file diff -Nru plantuml-8024/src/h/radfunc_t.java plantuml-8039/src/h/radfunc_t.java --- plantuml-8024/src/h/radfunc_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/radfunc_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 10r1g6lk6ojy6x6ppt148q1o2 + +public interface radfunc_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef double (*radfunc_t)(double,double,double)"); +} + +// typedef double (*radfunc_t)(double,double,double); \ No newline at end of file diff -Nru plantuml-8024/src/h/rank_t.java plantuml-8039/src/h/rank_t.java --- plantuml-8024/src/h/rank_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/rank_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,78 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3cl38y4ai8c9r6d23izdf6jgn + +public interface rank_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct rank_t", +"{", +"int n", +"node_t **v", +"int an", +"node_t **av", +"double ht1, ht2", +"double pht1, pht2", +"boolean candidate", +"boolean valid", +"int cache_nc", +"adjmatrix_t *flat", +"}", +"rank_t"); +} + +// typedef struct rank_t { +// int n; /* number of nodes in this rank */ +// node_t **v; /* ordered list of nodes in rank */ +// int an; /* globally allocated number of nodes */ +// node_t **av; /* allocated list of nodes in rank */ +// double ht1, ht2; /* height below/above centerline */ +// double pht1, pht2; /* as above, but only primitive nodes */ +// boolean candidate; /* for transpose () */ +// boolean valid; +// int cache_nc; /* caches number of crossings */ +// adjmatrix_t *flat; +// } rank_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/ratio_t.java plantuml-8039/src/h/ratio_t.java --- plantuml-8024/src/h/ratio_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/ratio_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,59 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6n9jcxa02dyqa57pkcrd73otm + +public interface ratio_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"R_NONE = 0, R_VALUE, R_FILL, R_COMPRESS, R_AUTO, R_EXPAND", +"}", +"ratio_t"); +} + +// typedef enum { R_NONE = +// 0, R_VALUE, R_FILL, R_COMPRESS, R_AUTO, R_EXPAND } ratio_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/rawgraph.java plantuml-8039/src/h/rawgraph.java --- plantuml-8024/src/h/rawgraph.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/rawgraph.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3gcy12n7txwt4m8zgbj4peo1e + +public interface rawgraph extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int nvs", +"vertex* vertices", +"}", +"rawgraph"); +} + +// typedef struct { +// int nvs; +// vertex* vertices; +// } rawgraph; \ No newline at end of file diff -Nru plantuml-8024/src/h/rdr_t.java plantuml-8039/src/h/rdr_t.java --- plantuml-8024/src/h/rdr_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/rdr_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8ps8r8mtrw6f5dhflc33s2dtg + +public interface rdr_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"const char *data", +"int len", +"int cur", +"}", +"rdr_t"); +} + +// typedef struct { +// const char *data; +// int len; +// int cur; +// } rdr_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/Rect_t.java plantuml-8039/src/h/Rect_t.java --- plantuml-8024/src/h/Rect_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/Rect_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 32vghhci9sc1tdk0jb8p5rlhk + +public interface Rect_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct Rect", +"{", +"int boundary[2*2]", +"}", +"Rect_t"); +} + +// typedef struct Rect { +// int boundary[2*2]; +// } Rect_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/refstr_t.java plantuml-8039/src/h/refstr_t.java --- plantuml-8024/src/h/refstr_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/refstr_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 61ughvl20d1mf5vtkmd94wfy + +public interface refstr_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct refstr_t", +"{", +"Dtlink_t link", +"unsigned long refcnt", +"char *s", +"char store[1]", +"}", +"refstr_t"); +} + +// typedef struct refstr_t { +// Dtlink_t link; +// unsigned long refcnt; +// char *s; +// char store[1]; /* this is actually a dynamic array */ +// } refstr_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/reg_errcode_t.java plantuml-8039/src/h/reg_errcode_t.java --- plantuml-8024/src/h/reg_errcode_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/reg_errcode_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,98 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 ap7c4ii9ux7nlggs68fm76fy6 + +public interface reg_errcode_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"REG_NOERROR = 0,", +"REG_NOMATCH,", +"REG_BADPAT,", +"REG_ECOLLATE,", +"REG_ECTYPE,", +"REG_EESCAPE,", +"REG_ESUBREG,", +"REG_EBRACK,", +"REG_EPAREN,", +"REG_EBRACE,", +"REG_BADBR,", +"REG_ERANGE,", +"REG_ESPACE,", +"REG_BADRPT,", +"REG_EEND,", +"REG_ESIZE,", +"REG_ERPAREN", +"}", +"reg_errcode_t"); +} + +// typedef enum +// { +// REG_NOERROR = 0, /* Success. */ +// REG_NOMATCH, /* Didn't find a match (for regexec). */ +// +// /* POSIX regcomp return error codes. (In the order listed in the +// standard.) */ +// REG_BADPAT, /* Invalid pattern. */ +// REG_ECOLLATE, /* Not implemented. */ +// REG_ECTYPE, /* Invalid character class name. */ +// REG_EESCAPE, /* Trailing backslash. */ +// REG_ESUBREG, /* Invalid back reference. */ +// REG_EBRACK, /* Unmatched left bracket. */ +// REG_EPAREN, /* Parenthesis imbalance. */ +// REG_EBRACE, /* Unmatched \{. */ +// REG_BADBR, /* Invalid contents of \{\}. */ +// REG_ERANGE, /* Invalid range end. */ +// REG_ESPACE, /* Ran out of memory. */ +// REG_BADRPT, /* No preceding re for repetition op. */ +// +// /* Error codes we've added. */ +// REG_EEND, /* Premature end. */ +// REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */ +// REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */ +// } reg_errcode_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/regex_t.java plantuml-8039/src/h/regex_t.java --- plantuml-8024/src/h/regex_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/regex_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 a0207gwp8wnf6l2kb9poka4m4 + +public interface regex_t extends re_pattern_buffer { + public static List DEFINITION = Arrays.asList( +"typedef struct re_pattern_buffer regex_t"); +} + +// typedef struct re_pattern_buffer regex_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/register_info_type.java plantuml-8039/src/h/register_info_type.java --- plantuml-8024/src/h/register_info_type.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/register_info_type.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,79 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 32aq50hgdk3miqrwc4915dj1o + +public interface register_info_type extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef union", +"{", +"fail_stack_elt_t word", +"struct", +"{", +"unsigned match_null_string_p : 2", +"unsigned is_active : 1", +"unsigned matched_something : 1", +"unsigned ever_matched_something : 1", +"}", +"bits", +"}", +"register_info_type"); +} + +// typedef union +// { +// fail_stack_elt_t word; +// struct +// { +// /* This field is one if this group can match the empty string, +// zero if not. If not yet determined, `MATCH_NULL_UNSET_VALUE'. */ +// +// unsigned match_null_string_p : 2; +// unsigned is_active : 1; +// unsigned matched_something : 1; +// unsigned ever_matched_something : 1; +// } bits; +// } register_info_type; \ No newline at end of file diff -Nru plantuml-8024/src/h/regmatch_t.java plantuml-8039/src/h/regmatch_t.java --- plantuml-8024/src/h/regmatch_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/regmatch_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 pj9qzzazlscp3s43o8lug1br + +public interface regmatch_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"regoff_t rm_so", +"regoff_t rm_eo", +"}", +"regmatch_t"); +} + +// typedef struct +// { +// regoff_t rm_so; /* Byte offset from string's start to substring's start. */ +// regoff_t rm_eo; /* Byte offset from string's start to substring's end. */ +// } regmatch_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/re_opcode_t.java plantuml-8039/src/h/re_opcode_t.java --- plantuml-8024/src/h/re_opcode_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/re_opcode_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,218 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 e3hfh80mtu75t9spasjqrsdrh + +public interface re_opcode_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"no_op = 0,", +"succeed,", +"exactn,", +"anychar,", +"charset,", +"charset_not,", +"start_memory,", +"stop_memory,", +"duplicate,", +"begline,", +"endline,", +"begbuf,", +"endbuf,", +"jump,", +"jump_past_alt,", +"on_failure_jump,", +"on_failure_keep_string_jump,", +"pop_failure_jump,", +"maybe_pop_jump,", +"dummy_failure_jump,", +"push_dummy_failure,", +"succeed_n,", +"jump_n,", +"set_number_at, wordchar,", +"notwordchar,", +"wordbeg,", +"wordend,", +"wordbound,", +"notwordbound", +"}", +"re_opcode_t"); +} + +// typedef enum +// { +// no_op = 0, +// +// /* Succeed right away--no more backtracking. */ +// succeed, +// +// /* Followed by one byte giving n, then by n literal bytes. */ +// exactn, +// +// /* Matches any (more or less) character. */ +// anychar, +// +// /* Matches any one char belonging to specified set. First +// following byte is number of bitmap bytes. Then come bytes +// for a bitmap saying which chars are in. Bits in each byte +// are ordered low-bit-first. A character is in the set if its +// bit is 1. A character too large to have a bit in the map is +// automatically not in the set. */ +// charset, +// +// /* Same parameters as charset, but match any character that is +// not one of those specified. */ +// charset_not, +// +// /* Start remembering the text that is matched, for storing in a +// register. Followed by one byte with the register number, in +// the range 0 to one less than the pattern buffer's re_nsub +// field. Then followed by one byte with the number of groups +// inner to this one. (This last has to be part of the +// start_memory only because we need it in the on_failure_jump +// of re_match_2.) */ +// start_memory, +// +// /* Stop remembering the text that is matched and store it in a +// memory register. Followed by one byte with the register +// number, in the range 0 to one less than `re_nsub' in the +// pattern buffer, and one byte with the number of inner groups, +// just like `start_memory'. (We need the number of inner +// groups here because we don't have any easy way of finding the +// corresponding start_memory when we're at a stop_memory.) */ +// stop_memory, +// +// /* Match a duplicate of something remembered. Followed by one +// byte containing the register number. */ +// duplicate, +// +// /* Fail unless at beginning of line. */ +// begline, +// +// /* Fail unless at end of line. */ +// endline, +// +// /* Succeeds if at beginning of buffer (if emacs) or at beginning +// of string to be matched (if not). */ +// begbuf, +// +// /* Analogously, for end of buffer/string. */ +// endbuf, +// +// /* Followed by two byte relative address to which to jump. */ +// jump, +// +// /* Same as jump, but marks the end of an alternative. */ +// jump_past_alt, +// +// /* Followed by two-byte relative address of place to resume at +// in case of failure. */ +// on_failure_jump, +// +// /* Like on_failure_jump, but pushes a placeholder instead of the +// current string position when executed. */ +// on_failure_keep_string_jump, +// +// /* Throw away latest failure point and then jump to following +// two-byte relative address. */ +// pop_failure_jump, +// +// /* Change to pop_failure_jump if know won't have to backtrack to +// match; otherwise change to jump. This is used to jump +// back to the beginning of a repeat. If what follows this jump +// clearly won't match what the repeat does, such that we can be +// sure that there is no use backtracking out of repetitions +// already matched, then we change it to a pop_failure_jump. +// Followed by two-byte address. */ +// maybe_pop_jump, +// +// /* Jump to following two-byte address, and push a dummy failure +// point. This failure point will be thrown away if an attempt +// is made to use it for a failure. A `+' construct makes this +// before the first repeat. Also used as an intermediary kind +// of jump when compiling an alternative. */ +// dummy_failure_jump, +// +// /* Push a dummy failure point and continue. Used at the end of +// alternatives. */ +// push_dummy_failure, +// +// /* Followed by two-byte relative address and two-byte number n. +// After matching N times, jump to the address upon failure. */ +// succeed_n, +// +// /* Followed by two-byte relative address, and two-byte number n. +// Jump to the address N times, then fail. */ +// jump_n, +// +// /* Set the following two-byte relative address to the +// subsequent two-byte number. The address *includes* the two +// bytes of number. */ +// set_number_at, +// +// wordchar, /* Matches any word-constituent character. */ +// notwordchar, /* Matches any char that is not a word-constituent. */ +// +// wordbeg, /* Succeeds if at word beginning. */ +// wordend, /* Succeeds if at word end. */ +// +// wordbound, /* Succeeds if at a word boundary. */ +// notwordbound /* Succeeds if not at a word boundary. */ +// +// +// +// +// +// +// +// +// +// +// +// +// +// } re_opcode_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/re_pattern_buffer.java plantuml-8039/src/h/re_pattern_buffer.java --- plantuml-8024/src/h/re_pattern_buffer.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/re_pattern_buffer.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,136 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3hom62aciieyjg8pgbfmp1qik + +public interface re_pattern_buffer extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct re_pattern_buffer", +"{", +"unsigned char *buffer", +"unsigned long int allocated", +"unsigned long int used", +"reg_syntax_t syntax", +"char *fastmap", +"char * translate", +"size_t re_nsub", +"unsigned can_be_null : 1", +"unsigned regs_allocated : 2", +"unsigned fastmap_accurate : 1", +"unsigned no_sub : 1", +"unsigned not_bol : 1", +"unsigned not_eol : 1", +"unsigned newline_anchor : 1", +"}"); +} + +// struct re_pattern_buffer +// { +// /* [[[begin pattern_buffer]]] */ +// /* Space that holds the compiled pattern. It is declared as +// `unsigned char *' because its elements are +// sometimes used as array indexes. */ +// unsigned char *buffer; +// +// /* Number of bytes to which `buffer' points. */ +// unsigned long int allocated; +// +// /* Number of bytes actually used in `buffer'. */ +// unsigned long int used; +// +// /* Syntax setting with which the pattern was compiled. */ +// reg_syntax_t syntax; +// +// /* Pointer to a fastmap, if any, otherwise zero. re_search uses +// the fastmap, if there is one, to skip over impossible +// starting points for matches. */ +// char *fastmap; +// +// /* Either a translate table to apply to all characters before +// comparing them, or zero for no translation. The translation +// is applied to a pattern when it is compiled and to a string +// when it is matched. */ +// char * translate; +// +// /* Number of subexpressions found by the compiler. */ +// size_t re_nsub; +// +// /* Zero if this pattern cannot match the empty string, one else. +// Well, in truth it's used only in `re_search_2', to see +// whether or not we should use the fastmap, so we don't set +// this absolutely perfectly; see `re_compile_fastmap' (the +// `duplicate' case). */ +// unsigned can_be_null : 1; +// +// /* If REGS_UNALLOCATED, allocate space in the `regs' structure +// for `max (RE_NREGS, re_nsub + 1)' groups. +// If REGS_REALLOCATE, reallocate space if necessary. +// If REGS_FIXED, use what's there. */ +// +// +// +// unsigned regs_allocated : 2; +// +// /* Set to zero when `regex_compile' compiles a pattern; set to one +// by `re_compile_fastmap' if it updates the fastmap. */ +// unsigned fastmap_accurate : 1; +// +// /* If set, `re_match_2' does not return information about +// subexpressions. */ +// unsigned no_sub : 1; +// +// /* If set, a beginning-of-line anchor doesn't match at the +// beginning of the string. */ +// unsigned not_bol : 1; +// +// /* Similarly for an end-of-line anchor. */ +// unsigned not_eol : 1; +// +// /* If true, an anchor at a newline matches. */ +// unsigned newline_anchor : 1; +// +// /* [[[end pattern_buffer]]] */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/re_registers.java plantuml-8039/src/h/re_registers.java --- plantuml-8024/src/h/re_registers.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/re_registers.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 c6l7vumjull8d6poh7y1xqrct + +public interface re_registers extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct re_registers", +"{", +"unsigned num_regs", +"regoff_t *start", +"regoff_t *end", +"}"); +} + +// struct re_registers +// { +// unsigned num_regs; +// regoff_t *start; +// regoff_t *end; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/route.java plantuml-8039/src/h/route.java --- plantuml-8024/src/h/route.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/route.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5fq657all5l5bqizkuz5ggrdj + +public interface route extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int n", +"segment* segs", +"}", +"route"); +} + +// typedef struct { +// int n; +// segment* segs; +// } route; \ No newline at end of file diff -Nru plantuml-8024/src/h/RTree.java plantuml-8039/src/h/RTree.java --- plantuml-8024/src/h/RTree.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/RTree.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,119 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6erg9dnjb8l3vavlty90aui6v + +public interface RTree extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct RTree", +"{", +"Node_t *root", +"SplitQ_t split", +"int MinFill", +"long ElapsedTime", +"float UserTime, SystemTime", +"int Deleting", +"int StatFlag", +"int InsertCount", +"int DeleteCount", +"int ReInsertCount", +"int InSplitCount", +"int DeSplitCount", +"int ElimCount", +"int EvalCount", +"int InTouchCount", +"int DeTouchCount", +"int SeTouchCount", +"int CallCount", +"float SplitMeritSum", +"int RectCount", +"int NodeCount", +"int LeafCount, NonLeafCount", +"int EntryCount", +"int SearchCount", +"int HitCount", +"}"); +} + +// struct RTree { +// Node_t *root; +// +// SplitQ_t split; +// +// /* balance criterion for node splitting */ +// int MinFill; +// +// /* times */ +// long ElapsedTime; +// float UserTime, SystemTime; +// +// int Deleting; +// +// /* variables for statistics */ +// int StatFlag; /* tells if we are counting or not */ +// /* counters affected only when StatFlag set */ +// int InsertCount; +// int DeleteCount; +// int ReInsertCount; +// int InSplitCount; +// int DeSplitCount; +// int ElimCount; +// int EvalCount; +// int InTouchCount; +// int DeTouchCount; +// int SeTouchCount; +// int CallCount; +// float SplitMeritSum; +// +// /* counters used even when StatFlag not set */ +// int RectCount; +// int NodeCount; +// int LeafCount, NonLeafCount; +// int EntryCount; +// int SearchCount; +// int HitCount; +// +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/RTree_t.java plantuml-8039/src/h/RTree_t.java --- plantuml-8024/src/h/RTree_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/RTree_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 2mpm2fft75drx0k0by8s54asw + +public interface RTree_t extends RTree { + public static List DEFINITION = Arrays.asList( +"typedef struct RTree RTree_t"); +} + +// typedef struct RTree RTree_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/same_t.java plantuml-8039/src/h/same_t.java --- plantuml-8024/src/h/same_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/same_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8c359dwrpz9nffi3rk433ukjt + +public interface same_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct same_t", +"{", +"char *id", +"elist l", +"int n_arr", +"double arr_len", +"}", +"same_t"); +} + +// typedef struct same_t { +// char *id; /* group id */ +// elist l; /* edges in the group */ +// int n_arr; /* number of edges with arrows */ +// double arr_len; /* arrow length of an edge in the group */ +// } same_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/save_e_t.java plantuml-8039/src/h/save_e_t.java --- plantuml-8024/src/h/save_e_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/save_e_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 24xdytkhdvt79rfwsa7gp6do2 + +public interface save_e_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct save_e_s", +"{", +"Agnode_t *from, *to", +"}", +"save_e_t"); +} + +// typedef struct save_e_s { +// Agnode_t *from, *to; +// } save_e_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/save_stack_t.java plantuml-8039/src/h/save_stack_t.java --- plantuml-8024/src/h/save_stack_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/save_stack_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9a1whydr7ixbfnkje6ytmde8t + +public interface save_stack_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct save_stack_s", +"{", +"save_e_t *mem", +"int stacksize", +"}", +"save_stack_t"); +} + +// typedef struct save_stack_s { +// save_e_t *mem; +// int stacksize; +// } save_stack_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/sedge.java plantuml-8039/src/h/sedge.java --- plantuml-8024/src/h/sedge.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/sedge.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 15ruicbgesimuhfhph6r72639 + +public interface sedge extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct sedge sedge"); +} + +// typedef struct sedge sedge; \ No newline at end of file diff -Nru plantuml-8024/src/h/seedMode.java plantuml-8039/src/h/seedMode.java --- plantuml-8024/src/h/seedMode.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/seedMode.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7n29466qjouzyf7izmjndudt5 + +public interface seedMode extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"seed_unset, seed_val, seed_time, seed_regular", +"}", +"seedMode"); +} + +// typedef enum { +// seed_unset, seed_val, seed_time, seed_regular +// } seedMode; \ No newline at end of file diff -Nru plantuml-8024/src/h/segitem_t.java plantuml-8039/src/h/segitem_t.java --- plantuml-8024/src/h/segitem_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/segitem_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 btsf9u7kgq9gvrmm3ikqza2ix + +public interface segitem_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct segitem_s", +"{", +"pointf p", +"struct segitem_s* next", +"}", +"segitem_t"); +} + +// typedef struct segitem_s { +// pointf p; +// struct segitem_s* next; +// } segitem_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/segment.java plantuml-8039/src/h/segment.java --- plantuml-8024/src/h/segment.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/segment.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,76 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 chpljvx1wjvc6a9wott6pl7mo + +public interface segment extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct segment", +"{", +"boolean isVert", +"boolean flipped", +"double comm_coord", +"paird p", +"bend l1, l2", +"int ind_no", +"int track_no", +"struct segment* prev", +"struct segment* next", +"}", +"segment"); +} + +// typedef struct segment { +// boolean isVert; +// boolean flipped; +// double comm_coord; /* the common coordinate */ +// paird p; /* end points */ +// bend l1, l2; +// int ind_no; /* index number of this segment in its channel */ +// int track_no; /* track number assigned in the channel */ +// struct segment* prev; +// struct segment* next; +// } segment; \ No newline at end of file diff -Nru plantuml-8024/src/h/segment_t.java plantuml-8039/src/h/segment_t.java --- plantuml-8024/src/h/segment_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/segment_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4p5dhxpx14ooxgkym0hnv7g04 + +public interface segment_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"pointf v0, v1", +"int is_inserted", +"int root0, root1", +"int next", +"int prev", +"}", +"segment_t"); +} + +// typedef struct { +// pointf v0, v1; /* two endpoints */ +// int is_inserted; /* inserted in trapezoidation yet ? */ +// int root0, root1; /* root nodes in Q */ +// int next; /* Next logical segment */ +// int prev; /* Previous segment */ +// } segment_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/sfont_t.java plantuml-8039/src/h/sfont_t.java --- plantuml-8024/src/h/sfont_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/sfont_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 e0z0hnt02wemy4xf87o17z7cp + +public interface sfont_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct sfont_t", +"{", +"textfont_t *cfont", +"struct sfont_t *pfont", +"}", +"sfont_t"); +} + +// typedef struct sfont_t { +// textfont_t *cfont; +// struct sfont_t *pfont; +// } sfont_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/sgraph.java plantuml-8039/src/h/sgraph.java --- plantuml-8024/src/h/sgraph.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/sgraph.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 dxskpbv74lxltj165fmgf70cp + +public interface sgraph extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int nnodes, nedges", +"int save_nnodes, save_nedges", +"snode* nodes", +"sedge* edges", +"}", +"sgraph"); +} + +// typedef struct { +// int nnodes, nedges; +// int save_nnodes, save_nedges; +// snode* nodes; +// sedge* edges; +// } sgraph; \ No newline at end of file diff -Nru plantuml-8024/src/h/shape_desc.java plantuml-8039/src/h/shape_desc.java --- plantuml-8024/src/h/shape_desc.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/shape_desc.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8ger4o0h260ys1ca9fc7x46eq + +public interface shape_desc extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct shape_desc", +"{", +"char *name", +"shape_functions *fns", +"polygon_t *polygon", +"boolean usershape", +"}", +"shape_desc"); +} + +// typedef struct shape_desc { /* read-only shape descriptor */ +// char *name; /* as read from graph file */ +// shape_functions *fns; +// polygon_t *polygon; /* base polygon info */ +// boolean usershape; +// } shape_desc; \ No newline at end of file diff -Nru plantuml-8024/src/h/shape_functions.java plantuml-8039/src/h/shape_functions.java --- plantuml-8024/src/h/shape_functions.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/shape_functions.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,70 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5mip14tura2l8b750vykgeun3 + +public interface shape_functions extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct shape_functions", +"{", +"void (*initfn) (node_t *)", +"void (*freefn) (node_t *)", +"port(*portfn) (node_t *, char *, char *)", +"boolean(*insidefn) (inside_t * inside_context, pointf)", +"int (*pboxfn)(node_t* n, port* p, int side, boxf rv[], int *kptr)", +"void (*codefn) (GVJ_t * job, node_t * n)", +"}", +"shape_functions"); +} + +// typedef struct shape_functions { /* read-only shape functions */ +// void (*initfn) (node_t *); /* initializes shape from node u.shape_info structure */ +// void (*freefn) (node_t *); /* frees shape from node u.shape_info structure */ +// port(*portfn) (node_t *, char *, char *); /* finds aiming point and slope of port */ +// boolean(*insidefn) (inside_t * inside_context, pointf); /* clips incident gvc->e spline on shape of gvc->n */ +// int (*pboxfn)(node_t* n, port* p, int side, boxf rv[], int *kptr); /* finds box path to reach port */ +// void (*codefn) (GVJ_t * job, node_t * n); /* emits graphics code for node */ +// } shape_functions; \ No newline at end of file diff -Nru plantuml-8024/src/h/shape_kind.java plantuml-8039/src/h/shape_kind.java --- plantuml-8024/src/h/shape_kind.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/shape_kind.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 br7wf04petqrkv3jy73x2hnfl + +public interface shape_kind extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"SH_UNSET, SH_POLY, SH_RECORD, SH_POINT, SH_EPSF", +"}", +"shape_kind"); +} + +// typedef enum { SH_UNSET, SH_POLY, SH_RECORD, SH_POINT, SH_EPSF} shape_kind; \ No newline at end of file diff -Nru plantuml-8024/src/h/shape_t.java plantuml-8039/src/h/shape_t.java --- plantuml-8024/src/h/shape_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/shape_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 a6qcq27iylfbrgiga37cxkr9t + +public interface shape_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct shape_t", +"{", +"int nstrokes", +"stroke_t *strokes", +"}", +"shape_t"); +} + +// typedef struct shape_t { /* mutable shape information for a node */ +// int nstrokes; /* number of strokes in array */ +// stroke_t *strokes; /* array of strokes */ +// /* The last stroke must always be closed, but can be pen_up. +// * It is used as the clipping path */ +// } shape_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/snodeitem.java plantuml-8039/src/h/snodeitem.java --- plantuml-8024/src/h/snodeitem.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/snodeitem.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 d89g0gupg4cmbfbww7yqebufn + +public interface snodeitem extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"snode* np", +"pointf p", +"Dtlink_t link", +"}", +"snodeitem"); +} + +// typedef struct { +// snode* np; +// pointf p; +// Dtlink_t link; +// } snodeitem; \ No newline at end of file diff -Nru plantuml-8024/src/h/snode.java plantuml-8039/src/h/snode.java --- plantuml-8024/src/h/snode.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/snode.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 dp60xuei2ue2x586frihti3gr + +public interface snode extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct snode snode"); +} + +// typedef struct snode snode; \ No newline at end of file diff -Nru plantuml-8024/src/h/splineInfo.java plantuml-8039/src/h/splineInfo.java --- plantuml-8024/src/h/splineInfo.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/splineInfo.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8u1r3c3d0g8hn19fq04x9z0ht + +public interface splineInfo extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"boolean(*swapEnds) (edge_t * e)", +"boolean(*splineMerge) (node_t * n)", +"boolean ignoreSwap", +"boolean isOrtho", +"}", +"splineInfo"); +} + +// typedef struct { +// boolean(*swapEnds) (edge_t * e); /* Should head and tail be swapped? */ +// boolean(*splineMerge) (node_t * n); /* Is n a node in the middle of an edge? */ +// boolean ignoreSwap; /* Test for swapped edges if false */ +// boolean isOrtho; /* Orthogonal routing used */ +// } splineInfo; \ No newline at end of file diff -Nru plantuml-8024/src/h/spline_info_t.java plantuml-8039/src/h/spline_info_t.java --- plantuml-8024/src/h/spline_info_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/spline_info_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 368du94hwpmwj2vxjibw1kyxw + +public interface spline_info_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int LeftBound, RightBound, Splinesep, Multisep", +"boxf* Rank_box", +"}", +"spline_info_t"); +} + +// typedef struct { +// int LeftBound, RightBound, Splinesep, Multisep; +// boxf* Rank_box; +// } spline_info_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/splines.java plantuml-8039/src/h/splines.java --- plantuml-8024/src/h/splines.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/splines.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 966xu1ddmyus6hb8a0jpk0mxv + +public interface splines extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct splines", +"{", +"bezier *list", +"int size", +"boxf bb", +"}", +"splines"); +} + +// typedef struct splines { +// bezier *list; +// int size; +// boxf bb; +// } splines; \ No newline at end of file diff -Nru plantuml-8024/src/h/SplitQ_t.java plantuml-8039/src/h/SplitQ_t.java --- plantuml-8024/src/h/SplitQ_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/SplitQ_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5la7qmeq461s77rfwh637x31k + +public interface SplitQ_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct split_q_s", +"{", +"struct Branch BranchBuf[64 + 1]", +"struct Rect CoverSplit", +"unsigned int CoverSplitArea", +"struct PartitionVars Partitions[1]", +"}", +"SplitQ_t"); +} + +// typedef struct split_q_s { +// struct Branch BranchBuf[64 + 1]; +// struct Rect CoverSplit; +// unsigned int CoverSplitArea; +// struct PartitionVars Partitions[1]; +// } SplitQ_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/stack.java plantuml-8039/src/h/stack.java --- plantuml-8024/src/h/stack.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/stack.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7clbkey2x67pv7myg32sbtaev + +public interface stack extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int top", +"int* vals", +"}", +"stack"); +} + +// typedef struct { +// int top; +// int* vals; +// } stack; \ No newline at end of file diff -Nru plantuml-8024/src/h/stk_t.java plantuml-8039/src/h/stk_t.java --- plantuml-8024/src/h/stk_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/stk_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5hcf1ml5onpp69gd7ny7c1jpv + +public interface stk_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"blk_t *fstblk", +"blk_t *curblk", +"Agnode_t **curp", +"void (*actionfn) (Agnode_t *, void *)", +"int (*markfn) (Agnode_t *, int)", +"}", +"stk_t"); +} + +// typedef struct { +// blk_t *fstblk; +// blk_t *curblk; +// Agnode_t **curp; +// void (*actionfn) (Agnode_t *, void *); +// int (*markfn) (Agnode_t *, int); +// } stk_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/stream_t.java plantuml-8039/src/h/stream_t.java --- plantuml-8024/src/h/stream_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/stream_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6nmxfljmpic0z165aeccgy3io + +public interface stream_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"char* s", +"char* buf", +"FILE* fp", +"}", +"stream_t"); +} + +// typedef struct { +// char* s; +// char* buf; +// FILE* fp; +// } stream_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/stroke_t.java plantuml-8039/src/h/stroke_t.java --- plantuml-8024/src/h/stroke_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/stroke_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,65 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8ck3otqwsudjpgfogblgza1gb + +public interface stroke_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct stroke_t", +"{", +"int nvertices", +"int flags", +"pointf *vertices", +"}", +"stroke_t"); +} + +// typedef struct stroke_t { /* information about a single stroke */ +// /* we would have called it a path if that term wasn't already used */ +// int nvertices; /* number of points in the stroke */ +// int flags; /* stroke style flags */ +// pointf *vertices; /* array of vertex points */ +// } stroke_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/symlist_t.java plantuml-8039/src/h/symlist_t.java --- plantuml-8024/src/h/symlist_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/symlist_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 14amtv3porwybjn6et6rnys71 + +public interface symlist_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct symlist_s", +"{", +"Agsym_t *sym", +"struct symlist_s *link", +"}", +"symlist_t"); +} + +// typedef struct symlist_s { +// Agsym_t *sym; +// struct symlist_s *link; +// } symlist_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/tedge_t.java plantuml-8039/src/h/tedge_t.java --- plantuml-8024/src/h/tedge_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/tedge_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 etqt95dxzhlewy48djz53vdvy + +public interface tedge_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct tedge_t", +"{", +"pointnlink_t *pnl0p", +"pointnlink_t *pnl1p", +"struct triangle_t *ltp", +"struct triangle_t *rtp", +"}", +"tedge_t"); +} + +// typedef struct tedge_t { +// pointnlink_t *pnl0p; +// pointnlink_t *pnl1p; +// struct triangle_t *ltp; +// struct triangle_t *rtp; +// } tedge_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/textfont_t.java plantuml-8039/src/h/textfont_t.java --- plantuml-8024/src/h/textfont_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/textfont_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,70 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7eimedro6z0j21rhmmxbqdssy + +public interface textfont_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"char* name", +"char* color", +"PostscriptAlias *postscript_alias", +"double size", +"unsigned int flags:7", +"unsigned int cnt:(sizeof(unsigned int) * 8 - 7)", +"}", +"textfont_t"); +} + +// typedef struct { +// char* name; +// char* color; +// PostscriptAlias *postscript_alias; +// double size; +// unsigned int flags:7; /* HTML_UL, HTML_IF, HTML_BF, etc. */ +// unsigned int cnt:(sizeof(unsigned int) * 8 - 7); /* reference count */ +// } textfont_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/textlabel_t.java plantuml-8039/src/h/textlabel_t.java --- plantuml-8024/src/h/textlabel_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/textlabel_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,96 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 9qqo4pt0x97lv7fp9yneflgkr + +public interface textlabel_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct textlabel_t", +"{", +"char *text, *fontname, *fontcolor", +"int charset", +"double fontsize", +"pointf dimen", +"pointf space", +"pointf pos", +"union", +"{", +"struct", +"{", +"textspan_t *span", +"short nspans", +"}", +"txt", +"htmllabel_t *html", +"}", +"u", +"char valign", +"boolean set", +"boolean html", +"}", +"textlabel_t"); +} + +// typedef struct textlabel_t { +// char *text, *fontname, *fontcolor; +// int charset; +// double fontsize; +// pointf dimen; /* the diagonal size of the label (estimated by layout) */ +// pointf space; /* the diagonal size of the space for the label */ +// /* the rendered label is aligned in this box */ +// /* space does not include pad or margin */ +// pointf pos; /* the center of the space for the label */ +// union { +// struct { +// textspan_t *span; +// short nspans; +// } txt; +// htmllabel_t *html; +// } u; +// char valign; /* 't' 'c' 'b' */ +// boolean set; /* true if position is set */ +// boolean html; /* true if html label */ +// } textlabel_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/textspan_t.java plantuml-8039/src/h/textspan_t.java --- plantuml-8024/src/h/textspan_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/textspan_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3u5j54p26whh9zkbxuboqgjl8 + +public interface textspan_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"char *str", +"textfont_t *font", +"void *layout", +"void (*free_layout) (void *layout)", +"double yoffset_layout, yoffset_centerline", +"pointf size", +"char just", +"}", +"textspan_t"); +} + +// typedef struct { +// char *str; /* stored in utf-8 */ +// textfont_t *font; +// void *layout; +// void (*free_layout) (void *layout); /* FIXME - this is ugly */ +// double yoffset_layout, yoffset_centerline; +// pointf size; +// char just; /* 'l' 'n' 'r' */ /* FIXME */ +// } textspan_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/tna_t.java plantuml-8039/src/h/tna_t.java --- plantuml-8024/src/h/tna_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/tna_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8b2ok0k4502ln9ebjmmz8i24b + +public interface tna_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct tna_t", +"{", +"double t", +"Ppoint_t a[2]", +"}", +"tna_t"); +} + +// typedef struct tna_t { +// double t; +// Ppoint_t a[2]; +// } tna_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/trap_t.java plantuml-8039/src/h/trap_t.java --- plantuml-8024/src/h/trap_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/trap_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 98x8jrsxyu5va90pidn9bybc0 + +public interface trap_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int lseg, rseg", +"pointf hi, lo", +"int u0, u1", +"int d0, d1", +"int sink", +"int usave, uside", +"int state", +"}", +"trap_t"); +} + +// typedef struct { +// int lseg, rseg; /* two adjoining segments */ +// pointf hi, lo; /* max/min y-values */ +// int u0, u1; +// int d0, d1; +// int sink; /* pointer to corresponding in Q */ +// int usave, uside; /* I forgot what this means */ +// int state; +// } trap_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/triangle_t.java plantuml-8039/src/h/triangle_t.java --- plantuml-8024/src/h/triangle_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/triangle_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5ecxnf8ebe9n3gyiow712oltk + +public interface triangle_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct triangle_t", +"{", +"int mark", +"struct tedge_t e[3]", +"}", +"triangle_t"); +} + +// typedef struct triangle_t { +// int mark; +// struct tedge_t e[3]; +// } triangle_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/usershape_s.java plantuml-8039/src/h/usershape_s.java --- plantuml-8024/src/h/usershape_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/usershape_s.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,81 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 etvnzxzle0w43gjkxm4pvnhj8 + +public interface usershape_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct usershape_s", +"{", +"Dtlink_t link", +"const char *name", +"int macro_id", +"boolean must_inline", +"boolean nocache", +"FILE *f", +"imagetype_t type", +"char *stringtype", +"int x, y, w, h, dpi", +"void *data", +"size_t datasize", +"void (*datafree)(usershape_t *us)", +"}"); +} + +// struct usershape_s { +// Dtlink_t link; +// const char *name; +// int macro_id; +// boolean must_inline; +// boolean nocache; +// FILE *f; +// imagetype_t type; +// char *stringtype; +// int x, y, w, h, dpi; +// void *data; /* data loaded by a renderer */ +// size_t datasize; /* size of data (if mmap'ed) */ +// void (*datafree)(usershape_t *us); /* renderer's function for freeing data */ +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/usershape_t.java plantuml-8039/src/h/usershape_t.java --- plantuml-8024/src/h/usershape_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/usershape_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 chz6xkjhrs9pyfn4o58fuw87o + +public interface usershape_t extends usershape_s { + public static List DEFINITION = Arrays.asList( +"typedef struct usershape_s usershape_t"); +} + +// typedef struct usershape_s usershape_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/val_t.java plantuml-8039/src/h/val_t.java --- plantuml-8024/src/h/val_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/val_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,70 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * PlantUML is free software; you can redistribute it and/or modify it + * under the terms of the Eclipse Public License. + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 ay78pm8zwkesyc85l5d5hpf1p + +public interface val_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef union s", +"{", +"Agnode_t *n", +"Agraph_t *subg", +"Agedge_t *e", +"Agsym_t *asym", +"char *name", +"struct item_s *list", +"}", +"val_t"); +} + +// typedef union s { /* possible items in generic list */ +// Agnode_t *n; +// Agraph_t *subg; +// Agedge_t *e; +// Agsym_t *asym; /* bound attribute */ +// char *name; /* unbound attribute */ +// struct item_s *list; /* list-of-lists (for edgestmt) */ +// } val_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/vararr_t.java plantuml-8039/src/h/vararr_t.java --- plantuml-8024/src/h/vararr_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/vararr_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 oghwi8868wglf1fone49o4mk + +public interface vararr_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"pathpoint* pts", +"int cnt", +"int sz", +"}", +"vararr_t"); +} + +// typedef struct { +// pathpoint* pts; +// int cnt; +// int sz; +// } vararr_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/vconfig_s.java plantuml-8039/src/h/vconfig_s.java --- plantuml-8024/src/h/vconfig_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/vconfig_s.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,73 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 7spuyiz5ytbh1otla4fyecyrn + +public interface vconfig_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct vconfig_s", +"{", +"int Npoly", +"int N", +"Ppoint_t *P", +"int *start", +"int *next", +"int *prev", +"array2 vis", +"}"); +} + +// struct vconfig_s { +// int Npoly; +// int N; /* number of points in walk of barriers */ +// Ppoint_t *P; /* barrier points */ +// int *start; +// int *next; +// int *prev; +// +// /* this is computed from the above */ +// array2 vis; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/vconfig_t.java plantuml-8039/src/h/vconfig_t.java --- plantuml-8024/src/h/vconfig_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/vconfig_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 6gxwgxurv7pycllk13f8dpux6 + +public interface vconfig_t extends vconfig_s { + public static List DEFINITION = Arrays.asList( +"typedef struct vconfig_s vconfig_t"); +} + +// typedef struct vconfig_s vconfig_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/vertexchain_t.java plantuml-8039/src/h/vertexchain_t.java --- plantuml-8024/src/h/vertexchain_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/vertexchain_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8jbxzxhbdy0flrmgb5ulugq1w + +public interface vertexchain_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"pointf pt", +"int vnext[4]", +"int vpos[4]", +"int nextfree", +"}", +"vertexchain_t"); +} + +// typedef struct { +// pointf pt; +// int vnext[4]; /* next vertices for the 4 chains */ +// int vpos[4]; /* position of v in the 4 chains */ +// int nextfree; +// } vertexchain_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/vertex.java plantuml-8039/src/h/vertex.java --- plantuml-8024/src/h/vertex.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/vertex.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,64 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 91jsneefoo0k8vh8cfacj8oxy + +public interface vertex extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int color", +"int topsort_order", +"Dt_t* adj_list", +"}", +"vertex"); +} + +// typedef struct { +// int color; +// int topsort_order; +// Dt_t* adj_list; /* adj_list */ +// } vertex; \ No newline at end of file diff -Nru plantuml-8024/src/h/_vmalloc_s.java plantuml-8039/src/h/_vmalloc_s.java --- plantuml-8024/src/h/_vmalloc_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/_vmalloc_s.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,59 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 39v3r26qnl4xc35g69w1abt28 + +public interface _vmalloc_s extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct _vmalloc_s", +"{", +"char unused", +"}"); +} + +// struct _vmalloc_s { +// char unused; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/walkfn_t.java plantuml-8039/src/h/walkfn_t.java --- plantuml-8024/src/h/walkfn_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/walkfn_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 uetkvys3lmc07q98hxrctlr6 + +public interface walkfn_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef int (*walkfn_t) (Dt_t *, void *, void *)"); +} + +// typedef int (*walkfn_t) (Dt_t *, void *, void *); \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_align.java plantuml-8039/src/h/xdot_align.java --- plantuml-8024/src/h/xdot_align.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_align.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 e7x0o7gr081vjwke671rdirk2 + +public interface xdot_align extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"xd_left, xd_center, xd_right", +"}", +"xdot_align"); +} + +// typedef enum { +// xd_left, xd_center, xd_right +// } xdot_align; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_color.java plantuml-8039/src/h/xdot_color.java --- plantuml-8024/src/h/xdot_color.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_color.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6y1cws31xuq9r3y52qnszd7f6 + +public interface xdot_color extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"xdot_grad_type type", +"union", +"{", +"char* clr", +"xdot_linear_grad ling", +"xdot_radial_grad ring", +"}", +"u", +"}", +"xdot_color"); +} + +// typedef struct { +// xdot_grad_type type; +// union { +// char* clr; +// xdot_linear_grad ling; +// xdot_radial_grad ring; +// } u; +// } xdot_color; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_color_stop.java plantuml-8039/src/h/xdot_color_stop.java --- plantuml-8024/src/h/xdot_color_stop.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_color_stop.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 xzo69vancovfvk7lnaol0jpc + +public interface xdot_color_stop extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"float frac", +"char* color", +"}", +"xdot_color_stop"); +} + +// typedef struct { +// float frac; +// char* color; +// } xdot_color_stop; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_font.java plantuml-8039/src/h/xdot_font.java --- plantuml-8024/src/h/xdot_font.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_font.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4bxcepuedme9et1adr2g9a20o + +public interface xdot_font extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"double size", +"char* name", +"}", +"xdot_font"); +} + +// typedef struct { +// double size; +// char* name; +// } xdot_font; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_grad_type.java plantuml-8039/src/h/xdot_grad_type.java --- plantuml-8024/src/h/xdot_grad_type.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_grad_type.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6c63rmtqc9y84xocq4ll0zatp + +public interface xdot_grad_type extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"xd_none, xd_linear, xd_radial", +"}", +"xdot_grad_type"); +} + +// typedef enum { +// xd_none, +// xd_linear, +// xd_radial +// } xdot_grad_type; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_image.java plantuml-8039/src/h/xdot_image.java --- plantuml-8024/src/h/xdot_image.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_image.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 zuln9hnjvuwwk4g106x6hmhn + +public interface xdot_image extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"xdot_rect pos", +"char* name", +"}", +"xdot_image"); +} + +// typedef struct { +// xdot_rect pos; +// char* name; +// } xdot_image; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot.java plantuml-8039/src/h/xdot.java --- plantuml-8024/src/h/xdot.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 38aioi9ikzxlifhp4ycl5a12m + +public interface xdot extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int cnt", +"int sz", +"xdot_op* ops", +"freefunc_t freefunc", +"int flags", +"}", +"xdot"); +} + +// typedef struct { +// int cnt; /* no. of xdot ops */ +// int sz; /* sizeof structure containing xdot_op as first field */ +// xdot_op* ops; +// freefunc_t freefunc; +// int flags; +// } xdot; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_kind.java plantuml-8039/src/h/xdot_kind.java --- plantuml-8024/src/h/xdot_kind.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_kind.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 4a4izg5kkwsn1z1946vyklb3b + +public interface xdot_kind extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"xd_filled_ellipse, xd_unfilled_ellipse, xd_filled_polygon, xd_unfilled_polygon, xd_filled_bezier, xd_unfilled_bezier, xd_polyline, xd_text, xd_fill_color, xd_pen_color, xd_font, xd_style, xd_image, xd_grad_fill_color, xd_grad_pen_color, xd_fontchar", +"}", +"xdot_kind"); +} + +// typedef enum { +// xd_filled_ellipse, xd_unfilled_ellipse, +// xd_filled_polygon, xd_unfilled_polygon, +// xd_filled_bezier, xd_unfilled_bezier, +// xd_polyline, xd_text, +// xd_fill_color, xd_pen_color, xd_font, xd_style, xd_image, +// xd_grad_fill_color, xd_grad_pen_color, +// xd_fontchar +// } xdot_kind; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_linear_grad.java plantuml-8039/src/h/xdot_linear_grad.java --- plantuml-8024/src/h/xdot_linear_grad.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_linear_grad.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8xbeerie9940dlui93o9uduhv + +public interface xdot_linear_grad extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"double x0, y0", +"double x1, y1", +"int n_stops", +"xdot_color_stop* stops", +"}", +"xdot_linear_grad"); +} + +// typedef struct { +// double x0, y0; +// double x1, y1; +// int n_stops; +// xdot_color_stop* stops; +// } xdot_linear_grad; \ No newline at end of file diff -Nru plantuml-8024/src/h/_xdot_op.java plantuml-8039/src/h/_xdot_op.java --- plantuml-8024/src/h/_xdot_op.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/_xdot_op.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,89 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8n228pyy8v750bhs0ubxnx0l9 + +public interface _xdot_op extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"struct _xdot_op", +"{", +"xdot_kind kind", +"union", +"{", +"xdot_rect ellipse", +"xdot_polyline polygon", +"xdot_polyline polyline", +"xdot_polyline bezier", +"xdot_text text", +"xdot_image image", +"char* color", +"xdot_color grad_color", +"xdot_font font", +"char* style", +"unsigned int fontchar", +"}", +"u", +"drawfunc_t drawfunc", +"}"); +} + +// struct _xdot_op { +// xdot_kind kind; +// union { +// xdot_rect ellipse; /* xd_filled_ellipse, xd_unfilled_ellipse */ +// xdot_polyline polygon; /* xd_filled_polygon, xd_unfilled_polygon */ +// xdot_polyline polyline; /* xd_polyline */ +// xdot_polyline bezier; /* xd_filled_bezier, xd_unfilled_bezier */ +// xdot_text text; /* xd_text */ +// xdot_image image; /* xd_image */ +// char* color; /* xd_fill_color, xd_pen_color */ +// xdot_color grad_color; /* xd_grad_fill_color, xd_grad_pen_color */ +// xdot_font font; /* xd_font */ +// char* style; /* xd_style */ +// unsigned int fontchar; /* xd_fontchar */ +// } u; +// drawfunc_t drawfunc; +// }; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_op.java plantuml-8039/src/h/xdot_op.java --- plantuml-8024/src/h/xdot_op.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_op.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +//2 8x0twnxu1fhm6q5e871fteso9 + +public interface xdot_op extends _xdot_op { + public static List DEFINITION = Arrays.asList( +"typedef struct _xdot_op xdot_op"); +} + +// typedef struct _xdot_op xdot_op; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_point.java plantuml-8039/src/h/xdot_point.java --- plantuml-8024/src/h/xdot_point.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_point.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 6kldzrjqd360f2b5vpn1elj2t + +public interface xdot_point extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"double x, y, z", +"}", +"xdot_point"); +} + +// typedef struct { +// double x, y, z; +// } xdot_point; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_polyline.java plantuml-8039/src/h/xdot_polyline.java --- plantuml-8024/src/h/xdot_polyline.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_polyline.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8p27dcmllwwifbm6k530v1zf5 + +public interface xdot_polyline extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int cnt", +"xdot_point* pts", +"}", +"xdot_polyline"); +} + +// typedef struct { +// int cnt; +// xdot_point* pts; +// } xdot_polyline; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_radial_grad.java plantuml-8039/src/h/xdot_radial_grad.java --- plantuml-8024/src/h/xdot_radial_grad.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_radial_grad.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 73pwh5ex8hy6zad5cqdh3dl8j + +public interface xdot_radial_grad extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"double x0, y0, r0", +"double x1, y1, r1", +"int n_stops", +"xdot_color_stop* stops", +"}", +"xdot_radial_grad"); +} + +// typedef struct { +// double x0, y0, r0; +// double x1, y1, r1; +// int n_stops; +// xdot_color_stop* stops; +// } xdot_radial_grad; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_rect.java plantuml-8039/src/h/xdot_rect.java --- plantuml-8024/src/h/xdot_rect.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_rect.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 dytdxtdizn050yrh7uobj1fkt + +public interface xdot_rect extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"double x, y, w, h", +"}", +"xdot_rect"); +} + +// typedef struct { +// double x, y, w, h; +// } xdot_rect; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_state_t.java plantuml-8039/src/h/xdot_state_t.java --- plantuml-8024/src/h/xdot_state_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_state_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,84 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 dhiu7hb5hm946g0tfbnpowdu5 + +public interface xdot_state_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"attrsym_t *g_draw", +"attrsym_t *g_l_draw", +"attrsym_t *n_draw", +"attrsym_t *n_l_draw", +"attrsym_t *e_draw", +"attrsym_t *h_draw", +"attrsym_t *t_draw", +"attrsym_t *e_l_draw", +"attrsym_t *hl_draw", +"attrsym_t *tl_draw", +"unsigned char buf[(EMIT_HLABEL+1)][BUFSIZ]", +"unsigned short version", +"char* version_s", +"}", +"xdot_state_t"); +} + +// typedef struct { +// attrsym_t *g_draw; +// attrsym_t *g_l_draw; +// attrsym_t *n_draw; +// attrsym_t *n_l_draw; +// attrsym_t *e_draw; +// attrsym_t *h_draw; +// attrsym_t *t_draw; +// attrsym_t *e_l_draw; +// attrsym_t *hl_draw; +// attrsym_t *tl_draw; +// unsigned char buf[(EMIT_HLABEL+1)][BUFSIZ]; +// unsigned short version; +// char* version_s; +// } xdot_state_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_stats.java plantuml-8039/src/h/xdot_stats.java --- plantuml-8024/src/h/xdot_stats.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_stats.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,88 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 ckvi0csmdepbsh2fme77kpwds + +public interface xdot_stats extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int cnt", +"int n_ellipse", +"int n_polygon", +"int n_polygon_pts", +"int n_polyline", +"int n_polyline_pts", +"int n_bezier", +"int n_bezier_pts", +"int n_text", +"int n_font", +"int n_style", +"int n_color", +"int n_image", +"int n_gradcolor", +"int n_fontchar", +"}", +"xdot_stats"); +} + +// typedef struct { +// int cnt; /* no. of xdot ops */ +// int n_ellipse; +// int n_polygon; +// int n_polygon_pts; +// int n_polyline; +// int n_polyline_pts; +// int n_bezier; +// int n_bezier_pts; +// int n_text; +// int n_font; +// int n_style; +// int n_color; +// int n_image; +// int n_gradcolor; +// int n_fontchar; +// } xdot_stats; \ No newline at end of file diff -Nru plantuml-8024/src/h/xdot_text.java plantuml-8039/src/h/xdot_text.java --- plantuml-8024/src/h/xdot_text.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xdot_text.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 1r6csyayxjv7abyjh9drchhp1 + +public interface xdot_text extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"double x, y", +"xdot_align align", +"double width", +"char* text", +"}", +"xdot_text"); +} + +// typedef struct { +// double x, y; +// xdot_align align; +// double width; +// char* text; +// } xdot_text; \ No newline at end of file diff -Nru plantuml-8024/src/h/XLabels_t.java plantuml-8039/src/h/XLabels_t.java --- plantuml-8024/src/h/XLabels_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/XLabels_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,74 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 5g5jopfxwib4iq0tncmxengai + +public interface XLabels_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct XLabels_s", +"{", +"object_t *objs", +"int n_objs", +"xlabel_t *lbls", +"int n_lbls", +"label_params_t *params", +"Dt_t *hdx", +"RTree_t *spdx", +"}", +"XLabels_t"); +} + +// typedef struct XLabels_s { +// object_t *objs; +// int n_objs; +// xlabel_t *lbls; +// int n_lbls; +// label_params_t *params; +// +// Dt_t *hdx; // splay tree keyed with hilbert spatial codes +// RTree_t *spdx; // rtree +// +// } XLabels_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/xlabel_t.java plantuml-8039/src/h/xlabel_t.java --- plantuml-8024/src/h/xlabel_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xlabel_t.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 cguvocw1bak2n3x4pc98z410a + +public interface xlabel_t extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"pointf sz", +"pointf pos", +"void *lbl", +"unsigned char set", +"}", +"xlabel_t"); +} + +// typedef struct { +// pointf sz; /* Size of label (input) */ +// pointf pos; /* Position of lower-left corner of label (output) */ +// void *lbl; /* Pointer to label in the graph */ +// unsigned char set; /* True if the position has been set (input/output) */ +// } xlabel_t; \ No newline at end of file diff -Nru plantuml-8024/src/h/xop_kind.java plantuml-8039/src/h/xop_kind.java --- plantuml-8024/src/h/xop_kind.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xop_kind.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 8ucfcdlx92zlvpzsawjzbwj2l + +public interface xop_kind extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef enum", +"{", +"xop_ellipse, xop_polygon, xop_bezier, xop_polyline, xop_text, xop_fill_color, xop_pen_color, xop_font, xop_style, xop_image, xop_grad_color, xop_fontchar", +"}", +"xop_kind"); +} + +// typedef enum { +// xop_ellipse, +// xop_polygon, +// xop_bezier, +// xop_polyline, xop_text, +// xop_fill_color, xop_pen_color, xop_font, xop_style, xop_image, +// xop_grad_color, +// xop_fontchar +// } xop_kind; \ No newline at end of file diff -Nru plantuml-8024/src/h/xparams.java plantuml-8039/src/h/xparams.java --- plantuml-8024/src/h/xparams.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/xparams.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,68 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 3tsqzkcxjfsnllr7i7uuj30uu + +public interface xparams extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef struct", +"{", +"int numIters", +"double T0", +"double K", +"double C", +"int loopcnt", +"}", +"xparams"); +} + +// typedef struct { +// int numIters; +// double T0; +// double K; +// double C; +// int loopcnt; +// } xparams; \ No newline at end of file diff -Nru plantuml-8024/src/h/YYSTYPE.java plantuml-8039/src/h/YYSTYPE.java --- plantuml-8024/src/h/YYSTYPE.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/h/YYSTYPE.java 2016-04-22 16:26:17.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * Project Info: http://plantuml.com + * + * This file is part of Smetana. + * Smetana is a partial translation of Graphviz/Dot sources from C to Java. + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * This translation is distributed under the same Licence as the original C program: + * + ************************************************************************* + * Copyright (c) 2011 AT&T Intellectual Property + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: See CVS logs. Details at http://www.graphviz.org/ + ************************************************************************* + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package h; +import java.util.Arrays; +import java.util.List; + +import smetana.core.__ptr__; + +//2 23p91jqzwh8asa1yejjd5avb1 + +public interface YYSTYPE extends __ptr__ { + public static List DEFINITION = Arrays.asList( +"typedef union YYSTYPE", +"{", +"int i", +"char *str", +"struct Agnode_s *n", +"}", +"YYSTYPE"); +} + +// typedef union YYSTYPE +// { +// /* Line 2049 of yacc.c */ +// +// +// int i; +// char *str; +// struct Agnode_s *n; +// +// +// /* Line 2049 of yacc.c */ +// +// } YYSTYPE; \ No newline at end of file diff -Nru plantuml-8024/src/net/sourceforge/plantuml/AbstractPSystem.java plantuml-8039/src/net/sourceforge/plantuml/AbstractPSystem.java --- plantuml-8024/src/net/sourceforge/plantuml/AbstractPSystem.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/AbstractPSystem.java 2016-04-22 16:26:17.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,16 +34,19 @@ */ package net.sourceforge.plantuml; -import java.util.Date; import java.util.List; import java.util.Properties; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.Command; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.ProtectedCommand; import net.sourceforge.plantuml.core.Diagram; import net.sourceforge.plantuml.core.UmlSource; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.VerticalAlignment; import net.sourceforge.plantuml.version.License; import net.sourceforge.plantuml.version.Version; @@ -88,11 +91,11 @@ return 1; } - public Display getTitle() { + public DisplayPositionned getTitle() { if (source == null) { - return Display.empty(); + return new DisplayPositionned(Display.empty(), HorizontalAlignment.CENTER, VerticalAlignment.TOP); } - return source.getTitle(); + return new DisplayPositionned(source.getTitle(), HorizontalAlignment.CENTER, VerticalAlignment.TOP); } public String getWarningOrError() { @@ -106,11 +109,11 @@ return true; } - public CommandExecutionResult executeCommand(Command cmd, List lines) { + public CommandExecutionResult executeCommand(Command cmd, BlocLines lines) { cmd = new ProtectedCommand(cmd); return cmd.execute(this, lines); } - + public boolean hasUrl() { return false; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/ActivityDiagramFactory.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/ActivityDiagramFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/ActivityDiagramFactory.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/ActivityDiagramFactory.java 2016-04-22 16:26:17.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.activitydiagram.command.CommandEndif; import net.sourceforge.plantuml.activitydiagram.command.CommandIf; import net.sourceforge.plantuml.activitydiagram.command.CommandLinkActivity; -import net.sourceforge.plantuml.activitydiagram.command.CommandLinkLongActivity2; +import net.sourceforge.plantuml.activitydiagram.command.CommandLinkLongActivity; import net.sourceforge.plantuml.activitydiagram.command.CommandPartition; import net.sourceforge.plantuml.command.Command; import net.sourceforge.plantuml.command.CommandFootboxIgnored; @@ -67,15 +67,15 @@ cmds.add(new CommandPartition()); cmds.add(new CommandEndPartition()); - cmds.add(new CommandLinkLongActivity2()); + cmds.add(new CommandLinkLongActivity()); final FactoryNoteActivityCommand factoryNoteActivityCommand = new FactoryNoteActivityCommand(); cmds.add(factoryNoteActivityCommand.createSingleLine()); - cmds.add(factoryNoteActivityCommand.createMultiLine()); + cmds.add(factoryNoteActivityCommand.createMultiLine(false)); final FactoryNoteOnLinkCommand factoryNoteOnLinkCommand = new FactoryNoteOnLinkCommand(); cmds.add(factoryNoteOnLinkCommand.createSingleLine()); - cmds.add(factoryNoteOnLinkCommand.createMultiLine()); + cmds.add(factoryNoteOnLinkCommand.createMultiLine(false)); cmds.add(new CommandIf()); cmds.add(new CommandElse()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/ActivityDiagram.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/ActivityDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/ActivityDiagram.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/ActivityDiagram.java 2016-04-22 16:26:17.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandElse.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandElse.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandElse.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandElse.java 2016-04-22 16:26:17.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandEndif.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandEndif.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandEndif.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandEndif.java 2016-04-22 16:26:17.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandEndPartition.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandEndPartition.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandEndPartition.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandEndPartition.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandIf.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandIf.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandIf.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandIf.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandInnerConcurrent.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandInnerConcurrent.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandInnerConcurrent.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandInnerConcurrent.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkActivity.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkActivity.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkActivity.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkActivity.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.activitydiagram.command; import net.sourceforge.plantuml.Direction; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; @@ -57,8 +58,8 @@ import net.sourceforge.plantuml.cucadiagram.LinkDecor; import net.sourceforge.plantuml.cucadiagram.LinkType; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; public class CommandLinkActivity extends SingleLineCommand2 { @@ -77,16 +78,16 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("BACKCOLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp2(), // new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("ARROW_BODY1", "([-.]+)"), // new RegexLeaf("ARROW_STYLE1", - "(?:\\[((?:#\\w+|dotted|dashed|bold|hidden)(?:,#\\w+|,dotted|,dashed|,bold|,hidden)*)\\])?"), // + "(?:\\[((?:#\\w+|dotted|dashed|plain|bold|hidden)(?:,#\\w+|,dotted|,dashed|,plain|,bold|,hidden)*)\\])?"), // new RegexLeaf("ARROW_DIRECTION", "(\\*|left|right|up|down|le?|ri?|up?|do?)?"), // new RegexLeaf("ARROW_STYLE2", - "(?:\\[((?:#\\w+|dotted|dashed|bold|hidden)(?:,#\\w+|,dotted|,dashed|,bold|,hidden)*)\\])?"), // + "(?:\\[((?:#\\w+|dotted|dashed|plain|bold|hidden)(?:,#\\w+|,dotted|,dashed|,plain|,bold|,hidden)*)\\])?"), // new RegexLeaf("ARROW_BODY2", "([-.]*)\\>"), // new RegexLeaf("[%s]*"), // @@ -104,7 +105,7 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("PARTITION2", "(?:in[%s]+([%g][^%g]+[%g]|\\S+))?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("BACKCOLOR2", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp3(), // new RegexLeaf("$")); } @@ -118,7 +119,7 @@ entity1.setStereotype(new Stereotype(arg.get("STEREOTYPE", 0))); } if (arg.get("BACKCOLOR", 0) != null) { - entity1.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet() + entity1.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet() .getColorIfValid(arg.get("BACKCOLOR", 0))); } @@ -127,7 +128,7 @@ return CommandExecutionResult.error("No such activity"); } if (arg.get("BACKCOLOR2", 0) != null) { - entity2.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet() + entity2.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet() .getColorIfValid(arg.get("BACKCOLOR2", 0))); } if (arg.get("STEREOTYPE2", 0) != null) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkLongActivity2.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkLongActivity2.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkLongActivity2.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkLongActivity2.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,220 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.activitydiagram.command; - -import java.util.List; - -import net.sourceforge.plantuml.Direction; -import net.sourceforge.plantuml.Url; -import net.sourceforge.plantuml.UrlBuilder; -import net.sourceforge.plantuml.UrlBuilder.ModeUrl; -import net.sourceforge.plantuml.activitydiagram.ActivityDiagram; -import net.sourceforge.plantuml.classdiagram.command.CommandLinkClass; -import net.sourceforge.plantuml.command.CommandExecutionResult; -import net.sourceforge.plantuml.command.CommandMultilines2; -import net.sourceforge.plantuml.command.MultilinesStrategy; -import net.sourceforge.plantuml.command.regex.MyPattern; -import net.sourceforge.plantuml.command.regex.RegexConcat; -import net.sourceforge.plantuml.command.regex.RegexLeaf; -import net.sourceforge.plantuml.command.regex.RegexOptional; -import net.sourceforge.plantuml.command.regex.RegexOr; -import net.sourceforge.plantuml.command.regex.RegexResult; -import net.sourceforge.plantuml.cucadiagram.Code; -import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.cucadiagram.GroupType; -import net.sourceforge.plantuml.cucadiagram.IEntity; -import net.sourceforge.plantuml.cucadiagram.LeafType; -import net.sourceforge.plantuml.cucadiagram.Link; -import net.sourceforge.plantuml.cucadiagram.LinkDecor; -import net.sourceforge.plantuml.cucadiagram.LinkType; -import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorSet; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.StringUtils; - -public class CommandLinkLongActivity2 extends CommandMultilines2 { - - public CommandLinkLongActivity2() { - super(getRegexConcat(), MultilinesStrategy.REMOVE_STARTING_QUOTE); - } - - @Override - public String getPatternEnd() { - return "(?i)^[%s]*([^%g]*)[%g](?:[%s]+as[%s]+([\\p{L}0-9][\\p{L}0-9_.]*))?[%s]*(\\<\\<.*\\>\\>)?[%s]*(?:in[%s]+([%g][^%g]+[%g]|\\S+))?[%s]*(#\\w+)?$"; - } - - static RegexConcat getRegexConcat() { - return new RegexConcat(new RegexLeaf("^"), // - new RegexOptional(// - new RegexOr("FIRST", // - new RegexLeaf("STAR", "(\\(\\*(top)?\\))"), // - new RegexLeaf("CODE", "([\\p{L}0-9][\\p{L}0-9_.]*)"), // - new RegexLeaf("BAR", "(?:==+)[%s]*([\\p{L}0-9_.]+)[%s]*(?:==+)"), // - new RegexLeaf("QUOTED", "[%g]([^%g]+)[%g](?:[%s]+as[%s]+([\\p{L}0-9_.]+))?"))), // - new RegexLeaf("[%s]*"), // - new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)?"), // - new RegexLeaf("[%s]*"), // - new RegexLeaf("BACKCOLOR", "(#\\w+)?"), // - new RegexLeaf("[%s]*"), // - new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // - - new RegexLeaf("ARROW_BODY1", "([-.]+)"), // - new RegexLeaf("ARROW_STYLE1", - "(?:\\[((?:#\\w+|dotted|dashed|bold|hidden)(?:,#\\w+|,dotted|,dashed|,bold|,hidden)*)\\])?"), // - new RegexLeaf("ARROW_DIRECTION", "(\\*|left|right|up|down|le?|ri?|up?|do?)?"), // - new RegexLeaf("ARROW_STYLE2", - "(?:\\[((?:#\\w+|dotted|dashed|bold|hidden)(?:,#\\w+|,dotted|,dashed|,bold|,hidden)*)\\])?"), // - new RegexLeaf("ARROW_BODY2", "([-.]*)\\>"), // - - new RegexLeaf("[%s]*"), // - new RegexLeaf("BRACKET", "(?:\\[([^\\]*]+[^\\]]*)\\])?"), // - new RegexLeaf("[%s]*"), // - new RegexLeaf("DESC", "[%g]([^%g]*?)"), // - new RegexLeaf("[%s]*"), // - new RegexLeaf("$")); - } - - public CommandExecutionResult executeNow(final ActivityDiagram diagram, List lines) { - StringUtils.trim(lines, false); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); - - final IEntity entity1 = CommandLinkActivity.getEntity(diagram, line0, true); - - if (line0.get("STEREOTYPE", 0) != null) { - entity1.setStereotype(new Stereotype(line0.get("STEREOTYPE", 0))); - } - if (line0.get("BACKCOLOR", 0) != null) { - entity1.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet() - .getColorIfValid(line0.get("BACKCOLOR", 0))); - } - final StringBuilder sb = new StringBuilder(); - - final String desc0 = line0.get("DESC", 0); - Url urlActivity = null; - if (StringUtils.isNotEmpty(desc0)) { - final UrlBuilder urlBuilder = new UrlBuilder(diagram.getSkinParam().getValue("topurl"), ModeUrl.STRICT); - urlActivity = urlBuilder.getUrl(desc0); - if (urlActivity == null) { - sb.append(desc0); - sb.append("\\n"); - } - } - for (int i = 1; i < lines.size() - 1; i++) { - if (i == 1 && urlActivity == null) { - final UrlBuilder urlBuilder = new UrlBuilder(diagram.getSkinParam().getValue("topurl"), ModeUrl.STRICT); - urlActivity = urlBuilder.getUrl(lines.get(i)); - if (urlActivity != null) { - continue; - } - } - sb.append(lines.get(i)); - if (i < lines.size() - 2) { - sb.append("\\n"); - } - } - - final List lineLast = StringUtils.getSplit(MyPattern.cmpile(getPatternEnd()), - lines.get(lines.size() - 1)); - if (StringUtils.isNotEmpty(lineLast.get(0))) { - if (sb.length() > 0 && sb.toString().endsWith("\\n") == false) { - sb.append("\\n"); - } - sb.append(lineLast.get(0)); - } - - final String display = sb.toString(); - final Code code = Code.of(lineLast.get(1) == null ? display : lineLast.get(1)); - - String partition = null; - if (lineLast.get(3) != null) { - partition = lineLast.get(3); - partition = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(partition); - } - if (partition != null) { - diagram.getOrCreateGroup(Code.of(partition), Display.getWithNewlines(partition), GroupType.PACKAGE, - null); - } - final IEntity entity2 = diagram.createLeaf(code, Display.getWithNewlines(display), LeafType.ACTIVITY, null); - if (partition != null) { - diagram.endGroup(); - } - if (urlActivity != null) { - entity2.addUrl(urlActivity); - } - - if (lineLast.get(2) != null) { - entity2.setStereotype(new Stereotype(lineLast.get(2))); - } - if (lineLast.get(4) != null) { - entity2.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(lineLast.get(4))); - } - - if (entity1 == null || entity2 == null) { - return CommandExecutionResult.error("No such entity"); - } - - final String arrowBody1 = CommandLinkClass.notNull(line0.get("ARROW_BODY1", 0)); - final String arrowBody2 = CommandLinkClass.notNull(line0.get("ARROW_BODY2", 0)); - final String arrowDirection = CommandLinkClass.notNull(line0.get("ARROW_DIRECTION", 0)); - - final String arrow = StringUtils.manageArrowForCuca(arrowBody1 + arrowDirection + arrowBody2 + ">"); - - final int lenght = arrow.length() - 1; - - final Display linkLabel = Display.getWithNewlines(line0.get("BRACKET", 0)); - - LinkType type = new LinkType(LinkDecor.ARROW, LinkDecor.NONE); - if (arrow.contains(".")) { - type = type.getDotted(); - } - Link link = new Link(entity1, entity2, type, linkLabel, lenght); - final Direction direction = StringUtils.getArrowDirection(arrowBody1 + arrowDirection + arrowBody2 + ">"); - if (direction == Direction.LEFT || direction == Direction.UP) { - link = link.getInv(); - } - - if (line0.get("URL", 0) != null) { - final UrlBuilder urlBuilder = new UrlBuilder(diagram.getSkinParam().getValue("topurl"), ModeUrl.STRICT); - final Url urlLink = urlBuilder.getUrl(line0.get("URL", 0)); - link.setUrl(urlLink); - } - - CommandLinkClass.applyStyle(line0.getLazzy("ARROW_STYLE", 0), link); - diagram.addLink(link); - - return CommandExecutionResult.ok(); - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkLongActivity.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkLongActivity.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkLongActivity.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandLinkLongActivity.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,10 +37,13 @@ import java.util.List; import net.sourceforge.plantuml.Direction; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; import net.sourceforge.plantuml.activitydiagram.ActivityDiagram; +import net.sourceforge.plantuml.classdiagram.command.CommandLinkClass; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; import net.sourceforge.plantuml.command.MultilinesStrategy; @@ -59,7 +62,7 @@ import net.sourceforge.plantuml.cucadiagram.LinkDecor; import net.sourceforge.plantuml.cucadiagram.LinkType; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorType; public class CommandLinkLongActivity extends CommandMultilines2 { @@ -86,7 +89,15 @@ new RegexLeaf("BACKCOLOR", "(#\\w+)?"), // new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // - new RegexLeaf("ARROW", "([-=.]+(?:(left|right|up|down|le?|ri?|up?|do?)(?=[-=.]))?[-=.]*\\>)"), // + + new RegexLeaf("ARROW_BODY1", "([-.]+)"), // + new RegexLeaf("ARROW_STYLE1", + "(?:\\[((?:#\\w+|dotted|dashed|plain|bold|hidden)(?:,#\\w+|,dotted|,dashed|,plain|,bold|,hidden)*)\\])?"), // + new RegexLeaf("ARROW_DIRECTION", "(\\*|left|right|up|down|le?|ri?|up?|do?)?"), // + new RegexLeaf("ARROW_STYLE2", + "(?:\\[((?:#\\w+|dotted|dashed|plain|bold|hidden)(?:,#\\w+|,dotted|,dashed|,plain|,bold|,hidden)*)\\])?"), // + new RegexLeaf("ARROW_BODY2", "([-.]*)\\>"), // + new RegexLeaf("[%s]*"), // new RegexLeaf("BRACKET", "(?:\\[([^\\]*]+[^\\]]*)\\])?"), // new RegexLeaf("[%s]*"), // @@ -95,9 +106,9 @@ new RegexLeaf("$")); } - public CommandExecutionResult executeNow(final ActivityDiagram diagram, List lines) { - StringUtils.trim(lines, false); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); + public CommandExecutionResult executeNow(final ActivityDiagram diagram, BlocLines lines) { + lines = lines.trim(false); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); final IEntity entity1 = CommandLinkActivity.getEntity(diagram, line0, true); @@ -105,7 +116,7 @@ entity1.setStereotype(new Stereotype(line0.get("STEREOTYPE", 0))); } if (line0.get("BACKCOLOR", 0) != null) { - entity1.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet() + entity1.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet() .getColorIfValid(line0.get("BACKCOLOR", 0))); } final StringBuilder sb = new StringBuilder(); @@ -113,29 +124,29 @@ final String desc0 = line0.get("DESC", 0); Url urlActivity = null; if (StringUtils.isNotEmpty(desc0)) { - final UrlBuilder urlBuilder = new UrlBuilder(diagram.getSkinParam().getValue("topurl"), ModeUrl.STRICT); - urlActivity = urlBuilder.getUrl(desc0); + urlActivity = extractUrl(diagram, desc0); if (urlActivity == null) { sb.append(desc0); sb.append("\\n"); } } - for (int i = 1; i < lines.size() - 1; i++) { + int i = 0; + for (CharSequence cs : lines.subExtract(1, 1)) { + i++; if (i == 1 && urlActivity == null) { - final UrlBuilder urlBuilder = new UrlBuilder(diagram.getSkinParam().getValue("topurl"), ModeUrl.STRICT); - urlActivity = urlBuilder.getUrl(lines.get(i)); + urlActivity = extractUrl(diagram, cs); if (urlActivity != null) { continue; } } - sb.append(lines.get(i)); + sb.append(cs); if (i < lines.size() - 2) { sb.append("\\n"); } } - final List lineLast = StringUtils.getSplit(MyPattern.cmpile(getPatternEnd()), - lines.get(lines.size() - 1)); + final List lineLast = StringUtils.getSplit(MyPattern.cmpile(getPatternEnd()), lines.getLast499() + .toString()); if (StringUtils.isNotEmpty(lineLast.get(0))) { if (sb.length() > 0 && sb.toString().endsWith("\\n") == false) { sb.append("\\n"); @@ -152,8 +163,7 @@ partition = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(partition); } if (partition != null) { - diagram.getOrCreateGroup(Code.of(partition), Display.getWithNewlines(partition), GroupType.PACKAGE, - null); + diagram.getOrCreateGroup(Code.of(partition), Display.getWithNewlines(partition), GroupType.PACKAGE, null); } final IEntity entity2 = diagram.createLeaf(code, Display.getWithNewlines(display), LeafType.ACTIVITY, null); if (partition != null) { @@ -167,24 +177,29 @@ entity2.setStereotype(new Stereotype(lineLast.get(2))); } if (lineLast.get(4) != null) { - entity2.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(lineLast.get(4))); + entity2.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(lineLast.get(4))); } if (entity1 == null || entity2 == null) { return CommandExecutionResult.error("No such entity"); } - final String arrow = StringUtils.manageArrowForCuca(line0.get("ARROW", 0)); + final String arrowBody1 = CommandLinkClass.notNull(line0.get("ARROW_BODY1", 0)); + final String arrowBody2 = CommandLinkClass.notNull(line0.get("ARROW_BODY2", 0)); + final String arrowDirection = CommandLinkClass.notNull(line0.get("ARROW_DIRECTION", 0)); + + final String arrow = StringUtils.manageArrowForCuca(arrowBody1 + arrowDirection + arrowBody2 + ">"); + final int lenght = arrow.length() - 1; final Display linkLabel = Display.getWithNewlines(line0.get("BRACKET", 0)); LinkType type = new LinkType(LinkDecor.ARROW, LinkDecor.NONE); - if (line0.get("ARROW", 0).contains(".")) { + if (arrow.contains(".")) { type = type.getDotted(); } Link link = new Link(entity1, entity2, type, linkLabel, lenght); - final Direction direction = StringUtils.getArrowDirection(line0.get("ARROW", 0)); + final Direction direction = StringUtils.getArrowDirection(arrowBody1 + arrowDirection + arrowBody2 + ">"); if (direction == Direction.LEFT || direction == Direction.UP) { link = link.getInv(); } @@ -195,9 +210,15 @@ link.setUrl(urlLink); } + CommandLinkClass.applyStyle(line0.getLazzy("ARROW_STYLE", 0), link); diagram.addLink(link); return CommandExecutionResult.ok(); } + public Url extractUrl(final ActivityDiagram diagram, CharSequence string) { + final UrlBuilder urlBuilder = new UrlBuilder(diagram.getSkinParam().getValue("topurl"), ModeUrl.STRICT); + return urlBuilder.getUrl(string.toString()); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandPartition.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandPartition.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/command/CommandPartition.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/command/CommandPartition.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,7 @@ import java.util.List; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.activitydiagram.ActivityDiagram; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand; @@ -44,8 +45,7 @@ import net.sourceforge.plantuml.cucadiagram.GroupType; import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.IGroup; -import net.sourceforge.plantuml.graphic.HtmlColorSet; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorType; public class CommandPartition extends SingleLineCommand { @@ -61,7 +61,7 @@ currentPackage); final String color = arg.get(1); if (color != null) { - p.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color)); + p.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color)); } return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/ConditionalContext.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/ConditionalContext.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram/ConditionalContext.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram/ConditionalContext.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagram3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagram3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagram3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagram3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,42 +35,34 @@ package net.sourceforge.plantuml.activitydiagram3; import java.awt.geom.Dimension2D; -import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; -import java.util.List; +import net.sourceforge.plantuml.AnnotatedWorker; import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.FileFormatOption; -import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.Scale; import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.UmlDiagramType; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.activitydiagram3.ftile.BoxStyle; -import net.sourceforge.plantuml.activitydiagram3.ftile.EntityImageLegend; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlanes; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.core.DiagramDescription; import net.sourceforge.plantuml.core.DiagramDescriptionImpl; import net.sourceforge.plantuml.core.ImageData; import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.FontConfiguration; -import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockCompressed; import net.sourceforge.plantuml.graphic.TextBlockRecentred; import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.sequencediagram.NotePosition; import net.sourceforge.plantuml.skin.rose.Rose; -import net.sourceforge.plantuml.svek.DecorateEntityImage; -import net.sourceforge.plantuml.svek.DecorateTextBlock; import net.sourceforge.plantuml.ugraphic.ImageBuilder; -import net.sourceforge.plantuml.ugraphic.UFont; public class ActivityDiagram3 extends UmlDiagram { @@ -80,7 +72,7 @@ private SwimlaneStrategy swimlaneStrategy; - private final Swimlanes swinlanes = new Swimlanes(getSkinParam()); + private final Swimlanes swinlanes = new Swimlanes(getSkinParam(), getPragma()); private void manageSwimlaneStrategy() { if (swimlaneStrategy == null) { @@ -112,10 +104,10 @@ return swinlanes.nextLinkRenderer(); } - public void addActivity(Display activity, HtmlColor color, BoxStyle style, Url url) { + public void addActivity(Display activity, BoxStyle style, Url url, Colors colors) { manageSwimlaneStrategy(); - final InstructionSimple ins = new InstructionSimple(activity, color, nextLinkRenderer(), - swinlanes.getCurrentSwimlane(), style, url); + final InstructionSimple ins = new InstructionSimple(activity, nextLinkRenderer(), + swinlanes.getCurrentSwimlane(), style, url, colors); current().add(ins); setNextLinkRendererInternal(null); manageHasUrl(activity); @@ -148,6 +140,11 @@ current().add(new InstructionStop(swinlanes.getCurrentSwimlane(), nextLinkRenderer())); } + public void end() { + manageSwimlaneStrategy(); + current().add(new InstructionEnd(swinlanes.getCurrentSwimlane(), nextLinkRenderer())); + } + public DiagramDescription getDescription() { return new DiagramDescriptionImpl("activity3", getClass()); } @@ -157,16 +154,6 @@ return UmlDiagramType.ACTIVITY; } - private TextBlock addLegend(TextBlock original) { - final Display legend = getLegend(); - if (legend == null) { - return original; - } - final TextBlock text = EntityImageLegend.create(legend, getSkinParam()); - - return DecorateEntityImage.add(original, text, getLegendAlignment(), getLegendVerticalAlignment()); - } - @Override protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) throws IOException { @@ -175,10 +162,8 @@ // TextBlock result = swinlanes; TextBlock result = new TextBlockCompressed(swinlanes); result = new TextBlockRecentred(result); - result = addLegend(result); - result = addTitle(result); - result = addHeaderAndFooter(result); final ISkinParam skinParam = getSkinParam(); + result = new AnnotatedWorker(this, skinParam).addAdd(result); final Dimension2D dim = TextBlockUtils.getMinMax(result).getDimension(); final double margin = 10; final double dpiFactor = getDpiFactor(fileFormatOption, Dimension2DDouble.delta(dim, 2 * margin, 0)); @@ -186,9 +171,9 @@ final ImageBuilder imageBuilder = new ImageBuilder(skinParam.getColorMapper(), dpiFactor, getSkinParam() .getBackgroundColor(), fileFormatOption.isWithMetadata() ? getMetadata() : null, getWarningOrError(), margin, margin, getAnimation(), getSkinParam().handwritten()); - imageBuilder.addUDrawable(result); + imageBuilder.setUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormatOption.getFileFormat(), os); + return imageBuilder.writeImageTOBEMOVED(fileFormatOption, os); } @@ -203,43 +188,15 @@ return dpiFactor; } - private TextBlock addTitle(TextBlock original) { - final Display title = getTitle(); - if (title == null) { - return original; - } - final TextBlock text = TextBlockUtils.create(title, new FontConfiguration(getFont(FontParam.TITLE), - getFontColor(FontParam.TITLE, null), getSkinParam().getHyperlinkColor(), getSkinParam() - .useUnderlineForHyperlink()), HorizontalAlignment.CENTER, getSkinParam()); - - return new DecorateTextBlock(original, text, HorizontalAlignment.CENTER); - } - - private TextBlock addHeaderAndFooter(TextBlock original) { - final Display footer = getFooter(); - final Display header = getHeader(); - if (footer == null && header == null) { - return original; - } - final TextBlock textFooter = footer == null ? null : TextBlockUtils.create(footer, new FontConfiguration( - getFont(FontParam.FOOTER), getFontColor(FontParam.FOOTER, null), getSkinParam().getHyperlinkColor(), - getSkinParam().useUnderlineForHyperlink()), getFooterAlignment(), getSkinParam()); - final TextBlock textHeader = header == null ? null : TextBlockUtils.create(header, new FontConfiguration( - getFont(FontParam.HEADER), getFontColor(FontParam.HEADER, null), getSkinParam().getHyperlinkColor(), - getSkinParam().useUnderlineForHyperlink()), getHeaderAlignment(), getSkinParam()); - - return new DecorateTextBlock(original, textHeader, getHeaderAlignment(), textFooter, getFooterAlignment()); - } - - private final UFont getFont(FontParam fontParam) { - final ISkinParam skinParam = getSkinParam(); - return skinParam.getFont(fontParam, null, false); - } - - private final HtmlColor getFontColor(FontParam fontParam, Stereotype stereotype2) { - final ISkinParam skinParam = getSkinParam(); - return skinParam.getFontHtmlColor(fontParam, stereotype2); - } + // private final UFont getFont(FontParam fontParam) { + // final ISkinParam skinParam = getSkinParam(); + // return skinParam.getFont(null, false, fontParam); + // } + // + // private final HtmlColor getFontColor(FontParam fontParam, Stereotype stereotype2) { + // final ISkinParam skinParam = getSkinParam(); + // return skinParam.getFontHtmlColor(stereotype2, fontParam); + // } public void fork() { final InstructionFork instructionFork = new InstructionFork(current(), nextLinkRenderer()); @@ -250,7 +207,10 @@ public CommandExecutionResult forkAgain() { if (current() instanceof InstructionFork) { - ((InstructionFork) current()).forkAgain(); + final InstructionFork currentFork = (InstructionFork) current(); + currentFork.manageOutRendering(nextLinkRenderer()); + setNextLinkRendererInternal(null); + currentFork.forkAgain(); return CommandExecutionResult.ok(); } return CommandExecutionResult.error("Cannot find fork"); @@ -258,7 +218,10 @@ public CommandExecutionResult endFork() { if (current() instanceof InstructionFork) { - setCurrent(((InstructionFork) current()).getParent()); + final InstructionFork currentFork = (InstructionFork) current(); + currentFork.manageOutRendering(nextLinkRenderer()); + setNextLinkRendererInternal(null); + setCurrent(currentFork.getParent()); return CommandExecutionResult.ok(); } return CommandExecutionResult.error("Cannot find fork"); @@ -301,7 +264,10 @@ public CommandExecutionResult elseIf(Display test, Display whenThen, HtmlColor color) { if (current() instanceof InstructionIf) { - ((InstructionIf) current()).elseIf(test, whenThen, nextLinkRenderer(), color); + final boolean ok = ((InstructionIf) current()).elseIf(test, whenThen, nextLinkRenderer(), color); + if (ok == false) { + return CommandExecutionResult.error("You cannot put an elseIf here"); + } setNextLinkRendererInternal(null); return CommandExecutionResult.ok(); } @@ -321,6 +287,7 @@ } public CommandExecutionResult endif() { + // System.err.println("Activity3::endif"); if (current() instanceof InstructionIf) { ((InstructionIf) current()).endif(nextLinkRenderer()); setNextLinkRendererInternal(null); @@ -381,9 +348,10 @@ return CommandExecutionResult.ok(); } - public void startGroup(Display name, HtmlColor backColor, HtmlColor titleColor) { + public void startGroup(Display name, HtmlColor backColor, HtmlColor titleColor, HtmlColor borderColor) { manageSwimlaneStrategy(); - final InstructionGroup instructionGroup = new InstructionGroup(current(), name, backColor, titleColor); + final InstructionGroup instructionGroup = new InstructionGroup(current(), name, backColor, titleColor, + swinlanes.getCurrentSwimlane(), borderColor); current().add(instructionGroup); setCurrent(instructionGroup); } @@ -397,14 +365,18 @@ } private void setNextLinkRendererInternal(LinkRendering link) { + // System.err.println("setNextLinkRendererInternal=" + link); swinlanes.setNextLinkRenderer(link); } private void setNextLink(LinkRendering linkRenderer) { - if (current() instanceof InstructionList) { - final Instruction last = ((InstructionList) current()).getLast(); + // System.err.println("setNextLink=" + linkRenderer); + if (current() instanceof InstructionCollection) { + final Instruction last = ((InstructionCollection) current()).getLast(); if (last instanceof InstructionWhile) { ((InstructionWhile) last).afterEndwhile(linkRenderer); + } else if (last instanceof InstructionIf) { + ((InstructionIf) last).afterEndwhile(linkRenderer); } } this.setNextLinkRendererInternal(linkRenderer); @@ -413,6 +385,11 @@ private final Rose rose = new Rose(); public void setLabelNextArrow(Display label) { + if (current() instanceof InstructionWhile && ((InstructionWhile) current()).getLast() == null) { + ((InstructionWhile) current()).overwriteYes(label); + return; + } + if (nextLinkRenderer() == null) { final HtmlColor arrowColor = rose.getHtmlColor(getSkinParam(), ColorParam.activityArrow); this.setNextLink(new LinkRendering(arrowColor)); @@ -429,7 +406,10 @@ } public CommandExecutionResult addNote(Display note, NotePosition position) { - current().addNote(note, position); + final boolean ok = current().addNote(note, position); + if (ok == false) { + return CommandExecutionResult.error("Cannot add note here"); + } manageHasUrl(note); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagramFactory3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagramFactory3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagramFactory3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagramFactory3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,6 +45,7 @@ import net.sourceforge.plantuml.activitydiagram3.command.CommandElse3; import net.sourceforge.plantuml.activitydiagram3.command.CommandElseIf2; import net.sourceforge.plantuml.activitydiagram3.command.CommandElseLegacy1; +import net.sourceforge.plantuml.activitydiagram3.command.CommandEnd3; import net.sourceforge.plantuml.activitydiagram3.command.CommandEndPartition3; import net.sourceforge.plantuml.activitydiagram3.command.CommandEndif3; import net.sourceforge.plantuml.activitydiagram3.command.CommandFork3; @@ -54,7 +55,6 @@ import net.sourceforge.plantuml.activitydiagram3.command.CommandGroup3; import net.sourceforge.plantuml.activitydiagram3.command.CommandGroupEnd3; import net.sourceforge.plantuml.activitydiagram3.command.CommandIf2; -import net.sourceforge.plantuml.activitydiagram3.command.CommandIf2Multilines; import net.sourceforge.plantuml.activitydiagram3.command.CommandIf4; import net.sourceforge.plantuml.activitydiagram3.command.CommandIfLegacy1; import net.sourceforge.plantuml.activitydiagram3.command.CommandKill3; @@ -65,17 +65,18 @@ import net.sourceforge.plantuml.activitydiagram3.command.CommandPartition3; import net.sourceforge.plantuml.activitydiagram3.command.CommandRepeat3; import net.sourceforge.plantuml.activitydiagram3.command.CommandRepeatWhile3; +import net.sourceforge.plantuml.activitydiagram3.command.CommandRepeatWhile3Multilines; import net.sourceforge.plantuml.activitydiagram3.command.CommandSplit3; import net.sourceforge.plantuml.activitydiagram3.command.CommandSplitAgain3; import net.sourceforge.plantuml.activitydiagram3.command.CommandSplitEnd3; import net.sourceforge.plantuml.activitydiagram3.command.CommandStart3; import net.sourceforge.plantuml.activitydiagram3.command.CommandStop3; -import net.sourceforge.plantuml.activitydiagram3.command.CommandStopLegacy1; import net.sourceforge.plantuml.activitydiagram3.command.CommandSwimlane; import net.sourceforge.plantuml.activitydiagram3.command.CommandSwimlane2; import net.sourceforge.plantuml.activitydiagram3.command.CommandWhile3; import net.sourceforge.plantuml.activitydiagram3.command.CommandWhileEnd3; import net.sourceforge.plantuml.command.Command; +import net.sourceforge.plantuml.command.CommandDecoratorMultine; import net.sourceforge.plantuml.command.CommandFootboxIgnored; import net.sourceforge.plantuml.command.UmlDiagramFactory; @@ -99,14 +100,16 @@ cmds.add(new CommandActivity3()); cmds.add(new CommandIf4()); cmds.add(new CommandIf2()); - cmds.add(new CommandIf2Multilines()); + cmds.add(new CommandDecoratorMultine(new CommandIf2())); cmds.add(new CommandIfLegacy1()); cmds.add(new CommandElseIf2()); cmds.add(new CommandElse3()); + cmds.add(new CommandDecoratorMultine(new CommandElse3())); cmds.add(new CommandElseLegacy1()); cmds.add(new CommandEndif3()); cmds.add(new CommandRepeat3()); cmds.add(new CommandRepeatWhile3()); + cmds.add(new CommandRepeatWhile3Multilines()); cmds.add(new CommandWhile3()); cmds.add(new CommandWhileEnd3()); cmds.add(new CommandFork3()); @@ -115,11 +118,11 @@ cmds.add(new CommandSplit3()); cmds.add(new CommandSplitAgain3()); cmds.add(new CommandSplitEnd3()); -// cmds.add(new CommandGroup3()); -// cmds.add(new CommandGroupEnd3()); + // cmds.add(new CommandGroup3()); + // cmds.add(new CommandGroupEnd3()); cmds.add(new CommandStart3()); cmds.add(new CommandStop3()); - cmds.add(new CommandStopLegacy1()); + cmds.add(new CommandEnd3()); cmds.add(new CommandKill3()); cmds.add(new CommandLink3()); cmds.add(new CommandNote3()); @@ -130,7 +133,7 @@ cmds.add(new CommandLabel()); cmds.add(new CommandGoto()); - + cmds.add(new CommandDecoratorMultine(new CommandElseIf2())); return cmds; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/Branch.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/Branch.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/Branch.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/Branch.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -49,7 +49,6 @@ private final Display labelTest; private final Display labelPositive; private final HtmlColor color; - private LinkRendering inlinkRendering; private Ftile ftile; @@ -59,6 +58,12 @@ } public Branch(Swimlane swimlane, Display labelPositive, Display labelTest, HtmlColor color) { + if (labelPositive == null) { + throw new IllegalArgumentException(); + } + if (labelTest == null) { + throw new IllegalArgumentException(); + } this.list = new InstructionList(swimlane); this.labelTest = labelTest; this.labelPositive = labelPositive; @@ -73,8 +78,8 @@ return list.kill(); } - public void addNote(Display note, NotePosition position) { - list.addNote(note, position); + public boolean addNote(Display note, NotePosition position) { + return list.addNote(note, position); } public final void setInlinkRendering(LinkRendering inlinkRendering) { @@ -91,7 +96,7 @@ public final Display getLabelPositive() { final LinkRendering in = ftile.getInLinkRendering(); - if (in != null && in.getDisplay() != null) { + if (in != null && Display.isNull(in.getDisplay()) == false) { return in.getDisplay(); } return labelPositive; @@ -121,4 +126,8 @@ return list.isEmpty(); } + public Instruction getLast() { + return list.getLast(); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivity3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivity3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivity3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivity3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -46,7 +46,9 @@ import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; public class CommandActivity3 extends SingleLineCommand2 { @@ -59,13 +61,18 @@ static RegexConcat getRegexConcat() { return new RegexConcat(new RegexLeaf("^"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // - new RegexLeaf("COLOR", "(?::?(" + HtmlColorUtils.COLOR_REGEXP + "))?"), // + color().getRegex(), // + new RegexLeaf("[%s]*"), // new RegexLeaf(":"), // new RegexLeaf("LABEL", "(.*)"), // new RegexLeaf("STYLE", ENDING_GROUP), // new RegexLeaf("$")); } + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } + @Override protected CommandExecutionResult executeArg(ActivityDiagram3 diagram, RegexResult arg) { @@ -77,9 +84,9 @@ url = urlBuilder.getUrl(arg.get("URL", 0)); } - final HtmlColor color = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)); + final Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); final BoxStyle style = BoxStyle.fromChar(arg.get("STYLE", 0).charAt(0)); - diagram.addActivity(Display.getWithNewlines(arg.get("LABEL", 0)), color, style, url); + diagram.addActivity(Display.getWithNewlines(arg.get("LABEL", 0)), style, url, colors); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivityLegacy1.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivityLegacy1.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivityLegacy1.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivityLegacy1.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,6 +42,7 @@ import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.color.Colors; public class CommandActivityLegacy1 extends SingleLineCommand2 { @@ -58,7 +59,7 @@ @Override protected CommandExecutionResult executeArg(ActivityDiagram3 diagram, RegexResult arg) { - diagram.addActivity(Display.getWithNewlines(arg.get("LABEL", 0)), null, BoxStyle.PLAIN, null); + diagram.addActivity(Display.getWithNewlines(arg.get("LABEL", 0)), BoxStyle.PLAIN, null, Colors.empty()); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivityLong3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivityLong3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivityLong3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandActivityLong3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,20 +34,19 @@ */ package net.sourceforge.plantuml.activitydiagram3.command; -import java.util.List; - +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.activitydiagram3.ActivityDiagram3; import net.sourceforge.plantuml.activitydiagram3.ftile.BoxStyle; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; import net.sourceforge.plantuml.command.MultilinesStrategy; import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; -import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; public class CommandActivityLong3 extends CommandMultilines2 { @@ -60,44 +59,26 @@ return "^(.*)" + CommandActivity3.ENDING_GROUP + "$"; } + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } + static RegexConcat getRegexConcat() { return new RegexConcat(new RegexLeaf("^"), // - new RegexLeaf("COLOR", "(?::?(" + HtmlColorUtils.COLOR_REGEXP + "))?"), // + color().getRegex(), // new RegexLeaf(":"), // new RegexLeaf("DATA", "(.*)"), // new RegexLeaf("$")); } - public CommandExecutionResult executeNow(ActivityDiagram3 diagram, List lines) { - lines = StringUtils.removeEmptyColumns(lines); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); - final HtmlColor color = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0)); - final BoxStyle style = BoxStyle.fromChar(getLastChar(lines)); - removeStarting(lines, line0.get("DATA", 0)); - removeEnding(lines); - diagram.addActivity(Display.create(lines), color, style, null); + public CommandExecutionResult executeNow(ActivityDiagram3 diagram, BlocLines lines) { + lines = lines.removeEmptyColumns(); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); + final Colors colors = color().getColor(line0, diagram.getSkinParam().getIHtmlColorSet()); + // final HtmlColor color = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0)); + final BoxStyle style = BoxStyle.fromChar(lines.getLastChar()); + lines = lines.removeStartingAndEnding2(line0.get("DATA", 0)); + diagram.addActivity(lines.toDisplay(), style, null, colors); return CommandExecutionResult.ok(); } - - private char getLastChar(List lines) { - final String s = lines.get(lines.size() - 1); - return s.charAt(s.length() - 1); - } - - private void removeStarting(List lines, String data) { - if (lines.size() == 0) { - return; - } - lines.set(0, data); - } - - private void removeEnding(List lines) { - if (lines.size() == 0) { - return; - } - final int n = lines.size() - 1; - final String s = lines.get(n); - lines.set(n, s.substring(0, s.length() - 1)); - } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandArrow3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandArrow3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandArrow3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandArrow3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandArrowLong3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandArrowLong3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandArrowLong3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandArrowLong3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,7 +36,9 @@ import java.util.List; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.activitydiagram3.ActivityDiagram3; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; import net.sourceforge.plantuml.command.MultilinesStrategy; @@ -46,7 +48,6 @@ import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.StringUtils; public class CommandArrowLong3 extends CommandMultilines2 { @@ -69,31 +70,30 @@ new RegexLeaf("$")); } - public CommandExecutionResult executeNow(ActivityDiagram3 diagram, List lines) { - lines = StringUtils.removeEmptyColumns(lines); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); + public CommandExecutionResult executeNow(ActivityDiagram3 diagram, BlocLines lines) { + lines = lines.removeEmptyColumns(); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); final HtmlColor color = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0)); diagram.setColorNextArrow(color); - removeStarting(lines, line0.get("LABEL", 0)); - removeEnding(lines); - diagram.setLabelNextArrow(Display.create(lines)); + lines = lines.removeStartingAndEnding2(line0.get("LABEL", 0)); + diagram.setLabelNextArrow(lines.toDisplay()); return CommandExecutionResult.ok(); } - private void removeStarting(List lines, String data) { + private void removeStarting(List lines, String data) { if (lines.size() == 0) { return; } - lines.set(0, data); + lines.set(0, (CS)data); } - private void removeEnding(List lines) { + private void removeEnding(List lines) { if (lines.size() == 0) { return; } final int n = lines.size() - 1; - final String s = lines.get(n); - lines.set(n, s.substring(0, s.length() - 1)); + final CharSequence s = lines.get(n); + lines.set(n, (CS)s.subSequence(0, s.length() - 1)); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElse3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElse3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElse3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElse3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElseIf2.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElseIf2.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElseIf2.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElseIf2.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,8 +42,7 @@ import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorSet; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; public class CommandElseIf2 extends SingleLineCommand2 { @@ -53,7 +52,7 @@ static RegexConcat getRegexConcat() { return new RegexConcat(new RegexLeaf("^"), // - new RegexLeaf("COLOR", "(?:(" + HtmlColorUtils.COLOR_REGEXP + "):)?"), // + ColorParser.exp4(), // new RegexLeaf("else[%s]*if"), // new RegexLeaf("[%s]*"), // new RegexLeaf("TEST", "\\((.*?)\\)"), // diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElseLegacy1.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElseLegacy1.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElseLegacy1.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandElseLegacy1.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEnd3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEnd3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEnd3.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEnd3.java 2016-04-22 16:26:18.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.command; + +import net.sourceforge.plantuml.activitydiagram3.ActivityDiagram3; +import net.sourceforge.plantuml.command.CommandExecutionResult; +import net.sourceforge.plantuml.command.SingleLineCommand2; +import net.sourceforge.plantuml.command.regex.RegexConcat; +import net.sourceforge.plantuml.command.regex.RegexLeaf; +import net.sourceforge.plantuml.command.regex.RegexResult; + +public class CommandEnd3 extends SingleLineCommand2 { + + public CommandEnd3() { + super(getRegexConcat()); + } + + static RegexConcat getRegexConcat() { + return new RegexConcat(// + new RegexLeaf("^"), // + new RegexLeaf("end"), // + new RegexLeaf(";?$")); + } + + @Override + protected CommandExecutionResult executeArg(ActivityDiagram3 diagram, RegexResult arg) { + diagram.end(); + return CommandExecutionResult.ok(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndif3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndif3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndif3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndif3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndPartition3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndPartition3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndPartition3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndPartition3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandFork3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandFork3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandFork3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandFork3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandForkAgain3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandForkAgain3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandForkAgain3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandForkAgain3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandForkEnd3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandForkEnd3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandForkEnd3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandForkEnd3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGoto.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGoto.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGoto.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGoto.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGroup3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGroup3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGroup3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGroup3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -58,7 +58,7 @@ @Override protected CommandExecutionResult executeArg(ActivityDiagram3 diagram, RegexResult arg) { - diagram.startGroup(Display.getWithNewlines(arg.get("NAME", 0)), null, null); + diagram.startGroup(Display.getWithNewlines(arg.get("NAME", 0)), null, null, null); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGroupEnd3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGroupEnd3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGroupEnd3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandGroupEnd3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf2.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf2.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf2.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf2.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; public class CommandIf2 extends SingleLineCommand2 { @@ -52,7 +52,7 @@ static RegexConcat getRegexConcat() { return new RegexConcat(new RegexLeaf("^"), // - new RegexLeaf("COLOR", "(?:(" + HtmlColorUtils.COLOR_REGEXP + "):)?"), // + ColorParser.exp4(), // new RegexLeaf("if"), // new RegexLeaf("[%s]*"), // new RegexLeaf("TEST", "\\((.*?)\\)"), // diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf2Multilines.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf2Multilines.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf2Multilines.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf2Multilines.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.activitydiagram3.command; - -import java.util.List; - -import net.sourceforge.plantuml.activitydiagram3.ActivityDiagram3; -import net.sourceforge.plantuml.command.CommandExecutionResult; -import net.sourceforge.plantuml.command.CommandMultilines2; -import net.sourceforge.plantuml.command.MultilinesStrategy; -import net.sourceforge.plantuml.command.regex.MyPattern; -import net.sourceforge.plantuml.command.regex.RegexConcat; -import net.sourceforge.plantuml.command.regex.RegexLeaf; -import net.sourceforge.plantuml.command.regex.RegexResult; -import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.StringUtils; - -public class CommandIf2Multilines extends CommandMultilines2 { - - public CommandIf2Multilines() { - super(getRegexConcat(), MultilinesStrategy.REMOVE_STARTING_QUOTE); - } - - @Override - public String getPatternEnd() { - return "(?i)^(.*?)\\)[%s]*(?:then[%s]*(?:\\((.+?)\\))?)?;?$"; - } - - static RegexConcat getRegexConcat() { - return new RegexConcat(new RegexLeaf("^"), // - new RegexLeaf("COLOR", "(?:(" + HtmlColorUtils.COLOR_REGEXP + "):)?"), // - new RegexLeaf("if"), // - new RegexLeaf("[%s]*"), // - new RegexLeaf("\\("), // - new RegexLeaf("TEST", "([^)]*)$")); - } - - @Override - public CommandExecutionResult executeNow(ActivityDiagram3 diagram, List lines) { - StringUtils.trim(lines, false); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); - final List lineLast = StringUtils.getSplit(MyPattern.cmpile(getPatternEnd()), - lines.get(lines.size() - 1)); - - final HtmlColor color = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0)); - - final String test = line0.get("TEST", 0); - Display testDisplay = Display.getWithNewlines(test); - for (int i = 1; i < lines.size() - 1; i++) { - testDisplay = testDisplay.add(lines.get(i)); - } - final String trailTest = lineLast.get(0); - if (StringUtils.isEmpty(trailTest) == false) { - testDisplay = testDisplay.add(trailTest); - } - - diagram.startIf(testDisplay, Display.getWithNewlines(lineLast.get(1)), color); - return CommandExecutionResult.ok(); - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf4.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf4.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf4.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIf4.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; public class CommandIf4 extends SingleLineCommand2 { @@ -52,7 +52,7 @@ static RegexConcat getRegexConcat() { return new RegexConcat(new RegexLeaf("^"), // - new RegexLeaf("COLOR", "(?:(" + HtmlColorUtils.COLOR_REGEXP + "):)?"), // + ColorParser.exp4(), // new RegexLeaf("if"), // new RegexLeaf("[%s]*"), // new RegexLeaf("TEST", "\\((.*?)\\)"), // diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIfLegacy1.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIfLegacy1.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIfLegacy1.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandIfLegacy1.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandKill3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandKill3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandKill3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandKill3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandLabel.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandLabel.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandLabel.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandLabel.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandLink3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandLink3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandLink3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandLink3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNolink.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNolink.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNolink.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNolink.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNote3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNote3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNote3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNote3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNoteLong3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNoteLong3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNoteLong3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandNoteLong3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,7 +36,9 @@ import java.util.List; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.activitydiagram3.ActivityDiagram3; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; import net.sourceforge.plantuml.command.MultilinesStrategy; @@ -45,7 +47,6 @@ import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.sequencediagram.NotePosition; -import net.sourceforge.plantuml.StringUtils; public class CommandNoteLong3 extends CommandMultilines2 { @@ -57,12 +58,13 @@ return "(?i)^end[%s]?note$"; } - public CommandExecutionResult executeNow(final ActivityDiagram3 diagram, List lines) { - // final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); - final List in = StringUtils.removeEmptyColumns(lines.subList(1, lines.size() - 1)); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); + public CommandExecutionResult executeNow(final ActivityDiagram3 diagram, BlocLines lines) { + // final List in = StringUtils.removeEmptyColumns2(lines.subList(1, lines.size() - 1)); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); final NotePosition position = getPosition(line0.get("POSITION", 0)); - final Display note = Display.create(in); + final Display note = lines.toDisplay(); return diagram.addNote(note, position); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandPartition3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandPartition3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandPartition3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandPartition3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,8 @@ */ package net.sourceforge.plantuml.activitydiagram3.command; +import net.sourceforge.plantuml.ColorParam; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.activitydiagram3.ActivityDiagram3; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand2; @@ -42,7 +44,7 @@ import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; public class CommandPartition3 extends SingleLineCommand2 { @@ -63,12 +65,26 @@ @Override protected CommandExecutionResult executeArg(ActivityDiagram3 diagram, RegexResult arg) { final String partitionTitle = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(arg.get("NAME", 0)); - final HtmlColor backColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("BACKCOLOR", 0)); final HtmlColor titleColor = diagram.getSkinParam().getIHtmlColorSet() .getColorIfValid(arg.get("TITLECOLOR", 0)); - diagram.startGroup(Display.getWithNewlines(partitionTitle), backColor, titleColor); + + final HtmlColor backColorInSkinparam = diagram.getSkinParam().getHtmlColor(ColorParam.partitionBackground, + null, false); + final HtmlColor backColor; + if (backColorInSkinparam == null) { + backColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("BACKCOLOR", 0)); + } else { + backColor = backColorInSkinparam; + + } + + HtmlColor borderColor = diagram.getSkinParam().getHtmlColor(ColorParam.partitionBorder, null, false); + if (borderColor == null) { + borderColor = HtmlColorUtils.BLACK; + } + + diagram.startGroup(Display.getWithNewlines(partitionTitle), backColor, titleColor, borderColor); return CommandExecutionResult.ok(); } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeat3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeat3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeat3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeat3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,7 +41,7 @@ import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; public class CommandRepeat3 extends SingleLineCommand2 { @@ -51,7 +51,7 @@ static RegexConcat getRegexConcat() { return new RegexConcat(new RegexLeaf("^"), // - new RegexLeaf("COLOR", "(?:(" + HtmlColorUtils.COLOR_REGEXP + "):)?"), // + ColorParser.exp4(), // new RegexLeaf("repeat"), // new RegexLeaf(";?$")); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeatWhile3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeatWhile3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeatWhile3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeatWhile3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeatWhile3Multilines.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeatWhile3Multilines.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeatWhile3Multilines.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandRepeatWhile3Multilines.java 2016-04-22 16:26:18.000000000 +0000 @@ -0,0 +1,113 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.command; + +import java.util.List; +import java.util.regex.Pattern; + +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.activitydiagram3.ActivityDiagram3; +import net.sourceforge.plantuml.command.BlocLines; +import net.sourceforge.plantuml.command.CommandExecutionResult; +import net.sourceforge.plantuml.command.CommandMultilines3; +import net.sourceforge.plantuml.command.MultilinesStrategy; +import net.sourceforge.plantuml.command.regex.MyPattern; +import net.sourceforge.plantuml.command.regex.RegexConcat; +import net.sourceforge.plantuml.command.regex.RegexLeaf; +import net.sourceforge.plantuml.command.regex.RegexResult; +import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.HtmlColor; + +public class CommandRepeatWhile3Multilines extends CommandMultilines3 { + + public CommandRepeatWhile3Multilines() { + super(getRegexConcat(), MultilinesStrategy.REMOVE_STARTING_QUOTE); + } + + @Override + public RegexConcat getPatternEnd2() { + return new RegexConcat(// + new RegexLeaf("TEST1", "(.*)"), new RegexLeaf("\\)"), // + new RegexLeaf(";?$")); + } + + static RegexConcat getRegexConcat() { + return new RegexConcat(// + new RegexLeaf("^"), // + new RegexLeaf("repeat[%s]?while"), // + new RegexLeaf("[%s]*"), // + new RegexLeaf("\\("), // + new RegexLeaf("TEST1", "(.*)$")); + } + + @Override + public CommandExecutionResult executeNow(ActivityDiagram3 diagram, BlocLines lines) { + lines = lines.trim(false); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); + final RegexResult lineLast = getPatternEnd2().matcher(lines.getLast499().toString()); + + // System.err.println("line0=" + line0); + // System.err.println("linesLast=" + lineLast); + + // + // final HtmlColor color = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0)); + + final String test = line0.get("TEST1", 0); + Display testDisplay = Display.getWithNewlines(test); + for (CharSequence s : lines.subExtract(1, 1)) { + testDisplay = testDisplay.add(s); + } + final String trailTest = lineLast.get("TEST1", 0); + if (StringUtils.isEmpty(trailTest) == false) { + testDisplay = testDisplay.add(trailTest); + } + + Display yes = Display.NULL;// Display.getWithNewlines("arg.getLazzy(\"WHEN\", 0)"); + final Display out = Display.NULL; // Display.getWithNewlines("arg.getLazzy(\"OUT\", 0)"); + final HtmlColor linkColor = null; // diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", + // 0)); + final Display linkLabel = Display.NULL; // Display.getWithNewlines("arg.get(\"LABEL\", 0)"); + final List splitted = testDisplay.splitMultiline(MyPattern.cmpile("\\)[%s]*(is|equals?)[%s]*\\(", + Pattern.CASE_INSENSITIVE)); + if (splitted.size() == 2) { + testDisplay = splitted.get(0); + yes = splitted.get(1); + + } + + return diagram.repeatWhile(testDisplay, yes, out, linkLabel, linkColor); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplit3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplit3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplit3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplit3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplitAgain3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplitAgain3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplitAgain3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplitAgain3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplitEnd3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplitEnd3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplitEnd3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSplitEnd3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStart3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStart3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStart3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStart3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStop3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStop3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStop3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStop3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -56,11 +56,7 @@ @Override protected CommandExecutionResult executeArg(ActivityDiagram3 diagram, RegexResult arg) { - // if (getSystem().getLastEntityConsulted() == null) { - // return CommandExecutionResult.error("No if for this endif"); - // } diagram.stop(); - return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStopLegacy1.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStopLegacy1.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStopLegacy1.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandStopLegacy1.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.activitydiagram3.command; - -import net.sourceforge.plantuml.activitydiagram3.ActivityDiagram3; -import net.sourceforge.plantuml.command.CommandExecutionResult; -import net.sourceforge.plantuml.command.SingleLineCommand2; -import net.sourceforge.plantuml.command.regex.RegexConcat; -import net.sourceforge.plantuml.command.regex.RegexLeaf; -import net.sourceforge.plantuml.command.regex.RegexResult; - -public class CommandStopLegacy1 extends SingleLineCommand2 { - - public CommandStopLegacy1() { - super(getRegexConcat()); - } - - static RegexConcat getRegexConcat() { - return new RegexConcat(// - new RegexLeaf("^"), // - new RegexLeaf("end"), // - new RegexLeaf(";?$")); - } - - @Override - protected CommandExecutionResult executeArg(ActivityDiagram3 diagram, RegexResult arg) { - // if (getSystem().getLastEntityConsulted() == null) { - // return CommandExecutionResult.error("No if for this endif"); - // } - diagram.stop(); - - return CommandExecutionResult.ok(); - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSwimlane2.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSwimlane2.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSwimlane2.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSwimlane2.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; public class CommandSwimlane2 extends SingleLineCommand2 { @@ -53,7 +53,7 @@ static RegexConcat getRegexConcat() { return new RegexConcat(new RegexLeaf("^"), // new RegexLeaf("swimlane[%s]+"), // - new RegexLeaf("COLOR", "(?:(" + HtmlColorUtils.COLOR_REGEXP + "))?"), // + ColorParser.exp7(), // new RegexLeaf("[%s]*"), // new RegexLeaf("SWIMLANE", "([^|]+)"), // new RegexLeaf("LABEL", "(?:[%s]+as[%s]+([^|]+))?"), // diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSwimlane.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSwimlane.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSwimlane.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandSwimlane.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; public class CommandSwimlane extends SingleLineCommand2 { @@ -53,7 +53,7 @@ static RegexConcat getRegexConcat() { return new RegexConcat(new RegexLeaf("^"), // new RegexLeaf("\\|"), // - new RegexLeaf("COLOR", "(?:(" + HtmlColorUtils.COLOR_REGEXP + ")\\|)?"), // + ColorParser.exp6(), // new RegexLeaf("SWIMLANE", "([^|]+)"), // new RegexLeaf("\\|"), // new RegexLeaf("LABEL", "([^|]+)?"), // diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandWhile3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandWhile3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandWhile3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandWhile3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,8 +43,7 @@ import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorSet; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; public class CommandWhile3 extends SingleLineCommand2 { @@ -55,7 +54,7 @@ static RegexConcat getRegexConcat() { return new RegexConcat(// new RegexLeaf("^"), // - new RegexLeaf("COLOR", "(?:(" + HtmlColorUtils.COLOR_REGEXP + "):)?"), // + ColorParser.exp4(), // new RegexLeaf("while"), // new RegexLeaf("TEST", "[%s]*\\((.+?)\\)"), // new RegexOptional(new RegexConcat(// diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandWhileEnd3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandWhileEnd3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/command/CommandWhileEnd3.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/command/CommandWhileEnd3.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/AbstractConnection.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/AbstractConnection.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/AbstractConnection.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/AbstractConnection.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/AbstractFtile.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/AbstractFtile.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/AbstractFtile.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/AbstractFtile.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,10 +38,11 @@ import java.util.Collections; import net.sourceforge.plantuml.activitydiagram3.LinkRendering; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.UTranslate; -public abstract class AbstractFtile implements Ftile { +public abstract class AbstractFtile extends AbstractTextBlock implements Ftile { private final boolean shadowing; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Arrows.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Arrows.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Arrows.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Arrows.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/BoxStyle.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/BoxStyle.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/BoxStyle.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/BoxStyle.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/CollisionDetector.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/CollisionDetector.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/CollisionDetector.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/CollisionDetector.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,8 +35,6 @@ package net.sourceforge.plantuml.activitydiagram3.ftile; import java.awt.geom.Line2D; -import java.io.IOException; -import java.io.OutputStream; import java.util.ArrayList; import java.util.List; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/ConnectionCross.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/ConnectionCross.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/ConnectionCross.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/ConnectionCross.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -52,10 +52,12 @@ final Swimlane swimlane1 = getFtile1().getSwimlaneOut(); final Swimlane swimlane2 = getFtile2().getSwimlaneIn(); if (swimlane1 == null) { - throw new IllegalStateException("" + getFtile1().getClass()); + return; + // throw new IllegalStateException("" + getFtile1().getClass()); } if (swimlane2 == null) { - throw new IllegalStateException("" + getFtile2().getClass()); + return; + // throw new IllegalStateException("" + getFtile2().getClass()); } conn.drawTranslate(ug, swimlane1.getTranslate(), swimlane2.getTranslate()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Connection.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Connection.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Connection.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Connection.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/ConnectionTranslatable.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/ConnectionTranslatable.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/ConnectionTranslatable.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/ConnectionTranslatable.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Diamond.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Diamond.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Diamond.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Diamond.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,6 +41,7 @@ import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; @@ -50,12 +51,11 @@ import net.sourceforge.plantuml.skin.rose.Rose; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; -import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UPolygon; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class EntityImageLegend implements TextBlock { +public class EntityImageLegend extends AbstractTextBlock implements TextBlock { private final int cornersize = 10; private final HtmlColor noteBackgroundColor; @@ -71,13 +71,10 @@ final Rose rose = new Rose(); noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.legendBackground); - borderColor = rose.getHtmlColor(skinParam, ColorParam.legendBorder); - final HtmlColor fontColor = rose.getFontColor(skinParam, FontParam.LEGEND); - final UFont fontNote = skinParam.getFont(FontParam.LEGEND, null, false); - this.textBlock = TextBlockUtils.create(note, new FontConfiguration(fontNote, fontColor, - skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()), HorizontalAlignment.LEFT, skinParam); + this.textBlock = note.create(new FontConfiguration(skinParam, FontParam.LEGEND, null), + HorizontalAlignment.LEFT, skinParam); } public static TextBlock create(Display legend, ISkinParam skinParam) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileAssemblySimple.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileAssemblySimple.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileAssemblySimple.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileAssemblySimple.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,11 +41,12 @@ import java.util.Set; import net.sourceforge.plantuml.activitydiagram3.LinkRendering; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class FtileAssemblySimple implements Ftile { +public class FtileAssemblySimple extends AbstractTextBlock implements Ftile { private final Ftile tile1; private final Ftile tile2; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileEmpty.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileEmpty.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileEmpty.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileEmpty.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.activitydiagram3.ftile; import java.util.Collections; +import java.util.HashSet; import java.util.Set; import net.sourceforge.plantuml.graphic.StringBounder; @@ -89,7 +90,14 @@ } public Set getSwimlanes() { - return Collections.emptySet(); + final Set result = new HashSet(); + if (swimlaneIn != null) { + result.add(swimlaneIn); + } + if (swimlaneOut != null) { + result.add(swimlaneOut); + } + return Collections.unmodifiableSet(result); } - + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactoryDelegator.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactoryDelegator.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactoryDelegator.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactoryDelegator.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,16 +37,23 @@ import java.util.List; import net.sourceforge.plantuml.ColorParam; +import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.activitydiagram3.Branch; import net.sourceforge.plantuml.activitydiagram3.LinkRendering; +import net.sourceforge.plantuml.creole.CreoleMode; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.FontConfiguration; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.IHtmlColorSet; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.sequencediagram.NotePosition; import net.sourceforge.plantuml.skin.rose.Rose; -import net.sourceforge.plantuml.ugraphic.Sprite; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; public class FtileFactoryDelegator implements FtileFactory { @@ -65,10 +72,19 @@ return color; } + protected final TextBlock getTextBlock(Display display) { + if (Display.isNull(display)) { + return null; + } + final ISkinParam skinParam = getSkinParam(); + final FontConfiguration fontConfiguration = new FontConfiguration(skinParam, FontParam.ACTIVITY_ARROW, null); + return display.create(fontConfiguration, HorizontalAlignment.LEFT, this, CreoleMode.SIMPLE_LINE); + } + protected Display getInLinkRenderingDisplay(Ftile tile) { final LinkRendering linkRendering = tile.getInLinkRendering(); if (linkRendering == null) { - return null; + return Display.NULL; } return linkRendering.getDisplay(); } @@ -82,12 +98,16 @@ return factory.start(swimlane); } + public Ftile end(Swimlane swimlane) { + return factory.end(swimlane); + } + public Ftile stop(Swimlane swimlane) { return factory.stop(swimlane); } - public Ftile activity(Display label, HtmlColor color, Swimlane swimlane, BoxStyle style) { - return factory.activity(label, color, swimlane, style); + public Ftile activity(Display label, Swimlane swimlane, BoxStyle style, Colors colors) { + return factory.activity(label, swimlane, style, colors); } public Ftile addNote(Ftile ftile, Display note, NotePosition notePosition) { @@ -110,7 +130,8 @@ return factory.assembly(tile1, tile2); } - public Ftile repeat(Swimlane swimlane, Ftile repeat, Display test, Display yes, Display out, HtmlColor color, LinkRendering backRepeatLinkRendering) { + public Ftile repeat(Swimlane swimlane, Ftile repeat, Display test, Display yes, Display out, HtmlColor color, + LinkRendering backRepeatLinkRendering) { return factory.repeat(swimlane, repeat, test, yes, out, color, backRepeatLinkRendering); } @@ -119,8 +140,9 @@ return factory.createWhile(swimlane, whileBlock, test, yes, out, afterEndwhile, color); } - public Ftile createIf(Swimlane swimlane, List thens, Branch elseBranch) { - return factory.createIf(swimlane, thens, elseBranch); + public Ftile createIf(Swimlane swimlane, List thens, Branch elseBranch, LinkRendering afterEndwhile, + LinkRendering topInlinkRendering) { + return factory.createIf(swimlane, thens, elseBranch, afterEndwhile, topInlinkRendering); } public Ftile createFork(Swimlane swimlane, List all) { @@ -131,8 +153,9 @@ return factory.createSplit(all); } - public Ftile createGroup(Ftile list, Display name, HtmlColor backColor, HtmlColor titleColor, Display headerNote) { - return factory.createGroup(list, name, backColor, titleColor, headerNote); + public Ftile createGroup(Ftile list, Display name, HtmlColor backColor, HtmlColor titleColor, Display headerNote, + HtmlColor borderColor) { + return factory.createGroup(list, name, backColor, titleColor, headerNote, borderColor); } public StringBounder getStringBounder() { @@ -171,4 +194,16 @@ return skinParam.useGuillemet(); } + public String getMonospacedFamily() { + return skinParam.getMonospacedFamily(); + } + + public int getTabSize() { + return skinParam.getTabSize(); + } + + public IHtmlColorSet getIHtmlColorSet() { + return skinParam.getIHtmlColorSet(); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactory.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactory.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactory.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,6 +43,7 @@ import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.sequencediagram.NotePosition; public interface FtileFactory extends ISkinSimple { @@ -55,7 +56,9 @@ public Ftile stop(Swimlane swimlane); - public Ftile activity(Display label, HtmlColor color, Swimlane swimlane, BoxStyle style); + public Ftile end(Swimlane swimlane); + + public Ftile activity(Display label, Swimlane swimlane, BoxStyle style, Colors colors); public Ftile addNote(Ftile ftile, Display note, NotePosition notePosition); @@ -67,17 +70,20 @@ public Ftile assembly(Ftile tile1, Ftile tile2); - public Ftile repeat(Swimlane swimlane, Ftile repeat, Display test, Display yes, Display out, HtmlColor color, LinkRendering backRepeatLinkRendering); + public Ftile repeat(Swimlane swimlane, Ftile repeat, Display test, Display yes, Display out, HtmlColor color, + LinkRendering backRepeatLinkRendering); public Ftile createWhile(Swimlane swimlane, Ftile whileBlock, Display test, Display yes, Display out, LinkRendering afterEndwhile, HtmlColor color); - public Ftile createIf(Swimlane swimlane, List thens, Branch elseBranch); + public Ftile createIf(Swimlane swimlane, List thens, Branch elseBranch, LinkRendering afterEndwhile, + LinkRendering topInlinkRendering); public Ftile createFork(Swimlane swimlane, List all); public Ftile createSplit(List all); - public Ftile createGroup(Ftile list, Display name, HtmlColor backColor, HtmlColor titleColor, Display headerNote); + public Ftile createGroup(Ftile list, Display name, HtmlColor backColor, HtmlColor titleColor, Display headerNote, + HtmlColor borderColor); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGeometry.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGeometry.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGeometry.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGeometry.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -73,6 +73,10 @@ this.height = height; } + public FtileGeometry incHeight(double northHeight) { + return new FtileGeometry(width, height + northHeight, left, inY, outY); + } + public FtileGeometry(Dimension2D dim, double left, double inY, double outY) { this(dim.getWidth(), dim.getHeight(), left, inY, outY); } @@ -133,6 +137,10 @@ return new FtileGeometry(width + 2 * marginx, height, left + marginx, inY, outY); } + public FtileGeometry addMarginX(double margin1, double margin2) { + return new FtileGeometry(width + margin1 + margin2, height, left + margin1, inY, outY); + } + public FtileGeometry fixedHeight(double fixedHeight) { return new FtileGeometry(width, fixedHeight, left, inY, outY); } @@ -141,4 +149,20 @@ return new FtileGeometryMerger(this, other).getResult(); } + public FtileGeometry ensureHeight(double newHeight) { + if (this.height > newHeight) { + return this; + } + return fixedHeight(newHeight); + } + + private FtileGeometry ensureRightStrange(double newRight) { + final double right = this.width - this.left; + if (right > newRight) { + return this; + } + // return addMarginX(0, newRight - right); + return addMarginX(0, newRight); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGeometryMerger.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGeometryMerger.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGeometryMerger.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGeometryMerger.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGoto.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGoto.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGoto.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileGoto.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileHeightFixed.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileHeightFixed.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileHeightFixed.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileHeightFixed.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Ftile.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Ftile.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Ftile.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Ftile.java 2016-04-22 16:26:18.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileKilled.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileKilled.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileKilled.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileKilled.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileLabel.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileLabel.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileLabel.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileLabel.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMarged.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMarged.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMarged.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMarged.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,12 +44,14 @@ public class FtileMarged extends AbstractFtile { private final Ftile tile; - private final double margin; + private final double margin1; + private final double margin2; - public FtileMarged(Ftile tile, double margin) { + public FtileMarged(Ftile tile, double margin1, double margin2) { super(tile.shadowing()); this.tile = tile; - this.margin = margin; + this.margin1 = margin1; + this.margin2 = margin2; } @Override @@ -76,12 +78,12 @@ public FtileGeometry calculateDimension(StringBounder stringBounder) { final FtileGeometry orig = tile.calculateDimension(stringBounder); - return new FtileGeometry(orig.getWidth() + 2 * margin, orig.getHeight(), orig.getLeft() + margin, + return new FtileGeometry(orig.getWidth() + margin1 + margin2, orig.getHeight(), orig.getLeft() + margin1, orig.getInY(), orig.getOutY()); } public void drawU(UGraphic ug) { - ug.apply(new UTranslate(margin, 0)).draw(tile); + ug.apply(new UTranslate(margin1, 0)).draw(tile); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMargedRight.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMargedRight.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMargedRight.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMargedRight.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,88 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.ftile; + +import java.util.Set; + +import net.sourceforge.plantuml.activitydiagram3.LinkRendering; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.ugraphic.UGraphic; + +public class FtileMargedRight extends AbstractFtile { + + private final Ftile tile; + private final double maxX; + + public FtileMargedRight(Ftile tile, double maxX) { + super(tile.shadowing()); + this.tile = tile; + this.maxX = maxX; + } + + @Override + public LinkRendering getInLinkRendering() { + return tile.getInLinkRendering(); + } + + @Override + public LinkRendering getOutLinkRendering() { + return tile.getOutLinkRendering(); + } + + public Set getSwimlanes() { + return tile.getSwimlanes(); + } + + public Swimlane getSwimlaneIn() { + return tile.getSwimlaneIn(); + } + + public Swimlane getSwimlaneOut() { + return tile.getSwimlaneOut(); + } + + public FtileGeometry calculateDimension(StringBounder stringBounder) { + final FtileGeometry orig = tile.calculateDimension(stringBounder); + if (orig.getWidth() > maxX) { + throw new IllegalStateException(); + } + return new FtileGeometry(maxX, orig.getHeight(), orig.getLeft(), orig.getInY(), orig.getOutY()); + } + + public void drawU(UGraphic ug) { + ug.draw(tile); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMargedVertically.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMargedVertically.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMargedVertically.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMargedVertically.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMinWidth.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMinWidth.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMinWidth.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileMinWidth.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,6 +45,7 @@ public class FtileMinWidth extends FtileDecorate { private final double minWidth; + private FtileGeometry calculateDimensionInternal; public FtileMinWidth(Ftile tile, double minWidth) { super(tile); @@ -59,6 +60,13 @@ @Override public FtileGeometry calculateDimension(StringBounder stringBounder) { + if (calculateDimensionInternal == null) { + calculateDimensionInternal = calculateDimensionSlow(stringBounder); + } + return calculateDimensionInternal; + } + + private FtileGeometry calculateDimensionSlow(StringBounder stringBounder) { final FtileGeometry geo = super.calculateDimension(stringBounder); final double left = getPoint2(geo.getLeft(), stringBounder); if (geo.hasPointOut() == false) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileOverpassing.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileOverpassing.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileOverpassing.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileOverpassing.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,43 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.ftile; + +import net.sourceforge.plantuml.graphic.StringBounder; + +public interface FtileOverpassing extends Ftile { + + public FtileGeometry getOverpassDimension(StringBounder stringBounder); + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileUtils.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileUtils.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileUtils.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -61,6 +61,24 @@ return new FtileMargedVertically(ftile, marginTop, marginBottom); } + public static Ftile addHorizontalMargin(Ftile ftile, double margin1, double margin2) { + if (margin1 == 0 && margin2 == 0) { + return ftile; + } + return new FtileMarged(ftile, margin1, margin2); + } + + public static Ftile addHorizontalMargin(Ftile ftile, double margin) { + if (margin == 0) { + return ftile; + } + return new FtileMarged(ftile, margin, margin); + } + + // public static Ftile addHorizontalMargin(Ftile ftile, double margin) { + // return new FtileMarged(ftile, margin); + // } + private static Ftile neverNull(Ftile ftile) { if (ftile == null) { return new FtileEmpty(false); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithConnection.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithConnection.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithConnection.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithConnection.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithSwimlanes.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithSwimlanes.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithSwimlanes.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithSwimlanes.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithUrl.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithUrl.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithUrl.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileWithUrl.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/GotoInterceptor.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/GotoInterceptor.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/GotoInterceptor.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/GotoInterceptor.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,11 +37,12 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.UGraphicInterceptorGoto; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.ugraphic.UGraphic; -public class GotoInterceptor implements TextBlock { +public class GotoInterceptor extends AbstractTextBlock implements TextBlock { private final TextBlock swinlanes; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/SnakeDirection.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/SnakeDirection.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/SnakeDirection.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/SnakeDirection.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Snake.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Snake.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Snake.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Snake.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,7 +44,9 @@ import net.sourceforge.plantuml.Direction; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.StringBounderUtils; import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.CompressionTransform; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; @@ -151,9 +153,12 @@ } if (textBlock != null) { final Point2D position = getTextBlockPosition(ug.getStringBounder()); - // double max = getMaxX(ug.getStringBounder()); - // ug.apply(new UChangeBackColor(HtmlColorUtils.LIGHT_GRAY)).apply(new UTranslate(0, - // position.getY())).draw(new URectangle(max, 10)); + // final double max = getMaxX(ug.getStringBounder()); + // ug.apply(new UChangeBackColor(HtmlColorUtils.LIGHT_GRAY)) + // .apply(new UTranslate(position.getX(), position.getY())) + // .draw(new URectangle(textBlock.calculateDimension(ug.getStringBounder()))); + // ug.apply(new UChangeBackColor(HtmlColorUtils.RED)).apply(new UTranslate(0, position.getY() + 10)) + // .draw(new URectangle(max, 10)); textBlock.drawU(ug.apply(new UTranslate(position))); } } @@ -210,6 +215,13 @@ if (mergeable == false || other.mergeable == false) { return null; } + if (TextBlockUtils.isEmpty(other.textBlock) == false) { + return null; + // System.err.println("merge other.textBlock="+other.textBlock+" "+other.textBlock.calculateDimension(TextBlockUtils.getDummyStringBounder())); + } + // if (other.textBlock != null) { + // return null; + // } if (same(this.getLast(), other.getFirst())) { final UPolygon oneOf = endDecoration == null ? other.endDecoration : endDecoration; final Snake result = new Snake(color, oneOf); @@ -356,7 +368,7 @@ if (Arrays.asList(Direction.DOWN, Direction.RIGHT, Direction.DOWN, Direction.LEFT).equals(patternAt)) { final Point2D.Double p1 = points.get(i + 1); final Point2D.Double p4 = points.get(i + 4); - if (p4.x < p1.x) { + if (p4.x + 4 < p1.x) { final Point2D.Double newPoint = new Point2D.Double(points.get(i + 1).x, points.get(i + 3).y); points.remove(i + 3); points.remove(i + 2); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimable.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimable.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimable.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimable.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlane.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlane.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlane.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlane.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,15 +34,17 @@ */ package net.sourceforge.plantuml.activitydiagram3.ftile; +import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.SpecificBackcolorable; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.ugraphic.UTranslate; public class Swimlane implements SpecificBackcolorable { private final String name; - private HtmlColor color; private Display display; private UTranslate translate = new UTranslate(); @@ -80,16 +82,24 @@ this.totalWidth = totalWidth; } - public HtmlColor getSpecificBackColor() { - return color; + public Colors getColors(ISkinParam skinParam) { + return colors; } - public void setSpecificBackcolor(HtmlColor specificBackcolor) { - this.color = specificBackcolor; + public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color) { + if (color != null) { + this.colors = colors.add(type, color); + } } + private Colors colors = Colors.empty(); + public final double getTotalWidth() { return totalWidth; } + public void setColors(Colors colors) { + this.colors = colors; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlanes.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlanes.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlanes.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlanes.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,9 +38,12 @@ import java.util.ArrayList; import java.util.List; +import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.LineParam; import net.sourceforge.plantuml.OptionFlags; +import net.sourceforge.plantuml.Pragma; import net.sourceforge.plantuml.activitydiagram3.Instruction; import net.sourceforge.plantuml.activitydiagram3.InstructionList; import net.sourceforge.plantuml.activitydiagram3.LinkRendering; @@ -56,6 +59,7 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.UGraphicInterceptorOneSwimlane; import net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.VCompactFactory; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; @@ -64,6 +68,8 @@ import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.graphic.UGraphicDelegator; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.skin.rose.Rose; import net.sourceforge.plantuml.svek.UGraphicForSnake; import net.sourceforge.plantuml.ugraphic.CompressionTransform; import net.sourceforge.plantuml.ugraphic.LimitFinder; @@ -73,7 +79,6 @@ import net.sourceforge.plantuml.ugraphic.UChange; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; -import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.URectangle; @@ -81,12 +86,12 @@ import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class Swimlanes implements TextBlock { +public class Swimlanes extends AbstractTextBlock implements TextBlock { private final ISkinParam skinParam;; + private final Pragma pragma; private final List swimlanes = new ArrayList(); - private final FontConfiguration fontConfiguration; private Swimlane currentSwimlane = null; private final Instruction root = new InstructionList(); @@ -94,19 +99,20 @@ private LinkRendering nextLinkRenderer; - public Swimlanes(ISkinParam skinParam) { + public Swimlanes(ISkinParam skinParam, Pragma pragma) { this.skinParam = skinParam; - final UFont font = skinParam.getFont(FontParam.TITLE, null, false); - this.fontConfiguration = new FontConfiguration(font, HtmlColorUtils.BLACK, skinParam.getHyperlinkColor(), - skinParam.useUnderlineForHyperlink()); + this.pragma = pragma; + } + private FontConfiguration getFontConfiguration() { + return new FontConfiguration(skinParam, FontParam.SWIMLANE_TITLE, null); } private FtileFactory getFtileFactory() { FtileFactory factory = new VCompactFactory(skinParam, TextBlockUtils.getDummyStringBounder()); factory = new FtileFactoryDelegatorAddUrl(factory, skinParam); factory = new FtileFactoryDelegatorAssembly(factory, skinParam); - factory = new FtileFactoryDelegatorIf(factory, skinParam); + factory = new FtileFactoryDelegatorIf(factory, skinParam, pragma); factory = new FtileFactoryDelegatorWhile(factory, skinParam); factory = new FtileFactoryDelegatorRepeat(factory, skinParam); factory = new FtileFactoryDelegatorCreateFork(factory, skinParam); @@ -119,9 +125,9 @@ public void swimlane(String name, HtmlColor color, Display label) { currentSwimlane = getOrCreate(name); if (color != null) { - currentSwimlane.setSpecificBackcolor(color); + currentSwimlane.setSpecificColorTOBEREMOVED(ColorType.BACK, color); } - if (label != null) { + if (Display.isNull(label) == false) { currentSwimlane.setDisplay(label); } } @@ -241,15 +247,16 @@ double x2 = 0; for (Swimlane swimlane : swimlanes) { - if (swimlane.getSpecificBackColor() != null) { - final UGraphic background = ug.apply(new UChangeBackColor(swimlane.getSpecificBackColor())) - .apply(new UChangeColor(swimlane.getSpecificBackColor())).apply(new UTranslate(x2, 0)); + final HtmlColor back = swimlane.getColors(skinParam).getColor(ColorType.BACK); + if (back != null) { + final UGraphic background = ug.apply(new UChangeBackColor(back)).apply(new UChangeColor(back)) + .apply(new UTranslate(x2, 0)); background.draw(new URectangle(swimlane.getTotalWidth(), dimensionFull.getHeight() + titleHeightTranslate.getDy())); } if (OptionFlags.SWI2 == false) { - final TextBlock swTitle = TextBlockUtils.create(swimlane.getDisplay(), fontConfiguration, + final TextBlock swTitle = swimlane.getDisplay().create(getFontConfiguration(), HorizontalAlignment.LEFT, skinParam); final double titleWidth = swTitle.calculateDimension(stringBounder).getWidth(); final double posTitle = x2 + (swimlane.getTotalWidth() - titleWidth) / 2; @@ -282,8 +289,8 @@ final MinMax minMax = limitFinder.getMinMax(); final double drawingWidth = minMax.getWidth() + 2 * separationMargin; - final TextBlock swTitle = TextBlockUtils.create(swimlane.getDisplay(), fontConfiguration, - HorizontalAlignment.LEFT, skinParam); + final TextBlock swTitle = swimlane.getDisplay().create(getFontConfiguration(), HorizontalAlignment.LEFT, + skinParam); final double titleWidth = swTitle.calculateDimension(stringBounder).getWidth(); final double totalWidth = Math.max(drawingWidth, titleWidth + 2 * separationMargin); @@ -298,8 +305,8 @@ private UTranslate getTitleHeightTranslate(final StringBounder stringBounder) { double titlesHeight = 0; for (Swimlane swimlane : swimlanes) { - final TextBlock swTitle = TextBlockUtils.create(swimlane.getDisplay(), fontConfiguration, - HorizontalAlignment.LEFT, skinParam); + final TextBlock swTitle = swimlane.getDisplay().create(getFontConfiguration(), HorizontalAlignment.LEFT, + skinParam); titlesHeight = Math.max(titlesHeight, swTitle.calculateDimension(stringBounder).getHeight()); } @@ -328,7 +335,12 @@ } private void drawSeparation(UGraphic ug, double height) { - ug.apply(new UStroke(2)).apply(new UChangeColor(HtmlColorUtils.BLACK)).draw(new ULine(0, height)); + HtmlColor color = skinParam.getHtmlColor(ColorParam.swimlaneBorder, null, false); + if (color == null) { + color = ColorParam.swimlaneBorder.getDefaultValue(); + } + final UStroke thickness = Rose.getStroke(skinParam, LineParam.swimlaneBorder, 2); + ug.apply(thickness).apply(new UChangeColor(color)).draw(new ULine(0, height)); } public Dimension2D calculateDimension(StringBounder stringBounder) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/TextBlockInterceptorUDrawable.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/TextBlockInterceptorUDrawable.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/TextBlockInterceptorUDrawable.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/TextBlockInterceptorUDrawable.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,13 +37,14 @@ import java.awt.geom.Dimension2D; import java.util.HashMap; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class TextBlockInterceptorUDrawable implements TextBlock { +public class TextBlockInterceptorUDrawable extends AbstractTextBlock implements TextBlock { private final TextBlock textBlock; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/UGraphicInterceptorUDrawable2.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/UGraphicInterceptorUDrawable2.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/UGraphicInterceptorUDrawable2.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/UGraphicInterceptorUDrawable2.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/ConditionalBuilder.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/ConditionalBuilder.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/ConditionalBuilder.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/ConditionalBuilder.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,218 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.cond; + +import java.awt.geom.Dimension2D; + +import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.activitydiagram3.Branch; +import net.sourceforge.plantuml.activitydiagram3.LinkRendering; +import net.sourceforge.plantuml.activitydiagram3.ftile.Diamond; +import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileEmpty; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileMinWidth; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileUtils; +import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamond; +import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamondInside; +import net.sourceforge.plantuml.creole.CreoleMode; +import net.sourceforge.plantuml.creole.CreoleParser; +import net.sourceforge.plantuml.creole.Sheet; +import net.sourceforge.plantuml.creole.SheetBlock1; +import net.sourceforge.plantuml.creole.SheetBlock2; +import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.FontConfiguration; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.svek.ConditionStyle; +import net.sourceforge.plantuml.ugraphic.UStroke; + +public class ConditionalBuilder { + + private final Swimlane swimlane; + private final HtmlColor borderColor; + private final HtmlColor backColor; + private final HtmlColor arrowColor; + private final FtileFactory ftileFactory; + private final ConditionStyle conditionStyle; + private final Branch branch1; + private final Branch branch2; + private final ISkinParam skinParam; + private final StringBounder stringBounder; + private final FontConfiguration fontArrow; + private final FontConfiguration fontTest; + + private final Ftile tile1; + private final Ftile tile2; + + public ConditionalBuilder(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor, + FtileFactory ftileFactory, ConditionStyle conditionStyle, Branch branch1, Branch branch2, + ISkinParam skinParam, StringBounder stringBounder, FontConfiguration fontArrow, FontConfiguration fontTest) { + this.swimlane = swimlane; + this.borderColor = borderColor; + this.backColor = backColor; + this.arrowColor = arrowColor; + this.ftileFactory = ftileFactory; + this.conditionStyle = conditionStyle; + this.branch1 = branch1; + this.branch2 = branch2; + this.skinParam = skinParam; + this.stringBounder = stringBounder; + this.fontArrow = fontArrow; + this.fontTest = fontTest; + + this.tile1 = new FtileMinWidth(branch1.getFtile(), 30); + this.tile2 = new FtileMinWidth(branch2.getFtile(), 30); + + } + + static public Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor, + FtileFactory ftileFactory, ConditionStyle conditionStyle, Branch branch1, Branch branch2, + ISkinParam skinParam, StringBounder stringBounder, FontConfiguration fcArrow, FontConfiguration fcTest) { + final ConditionalBuilder builder = new ConditionalBuilder(swimlane, borderColor, backColor, arrowColor, + ftileFactory, conditionStyle, branch1, branch2, skinParam, stringBounder, fcArrow, fcTest); + return builder.createWithLinks(); + // return builder.createWithDiamonds(); + // return builder.createNude(); + + } + + private Ftile createNude() { + return new FtileIfNude(tile1, tile2, swimlane); + + } + + private Ftile createWithDiamonds() { + final Ftile diamond1 = getDiamond1(); + final Ftile diamond2 = getDiamond2(); + final FtileIfWithDiamonds ftile = new FtileIfWithDiamonds(diamond1, tile1, tile2, diamond2, swimlane, + stringBounder); + final Dimension2D label1 = getLabelBranch1().calculateDimension(stringBounder); + final Dimension2D label2 = getLabelBranch2().calculateDimension(stringBounder); + final double diff1 = ftile.computeMarginNeedForBranchLabe1(stringBounder, label1); + final double diff2 = ftile.computeMarginNeedForBranchLabe2(stringBounder, label2); + Ftile result = FtileUtils.addHorizontalMargin(ftile, diff1, diff2); + final double suppHeight = ftile.computeVerticalMarginNeedForBranchs(stringBounder, label1, label2); + result = FtileUtils.addVerticalMargin(result, suppHeight, 0); + return result; + } + + private Ftile createWithLinks() { + final Ftile diamond1 = getDiamond1(); + final Ftile diamond2 = getDiamond2(); + final Ftile tmp1 = FtileUtils.addHorizontalMargin(tile1, 10); + final Ftile tmp2 = FtileUtils.addHorizontalMargin(tile2, 10); + final FtileIfWithLinks ftile = new FtileIfWithLinks(diamond1, tmp1, tmp2, diamond2, swimlane, arrowColor, + stringBounder); + final Dimension2D label1 = getLabelBranch1().calculateDimension(stringBounder); + final Dimension2D label2 = getLabelBranch2().calculateDimension(stringBounder); + final double diff1 = ftile.computeMarginNeedForBranchLabe1(stringBounder, label1); + final double diff2 = ftile.computeMarginNeedForBranchLabe2(stringBounder, label2); + final double suppHeight = ftile.computeVerticalMarginNeedForBranchs(stringBounder, label1, label2); + Ftile result = ftile.addLinks(branch1, branch2, stringBounder); + result = FtileUtils.addHorizontalMargin(result, diff1, diff2); + result = FtileUtils.addVerticalMargin(result, suppHeight, 0); + return result; + } + + private Ftile getDiamond1() { + final Display labelTest = branch1.getLabelTest(); + final TextBlock tb1 = getLabelBranch1(); + final TextBlock tb2 = getLabelBranch2(); + + final Sheet sheet = new CreoleParser(fontTest, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL) + .createSheet(labelTest); + final SheetBlock1 sheetBlock1 = new SheetBlock1(sheet, 0, skinParam.getPadding()); + final TextBlock tbTest = new SheetBlock2(sheetBlock1, Diamond.asStencil(sheetBlock1), new UStroke(1.5)); + + final Ftile diamond1; + if (conditionStyle == ConditionStyle.INSIDE) { + diamond1 = new FtileDiamondInside(tile1.shadowing(), backColor, borderColor, swimlane, tbTest) + .withWestAndEast(tb1, tb2); + } else if (conditionStyle == ConditionStyle.DIAMOND) { + diamond1 = new FtileDiamond(tile1.shadowing(), backColor, borderColor, swimlane).withNorth(tbTest) + .withWestAndEast(tb1, tb2); + } else { + throw new IllegalStateException(); + } + return diamond1; + } + + private TextBlock getLabelBranch2() { + final TextBlock tb2 = branch2.getLabelPositive().create(fontArrow, HorizontalAlignment.LEFT, ftileFactory, + CreoleMode.SIMPLE_LINE); + return tb2; + } + + private TextBlock getLabelBranch1() { + final TextBlock tb1 = branch1.getLabelPositive().create(fontArrow, HorizontalAlignment.LEFT, ftileFactory, + CreoleMode.SIMPLE_LINE); + return tb1; + } + + private Ftile getDiamond2() { + final Ftile diamond2; + if (hasTwoBranches()) { + final Display out1 = LinkRendering.getDisplay(branch1.getFtile().getOutLinkRendering()); + final TextBlock tbout1 = out1 == null ? null : out1.create(fontArrow, HorizontalAlignment.LEFT, + ftileFactory, CreoleMode.SIMPLE_LINE); + final Display out2 = LinkRendering.getDisplay(branch2.getFtile().getOutLinkRendering()); + final TextBlock tbout2 = out2 == null ? null : out2.create(fontArrow, HorizontalAlignment.LEFT, + ftileFactory, CreoleMode.SIMPLE_LINE); + diamond2 = new FtileDiamond(tile1.shadowing(), backColor, borderColor, swimlane).withWest(tbout1).withEast( + tbout2); + } else { + // diamond2 = new FtileEmpty(tile1.shadowing(), Diamond.diamondHalfSize * 2, Diamond.diamondHalfSize * 2, + // swimlane, swimlane); + diamond2 = new FtileEmpty(tile1.shadowing(), 0, Diamond.diamondHalfSize / 2, swimlane, swimlane); + } + return diamond2; + } + + public boolean hasTwoBranches() { + return tile1.calculateDimension(stringBounder).hasPointOut() + && tile2.calculateDimension(stringBounder).hasPointOut(); + } + + // private HtmlColor fontColor() { + // return skinParam.getFontHtmlColor(FontParam.ACTIVITY_DIAMOND, null); + // } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileDimensionMemoize.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileDimensionMemoize.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileDimensionMemoize.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileDimensionMemoize.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,57 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.cond; + +import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; +import net.sourceforge.plantuml.graphic.StringBounder; + +public abstract class FtileDimensionMemoize extends AbstractFtile { + + public FtileDimensionMemoize(boolean shadowing) { + super(shadowing); + } + + private FtileGeometry calculateDimensionInternal; + + protected final FtileGeometry calculateDimensionInternal(StringBounder stringBounder) { + if (calculateDimensionInternal == null) { + calculateDimensionInternal = calculateDimensionInternalSlow(stringBounder); + } + return calculateDimensionInternal; + } + + abstract protected FtileGeometry calculateDimensionInternalSlow(StringBounder stringBounder); +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfNude.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfNude.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfNude.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfNude.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,157 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.cond; + +import java.awt.geom.Dimension2D; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; +import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class FtileIfNude extends FtileDimensionMemoize { + + protected final Ftile tile1; + protected final Ftile tile2; + private final Swimlane in; + + FtileIfNude(Ftile tile1, Ftile tile2, Swimlane in) { + super(tile1.shadowing() || tile2.shadowing()); + this.tile1 = tile1; + this.tile2 = tile2; + this.in = in; + } + + public boolean hasTwoBranches(StringBounder stringBounder) { + return tile1.calculateDimension(stringBounder).hasPointOut() + && tile2.calculateDimension(stringBounder).hasPointOut(); + } + + public Set getSwimlanes() { + final Set result = new HashSet(); + if (getSwimlaneIn() != null) { + result.add(getSwimlaneIn()); + } + result.addAll(tile1.getSwimlanes()); + result.addAll(tile2.getSwimlanes()); + return Collections.unmodifiableSet(result); + } + + public Swimlane getSwimlaneIn() { + return in; + } + + public Swimlane getSwimlaneOut() { + return getSwimlaneIn(); + } + + protected UTranslate getTranslate1(StringBounder stringBounder) { + final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); + final Dimension2D dim1 = tile1.calculateDimension(stringBounder); + + final double x1 = 0; + final double y1 = 0; + return new UTranslate(x1, y1); + } + + protected UTranslate getTranslate2(StringBounder stringBounder) { + final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); + final Dimension2D dim2 = tile2.calculateDimension(stringBounder); + + final double x2 = dimTotal.getWidth() - dim2.getWidth(); + final double y2 = 0; + return new UTranslate(x2, y2); + + } + + @Override + public UTranslate getTranslateFor(Ftile child, StringBounder stringBounder) { + if (child == tile1) { + return getTranslate1(stringBounder); + } + if (child == tile2) { + return getTranslate2(stringBounder); + } + throw new UnsupportedOperationException(); + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + + ug.apply(getTranslate1(stringBounder)).draw(tile1); + ug.apply(getTranslate2(stringBounder)).draw(tile2); + } + + public FtileGeometry calculateDimension(StringBounder stringBounder) { + final FtileGeometry dimTotal = calculateDimensionInternal(stringBounder); + if (tile1.calculateDimension(stringBounder).hasPointOut() + || tile2.calculateDimension(stringBounder).hasPointOut()) { + return dimTotal; + } + return dimTotal.withoutPointOut(); + } + + @Override + protected FtileGeometry calculateDimensionInternalSlow(StringBounder stringBounder) { + final FtileGeometry dim1 = tile1.calculateDimension(stringBounder); + final FtileGeometry dim2 = tile2.calculateDimension(stringBounder); + + final double innerMargin = withInner(stringBounder); + final double width = dim1.getLeft() + innerMargin + (dim2.getWidth() - dim2.getLeft()); + + final Dimension2D dim12 = Dimension2DDouble.mergeLR(dim1, dim2); + + return new FtileGeometry(width, dim12.getHeight(), dim1.getLeft() + innerMargin / 2, 0); + } + + protected double withInner(StringBounder stringBounder) { + final FtileGeometry dim1 = tile1.calculateDimension(stringBounder); + final FtileGeometry dim2 = tile2.calculateDimension(stringBounder); + return (dim1.getWidth() - dim1.getLeft()) + dim2.getLeft(); + } + +// protected double getLeft(StringBounder stringBounder) { +// final double left1 = tile1.calculateDimension(stringBounder).translate(getTranslate1(stringBounder)).getLeft(); +// final double left2 = tile2.calculateDimension(stringBounder).translate(getTranslate2(stringBounder)).getLeft(); +// return (left1 + left2) / 2; +// } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfWithDiamonds.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfWithDiamonds.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfWithDiamonds.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfWithDiamonds.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,171 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.cond; + +import java.awt.geom.Dimension2D; + +import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; +import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class FtileIfWithDiamonds extends FtileIfNude { + + private final double SUPP_WITH = 20; + protected final Ftile diamond1; + protected final Ftile diamond2; + + public FtileIfWithDiamonds(Ftile diamond1, Ftile tile1, Ftile tile2, Ftile diamond2, Swimlane in, + StringBounder stringBounder) { + super(tile1, tile2, in); + this.diamond1 = diamond1; + this.diamond2 = diamond2; + } + + public int getYdelta1a(StringBounder stringBounder) { + // if (getSwimlanes().size() > 1 && hasTwoBranches(stringBounder)) { + if (getSwimlanes().size() > 1) { + return 20; + } + return 10; + // return hasTwoBranches(stringBounder) ? 6 : 6; + } + + public int getYdelta1b(StringBounder stringBounder) { + // if (getSwimlanes().size() > 1 && hasTwoBranches(stringBounder)) { + if (getSwimlanes().size() > 1) { + return 10; + } + return hasTwoBranches(stringBounder) ? 6 : 0; + } + + @Override + protected double withInner(StringBounder stringBounder) { + final FtileGeometry dim1 = diamond1.calculateDimension(stringBounder); + return Math.max(super.withInner(stringBounder), dim1.getWidth() + SUPP_WITH); + } + + @Override + protected FtileGeometry calculateDimensionInternalSlow(StringBounder stringBounder) { + final FtileGeometry dim1 = diamond1.calculateDimension(stringBounder); + final FtileGeometry dim2 = diamond2.calculateDimension(stringBounder); + + final FtileGeometry dimNude = super.calculateDimensionInternalSlow(stringBounder); + + final FtileGeometry all = dim1.appendBottom(dimNude).appendBottom(dim2); + + return all.addDim(0, getYdelta1a(stringBounder) + getYdelta1b(stringBounder)); + + // final double height = dimNude.getHeight() + dim1.getHeight() + dim2.getHeight() + getYdelta1a(stringBounder) + // + getYdelta1b(stringBounder); + // return new Dimension2DDouble(width, height); + } + + @Override + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + + ug.apply(getTranslateDiamond1(stringBounder)).draw(diamond1); + super.drawU(ug); + ug.apply(getTranslateDiamond2(stringBounder)).draw(diamond2); + } + + @Override + protected UTranslate getTranslate1(StringBounder stringBounder) { + final FtileGeometry dimDiamond1 = diamond1.calculateDimension(stringBounder); + return super.getTranslate1(stringBounder).compose( + new UTranslate(0, dimDiamond1.getHeight() + getYdelta1a(stringBounder))); + } + + @Override + protected UTranslate getTranslate2(StringBounder stringBounder) { + final FtileGeometry dimDiamond1 = diamond1.calculateDimension(stringBounder); + return super.getTranslate2(stringBounder).compose( + new UTranslate(0, dimDiamond1.getHeight() + getYdelta1a(stringBounder))); + } + + protected UTranslate getTranslateDiamond1(StringBounder stringBounder) { + final double y1 = 0; + final FtileGeometry dimTotal = calculateDimensionInternal(stringBounder); + final FtileGeometry dimDiamond1 = diamond1.calculateDimension(stringBounder); + // final double x1 = getLeft(stringBounder) - dimDiamond1.getWidth() / 2; + final double x1 = dimTotal.getLeft() - dimDiamond1.getLeft(); + return new UTranslate(x1, y1); + } + + protected UTranslate getTranslateDiamond2(StringBounder stringBounder) { + final FtileGeometry dimTotal = calculateDimensionInternal(stringBounder); + final FtileGeometry dimDiamond2 = diamond2.calculateDimension(stringBounder); + final double y2 = dimTotal.getHeight() - dimDiamond2.getHeight(); + final double x2 = dimTotal.getLeft() - dimDiamond2.getWidth() / 2; + return new UTranslate(x2, y2); + } + + public double computeMarginNeedForBranchLabe1(StringBounder stringBounder, Dimension2D label1) { + final double widthLabelBranch1 = label1.getWidth(); + final double dxDiamond = getTranslateDiamond1(stringBounder).getDx(); + final double diff = widthLabelBranch1 - dxDiamond; + if (diff > 0) { + return diff; + } + return 0; + } + + public double computeMarginNeedForBranchLabe2(StringBounder stringBounder, Dimension2D label2) { + final double widthLabelBranch2 = label2.getWidth(); + final double theoricalEndNeeded = getTranslateDiamond1(stringBounder).getDx() + + diamond1.calculateDimension(stringBounder).getWidth() + widthLabelBranch2; + final double diff = theoricalEndNeeded - calculateDimension(stringBounder).getWidth(); + if (diff > 0) { + return diff; + } + return 0; + } + + public double computeVerticalMarginNeedForBranchs(StringBounder stringBounder, Dimension2D label1, + Dimension2D label2) { + final double heightLabels = Math.max(label1.getHeight(), label2.getHeight()); + final FtileGeometry dimDiamond1 = diamond1.calculateDimension(stringBounder); + final double dyDiamond = dimDiamond1.getHeight(); + final double diff = heightLabels - dyDiamond; + if (diff > 0) { + return diff; + } + return 0; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfWithLinks.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfWithLinks.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfWithLinks.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/cond/FtileIfWithLinks.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,380 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.cond; + +import java.awt.geom.Dimension2D; +import java.awt.geom.Point2D; +import java.util.ArrayList; +import java.util.List; + +import net.sourceforge.plantuml.Direction; +import net.sourceforge.plantuml.activitydiagram3.Branch; +import net.sourceforge.plantuml.activitydiagram3.LinkRendering; +import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractConnection; +import net.sourceforge.plantuml.activitydiagram3.ftile.Arrows; +import net.sourceforge.plantuml.activitydiagram3.ftile.Connection; +import net.sourceforge.plantuml.activitydiagram3.ftile.ConnectionTranslatable; +import net.sourceforge.plantuml.activitydiagram3.ftile.Diamond; +import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileUtils; +import net.sourceforge.plantuml.activitydiagram3.ftile.Snake; +import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UPolygon; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class FtileIfWithLinks extends FtileIfWithDiamonds { + + private final HtmlColor arrowColor; + + public FtileIfWithLinks(Ftile diamond1, Ftile tile1, Ftile tile2, Ftile diamond2, Swimlane in, + HtmlColor arrowColor, StringBounder stringBounder) { + super(diamond1, tile1, tile2, diamond2, in, stringBounder); + this.arrowColor = arrowColor; + } + + public static HtmlColor getInColor(Branch branch, HtmlColor arrowColor) { + if (branch.isEmpty()) { + return LinkRendering.getColor(branch.getFtile().getOutLinkRendering(), arrowColor); + } + final LinkRendering linkIn = branch.getFtile().getInLinkRendering(); + final HtmlColor color = linkIn == null ? arrowColor : linkIn.getColor(); + return color; + + } + + class ConnectionHorizontalThenVertical extends AbstractConnection implements ConnectionTranslatable { + + private final HtmlColor color; + private final UPolygon usingArrow; + + public ConnectionHorizontalThenVertical(Ftile tile, Branch branch) { + super(diamond1, tile); + color = getInColor(branch, arrowColor); + usingArrow = branch.isEmpty() ? null : Arrows.asToDown(); + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final Point2D p1 = getP1(stringBounder); + final Point2D p2 = getP2(stringBounder); + final double x1 = p1.getX(); + final double y1 = p1.getY(); + final double x2 = p2.getX(); + final double y2 = p2.getY(); + + final Snake snake = new Snake(color, usingArrow); + snake.addPoint(x1, y1); + snake.addPoint(x2, y1); + snake.addPoint(x2, y2); + + ug.draw(snake); + } + + private Point2D getP1(StringBounder stringBounder) { + final Dimension2D dimDiamond1 = diamond1.calculateDimension(stringBounder); + final double diamondWidth = dimDiamond1.getWidth(); + final double x; + if (getFtile2() == tile1) { + x = 0; + } else if (getFtile2() == tile2) { + x = diamondWidth; + } else { + throw new IllegalStateException(); + } + return getTranslateDiamond1(stringBounder) + .getTranslated(new Point2D.Double(x, dimDiamond1.getHeight() / 2)); + } + + private Point2D getP2(final StringBounder stringBounder) { + return translate(stringBounder).getTranslated(getFtile2().calculateDimension(stringBounder).getPointIn()); + } + + private UTranslate translate(StringBounder stringBounder) { + if (getFtile2() == tile1) { + return getTranslate1(stringBounder); + } + if (getFtile2() == tile2) { + return getTranslate2(stringBounder); + } + throw new IllegalStateException(); + } + + public void drawTranslate(UGraphic ug, UTranslate translate1, UTranslate translate2) { + final StringBounder stringBounder = ug.getStringBounder(); + Point2D p1 = getP1(stringBounder); + Point2D p2 = getP2(stringBounder); + final Direction originalDirection = Direction.leftOrRight(p1, p2); + p1 = translate1.getTranslated(p1); + p2 = translate2.getTranslated(p2); + final Direction newDirection = Direction.leftOrRight(p1, p2); + if (originalDirection != newDirection) { + final double delta = (originalDirection == Direction.RIGHT ? -1 : 1) * Diamond.diamondHalfSize; + final Dimension2D dimDiamond1 = diamond1.calculateDimension(stringBounder); + final Snake small = new Snake(color); + small.addPoint(p1); + small.addPoint(p1.getX() + delta, p1.getY()); + small.addPoint(p1.getX() + delta, p1.getY() + dimDiamond1.getHeight() * .75); + ug.draw(small); + p1 = small.getLast(); + } + final Snake snake = new Snake(color, usingArrow); + snake.addPoint(p1); + snake.addPoint(p2.getX(), p1.getY()); + snake.addPoint(p2); + ug.draw(snake); + + } + + } + + class ConnectionVerticalThenHorizontal extends AbstractConnection implements ConnectionTranslatable { + private final HtmlColor myArrowColor; + private final boolean branchEmpty; + + public ConnectionVerticalThenHorizontal(Ftile tile, HtmlColor myArrowColor, boolean branchEmpty) { + super(tile, diamond2); + this.myArrowColor = myArrowColor == null ? arrowColor : myArrowColor; + this.branchEmpty = branchEmpty; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + + final FtileGeometry geo = getFtile1().calculateDimension(stringBounder); + if (geo.hasPointOut() == false) { + return; + } + final Point2D p1 = geo.translate(translate(stringBounder)).getPointOut(); + final Point2D p2 = getP2(stringBounder); + + final double x1 = p1.getX(); + final double y1 = p1.getY(); + final double x2 = p2.getX(); + final double y2 = p2.getY(); + + final UPolygon arrow = x2 > x1 ? Arrows.asToRight() : Arrows.asToLeft(); + final Snake snake = new Snake(myArrowColor, arrow); + if (branchEmpty) { + snake.emphasizeDirection(Direction.DOWN); + } + snake.addPoint(x1, y1); + snake.addPoint(x1, y2); + snake.addPoint(x2, y2); + + ug.draw(snake); + } + + private Point2D getP2(StringBounder stringBounder) { + final Dimension2D dimDiamond2 = diamond2.calculateDimension(stringBounder); + final double diamondWidth = dimDiamond2.getWidth(); + final double x; + if (getFtile1() == tile1) { + x = 0; + } else if (getFtile1() == tile2) { + x = diamondWidth; + } else { + throw new IllegalStateException(); + } + return getTranslateDiamond2(stringBounder) + .getTranslated(new Point2D.Double(x, dimDiamond2.getHeight() / 2)); + } + + private UTranslate translate(StringBounder stringBounder) { + if (getFtile1() == tile1) { + return getTranslate1(stringBounder); + } + if (getFtile1() == tile2) { + return getTranslate2(stringBounder); + } + throw new IllegalStateException(); + } + + public void drawTranslate(UGraphic ug, UTranslate translate1, UTranslate translate2) { + final StringBounder stringBounder = ug.getStringBounder(); + final FtileGeometry geo = getFtile1().calculateDimension(stringBounder); + if (geo.hasPointOut() == false) { + return; + } + final Point2D p2 = getP2(stringBounder); + final Point2D p1 = geo.translate(translate(stringBounder)).getPointOut(); + final Direction originalDirection = Direction.leftOrRight(p1, p2); + + final double x1 = p1.getX(); + final double x2 = p2.getX(); + final Point2D mp1a = translate1.getTranslated(p1); + final Point2D mp2b = translate2.getTranslated(p2); + final Direction newDirection = Direction.leftOrRight(mp1a, mp2b); + final UPolygon arrow = x2 > x1 ? Arrows.asToRight() : Arrows.asToLeft(); + if (originalDirection == newDirection) { + final double delta = (x2 > x1 ? -1 : 1) * 1.5 * Diamond.diamondHalfSize; + final Point2D mp2bc = new Point2D.Double(mp2b.getX() + delta, mp2b.getY()); + final Snake snake = new Snake(myArrowColor); + final double middle = (mp1a.getY() + mp2b.getY()) / 2.0; + snake.addPoint(mp1a); + snake.addPoint(mp1a.getX(), middle); + snake.addPoint(mp2bc.getX(), middle); + snake.addPoint(mp2bc); + ug.draw(snake); + final Snake small = new Snake(myArrowColor, arrow); + small.addPoint(mp2bc); + small.addPoint(mp2bc.getX(), mp2b.getY()); + small.addPoint(mp2b); + ug.draw(small); + } else { + final double delta = (x2 > x1 ? -1 : 1) * 1.5 * Diamond.diamondHalfSize; + final Point2D mp2bb = new Point2D.Double(mp2b.getX() + delta, mp2b.getY() - 1.5 + * Diamond.diamondHalfSize); + final Snake snake = new Snake(myArrowColor); + snake.addPoint(mp1a); + snake.addPoint(mp1a.getX(), mp2bb.getY()); + snake.addPoint(mp2bb); + ug.draw(snake); + final Snake small = new Snake(myArrowColor, arrow); + small.addPoint(mp2bb); + small.addPoint(mp2bb.getX(), mp2b.getY()); + small.addPoint(mp2b); + ug.draw(small); + + } + + } + } + + class ConnectionVerticalThenHorizontalDirect extends AbstractConnection implements ConnectionTranslatable { + private final HtmlColor myArrowColor; + private final boolean branchEmpty; + + public ConnectionVerticalThenHorizontalDirect(Ftile tile, HtmlColor myArrowColor, boolean branchEmpty) { + super(tile, diamond2); + this.myArrowColor = myArrowColor == null ? arrowColor : myArrowColor; + this.branchEmpty = branchEmpty; + } + + public void drawU(UGraphic ug) { + + final StringBounder stringBounder = ug.getStringBounder(); + final FtileGeometry dimTotal = calculateDimensionInternal(stringBounder); + + final FtileGeometry geo = getFtile1().calculateDimension(stringBounder); + if (geo.hasPointOut() == false) { + return; + } + final Point2D p1 = geo.translate(translate(stringBounder)).getPointOut(); + final Point2D p2 = new Point2D.Double(dimTotal.getLeft(), dimTotal.getHeight()); + + final double x1 = p1.getX(); + final double y1 = p1.getY(); + final double x2 = p2.getX(); + final double y2 = p2.getY(); + + final Snake snake = new Snake(myArrowColor); + if (branchEmpty) { + snake.emphasizeDirection(Direction.DOWN); + } + snake.addPoint(x1, y1); + snake.addPoint(x1, y2); + snake.addPoint(x2, y2); + snake.addPoint(x2, dimTotal.getHeight()); + + ug.draw(snake); + } + + public void drawTranslate(UGraphic ug, UTranslate translate1, UTranslate translate2) { + final StringBounder stringBounder = ug.getStringBounder(); + final FtileGeometry dimTotal = calculateDimensionInternal(stringBounder); + + final FtileGeometry geo = getFtile1().calculateDimension(stringBounder); + if (geo.hasPointOut() == false) { + return; + } + final Point2D p1 = geo.translate(translate(stringBounder)).getPointOut(); + final Point2D p2 = new Point2D.Double(dimTotal.getLeft(), dimTotal.getHeight() - Diamond.diamondHalfSize); + + final Point2D mp1a = translate1.getTranslated(p1); + final Point2D mp2b = translate2.getTranslated(p2); + + final Snake snake = new Snake(myArrowColor); + // snake.emphasizeDirection(Direction.DOWN); + + final double x1 = mp1a.getX(); + final double x2 = mp2b.getX(); + final double y2 = mp2b.getY(); + + snake.addPoint(mp1a); + snake.addPoint(x1, y2); + snake.addPoint(mp2b); + snake.addPoint(x2, dimTotal.getHeight()); + + ug.draw(snake); + } + + private UTranslate translate(StringBounder stringBounder) { + if (getFtile1() == tile1) { + return getTranslate1(stringBounder); + } + if (getFtile1() == tile2) { + return getTranslate2(stringBounder); + } + throw new IllegalStateException(); + } + + } + + public Ftile addLinks(Branch branch1, Branch branch2, StringBounder stringBounder) { + final List conns = new ArrayList(); + conns.add(new ConnectionHorizontalThenVertical(tile1, branch1)); + conns.add(new ConnectionHorizontalThenVertical(tile2, branch2)); + if (tile1.calculateDimension(stringBounder).hasPointOut() + && tile2.calculateDimension(stringBounder).hasPointOut()) { + conns.add(new ConnectionVerticalThenHorizontal(tile1, branch1.getInlinkRenderingColor(), branch1.isEmpty())); + conns.add(new ConnectionVerticalThenHorizontal(tile2, branch2.getInlinkRenderingColor(), branch2.isEmpty())); + } else if (tile1.calculateDimension(stringBounder).hasPointOut() + && tile2.calculateDimension(stringBounder).hasPointOut() == false) { + conns.add(new ConnectionVerticalThenHorizontalDirect(tile1, branch1.getInlinkRenderingColor(), branch1 + .isEmpty())); + } else if (tile1.calculateDimension(stringBounder).hasPointOut() == false + && tile2.calculateDimension(stringBounder).hasPointOut()) { + conns.add(new ConnectionVerticalThenHorizontalDirect(tile2, branch2.getInlinkRenderingColor(), branch2 + .isEmpty())); + } + + return FtileUtils.addConnection(this, conns); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/ConnectionVerticalDown.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/ConnectionVerticalDown.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/ConnectionVerticalDown.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/ConnectionVerticalDown.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FloatingNote.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FloatingNote.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FloatingNote.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FloatingNote.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,12 +39,14 @@ import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.creole.CreoleMode; import net.sourceforge.plantuml.creole.CreoleParser; import net.sourceforge.plantuml.creole.Sheet; import net.sourceforge.plantuml.creole.SheetBlock1; import net.sourceforge.plantuml.creole.SheetBlock2; import net.sourceforge.plantuml.creole.Stencil; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; @@ -56,24 +58,24 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UStroke; -public class FloatingNote implements Stencil, TextBlock { +public class FloatingNote extends AbstractTextBlock implements Stencil, TextBlock { private final Opale opale; public FloatingNote(Display note, ISkinParam skinParam) { final Rose rose = new Rose(); - final HtmlColor fontColor = rose.getFontColor(skinParam, FontParam.NOTE); - final UFont fontNote = skinParam.getFont(FontParam.NOTE, null, false); final HtmlColor noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.noteBackground); final HtmlColor borderColor = rose.getHtmlColor(skinParam, ColorParam.noteBorder); - final FontConfiguration fc = new FontConfiguration(fontNote, fontColor, skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()); + final FontConfiguration fc = new FontConfiguration(skinParam, FontParam.NOTE, null); - final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, false).createSheet(note); - final SheetBlock2 sheetBlock2 = new SheetBlock2(new SheetBlock1(sheet, 0, skinParam.getPadding()), this, new UStroke(1)); - this.opale = new Opale(borderColor, noteBackgroundColor, sheetBlock2, skinParam.shadowing(), false); + final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL) + .createSheet(note); + final SheetBlock2 sheetBlock2 = new SheetBlock2(new SheetBlock1(sheet, 0, skinParam.getPadding()), this, + new UStroke(1)); + this.opale = new Opale(borderColor, noteBackgroundColor, sheetBlock2, skinParam.shadowing(), false); // this.text = sheetBlock2; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAddNote.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAddNote.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAddNote.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAddNote.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAddUrl.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAddUrl.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAddUrl.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAddUrl.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAssembly.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAssembly.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAssembly.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorAssembly.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,16 +42,15 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactoryDelegator; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileMargedVertically; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileMinWidth; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileMargedRight; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileUtils; +import net.sourceforge.plantuml.creole.CreoleMode; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.skin.rose.Rose; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UTranslate; @@ -87,30 +86,24 @@ final ConnectionVerticalDown connection = new ConnectionVerticalDown(tile1, tile2, p1, p2, color, textBlock); result = FtileUtils.addConnection(result, connection); if (textBlock != null) { - final double width = result.calculateDimension(stringBounder).getWidth(); + final FtileGeometry dim = result.calculateDimension(stringBounder); + final double width = dim.getWidth(); // System.err.println("width=" + width); // System.err.println("p1=" + p1); // System.err.println("p2=" + p2); final double maxX = connection.getMaxX(stringBounder); + // System.err.println("FtileFactoryDelegatorAssembly dim=" + dim); // System.err.println("maxX=" + maxX); final double needed = (maxX - width) * 2; - result = new FtileMinWidth(result, needed); + // result = new FtileMinWidth(result, needed); + if (width < maxX) { + result = new FtileMargedRight(result, maxX); + } + // System.err.println("FtileFactoryDelegatorAssembly result=" + result.calculateDimension(stringBounder)); } return result; } private final Rose rose = new Rose(); - private TextBlock getTextBlock(Display display) { - // DUP1433 - if (display == null) { - return null; - } - final ISkinParam skinParam = getSkinParam(); - final UFont font = skinParam.getFont(FontParam.ACTIVITY_ARROW, null, false); - final HtmlColor color = rose.getFontColor(skinParam, FontParam.ACTIVITY_ARROW); - final FontConfiguration fontConfiguration = new FontConfiguration(font, color, skinParam.getHyperlinkColor(), - skinParam.useUnderlineForHyperlink()); - return TextBlockUtils.create(display, fontConfiguration, HorizontalAlignment.LEFT, null, true); - } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateFork.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateFork.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateFork.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateFork.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,6 +41,7 @@ import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.activitydiagram3.LinkRendering; import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractConnection; import net.sourceforge.plantuml.activitydiagram3.ftile.Arrows; import net.sourceforge.plantuml.activitydiagram3.ftile.Connection; @@ -56,6 +57,7 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.Snake; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileBlackBlock; +import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.skin.rose.Rose; import net.sourceforge.plantuml.ugraphic.UGraphic; @@ -83,7 +85,7 @@ final List list = new ArrayList(); for (Ftile tmp : all) { - list.add(new FtileHeightFixed(new FtileMarged(tmp, xMargin), height1)); + list.add(new FtileHeightFixed(FtileUtils.addHorizontalMargin(tmp, xMargin), height1)); } Ftile inner = super.createFork(swimlane, list); @@ -109,9 +111,11 @@ private final double x; private final HtmlColor arrowColor; + private final Display label; public ConnectionIn(Ftile ftile1, Ftile ftile2, double x, HtmlColor arrowColor) { super(ftile1, ftile2); + label = LinkRendering.getDisplay(ftile2.getInLinkRendering()); this.x = x; this.arrowColor = arrowColor; } @@ -119,10 +123,13 @@ public void drawU(UGraphic ug) { ug = ug.apply(new UTranslate(x, 0)); final FtileGeometry geo = getFtile2().calculateDimension(getStringBounder()); - final Snake s = new Snake(arrowColor, Arrows.asToDown()); - s.addPoint(geo.getLeft(), 0); - s.addPoint(geo.getLeft(), geo.getInY()); - ug.draw(s); + final Snake snake = new Snake(arrowColor, Arrows.asToDown()); + if (Display.isNull(label) == false) { + snake.setLabel(getTextBlock(label)); + } + snake.addPoint(geo.getLeft(), 0); + snake.addPoint(geo.getLeft(), geo.getInY()); + ug.draw(snake); } public void drawTranslate(UGraphic ug, UTranslate translate1, UTranslate translate2) { @@ -132,6 +139,9 @@ final Point2D p2 = new Point2D.Double(geo.getLeft(), geo.getInY()); final Snake snake = new Snake(arrowColor, Arrows.asToDown()); + if (Display.isNull(label) == false) { + snake.setLabel(getTextBlock(label)); + } final Point2D mp1a = translate1.getTranslated(p1); final Point2D mp2b = translate2.getTranslated(p2); final double middle = mp1a.getY() + 4; @@ -148,9 +158,11 @@ private final double x; private final HtmlColor arrowColor; private final double height; + private final Display label; public ConnectionOut(Ftile ftile1, Ftile ftile2, double x, HtmlColor arrowColor, double height) { super(ftile1, ftile2); + label = LinkRendering.getDisplay(ftile1.getOutLinkRendering()); this.x = x; this.arrowColor = arrowColor; this.height = height; @@ -162,10 +174,13 @@ if (geo.hasPointOut() == false) { return; } - final Snake s = new Snake(arrowColor, Arrows.asToDown()); - s.addPoint(geo.getLeft(), geo.getOutY()); - s.addPoint(geo.getLeft(), height); - ug.draw(s); + final Snake snake = new Snake(arrowColor, Arrows.asToDown()); + if (Display.isNull(label) == false) { + snake.setLabel(getTextBlock(label)); + } + snake.addPoint(geo.getLeft(), geo.getOutY()); + snake.addPoint(geo.getLeft(), height); + ug.draw(snake); } public void drawTranslate(UGraphic ug, UTranslate translate1, UTranslate translate2) { @@ -178,6 +193,9 @@ final Point2D p2 = new Point2D.Double(geo.getLeft(), height); final Snake snake = new Snake(arrowColor, Arrows.asToDown()); + if (Display.isNull(label) == false) { + snake.setLabel(getTextBlock(label)); + } final Point2D mp1a = translate1.getTranslated(p1); final Point2D mp2b = translate2.getTranslated(p2); final double middle = mp2b.getY() - 14; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateGroup.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateGroup.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateGroup.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateGroup.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -52,9 +52,10 @@ } @Override - public Ftile createGroup(Ftile list, Display name, HtmlColor backColor, HtmlColor titleColor, Display headerNote) { + public Ftile createGroup(Ftile list, Display name, HtmlColor backColor, HtmlColor titleColor, Display headerNote, + HtmlColor borderColor) { final HtmlColor arrowColor = rose.getHtmlColor(getSkinParam(), ColorParam.activityArrow); - return new FtileGroup(list, name, headerNote, arrowColor, backColor, titleColor, getSkinParam()); + return new FtileGroup(list, name, headerNote, arrowColor, backColor, titleColor, getSkinParam(), borderColor); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateSplit.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateSplit.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateSplit.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorCreateSplit.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,7 +41,6 @@ import java.util.Set; import net.sourceforge.plantuml.ColorParam; -import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.OptionFlags; import net.sourceforge.plantuml.activitydiagram3.LinkRendering; @@ -60,15 +59,11 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.Snake; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.graphic.FontConfiguration; -import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.skin.rose.Rose; -import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; @@ -135,7 +130,7 @@ final List list = new ArrayList(); for (Ftile tmp : all) { - list.add(new FtileHeightFixed(new FtileMarged(tmp, xMargin), height1)); + list.add(new FtileHeightFixed(FtileUtils.addHorizontalMargin(tmp, xMargin), height1)); } Ftile inner = super.createSplit(list); @@ -210,16 +205,10 @@ private TextBlock getTextBlock(LinkRendering linkRendering) { // DUP1433 final Display display = LinkRendering.getDisplay(linkRendering); - if (display == null) { - return null; - } - final ISkinParam skinParam = getSkinParam(); - final UFont font = skinParam.getFont(FontParam.ACTIVITY_ARROW, null, false); - final HtmlColor color = rose.getFontColor(skinParam, FontParam.ACTIVITY_ARROW); - final FontConfiguration fontConfiguration = new FontConfiguration(font, color, skinParam.getHyperlinkColor(), - skinParam.useUnderlineForHyperlink()); - return TextBlockUtils.create(display, fontConfiguration, HorizontalAlignment.LEFT, null, true); + return getTextBlock(display); } + + private Ftile simpleSwimlanes(List all) { final HtmlColor arrowColor = rose.getHtmlColor(getSkinParam(), ColorParam.activityArrow); @@ -229,7 +218,7 @@ final List list = new ArrayList(); for (Ftile tmp : all) { - list.add(new FtileHeightFixed(new FtileMarged(tmp, xMargin), height1)); + list.add(new FtileHeightFixed(FtileUtils.addHorizontalMargin(tmp, xMargin), height1)); } Ftile inner = new FtileSplit1(list); @@ -282,6 +271,18 @@ public void drawU(UGraphic ug) { double minX = Double.MAX_VALUE; double maxX = 0; + if (y == 0 && ug instanceof UGraphicInterceptorOneSwimlane) { + final Swimlane intoSw = ((UGraphicInterceptorOneSwimlane) ug).getSwimlane(); + boolean found = false; + for (Ftile tmp : list) { + if (tmp.getSwimlaneIn() == intoSw) { + found = true; + } + } + if (found == false) { + return; + } + } final StringBounder stringBounder = ug.getStringBounder(); for (Ftile tmp : list) { if (y > 0 && tmp.calculateDimension(stringBounder).hasPointOut() == false) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorIf.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorIf.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorIf.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorIf.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,28 +39,32 @@ import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.Pragma; import net.sourceforge.plantuml.activitydiagram3.Branch; +import net.sourceforge.plantuml.activitydiagram3.LinkRendering; import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactoryDelegator; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.cond.ConditionalBuilder; +import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.svek.ConditionStyle; -import net.sourceforge.plantuml.ugraphic.UFont; public class FtileFactoryDelegatorIf extends FtileFactoryDelegator { - public FtileFactoryDelegatorIf(FtileFactory factory, ISkinParam skinParam) { + private final Pragma pragma; + + public FtileFactoryDelegatorIf(FtileFactory factory, ISkinParam skinParam, Pragma pragma) { super(factory, skinParam); + this.pragma = pragma; } @Override - public Ftile createIf(Swimlane swimlane, List thens, Branch elseBranch) { + public Ftile createIf(Swimlane swimlane, List thens, Branch elseBranch, LinkRendering afterEndwhile, + LinkRendering topInlinkRendering) { final ConditionStyle conditionStyle = getSkinParam().getConditionStyle(); - final UFont fontArrow = getSkinParam().getFont(FontParam.ACTIVITY_ARROW, null, false); - final UFont fontTest = getSkinParam().getFont( - conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND : FontParam.ACTIVITY_ARROW, null, false); final Branch branch0 = thens.get(0); final HtmlColor borderColor = getRose().getHtmlColor(getSkinParam(), ColorParam.activityBorder); @@ -68,12 +72,26 @@ ColorParam.activityBackground) : branch0.getColor(); final HtmlColor arrowColor = getRose().getHtmlColor(getSkinParam(), ColorParam.activityArrow); + final FontConfiguration fcArrow = new FontConfiguration(getSkinParam(), FontParam.ACTIVITY_ARROW, null); + // .changeColor(fontColor(FontParam.ACTIVITY_DIAMOND)); if (thens.size() > 1) { - return FtileIfLong2.create(swimlane, borderColor, backColor, fontArrow, arrowColor, getFactory(), - conditionStyle, thens, elseBranch, getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()); + if (pragma.useVerticalIf()/* OptionFlags.USE_IF_VERTICAL */) + return FtileIfLongVertical.create(swimlane, borderColor, backColor, arrowColor, getFactory(), + conditionStyle, thens, elseBranch, fcArrow, topInlinkRendering, afterEndwhile); + return FtileIfLongHorizontal.create(swimlane, borderColor, backColor, arrowColor, getFactory(), + conditionStyle, thens, elseBranch, fcArrow, topInlinkRendering, afterEndwhile); } - return FtileIf.create(swimlane, borderColor, backColor, fontArrow, fontTest, arrowColor, getFactory(), - conditionStyle, thens.get(0), elseBranch, getSkinParam(), getStringBounder()); + final FontParam testParam = conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND + : FontParam.ACTIVITY_ARROW; + final FontConfiguration fcTest = new FontConfiguration(getSkinParam(), testParam, null) + .changeColor(fontColor(FontParam.ACTIVITY_DIAMOND)); + + return ConditionalBuilder.create(swimlane, borderColor, backColor, arrowColor, getFactory(), conditionStyle, + thens.get(0), elseBranch, getSkinParam(), getStringBounder(), fcArrow, fcTest); + } + + private HtmlColor fontColor(FontParam param) { + return getSkinParam().getFontHtmlColor(null, param); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorRepeat.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorRepeat.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorRepeat.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorRepeat.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,9 +43,9 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactoryDelegator; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.svek.ConditionStyle; -import net.sourceforge.plantuml.ugraphic.UFont; public class FtileFactoryDelegatorRepeat extends FtileFactoryDelegator { @@ -57,9 +57,6 @@ public Ftile repeat(Swimlane swimlane, Ftile repeat, Display test, Display yes, Display out, HtmlColor color, LinkRendering backRepeatLinkRendering) { final ConditionStyle conditionStyle = getSkinParam().getConditionStyle(); - final UFont font = getSkinParam().getFont( - conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND : FontParam.ACTIVITY_ARROW, null, - false); final HtmlColor borderColor = getRose().getHtmlColor(getSkinParam(), ColorParam.activityBorder); final HtmlColor backColor = color == null ? getRose().getHtmlColor(getSkinParam(), @@ -69,9 +66,11 @@ final LinkRendering endRepeatLinkRendering = repeat.getOutLinkRendering(); final HtmlColor endRepeatLinkColor = endRepeatLinkRendering == null ? null : endRepeatLinkRendering.getColor(); - return FtileRepeat.create(backRepeatLinkRendering, swimlane, repeat, test, yes, out, borderColor, backColor, font, arrowColor, - endRepeatLinkColor, conditionStyle, this, getSkinParam().getHyperlinkColor(), getSkinParam() - .useUnderlineForHyperlink()); - } + final FontParam fontParam = conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND + : FontParam.ACTIVITY_ARROW; + final FontConfiguration fc = new FontConfiguration(getSkinParam(), fontParam, null); + return FtileRepeat.create(backRepeatLinkRendering, swimlane, repeat, test, yes, out, borderColor, backColor, + arrowColor, endRepeatLinkColor, conditionStyle, this, fc); + } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorWhile.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorWhile.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorWhile.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorWhile.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,9 +43,9 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactoryDelegator; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.svek.ConditionStyle; -import net.sourceforge.plantuml.ugraphic.UFont; public class FtileFactoryDelegatorWhile extends FtileFactoryDelegator { @@ -62,14 +62,17 @@ final HtmlColor arrowColor = getRose().getHtmlColor(getSkinParam(), ColorParam.activityArrow); final ConditionStyle conditionStyle = getSkinParam().getConditionStyle(); - final UFont fontArrow = getSkinParam().getFont(FontParam.ACTIVITY_ARROW, null, false); - final UFont fontTest = getSkinParam().getFont( - conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND : FontParam.ACTIVITY_ARROW, null, false); + final FontParam testParam = conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND + : FontParam.ACTIVITY_ARROW; + final FontConfiguration fcTest = new FontConfiguration(getSkinParam(), testParam, null); final LinkRendering endInlinkRendering = whileBlock.getOutLinkRendering(); final HtmlColor endInlinkColor = endInlinkRendering == null ? arrowColor : endInlinkRendering.getColor(); + + final FontConfiguration fontArrow = new FontConfiguration(getSkinParam(), FontParam.ACTIVITY_ARROW, null); + return FtileWhile.create(swimlane, whileBlock, test, borderColor, backColor, arrowColor, yes, out, - fontArrow, endInlinkColor, afterEndwhile, getFactory(), conditionStyle, fontTest, getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()); + endInlinkColor, afterEndwhile, fontArrow, getFactory(), conditionStyle, fcTest); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileForkInner.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileForkInner.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileForkInner.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileForkInner.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileGroup.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileGroup.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileGroup.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileGroup.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,12 +38,15 @@ import java.awt.geom.Dimension2D; import java.util.Set; +import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.LineParam; import net.sourceforge.plantuml.activitydiagram3.LinkRendering; import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileMarged; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileUtils; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.FontConfiguration; @@ -54,7 +57,11 @@ import net.sourceforge.plantuml.graphic.SymbolContext; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.UGraphicInterceptorUDrawable; import net.sourceforge.plantuml.graphic.USymbol; +import net.sourceforge.plantuml.svek.UGraphicForSnake; +import net.sourceforge.plantuml.ugraphic.LimitFinder; +import net.sourceforge.plantuml.ugraphic.MinMax; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UStroke; @@ -67,32 +74,41 @@ private final Ftile inner; private final TextBlock name; private final TextBlock headerNote; - private final HtmlColor color; + private final HtmlColor arrowColor; + private final HtmlColor borderColor; private final HtmlColor backColor; private final HtmlColor titleColor; + private final UStroke stroke; - public FtileGroup(Ftile inner, Display title, Display displayNote, HtmlColor color, HtmlColor backColor, - HtmlColor titleColor, ISkinParam skinParam) { + public FtileGroup(Ftile inner, Display title, Display displayNote, HtmlColor arrowColor, HtmlColor backColor, + HtmlColor titleColor, ISkinParam skinParam, HtmlColor borderColor) { super(inner.shadowing()); this.backColor = backColor == null ? HtmlColorUtils.WHITE : backColor; - this.inner = new FtileMarged(inner, 10); - this.color = color; + this.inner = FtileUtils.addHorizontalMargin(inner, 10); + this.arrowColor = arrowColor; this.titleColor = titleColor; - final UFont font = new UFont("Serif", Font.PLAIN, 14); - final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, skinParam.getHyperlinkColor(), - skinParam.useUnderlineForHyperlink()); + this.borderColor = backColor == null ? HtmlColorUtils.BLACK : borderColor; + final UFont font = skinParam.getFont(null, false, FontParam.PARTITION); + // final UFont font = new UFont("Serif", Font.PLAIN, 14); + // final HtmlColor fontColor = HtmlColorUtils.BLACK; + final HtmlColor fontColor = skinParam.getFontHtmlColor(null, FontParam.PARTITION); + final FontConfiguration fc = new FontConfiguration(font, fontColor, skinParam.getHyperlinkColor(), + skinParam.useUnderlineForHyperlink(), skinParam.getTabSize()); if (title == null) { this.name = TextBlockUtils.empty(0, 0); } else { - this.name = TextBlockUtils.create(title, fc, HorizontalAlignment.LEFT, skinParam); + this.name = title.create(fc, HorizontalAlignment.LEFT, skinParam); } - if (displayNote == null) { + if (Display.isNull(displayNote)) { this.headerNote = TextBlockUtils.empty(0, 0); } else { this.headerNote = new FloatingNote(displayNote, skinParam); } + + final UStroke thickness = skinParam.getThickness(LineParam.partitionBorder, null); + this.stroke = thickness == null ? new UStroke(2) : thickness; } - + @Override public LinkRendering getInLinkRendering() { return inner.getInLinkRendering(); @@ -120,8 +136,18 @@ return new UTranslate(suppWidth / 2, diffHeightTitle(stringBounder) + headerNoteHeight(stringBounder)); } + private static MinMax getMinMax(TextBlock tb, StringBounder stringBounder) { + final LimitFinder limitFinder = new LimitFinder(stringBounder, false); + final UGraphicForSnake interceptor = new UGraphicForSnake(limitFinder); + final UGraphicInterceptorUDrawable interceptor2 = new UGraphicInterceptorUDrawable(interceptor); + + tb.drawU(interceptor2); + interceptor2.flushUg(); + return limitFinder.getMinMax(); + } + public double suppWidth(StringBounder stringBounder) { - final FtileGeometry orig = inner.calculateDimension(stringBounder); + final FtileGeometry orig = getInnerDimension(stringBounder); final Dimension2D dimTitle = name.calculateDimension(stringBounder); final Dimension2D dimHeaderNote = headerNote.calculateDimension(stringBounder); final double suppWidth = MathUtils @@ -129,8 +155,18 @@ return suppWidth; } - public FtileGeometry calculateDimension(StringBounder stringBounder) { + private FtileGeometry getInnerDimension(StringBounder stringBounder) { final FtileGeometry orig = inner.calculateDimension(stringBounder); + final MinMax minMax = getMinMax(inner, stringBounder); + final double missingWidth = minMax.getMaxX() - orig.getWidth(); + if (missingWidth > 0) { + return orig.addDim(missingWidth + 5, 0); + } + return orig; + } + + public FtileGeometry calculateDimension(StringBounder stringBounder) { + final FtileGeometry orig = getInnerDimension(stringBounder); final double suppWidth = suppWidth(stringBounder); final double width = orig.getWidth() + suppWidth; final double height = orig.getHeight() + diffHeightTitle(stringBounder) + diffYY2 @@ -152,8 +188,8 @@ final StringBounder stringBounder = ug.getStringBounder(); final Dimension2D dimTotal = calculateDimension(stringBounder); - final SymbolContext symbolContext = new SymbolContext(backColor, HtmlColorUtils.BLACK).withShadow(shadowing()) - .withStroke(new UStroke(2)); + final SymbolContext symbolContext = new SymbolContext(backColor, borderColor).withShadow(shadowing()) + .withStroke(stroke); USymbol.FRAME.asBig(name, TextBlockUtils.empty(0, 0), dimTotal.getWidth(), dimTotal.getHeight(), symbolContext) .drawU(ug); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfAndStop.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfAndStop.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfAndStop.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfAndStop.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -58,6 +58,7 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamond; import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamondInside; +import net.sourceforge.plantuml.creole.CreoleMode; import net.sourceforge.plantuml.creole.CreoleParser; import net.sourceforge.plantuml.creole.Sheet; import net.sourceforge.plantuml.creole.SheetBlock1; @@ -66,11 +67,9 @@ import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.svek.ConditionStyle; -import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; @@ -110,30 +109,26 @@ return getSwimlaneIn(); } - static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, UFont fontArrow, UFont fontTest, - HtmlColor arrowColor, FtileFactory ftileFactory, ConditionStyle conditionStyle, Branch nonStop, - ISkinParam skinParam, StringBounder stringBounder, Display labelTest) { + static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor, + FtileFactory ftileFactory, ConditionStyle conditionStyle, Branch nonStop, ISkinParam skinParam, + StringBounder stringBounder, Display labelTest) { - backColor = HtmlColorUtils.BLUE; + // backColor = HtmlColorUtils.BLUE; // final Ftile tileNonStop = new FtileMinWidth(nonStop.getFtile(), 30); final Ftile tileNonStop = nonStop.getFtile(); - final HtmlColor fontColor = skinParam.getFontHtmlColor(FontParam.ACTIVITY_DIAMOND, null); - - final FontConfiguration fcArrow = new FontConfiguration(fontArrow, fontColor, skinParam.getHyperlinkColor(), - skinParam.useUnderlineForHyperlink()); - final FontConfiguration fcTest = new FontConfiguration(fontTest, fontColor, skinParam.getHyperlinkColor(), - skinParam.useUnderlineForHyperlink()); + final FontConfiguration fcTest = new FontConfiguration(skinParam, FontParam.ACTIVITY_DIAMOND, null); final Ftile stopFtile = ftileFactory.stop(swimlane); - // final TextBlock tb1 = TextBlockUtils.create(branch1.getLabelPositive(), fcArrow, HorizontalAlignment.LEFT, + // final TextBlock tb1 = Display.create(branch1.getLabelPositive(), fcArrow, HorizontalAlignment.LEFT, // ftileFactory); - // final TextBlock tb2 = TextBlockUtils.create(branch2.getLabelPositive(), fcArrow, HorizontalAlignment.LEFT, + // final TextBlock tb2 = Display.create(branch2.getLabelPositive(), fcArrow, HorizontalAlignment.LEFT, // ftileFactory); - final Sheet sheet = new CreoleParser(fcTest, HorizontalAlignment.LEFT, skinParam, false).createSheet(labelTest); + final Sheet sheet = new CreoleParser(fcTest, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL) + .createSheet(labelTest); final SheetBlock1 sheetBlock1 = new SheetBlock1(sheet, 0, skinParam.getPadding()); final TextBlock tbTest = new SheetBlock2(sheetBlock1, Diamond.asStencil(sheetBlock1), new UStroke(1.5)); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIf.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIf.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIf.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIf.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,595 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.activitydiagram3.ftile.vcompact; - -import java.awt.geom.Dimension2D; -import java.awt.geom.Point2D; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.sourceforge.plantuml.Dimension2DDouble; -import net.sourceforge.plantuml.Direction; -import net.sourceforge.plantuml.FontParam; -import net.sourceforge.plantuml.ISkinParam; -import net.sourceforge.plantuml.activitydiagram3.Branch; -import net.sourceforge.plantuml.activitydiagram3.LinkRendering; -import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractConnection; -import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; -import net.sourceforge.plantuml.activitydiagram3.ftile.Arrows; -import net.sourceforge.plantuml.activitydiagram3.ftile.Connection; -import net.sourceforge.plantuml.activitydiagram3.ftile.ConnectionTranslatable; -import net.sourceforge.plantuml.activitydiagram3.ftile.Diamond; -import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileEmpty; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileMinWidth; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileUtils; -import net.sourceforge.plantuml.activitydiagram3.ftile.Snake; -import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; -import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamond; -import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamondInside; -import net.sourceforge.plantuml.creole.CreoleParser; -import net.sourceforge.plantuml.creole.Sheet; -import net.sourceforge.plantuml.creole.SheetBlock1; -import net.sourceforge.plantuml.creole.SheetBlock2; -import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.graphic.FontConfiguration; -import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.StringBounder; -import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; -import net.sourceforge.plantuml.svek.ConditionStyle; -import net.sourceforge.plantuml.ugraphic.UFont; -import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.ugraphic.UPolygon; -import net.sourceforge.plantuml.ugraphic.UStroke; -import net.sourceforge.plantuml.ugraphic.UTranslate; - -class FtileIf extends AbstractFtile { - - private final Ftile tile1; - private final Ftile tile2; - private final Ftile diamond1; - private final Ftile diamond2; - - private final HtmlColor arrowColor; - - private FtileIf(Ftile diamond1, Ftile tile1, Ftile tile2, Ftile diamond2, HtmlColor arrowColor) { - super(tile1.shadowing() || tile2.shadowing()); - this.diamond1 = diamond1; - this.diamond2 = diamond2; - this.tile1 = tile1; - this.tile2 = tile2; - - this.arrowColor = arrowColor; - - } - - public Set getSwimlanes() { - final Set result = new HashSet(); - if (getSwimlaneIn() != null) { - result.add(getSwimlaneIn()); - } - result.addAll(tile1.getSwimlanes()); - result.addAll(tile2.getSwimlanes()); - return Collections.unmodifiableSet(result); - } - - public Swimlane getSwimlaneIn() { - return diamond1.getSwimlaneIn(); - } - - public Swimlane getSwimlaneOut() { - return getSwimlaneIn(); - } - - static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, UFont fontArrow, UFont fontTest, - HtmlColor arrowColor, FtileFactory ftileFactory, ConditionStyle conditionStyle, Branch branch1, - Branch branch2, ISkinParam skinParam, StringBounder stringBounder) { - - final Display labelTest = branch1.getLabelTest(); - // if (branch1.isOnlySingleStop() || branch2.isOnlySingleStop()) { - // final Branch nonStop = branch1.isOnlySingleStop() ? branch2 : branch1; - // return FtileIfAndStop.create(swimlane, borderColor, backColor, fontArrow, fontTest, arrowColor, - // ftileFactory, conditionStyle, nonStop, skinParam, stringBounder, labelTest); - // } - - final Ftile tile1 = new FtileMinWidth(branch1.getFtile(), 30); - final Ftile tile2 = new FtileMinWidth(branch2.getFtile(), 30); - - final HtmlColor fontColor = skinParam.getFontHtmlColor(FontParam.ACTIVITY_DIAMOND, null); - - final FontConfiguration fcArrow = new FontConfiguration(fontArrow, fontColor, skinParam.getHyperlinkColor(), - skinParam.useUnderlineForHyperlink()); - final FontConfiguration fcTest = new FontConfiguration(fontTest, fontColor, skinParam.getHyperlinkColor(), - skinParam.useUnderlineForHyperlink()); - - final TextBlock tb1 = TextBlockUtils.create(branch1.getLabelPositive(), fcArrow, HorizontalAlignment.LEFT, - ftileFactory, true); - final TextBlock tb2 = TextBlockUtils.create(branch2.getLabelPositive(), fcArrow, HorizontalAlignment.LEFT, - ftileFactory, true); - - final Sheet sheet = new CreoleParser(fcTest, HorizontalAlignment.LEFT, skinParam, false).createSheet(labelTest); - final SheetBlock1 sheetBlock1 = new SheetBlock1(sheet, 0, skinParam.getPadding()); - final TextBlock tbTest = new SheetBlock2(sheetBlock1, Diamond.asStencil(sheetBlock1), new UStroke(1.5)); - - final Ftile diamond1; - if (conditionStyle == ConditionStyle.INSIDE) { - diamond1 = new FtileDiamondInside(tile1.shadowing(), backColor, borderColor, swimlane, tbTest) - .withWest(tb1).withEast(tb2); - } else if (conditionStyle == ConditionStyle.DIAMOND) { - diamond1 = new FtileDiamond(tile1.shadowing(), backColor, borderColor, swimlane).withWest(tb1) - .withEast(tb2).withNorth(tbTest); - } else { - throw new IllegalStateException(); - } - - final Ftile diamond2; - if (tile1.calculateDimension(stringBounder).hasPointOut() - && tile2.calculateDimension(stringBounder).hasPointOut()) { - final Display out1 = LinkRendering.getDisplay(branch1.getFtile().getOutLinkRendering()); - final TextBlock tbout1 = out1 == null ? null : TextBlockUtils.create(out1, fcArrow, - HorizontalAlignment.LEFT, ftileFactory, true); - final Display out2 = LinkRendering.getDisplay(branch2.getFtile().getOutLinkRendering()); - final TextBlock tbout2 = out2 == null ? null : TextBlockUtils.create(out2, fcArrow, - HorizontalAlignment.LEFT, ftileFactory, true); - diamond2 = new FtileDiamond(tile1.shadowing(), backColor, borderColor, swimlane).withWest(tbout1).withEast( - tbout2); - } else { - diamond2 = new FtileEmpty(tile1.shadowing(), Diamond.diamondHalfSize * 2, Diamond.diamondHalfSize * 2, - swimlane, swimlane); - } - final FtileIf result = new FtileIf(diamond1, tile1, tile2, diamond2, arrowColor); - - final List conns = new ArrayList(); - conns.add(result.new ConnectionHorizontalThenVertical(tile1, branch1)); - conns.add(result.new ConnectionHorizontalThenVertical(tile2, branch2)); - if (tile1.calculateDimension(stringBounder).hasPointOut() - && tile2.calculateDimension(stringBounder).hasPointOut()) { - conns.add(result.new ConnectionVerticalThenHorizontal(tile1, branch1.getInlinkRenderingColor(), branch1 - .isEmpty())); - conns.add(result.new ConnectionVerticalThenHorizontal(tile2, branch2.getInlinkRenderingColor(), branch2 - .isEmpty())); - } else if (tile1.calculateDimension(stringBounder).hasPointOut() - && tile2.calculateDimension(stringBounder).hasPointOut() == false) { - conns.add(result.new ConnectionVerticalThenHorizontalDirect(tile1, branch1.getInlinkRenderingColor(), - branch1.isEmpty())); - } else if (tile1.calculateDimension(stringBounder).hasPointOut() == false - && tile2.calculateDimension(stringBounder).hasPointOut()) { - conns.add(result.new ConnectionVerticalThenHorizontalDirect(tile2, branch2.getInlinkRenderingColor(), - branch2.isEmpty())); - } - // return result; - return FtileUtils.addConnection(result, conns); - } - - private HtmlColor getInColor(Branch branch) { - if (branch.isEmpty()) { - return LinkRendering.getColor(branch.getFtile().getOutLinkRendering(), arrowColor); - } - final LinkRendering linkIn = branch.getFtile().getInLinkRendering(); - final HtmlColor color = linkIn == null ? arrowColor : linkIn.getColor(); - return color; - - } - - class ConnectionHorizontalThenVertical extends AbstractConnection implements ConnectionTranslatable { - - private final HtmlColor color; - private final UPolygon usingArrow; - - public ConnectionHorizontalThenVertical(Ftile tile, Branch branch) { - super(diamond1, tile); - color = getInColor(branch); - usingArrow = branch.isEmpty() ? null : Arrows.asToDown(); - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final Point2D p1 = getP1(stringBounder); - final Point2D p2 = getP2(stringBounder); - final double x1 = p1.getX(); - final double y1 = p1.getY(); - final double x2 = p2.getX(); - final double y2 = p2.getY(); - - final Snake snake = new Snake(color, usingArrow); - snake.addPoint(x1, y1); - snake.addPoint(x2, y1); - snake.addPoint(x2, y2); - - ug.draw(snake); - } - - public void drawTranslate(UGraphic ug, UTranslate translate1, UTranslate translate2) { - final StringBounder stringBounder = ug.getStringBounder(); - Point2D p1 = getP1(stringBounder); - Point2D p2 = getP2(stringBounder); - final Direction originalDirection = Direction.leftOrRight(p1, p2); - p1 = translate1.getTranslated(p1); - p2 = translate2.getTranslated(p2); - final Direction newDirection = Direction.leftOrRight(p1, p2); - if (originalDirection != newDirection) { - final double delta = (originalDirection == Direction.RIGHT ? -1 : 1) * Diamond.diamondHalfSize; - final Dimension2D dimDiamond1 = diamond1.calculateDimension(stringBounder); - final Snake small = new Snake(color); - small.addPoint(p1); - small.addPoint(p1.getX() + delta, p1.getY()); - small.addPoint(p1.getX() + delta, p1.getY() + dimDiamond1.getHeight() * .75); - ug.draw(small); - p1 = small.getLast(); - } - final Snake snake = new Snake(color, usingArrow); - snake.addPoint(p1); - snake.addPoint(p2.getX(), p1.getY()); - snake.addPoint(p2); - ug.draw(snake); - - } - - private Point2D getP1(StringBounder stringBounder) { - final Dimension2D dimDiamond1 = diamond1.calculateDimension(stringBounder); - final double diamondWidth = dimDiamond1.getWidth(); - final double x; - if (getFtile2() == tile1) { - x = 0; - } else if (getFtile2() == tile2) { - x = diamondWidth; - } else { - throw new IllegalStateException(); - } - return getTranslateDiamond1(stringBounder) - .getTranslated(new Point2D.Double(x, dimDiamond1.getHeight() / 2)); - } - - private Point2D getP2(final StringBounder stringBounder) { - return translate(stringBounder).getTranslated(getFtile2().calculateDimension(stringBounder).getPointIn()); - } - - private UTranslate translate(StringBounder stringBounder) { - if (getFtile2() == tile1) { - return getTranslate1(stringBounder); - } - if (getFtile2() == tile2) { - return getTranslate2(stringBounder); - } - throw new IllegalStateException(); - } - } - - class ConnectionVerticalThenHorizontal extends AbstractConnection implements ConnectionTranslatable { - private final HtmlColor myArrowColor; - private final boolean branchEmpty; - - public ConnectionVerticalThenHorizontal(Ftile tile, HtmlColor myArrowColor, boolean branchEmpty) { - super(tile, diamond2); - this.myArrowColor = myArrowColor == null ? arrowColor : myArrowColor; - this.branchEmpty = branchEmpty; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - - final FtileGeometry geo = getFtile1().calculateDimension(stringBounder); - if (geo.hasPointOut() == false) { - return; - } - final Point2D p1 = geo.translate(translate(stringBounder)).getPointOut(); - final Point2D p2 = getP2(stringBounder); - - final double x1 = p1.getX(); - final double y1 = p1.getY(); - final double x2 = p2.getX(); - final double y2 = p2.getY(); - - final UPolygon arrow = x2 > x1 ? Arrows.asToRight() : Arrows.asToLeft(); - final Snake snake = new Snake(myArrowColor, arrow); - if (branchEmpty) { - snake.emphasizeDirection(Direction.DOWN); - } - snake.addPoint(x1, y1); - snake.addPoint(x1, y2); - snake.addPoint(x2, y2); - - ug.draw(snake); - } - - public void drawTranslate(UGraphic ug, UTranslate translate1, UTranslate translate2) { - final StringBounder stringBounder = ug.getStringBounder(); - final FtileGeometry geo = getFtile1().calculateDimension(stringBounder); - if (geo.hasPointOut() == false) { - return; - } - final Point2D p2 = getP2(stringBounder); - final Point2D p1 = geo.translate(translate(stringBounder)).getPointOut(); - final Direction originalDirection = Direction.leftOrRight(p1, p2); - - final double x1 = p1.getX(); - final double x2 = p2.getX(); - final Point2D mp1a = translate1.getTranslated(p1); - final Point2D mp2b = translate2.getTranslated(p2); - final Direction newDirection = Direction.leftOrRight(mp1a, mp2b); - final UPolygon arrow = x2 > x1 ? Arrows.asToRight() : Arrows.asToLeft(); - if (originalDirection == newDirection) { - final double delta = (x2 > x1 ? -1 : 1) * 1.5 * Diamond.diamondHalfSize; - final Point2D mp2bc = new Point2D.Double(mp2b.getX() + delta, mp2b.getY()); - final Snake snake = new Snake(myArrowColor); - final double middle = (mp1a.getY() + mp2b.getY()) / 2.0; - snake.addPoint(mp1a); - snake.addPoint(mp1a.getX(), middle); - snake.addPoint(mp2bc.getX(), middle); - snake.addPoint(mp2bc); - ug.draw(snake); - final Snake small = new Snake(myArrowColor, arrow); - small.addPoint(mp2bc); - small.addPoint(mp2bc.getX(), mp2b.getY()); - small.addPoint(mp2b); - ug.draw(small); - } else { - final double delta = (x2 > x1 ? -1 : 1) * 1.5 * Diamond.diamondHalfSize; - final Point2D mp2bb = new Point2D.Double(mp2b.getX() + delta, mp2b.getY() - 3 * Diamond.diamondHalfSize); - final Snake snake = new Snake(myArrowColor); - snake.addPoint(mp1a); - snake.addPoint(mp1a.getX(), mp2bb.getY()); - snake.addPoint(mp2bb); - ug.draw(snake); - final Snake small = new Snake(myArrowColor, arrow); - small.addPoint(mp2bb); - small.addPoint(mp2bb.getX(), mp2b.getY()); - small.addPoint(mp2b); - ug.draw(small); - - } - - } - - private Point2D getP2(StringBounder stringBounder) { - final Dimension2D dimDiamond2 = diamond2.calculateDimension(stringBounder); - final double diamondWidth = dimDiamond2.getWidth(); - final double x; - if (getFtile1() == tile1) { - x = 0; - } else if (getFtile1() == tile2) { - x = diamondWidth; - } else { - throw new IllegalStateException(); - } - return getTranslateDiamond2(stringBounder) - .getTranslated(new Point2D.Double(x, dimDiamond2.getHeight() / 2)); - } - - private UTranslate translate(StringBounder stringBounder) { - if (getFtile1() == tile1) { - return getTranslate1(stringBounder); - } - if (getFtile1() == tile2) { - return getTranslate2(stringBounder); - } - throw new IllegalStateException(); - } - } - - class ConnectionVerticalThenHorizontalDirect extends AbstractConnection implements ConnectionTranslatable { - private final HtmlColor myArrowColor; - private final boolean branchEmpty; - - public ConnectionVerticalThenHorizontalDirect(Ftile tile, HtmlColor myArrowColor, boolean branchEmpty) { - super(tile, diamond2); - this.myArrowColor = myArrowColor == null ? arrowColor : myArrowColor; - this.branchEmpty = branchEmpty; - } - - public void drawU(UGraphic ug) { - - final StringBounder stringBounder = ug.getStringBounder(); - final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); - - final FtileGeometry geo = getFtile1().calculateDimension(stringBounder); - if (geo.hasPointOut() == false) { - return; - } - final Point2D p1 = geo.translate(translate(stringBounder)).getPointOut(); - final Point2D p2 = new Point2D.Double(getLeft(stringBounder), dimTotal.getHeight() - - Diamond.diamondHalfSize); - - final double x1 = p1.getX(); - final double y1 = p1.getY(); - final double x2 = p2.getX(); - final double y2 = p2.getY(); - - final Snake snake = new Snake(myArrowColor); - if (branchEmpty) { - snake.emphasizeDirection(Direction.DOWN); - } - snake.addPoint(x1, y1); - snake.addPoint(x1, y2); - snake.addPoint(x2, y2); - snake.addPoint(x2, dimTotal.getHeight()); - - ug.draw(snake); - } - - private UTranslate translate(StringBounder stringBounder) { - if (getFtile1() == tile1) { - return getTranslate1(stringBounder); - } - if (getFtile1() == tile2) { - return getTranslate2(stringBounder); - } - throw new IllegalStateException(); - } - - public void drawTranslate(UGraphic ug, UTranslate translate1, UTranslate translate2) { - final StringBounder stringBounder = ug.getStringBounder(); - final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); - - final FtileGeometry geo = getFtile1().calculateDimension(stringBounder); - if (geo.hasPointOut() == false) { - return; - } - final Point2D p1 = geo.translate(translate(stringBounder)).getPointOut(); - final Point2D p2 = new Point2D.Double(getLeft(stringBounder), dimTotal.getHeight() - - Diamond.diamondHalfSize); - - final Point2D mp1a = translate1.getTranslated(p1); - final Point2D mp2b = translate2.getTranslated(p2); - - final Snake snake = new Snake(myArrowColor); - // snake.emphasizeDirection(Direction.DOWN); - - final double x1 = mp1a.getX(); - final double x2 = mp2b.getX(); - final double y2 = mp2b.getY(); - - snake.addPoint(mp1a); - snake.addPoint(x1, y2); - snake.addPoint(mp2b); - snake.addPoint(x2, dimTotal.getHeight()); - - ug.draw(snake); - } - } - - private UTranslate getTranslate1(StringBounder stringBounder) { - final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); - final Dimension2D dimDiamond1 = diamond1.calculateDimension(stringBounder); - final Dimension2D dim1 = tile1.calculateDimension(stringBounder); - - final double x1 = 0; - final double h = dimDiamond1.getHeight(); - // final double y1 = (dimTotal.getHeight() - 2 * h - dim1.getHeight()) / 2 + h; - final double y1 = h * 1.9; - return new UTranslate(x1, y1); - } - - private UTranslate getTranslate2(StringBounder stringBounder) { - final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); - final Dimension2D dimDiamond1 = diamond1.calculateDimension(stringBounder); - final Dimension2D dim2 = tile2.calculateDimension(stringBounder); - - final double x2 = dimTotal.getWidth() - dim2.getWidth(); - final double h = dimDiamond1.getHeight(); - // final double y2 = (dimTotal.getHeight() - 2 * h - dim2.getHeight()) / 2 + h; - final double y2 = h * 1.9; - return new UTranslate(x2, y2); - - } - - private UTranslate getTranslateDiamond1(StringBounder stringBounder) { - final double y1 = 0; - final Dimension2D dimDiamond1 = diamond1.calculateDimension(stringBounder); - final double x1 = getLeft(stringBounder) - dimDiamond1.getWidth() / 2; - return new UTranslate(x1, y1); - } - - private UTranslate getTranslateDiamond2(StringBounder stringBounder) { - final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); - final Dimension2D dimDiamond2 = diamond2.calculateDimension(stringBounder); - final double y2 = dimTotal.getHeight() - dimDiamond2.getHeight(); - final double x2 = getLeft(stringBounder) - dimDiamond2.getWidth() / 2; - return new UTranslate(x2, y2); - } - - @Override - public UTranslate getTranslateFor(Ftile child, StringBounder stringBounder) { - if (child == diamond1) { - return getTranslateDiamond1(stringBounder); - } - if (child == tile1) { - return getTranslate1(stringBounder); - } - if (child == tile2) { - return getTranslate2(stringBounder); - } - if (child == diamond2) { - return getTranslateDiamond2(stringBounder); - } - throw new UnsupportedOperationException(); - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - - ug.apply(getTranslateDiamond1(stringBounder)).draw(diamond1); - ug.apply(getTranslate1(stringBounder)).draw(tile1); - ug.apply(getTranslate2(stringBounder)).draw(tile2); - ug.apply(getTranslateDiamond2(stringBounder)).draw(diamond2); - } - - public FtileGeometry calculateDimension(StringBounder stringBounder) { - final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); - if (tile1.calculateDimension(stringBounder).hasPointOut() - || tile2.calculateDimension(stringBounder).hasPointOut()) { - return new FtileGeometry(dimTotal, getLeft(stringBounder), 0, dimTotal.getHeight()); - } - return new FtileGeometry(dimTotal, getLeft(stringBounder), 0); - } - - private Dimension2D calculateDimensionInternal; - - private Dimension2D calculateDimensionInternal(StringBounder stringBounder) { - if (calculateDimensionInternal == null) { - calculateDimensionInternal = calculateDimensionInternalSlow(stringBounder); - } - return calculateDimensionInternal; - } - - private Dimension2D calculateDimensionInternalSlow(StringBounder stringBounder) { - final FtileGeometry dim1 = tile1.calculateDimension(stringBounder); - final FtileGeometry dim2 = tile2.calculateDimension(stringBounder); - - final Dimension2D dimDiamond1 = diamond1.calculateDimension(stringBounder); - - final double withInner = Math.max(dimDiamond1.getWidth(), (dim1.getWidth() - dim1.getLeft()) + dim2.getLeft() - + 10); - final double width = dim1.getLeft() + withInner + (dim2.getWidth() - dim2.getLeft()); - - final Dimension2D dim12 = Dimension2DDouble.mergeLR(dim1, dim2); - - return new Dimension2DDouble(width + 30, dim12.getHeight() + dimDiamond1.getHeight() * 3 + 30); - } - - private double getLeft(StringBounder stringBounder) { - final double left1 = tile1.calculateDimension(stringBounder).translate(getTranslate1(stringBounder)).getLeft(); - final double left2 = tile2.calculateDimension(stringBounder).translate(getTranslate2(stringBounder)).getLeft(); - return (left1 + left2) / 2; - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLong2.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLong2.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLong2.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLong2.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,511 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.activitydiagram3.ftile.vcompact; - -import java.awt.geom.Dimension2D; -import java.awt.geom.Point2D; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.sourceforge.plantuml.Dimension2DDouble; -import net.sourceforge.plantuml.activitydiagram3.Branch; -import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractConnection; -import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; -import net.sourceforge.plantuml.activitydiagram3.ftile.Arrows; -import net.sourceforge.plantuml.activitydiagram3.ftile.Connection; -import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileAssemblySimple; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileMinWidth; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileUtils; -import net.sourceforge.plantuml.activitydiagram3.ftile.Snake; -import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; -import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamondInside2; -import net.sourceforge.plantuml.graphic.FontConfiguration; -import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.graphic.StringBounder; -import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; -import net.sourceforge.plantuml.svek.ConditionStyle; -import net.sourceforge.plantuml.ugraphic.UFont; -import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.ugraphic.UTranslate; - -class FtileIfLong2 extends AbstractFtile { - - private final double xSeparation = 20; - - private final List tiles; - private final Ftile tile2; - private final List diamonds; - private final List couples = new ArrayList(); - - private final HtmlColor arrowColor; - - private FtileIfLong2(List diamonds, List tiles, Ftile tile2, HtmlColor arrowColor) { - super(tiles.get(0).shadowing() || tile2.shadowing()); - if (diamonds.size() != tiles.size()) { - throw new IllegalArgumentException(); - } - for (int i = 0; i < diamonds.size(); i++) { - couples.add(new FtileAssemblySimple(diamonds.get(i), tiles.get(i))); - } - this.tile2 = tile2; - this.diamonds = new ArrayList(diamonds); - this.tiles = new ArrayList(tiles); - - this.arrowColor = arrowColor; - - } - - private static List alignDiamonds(List diamonds, StringBounder stringBounder) { - double maxOutY = 0; - for (Ftile diamond : diamonds) { - maxOutY = Math.max(maxOutY, diamond.calculateDimension(stringBounder).getOutY()); - } - final List result = new ArrayList(); - for (int i = 0; i < diamonds.size(); i++) { - Ftile diamond = diamonds.get(i); - final double missing = maxOutY - diamond.calculateDimension(stringBounder).getOutY(); - assert missing >= 0; - diamond = FtileUtils.addVerticalMargin(diamond, missing / 2, 20); - result.add(diamond); - } - return result; - } - - public Set getSwimlanes() { - final Set result = new HashSet(); - if (getSwimlaneIn() != null) { - result.add(getSwimlaneIn()); - } - for (Ftile tile : couples) { - result.addAll(tile.getSwimlanes()); - } - result.addAll(tile2.getSwimlanes()); - return Collections.unmodifiableSet(result); - } - - public Swimlane getSwimlaneIn() { - return couples.get(0).getSwimlaneIn(); - } - - public Swimlane getSwimlaneOut() { - return getSwimlaneIn(); - } - - static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, UFont font, - HtmlColor arrowColor, FtileFactory ftileFactory, ConditionStyle conditionStyle, List thens, - Branch branch2, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) { - - final List tiles = new ArrayList(); - - for (Branch branch : thens) { - tiles.add(new FtileMinWidth(branch.getFtile(), 30)); - } - - final Ftile tile2 = new FtileMinWidth(branch2.getFtile(), 30); - - final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, hyperlinkColor, - useUnderlineForHyperlink); - - List diamonds = new ArrayList(); - final List conns = new ArrayList(); - for (Branch branch : thens) { - final TextBlock tb1 = TextBlockUtils.create(branch.getLabelPositive(), fc, HorizontalAlignment.LEFT, - ftileFactory); - final TextBlock tbTest = TextBlockUtils.create(branch.getLabelTest(), fc, HorizontalAlignment.LEFT, - ftileFactory); - FtileDiamondInside2 diamond = new FtileDiamondInside2(branch.shadowing(), backColor, borderColor, swimlane, - tbTest); - diamond = diamond.withNorth(tb1); - diamonds.add(diamond); - } - - final TextBlock tb2 = TextBlockUtils.create(branch2.getLabelPositive(), fc, HorizontalAlignment.LEFT, - ftileFactory); - final int last = diamonds.size() - 1; - diamonds.set(last, ((FtileDiamondInside2) diamonds.get(last)).withEast(tb2)); - - diamonds = alignDiamonds(diamonds, ftileFactory.getStringBounder()); - - final FtileIfLong2 result = new FtileIfLong2(diamonds, tiles, tile2, arrowColor); - - for (int i = 0; i < thens.size(); i++) { - final Ftile ftile = tiles.get(i); - final Ftile diam = diamonds.get(i); - - final HtmlColor color = thens.get(i).getInlinkRenderingColor(); - conns.add(result.new ConnectionVerticalIn(diam, ftile, color == null ? arrowColor : color)); - conns.add(result.new ConnectionVerticalOut(ftile, arrowColor)); - } - - for (int i = 0; i < diamonds.size() - 1; i++) { - final Ftile diam1 = diamonds.get(i); - final Ftile diam2 = diamonds.get(i + 1); - conns.add(result.new ConnectionHorizontal(diam1, diam2, arrowColor)); - } - conns.add(result.new ConnectionIn(arrowColor)); - conns.add(result.new ConnectionLastElseIn(arrowColor)); - conns.add(result.new ConnectionLastElseOut(arrowColor)); - conns.add(result.new ConnectionHline(arrowColor)); - - return FtileUtils.addConnection(result, conns); - } - - class ConnectionHorizontal extends AbstractConnection { - - private final HtmlColor color; - - public ConnectionHorizontal(Ftile diam1, Ftile diam2, HtmlColor color) { - super(diam1, diam2); - this.color = color; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final Point2D p1 = getP1(stringBounder); - final Point2D p2 = getP2(stringBounder); - - final Snake snake = new Snake(color, Arrows.asToRight()); - snake.addPoint(p1); - snake.addPoint(p2); - ug.draw(snake); - } - - private Point2D getP1(StringBounder stringBounder) { - final FtileGeometry dimDiamond1 = getFtile1().calculateDimension(stringBounder); - final Point2D p = new Point2D.Double(dimDiamond1.getLeft() * 2, getYdiamontOutToLeft(dimDiamond1, - stringBounder)); - - return getTranslateDiamond1(getFtile1(), stringBounder).getTranslated(p); - } - - private Point2D getP2(StringBounder stringBounder) { - final FtileGeometry dimDiamond1 = getFtile2().calculateDimension(stringBounder); - final Point2D p = new Point2D.Double(0, getYdiamontOutToLeft(dimDiamond1, stringBounder)); - return getTranslateDiamond1(getFtile2(), stringBounder).getTranslated(p); - } - - } - - static private double getYdiamontOutToLeft(FtileGeometry dimDiamond1, StringBounder stringBounder) { - return (dimDiamond1.getInY() + dimDiamond1.getOutY()) / 2; - } - - class ConnectionIn extends AbstractConnection { - - private final HtmlColor arrowColor; - - public ConnectionIn(HtmlColor arrowColor) { - super(null, diamonds.get(0)); - this.arrowColor = arrowColor; - } - - public void drawU(UGraphic ug) { - final UTranslate tr = getTranslateDiamond1(getFtile2(), ug.getStringBounder()); - final Point2D p2 = tr.getTranslated(getFtile2().calculateDimension(ug.getStringBounder()).getPointIn()); - final Snake snake = new Snake(arrowColor, Arrows.asToDown()); - final Point2D p1 = calculateDimensionInternal(ug.getStringBounder()).getPointIn(); - - snake.addPoint(p1); - snake.addPoint(p2.getX(), p1.getY()); - snake.addPoint(p2); - ug.draw(snake); - } - - } - - class ConnectionLastElseIn extends AbstractConnection { - - private final HtmlColor arrowColor; - - public ConnectionLastElseIn(HtmlColor arrowColor) { - super(diamonds.get(diamonds.size() - 1), tile2); - this.arrowColor = arrowColor; - } - - public void drawU(UGraphic ug) { - final Point2D p1 = getP1(ug.getStringBounder()); - final UTranslate tr2 = getTranslate2(ug.getStringBounder()); - final Point2D p2 = tr2.getTranslated(getFtile2().calculateDimension(ug.getStringBounder()).getPointIn()); - final Snake snake = new Snake(arrowColor, Arrows.asToDown()); - snake.addPoint(p1); - snake.addPoint(p2.getX(), p1.getY()); - snake.addPoint(p2); - ug.draw(snake); - } - - private Point2D getP1(StringBounder stringBounder) { - final FtileGeometry dimDiamond1 = getFtile1().calculateDimension(stringBounder); - final Point2D p = new Point2D.Double(dimDiamond1.getLeft() * 2, getYdiamontOutToLeft(dimDiamond1, - stringBounder)); - return getTranslateDiamond1(getFtile1(), stringBounder).getTranslated(p); - } - - } - - class ConnectionLastElseOut extends AbstractConnection { - - private final HtmlColor arrowColor; - - public ConnectionLastElseOut(HtmlColor arrowColor) { - super(tile2, null); - this.arrowColor = arrowColor; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final UTranslate tr1 = getTranslate2(stringBounder); - final FtileGeometry dim = getFtile1().calculateDimension(stringBounder); - if (dim.hasPointOut() == false) { - return; - } - final Point2D p1 = tr1.getTranslated(dim.getPointOut()); - final double totalHeight = calculateDimensionInternal(stringBounder).getHeight(); - final Point2D p2 = new Point2D.Double(p1.getX(), totalHeight); - - final Snake snake = new Snake(arrowColor, Arrows.asToDown()); - snake.addPoint(p1); - snake.addPoint(p2); - ug.draw(snake); - } - - } - - class ConnectionVerticalIn extends AbstractConnection { - - private final HtmlColor color; - - public ConnectionVerticalIn(Ftile diamond, Ftile tile, HtmlColor color) { - super(diamond, tile); - this.color = color; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final Point2D p1 = getP1(stringBounder); - final Point2D p2 = getP2(stringBounder); - - final Snake snake = new Snake(color, Arrows.asToDown()); - snake.addPoint(p1); - snake.addPoint(p2); - ug.draw(snake); - } - - private Point2D getP1(StringBounder stringBounder) { - final Point2D p = getFtile1().calculateDimension(stringBounder).getPointOut(); - return getTranslateDiamond1(getFtile1(), stringBounder).getTranslated(p); - } - - private Point2D getP2(StringBounder stringBounder) { - final Point2D p = getFtile2().calculateDimension(stringBounder).getPointIn(); - return getTranslate1(getFtile2(), stringBounder).getTranslated(p); - } - - } - - class ConnectionVerticalOut extends AbstractConnection { - - private final HtmlColor color; - - public ConnectionVerticalOut(Ftile tile, HtmlColor color) { - super(tile, null); - this.color = color; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final double totalHeight = calculateDimensionInternal(stringBounder).getHeight(); - final Point2D p1 = getP1(stringBounder); - if (p1 == null) { - return; - } - final Point2D p2 = new Point2D.Double(p1.getX(), totalHeight); - - final Snake snake = new Snake(color, Arrows.asToDown()); - snake.addPoint(p1); - snake.addPoint(p2); - ug.draw(snake); - } - - private Point2D getP1(StringBounder stringBounder) { - final FtileGeometry geo = getFtile1().calculateDimension(stringBounder); - if (geo.hasPointOut() == false) { - return null; - } - final Point2D p = geo.getPointOut(); - return getTranslate1(getFtile1(), stringBounder).getTranslated(p); - } - - } - - class ConnectionHline extends AbstractConnection { - - private final HtmlColor arrowColor; - - public ConnectionHline(HtmlColor arrowColor) { - super(null, null); - this.arrowColor = arrowColor; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final Dimension2D totalDim = calculateDimensionInternal(stringBounder); - - final List all = new ArrayList(couples); - all.add(tile2); - double minX = totalDim.getWidth() / 2; - double maxX = totalDim.getWidth() / 2; - for (Ftile tmp : all) { - if (tmp.calculateDimension(stringBounder).hasPointOut() == false) { - continue; - } - final UTranslate ut = getTranslateFor(tmp, stringBounder); - final double out = tmp.calculateDimension(stringBounder).translate(ut).getLeft(); - minX = Math.min(minX, out); - maxX = Math.max(maxX, out); - } - - final Snake s = new Snake(arrowColor); - s.goUnmergeable(); - final double height = totalDim.getHeight(); - s.addPoint(minX, height); - s.addPoint(maxX, height); - ug.draw(s); - } - } - - @Override - public UTranslate getTranslateFor(Ftile child, StringBounder stringBounder) { - if (child == tile2) { - return getTranslate2(stringBounder); - } - if (couples.contains(child)) { - return getTranslateCouple1(child, stringBounder); - } - throw new UnsupportedOperationException(); - } - - private UTranslate getTranslate2(StringBounder stringBounder) { - final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); - final Dimension2D dim2 = tile2.calculateDimension(stringBounder); - - final double x2 = dimTotal.getWidth() - dim2.getWidth(); - - final double h = 0; // getAllDiamondsHeight(stringBounder); - final double y2 = (dimTotal.getHeight() - h * 2 - dim2.getHeight()) / 2 + h; - - return new UTranslate(x2, y2); - - } - - private UTranslate getTranslateDiamond1(Ftile diamond, StringBounder stringBounder) { - final int idx = diamonds.indexOf(diamond); - if (idx == -1) { - throw new IllegalArgumentException(); - } - final UTranslate trCouple = getTranslateCouple1(couples.get(idx), stringBounder); - final UTranslate in = couples.get(idx).getTranslateFor(diamond, stringBounder); - return trCouple.compose(in); - } - - public UTranslate getTranslate1(Ftile tile, StringBounder stringBounder) { - final int idx = tiles.indexOf(tile); - if (idx == -1) { - throw new IllegalArgumentException(); - } - final UTranslate trCouple = getTranslateCouple1(couples.get(idx), stringBounder); - final UTranslate in = couples.get(idx).getTranslateFor(tile, stringBounder); - return trCouple.compose(in); - } - - private UTranslate getTranslateCouple1(Ftile candidat, StringBounder stringBounder) { - double x1 = 0; - - for (Ftile couple : couples) { - final FtileGeometry dim1 = couple.calculateDimension(stringBounder); - if (couple == candidat) { - return new UTranslate(x1, 25); - } - x1 += dim1.getWidth() + xSeparation; - } - throw new IllegalArgumentException(); - - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - for (Ftile couple : couples) { - ug.apply(getTranslateCouple1(couple, stringBounder)).draw(couple); - } - - ug.apply(getTranslate2(stringBounder)).draw(tile2); - } - - private FtileGeometry calculateDimensionInternal(StringBounder stringBounder) { - Dimension2D result = new Dimension2DDouble(0, 0); - for (Ftile couple : couples) { - result = Dimension2DDouble.mergeLR(result, couple.calculateDimension(stringBounder)); - } - final FtileGeometry dimTile2 = tile2.calculateDimension(stringBounder); - result = Dimension2DDouble.mergeLR(result, dimTile2); - result = Dimension2DDouble.delta(result, xSeparation * couples.size(), 100); - - return new FtileGeometry(result, result.getWidth() / 2, 0); - } - - public FtileGeometry calculateDimension(StringBounder stringBounder) { - final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); - - final List all = new ArrayList(tiles); - all.add(tile2); - for (Ftile tmp : all) { - if (tmp.calculateDimension(stringBounder).hasPointOut()) { - return new FtileGeometry(dimTotal, dimTotal.getWidth() / 2, 0, dimTotal.getHeight()); - } - } - return new FtileGeometry(dimTotal, dimTotal.getWidth() / 2, 0); - - } - - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLongHorizontal.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLongHorizontal.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLongHorizontal.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLongHorizontal.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,542 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.ftile.vcompact; + +import java.awt.geom.Dimension2D; +import java.awt.geom.Point2D; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.activitydiagram3.Branch; +import net.sourceforge.plantuml.activitydiagram3.LinkRendering; +import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractConnection; +import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; +import net.sourceforge.plantuml.activitydiagram3.ftile.Arrows; +import net.sourceforge.plantuml.activitydiagram3.ftile.Connection; +import net.sourceforge.plantuml.activitydiagram3.ftile.ConnectionTranslatable; +import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileAssemblySimple; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileMinWidth; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileUtils; +import net.sourceforge.plantuml.activitydiagram3.ftile.Snake; +import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.cond.FtileIfWithLinks; +import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamondInside2; +import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.FontConfiguration; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.svek.ConditionStyle; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +class FtileIfLongHorizontal extends AbstractFtile { + + private final double xSeparation = 20; + + private final List tiles; + private final Ftile tile2; + private final List diamonds; + private final List couples = new ArrayList(); + + private final HtmlColor arrowColor; + + private FtileIfLongHorizontal(List diamonds, List tiles, Ftile tile2, HtmlColor arrowColor) { + super(tiles.get(0).shadowing() || tile2.shadowing()); + if (diamonds.size() != tiles.size()) { + throw new IllegalArgumentException(); + } + for (int i = 0; i < diamonds.size(); i++) { + couples.add(new FtileAssemblySimple(diamonds.get(i), tiles.get(i))); + } + this.tile2 = tile2; + this.diamonds = new ArrayList(diamonds); + this.tiles = new ArrayList(tiles); + + this.arrowColor = arrowColor; + + } + + private static List alignDiamonds(List diamonds, StringBounder stringBounder) { + double maxOutY = 0; + for (Ftile diamond : diamonds) { + maxOutY = Math.max(maxOutY, diamond.calculateDimension(stringBounder).getOutY()); + } + final List result = new ArrayList(); + for (int i = 0; i < diamonds.size(); i++) { + Ftile diamond = diamonds.get(i); + final double missing = maxOutY - diamond.calculateDimension(stringBounder).getOutY(); + assert missing >= 0; + diamond = FtileUtils.addVerticalMargin(diamond, missing / 2, 20); + result.add(diamond); + } + return result; + } + + public Set getSwimlanes() { + final Set result = new HashSet(); + if (getSwimlaneIn() != null) { + result.add(getSwimlaneIn()); + } + for (Ftile tile : couples) { + result.addAll(tile.getSwimlanes()); + } + result.addAll(tile2.getSwimlanes()); + return Collections.unmodifiableSet(result); + } + + public Swimlane getSwimlaneIn() { + return couples.get(0).getSwimlaneIn(); + } + + public Swimlane getSwimlaneOut() { + return getSwimlaneIn(); + } + + static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor, + FtileFactory ftileFactory, ConditionStyle conditionStyle, List thens, Branch branch2, + FontConfiguration fc, LinkRendering topInlinkRendering, LinkRendering afterEndwhile) { + final List tiles = new ArrayList(); + + for (Branch branch : thens) { + tiles.add(new FtileMinWidth(branch.getFtile(), 30)); + } + + final Ftile tile2 = new FtileMinWidth(branch2.getFtile(), 30); + + List diamonds = new ArrayList(); + for (Branch branch : thens) { + final TextBlock tb1 = branch.getLabelPositive().create(fc, HorizontalAlignment.LEFT, ftileFactory); + final TextBlock tbTest = branch.getLabelTest().create(fc, HorizontalAlignment.LEFT, ftileFactory); + FtileDiamondInside2 diamond = new FtileDiamondInside2(branch.shadowing(), backColor, borderColor, swimlane, + tbTest); + diamond = diamond.withNorth(tb1); + diamonds.add(diamond); + } + + final TextBlock tb2 = branch2.getLabelPositive().create(fc, HorizontalAlignment.LEFT, ftileFactory); + final int last = diamonds.size() - 1; + diamonds.set(last, ((FtileDiamondInside2) diamonds.get(last)).withEast(tb2)); + + diamonds = alignDiamonds(diamonds, ftileFactory.getStringBounder()); + + final FtileIfLongHorizontal result = new FtileIfLongHorizontal(diamonds, tiles, tile2, arrowColor); + final List conns = new ArrayList(); + + for (int i = 0; i < thens.size(); i++) { + final Ftile ftile = tiles.get(i); + final Ftile diam = diamonds.get(i); + + final HtmlColor color = FtileIfWithLinks.getInColor(thens.get(i), arrowColor); + conns.add(result.new ConnectionVerticalIn(diam, ftile, color == null ? arrowColor : color)); + conns.add(result.new ConnectionVerticalOut(ftile, arrowColor)); + } + + final HtmlColor topInColor = LinkRendering.getColor(topInlinkRendering, arrowColor); + for (int i = 0; i < diamonds.size() - 1; i++) { + final Ftile diam1 = diamonds.get(i); + final Ftile diam2 = diamonds.get(i + 1); + conns.add(result.new ConnectionHorizontal(diam1, diam2, topInColor)); + } + conns.add(result.new ConnectionIn(topInColor)); + conns.add(result.new ConnectionLastElseIn(FtileIfWithLinks.getInColor(branch2, arrowColor))); + conns.add(result.new ConnectionLastElseOut(arrowColor)); + final HtmlColor horizontalOutColor = LinkRendering.getColor(afterEndwhile, arrowColor); + conns.add(result.new ConnectionHline(horizontalOutColor)); + // conns.add(result.new ConnectionHline(HtmlColorUtils.BLUE)); + + return FtileUtils.addConnection(result, conns); + } + + class ConnectionHorizontal extends AbstractConnection { + + private final HtmlColor color; + + public ConnectionHorizontal(Ftile diam1, Ftile diam2, HtmlColor color) { + super(diam1, diam2); + this.color = color; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final Point2D p1 = getP1(stringBounder); + final Point2D p2 = getP2(stringBounder); + + final Snake snake = new Snake(color, Arrows.asToRight()); + snake.addPoint(p1); + snake.addPoint(p2); + ug.draw(snake); + } + + private Point2D getP1(StringBounder stringBounder) { + final FtileGeometry dimDiamond1 = getFtile1().calculateDimension(stringBounder); + final Point2D p = new Point2D.Double(dimDiamond1.getLeft() * 2, getYdiamontOutToLeft(dimDiamond1, + stringBounder)); + + return getTranslateDiamond1(getFtile1(), stringBounder).getTranslated(p); + } + + private Point2D getP2(StringBounder stringBounder) { + final FtileGeometry dimDiamond1 = getFtile2().calculateDimension(stringBounder); + final Point2D p = new Point2D.Double(0, getYdiamontOutToLeft(dimDiamond1, stringBounder)); + return getTranslateDiamond1(getFtile2(), stringBounder).getTranslated(p); + } + + } + + static private double getYdiamontOutToLeft(FtileGeometry dimDiamond1, StringBounder stringBounder) { + return (dimDiamond1.getInY() + dimDiamond1.getOutY()) / 2; + } + + class ConnectionIn extends AbstractConnection { + + private final HtmlColor arrowColor; + + public ConnectionIn(HtmlColor arrowColor) { + super(null, diamonds.get(0)); + this.arrowColor = arrowColor; + } + + public void drawU(UGraphic ug) { + final UTranslate tr = getTranslateDiamond1(getFtile2(), ug.getStringBounder()); + final Point2D p2 = tr.getTranslated(getFtile2().calculateDimension(ug.getStringBounder()).getPointIn()); + final Snake snake = new Snake(arrowColor, Arrows.asToDown()); + final Point2D p1 = calculateDimensionInternal(ug.getStringBounder()).getPointIn(); + + snake.addPoint(p1); + snake.addPoint(p2.getX(), p1.getY()); + snake.addPoint(p2); + ug.draw(snake); + } + + } + + class ConnectionLastElseIn extends AbstractConnection { + + private final HtmlColor arrowColor; + + public ConnectionLastElseIn(HtmlColor arrowColor) { + super(diamonds.get(diamonds.size() - 1), tile2); + this.arrowColor = arrowColor; + } + + public void drawU(UGraphic ug) { + final Point2D p1 = getP1(ug.getStringBounder()); + final UTranslate tr2 = getTranslate2(ug.getStringBounder()); + final Point2D p2 = tr2.getTranslated(getFtile2().calculateDimension(ug.getStringBounder()).getPointIn()); + final Snake snake = new Snake(arrowColor, Arrows.asToDown()); + snake.addPoint(p1); + snake.addPoint(p2.getX(), p1.getY()); + snake.addPoint(p2); + ug.draw(snake); + } + + private Point2D getP1(StringBounder stringBounder) { + final FtileGeometry dimDiamond1 = getFtile1().calculateDimension(stringBounder); + final Point2D p = new Point2D.Double(dimDiamond1.getLeft() * 2, getYdiamontOutToLeft(dimDiamond1, + stringBounder)); + return getTranslateDiamond1(getFtile1(), stringBounder).getTranslated(p); + } + + } + + class ConnectionLastElseOut extends AbstractConnection { + + private final HtmlColor arrowColor; + + public ConnectionLastElseOut(HtmlColor arrowColor) { + super(tile2, null); + this.arrowColor = arrowColor; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final UTranslate tr1 = getTranslate2(stringBounder); + final FtileGeometry dim = getFtile1().calculateDimension(stringBounder); + if (dim.hasPointOut() == false) { + return; + } + final Point2D p1 = tr1.getTranslated(dim.getPointOut()); + final double totalHeight = calculateDimensionInternal(stringBounder).getHeight(); + final Point2D p2 = new Point2D.Double(p1.getX(), totalHeight); + + final Snake snake = new Snake(arrowColor, Arrows.asToDown()); + snake.addPoint(p1); + snake.addPoint(p2); + ug.draw(snake); + } + + } + + class ConnectionVerticalIn extends AbstractConnection implements ConnectionTranslatable { + + private final HtmlColor color; + + public ConnectionVerticalIn(Ftile diamond, Ftile tile, HtmlColor color) { + super(diamond, tile); + this.color = color; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final Point2D p1 = getP1(stringBounder); + final Point2D p2 = getP2(stringBounder); + + final Snake snake = new Snake(color, Arrows.asToDown()); + snake.addPoint(p1); + snake.addPoint(p2); + ug.draw(snake); + } + + private Point2D getP1(StringBounder stringBounder) { + final Point2D p = getFtile1().calculateDimension(stringBounder).getPointOut(); + return getTranslateDiamond1(getFtile1(), stringBounder).getTranslated(p); + } + + private Point2D getP2(StringBounder stringBounder) { + final Point2D p = getFtile2().calculateDimension(stringBounder).getPointIn(); + return getTranslate1(getFtile2(), stringBounder).getTranslated(p); + } + + public void drawTranslate(UGraphic ug, UTranslate translate1, UTranslate translate2) { + final Point2D p1 = getP1(ug.getStringBounder()); + final Point2D p2 = getP2(ug.getStringBounder()); + + final Snake snake = new Snake(color, Arrows.asToDown()); + + final Point2D mp1a = translate1.getTranslated(p1); + final Point2D mp2b = translate2.getTranslated(p2); + final double middle = mp1a.getY() + 4; + snake.addPoint(mp1a); + snake.addPoint(mp1a.getX(), middle); + snake.addPoint(mp2b.getX(), middle); + snake.addPoint(mp2b); + ug.draw(snake); + } + + } + + class ConnectionVerticalOut extends AbstractConnection { + + private final HtmlColor color; + + public ConnectionVerticalOut(Ftile tile, HtmlColor color) { + super(tile, null); + this.color = color; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final double totalHeight = calculateDimensionInternal(stringBounder).getHeight(); + final Point2D p1 = getP1(stringBounder); + if (p1 == null) { + return; + } + final Point2D p2 = new Point2D.Double(p1.getX(), totalHeight); + + final Snake snake = new Snake(color, Arrows.asToDown()); + snake.addPoint(p1); + snake.addPoint(p2); + ug.draw(snake); + } + + private Point2D getP1(StringBounder stringBounder) { + final FtileGeometry geo = getFtile1().calculateDimension(stringBounder); + if (geo.hasPointOut() == false) { + return null; + } + final Point2D p = geo.getPointOut(); + return getTranslate1(getFtile1(), stringBounder).getTranslated(p); + } + + } + + class ConnectionHline extends AbstractConnection { + + private final HtmlColor arrowColor; + + public ConnectionHline(HtmlColor arrowColor) { + super(null, null); + this.arrowColor = arrowColor; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final Dimension2D totalDim = calculateDimensionInternal(stringBounder); + + final Swimlane intoSw; + if (ug instanceof UGraphicInterceptorOneSwimlane) { + intoSw = ((UGraphicInterceptorOneSwimlane) ug).getSwimlane(); + } else { + intoSw = null; + } + + final List all = new ArrayList(couples); + all.add(tile2); + double minX = totalDim.getWidth() / 2; + double maxX = totalDim.getWidth() / 2; + boolean atLeastOne = false; + for (Ftile tmp : all) { + if (tmp.calculateDimension(stringBounder).hasPointOut() == false) { + continue; + } + if (intoSw != null && tmp.getSwimlanes().contains(intoSw) == false) { + continue; + } + if (intoSw != null && tmp.getSwimlaneOut() != intoSw) { + continue; + } + atLeastOne = true; + final UTranslate ut = getTranslateFor(tmp, stringBounder); + final double out = tmp.calculateDimension(stringBounder).translate(ut).getLeft(); + minX = Math.min(minX, out); + maxX = Math.max(maxX, out); + } + if (atLeastOne == false) { + return; + } + + final Snake s = new Snake(arrowColor); + s.goUnmergeable(); + final double height = totalDim.getHeight(); + s.addPoint(minX, height); + s.addPoint(maxX, height); + ug.draw(s); + } + } + + @Override + public UTranslate getTranslateFor(Ftile child, StringBounder stringBounder) { + if (child == tile2) { + return getTranslate2(stringBounder); + } + if (couples.contains(child)) { + return getTranslateCouple1(child, stringBounder); + } + throw new UnsupportedOperationException(); + } + + private UTranslate getTranslate2(StringBounder stringBounder) { + final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); + final Dimension2D dim2 = tile2.calculateDimension(stringBounder); + + final double x2 = dimTotal.getWidth() - dim2.getWidth(); + + final double h = 0; // getAllDiamondsHeight(stringBounder); + final double y2 = (dimTotal.getHeight() - h * 2 - dim2.getHeight()) / 2 + h; + + return new UTranslate(x2, y2); + + } + + private UTranslate getTranslateDiamond1(Ftile diamond, StringBounder stringBounder) { + final int idx = diamonds.indexOf(diamond); + if (idx == -1) { + throw new IllegalArgumentException(); + } + final UTranslate trCouple = getTranslateCouple1(couples.get(idx), stringBounder); + final UTranslate in = couples.get(idx).getTranslateFor(diamond, stringBounder); + return trCouple.compose(in); + } + + public UTranslate getTranslate1(Ftile tile, StringBounder stringBounder) { + final int idx = tiles.indexOf(tile); + if (idx == -1) { + throw new IllegalArgumentException(); + } + final UTranslate trCouple = getTranslateCouple1(couples.get(idx), stringBounder); + final UTranslate in = couples.get(idx).getTranslateFor(tile, stringBounder); + return trCouple.compose(in); + } + + private UTranslate getTranslateCouple1(Ftile candidat, StringBounder stringBounder) { + double x1 = 0; + + for (Ftile couple : couples) { + final FtileGeometry dim1 = couple.calculateDimension(stringBounder); + if (couple == candidat) { + return new UTranslate(x1, 25); + } + x1 += dim1.getWidth() + xSeparation; + } + throw new IllegalArgumentException(); + + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + for (Ftile couple : couples) { + ug.apply(getTranslateCouple1(couple, stringBounder)).draw(couple); + } + + ug.apply(getTranslate2(stringBounder)).draw(tile2); + } + + private FtileGeometry calculateDimensionInternal(StringBounder stringBounder) { + Dimension2D result = new Dimension2DDouble(0, 0); + for (Ftile couple : couples) { + result = Dimension2DDouble.mergeLR(result, couple.calculateDimension(stringBounder)); + } + final FtileGeometry dimTile2 = tile2.calculateDimension(stringBounder); + result = Dimension2DDouble.mergeLR(result, dimTile2); + result = Dimension2DDouble.delta(result, xSeparation * couples.size(), 100); + + return new FtileGeometry(result, result.getWidth() / 2, 0); + } + + public FtileGeometry calculateDimension(StringBounder stringBounder) { + final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); + + final List all = new ArrayList(tiles); + all.add(tile2); + for (Ftile tmp : all) { + if (tmp.calculateDimension(stringBounder).hasPointOut()) { + return new FtileGeometry(dimTotal, dimTotal.getWidth() / 2, 0, dimTotal.getHeight()); + } + } + return new FtileGeometry(dimTotal, dimTotal.getWidth() / 2, 0); + + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLong.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLong.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLong.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLong.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,516 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.activitydiagram3.ftile.vcompact; - -import java.awt.geom.Dimension2D; -import java.awt.geom.Point2D; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.sourceforge.plantuml.Dimension2DDouble; -import net.sourceforge.plantuml.activitydiagram3.Branch; -import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractConnection; -import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; -import net.sourceforge.plantuml.activitydiagram3.ftile.Arrows; -import net.sourceforge.plantuml.activitydiagram3.ftile.Connection; -import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileMinWidth; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileUtils; -import net.sourceforge.plantuml.activitydiagram3.ftile.Snake; -import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; -import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamondInside; -import net.sourceforge.plantuml.graphic.FontConfiguration; -import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.graphic.StringBounder; -import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; -import net.sourceforge.plantuml.svek.ConditionStyle; -import net.sourceforge.plantuml.ugraphic.UFont; -import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.ugraphic.UTranslate; - -class FtileIfLong extends AbstractFtile { - - private final double xSeparation = 20; - - private final List tiles; - private final Ftile tile2; - private final List diamonds; - - private final HtmlColor arrowColor; - - private FtileIfLong(List diamonds, List tiles, Ftile tile2, HtmlColor arrowColor) { - super(tiles.get(0).shadowing() || tile2.shadowing()); - this.diamonds = diamonds; - this.tiles = tiles; - this.tile2 = tile2; - - this.arrowColor = arrowColor; - - } - - public Set getSwimlanes() { - final Set result = new HashSet(); - if (getSwimlaneIn() != null) { - result.add(getSwimlaneIn()); - } - for (Ftile tile : tiles) { - result.addAll(tile.getSwimlanes()); - } - result.addAll(tile2.getSwimlanes()); - return Collections.unmodifiableSet(result); - } - - public Swimlane getSwimlaneIn() { - return diamonds.get(0).getSwimlaneIn(); - } - - public Swimlane getSwimlaneOut() { - return getSwimlaneIn(); - } - - static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, UFont font, - HtmlColor arrowColor, FtileFactory ftileFactory, ConditionStyle conditionStyle, List thens, - Branch branch2, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) { - - final List tiles = new ArrayList(); - - for (Branch branch : thens) { - tiles.add(new FtileMinWidth(branch.getFtile(), 30)); - } - - final Ftile tile2 = new FtileMinWidth(branch2.getFtile(), 30); - - final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, hyperlinkColor, - useUnderlineForHyperlink); - - final List diamonds = new ArrayList(); - final List conns = new ArrayList(); - for (Branch branch : thens) { - final TextBlock tb1 = TextBlockUtils.create(branch.getLabelPositive(), fc, HorizontalAlignment.LEFT, - ftileFactory); - final TextBlock tbTest = TextBlockUtils.create(branch.getLabelTest(), fc, HorizontalAlignment.LEFT, - ftileFactory); - FtileDiamondInside diamond = new FtileDiamondInside(branch.shadowing(), backColor, borderColor, swimlane, - tbTest); - diamond = diamond.withNorth(tb1); - diamonds.add(diamond); - } - - final TextBlock tb2 = TextBlockUtils.create(branch2.getLabelPositive(), fc, HorizontalAlignment.LEFT, - ftileFactory); - final int last = diamonds.size() - 1; - diamonds.set(last, ((FtileDiamondInside) diamonds.get(last)).withEast(tb2)); - - final FtileIfLong result = new FtileIfLong(diamonds, tiles, tile2, arrowColor); - - for (int i = 0; i < thens.size(); i++) { - final Ftile ftile = tiles.get(i); - final Ftile diam = diamonds.get(i); - - final HtmlColor color = thens.get(i).getInlinkRenderingColor(); - conns.add(result.new ConnectionVerticalIn(diam, ftile, color == null ? arrowColor : color)); - conns.add(result.new ConnectionVerticalOut(ftile, arrowColor)); - } - - for (int i = 0; i < diamonds.size() - 1; i++) { - final Ftile diam1 = diamonds.get(i); - final Ftile diam2 = diamonds.get(i + 1); - conns.add(result.new ConnectionHorizontal(diam1, diam2, arrowColor)); - } - conns.add(result.new ConnectionIn(arrowColor)); - conns.add(result.new ConnectionLastElseIn(arrowColor)); - conns.add(result.new ConnectionLastElseOut(arrowColor)); - conns.add(result.new ConnectionHline(arrowColor)); - - return FtileUtils.addConnection(result, conns); - } - - class ConnectionHorizontal extends AbstractConnection { - - private final HtmlColor color; - - public ConnectionHorizontal(Ftile diam1, Ftile diam2, HtmlColor color) { - super(diam1, diam2); - this.color = color; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final Point2D p1 = getP1(stringBounder); - final Point2D p2 = getP2(stringBounder); - - final Snake snake = new Snake(color, Arrows.asToRight()); - snake.addPoint(p1); - snake.addPoint(p2); - ug.draw(snake); - } - - private Point2D getP1(StringBounder stringBounder) { - final FtileGeometry dimDiamond1 = getFtile1().calculateDimension(stringBounder); - final Point2D p = new Point2D.Double(dimDiamond1.getWidth(), dimDiamond1.getOutY() / 2); - - return getTranslateDiamond1(getFtile1(), stringBounder).getTranslated(p); - } - - private Point2D getP2(StringBounder stringBounder) { - final FtileGeometry dimDiamond1 = getFtile2().calculateDimension(stringBounder); - final Point2D p = new Point2D.Double(0, dimDiamond1.getOutY() / 2); - return getTranslateDiamond1(getFtile2(), stringBounder).getTranslated(p); - } - - } - - class ConnectionIn extends AbstractConnection { - - private final HtmlColor arrowColor; - - public ConnectionIn(HtmlColor arrowColor) { - super(null, diamonds.get(0)); - this.arrowColor = arrowColor; - } - - public void drawU(UGraphic ug) { - final UTranslate tr = getTranslateDiamond1(getFtile2(), ug.getStringBounder()); - final Point2D p2 = tr.getTranslated(getFtile2().calculateDimension(ug.getStringBounder()).getPointIn()); - final Snake snake = new Snake(arrowColor, Arrows.asToDown()); - final Point2D p1 = calculateDimension(ug.getStringBounder()).getPointIn(); - - snake.addPoint(p1); - snake.addPoint(p2.getX(), p1.getY()); - snake.addPoint(p2); - ug.draw(snake); - } - - } - - class ConnectionLastElseIn extends AbstractConnection { - - private final HtmlColor arrowColor; - - public ConnectionLastElseIn(HtmlColor arrowColor) { - super(diamonds.get(diamonds.size() - 1), tile2); - this.arrowColor = arrowColor; - } - - public void drawU(UGraphic ug) { - final Point2D p1 = getP1(ug.getStringBounder()); - final UTranslate tr2 = getTranslate2(ug.getStringBounder()); - final Point2D p2 = tr2.getTranslated(getFtile2().calculateDimension(ug.getStringBounder()).getPointIn()); - final Snake snake = new Snake(arrowColor, Arrows.asToDown()); - snake.addPoint(p1); - snake.addPoint(p2.getX(), p1.getY()); - snake.addPoint(p2); - ug.draw(snake); - } - - private Point2D getP1(StringBounder stringBounder) { - final FtileGeometry dimDiamond1 = getFtile1().calculateDimension(stringBounder); - final Point2D p = new Point2D.Double(dimDiamond1.getWidth(), dimDiamond1.getOutY() / 2); - return getTranslateDiamond1(getFtile1(), stringBounder).getTranslated(p); - } - - } - - class ConnectionLastElseOut extends AbstractConnection { - - private final HtmlColor arrowColor; - - public ConnectionLastElseOut(HtmlColor arrowColor) { - super(tile2, null); - this.arrowColor = arrowColor; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final UTranslate tr1 = getTranslate2(stringBounder); - final FtileGeometry dim = getFtile1().calculateDimension(stringBounder); - if (dim.hasPointOut() == false) { - return; - } - final Point2D p1 = tr1.getTranslated(dim.getPointOut()); - final double totalHeight = calculateDimensionInternal(stringBounder).getHeight(); - final Point2D p2 = new Point2D.Double(p1.getX(), totalHeight); - - final Snake snake = new Snake(arrowColor, Arrows.asToDown()); - snake.addPoint(p1); - snake.addPoint(p2); - ug.draw(snake); - } - - } - - class ConnectionVerticalIn extends AbstractConnection { - - private final HtmlColor color; - - public ConnectionVerticalIn(Ftile diamond, Ftile tile, HtmlColor color) { - super(diamond, tile); - this.color = color; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final Point2D p1 = getP1(stringBounder); - final Point2D p2 = getP2(stringBounder); - - final Snake snake = new Snake(color, Arrows.asToDown()); - snake.addPoint(p1); - snake.addPoint(p2); - ug.draw(snake); - } - - private Point2D getP1(StringBounder stringBounder) { - final Point2D p = getFtile1().calculateDimension(stringBounder).getPointOut(); - return getTranslateDiamond1(getFtile1(), stringBounder).getTranslated(p); - } - - private Point2D getP2(StringBounder stringBounder) { - final Point2D p = getFtile2().calculateDimension(stringBounder).getPointIn(); - return getTranslate1(getFtile2(), stringBounder).getTranslated(p); - } - - } - - class ConnectionVerticalOut extends AbstractConnection { - - private final HtmlColor color; - - public ConnectionVerticalOut(Ftile tile, HtmlColor color) { - super(tile, null); - this.color = color; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final double totalHeight = calculateDimensionInternal(stringBounder).getHeight(); - final Point2D p1 = getP1(stringBounder); - if (p1 == null) { - return; - } - final Point2D p2 = new Point2D.Double(p1.getX(), totalHeight); - - final Snake snake = new Snake(color, Arrows.asToDown()); - snake.addPoint(p1); - snake.addPoint(p2); - ug.draw(snake); - } - - private Point2D getP1(StringBounder stringBounder) { - final FtileGeometry geo = getFtile1().calculateDimension(stringBounder); - if (geo.hasPointOut() == false) { - return null; - } - final Point2D p = geo.getPointOut(); - return getTranslate1(getFtile1(), stringBounder).getTranslated(p); - } - - } - - class ConnectionHline extends AbstractConnection { - - private final HtmlColor arrowColor; - - public ConnectionHline(HtmlColor arrowColor) { - super(null, null); - this.arrowColor = arrowColor; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final Dimension2D totalDim = calculateDimensionInternal(stringBounder); - - final List all = new ArrayList(tiles); - all.add(tile2); - double minX = totalDim.getWidth() / 2; - double maxX = totalDim.getWidth() / 2; - for (Ftile tmp : all) { - if (tmp.calculateDimension(stringBounder).hasPointOut() == false) { - continue; - } - final UTranslate ut = getTranslateFor(tmp, stringBounder); - final double out = tmp.calculateDimension(stringBounder).translate(ut).getLeft(); - minX = Math.min(minX, out); - maxX = Math.max(maxX, out); - } - - final Snake s = new Snake(arrowColor); - s.goUnmergeable(); - final double height = totalDim.getHeight(); - s.addPoint(minX, height); - s.addPoint(maxX, height); - ug.draw(s); - } - } - - @Override - public UTranslate getTranslateFor(Ftile child, StringBounder stringBounder) { - if (child == tile2) { - return getTranslate2(stringBounder); - } - if (tiles.contains(child)) { - return getTranslate1(child, stringBounder); - } - throw new UnsupportedOperationException(); - } - - private UTranslate getTranslate2(StringBounder stringBounder) { - final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); - final Dimension2D dim2 = tile2.calculateDimension(stringBounder); - - final double x2 = dimTotal.getWidth() - dim2.getWidth(); - - final double h = getAllDiamondsHeight(stringBounder); - final double y2 = (dimTotal.getHeight() - h * 2 - dim2.getHeight()) / 2 + h; - - return new UTranslate(x2, y2); - - } - - private UTranslate getTranslateDiamond1(Ftile diamond1, StringBounder stringBounder) { - double x1 = 0; - - for (Ftile diamond : diamonds) { - final FtileGeometry dim1 = dimDiamondAndTile(stringBounder, diamond); - if (diamond == diamond1) { - final FtileGeometry dimDiamond = diamond.calculateDimension(stringBounder); - double xresult = x1 + dim1.getLeft() - dimDiamond.getLeft(); - return new UTranslate(xresult, 25); - } - x1 += dim1.getWidth() + xSeparation; - } - throw new IllegalArgumentException(); - - } - - private UTranslate getTranslate1(Ftile tile1, StringBounder stringBounder) { - final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); - double x1 = 0; - - for (Ftile tile : tiles) { - final Dimension2D dim1 = dimDiamondAndTile(stringBounder, tile); - if (tile == tile1) { - final Dimension2D dimTile = tile.calculateDimension(stringBounder); - final double h = getAllDiamondsHeight(stringBounder); - final double y1 = (dimTotal.getHeight() - 2 * h - dimTile.getHeight()) / 2 + h; - return new UTranslate(x1 + (dim1.getWidth() - dimTile.getWidth()) / 2, y1); - } - x1 += dim1.getWidth() + xSeparation; - } - throw new IllegalArgumentException(); - - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - for (Ftile tile : tiles) { - ug.apply(getTranslate1(tile, stringBounder)).draw(tile); - } - for (Ftile diamond : diamonds) { - ug.apply(getTranslateDiamond1(diamond, stringBounder)).draw(diamond); - } - - ug.apply(getTranslate2(stringBounder)).draw(tile2); - } - - public FtileGeometry calculateDimension(StringBounder stringBounder) { - final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); - - final List all = new ArrayList(tiles); - all.add(tile2); - for (Ftile tmp : all) { - if (tmp.calculateDimension(stringBounder).hasPointOut()) { - return new FtileGeometry(dimTotal, dimTotal.getWidth() / 2, 0, dimTotal.getHeight()); - } - } - return new FtileGeometry(dimTotal, dimTotal.getWidth() / 2, 0); - - } - - private FtileGeometry dimDiamondAndTile(StringBounder stringBounder, Ftile tileOrDiamond) { - for (int i = 0; i < tiles.size(); i++) { - final Ftile tile = tiles.get(i); - final Ftile diamond = diamonds.get(i); - if (tile != tileOrDiamond && diamond != tileOrDiamond) { - continue; - } - final FtileGeometry dimTile = tile.calculateDimension(stringBounder); - final FtileGeometry dimDiamond = diamond.calculateDimension(stringBounder); - return dimDiamond.appendBottom(dimTile); - } - throw new UnsupportedOperationException(); - - } - - private Dimension2D calculateDimensionInternal(StringBounder stringBounder) { - Dimension2D dimOnlyTiles = new Dimension2DDouble(0, 0); - Dimension2D dimOnlyDiamond = new Dimension2DDouble(0, 0); - Dimension2D dimBoth = new Dimension2DDouble(0, 0); - for (int i = 0; i < tiles.size(); i++) { - final Ftile tile = tiles.get(i); - final Ftile diamond = diamonds.get(i); - final FtileGeometry dimTile = tile.calculateDimension(stringBounder); - final FtileGeometry dimDiamond = diamond.calculateDimension(stringBounder); - final FtileGeometry both = dimDiamond.appendBottom(dimTile); - dimOnlyTiles = Dimension2DDouble.mergeLR(dimOnlyTiles, dimTile); - dimOnlyDiamond = Dimension2DDouble.mergeLR(dimOnlyDiamond, dimDiamond); - dimBoth = Dimension2DDouble.mergeLR(dimBoth, both); - } - final FtileGeometry dimTile2 = tile2.calculateDimension(stringBounder); - dimOnlyTiles = Dimension2DDouble.mergeLR(dimOnlyTiles, dimTile2); - dimBoth = Dimension2DDouble.mergeLR(dimBoth, dimTile2); - - final Dimension2D result = new Dimension2DDouble(dimBoth.getWidth(), dimOnlyDiamond.getHeight() * 4 - + dimOnlyTiles.getHeight()); - return Dimension2DDouble.delta(result, xSeparation * tiles.size(), 40); - } - - private double getAllDiamondsHeight(StringBounder stringBounder) { - Dimension2D dimOnlyDiamond = new Dimension2DDouble(0, 0); - for (Ftile diamond : diamonds) { - final Dimension2D dimDiamond = diamond.calculateDimension(stringBounder); - dimOnlyDiamond = Dimension2DDouble.mergeLR(dimOnlyDiamond, dimDiamond); - } - return dimOnlyDiamond.getHeight(); - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLongVertical.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLongVertical.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLongVertical.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfLongVertical.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,587 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.ftile.vcompact; + +import java.awt.geom.Dimension2D; +import java.awt.geom.Point2D; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.activitydiagram3.Branch; +import net.sourceforge.plantuml.activitydiagram3.LinkRendering; +import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractConnection; +import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; +import net.sourceforge.plantuml.activitydiagram3.ftile.Arrows; +import net.sourceforge.plantuml.activitydiagram3.ftile.Connection; +import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileMinWidth; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileOverpassing; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileUtils; +import net.sourceforge.plantuml.activitydiagram3.ftile.Snake; +import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.cond.FtileIfWithLinks; +import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamond; +import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamondInside3; +import net.sourceforge.plantuml.graphic.FontConfiguration; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.svek.ConditionStyle; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +class FtileIfLongVertical extends AbstractFtile { + + private final double ySeparation = 20; + + private final double marginy1 = 30; + + private final List tiles; + private final Ftile tile2; + private final List diamonds; + private final Ftile lastDiamond; + // private final List couples = new ArrayList(); + + private final HtmlColor arrowColor; + + private FtileIfLongVertical(List diamonds, List tiles, Ftile tile2, HtmlColor arrowColor, + Ftile lastDiamond) { + super(tiles.get(0).shadowing() || tile2.shadowing()); + if (diamonds.size() != tiles.size()) { + throw new IllegalArgumentException(); + } + this.lastDiamond = lastDiamond; + // for (int i = 0; i < diamonds.size(); i++) { + // couples.add(new FtileAssemblySimple(diamonds.get(i), tiles.get(i))); + // } + this.tile2 = tile2; + this.diamonds = new ArrayList(diamonds); + this.tiles = new ArrayList(tiles); + + this.arrowColor = arrowColor; + + } + + // private static List alignDiamonds(List diamonds, StringBounder stringBounder) { + // double maxOutY = 0; + // for (Ftile diamond : diamonds) { + // maxOutY = Math.max(maxOutY, diamond.calculateDimension(stringBounder).getOutY()); + // } + // final List result = new ArrayList(); + // for (int i = 0; i < diamonds.size(); i++) { + // Ftile diamond = diamonds.get(i); + // final double missing = maxOutY - diamond.calculateDimension(stringBounder).getOutY(); + // assert missing >= 0; + // diamond = FtileUtils.addVerticalMargin(diamond, missing / 2, 20); + // result.add(diamond); + // } + // return result; + // } + + public Set getSwimlanes() { + final Set result = new HashSet(); + if (getSwimlaneIn() != null) { + result.add(getSwimlaneIn()); + } + for (Ftile tile : tiles) { + result.addAll(tile.getSwimlanes()); + } + result.addAll(tile2.getSwimlanes()); + return Collections.unmodifiableSet(result); + } + + public Swimlane getSwimlaneIn() { + return tiles.get(0).getSwimlaneIn(); + } + + public Swimlane getSwimlaneOut() { + return getSwimlaneIn(); + } + + static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor, + FtileFactory ftileFactory, ConditionStyle conditionStyle, List thens, Branch branch2, + FontConfiguration fc, LinkRendering topInlinkRendering, LinkRendering afterEndwhile) { + final List tiles = new ArrayList(); + + for (Branch branch : thens) { + tiles.add(new FtileMinWidth(branch.getFtile(), 30)); + } + + final Ftile tile2 = new FtileMinWidth(branch2.getFtile(), 30); + + List diamonds = new ArrayList(); + for (Branch branch : thens) { + final TextBlock tb1 = branch.getLabelPositive().create(fc, HorizontalAlignment.LEFT, ftileFactory); + final TextBlock tbTest = branch.getLabelTest().create(fc, HorizontalAlignment.LEFT, ftileFactory); + FtileDiamondInside3 diamond = new FtileDiamondInside3(branch.shadowing(), backColor, borderColor, swimlane, + tbTest); + diamond = diamond.withEast(tb1); + diamonds.add(diamond); + } + + final TextBlock tb2 = branch2.getLabelPositive().create(fc, HorizontalAlignment.LEFT, ftileFactory); + final int last = diamonds.size() - 1; + diamonds.set(last, ((FtileDiamondInside3) diamonds.get(last)).withSouth(tb2)); + + // diamonds = alignDiamonds(diamonds, ftileFactory.getStringBounder()); + + final Ftile lastDiamond = new FtileDiamond(tiles.get(0).shadowing(), backColor, borderColor, swimlane); + + final FtileIfLongVertical result = new FtileIfLongVertical(diamonds, tiles, tile2, arrowColor, lastDiamond); + + final List conns = new ArrayList(); + for (int i = 0; i < thens.size(); i++) { + final Ftile ftile = tiles.get(i); + final Ftile diam = diamonds.get(i); + + final HtmlColor color = FtileIfWithLinks.getInColor(thens.get(i), arrowColor); + conns.add(result.new ConnectionVerticalIn(diam, ftile, color == null ? arrowColor : color)); + // conns.add(result.new ConnectionVerticalOut(ftile, arrowColor)); + } + + for (int i = 0; i < diamonds.size() - 1; i++) { + conns.add(result.new ConnectionVertical(diamonds.get(i), diamonds.get(i + 1), arrowColor)); + } + conns.add(result.new ConnectionThenOut(tiles.get(0), arrowColor)); + for (int i = 1; i < tiles.size(); i++) { + conns.add(result.new ConnectionThenOutConnect(tiles.get(i), arrowColor)); + } + + final HtmlColor topInColor = LinkRendering.getColor(topInlinkRendering, arrowColor); + // for (int i = 0; i < diamonds.size() - 1; i++) { + // final Ftile diam1 = diamonds.get(i); + // final Ftile diam2 = diamonds.get(i + 1); + // conns.add(result.new ConnectionHorizontal(diam1, diam2, topInColor)); + // } + conns.add(result.new ConnectionIn(topInColor)); + // conns.add(result.new ConnectionLastElseIn(FtileIfWithLinks.getInColor(branch2, arrowColor))); + // conns.add(result.new ConnectionLastElseOut(arrowColor)); + // final HtmlColor horizontalOutColor = LinkRendering.getColor(afterEndwhile, arrowColor); + // conns.add(result.new ConnectionHline(horizontalOutColor)); + conns.add(result.new ConnectionLastElse(topInColor)); + conns.add(result.new ConnectionLastElseOut(arrowColor)); + + return FtileUtils.addConnection(result, conns); + } + + static private double getYdiamontOutToLeft(FtileGeometry dimDiamond1, StringBounder stringBounder) { + return (dimDiamond1.getInY() + dimDiamond1.getOutY()) / 2; + } + + class ConnectionIn extends AbstractConnection { + + private final HtmlColor arrowColor; + + public ConnectionIn(HtmlColor arrowColor) { + super(null, diamonds.get(0)); + this.arrowColor = arrowColor; + } + + public void drawU(UGraphic ug) { + final UTranslate tr = getTranslateDiamond(getFtile2(), ug.getStringBounder()); + final Point2D p2 = tr.getTranslated(getFtile2().calculateDimension(ug.getStringBounder()).getPointIn()); + final Snake snake = new Snake(arrowColor, Arrows.asToDown()); + final Point2D p1 = calculateDimensionInternal(ug.getStringBounder()).getPointIn(); + + snake.addPoint(p1); + snake.addPoint(p1.getX(), (p1.getY() + p2.getY()) / 2); + snake.addPoint(p2.getX(), (p1.getY() + p2.getY()) / 2); + snake.addPoint(p2); + ug.draw(snake); + } + + } + + class ConnectionVerticalIn extends AbstractConnection { + + private final HtmlColor color; + + public ConnectionVerticalIn(Ftile diamond, Ftile tile, HtmlColor color) { + super(diamond, tile); + this.color = color; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final Point2D p1 = getP1(stringBounder); + final Point2D p2 = getP2(stringBounder); + + final Snake snake = new Snake(color, Arrows.asToDown()); + snake.addPoint(p1); + snake.addPoint(p2.getX(), p1.getY()); + snake.addPoint(p2); + ug.draw(snake); + } + + private Point2D getP1(StringBounder stringBounder) { + final Dimension2D dimDiamond1 = getFtile1().calculateDimension(stringBounder); + final double diamondWidth = dimDiamond1.getWidth(); + return getTranslateDiamond(getFtile1(), stringBounder).getTranslated( + new Point2D.Double(diamondWidth, dimDiamond1.getHeight() / 2)); + } + + private Point2D getP2(StringBounder stringBounder) { + final Point2D p = getFtile2().calculateDimension(stringBounder).getPointIn(); + return getTranslate1(getFtile2(), stringBounder).getTranslated(p); + } + + } + + class ConnectionVertical extends AbstractConnection { + + private final HtmlColor color; + + public ConnectionVertical(Ftile diamond1, Ftile diamond2, HtmlColor color) { + super(diamond1, diamond2); + this.color = color; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final Point2D p1 = getP1(stringBounder); + final Point2D p2 = getP2(stringBounder); + + final Snake snake = new Snake(color, Arrows.asToDown()); + snake.addPoint(p1); + snake.addPoint(p2); + ug.draw(snake); + } + + private Point2D getP1(StringBounder stringBounder) { + final Point2D p = getFtile1().calculateDimension(stringBounder).getPointOut(); + return getTranslateFor(getFtile1(), stringBounder).getTranslated(p); + } + + private Point2D getP2(StringBounder stringBounder) { + final Point2D p = getFtile2().calculateDimension(stringBounder).getPointIn(); + return getTranslateFor(getFtile2(), stringBounder).getTranslated(p); + } + + } + + class ConnectionLastElse extends AbstractConnection { + + private final HtmlColor arrowColor; + + public ConnectionLastElse(HtmlColor arrowColor) { + super(diamonds.get(diamonds.size() - 1), tile2); + this.arrowColor = arrowColor; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final UTranslate tr1 = getTranslateDiamond(getFtile1(), stringBounder); + final FtileGeometry dimDiamond = getFtile1().calculateDimension(stringBounder); + final Point2D p1 = tr1.getTranslated(dimDiamond.getPointOut()); + + final Point2D p2 = getTranslate2(stringBounder).getTranslated( + getFtile2().calculateDimension(stringBounder).getPointIn()); + + final Snake snake = new Snake(arrowColor, Arrows.asToDown()); + snake.addPoint(p1); + snake.addPoint(p1.getX(), p2.getY() - 15); + snake.addPoint(p2.getX(), p2.getY() - 15); + snake.addPoint(p2); + ug.draw(snake); + } + + } + + class ConnectionLastElseOut extends AbstractConnection { + + private final HtmlColor arrowColor; + + public ConnectionLastElseOut(HtmlColor arrowColor) { + super(tile2, lastDiamond); + this.arrowColor = arrowColor; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final FtileGeometry dim1 = getFtile1().calculateDimension(stringBounder); + if (dim1.hasPointOut() == false) { + return; + } + final Point2D p1 = getTranslate2(stringBounder).getTranslated(dim1.getPointOut()); + final Point2D p2 = getTranslateLastDiamond(stringBounder).getTranslated( + getFtile2().calculateDimension(stringBounder).getPointIn()); + + final Snake snake = new Snake(arrowColor, Arrows.asToDown()); + snake.addPoint(p1); + snake.addPoint(p1.getX(), p2.getY() - 15); + snake.addPoint(p2.getX(), p2.getY() - 15); + snake.addPoint(p2); + ug.draw(snake); + } + + } + + class ConnectionThenOut extends AbstractConnection { + + private final HtmlColor arrowColor; + + public ConnectionThenOut(Ftile tile1, HtmlColor arrowColor) { + super(tile1, lastDiamond); + this.arrowColor = arrowColor; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final FtileGeometry dim1 = getFtile1().calculateDimension(stringBounder); + if (dim1.hasPointOut() == false) { + return; + } + final Point2D p1 = getTranslate1(getFtile1(), stringBounder).getTranslated(dim1.getPointOut()); + + final FtileGeometry dimLastDiamond = getFtile2().calculateDimension(stringBounder); + Point2D p2 = getTranslateLastDiamond(stringBounder).getTranslated( + getFtile2().calculateDimension(stringBounder).getPointIn()); + p2 = new UTranslate(dimLastDiamond.getWidth() / 2, dimLastDiamond.getHeight() / 2).getTranslated(p2); + + final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); + + final Snake snake = new Snake(arrowColor, Arrows.asToLeft()); + snake.addPoint(p1); + snake.addPoint(p1.getX(), p1.getY() + 15); + snake.addPoint(dimTotal.getWidth(), p1.getY() + 15); + snake.addPoint(dimTotal.getWidth(), p2.getY()); + snake.addPoint(p2); + ug.draw(snake); + } + } + + class ConnectionThenOutConnect extends AbstractConnection { + + private final HtmlColor arrowColor; + + public ConnectionThenOutConnect(Ftile tile1, HtmlColor arrowColor) { + super(tile1, lastDiamond); + this.arrowColor = arrowColor; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final FtileGeometry dim1 = getFtile1().calculateDimension(stringBounder); + if (dim1.hasPointOut() == false) { + return; + } + final Point2D p1 = getTranslate1(getFtile1(), stringBounder).getTranslated(dim1.getPointOut()); + + final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); + + final Point2D p2 = new Point2D.Double(dimTotal.getWidth(), p1.getY() + 15); + + final Snake snake = new Snake(arrowColor, Arrows.asToRight()); + snake.addPoint(p1); + snake.addPoint(p1.getX(), p2.getY()); + snake.addPoint(p2); + ug.draw(snake); + } + + } + + @Override + public UTranslate getTranslateFor(Ftile child, StringBounder stringBounder) { + if (child == tile2) { + return getTranslate2(stringBounder); + } + if (child == lastDiamond) { + return getTranslateLastDiamond(stringBounder); + } + if (tiles.contains(child)) { + return getTranslate1(child, stringBounder); + } + if (diamonds.contains(child)) { + return getTranslateDiamond(child, stringBounder); + } + throw new UnsupportedOperationException(); + } + + private UTranslate getTranslateDiamond(Ftile diamond, StringBounder stringBounder) { + final double allDiamondsWidth = allDiamondsWidth(stringBounder); + + final int idx = diamonds.indexOf(diamond); + if (idx == -1) { + throw new IllegalArgumentException(); + } + final double y1 = getTranslateDy(idx, stringBounder); + return new UTranslate((allDiamondsWidth - diamond.calculateDimension(stringBounder).getWidth()) / 2, y1); + } + + private UTranslate getTranslateLastDiamond(StringBounder stringBounder) { + final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); + final FtileGeometry dimLast = lastDiamond.calculateDimension(stringBounder); + final double x = (dimTotal.getWidth() - dimLast.getWidth()) / 2; + return new UTranslate(x, dimTotal.getHeight() - dimLast.getHeight()); + } + + private UTranslate getTranslate1(Ftile candidat, StringBounder stringBounder) { + final int idx = tiles.indexOf(candidat); + if (idx == -1) { + throw new IllegalArgumentException(); + } + final double y1 = getTranslateDy(idx, stringBounder); + final FtileGeometry diam = diamonds.get(idx).calculateDimension(stringBounder); + final FtileGeometry dim1 = candidat.calculateDimension(stringBounder); + final FtileGeometry dimTotal = calculateDimensionInternal(stringBounder); + final double allDiamondsWidth = allDiamondsWidth(stringBounder); + final double x = allDiamondsWidth + (dimTotal.getWidth() - allDiamondsWidth - dim1.getWidth()) / 2; + return new UTranslate(x, y1 + diam.getHeight()); + } + + private double getTranslateDy(int idx, StringBounder stringBounder) { + double y1 = marginy1; + + for (int i = 0; i < idx; i++) { + final FtileGeometry dim1 = tiles.get(i).calculateDimension(stringBounder); + final FtileGeometry diam = diamonds.get(i).calculateDimension(stringBounder); + y1 += dim1.getHeight() + diam.getHeight() + ySeparation; + } + return y1; + } + + private UTranslate getTranslate2(StringBounder stringBounder) { + final double y1 = getTranslateDy(tiles.size(), stringBounder); + final FtileGeometry dim2 = tile2.calculateDimension(stringBounder); + final FtileGeometry dimTotal = calculateDimensionInternal(stringBounder); + final double x = (dimTotal.getWidth() - dim2.getWidth()) / 2; + return new UTranslate(x, y1); + + // final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); + // final Dimension2D dim2 = tile2.calculateDimension(stringBounder); + // + // final double x2 = dimTotal.getWidth() - dim2.getWidth(); + // + // final double h = 0; // getAllDiamondsHeight(stringBounder); + // final double y2 = (dimTotal.getHeight() - h * 2 - dim2.getHeight()) / 2 + h; + // + // return new UTranslate(x2, y2); + + } + + // private UTranslate getTranslateCouple1(Ftile candidat, StringBounder stringBounder) { + // double x1 = 0; + // + // for (Ftile couple : couples) { + // final FtileGeometry dim1 = couple.calculateDimension(stringBounder); + // if (couple == candidat) { + // return new UTranslate(x1, 25); + // } + // x1 += dim1.getWidth() + xSeparation; + // } + // throw new IllegalArgumentException(); + // + // } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + for (Ftile tile1 : tiles) { + ug.apply(getTranslate1(tile1, stringBounder)).draw(tile1); + } + for (Ftile diam : diamonds) { + ug.apply(getTranslateDiamond(diam, stringBounder)).draw(diam); + } + + ug.apply(getTranslate2(stringBounder)).draw(tile2); + ug.apply(getTranslateLastDiamond(stringBounder)).draw(lastDiamond); + } + + private FtileGeometry calculateDimensionInternal(StringBounder stringBounder) { + // FtileGeometry result = new FtileGeometry(0, marginy1, 0, 0); + double col1 = 0; + double col1overpass = 0; + double col2 = 0; + double height = marginy1; + for (int i = 0; i < tiles.size(); i++) { + final FtileGeometry dim1 = tiles.get(i).calculateDimension(stringBounder); + final FtileGeometry diamondOverpassing = ((FtileOverpassing) diamonds.get(i)) + .getOverpassDimension(stringBounder); + final FtileGeometry diamondDim = diamonds.get(i).calculateDimension(stringBounder); + + height += diamondDim.getHeight() + dim1.getHeight(); + col1 = Math.max(col1, diamondDim.getWidth()); + col1overpass = Math.max(col1overpass, diamondOverpassing.getWidth()); + col2 = Math.max(col2, dim1.getWidth()); + } + final double width = Math.max(col1 + col2, col1overpass); + FtileGeometry result = new FtileGeometry(width, height, width / 2, 0); + + final FtileGeometry dimTile2 = tile2.calculateDimension(stringBounder); + result = result.appendBottom(dimTile2); + final FtileGeometry dimLastDiamond = lastDiamond.calculateDimension(stringBounder); + final double lastElseArrowHeight = 40; + result = result.addDim(0, ySeparation * tiles.size() + lastElseArrowHeight + dimLastDiamond.getHeight()); + + return new FtileGeometry(result, result.getWidth() / 2, 0); + } + + private double allDiamondsWidth(StringBounder stringBounder) { + double width = 0; + for (Ftile diam : diamonds) { + width = Math.max(width, diam.calculateDimension(stringBounder).getWidth()); + } + return width; + } + + private double allTile1Width(StringBounder stringBounder) { + double width = 0; + for (Ftile tile1 : tiles) { + width = Math.max(width, tile1.calculateDimension(stringBounder).getWidth()); + } + return width; + } + + public FtileGeometry calculateDimension(StringBounder stringBounder) { + final Dimension2D dimTotal = calculateDimensionInternal(stringBounder); + + final List all = new ArrayList(tiles); + all.add(tile2); + for (Ftile tmp : all) { + if (tmp.calculateDimension(stringBounder).hasPointOut()) { + return new FtileGeometry(dimTotal, dimTotal.getWidth() / 2, 0, dimTotal.getHeight()); + } + } + return new FtileGeometry(dimTotal, dimTotal.getWidth() / 2, 0); + + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileRepeat.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileRepeat.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileRepeat.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileRepeat.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -58,18 +58,15 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamond; import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamondFoo1; import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamondInside; +import net.sourceforge.plantuml.creole.CreoleMode; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.svek.ConditionStyle; -import net.sourceforge.plantuml.ugraphic.UChangeBackColor; -import net.sourceforge.plantuml.ugraphic.UChangeColor; -import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; @@ -101,15 +98,16 @@ } public static Ftile create(LinkRendering backRepeatLinkRendering, Swimlane swimlane, Ftile repeat, Display test, - Display yes, Display out, HtmlColor borderColor, HtmlColor backColor, UFont fontTest, HtmlColor arrowColor, + Display yes, Display out, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor, HtmlColor endRepeatLinkColor, ConditionStyle conditionStyle, ISkinSimple spriteContainer, - HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) { + FontConfiguration fontConfiguration) { - final FontConfiguration fc = new FontConfiguration(fontTest, HtmlColorUtils.BLACK, hyperlinkColor, - useUnderlineForHyperlink); - final TextBlock tbTest = TextBlockUtils.create(test, fc, HorizontalAlignment.LEFT, spriteContainer); - final TextBlock yesTb = TextBlockUtils.create(yes, fc, HorizontalAlignment.LEFT, spriteContainer); - final TextBlock outTb = TextBlockUtils.create(out, fc, HorizontalAlignment.LEFT, spriteContainer); + // final FontConfiguration fc = new FontConfiguration(fontTest, HtmlColorUtils.BLACK, hyperlinkColor, + // useUnderlineForHyperlink); + final TextBlock tbTest = (Display.isNull(test) || test.isWhite()) ? TextBlockUtils.empty(0, 0) : test.create( + fontConfiguration, HorizontalAlignment.LEFT, spriteContainer); + final TextBlock yesTb = yes.create(fontConfiguration, HorizontalAlignment.LEFT, spriteContainer); + final TextBlock outTb = out.create(fontConfiguration, HorizontalAlignment.LEFT, spriteContainer); final Ftile diamond1 = new FtileDiamond(repeat.shadowing(), backColor, borderColor, swimlane); final FtileRepeat result; @@ -130,18 +128,19 @@ final List conns = new ArrayList(); final Display in1 = LinkRendering.getDisplay(repeat.getInLinkRendering()); - final TextBlock tbin1 = in1 == null ? null : TextBlockUtils.create(in1, fc, HorizontalAlignment.LEFT, - spriteContainer, true); + final TextBlock tbin1 = in1 == null ? null : in1.create(fontConfiguration, HorizontalAlignment.LEFT, spriteContainer, + CreoleMode.SIMPLE_LINE); conns.add(result.new ConnectionIn(LinkRendering.getColor(repeat.getInLinkRendering(), arrowColor), tbin1)); final Display backLink1 = LinkRendering.getDisplay(backRepeatLinkRendering); - final TextBlock tbbackLink1 = backLink1 == null ? null : TextBlockUtils.create(backLink1, fc, - HorizontalAlignment.LEFT, spriteContainer, true); + final TextBlock tbbackLink1 = backLink1 == null ? null : backLink1.create(fontConfiguration, HorizontalAlignment.LEFT, + spriteContainer, CreoleMode.SIMPLE_LINE); conns.add(result.new ConnectionBack(LinkRendering.getColor(backRepeatLinkRendering, arrowColor), tbbackLink1)); - + final Display out1 = LinkRendering.getDisplay(repeat.getOutLinkRendering()); - final TextBlock tbout1 = out1 == null ? null : TextBlockUtils.create(out1, fc, HorizontalAlignment.LEFT, - spriteContainer, true); + final TextBlock tbout1 = out1 == null ? null : out1.create(fontConfiguration, HorizontalAlignment.LEFT, spriteContainer, + CreoleMode.SIMPLE_LINE); + conns.add(result.new ConnectionOut(LinkRendering.getColor(endRepeatLinkColor, arrowColor), tbout1)); return FtileUtils.addConnection(result, conns); } @@ -200,6 +199,9 @@ public void drawU(UGraphic ug) { final StringBounder stringBounder = ug.getStringBounder(); + if (getFtile1().calculateDimension(stringBounder).hasPointOut() == false) { + return; + } final Snake snake = new Snake(arrowColor, Arrows.asToDown()); snake.setLabel(tbout); @@ -211,6 +213,9 @@ public void drawTranslate(UGraphic ug, UTranslate translate1, UTranslate translate2) { final StringBounder stringBounder = ug.getStringBounder(); + if (getFtile1().calculateDimension(stringBounder).hasPointOut() == false) { + return; + } final Snake snake = new Snake(arrowColor); snake.setLabel(tbout); final Point2D mp1a = translate1.getTranslated(getP1(stringBounder)); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileSplit1.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileSplit1.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileSplit1.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileSplit1.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWhile.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWhile.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWhile.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWhile.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,7 +42,6 @@ import java.util.Set; import net.sourceforge.plantuml.Direction; -import net.sourceforge.plantuml.FileGroup; import net.sourceforge.plantuml.ISkinSimple; import net.sourceforge.plantuml.activitydiagram3.LinkRendering; import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractConnection; @@ -64,7 +63,6 @@ import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockUtils; @@ -72,7 +70,6 @@ import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; import net.sourceforge.plantuml.ugraphic.UEmpty; -import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; @@ -103,30 +100,23 @@ this.supplementarySouthText = supplementarySouthText; } - private static TextBlock createLabel1(Display test, Display yes, UFont font, ISkinSimple spriteContainer, - HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) { - final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, hyperlinkColor, - useUnderlineForHyperlink); - final TextBlock tmpb = TextBlockUtils.create(yes, fc, HorizontalAlignment.LEFT, spriteContainer); + private static TextBlock createLabel1(Display test, Display yes, ISkinSimple spriteContainer, FontConfiguration fc) { + final TextBlock tmpb = yes.create(fc, HorizontalAlignment.LEFT, spriteContainer); if (test == null) { return tmpb; } - return TextBlockUtils.mergeTB(TextBlockUtils.create(test, fc, HorizontalAlignment.LEFT, spriteContainer), tmpb, + return TextBlockUtils.mergeTB(test.create(fc, HorizontalAlignment.LEFT, spriteContainer), tmpb, HorizontalAlignment.CENTER); } public static Ftile create(Swimlane swimlane, Ftile whileBlock, Display test, HtmlColor borderColor, - HtmlColor backColor, HtmlColor arrowColor, Display yes, Display out2, UFont fontArrow, - HtmlColor endInlinkColor, LinkRendering afterEndwhile, FtileFactory ftileFactory, - ConditionStyle conditionStyle, UFont fontTest, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) { - - final FontConfiguration fcArrow = new FontConfiguration(fontArrow, HtmlColorUtils.BLACK, hyperlinkColor, - useUnderlineForHyperlink); - final FontConfiguration fcTest = new FontConfiguration(fontTest, HtmlColorUtils.BLACK, hyperlinkColor, - useUnderlineForHyperlink); - final TextBlock yesTb = TextBlockUtils.create(yes, fcArrow, HorizontalAlignment.LEFT, ftileFactory); - final TextBlock testTb = TextBlockUtils.create(test, fcTest, HorizontalAlignment.LEFT, ftileFactory); - final TextBlock out = TextBlockUtils.create(out2, fcArrow, HorizontalAlignment.LEFT, ftileFactory); + HtmlColor backColor, HtmlColor arrowColor, Display yes, Display out2, HtmlColor endInlinkColor, + LinkRendering afterEndwhile, FontConfiguration fontArrow, FtileFactory ftileFactory, + ConditionStyle conditionStyle, FontConfiguration fcTest) { + + final TextBlock yesTb = yes.create(fontArrow, HorizontalAlignment.LEFT, ftileFactory); + final TextBlock testTb = test.create(fcTest, HorizontalAlignment.LEFT, ftileFactory); + final TextBlock out = out2.create(fontArrow, HorizontalAlignment.LEFT, ftileFactory); final Ftile diamond1; final TextBlock supplementarySouthText; @@ -139,8 +129,7 @@ diamond1 = new FtileDiamondFoo1(whileBlock.shadowing(), backColor, borderColor, swimlane, testTb) .withNorth(yesTb).withWest(out); } else if (conditionStyle == ConditionStyle.DIAMOND) { - supplementarySouthText = createLabel1(test, yes, fontArrow, ftileFactory, hyperlinkColor, - useUnderlineForHyperlink); + supplementarySouthText = createLabel1(test, yes, ftileFactory, fontArrow); diamond1 = new FtileDiamond(whileBlock.shadowing(), backColor, borderColor, swimlane).withWest(out) .withSouth(supplementarySouthText); } else { @@ -220,6 +209,11 @@ return getTranslateForWhile(stringBounder).getTranslated(geo.getPointOut()); } + private double getBottom(final StringBounder stringBounder) { + final FtileGeometry geo = whileBlock.calculateDimension(stringBounder); + return getTranslateForWhile(stringBounder).getDy() + geo.getHeight(); + } + private Point2D getP2(final StringBounder stringBounder) { return getTranslateDiamond1(stringBounder).getTranslated(new Point2D.Double(0, 0)); } @@ -242,16 +236,17 @@ final double y2 = p2.getY() + dimDiamond1.getOutY() / 2; snake.addPoint(x1, y1); - snake.addPoint(x1, y1 + Diamond.diamondHalfSize); + final double y1bis = Math.max(y1, getBottom(stringBounder)) + Diamond.diamondHalfSize; + snake.addPoint(x1, y1bis); final double xx = dimTotal.getWidth(); - snake.addPoint(xx, y1 + Diamond.diamondHalfSize); + snake.addPoint(xx, y1bis); snake.addPoint(xx, y2); snake.addPoint(x2, y2); snake.emphasizeDirection(Direction.UP); ug.draw(snake); - ug.apply(new UTranslate(x1, y1 + Diamond.diamondHalfSize)).draw(new UEmpty(5, Diamond.diamondHalfSize)); + ug.apply(new UTranslate(x1, y1bis)).draw(new UEmpty(5, Diamond.diamondHalfSize)); // ug = ug.apply(new UChangeColor(endInlinkColor)).apply(new UChangeBackColor(endInlinkColor)); // ug.apply(new UTranslate(xx, (y1 + y2) / 2)).draw(Arrows.asToUp()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNoteOpale.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNoteOpale.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNoteOpale.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNoteOpale.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -47,6 +47,7 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.creole.CreoleMode; import net.sourceforge.plantuml.creole.CreoleParser; import net.sourceforge.plantuml.creole.Sheet; import net.sourceforge.plantuml.creole.SheetBlock1; @@ -95,15 +96,18 @@ // this.arrowColor = arrowColor; final Rose rose = new Rose(); - final HtmlColor fontColor = rose.getFontColor(skinParam, FontParam.NOTE); - final UFont fontNote = skinParam.getFont(FontParam.NOTE, null, false); + // final HtmlColor fontColor = rose.getFontColor(skinParam, FontParam.NOTE); + // final UFont fontNote = skinParam.getFont(FontParam.NOTE, null, false); final HtmlColor noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.noteBackground); final HtmlColor borderColor = rose.getHtmlColor(skinParam, ColorParam.noteBorder); - final FontConfiguration fc = new FontConfiguration(fontNote, fontColor, skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()); + // final FontConfiguration fc = new FontConfiguration(fontNote, fontColor, skinParam.getHyperlinkColor(), + // skinParam.useUnderlineForHyperlink()); + final FontConfiguration fc = new FontConfiguration(skinParam, FontParam.NOTE, null); - final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, false).createSheet(note); + final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL) + .createSheet(note); final TextBlock text = new SheetBlock2(new SheetBlock1(sheet, 0, skinParam.getPadding()), this, new UStroke(1)); opale = new Opale(borderColor, noteBackgroundColor, text, skinParam.shadowing(), withLink); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/UGraphicInterceptorGoto.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/UGraphicInterceptorGoto.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/UGraphicInterceptorGoto.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/UGraphicInterceptorGoto.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/UGraphicInterceptorOneSwimlane.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/UGraphicInterceptorOneSwimlane.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/UGraphicInterceptorOneSwimlane.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/UGraphicInterceptorOneSwimlane.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -96,4 +96,8 @@ return new UGraphicInterceptorOneSwimlane(getUg().apply(change), swimlane); } + public final Swimlane getSwimlane() { + return swimlane; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/VCompactFactory.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/VCompactFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/VCompactFactory.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/VCompactFactory.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -49,17 +49,20 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileBox; +import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileCircleEnd; import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileCircleStart; import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileCircleStop; import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDecorateIn; import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDecorateOut; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.IHtmlColorSet; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.sequencediagram.NotePosition; import net.sourceforge.plantuml.skin.rose.Rose; -import net.sourceforge.plantuml.ugraphic.Sprite; import net.sourceforge.plantuml.ugraphic.UFont; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; public class VCompactFactory implements FtileFactory { @@ -86,12 +89,18 @@ return new FtileCircleStop(shadowing(), color, swimlane); } - public Ftile activity(Display label, final HtmlColor color, Swimlane swimlane, BoxStyle style) { - final HtmlColor borderColor = rose.getHtmlColor(skinParam, ColorParam.activityBorder); - final HtmlColor backColor = color == null ? rose.getHtmlColor(skinParam, ColorParam.activityBackground) : color; - final UFont font = skinParam.getFont(FontParam.ACTIVITY, null, false); + public Ftile end(Swimlane swimlane) { + final HtmlColor color = rose.getHtmlColor(skinParam, ColorParam.activityEnd); + return new FtileCircleEnd(shadowing(), color, swimlane); + } + + public Ftile activity(Display label, Swimlane swimlane, BoxStyle style, Colors colors) { + // final HtmlColor borderColor = rose.getHtmlColor(skinParam, ColorParam.activityBorder); + // final HtmlColor backColor = color == null ? rose.getHtmlColor(skinParam, ColorParam.activityBackground) : + // color; + final UFont font = skinParam.getFont(null, false, FontParam.ACTIVITY); final HtmlColor arrowColor = rose.getHtmlColor(skinParam, ColorParam.activityArrow); - return new FtileBox(shadowing(), label, borderColor, backColor, font, arrowColor, swimlane, style, skinParam); + return new FtileBox(shadowing(), label, font, arrowColor, swimlane, style, colors.mute(skinParam)); } public Ftile addNote(Ftile ftile, Display note, NotePosition notePosition) { @@ -116,7 +125,8 @@ return whileBlock; } - public Ftile createIf(Swimlane swimlane, List thens, Branch elseBranch) { + public Ftile createIf(Swimlane swimlane, List thens, Branch elseBranch, LinkRendering afterEndwhile, + LinkRendering topInlinkRendering) { final List ftiles = new ArrayList(); for (Branch branch : thens) { ftiles.add(branch.getFtile()); @@ -133,7 +143,7 @@ return new FtileForkInner(all); } - public Ftile createGroup(Ftile list, Display name, HtmlColor backColor, HtmlColor titleColor, Display headerNote) { + public Ftile createGroup(Ftile list, Display name, HtmlColor backColor, HtmlColor titleColor, Display headerNote, HtmlColor borderColor) { return list; } @@ -171,4 +181,16 @@ return skinParam.useGuillemet(); } + public String getMonospacedFamily() { + return skinParam.getMonospacedFamily(); + } + + public int getTabSize() { + return skinParam.getTabSize(); + } + + public IHtmlColorSet getIHtmlColorSet() { + return skinParam.getIHtmlColorSet(); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBlackBlock.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBlackBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBlackBlock.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBlackBlock.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,16 +38,17 @@ import java.util.Collections; import java.util.Set; +import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.SkinParamUtils; import net.sourceforge.plantuml.activitydiagram3.LinkRendering; import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; import net.sourceforge.plantuml.activitydiagram3.ftile.BoxStyle; -import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; -import net.sourceforge.plantuml.activitydiagram3.ftile.FtileEmpty; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.creole.CreoleMode; import net.sourceforge.plantuml.creole.CreoleParser; import net.sourceforge.plantuml.creole.Sheet; import net.sourceforge.plantuml.creole.SheetBlock1; @@ -73,11 +74,10 @@ private final TextBlock tb; - private final HtmlColor borderColor; - private final HtmlColor backColor; private final LinkRendering inRenreding; private final Swimlane swimlane; private final BoxStyle style; + private final ISkinParam skinParam; final public LinkRendering getInLinkRendering() { return inRenreding; @@ -111,19 +111,16 @@ } - public FtileBox(boolean shadowing, Display label, HtmlColor color, HtmlColor backColor, UFont font, - HtmlColor arrowColor, Swimlane swimlane, BoxStyle style, ISkinParam skinParam) { + public FtileBox(boolean shadowing, Display label, UFont font, HtmlColor arrowColor, Swimlane swimlane, + BoxStyle style, ISkinParam skinParam) { super(shadowing); this.style = style; - this.borderColor = color; + this.skinParam = skinParam; this.swimlane = swimlane; - this.backColor = backColor; this.inRenreding = new LinkRendering(arrowColor); - final HtmlColor fontColor = skinParam.getFontHtmlColor(FontParam.ACTIVITY, null); - final FontConfiguration fc = new FontConfiguration(font, fontColor, skinParam.getHyperlinkColor(), - skinParam.useUnderlineForHyperlink()); - - final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, false).createSheet(label); + final FontConfiguration fc = new FontConfiguration(skinParam, FontParam.ACTIVITY, null); + final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL) + .createSheet(label); this.tb = new SheetBlock2(new SheetBlock1(sheet, 0, skinParam.getPadding()), new MyStencil(), new UStroke(1)); this.print = label.toString(); } @@ -141,6 +138,9 @@ final double heightTotal = dimTotal.getHeight(); final UDrawable rect = style.getUDrawable(widthTotal, heightTotal, shadowing()); + final HtmlColor borderColor = SkinParamUtils.getColor(skinParam, ColorParam.activityBorder, null); + final HtmlColor backColor = SkinParamUtils.getColor(skinParam, ColorParam.activityBackground, null); + ug = ug.apply(new UChangeColor(borderColor)).apply(new UChangeBackColor(backColor)).apply(new UStroke(1.5)); rect.drawU(ug); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleEnd.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleEnd.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleEnd.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleEnd.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,109 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.ftile.vertical; + +import java.util.Collections; +import java.util.Set; + +import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; +import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.ugraphic.UChangeBackColor; +import net.sourceforge.plantuml.ugraphic.UChangeColor; +import net.sourceforge.plantuml.ugraphic.UEllipse; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.ULine; +import net.sourceforge.plantuml.ugraphic.UStroke; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class FtileCircleEnd extends AbstractFtile { + + private static final int SIZE = 20; + + private final HtmlColor backColor; + private final Swimlane swimlane; + + public FtileCircleEnd(boolean shadowing, HtmlColor backColor, Swimlane swimlane) { + super(shadowing); + this.backColor = backColor; + this.swimlane = swimlane; + } + + public Set getSwimlanes() { + if (swimlane == null) { + return Collections.emptySet(); + } + return Collections.singleton(swimlane); + } + + public Swimlane getSwimlaneIn() { + return swimlane; + } + + public Swimlane getSwimlaneOut() { + return swimlane; + } + + public void drawU(UGraphic ug) { + double xTheoricalPosition = 0; + double yTheoricalPosition = 0; + xTheoricalPosition = Math.round(xTheoricalPosition); + yTheoricalPosition = Math.round(yTheoricalPosition); + + final UEllipse circle = new UEllipse(SIZE, SIZE); + if (shadowing()) { + circle.setDeltaShadow(3); + } + ug = ug.apply(new UChangeColor(backColor)); + final double thickness = 2.5; + ug.apply(new UChangeBackColor(HtmlColorUtils.WHITE)).apply(new UStroke(1.5)) + .apply(new UTranslate(xTheoricalPosition, yTheoricalPosition)).draw(circle); + + final double size2 = (SIZE - thickness) / Math.sqrt(2); + final double delta = (SIZE - size2) / 2; + ug = ug.apply(new UStroke(thickness)); + ug.apply(new UTranslate(delta, delta)).draw(new ULine(size2, size2)); + ug.apply(new UTranslate(delta, SIZE - delta)).draw(new ULine(size2, -size2)); + + } + + public FtileGeometry calculateDimension(StringBounder stringBounder) { + return new FtileGeometry(SIZE, SIZE, SIZE / 2, 0); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleStart.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleStart.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleStart.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleStart.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleStop.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleStop.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleStop.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleStop.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorateIn.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorateIn.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorateIn.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorateIn.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorate.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorate.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorate.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorate.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,11 +42,12 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public abstract class FtileDecorate implements Ftile { +public abstract class FtileDecorate extends AbstractTextBlock implements Ftile { final private Ftile ftile; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorateOut.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorateOut.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorateOut.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecorateOut.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecoratePointOut.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecoratePointOut.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecoratePointOut.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDecoratePointOut.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondFoo1.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondFoo1.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondFoo1.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondFoo1.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside2.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside2.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside2.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside2.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -136,15 +136,6 @@ } - public FtileGeometry calculateDimension(StringBounder stringBounder) { - final Dimension2D diamond = calculateDimensionAlone(stringBounder); - final Dimension2D north = this.north.calculateDimension(stringBounder); - final double height = diamond.getHeight() + north.getHeight(); - final double left = diamond.getWidth() / 2; - final double width = north.getWidth() > left ? left + north.getWidth() : diamond.getWidth(); - return new FtileGeometry(width, height, left, 0, diamond.getHeight()); - } - private FtileGeometry calculateDimensionAlone(StringBounder stringBounder) { final Dimension2D dimLabel = label.calculateDimension(stringBounder); final Dimension2D dim; @@ -158,4 +149,13 @@ return new FtileGeometry(dim, dim.getWidth() / 2, 0, dim.getHeight()); } + public FtileGeometry calculateDimension(StringBounder stringBounder) { + final Dimension2D diamond = calculateDimensionAlone(stringBounder); + final Dimension2D north = this.north.calculateDimension(stringBounder); + final double height = diamond.getHeight() + north.getHeight(); + final double left = diamond.getWidth() / 2; + final double width = north.getWidth() > left ? left + north.getWidth() : diamond.getWidth(); + return new FtileGeometry(width, height, left, 0, diamond.getHeight()); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside3.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside3.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside3.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside3.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,177 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3.ftile.vertical; + +import java.awt.geom.Dimension2D; +import java.util.Collections; +import java.util.Set; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; +import net.sourceforge.plantuml.activitydiagram3.ftile.Diamond; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileOverpassing; +import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.ugraphic.UChangeBackColor; +import net.sourceforge.plantuml.ugraphic.UChangeColor; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UStroke; +import net.sourceforge.plantuml.ugraphic.UTranslate; +import net.sourceforge.plantuml.utils.MathUtils; + +public class FtileDiamondInside3 extends AbstractFtile implements FtileOverpassing { + + private final HtmlColor backColor; + private final HtmlColor borderColor; + private final Swimlane swimlane; + private final TextBlock label; + private final TextBlock west; + private final TextBlock east; + private final TextBlock north; + private final TextBlock south; + + public FtileDiamondInside3(boolean shadowing, HtmlColor backColor, HtmlColor borderColor, Swimlane swimlane, + TextBlock label) { + this(shadowing, backColor, borderColor, swimlane, label, TextBlockUtils.empty(0, 0), + TextBlockUtils.empty(0, 0), TextBlockUtils.empty(0, 0), TextBlockUtils.empty(0, 0)); + } + + public FtileDiamondInside3 withNorth(TextBlock north) { + return new FtileDiamondInside3(shadowing(), backColor, borderColor, swimlane, label, north, south, west, east); + } + + public FtileDiamondInside3 withWest(TextBlock west) { + return new FtileDiamondInside3(shadowing(), backColor, borderColor, swimlane, label, north, south, west, east); + } + + public FtileDiamondInside3 withEast(TextBlock east) { + return new FtileDiamondInside3(shadowing(), backColor, borderColor, swimlane, label, north, south, west, east); + } + + public FtileDiamondInside3 withSouth(TextBlock south) { + return new FtileDiamondInside3(shadowing(), backColor, borderColor, swimlane, label, north, south, west, east); + } + + private FtileDiamondInside3(boolean shadowing, HtmlColor backColor, HtmlColor borderColor, Swimlane swimlane, + TextBlock label, TextBlock north, TextBlock south, TextBlock west, TextBlock east) { + super(shadowing); + this.backColor = backColor; + this.swimlane = swimlane; + this.borderColor = borderColor; + this.label = label; + this.west = west; + this.east = east; + this.north = north; + this.south = south; + } + + public Set getSwimlanes() { + if (swimlane == null) { + return Collections.emptySet(); + } + return Collections.singleton(swimlane); + } + + public Swimlane getSwimlaneIn() { + return swimlane; + } + + public Swimlane getSwimlaneOut() { + return swimlane; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final Dimension2D dimLabel = label.calculateDimension(stringBounder); + final Dimension2D dimTotal = calculateDimensionAlone(stringBounder); + ug = ug.apply(new UChangeColor(borderColor)).apply(new UStroke(1.5)).apply(new UChangeBackColor(backColor)); + ug.draw(Diamond.asPolygon(shadowing(), dimTotal.getWidth(), dimTotal.getHeight())); + + north.drawU(ug.apply(new UTranslate(4 + dimTotal.getWidth() / 2, dimTotal.getHeight()))); + south.drawU(ug.apply(new UTranslate(4 + dimTotal.getWidth() / 2, dimTotal.getHeight()))); + + final double lx = (dimTotal.getWidth() - dimLabel.getWidth()) / 2; + final double ly = (dimTotal.getHeight() - dimLabel.getHeight()) / 2; + label.drawU(ug.apply(new UTranslate(lx, ly))); + + final Dimension2D dimWeat = west.calculateDimension(stringBounder); + west.drawU(ug.apply(new UTranslate(-dimWeat.getWidth(), -dimWeat.getHeight() + dimTotal.getHeight() / 2))); + + final Dimension2D dimEast = east.calculateDimension(stringBounder); + east.drawU(ug.apply(new UTranslate(dimTotal.getWidth(), -dimEast.getHeight() + dimTotal.getHeight() / 2))); + + } + + private FtileGeometry calculateDimensionAlone(StringBounder stringBounder) { + final Dimension2D dimLabel = label.calculateDimension(stringBounder); + final Dimension2D dim; + if (dimLabel.getWidth() == 0 || dimLabel.getHeight() == 0) { + dim = new Dimension2DDouble(Diamond.diamondHalfSize * 2, Diamond.diamondHalfSize * 2); + } else { + dim = Dimension2DDouble.delta( + Dimension2DDouble.atLeast(dimLabel, Diamond.diamondHalfSize * 2, Diamond.diamondHalfSize * 2), + Diamond.diamondHalfSize * 2, 0); + } + return new FtileGeometry(dim, dim.getWidth() / 2, 0, dim.getHeight()); + } + + public FtileGeometry calculateDimension(StringBounder stringBounder) { + final Dimension2D diamond = calculateDimensionAlone(stringBounder); + final Dimension2D north = this.north.calculateDimension(stringBounder); + final double height = diamond.getHeight() + north.getHeight(); + final double left = diamond.getWidth() / 2; + // final double width = north.getWidth() > left ? left + north.getWidth() : diamond.getWidth(); + final double width = diamond.getWidth(); + return new FtileGeometry(width, height, left, 0, diamond.getHeight()); + } + + public FtileGeometry getOverpassDimension(StringBounder stringBounder) { + final Dimension2D total = calculateDimension(stringBounder); + final Dimension2D north = this.north.calculateDimension(stringBounder); + final Dimension2D east = this.east.calculateDimension(stringBounder); + final Dimension2D west = this.west.calculateDimension(stringBounder); + final double height = total.getHeight(); // + north.getHeight(); + final double left = total.getWidth() / 2; + final double supp = MathUtils.max(north.getWidth(), east.getWidth(), west.getWidth()); + // final double width = supp > left ? left + supp : diamond.getWidth(); + final double width = total.getWidth() + supp; + return new FtileGeometry(width, height, left, 0, total.getHeight()); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamondInside.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,6 +41,7 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; import net.sourceforge.plantuml.activitydiagram3.ftile.Diamond; +import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.graphic.HtmlColor; @@ -82,6 +83,10 @@ return new FtileDiamondInside(shadowing(), backColor, borderColor, swimlane, label, north, south, west, east); } + public Ftile withWestAndEast(TextBlock tb1, TextBlock tb2) { + return withWest(tb1).withEast(tb2); + } + public FtileDiamondInside withSouth(TextBlock south) { return new FtileDiamondInside(shadowing(), backColor, borderColor, swimlane, label, north, south, west, east); } @@ -128,23 +133,14 @@ final double ly = (dimTotal.getHeight() - dimLabel.getHeight()) / 2; label.drawU(ug.apply(new UTranslate(lx, ly))); - final Dimension2D dimWeat = west.calculateDimension(stringBounder); - west.drawU(ug.apply(new UTranslate(-dimWeat.getWidth(), -dimWeat.getHeight() + dimTotal.getHeight() / 2))); + final Dimension2D dimWest = west.calculateDimension(stringBounder); + west.drawU(ug.apply(new UTranslate(-dimWest.getWidth(), -dimWest.getHeight() + dimTotal.getHeight() / 2))); final Dimension2D dimEast = east.calculateDimension(stringBounder); east.drawU(ug.apply(new UTranslate(dimTotal.getWidth(), -dimEast.getHeight() + dimTotal.getHeight() / 2))); } - public FtileGeometry calculateDimension(StringBounder stringBounder) { - Dimension2D dim = calculateDimensionAlone(stringBounder); - final Dimension2D dimNorth = north.calculateDimension(stringBounder); - final double northHeight = dimNorth.getHeight(); - final double northWidth = dimNorth.getWidth(); - dim = Dimension2DDouble.delta(dim, 0, northHeight); - return new FtileGeometry(dim, dim.getWidth() / 2, 0, dim.getHeight() - northHeight); - } - private FtileGeometry calculateDimensionAlone(StringBounder stringBounder) { final Dimension2D dimLabel = label.calculateDimension(stringBounder); final Dimension2D dim; @@ -158,4 +154,13 @@ return new FtileGeometry(dim, dim.getWidth() / 2, 0, dim.getHeight()); } + public FtileGeometry calculateDimension(StringBounder stringBounder) { + final FtileGeometry dimDiamonAlone = calculateDimensionAlone(stringBounder); + final Dimension2D dimWest = west.calculateDimension(stringBounder); + final Dimension2D dimEast = east.calculateDimension(stringBounder); + final double northHeight = north.calculateDimension(stringBounder).getHeight(); + return dimDiamonAlone.incHeight(northHeight); + // return dimDiamonAlone.incHeight(northHeight).addMarginX(dimWest.getWidth(), dimEast.getWidth()); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamond.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamond.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamond.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileDiamond.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,6 +41,7 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile; import net.sourceforge.plantuml.activitydiagram3.ftile.Diamond; +import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.graphic.HtmlColor; @@ -142,4 +143,8 @@ return new FtileGeometry(dim, dim.getWidth() / 2, 0, dim.getHeight()); } + public Ftile withWestAndEast(TextBlock tb1, TextBlock tb2) { + return withWest(tb1).withEast(tb2); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionCollection.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionCollection.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionCollection.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionCollection.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,41 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3; + +public interface InstructionCollection extends Instruction { + + public Instruction getLast(); + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionEnd.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionEnd.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionEnd.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionEnd.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.activitydiagram3; + +import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; +import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.sequencediagram.NotePosition; + +public class InstructionEnd extends MonoSwimable implements Instruction { + + private final LinkRendering inlinkRendering; + + public InstructionEnd(Swimlane swimlane, LinkRendering inlinkRendering) { + super(swimlane); + this.inlinkRendering = inlinkRendering; + } + + public Ftile createFtile(FtileFactory factory) { + return factory.end(getSwimlaneIn()); + } + + public void add(Instruction other) { + throw new UnsupportedOperationException(); + } + + final public boolean kill() { + return false; + } + + public LinkRendering getInLinkRendering() { + return inlinkRendering; + } + + public boolean addNote(Display note, NotePosition position) { + throw new UnsupportedOperationException(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionFork.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionFork.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionFork.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionFork.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -59,7 +59,6 @@ private InstructionList getLast() { return forks.get(forks.size() - 1); } - public void add(Instruction ins) { getLast().add(ins); @@ -89,10 +88,10 @@ return inlinkRendering; } - public void addNote(Display note, NotePosition position) { - getLast().addNote(note, position); + public boolean addNote(Display note, NotePosition position) { + return getLast().addNote(note, position); } - + public Set getSwimlanes() { return InstructionList.getSwimlanes2(forks); } @@ -106,5 +105,11 @@ return getLast().getSwimlaneOut(); } + public void manageOutRendering(LinkRendering nextLinkRenderer) { + if (nextLinkRenderer == null) { + return; + } + getLast().setOutRendering(nextLinkRenderer); + } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionGoto.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionGoto.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionGoto.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionGoto.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -66,7 +66,7 @@ return null; } - public void addNote(Display note, NotePosition position) { + public boolean addNote(Display note, NotePosition position) { throw new UnsupportedOperationException(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionGroup.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionGroup.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionGroup.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionGroup.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,19 +43,23 @@ import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.sequencediagram.NotePosition; -public class InstructionGroup implements Instruction { +public class InstructionGroup implements Instruction, InstructionCollection { - private final InstructionList list = new InstructionList(); + private final InstructionList list; private final Instruction parent; private final HtmlColor backColor; + private final HtmlColor borderColor; private final HtmlColor titleColor; private final Display test; - private Display headerNote; + private Display headerNote = Display.NULL; - public InstructionGroup(Instruction parent, Display test, HtmlColor backColor, HtmlColor titleColor) { + public InstructionGroup(Instruction parent, Display test, HtmlColor backColor, HtmlColor titleColor, + Swimlane swimlane, HtmlColor borderColor) { + this.list = new InstructionList(swimlane); this.parent = parent; this.test = test; + this.borderColor = borderColor; this.backColor = backColor; this.titleColor = titleColor; } @@ -65,7 +69,7 @@ } public Ftile createFtile(FtileFactory factory) { - return factory.createGroup(list.createFtile(factory), test, backColor, titleColor, headerNote); + return factory.createGroup(list.createFtile(factory), test, backColor, titleColor, headerNote, borderColor); } public Instruction getParent() { @@ -80,12 +84,12 @@ return null; } - public void addNote(Display note, NotePosition position) { + public boolean addNote(Display note, NotePosition position) { if (list.isEmpty()) { this.headerNote = note; - return; + return true; } - list.addNote(note, position); + return list.addNote(note, position); } public Set getSwimlanes() { @@ -100,4 +104,8 @@ return list.getSwimlaneOut(); } + public Instruction getLast() { + return list.getLast(); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionIf.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionIf.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionIf.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionIf.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -49,7 +49,7 @@ import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.sequencediagram.NotePosition; -public class InstructionIf implements Instruction { +public class InstructionIf implements Instruction, InstructionCollection { private final List thens = new ArrayList(); private Branch elseBranch; @@ -58,7 +58,8 @@ private final Instruction parent; private Branch current; - private final LinkRendering inlinkRendering; + private final LinkRendering topInlinkRendering; + private LinkRendering afterEndwhile; private final Swimlane swimlane; @@ -66,8 +67,7 @@ LinkRendering inlinkRendering, HtmlColor color, ISkinParam skinParam) { this.parent = parent; this.skinParam = skinParam; - - this.inlinkRendering = inlinkRendering; + this.topInlinkRendering = inlinkRendering; this.swimlane = swimlane; this.thens.add(new Branch(swimlane, whenThen, labelTest, color)); this.current = this.thens.get(0); @@ -85,10 +85,10 @@ branch.updateFtile(factory); } if (elseBranch == null) { - this.elseBranch = new Branch(swimlane, null, null, null); + this.elseBranch = new Branch(swimlane, Display.NULL, Display.NULL, null); } elseBranch.updateFtile(factory); - Ftile result = factory.createIf(swimlane, thens, elseBranch); + Ftile result = factory.createIf(swimlane, thens, elseBranch, afterEndwhile, topInlinkRendering); if (note != null) { result = new FtileWithNoteOpale(result, note, position, skinParam, false); } @@ -104,24 +104,25 @@ return false; } this.current.setInlinkRendering(nextLinkRenderer); - this.elseBranch = new Branch(swimlane, whenElse, null, null); + this.elseBranch = new Branch(swimlane, whenElse, Display.NULL, null); this.current = elseBranch; return true; } - public void elseIf(Display test, Display whenThen, LinkRendering nextLinkRenderer, HtmlColor color) { + public boolean elseIf(Display test, Display whenThen, LinkRendering nextLinkRenderer, HtmlColor color) { if (elseBranch != null) { - throw new IllegalStateException(); + return false; } this.current.setInlinkRendering(nextLinkRenderer); this.current = new Branch(swimlane, whenThen, test, color); this.thens.add(current); + return true; } public void endif(LinkRendering nextLinkRenderer) { if (elseBranch == null) { - this.elseBranch = new Branch(swimlane, null, null, null); + this.elseBranch = new Branch(swimlane, Display.NULL, Display.NULL, null); } this.current.setInlinkRendering(nextLinkRenderer); } @@ -131,15 +132,16 @@ } public LinkRendering getInLinkRendering() { - return inlinkRendering; + return topInlinkRendering; } - public void addNote(Display note, NotePosition position) { + public boolean addNote(Display note, NotePosition position) { if (current.isEmpty()) { this.note = note; this.position = position; + return true; } else { - current.addNote(note, position); + return current.addNote(note, position); } } @@ -163,4 +165,15 @@ return swimlane; } + public Instruction getLast() { + if (elseBranch == null) { + return thens.get(thens.size() - 1).getLast(); + } + return elseBranch.getLast(); + } + + public void afterEndwhile(LinkRendering linkRenderer) { + this.afterEndwhile = linkRenderer; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/Instruction.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/Instruction.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/Instruction.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/Instruction.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -50,6 +50,6 @@ public LinkRendering getInLinkRendering(); - public void addNote(Display note, NotePosition position); + public boolean addNote(Display note, NotePosition position); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionLabel.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionLabel.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionLabel.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionLabel.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -66,7 +66,7 @@ return null; } - public void addNote(Display note, NotePosition position) { + public boolean addNote(Display note, NotePosition position) { throw new UnsupportedOperationException(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionList.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionList.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionList.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionList.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -47,7 +47,7 @@ import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.sequencediagram.NotePosition; -public class InstructionList implements Instruction { +public class InstructionList implements Instruction, InstructionCollection { private final List all = new ArrayList(); private final Swimlane defaultSwimlane; @@ -119,8 +119,11 @@ return all.get(all.size() - 1); } - public void addNote(Display note, NotePosition position) { - getLast().addNote(note, position); + public boolean addNote(Display note, NotePosition position) { + if (getLast() == null) { + return false; + } + return getLast().addNote(note, position); } public Set getSwimlanes() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionPartition.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionPartition.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionPartition.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionPartition.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -83,7 +83,7 @@ return list.getInLinkRendering(); } - public void addNote(Display note, NotePosition position) { + public boolean addNote(Display note, NotePosition position) { throw new UnsupportedOperationException(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionRepeat.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionRepeat.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionRepeat.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionRepeat.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,6 +38,7 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileKilled; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; @@ -50,10 +51,12 @@ private final LinkRendering nextLinkRenderer; private final Swimlane swimlane; private final HtmlColor color; + private boolean killed = false; - private Display test; - private Display yes; - private Display out; + private Display test = Display.NULL; + private Display yes = Display.NULL; + private Display out = Display.NULL; + private boolean testCalled = false; private LinkRendering endRepeatLinkRendering; private LinkRendering backRepeatLinkRendering; @@ -69,23 +72,43 @@ } public Ftile createFtile(FtileFactory factory) { - return factory.repeat(swimlane, factory.decorateOut(repeatList.createFtile(factory), endRepeatLinkRendering), - test, yes, out, color, backRepeatLinkRendering); + final Ftile result = factory.repeat(swimlane, + factory.decorateOut(repeatList.createFtile(factory), endRepeatLinkRendering), test, yes, out, color, + backRepeatLinkRendering); + if (killed) { + return new FtileKilled(result); + } + return result; } public Instruction getParent() { return parent; } - public void setTest(Display test, Display yes, Display out, LinkRendering endRepeatLinkRendering, LinkRendering backRepeatLinkRendering) { + public void setTest(Display test, Display yes, Display out, LinkRendering endRepeatLinkRendering, + LinkRendering backRepeatLinkRendering) { this.test = test; this.yes = yes; this.out = out; + if (test == null) { + throw new IllegalArgumentException(); + } + if (yes == null) { + throw new IllegalArgumentException(); + } + if (out == null) { + throw new IllegalArgumentException(); + } this.endRepeatLinkRendering = endRepeatLinkRendering; this.backRepeatLinkRendering = backRepeatLinkRendering; + this.testCalled = true; } final public boolean kill() { + if (testCalled) { + this.killed = true; + return true; + } return repeatList.kill(); } @@ -93,8 +116,8 @@ return nextLinkRenderer; } - public void addNote(Display note, NotePosition position) { - repeatList.addNote(note, position); + public boolean addNote(Display note, NotePosition position) { + return repeatList.addNote(note, position); } public Set getSwimlanes() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionSimple.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionSimple.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionSimple.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,32 +41,35 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.FtileKilled; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.sequencediagram.NotePosition; public class InstructionSimple extends MonoSwimable implements Instruction { private boolean killed = false; private final Display label; - private final HtmlColor color; + private final Colors colors; private final LinkRendering inlinkRendering; private Display note; private NotePosition notePosition; private final BoxStyle style; private final Url url; - public InstructionSimple(Display label, HtmlColor color, LinkRendering inlinkRendering, Swimlane swimlane, - BoxStyle style, Url url) { + public InstructionSimple(Display label, LinkRendering inlinkRendering, Swimlane swimlane, + BoxStyle style, Url url, Colors colors) { super(swimlane); + if (colors == null) { + throw new IllegalArgumentException(); + } this.url = url; this.style = style; this.label = label; - this.color = color; this.inlinkRendering = inlinkRendering; + this.colors = colors; } public Ftile createFtile(FtileFactory factory) { - Ftile result = factory.activity(label, color, getSwimlaneIn(), style); + Ftile result = factory.activity(label, getSwimlaneIn(), style, colors); if (url != null) { result = factory.addUrl(result, url); } @@ -92,9 +95,10 @@ return inlinkRendering; } - public void addNote(Display note, NotePosition position) { + public boolean addNote(Display note, NotePosition position) { this.note = note; this.notePosition = position; + return true; } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionSplit.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionSplit.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionSplit.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionSplit.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -99,8 +99,8 @@ return inlinkRendering; } - public void addNote(Display note, NotePosition position) { - getLast().addNote(note, position); + public boolean addNote(Display note, NotePosition position) { + return getLast().addNote(note, position); } public Set getSwimlanes() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionStart.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionStart.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionStart.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionStart.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -62,7 +62,7 @@ return null; } - public void addNote(Display note, NotePosition position) { + public boolean addNote(Display note, NotePosition position) { throw new UnsupportedOperationException(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionStop.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionStop.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionStop.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionStop.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,6 +43,8 @@ public class InstructionStop extends MonoSwimable implements Instruction { private final LinkRendering inlinkRendering; + private Display note; + private NotePosition notePosition; public InstructionStop(Swimlane swimlane, LinkRendering inlinkRendering) { super(swimlane); @@ -50,7 +52,11 @@ } public Ftile createFtile(FtileFactory factory) { - return factory.stop(getSwimlaneIn()); + Ftile result = factory.stop(getSwimlaneIn()); + if (note != null) { + result = factory.addNote(result, note, notePosition); + } + return result; } public void add(Instruction other) { @@ -65,8 +71,10 @@ return inlinkRendering; } - public void addNote(Display note, NotePosition position) { - throw new UnsupportedOperationException(); + public boolean addNote(Display note, NotePosition position) { + this.note = note; + this.notePosition = position; + return true; } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionWhile.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionWhile.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/InstructionWhile.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/InstructionWhile.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,29 +39,42 @@ import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile; import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory; +import net.sourceforge.plantuml.activitydiagram3.ftile.FtileKilled; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; import net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.FtileWithNoteOpale; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.sequencediagram.NotePosition; -public class InstructionWhile implements Instruction { +public class InstructionWhile implements Instruction, InstructionCollection { private final InstructionList repeatList = new InstructionList(); private final Instruction parent; private final LinkRendering nextLinkRenderer; private final HtmlColor color; + private boolean killed = false; private final Display test; - private final Display yes; - private Display out; + private Display yes; + private Display out = Display.NULL; + private boolean testCalled = false; private LinkRendering endInlinkRendering; private LinkRendering afterEndwhile; private final Swimlane swimlane; private final ISkinParam skinParam; + public void overwriteYes(Display yes) { + this.yes = yes; + } + public InstructionWhile(Swimlane swimlane, Instruction parent, Display test, LinkRendering nextLinkRenderer, Display yes, HtmlColor color, ISkinParam skinParam) { + if (test == null) { + throw new IllegalArgumentException(); + } + if (yes == null) { + throw new IllegalArgumentException(); + } this.parent = parent; this.test = test; this.nextLinkRenderer = nextLinkRenderer; @@ -84,7 +97,9 @@ if (note != null) { tmp = new FtileWithNoteOpale(tmp, note, position, skinParam, false); } - // tmp = factory.decorateOut(tmp, afterEndwhile); + if (killed) { + return new FtileKilled(tmp); + } return tmp; } @@ -93,6 +108,10 @@ } final public boolean kill() { + if (testCalled) { + this.killed = true; + return true; + } return repeatList.kill(); } @@ -103,18 +122,23 @@ public void endwhile(LinkRendering nextLinkRenderer, Display out) { this.endInlinkRendering = nextLinkRenderer; this.out = out; + if (out == null) { + throw new IllegalArgumentException(); + } + this.testCalled = true; } public void afterEndwhile(LinkRendering linkRenderer) { this.afterEndwhile = linkRenderer; } - public void addNote(Display note, NotePosition position) { + public boolean addNote(Display note, NotePosition position) { if (repeatList.isEmpty()) { this.note = note; this.position = position; + return true; } else { - repeatList.addNote(note, position); + return repeatList.addNote(note, position); } } @@ -130,4 +154,9 @@ return getSwimlaneIn(); } + public Instruction getLast() { + return repeatList.getLast(); + } + + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/LinkRendering.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/LinkRendering.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/LinkRendering.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/LinkRendering.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,7 +40,7 @@ public class LinkRendering { private final HtmlColor color; - private Display display; + private Display display = Display.NULL; public LinkRendering(HtmlColor color) { this.color = color; @@ -79,7 +79,7 @@ public static Display getDisplay(LinkRendering linkRendering) { if (linkRendering == null) { - return null; + return Display.NULL; } return linkRendering.getDisplay(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/MonoSwimable.java plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/MonoSwimable.java --- plantuml-8024/src/net/sourceforge/plantuml/activitydiagram3/MonoSwimable.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/activitydiagram3/MonoSwimable.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/AlignParam.java plantuml-8039/src/net/sourceforge/plantuml/AlignParam.java --- plantuml-8024/src/net/sourceforge/plantuml/AlignParam.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/AlignParam.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/anim/AffineTransformation.java plantuml-8039/src/net/sourceforge/plantuml/anim/AffineTransformation.java --- plantuml-8024/src/net/sourceforge/plantuml/anim/AffineTransformation.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/anim/AffineTransformation.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,6 +41,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.ugraphic.MinMax; public class AffineTransformation { @@ -89,7 +90,7 @@ } private static AffineTransformation createSimple(String value) { - Matcher m = rotate.matcher(value.trim()); + Matcher m = rotate.matcher(StringUtils.trin(value)); if (m.find()) { final double angle = Double.parseDouble(m.group(1)); return new AffineTransformation(AffineTransform.getRotateInstance(angle * Math.PI / 180.0)); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/anim/AnimationDecoder.java plantuml-8039/src/net/sourceforge/plantuml/anim/AnimationDecoder.java --- plantuml-8024/src/net/sourceforge/plantuml/anim/AnimationDecoder.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/anim/AnimationDecoder.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,7 @@ import java.util.ArrayList; import java.util.Collections; +import java.util.Iterator; import java.util.List; import java.util.StringTokenizer; @@ -45,14 +46,14 @@ private final List result = new ArrayList(); - public AnimationDecoder(List data) throws ScriptException { - for (int i = 0; i < data.size(); i++) { - String line = data.get(i); + public AnimationDecoder(Iterable data) throws ScriptException { + + for (final Iterator it = data.iterator(); it.hasNext();) { + String line = it.next().toString(); if (line.matches("^\\s*\\[script\\]\\s*$")) { final StringBuilder scriptText = new StringBuilder(); while (true) { - i++; - line = data.get(i); + line = it.next().toString(); if (line.matches("^\\s*\\[/script\\]\\s*$")) { final AnimationScript script = new AnimationScript(); final String out = script.eval(scriptText.toString()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/anim/Animation.java plantuml-8039/src/net/sourceforge/plantuml/anim/Animation.java --- plantuml-8024/src/net/sourceforge/plantuml/anim/Animation.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/anim/Animation.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/anim/AnimationScript.java plantuml-8039/src/net/sourceforge/plantuml/anim/AnimationScript.java --- plantuml-8024/src/net/sourceforge/plantuml/anim/AnimationScript.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/anim/AnimationScript.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/AnimatedGifEncoder.java plantuml-8039/src/net/sourceforge/plantuml/AnimatedGifEncoder.java --- plantuml-8024/src/net/sourceforge/plantuml/AnimatedGifEncoder.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/AnimatedGifEncoder.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -142,7 +142,6 @@ * * @param iter * int number of iterations. - * @return */ public void setRepeat(int iter) { if (iter >= 0) { @@ -264,7 +263,6 @@ * * @param quality * int greater than 0. - * @return */ public void setQuality(int quality) { if (quality < 1) diff -Nru plantuml-8024/src/net/sourceforge/plantuml/Annotated.java plantuml-8039/src/net/sourceforge/plantuml/Annotated.java --- plantuml-8024/src/net/sourceforge/plantuml/Annotated.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/Annotated.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,51 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; + +public interface Annotated { + + public DisplayPositionned getTitle(); + + public DisplayPositionned getCaption(); + + public DisplayPositionned getLegend(); + + public DisplayPositionned getHeader(); + + public DisplayPositionned getFooter(); + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/AnnotatedWorker.java plantuml-8039/src/net/sourceforge/plantuml/AnnotatedWorker.java --- plantuml-8024/src/net/sourceforge/plantuml/AnnotatedWorker.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/AnnotatedWorker.java 2016-04-22 16:26:19.000000000 +0000 @@ -0,0 +1,135 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +import net.sourceforge.plantuml.activitydiagram3.ftile.EntityImageLegend; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; +import net.sourceforge.plantuml.graphic.FontConfiguration; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.svek.DecorateEntityImage; +import net.sourceforge.plantuml.svek.TextBlockBackcolored; + +public class AnnotatedWorker { + + private final Annotated annotated; + private final ISkinParam skinParam; + + public AnnotatedWorker(Annotated annotated, ISkinParam skinParam) { + this.annotated = annotated; + this.skinParam = skinParam; + + } + + public TextBlockBackcolored addAdd(TextBlock result) { + result = addLegend(result); + result = addTitle(result); + result = addCaption(result); + result = addHeaderAndFooter(result); + return (TextBlockBackcolored) result; + } + + private TextBlock addLegend(TextBlock original) { + if (DisplayPositionned.isNull(annotated.getLegend())) { + return original; + } + final TextBlock text = EntityImageLegend.create(annotated.getLegend().getDisplay(), getSkinParam()); + + return DecorateEntityImage.add(original, text, annotated.getLegend().getHorizontalAlignment(), annotated + .getLegend().getVerticalAlignment()); + } + + private ISkinParam getSkinParam() { + return skinParam; + } + + private TextBlock addCaption(TextBlock original) { + if (DisplayPositionned.isNull(annotated.getCaption())) { + return original; + } + final TextBlock text = getCaption(); + + return DecorateEntityImage.addBottom(original, text, HorizontalAlignment.CENTER); + } + + public TextBlock getCaption() { + if (DisplayPositionned.isNull(annotated.getCaption())) { + return TextBlockUtils.empty(0, 0); + } + return annotated + .getCaption() + .getDisplay() + .create(new FontConfiguration(getSkinParam(), FontParam.CAPTION, null), HorizontalAlignment.CENTER, + getSkinParam()); + } + + private TextBlock addTitle(TextBlock original) { + if (DisplayPositionned.isNull(annotated.getTitle())) { + return original; + } + final TextBlock text = annotated + .getTitle() + .getDisplay() + .create(new FontConfiguration(getSkinParam(), FontParam.TITLE, null), HorizontalAlignment.CENTER, + getSkinParam()); + + return DecorateEntityImage.addTop(original, text, HorizontalAlignment.CENTER); + // return new DecorateTextBlock(original, text, HorizontalAlignment.CENTER); + } + + private TextBlock addHeaderAndFooter(TextBlock original) { + if (DisplayPositionned.isNull(annotated.getFooter()) && DisplayPositionned.isNull(annotated.getHeader())) { + return original; + } + final TextBlock textFooter = DisplayPositionned.isNull(annotated.getFooter()) ? null : annotated + .getFooter() + .getDisplay() + .create(new FontConfiguration(getSkinParam(), FontParam.FOOTER, null), + annotated.getFooter().getHorizontalAlignment(), getSkinParam()); + final TextBlock textHeader = DisplayPositionned.isNull(annotated.getHeader()) ? null : annotated + .getHeader() + .getDisplay() + .create(new FontConfiguration(getSkinParam(), FontParam.HEADER, null), + annotated.getHeader().getHorizontalAlignment(), getSkinParam()); + + // return new DecorateTextBlock(original, textHeader, annotated.getHeader().getHorizontalAlignment(), + // textFooter, + // annotated.getFooter().getHorizontalAlignment()); + return new DecorateEntityImage(original, textHeader, annotated.getHeader().getHorizontalAlignment(), + textFooter, annotated.getFooter().getHorizontalAlignment()); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ant/PlantUmlTask.java plantuml-8039/src/net/sourceforge/plantuml/ant/PlantUmlTask.java --- plantuml-8024/src/net/sourceforge/plantuml/ant/PlantUmlTask.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ant/PlantUmlTask.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -50,6 +50,7 @@ import net.sourceforge.plantuml.Option; import net.sourceforge.plantuml.OptionFlags; import net.sourceforge.plantuml.SourceFileReader; +import net.sourceforge.plantuml.cucadiagram.dot.GraphvizUtils; import net.sourceforge.plantuml.preproc.Defines; import org.apache.tools.ant.BuildException; @@ -282,6 +283,9 @@ } public void setFormat(String s) { + if ("scxml".equalsIgnoreCase(s)) { + option.setFileFormat(FileFormat.SCXML); + } if ("xmi".equalsIgnoreCase(s)) { option.setFileFormat(FileFormat.XMI_STANDARD); } @@ -300,6 +304,9 @@ if ("latex".equalsIgnoreCase(s)) { option.setFileFormat(FileFormat.LATEX); } + if ("latex:nopreamble".equalsIgnoreCase(s)) { + option.setFileFormat(FileFormat.LATEX_NO_PREAMBLE); + } if ("eps:text".equalsIgnoreCase(s)) { option.setFileFormat(FileFormat.EPS_TEXT); } @@ -315,7 +322,7 @@ } public void setGraphvizDot(String s) { - OptionFlags.getInstance().setDotExecutable(s); + GraphvizUtils.setDotExecutable(s); } public void setNbThread(String s) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/CountRate.java plantuml-8039/src/net/sourceforge/plantuml/api/CountRate.java --- plantuml-8024/src/net/sourceforge/plantuml/api/CountRate.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/CountRate.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/ImageDataComplex.java plantuml-8039/src/net/sourceforge/plantuml/api/ImageDataComplex.java --- plantuml-8024/src/net/sourceforge/plantuml/api/ImageDataComplex.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/ImageDataComplex.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/ImageDataSimple.java plantuml-8039/src/net/sourceforge/plantuml/api/ImageDataSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/api/ImageDataSimple.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/ImageDataSimple.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/INumberAnalyzed.java plantuml-8039/src/net/sourceforge/plantuml/api/INumberAnalyzed.java --- plantuml-8024/src/net/sourceforge/plantuml/api/INumberAnalyzed.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/INumberAnalyzed.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/MagicArray.java plantuml-8039/src/net/sourceforge/plantuml/api/MagicArray.java --- plantuml-8024/src/net/sourceforge/plantuml/api/MagicArray.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/MagicArray.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/mda/option2/MDADiagram.java plantuml-8039/src/net/sourceforge/plantuml/api/mda/option2/MDADiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/api/mda/option2/MDADiagram.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/mda/option2/MDADiagram.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/mda/option2/MDAEntity.java plantuml-8039/src/net/sourceforge/plantuml/api/mda/option2/MDAEntity.java --- plantuml-8024/src/net/sourceforge/plantuml/api/mda/option2/MDAEntity.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/mda/option2/MDAEntity.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/mda/option2/MDAPackage.java plantuml-8039/src/net/sourceforge/plantuml/api/mda/option2/MDAPackage.java --- plantuml-8024/src/net/sourceforge/plantuml/api/mda/option2/MDAPackage.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/mda/option2/MDAPackage.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/mda/option2/MDAUtils.java plantuml-8039/src/net/sourceforge/plantuml/api/mda/option2/MDAUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/api/mda/option2/MDAUtils.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/mda/option2/MDAUtils.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/mda/option3/MDAVisitor.java plantuml-8039/src/net/sourceforge/plantuml/api/mda/option3/MDAVisitor.java --- plantuml-8024/src/net/sourceforge/plantuml/api/mda/option3/MDAVisitor.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/mda/option3/MDAVisitor.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/MyRunnable.java plantuml-8039/src/net/sourceforge/plantuml/api/MyRunnable.java --- plantuml-8024/src/net/sourceforge/plantuml/api/MyRunnable.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/MyRunnable.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/NiceNumber.java plantuml-8039/src/net/sourceforge/plantuml/api/NiceNumber.java --- plantuml-8024/src/net/sourceforge/plantuml/api/NiceNumber.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/NiceNumber.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/NumberAnalyzed.java plantuml-8039/src/net/sourceforge/plantuml/api/NumberAnalyzed.java --- plantuml-8024/src/net/sourceforge/plantuml/api/NumberAnalyzed.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/NumberAnalyzed.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/PlantumlUtils.java plantuml-8039/src/net/sourceforge/plantuml/api/PlantumlUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/api/PlantumlUtils.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/PlantumlUtils.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/PSystemFactory.java plantuml-8039/src/net/sourceforge/plantuml/api/PSystemFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/api/PSystemFactory.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/PSystemFactory.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/api/TimeoutExecutor.java plantuml-8039/src/net/sourceforge/plantuml/api/TimeoutExecutor.java --- plantuml-8024/src/net/sourceforge/plantuml/api/TimeoutExecutor.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/api/TimeoutExecutor.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/applet/VersionApplet.java plantuml-8039/src/net/sourceforge/plantuml/applet/VersionApplet.java --- plantuml-8024/src/net/sourceforge/plantuml/applet/VersionApplet.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/applet/VersionApplet.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/AbstractComponentText.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/AbstractComponentText.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/AbstractComponentText.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/AbstractComponentText.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/BasicCharAreaImpl.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/BasicCharAreaImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/BasicCharAreaImpl.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/BasicCharAreaImpl.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/BasicCharArea.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/BasicCharArea.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/BasicCharArea.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/BasicCharArea.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextActiveLine.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextActiveLine.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextActiveLine.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextActiveLine.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextActor.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextActor.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextActor.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextActor.java 2016-04-22 16:26:19.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextArrow.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextArrow.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextArrow.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,18 +37,17 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.FileFormat; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.sequencediagram.MessageNumber; import net.sourceforge.plantuml.skin.Area; import net.sourceforge.plantuml.skin.ArrowConfiguration; import net.sourceforge.plantuml.skin.ArrowDirection; -import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.ComponentType; import net.sourceforge.plantuml.skin.Context2D; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.txt.UGraphicTxt; -import net.sourceforge.plantuml.StringUtils; public class ComponentTextArrow extends AbstractComponentText { @@ -56,9 +55,11 @@ private final Display stringsToDisplay; private final FileFormat fileFormat; private final ArrowConfiguration config; + private final int maxAsciiMessageLength; public ComponentTextArrow(ComponentType type, ArrowConfiguration config, Display stringsToDisplay, - FileFormat fileFormat) { + FileFormat fileFormat, int maxAsciiMessageLength) { + this.maxAsciiMessageLength = maxAsciiMessageLength; this.type = type; this.config = config; this.stringsToDisplay = clean(stringsToDisplay); @@ -105,9 +106,13 @@ charArea.drawChar('>', width - 1, yarrow); } else if (config.getArrowDirection() == ArrowDirection.RIGHT_TO_LEFT_REVERSE) { charArea.drawChar('<', 1, yarrow); + } else if (config.getArrowDirection() == ArrowDirection.BOTH_DIRECTION) { + charArea.drawChar('>', width - 1, yarrow); + charArea.drawChar('<', 1, yarrow); } else { throw new UnsupportedOperationException(); } + // final int position = Math.max(0, (width - textWidth) / 2); charArea.drawStringsLR(stringsToDisplay.as(), (width - textWidth) / 2, 0); } @@ -116,7 +121,11 @@ } public double getPreferredWidth(StringBounder stringBounder) { - return StringUtils.getWidth(stringsToDisplay) + 2; + final int width = StringUtils.getWidth(stringsToDisplay) + 2; + if (maxAsciiMessageLength > 0) { + return Math.min(maxAsciiMessageLength, width); + } + return width; } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextDivider.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextDivider.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextDivider.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextDivider.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingBody.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingBody.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingBody.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingBody.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingElse.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingElse.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingElse.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingElse.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingHeader.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingHeader.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingHeader.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingHeader.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingTail.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingTail.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingTail.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextGroupingTail.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextLine.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextLine.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextLine.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextLine.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextNewpage.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextNewpage.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextNewpage.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextNewpage.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextNote.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextNote.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextNote.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextNote.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,15 +37,14 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.FileFormat; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.skin.Area; -import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.ComponentType; import net.sourceforge.plantuml.skin.Context2D; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.txt.UGraphicTxt; -import net.sourceforge.plantuml.StringUtils; public class ComponentTextNote extends AbstractComponentText { @@ -65,10 +64,18 @@ final int width = (int) dimensionToUse.getWidth() - 1; final int height = (int) dimensionToUse.getHeight(); charArea.fillRect(' ', 2, 1, width - 3, height - 2); - if (fileFormat == FileFormat.UTXT) { - charArea.drawNoteSimpleUnicode(2, 0, width - 2, height); - } else { - charArea.drawNoteSimple(2, 0, width - 2, height); + if (type == ComponentType.NOTE) { + if (fileFormat == FileFormat.UTXT) { + charArea.drawNoteSimpleUnicode(2, 0, width - 2, height); + } else { + charArea.drawNoteSimple(2, 0, width - 2, height); + } + } else if (type == ComponentType.NOTE_BOX) { + if (fileFormat == FileFormat.UTXT) { + charArea.drawBoxSimpleUnicode(2, 0, width - 2, height); + } else { + charArea.drawBoxSimple(2, 0, width - 2, height); + } } charArea.drawStringsLR(stringsToDisplay.as(), 3, 1); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextParticipant.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextParticipant.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextParticipant.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextParticipant.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextSelfArrow.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextSelfArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/ComponentTextSelfArrow.java 2015-05-03 15:06:14.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/ComponentTextSelfArrow.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/TextSkin.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/TextSkin.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/TextSkin.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/TextSkin.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -61,8 +61,10 @@ return new ComponentTextActor(type, stringsToDisplay, fileFormat); } if (type.isArrow() - && ((config.getArrowDirection() == ArrowDirection.LEFT_TO_RIGHT_NORMAL) || (config.getArrowDirection() == ArrowDirection.RIGHT_TO_LEFT_REVERSE))) { - return new ComponentTextArrow(type, config, stringsToDisplay, fileFormat); + && (config.getArrowDirection() == ArrowDirection.LEFT_TO_RIGHT_NORMAL + || config.getArrowDirection() == ArrowDirection.RIGHT_TO_LEFT_REVERSE || config + .getArrowDirection() == ArrowDirection.BOTH_DIRECTION)) { + return new ComponentTextArrow(type, config, stringsToDisplay, fileFormat, param.maxAsciiMessageLength()); } if (type.isArrow() && config.isSelfArrow()) { return new ComponentTextSelfArrow(type, config, stringsToDisplay, fileFormat); @@ -88,7 +90,7 @@ if (type == ComponentType.ALIVE_BOX_OPEN_OPEN) { return new ComponentTextActiveLine(fileFormat); } - if (type == ComponentType.NOTE) { + if (type == ComponentType.NOTE || type == ComponentType.NOTE_BOX) { return new ComponentTextNote(type, stringsToDisplay, fileFormat); } if (type == ComponentType.DIVIDER) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/TextStringBounder.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/TextStringBounder.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/TextStringBounder.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/TextStringBounder.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/TranslatedCharArea.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/TranslatedCharArea.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/TranslatedCharArea.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/TranslatedCharArea.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/UmlCharAreaImpl.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/UmlCharAreaImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/UmlCharAreaImpl.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/UmlCharAreaImpl.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -85,6 +85,9 @@ public void drawStringsLR(Collection strings, int x, int y) { int i = 0; + if (x < 0) { + x = 0; + } for (CharSequence s : strings) { this.drawStringLR(s.toString(), x, y + i); i++; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/asciiart/UmlCharArea.java plantuml-8039/src/net/sourceforge/plantuml/asciiart/UmlCharArea.java --- plantuml-8024/src/net/sourceforge/plantuml/asciiart/UmlCharArea.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/asciiart/UmlCharArea.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/BasicEnsureVisible.java plantuml-8039/src/net/sourceforge/plantuml/BasicEnsureVisible.java --- plantuml-8024/src/net/sourceforge/plantuml/BasicEnsureVisible.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/BasicEnsureVisible.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/BlockUmlBuilder.java plantuml-8039/src/net/sourceforge/plantuml/BlockUmlBuilder.java --- plantuml-8024/src/net/sourceforge/plantuml/BlockUmlBuilder.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/BlockUmlBuilder.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,12 +38,14 @@ import java.io.IOException; import java.io.Reader; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import net.sourceforge.plantuml.preproc.Defines; +import net.sourceforge.plantuml.preproc.FileWithSuffix; import net.sourceforge.plantuml.preproc.Preprocessor; import net.sourceforge.plantuml.preproc.ReadLineReader; import net.sourceforge.plantuml.preproc.UncommentReadLine; @@ -52,31 +54,36 @@ final public class BlockUmlBuilder { private final List blocks = new ArrayList(); - private final Set usedFiles = new HashSet(); + private Set usedFiles = new HashSet(); private final UncommentReadLine reader2; - public BlockUmlBuilder(List config, String charset, Defines defines, Reader reader, File newCurrentDir) - throws IOException { + public BlockUmlBuilder(List config, String charset, Defines defines, Reader reader, File newCurrentDir, + String desc) throws IOException { Preprocessor includer = null; try { - reader2 = new UncommentReadLine(new ReadLineReader(reader)); - includer = new Preprocessor(reader2, charset, defines, usedFiles, newCurrentDir); + reader2 = new UncommentReadLine(new ReadLineReader(reader, desc)); + includer = new Preprocessor(reader2, charset, defines, newCurrentDir); init(includer, config); } finally { if (includer != null) { includer.close(); + usedFiles = includer.getFilesUsed(); } } } + public BlockUmlBuilder(List config, String charset, Defines defines, Reader reader) throws IOException { + this(config, charset, defines, reader, null, null); + } + private void init(Preprocessor includer, List config) throws IOException { - String s = null; - List current = null; + CharSequence2 s = null; + List current2 = null; boolean paused = false; int startLine = 0; while ((s = includer.readLine()) != null) { if (StartUtils.isArobaseStartDiagram(s)) { - current = new ArrayList(); + current2 = new ArrayList(); paused = false; startLine = includer.getLineNumber(); } @@ -84,12 +91,12 @@ paused = true; reader2.setPaused(true); } - if (current != null && paused == false) { - current.add(s); + if (current2 != null && paused == false) { + current2.add(s); } else if (paused) { - final String append = StartUtils.getPossibleAppend(s); + final CharSequence2 append = StartUtils.getPossibleAppend(s); if (append != null) { - current.add(append); + current2.add(append); } } @@ -97,20 +104,28 @@ paused = false; reader2.setPaused(false); } - if (StartUtils.isArobaseEndDiagram(s) && current != null) { - current.addAll(1, config); - blocks.add(new BlockUml(current, startLine)); - current = null; + if (StartUtils.isArobaseEndDiagram(s) && current2 != null) { + current2.addAll(1, convert(config, s.getLocation())); + blocks.add(new BlockUml(current2, startLine)); + current2 = null; reader2.setPaused(false); } } } + private Collection convert(List config, LineLocation location) { + final List result = new ArrayList(); + for (String s : config) { + result.add(new CharSequence2Impl(s, location)); + } + return result; + } + public List getBlockUmls() { return Collections.unmodifiableList(blocks); } - public final Set getIncludedFiles() { + public final Set getIncludedFiles() { return Collections.unmodifiableSet(usedFiles); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/BlockUml.java plantuml-8039/src/net/sourceforge/plantuml/BlockUml.java --- plantuml-8024/src/net/sourceforge/plantuml/BlockUml.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/BlockUml.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,30 +45,54 @@ public class BlockUml { - private final List data; + private final List data; private final int startLine; private Diagram system; private static final Pattern patternFilename = MyPattern.cmpile("^@start[^%s{}%g]+[%s{][%s%g]*([^%g]*?)[%s}%g]*$"); BlockUml(String... strings) { - this(Arrays.asList(strings), 0); + this(convert(strings), 0); } - public BlockUml(List strings, int startLine) { + public String getFlashData() { + final StringBuilder sb = new StringBuilder(); + for (CharSequence2 line : data) { + sb.append(line); + sb.append('\r'); + sb.append('\n'); + } + return sb.toString(); + } + + public static List convert(String... strings) { + return convert(Arrays.asList(strings)); + } + + public static List convert(List strings) { + final List result = new ArrayList(); + LineLocationImpl location = new LineLocationImpl("block", null); + for (String s : strings) { + location = location.oneLineRead(); + result.add(new CharSequence2Impl(s, location)); + } + return result; + } + + public BlockUml(List strings, int startLine) { this.startLine = startLine; - final String s0 = strings.get(0).toString().trim(); + final CharSequence2 s0 = strings.get(0).trin(); if (s0.startsWith("@start") == false) { throw new IllegalArgumentException(); } - this.data = new ArrayList(strings); + this.data = new ArrayList(strings); } - public String getFilename() { + public String getFileOrDirname() { if (OptionFlags.getInstance().isWord()) { return null; } - final Matcher m = patternFilename.matcher(data.get(0).toString().trim()); + final Matcher m = patternFilename.matcher(StringUtils.trin(data.get(0).toString())); final boolean ok = m.find(); if (ok == false) { return null; @@ -84,6 +108,9 @@ return null; } } + if (result.startsWith("file://")) { + result = result.substring("file://".length()); + } return result; } @@ -98,4 +125,8 @@ return startLine; } + public final List getData() { + return data; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/braille/BrailleUtils.java plantuml-8039/src/net/sourceforge/plantuml/braille/BrailleUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/braille/BrailleUtils.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/braille/BrailleUtils.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/CharSequence2Impl.java plantuml-8039/src/net/sourceforge/plantuml/CharSequence2Impl.java --- plantuml-8024/src/net/sourceforge/plantuml/CharSequence2Impl.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/CharSequence2Impl.java 2016-04-22 16:26:20.000000000 +0000 @@ -0,0 +1,91 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +public class CharSequence2Impl implements CharSequence2 { + + private final CharSequence s; + private final LineLocation location; + + public CharSequence2Impl(CharSequence s, LineLocation location) { + if (s == null) { + throw new IllegalArgumentException(); + } + this.s = s; + this.location = location; + } + + public static CharSequence2 errorPreprocessor(CharSequence s, LineLocation lineLocation) { + return new CharSequence2Impl(s, lineLocation); + } + + public int length() { + return s.length(); + } + + public char charAt(int index) { + return s.charAt(index); + } + + public CharSequence2 subSequence(int start, int end) { + return new CharSequence2Impl(s.subSequence(start, end), location); + } + + public CharSequence toCharSequence() { + return s; + } + + @Override + public String toString() { + return s.toString(); + } + + public String toString2() { + return s.toString(); + } + + public LineLocation getLocation() { + return location; + } + + public CharSequence2 trin() { + return new CharSequence2Impl(StringUtils.trin(s.toString()), location); + } + + public boolean startsWith(String start) { + return s.toString().startsWith(start); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/CharSequence2.java plantuml-8039/src/net/sourceforge/plantuml/CharSequence2.java --- plantuml-8024/src/net/sourceforge/plantuml/CharSequence2.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/CharSequence2.java 2016-04-22 16:26:20.000000000 +0000 @@ -0,0 +1,53 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +public interface CharSequence2 extends CharSequence { + + public int length(); + + public char charAt(int index); + + public CharSequence2 subSequence(int start, int end); + + public String toString2(); + + public LineLocation getLocation(); + + public CharSequence2 trin(); + + public boolean startsWith(String string); + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/AbstractEntityDiagram.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/AbstractEntityDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/AbstractEntityDiagram.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/AbstractEntityDiagram.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/ClassDiagramFactory.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/ClassDiagramFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/ClassDiagramFactory.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/ClassDiagramFactory.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,6 +38,7 @@ import java.util.List; import net.sourceforge.plantuml.AbstractPSystem; +import net.sourceforge.plantuml.NewpagedDiagram; import net.sourceforge.plantuml.UmlDiagramType; import net.sourceforge.plantuml.classdiagram.command.CommandAddMethod; import net.sourceforge.plantuml.classdiagram.command.CommandAllowMixing; @@ -47,11 +48,11 @@ import net.sourceforge.plantuml.classdiagram.command.CommandCreateElementFull2.Mode; import net.sourceforge.plantuml.classdiagram.command.CommandDiamondAssociation; import net.sourceforge.plantuml.classdiagram.command.CommandHideShowSpecificClass; +import net.sourceforge.plantuml.classdiagram.command.CommandHideShowSpecificStereotype; import net.sourceforge.plantuml.classdiagram.command.CommandImport; import net.sourceforge.plantuml.classdiagram.command.CommandLayoutNewLine; import net.sourceforge.plantuml.classdiagram.command.CommandLinkClass; import net.sourceforge.plantuml.classdiagram.command.CommandLinkLollipop; -import net.sourceforge.plantuml.classdiagram.command.CommandMouseOver; import net.sourceforge.plantuml.classdiagram.command.CommandNamespaceSeparator; import net.sourceforge.plantuml.classdiagram.command.CommandStereotype; import net.sourceforge.plantuml.classdiagram.command.CommandUrl; @@ -67,8 +68,13 @@ import net.sourceforge.plantuml.command.note.FactoryNoteCommand; import net.sourceforge.plantuml.command.note.FactoryNoteOnEntityCommand; import net.sourceforge.plantuml.command.note.FactoryNoteOnLinkCommand; +import net.sourceforge.plantuml.command.note.FactoryTipOnEntityCommand; import net.sourceforge.plantuml.command.regex.RegexLeaf; +import net.sourceforge.plantuml.core.Diagram; import net.sourceforge.plantuml.cucadiagram.Link; +import net.sourceforge.plantuml.descdiagram.command.CommandNewpage; +import net.sourceforge.plantuml.objectdiagram.command.CommandCreateEntityObject; +import net.sourceforge.plantuml.objectdiagram.command.CommandCreateEntityObjectMultilines; public class ClassDiagramFactory extends UmlDiagramFactory { @@ -85,10 +91,14 @@ addCommonCommands(cmds); cmds.add(new CommandRankDir()); + cmds.add(new CommandNewpage(this)); + cmds.add(new CommandHideShowSpecificStereotype()); cmds.add(new CommandPage()); cmds.add(new CommandAddMethod()); cmds.add(new CommandCreateClass()); + cmds.add(new CommandCreateEntityObject()); + cmds.add(new CommandAllowMixing()); cmds.add(new CommandLayoutNewLine()); @@ -108,21 +118,29 @@ cmds.add(new CommandLinkLollipop(UmlDiagramType.CLASS)); cmds.add(new CommandImport()); + + final FactoryTipOnEntityCommand factoryTipOnEntityCommand = new FactoryTipOnEntityCommand(new RegexLeaf( + "ENTITY", "(" + CommandCreateClass.CODE_NO_DOTDOT + "|[%g][^%g]+[%g])::([^%s]+)")); + cmds.add(factoryTipOnEntityCommand.createMultiLine(true)); + cmds.add(factoryTipOnEntityCommand.createMultiLine(false)); + final FactoryNoteOnEntityCommand factoryNoteOnEntityCommand = new FactoryNoteOnEntityCommand(new RegexLeaf( "ENTITY", "(" + CommandCreateClass.CODE + "|[%g][^%g]+[%g])")); cmds.add(factoryNoteOnEntityCommand.createSingleLine()); cmds.add(new CommandUrl()); - cmds.add(factoryNoteOnEntityCommand.createMultiLine()); - cmds.add(factoryNoteCommand.createMultiLine()); + cmds.add(factoryNoteOnEntityCommand.createMultiLine(true)); + cmds.add(factoryNoteOnEntityCommand.createMultiLine(false)); + cmds.add(factoryNoteCommand.createMultiLine(false)); + cmds.add(new CommandCreateClassMultilines()); + cmds.add(new CommandCreateEntityObjectMultilines()); final FactoryNoteOnLinkCommand factoryNoteOnLinkCommand = new FactoryNoteOnLinkCommand(); cmds.add(factoryNoteOnLinkCommand.createSingleLine()); - cmds.add(factoryNoteOnLinkCommand.createMultiLine()); + cmds.add(factoryNoteOnLinkCommand.createMultiLine(false)); cmds.add(new CommandDiamondAssociation()); - cmds.add(new CommandMouseOver()); cmds.add(new CommandHideShowSpecificClass()); @@ -133,8 +151,18 @@ @Override public String checkFinalError(AbstractPSystem sys) { - final ClassDiagram system = (ClassDiagram) sys; + if (sys instanceof NewpagedDiagram) { + for (Diagram p : ((NewpagedDiagram) sys).getDiagrams()) { + checkFinal((ClassDiagram) p); + } + } else { + final ClassDiagram system = (ClassDiagram) sys; + checkFinal(system); + } + return super.checkFinalError(sys); + } + private void checkFinal(final ClassDiagram system) { for (Link link : system.getLinks()) { final int len = link.getLength(); if (len == 1) { @@ -145,23 +173,7 @@ } } } - system.applySingleStrategy(); - - // for (IGroup g : system.getGroups(true)) { - // final List standalones = new ArrayList(); - // for (ILeaf ent : g.getLeafsDirect()) { - // if (system.isStandalone(ent)) { - // standalones.add(ent); - // } - // } - // if (standalones.size() < 3) { - // continue; - // } - // final Magma magma = new Magma(system, standalones); - // magma.putInSquare(); - // } - return super.checkFinalError(system); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/ClassDiagram.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/ClassDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/ClassDiagram.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/ClassDiagram.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,6 +40,7 @@ import net.sourceforge.plantuml.FileFormatOption; import net.sourceforge.plantuml.UmlDiagramType; import net.sourceforge.plantuml.core.ImageData; +import net.sourceforge.plantuml.creole.CreoleMode; import net.sourceforge.plantuml.cucadiagram.Code; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.EntityUtils; @@ -139,9 +140,10 @@ group = getOrCreateNamespaceInternal(namespace2, Display.getWithNewlines(namespace), GroupType.PACKAGE, getRootGroup()); } - return createLeafInternal(fullyCode, - display == null ? Display.getWithNewlines(fullyCode.getShortName(getLeafs())) : display, type, group, - symbol); + return createLeafInternal( + fullyCode, + Display.isNull(display) ? Display.getWithNewlines(fullyCode.getShortName(getLeafs())).withCreoleMode( + CreoleMode.SIMPLE_LINE) : display, type, group, symbol); } private final String getNamespace(Code fullyCode) { @@ -213,8 +215,8 @@ } final ImageBuilder imageBuilder = new ImageBuilder(getSkinParam().getColorMapper(), 1, HtmlColorUtils.WHITE, null, null, 0, 10, null, getSkinParam().handwritten()); - imageBuilder.addUDrawable(fullLayout); - return imageBuilder.writeImageTOBEMOVED(fileFormatOption.getFileFormat(), os); + imageBuilder.setUDrawable(fullLayout); + return imageBuilder.writeImageTOBEMOVED(fileFormatOption, os); } private RowLayout getRawLayout(int raw) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandAddMethod.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandAddMethod.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandAddMethod.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandAddMethod.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -57,7 +57,7 @@ if (field.length() > 0 && VisibilityModifier.isVisibilityCharacter(field.charAt(0))) { system.setVisibilityModifierPresent(true); } - entity.addFieldOrMethod(field); + entity.getBodier().addFieldOrMethod(field); return CommandExecutionResult.ok(); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandAllowMixing.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandAllowMixing.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandAllowMixing.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandAllowMixing.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateClass.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateClass.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateClass.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateClass.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,8 +34,6 @@ */ package net.sourceforge.plantuml.classdiagram.command; -import java.util.Locale; - import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; @@ -53,11 +51,15 @@ import net.sourceforge.plantuml.cucadiagram.ILeaf; import net.sourceforge.plantuml.cucadiagram.LeafType; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; public class CommandCreateClass extends SingleLineCommand2 { public static final String CODE = "[^%s{}%g<>]+"; + public static final String CODE_NO_DOTDOT = "[^%s{}%g<>:]+"; enum Mode { EXTENDS, IMPLEMENTS @@ -73,13 +75,13 @@ "(interface|enum|annotation|abstract[%s]+class|abstract|class)[%s]+"), // new RegexOr(// new RegexConcat(// - new RegexLeaf("DISPLAY1", "[%g]([^%g]+)[%g]"), // + new RegexLeaf("DISPLAY1", "[%g](.+)[%g]"), // new RegexLeaf("[%s]+as[%s]+"), // new RegexLeaf("CODE1", "(" + CODE + ")")), // new RegexConcat(// new RegexLeaf("CODE2", "(" + CODE + ")"), // new RegexLeaf("[%s]+as[%s]+"), // // - new RegexLeaf("DISPLAY2", "[%g]([^%g]+)[%g]")), // + new RegexLeaf("DISPLAY2", "[%g](.+)[%g]")), // new RegexLeaf("CODE3", "(" + CODE + ")"), // new RegexLeaf("CODE4", "[%g]([^%g]+)[%g]")), // new RegexLeaf("GENERIC", "(?:[%s]*\\<(" + GenericRegexProducer.PATTERN + ")\\>)?"), // @@ -88,7 +90,7 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("[%s]*"), // new RegexLeaf("LINECOLOR", "(?:##(?:\\[(dotted|dashed|bold)\\])?(\\w+)?)?"), // new RegexLeaf("EXTENDS", "([%s]+(extends)[%s]+(" + CommandCreateClassMultilines.CODES + "))?"), // @@ -96,6 +98,10 @@ new RegexLeaf("$")); } + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } + @Override protected CommandExecutionResult executeArg(ClassDiagram diagram, RegexResult arg) { final LeafType type = LeafType.getLeafType(StringUtils.goUpperCase(arg.get("TYPE", 0))); @@ -113,7 +119,7 @@ } if (stereotype != null) { entity.setStereotype(new Stereotype(stereotype, diagram.getSkinParam().getCircledCharacterRadius(), diagram - .getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam() + .getSkinParam().getFont(null, false, FontParam.CIRCLED_CHARACTER), diagram.getSkinParam() .getIHtmlColorSet())); } if (generic != null) { @@ -127,9 +133,27 @@ entity.addUrl(url); } - entity.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); - entity.setSpecificLineColor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1))); - CommandCreateClassMultilines.applyStroke(entity, arg.get("LINECOLOR", 0)); + Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); + + final HtmlColor lineColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1)); + if (lineColor != null) { + colors = colors.add(ColorType.LINE, lineColor); + } + if (arg.get("LINECOLOR", 0) != null) { + colors = colors.addLegacyStroke(arg.get("LINECOLOR", 0)); + } + entity.setColors(colors); + + // entity.setSpecificColorTOBEREMOVED(ColorType.LINE, lineColor); + // entity.setSpecificColorTOBEREMOVED(ColorType.HEADER, colors.getColor(ColorType.HEADER)); + // + // if (colors.getLineStyle() != null) { + // entity.setSpecificLineStroke(LinkStyle.getStroke(colors.getLineStyle())); + // } + // + // if (arg.get("LINECOLOR", 0) != null) { + // entity.applyStroke(arg.get("LINECOLOR", 0)); + // } // manageExtends(diagram, arg, entity); CommandCreateClassMultilines.manageExtends("EXTENDS", diagram, arg, entity); @@ -137,7 +161,6 @@ return CommandExecutionResult.ok(); } - // public static void manageExtends(ClassDiagram system, RegexResult arg, final IEntity entity) { // if (arg.get("EXTENDS", 1) != null) { // final Mode mode = arg.get("EXTENDS", 1).equalsIgnoreCase("extends") ? Mode.EXTENDS : Mode.IMPLEMENTS; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateClassMultilines.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateClassMultilines.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateClassMultilines.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateClassMultilines.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,13 +34,13 @@ */ package net.sourceforge.plantuml.classdiagram.command; -import java.util.List; - import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; import net.sourceforge.plantuml.classdiagram.ClassDiagram; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; import net.sourceforge.plantuml.command.MultilinesStrategy; @@ -55,18 +55,18 @@ import net.sourceforge.plantuml.cucadiagram.LeafType; import net.sourceforge.plantuml.cucadiagram.Link; import net.sourceforge.plantuml.cucadiagram.LinkDecor; -import net.sourceforge.plantuml.cucadiagram.LinkStyle; import net.sourceforge.plantuml.cucadiagram.LinkType; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorSet; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.skin.VisibilityModifier; -import net.sourceforge.plantuml.ugraphic.UStroke; -import net.sourceforge.plantuml.StringUtils; public class CommandCreateClassMultilines extends CommandMultilines2 { - private static final String CODE = "(?:\\.|::)?[\\p{L}0-9_]+(?:(?:\\.|::)[\\p{L}0-9_]+)*"; + private static final String CODE = CommandLinkClass.getSeparator() + "?[\\p{L}0-9_]+" + "(?:" + + CommandLinkClass.getSeparator() + "[\\p{L}0-9_]+)*"; public static final String CODES = CODE + "(?:\\s*,\\s*" + CODE + ")*"; enum Mode { @@ -87,13 +87,13 @@ new RegexLeaf("TYPE", "(interface|enum|abstract[%s]+class|abstract|class)[%s]+"), // new RegexOr(// new RegexConcat(// - new RegexLeaf("DISPLAY1", "[%g]([^%g]+)[%g]"), // + new RegexLeaf("DISPLAY1", "[%g](.+)[%g]"), // new RegexLeaf("[%s]+as[%s]+"), // new RegexLeaf("CODE1", "(" + CommandCreateClass.CODE + ")")), // new RegexConcat(// new RegexLeaf("CODE2", "(" + CommandCreateClass.CODE + ")"), // new RegexLeaf("[%s]+as[%s]+"), // // - new RegexLeaf("DISPLAY2", "[%g]([^%g]+)[%g]")), // + new RegexLeaf("DISPLAY2", "[%g](.+)[%g]")), // new RegexLeaf("CODE3", "(" + CommandCreateClass.CODE + ")"), // new RegexLeaf("CODE4", "[%g]([^%g]+)[%g]")), // new RegexLeaf("GENERIC", "(?:[%s]*\\<(" + GenericRegexProducer.PATTERN + ")\\>)?"), // @@ -102,7 +102,7 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("[%s]*"), // new RegexLeaf("LINECOLOR", "(?:##(?:\\[(dotted|dashed|bold)\\])?(\\w+)?)?"), // new RegexLeaf("EXTENDS", "([%s]+(extends)[%s]+(" + CODES + "))?"), // @@ -110,32 +110,39 @@ new RegexLeaf("[%s]*\\{[%s]*$")); } - public CommandExecutionResult executeNow(ClassDiagram diagram, List lines) { - StringUtils.trim(lines, false); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } + + public CommandExecutionResult executeNow(ClassDiagram diagram, BlocLines lines) { + lines = lines.trimSmart(1); + lines = lines.removeComments(); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); final IEntity entity = executeArg0(diagram, line0); if (entity == null) { return CommandExecutionResult.error("No such entity"); } - lines = lines.subList(1, lines.size() - 1); - final Url url; - if (lines.size() > 0) { - final UrlBuilder urlBuilder = new UrlBuilder(diagram.getSkinParam().getValue("topurl"), ModeUrl.STRICT); - url = urlBuilder.getUrl(lines.get(0).toString()); - } else { - url = null; - } - if (url != null) { - lines = lines.subList(1, lines.size()); - } - for (String s : lines) { - if (s.length() > 0 && VisibilityModifier.isVisibilityCharacter(s.charAt(0))) { - diagram.setVisibilityModifierPresent(true); + if (lines.size() > 1) { + lines = lines.subExtract(1, 1); + final Url url; + if (lines.size() > 0) { + final UrlBuilder urlBuilder = new UrlBuilder(diagram.getSkinParam().getValue("topurl"), ModeUrl.STRICT); + url = urlBuilder.getUrl(lines.getFirst499().toString()); + } else { + url = null; + } + if (url != null) { + lines = lines.subExtract(1, 0); + } + for (CharSequence s : lines) { + if (s.length() > 0 && VisibilityModifier.isVisibilityCharacter(s.charAt(0))) { + diagram.setVisibilityModifierPresent(true); + } + entity.getBodier().addFieldOrMethod(s.toString()); + } + if (url != null) { + entity.addUrl(url); } - entity.addFieldOrMethod(s); - } - if (url != null) { - entity.addUrl(url); } manageExtends("EXTENDS", diagram, line0, entity); @@ -156,14 +163,14 @@ } final String codes = arg.get(keyword, 2); for (String s : codes.split(",")) { - final Code other = Code.of(s.trim()); + final Code other = Code.of(StringUtils.trin(s)); final IEntity cl2 = system.getOrCreateLeaf(other, type2, null); LinkType typeLink = new LinkType(LinkDecor.NONE, LinkDecor.EXTENDS); if (type2 == LeafType.INTERFACE && entity.getEntityType() != LeafType.INTERFACE) { typeLink = typeLink.getDashed(); } - final Link link = new Link(cl2, entity, typeLink, null, 2, null, null, system.getLabeldistance(), - system.getLabelangle()); + final Link link = new Link(cl2, entity, typeLink, Display.NULL, 2, null, null, + system.getLabeldistance(), system.getLabelangle()); system.addLink(link); } } @@ -188,7 +195,7 @@ } if (stereotype != null) { result.setStereotype(new Stereotype(stereotype, diagram.getSkinParam().getCircledCharacterRadius(), diagram - .getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam() + .getSkinParam().getFont(null, false, FontParam.CIRCLED_CHARACTER), diagram.getSkinParam() .getIHtmlColorSet())); } @@ -199,9 +206,22 @@ result.addUrl(url); } - result.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); - result.setSpecificLineColor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1))); - applyStroke(result, arg.get("LINECOLOR", 0)); + Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); + + final HtmlColor lineColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1)); + if (lineColor != null) { + colors = colors.add(ColorType.LINE, lineColor); + } + if (arg.get("LINECOLOR", 0) != null) { + colors = colors.addLegacyStroke(arg.get("LINECOLOR", 0)); + } + result.setColors(colors); + + // result.setSpecificColorTOBEREMOVED(ColorType.BACK, + // diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); + // result.setSpecificColorTOBEREMOVED(ColorType.LINE, + // diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1))); + // result.applyStroke(arg.get("LINECOLOR", 0)); if (generic != null) { result.setGeneric(generic); @@ -209,26 +229,4 @@ return result; } - public static UStroke getStroke(LinkStyle style) { - if (style == LinkStyle.DASHED) { - return new UStroke(6, 6, 1); - } - if (style == LinkStyle.DOTTED) { - return new UStroke(1, 3, 1); - } - if (style == LinkStyle.BOLD) { - return new UStroke(2.5); - } - return new UStroke(); - } - - public static void applyStroke(IEntity entity, String s) { - if (s == null) { - return; - } - final LinkStyle style = LinkStyle.valueOf(StringUtils.goUpperCase(s)); - entity.setSpecificLineStroke(getStroke(style)); - - } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateElementFull2.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateElementFull2.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateElementFull2.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandCreateElementFull2.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.classdiagram.command; import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; @@ -50,9 +51,9 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.LeafType; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.USymbol; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; public class CommandCreateElementFull2 extends SingleLineCommand2 { @@ -83,7 +84,7 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("$")); } @@ -96,8 +97,8 @@ private static final String DISPLAY_WITHOUT_QUOTE = "(" + DISPLAY_CORE + "|[\\p{L}0-9_.]+)"; @Override - final protected boolean isForbidden(String line) { - if (line.matches("^[\\p{L}0-9_.]+$")) { + final protected boolean isForbidden(CharSequence line) { + if (line.toString().matches("^[\\p{L}0-9_.]+$")) { return true; } return false; @@ -116,7 +117,7 @@ final String symbol; if (codeRaw.startsWith("()")) { symbol = "interface"; - codeRaw = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(codeRaw.substring(2).trim()); + codeRaw = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils.trin(codeRaw.substring(2))); } else if (codeChar == '(' || codeDisplay == '(') { symbol = "usecase"; } else if (codeChar == ':' || codeDisplay == ':') { @@ -203,7 +204,7 @@ entity.setUSymbol(usymbol); if (stereotype != null) { entity.setStereotype(new Stereotype(stereotype, diagram.getSkinParam().getCircledCharacterRadius(), diagram - .getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam() + .getSkinParam().getFont(null, false, FontParam.CIRCLED_CHARACTER), diagram.getSkinParam() .getIHtmlColorSet())); } @@ -214,7 +215,7 @@ entity.addUrl(url); } - entity.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); + entity.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandDiamondAssociation.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandDiamondAssociation.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandDiamondAssociation.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandDiamondAssociation.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,6 +40,7 @@ import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand; import net.sourceforge.plantuml.cucadiagram.Code; +import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.LeafType; public class CommandDiamondAssociation extends SingleLineCommand { @@ -54,7 +55,7 @@ if (diagram.leafExist(code)) { return CommandExecutionResult.error("Already existing : "+code.getFullName()); } - diagram.createLeaf(code, null, LeafType.ASSOCIATION, null); + diagram.createLeaf(code, Display.NULL, LeafType.ASSOCIATION, null); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShow3.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShow3.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShow3.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShow3.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShow.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShow.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShow.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShow.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShowSpecificClass.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShowSpecificClass.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShowSpecificClass.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShowSpecificClass.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,17 +34,17 @@ */ package net.sourceforge.plantuml.classdiagram.command; -import net.sourceforge.plantuml.classdiagram.ClassDiagram; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand2; import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Code; +import net.sourceforge.plantuml.cucadiagram.CucaDiagram; import net.sourceforge.plantuml.cucadiagram.ILeaf; import net.sourceforge.plantuml.cucadiagram.LeafType; -public class CommandHideShowSpecificClass extends SingleLineCommand2 { +public class CommandHideShowSpecificClass extends SingleLineCommand2 { public CommandHideShowSpecificClass() { super(getRegexConcat()); @@ -59,20 +59,20 @@ } @Override - protected CommandExecutionResult executeArg(ClassDiagram classDiagram, RegexResult arg) { + protected CommandExecutionResult executeArg(CucaDiagram diagram, RegexResult arg) { final String codeString = arg.get("CODE", 0); if (codeString.equals("class")) { - classDiagram.hideOrShow(LeafType.CLASS, arg.get("COMMAND", 0).equalsIgnoreCase("show")); + diagram.hideOrShow(LeafType.CLASS, arg.get("COMMAND", 0).equalsIgnoreCase("show")); } else if (codeString.equals("interface")) { - classDiagram.hideOrShow(LeafType.INTERFACE, arg.get("COMMAND", 0).equalsIgnoreCase("show")); + diagram.hideOrShow(LeafType.INTERFACE, arg.get("COMMAND", 0).equalsIgnoreCase("show")); } else { final Code code = Code.of(codeString); - final ILeaf leaf = classDiagram.getEntityFactory().getLeafs().get(code); + final ILeaf leaf = diagram.getEntityFactory().getLeafs().get(code); if (leaf == null) { return CommandExecutionResult.error("Class does not exist : " + code.getFullName()); } - classDiagram.hideOrShow(leaf, arg.get("COMMAND", 0).equalsIgnoreCase("show")); + diagram.hideOrShow(leaf, arg.get("COMMAND", 0).equalsIgnoreCase("show")); } return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShowSpecificStereotype.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShowSpecificStereotype.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShowSpecificStereotype.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandHideShowSpecificStereotype.java 2016-04-22 16:26:20.000000000 +0000 @@ -0,0 +1,67 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.classdiagram.command; + +import net.sourceforge.plantuml.command.CommandExecutionResult; +import net.sourceforge.plantuml.command.SingleLineCommand2; +import net.sourceforge.plantuml.command.regex.RegexConcat; +import net.sourceforge.plantuml.command.regex.RegexLeaf; +import net.sourceforge.plantuml.command.regex.RegexResult; +import net.sourceforge.plantuml.cucadiagram.CucaDiagram; +import net.sourceforge.plantuml.cucadiagram.Stereotype; + +public class CommandHideShowSpecificStereotype extends SingleLineCommand2 { + + public CommandHideShowSpecificStereotype() { + super(getRegexConcat()); + } + + static RegexConcat getRegexConcat() { + return new RegexConcat(new RegexLeaf("^"), // + new RegexLeaf("COMMAND", "(hide|show)"), // + new RegexLeaf("[%s]+"), // + new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)"), // + new RegexLeaf("$")); + } + + @Override + protected CommandExecutionResult executeArg(CucaDiagram diagram, RegexResult arg) { + + final String stereotype = arg.get("STEREOTYPE", 0); + diagram.hideOrShow(new Stereotype(stereotype), arg.get("COMMAND", 0).equalsIgnoreCase("show")); + + return CommandExecutionResult.ok(); + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandImport.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandImport.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandImport.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandImport.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,6 +44,7 @@ import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand; import net.sourceforge.plantuml.cucadiagram.Code; +import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.Link; import net.sourceforge.plantuml.cucadiagram.LinkDecor; @@ -97,7 +98,7 @@ for (String p : cl.getParents()) { final IEntity ent2 = classDiagram.getOrCreateLeaf(Code.of(p), cl.getParentType(), null); - final Link link = new Link(ent2, ent1, new LinkType(LinkDecor.NONE, LinkDecor.EXTENDS), null, 2); + final Link link = new Link(ent2, ent1, new LinkType(LinkDecor.NONE, LinkDecor.EXTENDS), Display.NULL, 2); classDiagram.addLink(link); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandLayoutNewLine.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandLayoutNewLine.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandLayoutNewLine.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandLayoutNewLine.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkClass.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkClass.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkClass.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkClass.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,7 +39,7 @@ import java.util.regex.Pattern; import net.sourceforge.plantuml.Direction; -import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagramType; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand2; @@ -57,9 +57,11 @@ import net.sourceforge.plantuml.cucadiagram.LinkArrow; import net.sourceforge.plantuml.cucadiagram.LinkDecor; import net.sourceforge.plantuml.cucadiagram.LinkType; -import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.HtmlColorSet; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.objectdiagram.AbstractClassOrObjectDiagram; -import net.sourceforge.plantuml.StringUtils; final public class CommandLinkClass extends SingleLineCommand2 { @@ -84,11 +86,11 @@ new RegexLeaf("ARROW_HEAD1", "([%s]+o|[#\\[<*+^]|[<\\[]\\|)?"), // new RegexLeaf("ARROW_BODY1", "([-=.]+)"), // new RegexLeaf("ARROW_STYLE1", - "(?:\\[((?:#\\w+|dotted|dashed|bold|hidden|norank)(?:,#\\w+|,dotted|,dashed|,bold|,hidden|,norank)*)\\])?"), + "(?:\\[((?:#\\w+|dotted|dashed|plain|bold|hidden|norank)(?:,#\\w+|,dotted|,dashed|,plain|,bold|,hidden|,norank)*)\\])?"), new RegexLeaf("ARROW_DIRECTION", "(left|right|up|down|le?|ri?|up?|do?)?"), // new RegexLeaf("INSIDE", "(?:(0|\\(0\\)|\\(0|0\\))(?=[-=.~]))?"), // new RegexLeaf("ARROW_STYLE2", - "(?:\\[((?:#\\w+|dotted|dashed|bold|hidden|norank)(?:,#\\w+|,dotted|,dashed|,bold|,hidden|,norank)*)\\])?"), + "(?:\\[((?:#\\w+|dotted|dashed|plain|bold|hidden|norank)(?:,#\\w+|,dotted|,dashed|,plain|,bold|,hidden|,norank)*)\\])?"), new RegexLeaf("ARROW_BODY2", "([-=.]*)"), // new RegexLeaf("ARROW_HEAD2", "(o[%s]+|[#\\]>*+^]|\\|[>\\]])?")), // @@ -101,22 +103,27 @@ new RegexLeaf("COUPLE2", "\\([%s]*(\\.?[\\p{L}0-9_]+(?:\\.[\\p{L}0-9_]+)*)[%s]*,[%s]*(\\.?[\\p{L}0-9_]+(?:\\.[\\p{L}0-9_]+)*)[%s]*\\)")), new RegexLeaf("[%s]*"), // + color().getRegex(), // + new RegexLeaf("[%s]*"), // new RegexLeaf("LABEL_LINK", "(?::[%s]*(.+))?"), // new RegexLeaf("$")); } + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.LINE); + } + private static String getClassIdentifier() { - return "(" + getSeparator() + "?[\\p{L}0-9_]+(?:" + getSeparator() - + "[\\p{L}0-9_]+)*|[%g][^%g]+[%g])[%s]*(\\<\\<.*\\>\\>)?"; + return "(" + getSeparator() + "?[\\p{L}0-9_$]+(?:" + getSeparator() + "[\\p{L}0-9_$]+)*|[%g][^%g]+[%g])"; } - private static String getSeparator() { - return "(?:\\.|::)"; + public static String getSeparator() { + return "(?:\\.|::|\\\\|\\\\\\\\)"; } private static String optionalKeywords(UmlDiagramType type) { if (type == UmlDiagramType.CLASS) { - return "(interface|enum|annotation|abstract[%s]+class|abstract|class)"; + return "(interface|enum|annotation|abstract[%s]+class|abstract|class|object)"; } if (type == UmlDiagramType.OBJECT) { return "(object)"; @@ -124,10 +131,18 @@ throw new IllegalArgumentException(); } + private LeafType getTypeIfObject(String type) { + if ("object".equalsIgnoreCase(type)) { + return LeafType.OBJECT; + } + return null; + } + @Override protected CommandExecutionResult executeArg(AbstractClassOrObjectDiagram diagram, RegexResult arg) { Code ent1 = Code.of(arg.get("ENT1", 1)); Code ent2 = Code.of(arg.get("ENT2", 1)); + if (ent1 == null) { return executeArgSpecial1(diagram, arg); } @@ -140,12 +155,22 @@ return executePackageLink(diagram, arg); } + final String type1 = arg.get("ENT1", 0); + final LeafType typeIfObject1 = getTypeIfObject(type1); + final IEntity cl1 = diagram.isGroup(ent1) ? diagram.getGroup(Code.of(StringUtils .eventuallyRemoveStartingAndEndingDoubleQuote(arg.get("ENT1", 1), "\""))) : diagram.getOrCreateLeaf( - ent1, null, null); + ent1, typeIfObject1, null); + + final String type2 = arg.get("ENT2", 0); + LeafType typeIfObject2 = getTypeIfObject(type2); + if (diagram.leafExist(ent2) == false && cl1.getEntityType() == LeafType.OBJECT && typeIfObject2 == null) { + typeIfObject2 = LeafType.OBJECT; + } + final IEntity cl2 = diagram.isGroup(ent2) ? diagram.getGroup(Code.of(StringUtils .eventuallyRemoveStartingAndEndingDoubleQuote(arg.get("ENT2", 1), "\""))) : diagram.getOrCreateLeaf( - ent2, null, null); + ent2, typeIfObject2, null); if (arg.get("ENT1", 0) != null) { final LeafType type = LeafType.getLeafType(arg.get("ENT1", 0)); @@ -159,16 +184,18 @@ ((ILeaf) cl2).muteToType(type, null); } } - if (arg.get("ENT1", 2) != null) { - cl1.setStereotype(new Stereotype(arg.get("ENT1", 2), diagram.getSkinParam().getCircledCharacterRadius(), - diagram.getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam() - .getIHtmlColorSet())); - } - if (arg.get("ENT2", 2) != null) { - cl2.setStereotype(new Stereotype(arg.get("ENT2", 2), diagram.getSkinParam().getCircledCharacterRadius(), - diagram.getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam() - .getIHtmlColorSet())); - } + // if (arg.get("ENT1", 2) != null) { + // cl1.setStereotype(new Stereotype(arg.get("ENT1", 2), diagram.getSkinParam().getCircledCharacterRadius(), + // diagram.getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam() + // .getIHtmlColorSet())); + // } + // if (arg.get("ENT2", 2) != null) { + // cl2.setStereotype(new Stereotype(arg.get("ENT2", 2), diagram.getSkinParam().getCircledCharacterRadius(), + // diagram.getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam() + // .getIHtmlColorSet())); + // } + + Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); final LinkType linkType = getLinkType(arg); final Direction dir = getDirection(arg); @@ -191,24 +218,24 @@ final Matcher m1 = p1.matcher(labelLink); if (m1.matches()) { firstLabel = m1.group(1); - labelLink = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m1.group(2).trim(), "\"") - .trim(); + labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote( + StringUtils.trin(m1.group(2)), "\"")); secondLabel = m1.group(3); } else { final Pattern p2 = MyPattern.cmpile("^[%g]([^%g]+)[%g]([^%g]+)$"); final Matcher m2 = p2.matcher(labelLink); if (m2.matches()) { firstLabel = m2.group(1); - labelLink = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m2.group(2).trim(), "\"") - .trim(); + labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote( + StringUtils.trin(m2.group(2)), "\"")); secondLabel = null; } else { final Pattern p3 = MyPattern.cmpile("^([^%g]+)[%g]([^%g]+)[%g]$"); final Matcher m3 = p3.matcher(labelLink); if (m3.matches()) { firstLabel = null; - labelLink = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m3.group(1).trim(), - "\"").trim(); + labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote( + StringUtils.trin(m3.group(1)), "\"")); secondLabel = m3.group(2); } } @@ -226,16 +253,16 @@ labelLink = null; } else if (labelLink != null && labelLink.startsWith("< ")) { linkArrow = LinkArrow.BACKWARD; - labelLink = labelLink.substring(2).trim(); + labelLink = StringUtils.trin(labelLink.substring(2)); } else if (labelLink != null && labelLink.startsWith("> ")) { linkArrow = LinkArrow.DIRECT_NORMAL; - labelLink = labelLink.substring(2).trim(); + labelLink = StringUtils.trin(labelLink.substring(2)); } else if (labelLink != null && labelLink.endsWith(" >")) { linkArrow = LinkArrow.DIRECT_NORMAL; - labelLink = labelLink.substring(0, labelLink.length() - 2).trim(); + labelLink = StringUtils.trin(labelLink.substring(0, labelLink.length() - 2)); } else if (labelLink != null && labelLink.endsWith(" <")) { linkArrow = LinkArrow.BACKWARD; - labelLink = labelLink.substring(0, labelLink.length() - 2).trim(); + labelLink = StringUtils.trin(labelLink.substring(0, labelLink.length() - 2)); } Link link = new Link(cl1, cl2, linkType, Display.getWithNewlines(labelLink), queue, firstLabel, secondLabel, @@ -245,7 +272,8 @@ link = link.getInv(); } link.setLinkArrow(linkArrow); - applyStyle(arg.getLazzy("ARROW_STYLE", 0), link); + colors = applyStyle(arg.getLazzy("ARROW_STYLE", 0), link, colors); + link.setColors(colors); addLink(diagram, link, arg.get("HEADER", 0)); @@ -289,6 +317,8 @@ queue = getQueueLength(arg); } + Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); + final Display labelLink = Display.getWithNewlines(arg.get("LABEL_LINK", 0)); final String firstLabel = arg.get("FIRST_LABEL", 0); final String secondLabel = arg.get("SECOND_LABEL", 0); @@ -296,6 +326,10 @@ diagram.getLabeldistance(), diagram.getLabelangle()); diagram.resetPragmaLabel(); + + colors = applyStyle(arg.getLazzy("ARROW_STYLE", 0), link, colors); + link.setColors(colors); + addLink(diagram, link, arg.get("HEADER", 0)); return CommandExecutionResult.ok(); } @@ -356,7 +390,7 @@ if (s == null) { return LinkDecor.NONE; } - s = s.trim(); + s = StringUtils.trin(s); if ("<|".equals(s)) { return LinkDecor.EXTENDS; } @@ -385,7 +419,7 @@ if (s == null) { return LinkDecor.NONE; } - s = s.trim(); + s = StringUtils.trin(s); if ("|>".equals(s)) { return LinkDecor.EXTENDS; } @@ -471,9 +505,14 @@ return s; } - public static void applyStyle(String arrowStyle, Link link) { + @Deprecated + public static Colors applyStyle(String arrowStyle, Link link) { + return applyStyle(arrowStyle, link, null); + } + + public static Colors applyStyle(String arrowStyle, Link link, Colors colors) { if (arrowStyle == null) { - return; + return colors; } final StringTokenizer st = new StringTokenizer(arrowStyle, ","); while (st.hasMoreTokens()) { @@ -486,12 +525,18 @@ link.goDotted(); } else if (s.equalsIgnoreCase("hidden")) { link.goHidden(); + } else if (s.equalsIgnoreCase("plain")) { + // Do nothing } else if (s.equalsIgnoreCase("norank")) { link.goNorank(); } else { link.setSpecificColor(s); + if (colors != null) { + colors = colors.add(ColorType.LINE, HtmlColorSet.getInstance().getColorIfValid(s)); + } } } + return colors; } private boolean isInversed(LinkDecor decors1, LinkDecor decors2) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkLollipop.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkLollipop.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkLollipop.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkLollipop.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagramType; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand2; @@ -53,7 +54,6 @@ import net.sourceforge.plantuml.cucadiagram.LinkDecor; import net.sourceforge.plantuml.cucadiagram.LinkType; import net.sourceforge.plantuml.objectdiagram.AbstractClassOrObjectDiagram; -import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.utils.UniqueSequence; final public class CommandLinkLollipop extends SingleLineCommand2 { @@ -105,11 +105,13 @@ if (arg.get("LOL_THEN_ENT", 0) == null) { assert arg.get("ENT_THEN_LOL", 0) != null; cl1 = diagram.getOrCreateLeaf(ent1, null, null); - cl2 = diagram.createLeaf(cl1.getCode().addSuffix(suffix), Display.getWithNewlines(ent2), LeafType.LOLLIPOP, null); + cl2 = diagram.createLeaf(cl1.getCode().addSuffix(suffix), Display.getWithNewlines(ent2), LeafType.LOLLIPOP, + null); normalEntity = cl1; } else { cl2 = diagram.getOrCreateLeaf(ent2, null, null); - cl1 = diagram.createLeaf(cl2.getCode().addSuffix(suffix), Display.getWithNewlines(ent1), LeafType.LOLLIPOP, null); + cl1 = diagram.createLeaf(cl2.getCode().addSuffix(suffix), Display.getWithNewlines(ent1), LeafType.LOLLIPOP, + null); normalEntity = cl2; } @@ -133,22 +135,24 @@ final Matcher m1 = p1.matcher(labelLink); if (m1.matches()) { firstLabel = m1.group(1); - labelLink = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m1.group(2).trim()).trim(); + labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils + .trin(m1.group(2)))); secondLabel = m1.group(3); } else { final Pattern p2 = MyPattern.cmpile("^\"([^\"]+)\"([^\"]+)$"); final Matcher m2 = p2.matcher(labelLink); if (m2.matches()) { firstLabel = m2.group(1); - labelLink = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m2.group(2).trim()).trim(); + labelLink = StringUtils.trin(StringUtils + .eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils.trin(m2.group(2)))); secondLabel = null; } else { final Pattern p3 = MyPattern.cmpile("^([^\"]+)\"([^\"]+)\"$"); final Matcher m3 = p3.matcher(labelLink); if (m3.matches()) { firstLabel = null; - labelLink = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m3.group(1).trim()) - .trim(); + labelLink = StringUtils.trin(StringUtils + .eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils.trin(m3.group(1)))); secondLabel = m3.group(2); } } @@ -213,10 +217,10 @@ private String getQueue(RegexResult arg) { if (arg.get("LOL_THEN_ENT", 0) != null) { - return arg.get("LOL_THEN_ENT", 0).trim(); + return StringUtils.trin(arg.get("LOL_THEN_ENT", 0)); } if (arg.get("ENT_THEN_LOL", 0) != null) { - return arg.get("ENT_THEN_LOL", 0).trim(); + return StringUtils.trin(arg.get("ENT_THEN_LOL", 0)); } throw new IllegalArgumentException(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandMouseOver.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandMouseOver.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandMouseOver.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandMouseOver.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,123 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.classdiagram.command; - -import java.util.List; - -import net.sourceforge.plantuml.classdiagram.ClassDiagram; -import net.sourceforge.plantuml.command.CommandExecutionResult; -import net.sourceforge.plantuml.command.CommandMultilines2; -import net.sourceforge.plantuml.command.MultilinesStrategy; -import net.sourceforge.plantuml.command.regex.RegexConcat; -import net.sourceforge.plantuml.command.regex.RegexLeaf; -import net.sourceforge.plantuml.command.regex.RegexOr; -import net.sourceforge.plantuml.command.regex.RegexResult; -import net.sourceforge.plantuml.cucadiagram.Code; -import net.sourceforge.plantuml.cucadiagram.IEntity; -import net.sourceforge.plantuml.StringUtils; - -public class CommandMouseOver extends CommandMultilines2 { - - public CommandMouseOver() { - super(getRegexConcat(), MultilinesStrategy.REMOVE_STARTING_QUOTE); - } - - @Override - public String getPatternEnd() { - return "(?i)^[%s]*\\}[%s]*$"; - } - - private static RegexConcat getRegexConcat() { - return new RegexConcat(new RegexLeaf("^"), // - new RegexLeaf("mouseover[%s]+"), // - new RegexOr(// - new RegexLeaf("NAME1", "(\\.?[\\p{L}0-9_]+(?:\\.[\\p{L}0-9_]+)*)"), // - new RegexLeaf("NAME3", "[%g]([^%g]+)[%g]")), // - new RegexLeaf("[%s]*\\{[%s]*$")); - } - - public CommandExecutionResult executeNow(ClassDiagram system, List lines) { - StringUtils.trim(lines, false); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); - Code code = Code.of(line0.get("NAME1", 0)); - if (code == null) { - code = Code.of(line0.get("NAME3", 0)); - } - if (system.leafExist(code) == false) { - return CommandExecutionResult.error("No such entity"); - } - final IEntity entity = system.getLeafsget(code); - for (String s : lines.subList(1, lines.size() - 1)) { - entity.mouseOver(s); - } - - return CommandExecutionResult.ok(); - } - - // private Entity executeArg0(Map arg) { - // - // final EntityType type = EntityType.getEntityType(arg.get("TYPE").get(0).goUpperCase()); - // final String code; - // final String display; - // if (arg.get("NAME1").get(1) != null) { - // code = arg.get("NAME1").get(1); - // display = arg.get("NAME1").get(0); - // } else if (arg.get("NAME3").get(0) != null) { - // code = arg.get("NAME3").get(0); - // display = arg.get("NAME3").get(0); - // } else { - // code = arg.get("NAME2").get(0); - // display = arg.get("NAME2").get(1); - // } - // final String stereotype = arg.get("STEREO").get(0); - // final String generic = arg.get("GENERIC").get(0); - // - // if (system.entityExist(code)) { - // final Entity result = (Entity) system.getOrCreateClass(code); - // result.muteToType(type); - // return result; - // } - // final Entity entity = system.createEntity(code, display, type); - // if (stereotype != null) { - // entity.setStereotype(new Stereotype(stereotype, system.getSkinParam().getCircledCharacterRadius(), - // system.getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null))); - // } - // if (generic != null) { - // entity.setGeneric(generic); - // } - // return entity; - // } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandNamespaceSeparator.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandNamespaceSeparator.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandNamespaceSeparator.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandNamespaceSeparator.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandStereotype.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandStereotype.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandStereotype.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandStereotype.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -56,7 +56,7 @@ final String stereotype = arg.get(1); final IEntity entity = diagram.getOrCreateLeaf(code, null, null); entity.setStereotype(new Stereotype(stereotype, diagram.getSkinParam().getCircledCharacterRadius(), diagram - .getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam().getIHtmlColorSet())); + .getSkinParam().getFont(null, false, FontParam.CIRCLED_CHARACTER), diagram.getSkinParam().getIHtmlColorSet())); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandUrl.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandUrl.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/CommandUrl.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/CommandUrl.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/GenericRegexProducer.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/GenericRegexProducer.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/GenericRegexProducer.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/GenericRegexProducer.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/JavaClass.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/JavaClass.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/JavaClass.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/JavaClass.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import java.util.List; import java.util.StringTokenizer; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.cucadiagram.LeafType; class JavaClass { @@ -55,9 +56,9 @@ if (p == null) { p = ""; } - final StringTokenizer st = new StringTokenizer(p.trim(), ","); + final StringTokenizer st = new StringTokenizer(StringUtils.trin(p), ","); while (st.hasMoreTokens()) { - this.parents.add(st.nextToken().trim().replaceAll("\\<.*", "")); + this.parents.add(StringUtils.trin(st.nextToken()).replaceAll("\\<.*", "")); } this.type = type; this.parentType = parentType; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/JavaFile.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/JavaFile.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/command/JavaFile.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/command/JavaFile.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -73,7 +73,7 @@ String javaPackage = null; String s; while ((s = br.readLine()) != null) { - s = s.trim(); + s = StringUtils.trin(s); final Matcher matchPackage = packageDefinition.matcher(s); if (matchPackage.find()) { javaPackage = matchPackage.group(1); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/FullLayout.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/FullLayout.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/FullLayout.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/FullLayout.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/classdiagram/RowLayout.java plantuml-8039/src/net/sourceforge/plantuml/classdiagram/RowLayout.java --- plantuml-8024/src/net/sourceforge/plantuml/classdiagram/RowLayout.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/classdiagram/RowLayout.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/CMapData.java plantuml-8039/src/net/sourceforge/plantuml/CMapData.java --- plantuml-8024/src/net/sourceforge/plantuml/CMapData.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/CMapData.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -65,7 +65,9 @@ appendString("\" href=\""); appendString(url.getUrl()); appendString("\" title=\""); - appendString(url.getTooltip()); + final String tooltip = url.getTooltip().replaceAll("\\\\n", "\n").replaceAll("&", "&") + .replaceAll("\"", """).replaceAll("\'", "'"); + appendString(tooltip); appendString("\" alt=\"\" coords=\""); appendString(url.getCoords(scale)); appendString("\"/>"); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/ArobaseStringCompressor.java plantuml-8039/src/net/sourceforge/plantuml/code/ArobaseStringCompressor.java --- plantuml-8024/src/net/sourceforge/plantuml/code/ArobaseStringCompressor.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/ArobaseStringCompressor.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.CharSequence2; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; import net.sourceforge.plantuml.preproc.ReadLine; import net.sourceforge.plantuml.preproc.ReadLineReader; @@ -49,16 +51,16 @@ private final static Pattern p = MyPattern.cmpile("(?s)(?i)^[%s]*(@startuml[^\\n\\r]*)?[%s]*(.*?)[%s]*(@enduml)?[%s]*$"); public String compress(final String data) throws IOException { - final ReadLine r = new UncommentReadLine(new ReadLineReader(new StringReader(data))); + final ReadLine r = new UncommentReadLine(new ReadLineReader(new StringReader(data), "COMPRESS")); final StringBuilder sb = new StringBuilder(); final StringBuilder full = new StringBuilder(); - String s = null; + CharSequence2 s = null; boolean startDone = false; while ((s = r.readLine()) != null) { append(full, s); - if (s.startsWith("@startuml")) { + if (s.toString2().startsWith("@startuml")) { startDone = true; - } else if (s.startsWith("@enduml")) { + } else if (s.toString2().startsWith("@enduml")) { return sb.toString(); } else if (startDone) { append(sb, s); @@ -70,11 +72,11 @@ return sb.toString(); } - private void append(final StringBuilder sb, String s) { + private void append(final StringBuilder sb, CharSequence2 s) { if (sb.length() > 0) { sb.append('\n'); } - sb.append(s); + sb.append(s.toString2()); } private String compressOld(String s) throws IOException { @@ -99,11 +101,11 @@ } private String clean(String s) { - s = s.trim(); + s = StringUtils.trin(s); s = clean1(s); s = s.replaceAll("@enduml[^\\n\\r]*", ""); s = s.replaceAll("@startuml[^\\n\\r]*", ""); - s = s.trim(); + s = StringUtils.trin(s); return s; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/AsciiEncoder.java plantuml-8039/src/net/sourceforge/plantuml/code/AsciiEncoder.java --- plantuml-8024/src/net/sourceforge/plantuml/code/AsciiEncoder.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/AsciiEncoder.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/Base64Coder.java plantuml-8039/src/net/sourceforge/plantuml/code/Base64Coder.java --- plantuml-8024/src/net/sourceforge/plantuml/code/Base64Coder.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/Base64Coder.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/CompressionGZip.java plantuml-8039/src/net/sourceforge/plantuml/code/CompressionGZip.java --- plantuml-8024/src/net/sourceforge/plantuml/code/CompressionGZip.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/CompressionGZip.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/CompressionHuffman.java plantuml-8039/src/net/sourceforge/plantuml/code/CompressionHuffman.java --- plantuml-8024/src/net/sourceforge/plantuml/code/CompressionHuffman.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/CompressionHuffman.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/Compression.java plantuml-8039/src/net/sourceforge/plantuml/code/Compression.java --- plantuml-8024/src/net/sourceforge/plantuml/code/Compression.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/Compression.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/CompressionNone.java plantuml-8039/src/net/sourceforge/plantuml/code/CompressionNone.java --- plantuml-8024/src/net/sourceforge/plantuml/code/CompressionNone.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/CompressionNone.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/CompressionZlib.java plantuml-8039/src/net/sourceforge/plantuml/code/CompressionZlib.java --- plantuml-8024/src/net/sourceforge/plantuml/code/CompressionZlib.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/CompressionZlib.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/StringCompressor.java plantuml-8039/src/net/sourceforge/plantuml/code/StringCompressor.java --- plantuml-8024/src/net/sourceforge/plantuml/code/StringCompressor.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/StringCompressor.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/StringCompressorNone.java plantuml-8039/src/net/sourceforge/plantuml/code/StringCompressorNone.java --- plantuml-8024/src/net/sourceforge/plantuml/code/StringCompressorNone.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/StringCompressorNone.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/TranscoderImpl.java plantuml-8039/src/net/sourceforge/plantuml/code/TranscoderImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/code/TranscoderImpl.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/TranscoderImpl.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/Transcoder.java plantuml-8039/src/net/sourceforge/plantuml/code/Transcoder.java --- plantuml-8024/src/net/sourceforge/plantuml/code/Transcoder.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/Transcoder.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/TranscoderSmart.java plantuml-8039/src/net/sourceforge/plantuml/code/TranscoderSmart.java --- plantuml-8024/src/net/sourceforge/plantuml/code/TranscoderSmart.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/TranscoderSmart.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/TranscoderUtil.java plantuml-8039/src/net/sourceforge/plantuml/code/TranscoderUtil.java --- plantuml-8024/src/net/sourceforge/plantuml/code/TranscoderUtil.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/TranscoderUtil.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/code/URLEncoder.java plantuml-8039/src/net/sourceforge/plantuml/code/URLEncoder.java --- plantuml-8024/src/net/sourceforge/plantuml/code/URLEncoder.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/code/URLEncoder.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ColorParam.java plantuml-8039/src/net/sourceforge/plantuml/ColorParam.java --- plantuml-8024/src/net/sourceforge/plantuml/ColorParam.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ColorParam.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,102 +36,107 @@ import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorType; public enum ColorParam { - background(HtmlColorUtils.WHITE), + background(HtmlColorUtils.WHITE, ColorType.BACK), hyperlink(HtmlColorUtils.BLUE), - activityBackground(HtmlColorUtils.MY_YELLOW), - activityBorder(HtmlColorUtils.MY_RED), + activityBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + activityBorder(HtmlColorUtils.MY_RED, ColorType.LINE), activityStart(HtmlColorUtils.BLACK), activityEnd(HtmlColorUtils.BLACK), activityBar(HtmlColorUtils.BLACK), - activityArrow(HtmlColorUtils.MY_RED), + activityArrow(HtmlColorUtils.MY_RED, ColorType.ARROW), + swimlaneBorder(HtmlColorUtils.BLACK), - usecaseBorder(HtmlColorUtils.MY_RED), - usecaseBackground(HtmlColorUtils.MY_YELLOW), - usecaseArrow(HtmlColorUtils.MY_RED), - - objectBackground(HtmlColorUtils.MY_YELLOW), - objectBorder(HtmlColorUtils.MY_RED), - objectArrow(HtmlColorUtils.MY_RED), - - classHeaderBackground(null), - classBackground(HtmlColorUtils.MY_YELLOW), - classBorder(HtmlColorUtils.MY_RED), + usecaseBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + usecaseBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + usecaseArrow(HtmlColorUtils.MY_RED, ColorType.ARROW), + + objectBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + objectBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + objectArrow(HtmlColorUtils.MY_RED, ColorType.ARROW), + + classHeaderBackground(null, ColorType.BACK), + classBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + classBorder(HtmlColorUtils.MY_RED, ColorType.LINE), stereotypeCBackground(HtmlColorUtils.COL_ADD1B2), stereotypeABackground(HtmlColorUtils.COL_A9DCDF), stereotypeIBackground(HtmlColorUtils.COL_B4A7E5), stereotypeEBackground(HtmlColorUtils.COL_EB937F), - classArrow(HtmlColorUtils.MY_RED), + classArrow(HtmlColorUtils.MY_RED, ColorType.ARROW), - packageBackground(HtmlColorUtils.MY_YELLOW), - packageBorder(HtmlColorUtils.BLACK), + packageBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + packageBorder(HtmlColorUtils.BLACK, ColorType.LINE), - partitionBackground(HtmlColorUtils.MY_YELLOW), - partitionBorder(HtmlColorUtils.BLACK), + partitionBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + partitionBorder(HtmlColorUtils.BLACK, ColorType.LINE), - componentBackground(HtmlColorUtils.MY_YELLOW), - componentBorder(HtmlColorUtils.MY_RED), - interfaceBackground(HtmlColorUtils.MY_YELLOW), - interfaceBorder(HtmlColorUtils.MY_RED), - // componentArrow, - - stateBackground(HtmlColorUtils.MY_YELLOW), - stateBorder(HtmlColorUtils.MY_RED), - stateArrow(HtmlColorUtils.MY_RED), + componentBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + componentBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + interfaceBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + interfaceBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + componentArrow(HtmlColorUtils.MY_RED, ColorType.ARROW), + + stateBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + stateBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + stateArrow(HtmlColorUtils.MY_RED, ColorType.ARROW), stateStart(HtmlColorUtils.BLACK), stateEnd(HtmlColorUtils.BLACK), - noteBackground(HtmlColorUtils.COL_FBFB77, true), - noteBorder(HtmlColorUtils.MY_RED), + noteBackground(HtmlColorUtils.COL_FBFB77, true, ColorType.BACK), + noteBorder(HtmlColorUtils.MY_RED, ColorType.LINE), - legendBackground(HtmlColorUtils.COL_DDDDDD, true), - legendBorder(HtmlColorUtils.BLACK), + legendBackground(HtmlColorUtils.COL_DDDDDD, true, ColorType.BACK), + legendBorder(HtmlColorUtils.BLACK, ColorType.LINE), - actorBackground(HtmlColorUtils.MY_YELLOW, true), - actorBorder(HtmlColorUtils.MY_RED), - participantBackground(HtmlColorUtils.MY_YELLOW, true), - participantBorder(HtmlColorUtils.MY_RED), - sequenceGroupBorder(HtmlColorUtils.BLACK), - sequenceGroupBackground(HtmlColorUtils.COL_EEEEEE, true), - sequenceReferenceBorder(HtmlColorUtils.BLACK), - sequenceReferenceHeaderBackground(HtmlColorUtils.COL_EEEEEE, true), - sequenceReferenceBackground(HtmlColorUtils.WHITE, true), - sequenceDividerBackground(HtmlColorUtils.COL_EEEEEE, true), - sequenceLifeLineBackground(HtmlColorUtils.WHITE, true), - sequenceLifeLineBorder(HtmlColorUtils.MY_RED), + actorBackground(HtmlColorUtils.MY_YELLOW, true, ColorType.BACK), + actorBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + participantBackground(HtmlColorUtils.MY_YELLOW, true, ColorType.BACK), + participantBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + sequenceGroupBorder(HtmlColorUtils.BLACK, ColorType.LINE), + sequenceGroupBackground(HtmlColorUtils.COL_EEEEEE, true, ColorType.BACK), + sequenceGroupBodyBackground(HtmlColorUtils.RED, true, ColorType.BACK), + sequenceReferenceBorder(HtmlColorUtils.BLACK, ColorType.LINE), + sequenceReferenceHeaderBackground(HtmlColorUtils.COL_EEEEEE, true, ColorType.BACK), + sequenceReferenceBackground(HtmlColorUtils.WHITE, true, ColorType.BACK), + sequenceDividerBackground(HtmlColorUtils.COL_EEEEEE, true, ColorType.BACK), + sequenceDividerBorder(HtmlColorUtils.BLACK, ColorType.LINE), + sequenceLifeLineBackground(HtmlColorUtils.WHITE, true, ColorType.BACK), + sequenceLifeLineBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + sequenceNewpageSeparator(HtmlColorUtils.BLACK, ColorType.LINE), sequenceArrow(HtmlColorUtils.MY_RED), - sequenceBoxBorder(HtmlColorUtils.MY_RED), - sequenceBoxBackground(HtmlColorUtils.COL_DDDDDD, true), + sequenceBoxBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + sequenceBoxBackground(HtmlColorUtils.COL_DDDDDD, true, ColorType.BACK), - artifactBackground(HtmlColorUtils.MY_YELLOW), - artifactBorder(HtmlColorUtils.MY_RED), - cloudBackground(HtmlColorUtils.MY_YELLOW), - cloudBorder(HtmlColorUtils.MY_RED), - queueBackground(HtmlColorUtils.MY_YELLOW), - queueBorder(HtmlColorUtils.MY_RED), - databaseBackground(HtmlColorUtils.MY_YELLOW), - databaseBorder(HtmlColorUtils.MY_RED), - folderBackground(HtmlColorUtils.MY_YELLOW), - folderBorder(HtmlColorUtils.MY_RED), - frameBackground(HtmlColorUtils.MY_YELLOW), - frameBorder(HtmlColorUtils.MY_RED), - nodeBackground(HtmlColorUtils.MY_YELLOW), - nodeBorder(HtmlColorUtils.MY_RED), - rectangleBackground(HtmlColorUtils.MY_YELLOW), - rectangleBorder(HtmlColorUtils.MY_RED), - agentBackground(HtmlColorUtils.MY_YELLOW), - agentBorder(HtmlColorUtils.MY_RED), - storageBackground(HtmlColorUtils.MY_YELLOW), - storageBorder(HtmlColorUtils.MY_RED), - boundaryBackground(HtmlColorUtils.MY_YELLOW), - boundaryBorder(HtmlColorUtils.MY_RED), - controlBackground(HtmlColorUtils.MY_YELLOW), - controlBorder(HtmlColorUtils.MY_RED), - entityBackground(HtmlColorUtils.MY_YELLOW), - entityBorder(HtmlColorUtils.MY_RED), + artifactBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + artifactBorder(HtmlColorUtils.BLACK, ColorType.LINE), + cloudBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + cloudBorder(HtmlColorUtils.BLACK, ColorType.LINE), + queueBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + queueBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + databaseBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + databaseBorder(HtmlColorUtils.BLACK, ColorType.LINE), + folderBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + folderBorder(HtmlColorUtils.BLACK, ColorType.LINE), + frameBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + frameBorder(HtmlColorUtils.BLACK, ColorType.LINE), + nodeBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + nodeBorder(HtmlColorUtils.BLACK, ColorType.LINE), + rectangleBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + rectangleBorder(HtmlColorUtils.BLACK, ColorType.LINE), + agentBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + agentBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + storageBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + storageBorder(HtmlColorUtils.BLACK, ColorType.LINE), + boundaryBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + boundaryBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + controlBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + controlBorder(HtmlColorUtils.MY_RED, ColorType.LINE), + entityBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK), + entityBorder(HtmlColorUtils.MY_RED, ColorType.LINE), iconPrivate(HtmlColorUtils.COL_C82930), @@ -145,22 +150,28 @@ private final boolean isBackground; private final HtmlColor defaultValue; + private final ColorType colorType; + + private ColorParam(HtmlColor defaultValue, ColorType colorType) { + this(defaultValue, false, colorType); + } private ColorParam(HtmlColor defaultValue) { - this(defaultValue, false); + this(defaultValue, false, null); } private ColorParam() { - this(null, false); + this(null, false, null); } private ColorParam(boolean isBackground) { - this(null, isBackground); + this(null, isBackground, null); } - private ColorParam(HtmlColor defaultValue, boolean isBackground) { + private ColorParam(HtmlColor defaultValue, boolean isBackground, ColorType colorType) { this.isBackground = isBackground; this.defaultValue = defaultValue; + this.colorType = colorType; } protected boolean isBackground() { @@ -170,4 +181,8 @@ public final HtmlColor getDefaultValue() { return defaultValue; } + + public ColorType getColorType() { + return colorType; + } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/BlocLines.java plantuml-8039/src/net/sourceforge/plantuml/command/BlocLines.java --- plantuml-8024/src/net/sourceforge/plantuml/command/BlocLines.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/BlocLines.java 2016-04-22 16:26:20.000000000 +0000 @@ -0,0 +1,260 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.command; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.command.regex.MyPattern; +import net.sourceforge.plantuml.cucadiagram.Display; + +public class BlocLines implements Iterable { + + private List lines; + + @Override + public String toString() { + return lines.toString(); + } + + private BlocLines(List lines) { + this.lines = (List) Collections.unmodifiableList(lines); + } + + public Display toDisplay() { + return Display.create(lines); + } + + public static BlocLines single(CharSequence single) { + return new BlocLines(Arrays.asList(single)); + } + + public static BlocLines getWithNewlines(CharSequence s) { + return new BlocLines(StringUtils.getWithNewlines(s)); + } + + public BlocLines() { + this(new ArrayList()); + } + + public BlocLines add2(CharSequence s) { + final List copy = new ArrayList(lines); + copy.add(s); + return new BlocLines(copy); + } + + public List getLines() { + return lines; + } + + public int size() { + return lines.size(); + } + + public CharSequence get499(int i) { + return lines.get(i); + } + + public CharSequence getFirst499() { + return lines.get(0); + } + + public CharSequence getLast499() { + return lines.get(lines.size() - 1); + } + + public BlocLines cleanList2(MultilinesStrategy strategy) { + final List copy = new ArrayList(lines); + strategy.cleanList(copy); + return new BlocLines(copy); + } + + public BlocLines trim(boolean removeEmptyLines) { + final List copy = new ArrayList(lines); + for (int i = 0; i < copy.size(); i++) { + final CharSequence s = copy.get(i); + copy.set(i, StringUtils.trin(s)); + } + if (removeEmptyLines) { + for (final Iterator it = copy.iterator(); it.hasNext();) { + if (it.next().length() == 0) { + it.remove(); + } + } + } + return new BlocLines(copy); + } + + public BlocLines removeEmptyColumns() { + if (firstColumnRemovable(lines) == false) { + return this; + } + final List copy = new ArrayList(lines); + do { + for (int i = 0; i < copy.size(); i++) { + final CharSequence s = copy.get(i); + if (s.length() > 0) { + copy.set(i, s.subSequence(1, s.length())); + } + } + } while (firstColumnRemovable(copy)); + return new BlocLines(copy); + } + + private static boolean firstColumnRemovable(List data) { + boolean allEmpty = true; + for (CharSequence s : data) { + if (s.length() == 0) { + continue; + } + allEmpty = false; + final char c = s.charAt(0); + if (c != ' ' && c != '\t') { + return false; + } + } + return allEmpty == false; + } + + public char getLastChar() { + final CharSequence s = lines.get(lines.size() - 1); + return s.charAt(s.length() - 1); + } + + public BlocLines removeStartingAndEnding2(String data) { + if (lines.size() == 0) { + return this; + } + final List copy = new ArrayList(lines); + copy.set(0, data); + final int n = copy.size() - 1; + final CharSequence s = copy.get(n); + copy.set(n, s.subSequence(0, s.length() - 1)); + return new BlocLines(copy); + } + + public BlocLines concat2() { + final StringBuilder sb = new StringBuilder(); + for (CharSequence line : lines) { + sb.append(line); + sb.append(StringUtils.hiddenNewLine()); + } + return single(sb.substring(0, sb.length() - 1)); + } + + public BlocLines trimSmart(int referenceLine) { + if (lines.size() <= referenceLine) { + return this; + } + final List copy = new ArrayList(lines); + final int nbStartingSpace = nbStartingSpace(copy.get(referenceLine)); + for (int i = referenceLine; i < copy.size(); i++) { + final CharSequence s = copy.get(i); + copy.set(i, removeStartingSpaces(s, nbStartingSpace)); + } + return new BlocLines(copy); + } + + private static int nbStartingSpace(CharSequence s) { + int nb = 0; + while (nb < s.length() && isSpaceOrTab(s.charAt(nb))) { + nb++; + } + return nb; + } + + private static boolean isSpaceOrTab(char c) { + return c == ' ' || c == '\t'; + } + + private static CharSequence removeStartingSpaces(CharSequence arg, int nbStartingSpace) { + if (arg.length() == 0) { + return arg; + } + int i = 0; + while (i < nbStartingSpace && i < arg.length() && isSpaceOrTab(arg.charAt(i))) { + i++; + } + if (i == 0) { + return arg; + } + return arg.subSequence(i, arg.length()); + } + + public BlocLines subExtract(int start, int end) { + List copy = new ArrayList(lines); + copy = copy.subList(start, copy.size() - end); + return new BlocLines(copy); + } + + public Iterator iterator() { + return lines.iterator(); + } + + public BlocLines removeComments() { + final List copy = new ArrayList(); + boolean inComment = false; + for (CharSequence cs : lines) { + if (inComment == false && MyPattern.mtches(cs, CommandMultilinesComment.COMMENT_SINGLE_LINE)) { + continue; + } + if (inComment == false && MyPattern.mtches(cs, CommandMultilinesComment.COMMENT_MULTILINE_START)) { + inComment = true; + continue; + } + if (inComment && MyPattern.mtches(cs, CommandMultilinesComment.COMMENT_MULTILINE_END)) { + inComment = false; + continue; + } + if (inComment == false) { + copy.add(cs); + } + } + return new BlocLines(copy); + } + + public BlocLines removeInnerComments() { + final List copy = new ArrayList(); + for (CharSequence cs : lines) { + copy.add(MyPattern.removeAll(cs, CommandMultilinesComment.INNER_COMMENT)); + } + return new BlocLines(copy); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandAffineTransform.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandAffineTransform.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandAffineTransform.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandAffineTransform.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -47,7 +47,7 @@ @Override protected CommandExecutionResult executeArg(UmlDiagram diagram, List arg) { - final String value = arg.get(0); + final CharSequence value = arg.get(0); diagram.setAnimation(Collections.singletonList(value)); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandAffineTransformMultiline.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandAffineTransformMultiline.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandAffineTransformMultiline.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandAffineTransformMultiline.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,8 +34,6 @@ */ package net.sourceforge.plantuml.command; -import java.util.List; - import net.sourceforge.plantuml.UmlDiagram; public class CommandAffineTransformMultiline extends CommandMultilines { @@ -49,9 +47,9 @@ return "(?i)^[%s]*!\\}[%s]*$"; } - public CommandExecutionResult execute(final UmlDiagram diagram, List lines) { - final List data = lines.subList(1, lines.size() - 1); - diagram.setAnimation(data); + public CommandExecutionResult execute(final UmlDiagram diagram, BlocLines lines) { + lines = lines.subExtract(1, 1); + diagram.setAnimation(lines); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandCaption.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandCaption.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandCaption.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandCaption.java 2016-04-22 16:26:20.000000000 +0000 @@ -0,0 +1,58 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.command; + +import java.util.List; + +import net.sourceforge.plantuml.UmlDiagram; +import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.VerticalAlignment; + +public class CommandCaption extends SingleLineCommand { + + public CommandCaption() { + super("(?i)^caption(?:[%s]*:[%s]*|[%s]+)(.*[\\p{L}0-9_.].*)$"); + } + + @Override + protected CommandExecutionResult executeArg(UmlDiagram diagram, List arg) { + diagram.setCaption(new DisplayPositionned(Display.getWithNewlines(arg.get(0)), HorizontalAlignment.CENTER, + VerticalAlignment.BOTTOM)); + return CommandExecutionResult.ok(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandComment.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandComment.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandComment.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandComment.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,8 +40,9 @@ public class CommandComment extends SingleLineCommand { + public CommandComment() { - super("(?i)^[%s]*([%q].*||/[%q].*[%q]/[%s]*)$"); + super(CommandMultilinesComment.COMMENT_SINGLE_LINE); } @Override diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandControl.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandControl.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandControl.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandControl.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandDecoratorMultine.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandDecoratorMultine.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandDecoratorMultine.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandDecoratorMultine.java 2016-04-22 16:26:20.000000000 +0000 @@ -0,0 +1,83 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.command; + +import net.sourceforge.plantuml.core.Diagram; + +public class CommandDecoratorMultine implements Command { + + private final SingleLineCommand2 cmd; + private final boolean removeEmptyColumn; + + public CommandDecoratorMultine(SingleLineCommand2 cmd) { + this(cmd, false); + } + + public CommandDecoratorMultine(SingleLineCommand2 cmd, boolean removeEmptyColumn) { + this.cmd = cmd; + this.removeEmptyColumn = removeEmptyColumn; + } + + public CommandExecutionResult execute(D diagram, BlocLines lines) { + if (removeEmptyColumn) { + lines = lines.removeEmptyColumns(); + } + lines = lines.concat2(); + return cmd.execute(diagram, lines); + } + + public CommandControl isValid(BlocLines lines) { + if (cmd.isCommandForbidden()) { + return CommandControl.NOT_OK; + } + lines = lines.concat2(); + if (cmd.isForbidden(lines.getFirst499())) { + return CommandControl.NOT_OK; + } + final CommandControl tmp = cmd.isValid(lines); + if (tmp == CommandControl.OK_PARTIAL) { + throw new IllegalStateException(); + } + if (tmp == CommandControl.OK) { + return tmp; + } + return CommandControl.OK_PARTIAL; + } + + public String[] getDescription() { + return cmd.getDescription(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandEndPackage.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandEndPackage.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandEndPackage.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandEndPackage.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandExecutionResult.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandExecutionResult.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandExecutionResult.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandExecutionResult.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,20 +34,25 @@ */ package net.sourceforge.plantuml.command; +import java.util.ArrayList; +import java.util.List; + import net.sourceforge.plantuml.AbstractPSystem; public class CommandExecutionResult { private final String error; private final AbstractPSystem newDiagram; + private final List debugLines; - private CommandExecutionResult(String error, AbstractPSystem newDiagram) { + private CommandExecutionResult(String error, AbstractPSystem newDiagram, List debugLines) { this.error = error; this.newDiagram = newDiagram; + this.debugLines = debugLines; } public CommandExecutionResult withDiagram(AbstractPSystem newDiagram) { - return new CommandExecutionResult(error, newDiagram); + return new CommandExecutionResult(error, newDiagram, null); } @Override @@ -56,15 +61,37 @@ } public static CommandExecutionResult newDiagram(AbstractPSystem result) { - return new CommandExecutionResult(null, result); + return new CommandExecutionResult(null, result, null); } public static CommandExecutionResult ok() { - return new CommandExecutionResult(null, null); + return new CommandExecutionResult(null, null, null); } public static CommandExecutionResult error(String error) { - return new CommandExecutionResult(error, null); + return new CommandExecutionResult(error, null, null); + } + + public static CommandExecutionResult error(String error, Throwable t) { + return new CommandExecutionResult(error, null, getStackTrace(t)); + } + + public static List getStackTrace(Throwable exception) { + final List result = new ArrayList(); + result.add(exception.toString()); + for (StackTraceElement ste : exception.getStackTrace()) { + result.add(" " + ste.toString()); + } + if (exception.getCause() != null) { + final Throwable cause = exception.getCause(); + result.add(" "); + result.add("Caused by " + cause.toString()); + for (StackTraceElement ste : cause.getStackTrace()) { + result.add(" " + ste.toString()); + } + + } + return result; } public boolean isOk() { @@ -82,4 +109,8 @@ return newDiagram; } + public List getDebugLines() { + return debugLines; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandFootboxIgnored.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandFootboxIgnored.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandFootboxIgnored.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandFootboxIgnored.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandFooter.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandFooter.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandFooter.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandFooter.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,7 +39,9 @@ import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.VerticalAlignment; public class CommandFooter extends SingleLineCommand { @@ -50,11 +52,8 @@ @Override protected CommandExecutionResult executeArg(UmlDiagram diagram, List arg) { final String align = arg.get(0); - if (align != null) { - diagram.setFooterAlignment(HorizontalAlignment.valueOf(StringUtils.goUpperCase(align))); - } - diagram.setFooter(Display.getWithNewlines(arg.get(1))); + diagram.setFooter(new DisplayPositionned(Display.getWithNewlines(arg.get(1)), HorizontalAlignment.fromString( + align, HorizontalAlignment.CENTER), VerticalAlignment.BOTTOM)); return CommandExecutionResult.ok(); } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandHeader.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandHeader.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandHeader.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandHeader.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,10 +36,11 @@ import java.util.List; -import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.VerticalAlignment; public class CommandHeader extends SingleLineCommand { @@ -50,11 +51,8 @@ @Override protected CommandExecutionResult executeArg(UmlDiagram diagram, List arg) { final String align = arg.get(0); - if (align != null) { - diagram.setHeaderAlignment(HorizontalAlignment.valueOf(StringUtils.goUpperCase(align))); - } - diagram.setHeader(Display.getWithNewlines(arg.get(1))); + diagram.setHeader(new DisplayPositionned(Display.getWithNewlines(arg.get(1)), HorizontalAlignment.fromString( + align, HorizontalAlignment.RIGHT), VerticalAlignment.TOP)); return CommandExecutionResult.ok(); } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandHideUnlinked.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandHideUnlinked.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandHideUnlinked.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandHideUnlinked.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/Command.java plantuml-8039/src/net/sourceforge/plantuml/command/Command.java --- plantuml-8024/src/net/sourceforge/plantuml/command/Command.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/Command.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,15 +34,13 @@ */ package net.sourceforge.plantuml.command; -import java.util.List; - import net.sourceforge.plantuml.core.Diagram; public interface Command { - CommandExecutionResult execute(D diagram, List lines); + CommandExecutionResult execute(D diagram, BlocLines lines); - CommandControl isValid(List lines); + CommandControl isValid(BlocLines lines); String[] getDescription(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandMinwidth.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandMinwidth.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandMinwidth.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandMinwidth.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilines2.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilines2.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilines2.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilines2.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.util.List; import java.util.regex.Matcher; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.core.Diagram; @@ -61,12 +62,12 @@ return new String[] { "START: " + starting.getPattern(), "END: " + getPatternEnd() }; } - final public CommandControl isValid(List lines) { - lines = strategy.filter(lines); + final public CommandControl isValid(BlocLines lines) { + lines = lines.cleanList2(strategy); if (isCommandForbidden()) { return CommandControl.NOT_OK; } - final boolean result1 = starting.match(lines.get(0).trim()); + final boolean result1 = starting.match(StringUtils.trin(lines.getFirst499())); if (result1 == false) { return CommandControl.NOT_OK; } @@ -74,7 +75,7 @@ return CommandControl.OK_PARTIAL; } - final Matcher m1 = MyPattern.cmpile(getPatternEnd()).matcher(lines.get(lines.size() - 1).trim()); + final Matcher m1 = MyPattern.cmpile(getPatternEnd()).matcher(StringUtils.trinNoTrace(lines.getLast499())); if (m1.matches() == false) { return CommandControl.OK_PARTIAL; } @@ -83,11 +84,12 @@ return CommandControl.OK; } - public final CommandExecutionResult execute(S system, List lines) { - return executeNow(system, strategy.filter(lines)); + public final CommandExecutionResult execute(S system, BlocLines lines) { + lines = lines.cleanList2(strategy); + return executeNow(system, lines); } - public abstract CommandExecutionResult executeNow(S system, List lines); + public abstract CommandExecutionResult executeNow(S system, BlocLines lines); protected boolean isCommandForbidden() { return false; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilines3.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilines3.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilines3.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilines3.java 2016-04-22 16:26:20.000000000 +0000 @@ -0,0 +1,102 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.command; + +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.command.regex.RegexConcat; +import net.sourceforge.plantuml.core.Diagram; + +public abstract class CommandMultilines3 implements Command { + + private final RegexConcat starting; + + private final MultilinesStrategy strategy; + + public CommandMultilines3(RegexConcat patternStart, MultilinesStrategy strategy) { + if (patternStart.getPattern().startsWith("^") == false || patternStart.getPattern().endsWith("$") == false) { + throw new IllegalArgumentException("Bad pattern " + patternStart.getPattern()); + } + this.strategy = strategy; + this.starting = patternStart; + } + + public abstract RegexConcat getPatternEnd2(); + + public String[] getDescription() { + return new String[] { "START: " + starting.getPattern(), "END: " + getPatternEnd2().getPattern() }; + } + + final public CommandControl isValid(BlocLines lines) { + lines = lines.cleanList2(strategy); + if (isCommandForbidden()) { + return CommandControl.NOT_OK; + } + final boolean result1 = starting.match(StringUtils.trin(lines.getFirst499())); + if (result1 == false) { + return CommandControl.NOT_OK; + } + if (lines.size() == 1) { + return CommandControl.OK_PARTIAL; + } + + final String potentialLast = StringUtils.trinNoTrace(lines.getLast499()); + final boolean m1 = getPatternEnd2().match(potentialLast); + if (m1 == false) { + return CommandControl.OK_PARTIAL; + } + + actionIfCommandValid(); + return CommandControl.OK; + } + + public final CommandExecutionResult execute(S system, BlocLines lines) { + lines = lines.cleanList2(strategy); + return executeNow(system, lines); + } + + public abstract CommandExecutionResult executeNow(S system, BlocLines lines); + + protected boolean isCommandForbidden() { + return false; + } + + protected void actionIfCommandValid() { + } + + protected final RegexConcat getStartingPattern() { + return starting; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesBracket.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesBracket.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesBracket.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesBracket.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,10 +34,10 @@ */ package net.sourceforge.plantuml.command; -import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; import net.sourceforge.plantuml.core.Diagram; @@ -67,11 +67,11 @@ return starting; } - final public CommandControl isValid(List lines) { + final public CommandControl isValid(BlocLines lines) { if (isCommandForbidden()) { return CommandControl.NOT_OK; } - final Matcher m1 = starting.matcher(lines.get(0).trim()); + final Matcher m1 = starting.matcher(StringUtils.trin(lines.getFirst499())); if (m1.matches() == false) { return CommandControl.NOT_OK; } @@ -80,8 +80,8 @@ } int level = 1; - for (int i = 1; i < lines.size(); i++) { - final String s = lines.get(i).trim(); + for (CharSequence cs : lines.subExtract(1, 0)) { + final String s = StringUtils.trin(cs); if (isLineConsistent(s, level) == false) { return CommandControl.NOT_OK; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesComment.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesComment.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesComment.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesComment.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,22 +34,25 @@ */ package net.sourceforge.plantuml.command; -import java.util.List; - import net.sourceforge.plantuml.core.Diagram; public class CommandMultilinesComment extends CommandMultilines { + public static final String COMMENT_MULTILINE_START = "(?i)^[%s]*/[%q]([^%q]|[%q][^/])*$"; + public static final String COMMENT_MULTILINE_END = "(?i)^([^%q]|[%q][^/])*[%q]/[%s]*$"; + public static final String COMMENT_SINGLE_LINE = "(?i)^[%s]*([%q].*||/[%q].*[%q]/[%s]*)$"; + public static final String INNER_COMMENT = "/[%q].*?[%q]/"; + public CommandMultilinesComment() { - super("(?i)^[%s]*/[%q].*$"); + super(COMMENT_MULTILINE_START); } @Override public String getPatternEnd() { - return "(?i)^.*[%q]/[%s]*$"; + return COMMENT_MULTILINE_END; } - public CommandExecutionResult execute(final Diagram diagram, List lines) { + public CommandExecutionResult execute(final Diagram diagram, BlocLines lines) { return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesFooter.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesFooter.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesFooter.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesFooter.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,13 +34,14 @@ */ package net.sourceforge.plantuml.command; -import java.util.List; import java.util.regex.Matcher; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.VerticalAlignment; public class CommandMultilinesFooter extends CommandMultilines { @@ -53,19 +54,18 @@ return "(?i)^end[%s]?footer$"; } - public CommandExecutionResult execute(final UmlDiagram diagram, List lines) { - StringUtils.trim(lines, false); - final Matcher m = getStartingPattern().matcher(lines.get(0).trim()); + public CommandExecutionResult execute(final UmlDiagram diagram, BlocLines lines) { + lines = lines.trim(false); + final Matcher m = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); if (m.find() == false) { throw new IllegalStateException(); } final String align = m.group(1); - if (align != null) { - diagram.setFooterAlignment(HorizontalAlignment.valueOf(StringUtils.goUpperCase(align))); - } - final Display strings = Display.create(lines.subList(1, lines.size() - 1)); + lines = lines.subExtract(1, 1); + final Display strings = lines.toDisplay(); if (strings.size() > 0) { - diagram.setFooter(strings); + diagram.setFooter(new DisplayPositionned(strings, HorizontalAlignment.fromString(align, + HorizontalAlignment.CENTER), VerticalAlignment.BOTTOM)); return CommandExecutionResult.ok(); } return CommandExecutionResult.error("Empty footer"); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesHeader.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesHeader.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesHeader.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesHeader.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,39 +34,38 @@ */ package net.sourceforge.plantuml.command; -import java.util.List; import java.util.regex.Matcher; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.VerticalAlignment; public class CommandMultilinesHeader extends CommandMultilines { public CommandMultilinesHeader() { super("(?i)^(?:(left|right|center)?[%s]*)header$"); } - + @Override public String getPatternEnd() { return "(?i)^end[%s]?header$"; } - - public CommandExecutionResult execute(final UmlDiagram diagram, List lines) { - StringUtils.trim(lines, false); - final Matcher m = getStartingPattern().matcher(lines.get(0).trim()); + public CommandExecutionResult execute(final UmlDiagram diagram, BlocLines lines) { + lines = lines.trim(false); + final Matcher m = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); if (m.find() == false) { throw new IllegalStateException(); } final String align = m.group(1); - if (align != null) { - diagram.setHeaderAlignment(HorizontalAlignment.valueOf(StringUtils.goUpperCase(align))); - } - final Display strings = Display.create(lines.subList(1, lines.size() - 1)); + lines = lines.subExtract(1, 1); + final Display strings = lines.toDisplay(); if (strings.size() > 0) { - diagram.setHeader(strings); + diagram.setHeader(new DisplayPositionned(strings, HorizontalAlignment.fromString(align, + HorizontalAlignment.RIGHT), VerticalAlignment.TOP)); return CommandExecutionResult.ok(); } return CommandExecutionResult.error("Empty header"); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilines.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilines.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilines.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilines.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,10 +34,10 @@ */ package net.sourceforge.plantuml.command; -import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; import net.sourceforge.plantuml.core.Diagram; @@ -58,11 +58,11 @@ return new String[] { "START: " + starting.pattern(), "END: " + getPatternEnd() }; } - final public CommandControl isValid(List lines) { + final public CommandControl isValid(BlocLines lines) { if (isCommandForbidden()) { return CommandControl.NOT_OK; } - Matcher m1 = starting.matcher(lines.get(0).trim()); + Matcher m1 = starting.matcher(StringUtils.trin(lines.getFirst499())); if (m1.matches() == false) { return CommandControl.NOT_OK; } @@ -70,7 +70,7 @@ return CommandControl.OK_PARTIAL; } - m1 = MyPattern.cmpile(getPatternEnd()).matcher(lines.get(lines.size() - 1).trim()); + m1 = MyPattern.cmpile(getPatternEnd()).matcher(StringUtils.trin(lines.getLast499())); if (m1.matches() == false) { return CommandControl.OK_PARTIAL; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesLegend.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesLegend.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesLegend.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesLegend.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,14 +34,13 @@ */ package net.sourceforge.plantuml.command; -import java.util.List; - import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.VerticalAlignment; @@ -65,19 +64,21 @@ } @Override - public CommandExecutionResult executeNow(UmlDiagram diagram, List lines) { - StringUtils.trim(lines, false); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); + public CommandExecutionResult executeNow(UmlDiagram diagram, BlocLines lines) { + lines = lines.trimSmart(1); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); final String align = line0.get("ALIGN", 0); final String valign = line0.get("VALIGN", 0); - final Display strings = Display.create(lines.subList(1, lines.size() - 1)).removeEmptyColumns(); + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); + final Display strings = lines.toDisplay(); if (strings.size() > 0) { final VerticalAlignment valignment = VerticalAlignment.fromString(valign); HorizontalAlignment alignment = HorizontalAlignment.fromString(align); if (alignment == null) { alignment = HorizontalAlignment.CENTER; } - diagram.setLegend(strings, alignment, valignment); + diagram.setLegend(new DisplayPositionned(strings, alignment, valignment)); return CommandExecutionResult.ok(); } return CommandExecutionResult.error("No legend defined"); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesTitle.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesTitle.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandMultilinesTitle.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandMultilinesTitle.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,11 +34,11 @@ */ package net.sourceforge.plantuml.command; -import java.util.List; - import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.VerticalAlignment; public class CommandMultilinesTitle extends CommandMultilines { @@ -51,10 +51,12 @@ return "(?i)^end[%s]?title$"; } - public CommandExecutionResult execute(final UmlDiagram diagram, List lines) { - final Display strings = Display.create(lines.subList(1, lines.size() - 1)).removeEmptyColumns(); + public CommandExecutionResult execute(final UmlDiagram diagram, BlocLines lines) { + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); + final Display strings = lines.toDisplay(); if (strings.size() > 0) { - diagram.setTitle(strings); + diagram.setTitle(new DisplayPositionned(strings, HorizontalAlignment.CENTER, VerticalAlignment.TOP)); return CommandExecutionResult.ok(); } return CommandExecutionResult.error("No title defined"); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandNamespace.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandNamespace.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandNamespace.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandNamespace.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,7 +44,8 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.IGroup; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; public class CommandNamespace extends SingleLineCommand2 { @@ -54,11 +55,11 @@ private static RegexConcat getRegexConcat() { return new RegexConcat(new RegexLeaf("^namespace[%s]+"), // - new RegexLeaf("NAME", "([\\p{L}0-9_][\\p{L}0-9_.:]*)"), // + new RegexLeaf("NAME", "([\\p{L}0-9_][\\p{L}0-9_.:\\\\]*)"), // new RegexLeaf("[%s]*"), // new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("[%s]*\\{$")); } @@ -74,7 +75,7 @@ } final String color = arg.get("COLOR", 0); if (color != null) { - p.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color)); + p.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color)); } return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandNope.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandNope.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandNope.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandNope.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandPackageEmpty.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandPackageEmpty.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandPackageEmpty.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandPackageEmpty.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,13 +36,14 @@ import java.util.List; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.classdiagram.AbstractEntityDiagram; import net.sourceforge.plantuml.cucadiagram.Code; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.GroupType; import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.IGroup; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.utils.UniqueSequence; public class CommandPackageEmpty extends SingleLineCommand { @@ -73,7 +74,7 @@ currentPackage); final String color = arg.get(2); if (color != null) { - p.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color)); + p.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color)); } diagram.endGroup(); return CommandExecutionResult.ok(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandPackage.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandPackage.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandPackage.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandPackage.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,7 @@ */ package net.sourceforge.plantuml.command; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; @@ -47,8 +48,10 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.IGroup; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.USymbol; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.utils.UniqueSequence; public class CommandPackage extends SingleLineCommand2 { @@ -66,9 +69,13 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("[%s]*\\{$")); } + + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } @Override protected CommandExecutionResult executeArg(AbstractEntityDiagram diagram, RegexResult arg) { @@ -92,7 +99,12 @@ currentPackage); final String stereotype = arg.get("STEREOTYPE", 0); if (stereotype != null) { - p.setStereotype(new Stereotype(stereotype)); + final USymbol usymbol = USymbol.getFromString(stereotype); + if (usymbol == null) { + p.setStereotype(new Stereotype(stereotype)); + } else { + p.setUSymbol(usymbol); + } } final String urlString = arg.get("URL", 0); @@ -102,10 +114,13 @@ p.addUrl(url); } - final String color = arg.get("COLOR", 0); - if (color != null) { - p.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color)); - } + final Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); + p.setColors(colors); + +// final String color = arg.get("COLOR", 0); +// if (color != null) { +// p.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color)); +// } return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandPage.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandPage.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandPage.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandPage.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandPragma.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandPragma.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandPragma.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandPragma.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,7 @@ import java.util.List; +import net.sourceforge.plantuml.OptionFlags; import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagram; @@ -47,7 +48,14 @@ @Override protected CommandExecutionResult executeArg(UmlDiagram system, List arg) { - system.getPragma().define(StringUtils.goLowerCase(arg.get(0)), arg.get(1)); + final String name = StringUtils.goLowerCase(arg.get(0)); + final String value = arg.get(1); + system.getPragma().define(name, value); + if (name.equalsIgnoreCase("graphviz_dot") && value.equalsIgnoreCase("jdot")) { + system.setUseJDot(true); + } else if (name.equalsIgnoreCase("graphviz_dot")) { + system.setDotExecutable(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(value)); + } return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandRankDir.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandRankDir.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandRankDir.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandRankDir.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandRotate.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandRotate.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandRotate.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandRotate.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandScale.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandScale.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandScale.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandScale.java 2016-04-22 16:26:20.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandScaleMaxHeight.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandScaleMaxHeight.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandScaleMaxHeight.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandScaleMaxHeight.java 2016-04-22 16:26:20.000000000 +0000 @@ -0,0 +1,55 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.command; + +import java.util.List; + +import net.sourceforge.plantuml.ScaleMaxHeight; +import net.sourceforge.plantuml.UmlDiagram; + +public class CommandScaleMaxHeight extends SingleLineCommand { + + public CommandScaleMaxHeight() { + super("(?i)^scale[%s]+max[%s]+([0-9.]+)[%s]+height$"); + } + + @Override + protected CommandExecutionResult executeArg(UmlDiagram diagram, List arg) { + final double height = Double.parseDouble(arg.get(0)); + diagram.setScale(new ScaleMaxHeight(height)); + return CommandExecutionResult.ok(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandScaleMaxWidthAndHeight.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandScaleMaxWidthAndHeight.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandScaleMaxWidthAndHeight.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandScaleMaxWidthAndHeight.java 2016-04-22 16:26:20.000000000 +0000 @@ -0,0 +1,56 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.command; + +import java.util.List; + +import net.sourceforge.plantuml.ScaleMaxWidthAndHeight; +import net.sourceforge.plantuml.UmlDiagram; + +public class CommandScaleMaxWidthAndHeight extends SingleLineCommand { + + public CommandScaleMaxWidthAndHeight() { + super("(?i)^scale[%s]+max[%s]+([0-9.]+)[%s]*[*x][%s]*([0-9.]+)$"); + } + + @Override + protected CommandExecutionResult executeArg(UmlDiagram diagram, List arg) { + final double width = Double.parseDouble(arg.get(0)); + final double height = Double.parseDouble(arg.get(1)); + diagram.setScale(new ScaleMaxWidthAndHeight(width, height)); + return CommandExecutionResult.ok(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandScaleMaxWidth.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandScaleMaxWidth.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandScaleMaxWidth.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandScaleMaxWidth.java 2016-04-22 16:26:20.000000000 +0000 @@ -0,0 +1,55 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.command; + +import java.util.List; + +import net.sourceforge.plantuml.ScaleMaxWidth; +import net.sourceforge.plantuml.UmlDiagram; + +public class CommandScaleMaxWidth extends SingleLineCommand { + + public CommandScaleMaxWidth() { + super("(?i)^scale[%s]+max[%s]+([0-9.]+)[%s]+width$"); + } + + @Override + protected CommandExecutionResult executeArg(UmlDiagram diagram, List arg) { + final double width = Double.parseDouble(arg.get(0)); + diagram.setScale(new ScaleMaxWidth(width)); + return CommandExecutionResult.ok(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandScaleWidthAndHeight.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandScaleWidthAndHeight.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandScaleWidthAndHeight.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandScaleWidthAndHeight.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandScaleWidthOrHeight.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandScaleWidthOrHeight.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandScaleWidthOrHeight.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandScaleWidthOrHeight.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandSkinParam.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandSkinParam.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandSkinParam.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandSkinParam.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandSkinParamMultilines.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandSkinParamMultilines.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandSkinParamMultilines.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandSkinParamMultilines.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,9 +39,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.command.regex.MyPattern; -import net.sourceforge.plantuml.StringUtils; public class CommandSkinParamMultilines extends CommandMultilinesBracket { @@ -65,7 +65,8 @@ } } - private final static Pattern p1 = MyPattern.cmpile("^([\\w.]*(?:\\<\\<.*\\>\\>)?[\\w.]*)[%s]+(?:(\\{)|(.*))$|^\\}?$"); + private final static Pattern p1 = MyPattern + .cmpile("^([\\w.]*(?:\\<\\<.*\\>\\>)?[\\w.]*)[%s]+(?:(\\{)|(.*))$|^\\}?$"); public CommandSkinParamMultilines() { super("(?i)^skinparam[%s]*(?:[%s]+([\\w.]*(?:\\<\\<.*\\>\\>)?[\\w.]*))?[%s]*\\{$"); @@ -73,13 +74,21 @@ @Override protected boolean isLineConsistent(String line, int level) { - line = line.trim(); + line = StringUtils.trin(line); + if (hasStartingQuote(line)) { + return true; + } return p1.matcher(line).matches(); } - public CommandExecutionResult execute(UmlDiagram diagram, List lines) { + private boolean hasStartingQuote(CharSequence line) { + // return MyPattern.mtches(line, "[%s]*[%q].*"); + return MyPattern.mtches(line, CommandMultilinesComment.COMMENT_SINGLE_LINE); + } + + public CommandExecutionResult execute(UmlDiagram diagram, BlocLines lines) { final Context context = new Context(); - final Matcher mStart = getStartingPattern().matcher(lines.get(0).trim()); + final Matcher mStart = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); if (mStart.find() == false) { throw new IllegalStateException(); } @@ -87,12 +96,16 @@ context.push(mStart.group(1)); } - lines = new ArrayList(lines.subList(1, lines.size() - 1)); - StringUtils.trim(lines, true); + lines = lines.subExtract(1, 1); + lines = lines.removeComments(); + lines = lines.trim(true); - for (String s : lines) { + for (CharSequence s : lines) { assert s.length() > 0; - if (s.equals("}")) { +// if (hasStartingQuote(s)) { +// continue; +// } + if (s.toString().equals("}")) { context.pop(); continue; } @@ -106,7 +119,7 @@ final String key = context.getFullParam() + m.group(1); diagram.setParam(key, m.group(3)); } else { - throw new IllegalStateException(); + throw new IllegalStateException("." + s.toString() + "."); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandSpriteFile.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandSpriteFile.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandSpriteFile.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandSpriteFile.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; +import java.io.InputStream; import javax.imageio.ImageIO; @@ -46,7 +47,8 @@ import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; -import net.sourceforge.plantuml.ugraphic.SpriteImage; +import net.sourceforge.plantuml.ugraphic.sprite.SpriteImage; +import net.sourceforge.plantuml.version.PSystemVersion; public class CommandSpriteFile extends SingleLineCommand2 { @@ -68,11 +70,20 @@ final String src = arg.get("FILE", 0); final BufferedImage im; try { - final File f = FileSystem.getInstance().getFile(src); - if (f.exists() == false) { - return CommandExecutionResult.error("File does not exist: " + src); + if (src.startsWith("jar:")) { + final String inner = src.substring(4) + ".png"; + final InputStream is = SpriteImage.getInternalSprite(inner); + if (is == null) { + return CommandExecutionResult.error("No such internal sprite: " + inner); + } + im = ImageIO.read(is); + } else { + final File f = FileSystem.getInstance().getFile(src); + if (f.exists() == false) { + return CommandExecutionResult.error("File does not exist: " + src); + } + im = ImageIO.read(f); } - im = ImageIO.read(f); } catch (IOException e) { Log.error("Error reading " + src + " " + e); return CommandExecutionResult.error("Cannot read: " + src); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/CommandTitle.java plantuml-8039/src/net/sourceforge/plantuml/command/CommandTitle.java --- plantuml-8024/src/net/sourceforge/plantuml/command/CommandTitle.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/CommandTitle.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,6 +38,9 @@ import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.VerticalAlignment; public class CommandTitle extends SingleLineCommand { @@ -47,7 +50,8 @@ @Override protected CommandExecutionResult executeArg(UmlDiagram diagram, List arg) { - diagram.setTitle(Display.getWithNewlines(arg.get(0))); + diagram.setTitle(new DisplayPositionned(Display.getWithNewlines(arg.get(0)), HorizontalAlignment.CENTER, + VerticalAlignment.TOP)); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/FactorySpriteCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/FactorySpriteCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/FactorySpriteCommand.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/FactorySpriteCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,14 +38,14 @@ import java.util.Arrays; import java.util.List; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.command.note.SingleMultiFactoryCommand; import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; -import net.sourceforge.plantuml.ugraphic.Sprite; -import net.sourceforge.plantuml.ugraphic.SpriteGrayLevel; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; +import net.sourceforge.plantuml.ugraphic.sprite.SpriteGrayLevel; public final class FactorySpriteCommand implements SingleMultiFactoryCommand { @@ -73,13 +73,13 @@ @Override protected CommandExecutionResult executeArg(final UmlDiagram system, RegexResult arg) { - return executeInternal(system, arg, Arrays.asList(arg.get("DATA", 0))); + return executeInternal(system, arg, Arrays.asList((CharSequence) arg.get("DATA", 0))); } }; } - public Command createMultiLine() { + public Command createMultiLine(boolean withBracket) { return new CommandMultilines2(getRegexConcatMultiLine(), MultilinesStrategy.REMOVE_STARTING_QUOTE) { @Override @@ -87,22 +87,23 @@ return "(?i)^end[%s]?sprite|\\}$"; } - public CommandExecutionResult executeNow(final UmlDiagram system, List lines) { - StringUtils.trim(lines, true); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); - - final List strings = StringUtils.removeEmptyColumns(lines.subList(1, lines.size() - 1)); - if (strings.size() == 0) { + public CommandExecutionResult executeNow(final UmlDiagram system, BlocLines lines) { + lines = lines.trim(true); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); + + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); + if (lines.size() == 0) { return CommandExecutionResult.error("No sprite defined."); } - return executeInternal(system, line0, strings); + return executeInternal(system, line0, lines.getLines()); } }; } private CommandExecutionResult executeInternal(UmlDiagram system, RegexResult line0, - final List strings) { + final List strings) { try { final Sprite sprite; if (line0.get("DIM", 0) == null) { @@ -128,10 +129,10 @@ } } - private String concat(final List strings) { + private String concat(final List strings) { final StringBuilder sb = new StringBuilder(); - for (String s : strings) { - sb.append(s.trim()); + for (CharSequence s : strings) { + sb.append(StringUtils.trin(s)); } return sb.toString(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/MultilinesStrategy.java plantuml-8039/src/net/sourceforge/plantuml/command/MultilinesStrategy.java --- plantuml-8024/src/net/sourceforge/plantuml/command/MultilinesStrategy.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/MultilinesStrategy.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,26 +37,27 @@ import java.util.Iterator; import java.util.List; +import net.sourceforge.plantuml.StringUtils; + public enum MultilinesStrategy { REMOVE_STARTING_QUOTE, KEEP_STARTING_QUOTE; - public List filter(List lines) { + public void cleanList(List lines) { if (this == REMOVE_STARTING_QUOTE) { filterQuote(lines); } - return lines; } - private void filterQuote(List lines) { - for (final Iterator it = lines.iterator(); it.hasNext();) { - final String s = it.next(); + private void filterQuote(List lines) { + for (final Iterator it = lines.iterator(); it.hasNext();) { + final CharSequence s = it.next(); if (hasStartingQuote(s)) { it.remove(); } } } - private boolean hasStartingQuote(String s) { - return s.trim().startsWith("\'"); + private boolean hasStartingQuote(CharSequence s) { + return StringUtils.trinNoTrace(s).startsWith("\'"); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/note/FactoryNoteActivityCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/note/FactoryNoteActivityCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/note/FactoryNoteActivityCommand.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/note/FactoryNoteActivityCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,12 +34,12 @@ */ package net.sourceforge.plantuml.command.note; -import java.util.List; - +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; import net.sourceforge.plantuml.activitydiagram.ActivityDiagram; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.Command; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; @@ -55,42 +55,45 @@ import net.sourceforge.plantuml.cucadiagram.Link; import net.sourceforge.plantuml.cucadiagram.LinkDecor; import net.sourceforge.plantuml.cucadiagram.LinkType; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.utils.UniqueSequence; public final class FactoryNoteActivityCommand implements SingleMultiFactoryCommand { private RegexConcat getRegexConcatMultiLine() { - return new RegexConcat(new RegexLeaf("^note[%s]+"), // + return new RegexConcat(new RegexLeaf("^[%s]*note[%s]+"), // new RegexLeaf("POSITION", "(right|left|top|bottom)[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("[%s]*"), // new RegexLeaf("$")); } private RegexConcat getRegexConcatSingleLine() { - return new RegexConcat(new RegexLeaf("^note[%s]+"), // + return new RegexConcat(new RegexLeaf("^[%s]*note[%s]+"), // new RegexLeaf("POSITION", "(right|left|top|bottom)[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("[%s]*:[%s]*"), // new RegexLeaf("NOTE", "(.*)"), // new RegexLeaf("$")); } - public Command createMultiLine() { + public Command createMultiLine(boolean withBracket) { return new CommandMultilines2(getRegexConcatMultiLine(), MultilinesStrategy.KEEP_STARTING_QUOTE) { @Override public String getPatternEnd() { - return "(?i)^end[%s]?note$"; + return "(?i)^[%s]*end[%s]?note$"; } - public final CommandExecutionResult executeNow(final ActivityDiagram system, List lines) { + public final CommandExecutionResult executeNow(final ActivityDiagram system, BlocLines lines) { // StringUtils.trim(lines, true); - final RegexResult arg = getStartingPattern().matcher(lines.get(0).trim()); - Display strings = Display.create(StringUtils.removeEmptyColumns(lines.subList(1, lines.size() - 1))); + final RegexResult arg = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); + + Display strings = lines.toDisplay(); Url url = null; if (strings.size() > 0) { @@ -127,7 +130,7 @@ private CommandExecutionResult executeInternal(ActivityDiagram diagram, RegexResult arg, IEntity note) { - note.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); + note.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); IEntity activity = diagram.getLastEntityConsulted(); if (activity == null) { @@ -142,13 +145,13 @@ final LinkType type = new LinkType(LinkDecor.NONE, LinkDecor.NONE).getDashed(); if (position == Position.RIGHT) { - link = new Link(activity, note, type, null, 1); + link = new Link(activity, note, type, Display.NULL, 1); } else if (position == Position.LEFT) { - link = new Link(note, activity, type, null, 1); + link = new Link(note, activity, type, Display.NULL, 1); } else if (position == Position.BOTTOM) { - link = new Link(activity, note, type, null, 2); + link = new Link(activity, note, type, Display.NULL, 2); } else if (position == Position.TOP) { - link = new Link(note, activity, type, null, 2); + link = new Link(note, activity, type, Display.NULL, 2); } else { throw new IllegalArgumentException(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/note/FactoryNoteCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/note/FactoryNoteCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/note/FactoryNoteCommand.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/note/FactoryNoteCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,9 +34,9 @@ */ package net.sourceforge.plantuml.command.note; -import java.util.List; - +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.classdiagram.AbstractEntityDiagram; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.Command; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; @@ -46,29 +46,27 @@ import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Code; -import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.LeafType; -import net.sourceforge.plantuml.graphic.HtmlColorSet; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; public final class FactoryNoteCommand implements SingleMultiFactoryCommand { private RegexConcat getRegexConcatMultiLine() { - return new RegexConcat(new RegexLeaf("^(note)[%s]+"), // + return new RegexConcat(new RegexLeaf("^[%s]*(note)[%s]+"), // new RegexLeaf("CODE", "as[%s]+([\\p{L}0-9_.]+)"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("$") // ); } private RegexConcat getRegexConcatSingleLine() { - return new RegexConcat(new RegexLeaf("^note[%s]+"), // + return new RegexConcat(new RegexLeaf("^[%s]*note[%s]+"), // new RegexLeaf("DISPLAY", "[%g]([^%g]+)[%g][%s]+as[%s]+"), // new RegexLeaf("CODE", "([\\p{L}0-9_.]+)[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("$") // ); @@ -80,41 +78,39 @@ @Override protected CommandExecutionResult executeArg(final AbstractEntityDiagram system, RegexResult arg) { final String display = arg.get("DISPLAY", 0); - return executeInternal(system, arg, StringUtils.getWithNewlines2(display)); + return executeInternal(system, arg, BlocLines.getWithNewlines(display)); } }; } - public Command createMultiLine() { + public Command createMultiLine(boolean withBracket) { return new CommandMultilines2(getRegexConcatMultiLine(), MultilinesStrategy.KEEP_STARTING_QUOTE) { @Override public String getPatternEnd() { - return "(?i)^end[%s]?note$"; + return "(?i)^[%s]*end[%s]?note$"; } - public CommandExecutionResult executeNow(final AbstractEntityDiagram system, List lines) { + public CommandExecutionResult executeNow(final AbstractEntityDiagram system, BlocLines lines) { // StringUtils.trim(lines, false); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); - - final List strings = StringUtils.removeEmptyColumns(lines.subList(1, lines.size() - 1)); - - return executeInternal(system, line0, strings); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); + return executeInternal(system, line0, lines); } }; } - private CommandExecutionResult executeInternal(AbstractEntityDiagram diagram, RegexResult arg, - final List display) { + private CommandExecutionResult executeInternal(AbstractEntityDiagram diagram, RegexResult arg, BlocLines display) { final Code code = Code.of(arg.get("CODE", 0)); if (diagram.leafExist(code)) { return CommandExecutionResult.error("Note already created: " + code.getFullName()); } - final IEntity entity = diagram.createLeaf(code, Display.create(display), LeafType.NOTE, null); + final IEntity entity = diagram.createLeaf(code, display.toDisplay(), LeafType.NOTE, null); assert entity != null; - entity.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); + entity.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/note/FactoryNoteOnEntityCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/note/FactoryNoteOnEntityCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/note/FactoryNoteOnEntityCommand.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/note/FactoryNoteOnEntityCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,12 +34,12 @@ */ package net.sourceforge.plantuml.command.note; -import java.util.List; - +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; import net.sourceforge.plantuml.classdiagram.AbstractEntityDiagram; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.Command; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; @@ -58,41 +58,49 @@ import net.sourceforge.plantuml.cucadiagram.Link; import net.sourceforge.plantuml.cucadiagram.LinkDecor; import net.sourceforge.plantuml.cucadiagram.LinkType; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.utils.UniqueSequence; public final class FactoryNoteOnEntityCommand implements SingleMultiFactoryCommand { private final IRegex partialPattern; - public FactoryNoteOnEntityCommand(IRegex partialPattern) { + // private final boolean withBracket; + + public FactoryNoteOnEntityCommand(IRegex partialPattern/* , boolean withBracket */) { this.partialPattern = partialPattern; + // this.withBracket = withBracket; } private RegexConcat getRegexConcatSingleLine(IRegex partialPattern) { - return new RegexConcat(new RegexLeaf("^note[%s]+"), // + return new RegexConcat(new RegexLeaf("^[%s]*note[%s]+"), // new RegexLeaf("POSITION", "(right|left|top|bottom)"), // new RegexOr(// new RegexConcat(new RegexLeaf("[%s]+of[%s]+"), partialPattern), // new RegexLeaf("")), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("[%s]*:[%s]*"), // new RegexLeaf("NOTE", "(.*)"), // new RegexLeaf("$") // ); } - private RegexConcat getRegexConcatMultiLine(IRegex partialPattern) { - return new RegexConcat(new RegexLeaf("^note[%s]+"), // + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } + + private RegexConcat getRegexConcatMultiLine(IRegex partialPattern, final boolean withBracket) { + return new RegexConcat(new RegexLeaf("^[%s]*note[%s]+"), // new RegexLeaf("POSITION", "(right|left|top|bottom)"), // new RegexOr(// new RegexConcat(new RegexLeaf("[%s]+of[%s]+"), partialPattern), // new RegexLeaf("")), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // - new RegexLeaf("[%s]*\\{?"), // + color().getRegex(), // + new RegexLeaf(withBracket ? "[%s]*\\{" : "[%s]*"), // new RegexLeaf("$") // ); } @@ -103,42 +111,46 @@ @Override protected CommandExecutionResult executeArg(final AbstractEntityDiagram system, RegexResult arg) { final String s = arg.get("NOTE", 0); - return executeInternal(arg, system, null, StringUtils.getWithNewlines2(s)); + return executeInternal(arg, system, null, BlocLines.getWithNewlines(s)); } }; } - public Command createMultiLine() { - return new CommandMultilines2(getRegexConcatMultiLine(partialPattern), + public Command createMultiLine(final boolean withBracket) { + return new CommandMultilines2(getRegexConcatMultiLine(partialPattern, withBracket), MultilinesStrategy.KEEP_STARTING_QUOTE) { @Override public String getPatternEnd() { - return "(?i)^(end[%s]?note|\\})$"; + if (withBracket) { + return "(?i)^(\\})$"; + } + return "(?i)^[%s]*(end[%s]?note)$"; } - public CommandExecutionResult executeNow(final AbstractEntityDiagram system, List lines) { + public CommandExecutionResult executeNow(final AbstractEntityDiagram system, BlocLines lines) { // StringUtils.trim(lines, false); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); - List strings = StringUtils.removeEmptyColumns(lines.subList(1, lines.size() - 1)); Url url = null; - if (strings.size() > 0) { + if (lines.size() > 0) { final UrlBuilder urlBuilder = new UrlBuilder(system.getSkinParam().getValue("topurl"), ModeUrl.STRICT); - url = urlBuilder.getUrl(strings.get(0)); + url = urlBuilder.getUrl(lines.getFirst499().toString()); } if (url != null) { - strings = strings.subList(1, strings.size()); + lines = lines.subExtract(1, 0); } - return executeInternal(line0, system, url, strings); + return executeInternal(line0, system, url, lines); } }; } private CommandExecutionResult executeInternal(RegexResult line0, AbstractEntityDiagram diagram, Url url, - List s) { + BlocLines strings) { final String pos = line0.get("POSITION", 0); @@ -149,30 +161,36 @@ if (cl1 == null) { return CommandExecutionResult.error("Nothing to note to"); } + } else if (diagram.isGroup(code)) { + cl1 = diagram.getGroup(code); } else { cl1 = diagram.getOrCreateLeaf(code, null, null); } - final IEntity note = diagram.createLeaf(UniqueSequence.getCode("GMN"), Display.create(s), LeafType.NOTE, null); - note.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0))); + final IEntity note = diagram + .createLeaf(UniqueSequence.getCode("GMN"), strings.toDisplay(), LeafType.NOTE, null); + + final Colors colors = color().getColor(line0, diagram.getSkinParam().getIHtmlColorSet()); + note.setColors(colors); if (url != null) { note.addUrl(url); } - final Position position = Position.valueOf(StringUtils.goUpperCase(pos)).withRankdir(diagram.getSkinParam().getRankdir()); + final Position position = Position.valueOf(StringUtils.goUpperCase(pos)).withRankdir( + diagram.getSkinParam().getRankdir()); final Link link; final LinkType type = new LinkType(LinkDecor.NONE, LinkDecor.NONE).getDashed(); if (position == Position.RIGHT) { - link = new Link(cl1, note, type, null, 1); + link = new Link(cl1, note, type, Display.NULL, 1); link.setHorizontalSolitary(true); } else if (position == Position.LEFT) { - link = new Link(note, cl1, type, null, 1); + link = new Link(note, cl1, type, Display.NULL, 1); link.setHorizontalSolitary(true); } else if (position == Position.BOTTOM) { - link = new Link(cl1, note, type, null, 2); + link = new Link(cl1, note, type, Display.NULL, 2); } else if (position == Position.TOP) { - link = new Link(note, cl1, type, null, 2); + link = new Link(note, cl1, type, Display.NULL, 2); } else { throw new IllegalArgumentException(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/note/FactoryNoteOnLinkCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/note/FactoryNoteOnLinkCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/note/FactoryNoteOnLinkCommand.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/note/FactoryNoteOnLinkCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,11 +34,11 @@ */ package net.sourceforge.plantuml.command.note; -import java.util.List; - +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.Command; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; @@ -49,44 +49,50 @@ import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.CucaDiagram; -import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.Link; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; public final class FactoryNoteOnLinkCommand implements SingleMultiFactoryCommand { private RegexConcat getRegexConcatSingleLine() { - return new RegexConcat(new RegexLeaf("^note[%s]+"), // + return new RegexConcat(new RegexLeaf("^[%s]*note[%s]+"), // new RegexLeaf("POSITION", "(right|left|top|bottom)?[%s]*on[%s]+link"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("[%s]*:[%s]*"), // new RegexLeaf("NOTE", "(.*)"), // new RegexLeaf("$")); } private RegexConcat getRegexConcatMultiLine() { - return new RegexConcat(new RegexLeaf("^note[%s]+"), // + return new RegexConcat(new RegexLeaf("^[%s]*note[%s]+"), // new RegexLeaf("POSITION", "(right|left|top|bottom)?[%s]*on[%s]+link"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("$")); } - public Command createMultiLine() { + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } + + public Command createMultiLine(boolean withBracket) { return new CommandMultilines2(getRegexConcatMultiLine(), MultilinesStrategy.KEEP_STARTING_QUOTE) { @Override public String getPatternEnd() { - return "(?i)^end[%s]?note$"; + return "(?i)^[%s]*end[%s]?note$"; } - public CommandExecutionResult executeNow(final CucaDiagram system, List lines) { - final List strings = StringUtils.removeEmptyColumns(lines.subList(1, lines.size() - 1)); - if (strings.size() > 0) { - final RegexResult arg = getStartingPattern().matcher(lines.get(0)); - return executeInternal(system, strings, arg); + public CommandExecutionResult executeNow(final CucaDiagram system, BlocLines lines) { + final String line0 = lines.getFirst499().toString(); + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); + if (lines.size() > 0) { + final RegexResult arg = getStartingPattern().matcher(line0); + return executeInternal(system, lines, arg); } return CommandExecutionResult.error("No note defined"); } @@ -99,14 +105,13 @@ @Override protected CommandExecutionResult executeArg(final CucaDiagram system, RegexResult arg) { - final List note = StringUtils.getWithNewlines2(arg.get("NOTE", 0)); + final BlocLines note = BlocLines.getWithNewlines(arg.get("NOTE", 0)); return executeInternal(system, note, arg); } }; } - private CommandExecutionResult executeInternal(CucaDiagram diagram, List note, - final RegexResult arg) { + private CommandExecutionResult executeInternal(CucaDiagram diagram, BlocLines note, final RegexResult arg) { final Link link = diagram.getLastLink(); if (link == null) { return CommandExecutionResult.error("No link defined"); @@ -118,13 +123,13 @@ Url url = null; if (note.size() > 0) { final UrlBuilder urlBuilder = new UrlBuilder(diagram.getSkinParam().getValue("topurl"), ModeUrl.STRICT); - url = urlBuilder.getUrl(note.get(0).toString()); + url = urlBuilder.getUrl(note.getFirst499().toString()); } if (url != null) { - note = note.subList(1, note.size()); + note = note.subExtract(1, 0); } - link.addNote(Display.create(note), position, - diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); + final Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); + link.addNote(note.toDisplay(), position, colors); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/note/FactoryTipOnEntityCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/note/FactoryTipOnEntityCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/note/FactoryTipOnEntityCommand.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/note/FactoryTipOnEntityCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -0,0 +1,178 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.command.note; + +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.Url; +import net.sourceforge.plantuml.UrlBuilder; +import net.sourceforge.plantuml.UrlBuilder.ModeUrl; +import net.sourceforge.plantuml.classdiagram.AbstractEntityDiagram; +import net.sourceforge.plantuml.command.BlocLines; +import net.sourceforge.plantuml.command.Command; +import net.sourceforge.plantuml.command.CommandExecutionResult; +import net.sourceforge.plantuml.command.CommandMultilines2; +import net.sourceforge.plantuml.command.MultilinesStrategy; +import net.sourceforge.plantuml.command.Position; +import net.sourceforge.plantuml.command.regex.IRegex; +import net.sourceforge.plantuml.command.regex.RegexConcat; +import net.sourceforge.plantuml.command.regex.RegexLeaf; +import net.sourceforge.plantuml.command.regex.RegexResult; +import net.sourceforge.plantuml.cucadiagram.Code; +import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.IEntity; +import net.sourceforge.plantuml.cucadiagram.LeafType; +import net.sourceforge.plantuml.cucadiagram.Link; +import net.sourceforge.plantuml.cucadiagram.LinkDecor; +import net.sourceforge.plantuml.cucadiagram.LinkType; +import net.sourceforge.plantuml.graphic.color.ColorParser; + +public final class FactoryTipOnEntityCommand implements SingleMultiFactoryCommand { + + private final IRegex partialPattern; + + // private final boolean withBracket; + + public FactoryTipOnEntityCommand(IRegex partialPattern/* , boolean withBracket */) { + this.partialPattern = partialPattern; + // this.withBracket = withBracket; + } + + private RegexConcat getRegexConcatMultiLine(IRegex partialPattern, final boolean withBracket) { + return new RegexConcat(new RegexLeaf("^[%s]*note[%s]+"), // + new RegexLeaf("POSITION", "(right|left)"), // + new RegexLeaf("[%s]+of[%s]+"), partialPattern, // + new RegexLeaf("[%s]*"), // + ColorParser.exp1(), // + new RegexLeaf(withBracket ? "[%s]*\\{" : "[%s]*"), // + new RegexLeaf("$") // + ); + } + + public Command createSingleLine() { + throw new UnsupportedOperationException(); + } + + public Command createMultiLine(final boolean withBracket) { + return new CommandMultilines2(getRegexConcatMultiLine(partialPattern, withBracket), + MultilinesStrategy.KEEP_STARTING_QUOTE) { + + @Override + public String getPatternEnd() { + if (withBracket) { + return "(?i)^(\\})$"; + } + return "(?i)^[%s]*(end[%s]?note)$"; + } + + public CommandExecutionResult executeNow(final AbstractEntityDiagram system, BlocLines lines) { + // StringUtils.trim(lines, false); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); + + Url url = null; + if (lines.size() > 0) { + final UrlBuilder urlBuilder = new UrlBuilder(system.getSkinParam().getValue("topurl"), + ModeUrl.STRICT); + url = urlBuilder.getUrl(lines.getFirst499().toString()); + } + if (url != null) { + lines = lines.subExtract(1, 0); + } + + return executeInternal(line0, system, url, lines); + } + }; + } + + private CommandExecutionResult executeInternal(RegexResult line0, AbstractEntityDiagram diagram, Url url, + BlocLines lines) { + + final String pos = line0.get("POSITION", 0); + + final Code code = Code.of(line0.get("ENTITY", 0)); + final String member = line0.get("ENTITY", 1); + if (code == null) { + return CommandExecutionResult.error("Nothing to note to"); + } + final IEntity cl1 = diagram.getOrCreateLeaf(code, null, null); + final Position position = Position.valueOf(StringUtils.goUpperCase(pos)).withRankdir( + diagram.getSkinParam().getRankdir()); + + final Code codeTip = code.addSuffix("$$$" + position.name()); + IEntity tips = diagram.getLeafsget(codeTip); + if (tips == null) { + tips = diagram.getOrCreateLeaf(codeTip, LeafType.TIPS, null); + final LinkType type = new LinkType(LinkDecor.NONE, LinkDecor.NONE).getInvisible(); + final Link link; + if (position == Position.RIGHT) { + link = new Link(cl1, (IEntity) tips, type, Display.NULL, 1); + } else { + link = new Link((IEntity) tips, cl1, type, Display.NULL, 1); + } + diagram.addLink(link); + } + tips.putTip(member, lines.toDisplay()); + + // final IEntity note = diagram.createLeaf(UniqueSequence.getCode("GMN"), Display.create(s), LeafType.NOTE, + // null); + // note.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0))); + // if (url != null) { + // note.addUrl(url); + // } + // + // final Position position = Position.valueOf(StringUtils.goUpperCase(pos)).withRankdir( + // diagram.getSkinParam().getRankdir()); + // final Link link; + // + // final LinkType type = new LinkType(LinkDecor.NONE, LinkDecor.NONE).getDashed(); + // if (position == Position.RIGHT) { + // link = new Link(cl1, note, type, null, 1); + // link.setHorizontalSolitary(true); + // } else if (position == Position.LEFT) { + // link = new Link(note, cl1, type, null, 1); + // link.setHorizontalSolitary(true); + // } else if (position == Position.BOTTOM) { + // link = new Link(cl1, note, type, null, 2); + // } else if (position == Position.TOP) { + // link = new Link(note, cl1, type, null, 2); + // } else { + // throw new IllegalArgumentException(); + // } + // diagram.addLink(link); + return CommandExecutionResult.ok(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteCommand.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,8 +34,10 @@ */ package net.sourceforge.plantuml.command.note.sequence; -import java.util.List; - +import net.sourceforge.plantuml.ColorParam; +import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.Command; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; @@ -45,15 +47,15 @@ import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; -import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.graphic.HtmlColorSet; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.sequencediagram.Note; import net.sourceforge.plantuml.sequencediagram.NotePosition; import net.sourceforge.plantuml.sequencediagram.NoteStyle; import net.sourceforge.plantuml.sequencediagram.Participant; import net.sourceforge.plantuml.sequencediagram.SequenceDiagram; -import net.sourceforge.plantuml.StringUtils; public final class FactorySequenceNoteCommand implements SingleMultiFactoryCommand { @@ -61,10 +63,13 @@ return new RegexConcat(// new RegexLeaf("^"), // new RegexLeaf("VMERGE", "(/)?[%s]*"), // - new RegexLeaf("STYLE", "(note|hnote|rnote)[%s]+"), // + new RegexLeaf("STYLE", "(note|hnote|rnote)"), // + new RegexLeaf("[%s]*"), // + new RegexLeaf("STEREO", "(\\<{2}.*\\>{2})?"), // + new RegexLeaf("[%s]*"), // new RegexLeaf("POSITION", "(right|left|over)[%s]+"), // new RegexLeaf("PARTICIPANT", "(?:of[%s]+)?([\\p{L}0-9_.@]+|[%g][^%g]+[%g])[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("$")); } @@ -72,16 +77,23 @@ return new RegexConcat(// new RegexLeaf("^"), // new RegexLeaf("VMERGE", "(/)?[%s]*"), // - new RegexLeaf("STYLE", "(note|hnote|rnote)[%s]+"), // + new RegexLeaf("STYLE", "(note|hnote|rnote)"), // + new RegexLeaf("[%s]*"), // + new RegexLeaf("STEREO", "(\\<{2}.*\\>{2})?"), // + new RegexLeaf("[%s]*"), // new RegexLeaf("POSITION", "(right|left|over)[%s]+"), // new RegexLeaf("PARTICIPANT", "(?:of[%s])?([\\p{L}0-9_.@]+|[%g][^%g]+[%g])[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("[%s]*:[%s]*"), // new RegexLeaf("NOTE", "(.*)"), // new RegexLeaf("$")); } - public Command createMultiLine() { + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } + + public Command createMultiLine(boolean withBracket) { return new CommandMultilines2(getRegexConcatMultiLine(), MultilinesStrategy.KEEP_STARTING_QUOTE) { @@ -90,10 +102,11 @@ return "(?i)^end[%s]?(note|hnote|rnote)$"; } - public CommandExecutionResult executeNow(final SequenceDiagram system, List lines) { - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); - final List strings = StringUtils.removeEmptyColumns(lines.subList(1, lines.size() - 1)); - return executeInternal(system, line0, strings); + public CommandExecutionResult executeNow(final SequenceDiagram system, BlocLines lines) { + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); + return executeInternal(system, line0, lines); } }; } @@ -103,14 +116,13 @@ @Override protected CommandExecutionResult executeArg(final SequenceDiagram system, RegexResult arg) { - final List strings = StringUtils.getWithNewlines2(arg.get("NOTE", 0)); - return executeInternal(system, arg, strings); + return executeInternal(system, arg, BlocLines.getWithNewlines(arg.get("NOTE", 0))); } }; } - private CommandExecutionResult executeInternal(SequenceDiagram diagram, RegexResult arg, final List strings) { + private CommandExecutionResult executeInternal(SequenceDiagram diagram, RegexResult arg, BlocLines strings) { final Participant p = diagram.getOrCreateParticipant(StringUtils .eventuallyRemoveStartingAndEndingDoubleQuote(arg.get("PARTICIPANT", 0))); @@ -118,8 +130,16 @@ if (strings.size() > 0) { final boolean tryMerge = arg.get("VMERGE", 0) != null; - final Note note = new Note(p, position, Display.create(strings)); - note.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); + final Note note = new Note(p, position, strings.toDisplay()); + Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); + final String stereotypeString = arg.get("STEREO", 0); + if (stereotypeString != null) { + final Stereotype stereotype = new Stereotype(stereotypeString); + note.setStereotype(stereotype); + colors = colors.applyStereotypeForNote(stereotype, diagram.getSkinParam(), FontParam.NOTE, + ColorParam.noteBackground, ColorParam.noteBorder); + } + note.setColors(colors); note.setStyle(NoteStyle.getNoteStyle(arg.get("STYLE", 0))); diagram.addNote(note, tryMerge); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteOnArrowCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteOnArrowCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteOnArrowCommand.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteOnArrowCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,11 +34,11 @@ */ package net.sourceforge.plantuml.command.note.sequence; -import java.util.List; - +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.Command; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; @@ -48,27 +48,30 @@ import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; -import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; import net.sourceforge.plantuml.sequencediagram.AbstractMessage; import net.sourceforge.plantuml.sequencediagram.EventWithDeactivate; import net.sourceforge.plantuml.sequencediagram.NotePosition; +import net.sourceforge.plantuml.sequencediagram.NoteStyle; import net.sourceforge.plantuml.sequencediagram.SequenceDiagram; -import net.sourceforge.plantuml.StringUtils; public final class FactorySequenceNoteOnArrowCommand implements SingleMultiFactoryCommand { private RegexConcat getRegexConcatMultiLine() { - return new RegexConcat(new RegexLeaf("^note[%s]+"), // + return new RegexConcat(new RegexLeaf("^[%s]*"), // + new RegexLeaf("STYLE", "(note|hnote|rnote)"), // + new RegexLeaf("[%s]+"), // new RegexLeaf("POSITION", "(right|left)[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("$")); } private RegexConcat getRegexConcatSingleLine() { - return new RegexConcat(new RegexLeaf("^note[%s]+"), // + return new RegexConcat(new RegexLeaf("^[%s]*"), // + new RegexLeaf("STYLE", "(note|hnote|rnote)"), // + new RegexLeaf("[%s]+"), // new RegexLeaf("POSITION", "(right|left)[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("[%s]*:[%s]*"), // new RegexLeaf("NOTE", "(.*)"), // new RegexLeaf("$")); @@ -79,48 +82,48 @@ @Override protected CommandExecutionResult executeArg(final SequenceDiagram system, RegexResult arg) { - final List strings = StringUtils.getWithNewlines2(arg.get("NOTE", 0)); - return executeInternal(system, arg, strings); + return executeInternal(system, arg, BlocLines.getWithNewlines(arg.get("NOTE", 0))); } }; } - public Command createMultiLine() { + public Command createMultiLine(boolean withBracket) { return new CommandMultilines2(getRegexConcatMultiLine(), MultilinesStrategy.KEEP_STARTING_QUOTE) { @Override public String getPatternEnd() { - return "(?i)^end[%s]?note$"; + return "(?i)^[%s]*end[%s]?note$"; } - public CommandExecutionResult executeNow(final SequenceDiagram system, List lines) { - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); - final List in = StringUtils.removeEmptyColumns(lines.subList(1, lines.size() - 1)); - - return executeInternal(system, line0, in); + public CommandExecutionResult executeNow(final SequenceDiagram system, BlocLines lines) { + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); + return executeInternal(system, line0, lines); } }; } - private CommandExecutionResult executeInternal(SequenceDiagram system, final RegexResult line0, List in) { + private CommandExecutionResult executeInternal(SequenceDiagram system, final RegexResult line0, BlocLines lines) { final EventWithDeactivate m = system.getLastEventWithDeactivate(); if (m instanceof AbstractMessage) { final NotePosition position = NotePosition.valueOf(StringUtils.goUpperCase(line0.get("POSITION", 0))); final Url url; - if (in.size() > 0) { + if (lines.size() > 0) { final UrlBuilder urlBuilder = new UrlBuilder(system.getSkinParam().getValue("topurl"), ModeUrl.STRICT); - url = urlBuilder.getUrl(in.get(0).toString()); + url = urlBuilder.getUrl(lines.getFirst499().toString()); } else { url = null; } if (url != null) { - in = in.subList(1, in.size()); + lines = lines.subExtract(1, 0); } - ((AbstractMessage) m).setNote(Display.create(in), position, line0.get("COLOR", 0), url); + final NoteStyle style = NoteStyle.getNoteStyle(line0.get("STYLE", 0)); + ((AbstractMessage) m).setNote(lines.toDisplay(), position, style, line0.get("COLOR", 0), url); } return CommandExecutionResult.ok(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteOverSeveralCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteOverSeveralCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteOverSeveralCommand.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/note/sequence/FactorySequenceNoteOverSeveralCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,8 +34,8 @@ */ package net.sourceforge.plantuml.command.note.sequence; -import java.util.List; - +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.Command; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; @@ -45,13 +45,13 @@ import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; import net.sourceforge.plantuml.command.regex.RegexResult; -import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.sequencediagram.Note; import net.sourceforge.plantuml.sequencediagram.NoteStyle; import net.sourceforge.plantuml.sequencediagram.Participant; import net.sourceforge.plantuml.sequencediagram.SequenceDiagram; -import net.sourceforge.plantuml.StringUtils; public final class FactorySequenceNoteOverSeveralCommand implements SingleMultiFactoryCommand { @@ -62,7 +62,7 @@ new RegexLeaf("STYLE", "(note|hnote|rnote)[%s]+over[%s]+"), // new RegexLeaf("P1", "([\\p{L}0-9_.@]+|[%g][^%g]+[%g])[%s]*\\,[%s]*"), // new RegexLeaf("P2", "([\\p{L}0-9_.@]+|[%g][^%g]+[%g])[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("$") // ); } @@ -74,18 +74,23 @@ new RegexLeaf("STYLE", "(note|hnote|rnote)[%s]+over[%s]+"), // new RegexLeaf("P1", "([\\p{L}0-9_.@]+|[%g][^%g]+[%g])[%s]*\\,[%s]*"), // new RegexLeaf("P2", "([\\p{L}0-9_.@]+|[%g][^%g]+[%g])[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("[%s]*:[%s]*"), // new RegexLeaf("NOTE", "(.*)"), // new RegexLeaf("$")); } + + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } + public Command createSingleLine() { return new SingleLineCommand2(getRegexConcatSingleLine()) { @Override protected CommandExecutionResult executeArg(final SequenceDiagram system, RegexResult arg) { - final List strings = StringUtils.getWithNewlines2(arg.get("NOTE", 0)); + final BlocLines strings = BlocLines.getWithNewlines(arg.get("NOTE", 0)); return executeInternal(system, arg, strings); } @@ -93,7 +98,7 @@ }; } - public Command createMultiLine() { + public Command createMultiLine(boolean withBracket) { return new CommandMultilines2(getRegexConcatMultiLine(), MultilinesStrategy.KEEP_STARTING_QUOTE) { @@ -102,27 +107,28 @@ return "(?i)^end[%s]?(note|hnote|rnote)$"; } - public CommandExecutionResult executeNow(final SequenceDiagram system, List lines) { - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); - final List strings = StringUtils.removeEmptyColumns(lines.subList(1, lines.size() - 1)); - - return executeInternal(system, line0, strings); + public CommandExecutionResult executeNow(final SequenceDiagram system, BlocLines lines) { + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); + return executeInternal(system, line0, lines); } }; } - private CommandExecutionResult executeInternal(SequenceDiagram diagram, final RegexResult line0, - final List strings) { + private CommandExecutionResult executeInternal(SequenceDiagram diagram, final RegexResult line0, BlocLines lines) { final Participant p1 = diagram.getOrCreateParticipant(StringUtils .eventuallyRemoveStartingAndEndingDoubleQuote(line0.get("P1", 0))); final Participant p2 = diagram.getOrCreateParticipant(StringUtils .eventuallyRemoveStartingAndEndingDoubleQuote(line0.get("P2", 0))); - if (strings.size() > 0) { + if (lines.size() > 0) { final boolean tryMerge = line0.get("VMERGE", 0) != null; - final Note note = new Note(p1, p2, Display.create(strings)); - note.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0))); + final Note note = new Note(p1, p2, lines.toDisplay()); + final Colors colors = color().getColor(line0, diagram.getSkinParam().getIHtmlColorSet()); + note.setColors(colors); + // note.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0))); note.setStyle(NoteStyle.getNoteStyle(line0.get("STYLE", 0))); diagram.addNote(note, tryMerge); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/note/SingleMultiFactoryCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/note/SingleMultiFactoryCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/note/SingleMultiFactoryCommand.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/note/SingleMultiFactoryCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,6 +41,6 @@ public Command createSingleLine(); - public Command createMultiLine(); + public Command createMultiLine(boolean withBracket); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/Position.java plantuml-8039/src/net/sourceforge/plantuml/command/Position.java --- plantuml-8024/src/net/sourceforge/plantuml/command/Position.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/Position.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,7 @@ */ package net.sourceforge.plantuml.command; +import net.sourceforge.plantuml.Direction; import net.sourceforge.plantuml.cucadiagram.Rankdir; public enum Position { @@ -61,4 +62,14 @@ } throw new IllegalStateException(); } + + public Direction reverseDirection() { + if (this == LEFT) { + return Direction.RIGHT; + } + if (this == RIGHT) { + return Direction.LEFT; + } + throw new UnsupportedOperationException(); + } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/ProtectedCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/ProtectedCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/ProtectedCommand.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/ProtectedCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,10 +34,6 @@ */ package net.sourceforge.plantuml.command; -import java.io.ByteArrayOutputStream; -import java.io.PrintWriter; -import java.util.List; - import net.sourceforge.plantuml.Log; import net.sourceforge.plantuml.core.Diagram; import net.sourceforge.plantuml.version.Version; @@ -50,29 +46,26 @@ this.cmd = cmd; } - public CommandExecutionResult execute(S system, List lines) { + public CommandExecutionResult execute(S system, BlocLines lines) { try { final CommandExecutionResult result = cmd.execute(system, lines); -// if (result.isOk()) { -// // TRACECOMMAND -// System.err.println("CMD = " + cmd.getClass()); -// } + // if (result.isOk()) { + // // TRACECOMMAND + // System.err.println("CMD = " + cmd.getClass()); + // } return result; } catch (Throwable t) { - t.printStackTrace(); - final ByteArrayOutputStream baos = new ByteArrayOutputStream(); - final PrintWriter pw = new PrintWriter(baos); - t.printStackTrace(pw); Log.error("Error " + t); - String msg = "You should send a mail to plantuml@gmail.com with this log (V" + Version.versionString() + t.printStackTrace(); + String msg = "You should send a mail to plantuml@gmail.com or post to http://plantuml.com/qa with this log (V" + Version.versionString() + ")"; Log.error(msg); - msg += " " + new String(baos.toByteArray()); - return CommandExecutionResult.error(msg); + msg += " " + t.toString(); + return CommandExecutionResult.error(msg, t); } } - public CommandControl isValid(List lines) { + public CommandControl isValid(BlocLines lines) { return cmd.isValid(lines); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/PSystemAbstractFactory.java plantuml-8039/src/net/sourceforge/plantuml/command/PSystemAbstractFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/command/PSystemAbstractFactory.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/PSystemAbstractFactory.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import net.sourceforge.plantuml.AbstractPSystem; import net.sourceforge.plantuml.ErrorUml; import net.sourceforge.plantuml.ErrorUmlType; +import net.sourceforge.plantuml.LineLocation; import net.sourceforge.plantuml.PSystemError; import net.sourceforge.plantuml.api.PSystemFactory; import net.sourceforge.plantuml.core.DiagramType; @@ -50,15 +51,15 @@ this.type = type; } - final protected AbstractPSystem buildEmptyError(UmlSource source) { + final protected AbstractPSystem buildEmptyError(UmlSource source, LineLocation lineLocation) { final PSystemError result = new PSystemError(source, new ErrorUml(ErrorUmlType.SYNTAX_ERROR, - "Empty description", 1)); + "Empty description", 1, lineLocation), null); result.setSource(source); return result; } - final protected PSystemError buildEmptyError(UmlSource source, String err) { - final PSystemError result = new PSystemError(source, new ErrorUml(ErrorUmlType.EXECUTION_ERROR, err, 1)); + final protected PSystemError buildEmptyError(UmlSource source, String err, LineLocation lineLocation) { + final PSystemError result = new PSystemError(source, new ErrorUml(ErrorUmlType.EXECUTION_ERROR, err, 1, lineLocation), null); result.setSource(source); return result; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/PSystemBasicFactory.java plantuml-8039/src/net/sourceforge/plantuml/command/PSystemBasicFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/command/PSystemBasicFactory.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/PSystemBasicFactory.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.command; import net.sourceforge.plantuml.AbstractPSystem; +import net.sourceforge.plantuml.CharSequence2; import net.sourceforge.plantuml.ErrorUml; import net.sourceforge.plantuml.ErrorUmlType; import net.sourceforge.plantuml.PSystemError; @@ -42,7 +43,7 @@ import net.sourceforge.plantuml.core.DiagramType; import net.sourceforge.plantuml.core.UmlSource; import net.sourceforge.plantuml.utils.StartUtils; -import net.sourceforge.plantuml.version.IteratorCounter; +import net.sourceforge.plantuml.version.IteratorCounter2; public abstract class PSystemBasicFactory

extends PSystemAbstractFactory { @@ -62,24 +63,24 @@ final public Diagram createSystem(UmlSource source) { - final IteratorCounter it = source.iterator(); - final String startLine = it.next(); - P system = init(startLine); + final IteratorCounter2 it = source.iterator2(); + final CharSequence2 startLine = it.next(); + P system = init(startLine.toString2()); while (it.hasNext()) { - final String s = it.next(); + final CharSequence2 s = it.next(); if (StartUtils.isArobaseEndDiagram(s)) { if (source.getTotalLineCount() == 2) { - return buildEmptyError(source); + return buildEmptyError(source, s.getLocation()); } if (system != null) { system.setSource(source); } return system; } - system = executeLine(system, s); + system = executeLine(system, s.toString2()); if (system == null) { return new PSystemError(source, new ErrorUml(ErrorUmlType.SYNTAX_ERROR, "Syntax Error?", - it.currentNum() - 1)); + it.currentNum() - 1, s.getLocation()), null); } } if (system != null) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/PSystemSingleLineFactory.java plantuml-8039/src/net/sourceforge/plantuml/command/PSystemSingleLineFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/command/PSystemSingleLineFactory.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/PSystemSingleLineFactory.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.command; import net.sourceforge.plantuml.AbstractPSystem; +import net.sourceforge.plantuml.CharSequence2; import net.sourceforge.plantuml.ErrorUml; import net.sourceforge.plantuml.ErrorUmlType; import net.sourceforge.plantuml.PSystemError; @@ -42,7 +43,7 @@ import net.sourceforge.plantuml.core.DiagramType; import net.sourceforge.plantuml.core.UmlSource; import net.sourceforge.plantuml.utils.StartUtils; -import net.sourceforge.plantuml.version.IteratorCounter; +import net.sourceforge.plantuml.version.IteratorCounter2; public abstract class PSystemSingleLineFactory extends PSystemAbstractFactory { @@ -54,27 +55,27 @@ final public Diagram createSystem(UmlSource source) { + final IteratorCounter2 it = source.iterator2(); if (source.isEmpty()) { - return buildEmptyError(source); + return buildEmptyError(source, it.peek().getLocation()); } - final IteratorCounter it = source.iterator(); - final String startLine = it.next(); + final CharSequence2 startLine = it.next(); if (StartUtils.isArobaseStartDiagram(startLine) == false) { throw new UnsupportedOperationException(); } if (it.hasNext() == false) { - return buildEmptyError(source); + return buildEmptyError(source, startLine.getLocation()); } - final String s = it.next(); + final CharSequence2 s = it.next(); if (StartUtils.isArobaseEndDiagram(s)) { - return buildEmptyError(source); + return buildEmptyError(source, s.getLocation()); } - final AbstractPSystem sys = executeLine(s); + final AbstractPSystem sys = executeLine(s.toString2()); if (sys == null) { return new PSystemError(source, new ErrorUml(ErrorUmlType.SYNTAX_ERROR, "Syntax Error?", - it.currentNum() - 1)); + it.currentNum() - 1, s.getLocation()), null); } sys.setSource(source); return sys; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/regex/IRegex.java plantuml-8039/src/net/sourceforge/plantuml/command/regex/IRegex.java --- plantuml-8024/src/net/sourceforge/plantuml/command/regex/IRegex.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/regex/IRegex.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/regex/MatcherIterator.java plantuml-8039/src/net/sourceforge/plantuml/command/regex/MatcherIterator.java --- plantuml-8024/src/net/sourceforge/plantuml/command/regex/MatcherIterator.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/regex/MatcherIterator.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/regex/MyPattern.java plantuml-8039/src/net/sourceforge/plantuml/command/regex/MyPattern.java --- plantuml-8024/src/net/sourceforge/plantuml/command/regex/MyPattern.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/regex/MyPattern.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -92,8 +92,16 @@ return p; } - public static boolean mtches(String input, String regex) { + // public static boolean mtches(String input, String regex) { + // return cmpile(regex).matcher(input).matches(); + // } + // + public static boolean mtches(CharSequence input, String regex) { return cmpile(regex).matcher(input).matches(); } + public static CharSequence removeAll(CharSequence src, String regex) { + return src.toString().replaceAll(transform(regex), ""); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexComposed.java plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexComposed.java --- plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexComposed.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexComposed.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexConcat.java plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexConcat.java --- plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexConcat.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexConcat.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexLeaf.java plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexLeaf.java --- plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexLeaf.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexLeaf.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -55,6 +55,11 @@ this.name = name; } + @Override + public String toString() { + return super.toString() + " " + name + " " + pattern; + } + public String getName() { return name; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexOptional.java plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexOptional.java --- plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexOptional.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexOptional.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexOr.java plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexOr.java --- plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexOr.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexOr.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexPartialMatch.java plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexPartialMatch.java --- plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexPartialMatch.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexPartialMatch.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexResult.java plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexResult.java --- plantuml-8024/src/net/sourceforge/plantuml/command/regex/RegexResult.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/regex/RegexResult.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/SingleLineCommand2.java plantuml-8039/src/net/sourceforge/plantuml/command/SingleLineCommand2.java --- plantuml-8024/src/net/sourceforge/plantuml/command/SingleLineCommand2.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/SingleLineCommand2.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,9 +34,8 @@ */ package net.sourceforge.plantuml.command; -import java.util.List; - import net.sourceforge.plantuml.PSystemError; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.core.Diagram; @@ -60,14 +59,15 @@ return new String[] { pattern.getPattern() }; } - final public CommandControl isValid(List lines) { + final public CommandControl isValid(BlocLines lines) { if (lines.size() != 1) { return CommandControl.NOT_OK; } + lines = lines.removeInnerComments(); if (isCommandForbidden()) { return CommandControl.NOT_OK; } - final String line = lines.get(0).trim(); + final String line = StringUtils.trin(lines.getFirst499()); final boolean result = pattern.match(line); if (result) { actionIfCommandValid(); @@ -82,11 +82,12 @@ protected void actionIfCommandValid() { } - public final CommandExecutionResult execute(S system, List lines) { + public final CommandExecutionResult execute(S system, BlocLines lines) { if (lines.size() != 1) { throw new IllegalArgumentException(); } - final String line = lines.get(0).trim(); + lines = lines.removeInnerComments(); + final String line = StringUtils.trin(lines.getFirst499()); if (isForbidden(line)) { return CommandExecutionResult.error("Forbidden line " + line); } @@ -103,7 +104,7 @@ return executeArg(system, arg); } - protected boolean isForbidden(String line) { + protected boolean isForbidden(CharSequence line) { return false; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/SingleLineCommand.java plantuml-8039/src/net/sourceforge/plantuml/command/SingleLineCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/command/SingleLineCommand.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/SingleLineCommand.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,9 +38,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; import net.sourceforge.plantuml.core.Diagram; -import net.sourceforge.plantuml.StringUtils; public abstract class SingleLineCommand implements Command { @@ -61,14 +61,15 @@ return new String[] { pattern.pattern() }; } - final public CommandControl isValid(List lines) { + final public CommandControl isValid(BlocLines lines) { if (lines.size() != 1) { return CommandControl.NOT_OK; } + lines = lines.removeInnerComments(); if (isCommandForbidden()) { return CommandControl.NOT_OK; } - final String line = lines.get(0).trim(); + final String line = StringUtils.trin(lines.getFirst499()); final Matcher m = pattern.matcher(line); final boolean result = m.find(); if (result) { @@ -84,11 +85,12 @@ protected void actionIfCommandValid() { } - public final CommandExecutionResult execute(S system, List lines) { + public final CommandExecutionResult execute(S system, BlocLines lines) { if (lines.size() != 1) { throw new IllegalArgumentException(); } - final String line = lines.get(0).trim(); + lines = lines.removeInnerComments(); + final String line = StringUtils.trin(lines.getFirst499()); if (isForbidden(line)) { return CommandExecutionResult.error("Forbidden line " + line); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/command/UmlDiagramFactory.java plantuml-8039/src/net/sourceforge/plantuml/command/UmlDiagramFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/command/UmlDiagramFactory.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/command/UmlDiagramFactory.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,10 +40,13 @@ import java.util.List; import net.sourceforge.plantuml.AbstractPSystem; +import net.sourceforge.plantuml.CharSequence2; import net.sourceforge.plantuml.ErrorUml; import net.sourceforge.plantuml.ErrorUmlType; +import net.sourceforge.plantuml.NewpagedDiagram; import net.sourceforge.plantuml.OptionFlags; import net.sourceforge.plantuml.PSystemError; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.classdiagram.command.CommandHideShow; import net.sourceforge.plantuml.classdiagram.command.CommandHideShow3; import net.sourceforge.plantuml.core.Diagram; @@ -53,7 +56,7 @@ import net.sourceforge.plantuml.suggest.SuggestEngineResult; import net.sourceforge.plantuml.suggest.SuggestEngineStatus; import net.sourceforge.plantuml.utils.StartUtils; -import net.sourceforge.plantuml.version.IteratorCounter; +import net.sourceforge.plantuml.version.IteratorCounter2; public abstract class UmlDiagramFactory extends PSystemAbstractFactory { @@ -69,26 +72,25 @@ } final public Diagram createSystem(UmlSource source) { - final IteratorCounter it = source.iterator(); - final String startLine = it.next(); + final IteratorCounter2 it = source.iterator2(); + final CharSequence2 startLine = it.next(); if (StartUtils.isArobaseStartDiagram(startLine) == false) { throw new UnsupportedOperationException(); } if (source.isEmpty()) { - return buildEmptyError(source); + return buildEmptyError(source, startLine.getLocation()); } AbstractPSystem sys = createEmptyDiagram(); while (it.hasNext()) { - final String line = it.next(); - if (StartUtils.isArobaseEndDiagram(line)) { + if (StartUtils.isArobaseEndDiagram(it.peek())) { final String err = checkFinalError(sys); if (err != null) { - return buildEmptyError(source, err); + return buildEmptyError(source, err, it.peek().getLocation()); } if (source.getTotalLineCount() == 2) { - return buildEmptyError(source); + return buildEmptyError(source, it.peek().getLocation()); } if (sys == null) { return null; @@ -100,7 +102,7 @@ sys.setSource(source); return sys; } - sys = executeOneLine(sys, source, it, line); + sys = executeOneLine(sys, source, it); if (sys instanceof PSystemError) { return sys; } @@ -110,11 +112,11 @@ } - private AbstractPSystem executeOneLine(AbstractPSystem sys, UmlSource source, final IteratorCounter it, - final String line) { - final CommandControl commandControl = isValid(Arrays.asList(line)); + private AbstractPSystem executeOneLine(AbstractPSystem sys, UmlSource source, final IteratorCounter2 it) { + final CommandControl commandControl = isValid2(it); if (commandControl == CommandControl.NOT_OK) { - final ErrorUml err = new ErrorUml(ErrorUmlType.SYNTAX_ERROR, "Syntax Error?", it.currentNum() - 1); + final ErrorUml err = new ErrorUml(ErrorUmlType.SYNTAX_ERROR, "Syntax Error?", it.currentNum(), it.peek() + .getLocation()); if (OptionFlags.getInstance().isUseSuggestEngine()) { final SuggestEngine engine = new SuggestEngine(source, this); final SuggestEngineResult result = engine.tryToSuggest(sys); @@ -122,20 +124,23 @@ err.setSuggest(result); } } - sys = new PSystemError(source, err); + sys = new PSystemError(source, err, null); } else if (commandControl == CommandControl.OK_PARTIAL) { - final boolean ok = manageMultiline(sys, line, it); - if (ok == false) { - sys = new PSystemError(source, new ErrorUml(ErrorUmlType.EXECUTION_ERROR, "Syntax Error?", - it.currentNum() - 1)); + final IteratorCounter2 saved = it.cloneMe(); + final CommandExecutionResult result = manageMultiline2(it, sys); + if (result.isOk() == false) { + sys = new PSystemError(source, new ErrorUml(ErrorUmlType.EXECUTION_ERROR, result.getError(), + it.currentNum() - 1, saved.next().getLocation()), null); } } else if (commandControl == CommandControl.OK) { - Command cmd = createCommand(Arrays.asList(line)); - final CommandExecutionResult result = sys.executeCommand(cmd, Arrays.asList(line)); + final CharSequence line = it.next(); + final BlocLines lines = BlocLines.single(line); + Command cmd = getFirstCommandOkForLines(lines); + final CommandExecutionResult result = sys.executeCommand(cmd, lines); if (result.isOk() == false) { sys = new PSystemError(source, new ErrorUml(ErrorUmlType.EXECUTION_ERROR, result.getError(), - it.currentNum() - 1)); + it.currentNum() - 1, ((CharSequence2) line).getLocation()), result.getDebugLines()); } if (result.getNewDiagram() != null) { sys = result.getNewDiagram(); @@ -146,41 +151,78 @@ return sys; } - private boolean manageMultiline(AbstractPSystem system, final String init, IteratorCounter it) { - final List lines = new ArrayList(); - addOneSingleLineManageEmbedded(lines, init, it); - while (it.hasNext()) { - final String s = it.next(); - if (StartUtils.isArobaseEndDiagram(s)) { - return false; + public CommandControl isValid2(final IteratorCounter2 it) { + final BlocLines lines = BlocLines.single(it.peek()); + for (Command cmd : cmds) { + final CommandControl result = cmd.isValid(lines); + if (result == CommandControl.OK) { + return result; } - addOneSingleLineManageEmbedded(lines, s, it); - final CommandControl commandControl = isValid(lines); - if (commandControl == CommandControl.NOT_OK) { - // throw new IllegalStateException(); - return false; + if (result == CommandControl.OK_PARTIAL && isMultilineCommandOk(it.cloneMe(), cmd) != null) { + return result; } - if (commandControl == CommandControl.OK) { - final Command cmd = createCommand(lines); - final CommandExecutionResult result = system.executeCommand(cmd, lines); - return result.isOk(); + } + return CommandControl.NOT_OK; + } + + public CommandControl goForwardMultiline(final IteratorCounter2 it) { + final BlocLines lines = BlocLines.single(it.peek()); + for (Command cmd : cmds) { + final CommandControl result = cmd.isValid(lines); + if (result == CommandControl.OK) { + throw new IllegalStateException(); + } + if (result == CommandControl.OK_PARTIAL && isMultilineCommandOk(it, cmd) != null) { + return result; } } - return false; + return CommandControl.NOT_OK; + // throw new IllegalStateException(); + } + private CommandExecutionResult manageMultiline2(IteratorCounter2 it, AbstractPSystem system) { + for (Command cmd : cmds) { + if (isMultilineCommandOk(it.cloneMe(), cmd) != null) { + final BlocLines lines = isMultilineCommandOk(it, cmd); + if (system instanceof NewpagedDiagram) { + final NewpagedDiagram newpagedDiagram = (NewpagedDiagram) system; + return cmd.execute(newpagedDiagram.getLastDiagram(), lines); + + } + return cmd.execute(system, lines); + } + } + return CommandExecutionResult.ok(); + } + + private BlocLines isMultilineCommandOk(IteratorCounter2 it, Command cmd) { + BlocLines lines = new BlocLines(); + while (it.hasNext()) { + lines = addOneSingleLineManageEmbedded2(it, lines); + final CommandControl result = cmd.isValid(lines); + if (result == CommandControl.NOT_OK) { + return null; + } + if (result == CommandControl.OK) { + return lines; + } + } + return null; } - private void addOneSingleLineManageEmbedded(final List lines, final String linetoBeAdded, IteratorCounter it) { - lines.add(linetoBeAdded); - if (linetoBeAdded.trim().equals("{{")) { + private BlocLines addOneSingleLineManageEmbedded2(IteratorCounter2 it, BlocLines lines) { + final CharSequence linetoBeAdded = it.next(); + lines = lines.add2(linetoBeAdded); + if (StringUtils.trinNoTrace(linetoBeAdded).equals("{{")) { while (it.hasNext()) { - final String s = it.next(); - lines.add(s); - if (s.trim().equals("}}")) { - return; + final CharSequence s = it.next(); + lines = lines.add2(s); + if (StringUtils.trinNoTrace(s).equals("}}")) { + return lines; } } } + return lines; } // ----------------------------------- @@ -189,10 +231,13 @@ return null; } - final public CommandControl isValid(List lines) { + final public CommandControl isValid(BlocLines lines) { for (Command cmd : cmds) { final CommandControl result = cmd.isValid(lines); - if (result == CommandControl.OK || result == CommandControl.OK_PARTIAL) { + if (result == CommandControl.OK) { + return result; + } + if (result == CommandControl.OK_PARTIAL) { return result; } } @@ -200,13 +245,11 @@ } - final public Command createCommand(List lines) { + private Command getFirstCommandOkForLines(BlocLines lines) { for (Command cmd : cmds) { final CommandControl result = cmd.isValid(lines); if (result == CommandControl.OK) { return cmd; - } else if (result == CommandControl.OK_PARTIAL) { - throw new IllegalArgumentException(); } } throw new IllegalArgumentException(); @@ -222,6 +265,7 @@ cmds.add(new CommandMultilinesComment()); cmds.add(new CommandPragma()); cmds.add(new CommandTitle()); + cmds.add(new CommandCaption()); cmds.add(new CommandMultilinesTitle()); cmds.add(new CommandMultilinesLegend()); @@ -238,18 +282,20 @@ cmds.add(new CommandScale()); cmds.add(new CommandScaleWidthAndHeight()); cmds.add(new CommandScaleWidthOrHeight()); + cmds.add(new CommandScaleMaxWidth()); + cmds.add(new CommandScaleMaxHeight()); + cmds.add(new CommandScaleMaxWidthAndHeight()); cmds.add(new CommandAffineTransform()); cmds.add(new CommandAffineTransformMultiline()); cmds.add(new CommandHideUnlinked()); final FactorySpriteCommand factorySpriteCommand = new FactorySpriteCommand(); - cmds.add(factorySpriteCommand.createMultiLine()); + cmds.add(factorySpriteCommand.createMultiLine(false)); cmds.add(factorySpriteCommand.createSingleLine()); cmds.add(new CommandSpriteFile()); - + cmds.add(new CommandHideShow3()); cmds.add(new CommandHideShow()); - } final public List getDescription() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/compositediagram/command/CommandCreateBlock.java plantuml-8039/src/net/sourceforge/plantuml/compositediagram/command/CommandCreateBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/compositediagram/command/CommandCreateBlock.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/compositediagram/command/CommandCreateBlock.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/compositediagram/command/CommandCreatePackageBlock.java plantuml-8039/src/net/sourceforge/plantuml/compositediagram/command/CommandCreatePackageBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/compositediagram/command/CommandCreatePackageBlock.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/compositediagram/command/CommandCreatePackageBlock.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/compositediagram/command/CommandEndPackageBlock.java plantuml-8039/src/net/sourceforge/plantuml/compositediagram/command/CommandEndPackageBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/compositediagram/command/CommandEndPackageBlock.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/compositediagram/command/CommandEndPackageBlock.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/compositediagram/command/CommandLinkBlock.java plantuml-8039/src/net/sourceforge/plantuml/compositediagram/command/CommandLinkBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/compositediagram/command/CommandLinkBlock.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/compositediagram/command/CommandLinkBlock.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/compositediagram/CompositeDiagramFactory.java plantuml-8039/src/net/sourceforge/plantuml/compositediagram/CompositeDiagramFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/compositediagram/CompositeDiagramFactory.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/compositediagram/CompositeDiagramFactory.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/compositediagram/CompositeDiagram.java plantuml-8039/src/net/sourceforge/plantuml/compositediagram/CompositeDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/compositediagram/CompositeDiagram.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/compositediagram/CompositeDiagram.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/core/DiagramDescriptionImpl.java plantuml-8039/src/net/sourceforge/plantuml/core/DiagramDescriptionImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/core/DiagramDescriptionImpl.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/core/DiagramDescriptionImpl.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/core/DiagramDescription.java plantuml-8039/src/net/sourceforge/plantuml/core/DiagramDescription.java --- plantuml-8024/src/net/sourceforge/plantuml/core/DiagramDescription.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/core/DiagramDescription.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/core/Diagram.java plantuml-8039/src/net/sourceforge/plantuml/core/Diagram.java --- plantuml-8024/src/net/sourceforge/plantuml/core/Diagram.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/core/Diagram.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/core/DiagramType.java plantuml-8039/src/net/sourceforge/plantuml/core/DiagramType.java --- plantuml-8024/src/net/sourceforge/plantuml/core/DiagramType.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/core/DiagramType.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,6 +38,7 @@ UML, DITAA, DOT, PROJECT, JCCKIT, SALT, TURING, FLOW, CREOLE, JUNGLE, CUTE, UNKNOWN; static public DiagramType getTypeFromArobaseStart(String s) { + s = s.toLowerCase(); // if (s.startsWith("@startuml2")) { // return UML2; // } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/core/ImageData.java plantuml-8039/src/net/sourceforge/plantuml/core/ImageData.java --- plantuml-8024/src/net/sourceforge/plantuml/core/ImageData.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/core/ImageData.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/core/UmlSource.java plantuml-8039/src/net/sourceforge/plantuml/core/UmlSource.java --- plantuml-8024/src/net/sourceforge/plantuml/core/UmlSource.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/core/UmlSource.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,16 +40,18 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.CharSequence2; +import net.sourceforge.plantuml.CharSequence2Impl; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.utils.StartUtils; -import net.sourceforge.plantuml.StringUtils; -import net.sourceforge.plantuml.version.IteratorCounter; -import net.sourceforge.plantuml.version.IteratorCounterImpl; +import net.sourceforge.plantuml.version.IteratorCounter2; +import net.sourceforge.plantuml.version.IteratorCounter2Impl; /** - * Represents the textual source of some diagram. - * The source should start with a @startfoo and end with @endfoo. + * Represents the textual source of some diagram. The source should start with a @startfoo and end with + * @endfoo. *

* So the diagram does not have to be a UML one. * @@ -59,42 +61,45 @@ final public class UmlSource { final private List source; + final private List source2; /** * Build the source from a text. * - * @param source the source of the diagram - * @param checkEndingBackslash true if an ending backslash means that a line has - * to be collapsed with the following one. + * @param source + * the source of the diagram + * @param checkEndingBackslash + * true if an ending backslash means that a line has to be collapsed with the following one. */ - public UmlSource(List source, boolean checkEndingBackslash) { + public UmlSource(List source, boolean checkEndingBackslash) { final List tmp = new ArrayList(); - // final DiagramType type = - // DiagramType.getTypeFromArobaseStart(source.get(0).toString()); + final List tmp2 = new ArrayList(); + if (checkEndingBackslash) { final StringBuilder pending = new StringBuilder(); - for (CharSequence cs : source) { - final String s = cs.toString(); + for (CharSequence2 cs : source) { + final String s = cs.toString2(); if (StringUtils.endsWithBackslash(s)) { pending.append(s.substring(0, s.length() - 1)); } else { pending.append(s); tmp.add(pending.toString()); + tmp2.add(new CharSequence2Impl(pending.toString(), cs.getLocation())); pending.setLength(0); } } } else { - for (CharSequence s : source) { - tmp.add(s.toString()); + for (CharSequence2 s : source) { + tmp.add(s.toString2()); + tmp2.add(s); } } this.source = Collections.unmodifiableList(tmp); + this.source2 = Collections.unmodifiableList(tmp2); } - /** - * Retrieve the type of the diagram. - * This is based on the first line @startfoo. + * Retrieve the type of the diagram. This is based on the first line @startfoo. * * @return the type of the diagram. */ @@ -107,8 +112,8 @@ * * @return a iterator that allow counting line number. */ - public IteratorCounter iterator() { - return new IteratorCounterImpl(source.iterator()); + public IteratorCounter2 iterator2() { + return new IteratorCounter2Impl(source2); } /** @@ -129,7 +134,8 @@ /** * Return a specific line of the diagram description. * - * @param n line number, starting at 0 + * @param n + * line number, starting at 0 * @return */ public String getLine(int n) { @@ -146,8 +152,7 @@ } /** - * Check if a source diagram description is empty. - * Does not take comment line into account. + * Check if a source diagram description is empty. Does not take comment line into account. * * @return true if the diagram does not contain information. */ @@ -162,7 +167,7 @@ if (s.matches("\\s*'.*")) { continue; } - if (s.trim().length() != 0) { + if (StringUtils.trin(s).length() != 0) { return false; } } @@ -170,8 +175,8 @@ } /** - * Retrieve the title, if defined in the diagram source. - * Never return null. + * Retrieve the title, if defined in the diagram source. Never return null. + * * @return */ public Display getTitle() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/CounterOutputStream.java plantuml-8039/src/net/sourceforge/plantuml/CounterOutputStream.java --- plantuml-8024/src/net/sourceforge/plantuml/CounterOutputStream.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/CounterOutputStream.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/AtomEmbededSystem.java plantuml-8039/src/net/sourceforge/plantuml/creole/AtomEmbededSystem.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/AtomEmbededSystem.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/AtomEmbededSystem.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,6 +44,7 @@ import javax.imageio.ImageIO; import net.sourceforge.plantuml.BlockUml; +import net.sourceforge.plantuml.CharSequence2; import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.EmbededDiagram; import net.sourceforge.plantuml.FileFormat; @@ -56,10 +57,10 @@ class AtomEmbededSystem implements Atom { - final private List lines; + final private List lines2; public AtomEmbededSystem(EmbededDiagram sys) { - this.lines = sys.getLines().as(); + this.lines2 = sys.getLines().as2(); } public double getStartingAltitude(StringBounder stringBounder) { @@ -107,8 +108,8 @@ // } // private Diagram getSystem() throws IOException, InterruptedException { - final BlockUml blockUml = new BlockUml(lines, 0); + final BlockUml blockUml = new BlockUml(lines2, 0); return blockUml.getDiagram(); - } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/AtomImg.java plantuml-8039/src/net/sourceforge/plantuml/creole/AtomImg.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/AtomImg.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/AtomImg.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -49,8 +49,8 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.FileSystem; +import net.sourceforge.plantuml.code.Base64Coder; import net.sourceforge.plantuml.graphic.FontConfiguration; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.ImgValign; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.UFont; @@ -59,26 +59,36 @@ public class AtomImg implements Atom { + private static final String DATA_IMAGE_PNG_BASE64 = "data:image/png;base64,"; private final BufferedImage image; + private final double scale; - private AtomImg(BufferedImage image) { + private AtomImg(BufferedImage image, double scale) { this.image = image; + this.scale = scale; } - public static Atom create(String src, final ImgValign valign, final int vspace) { + public static Atom create(String src, final ImgValign valign, final int vspace, final double scale) { final UFont font = new UFont("Monospaced", Font.PLAIN, 14); - final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); + final FontConfiguration fc = FontConfiguration.blackBlueTrue(font); + + if (src.startsWith(DATA_IMAGE_PNG_BASE64)) { + final String data = src.substring(DATA_IMAGE_PNG_BASE64.length(), src.length()); + try { + final byte bytes[] = Base64Coder.decode(data); + return build(src, fc, bytes, scale); + } catch (Exception e) { + return AtomText.create("ERROR " + e.toString(), fc); + } + + } try { final File f = FileSystem.getInstance().getFile(src); if (f.exists() == false) { // Check if valid URL if (src.startsWith("http:") || src.startsWith("https:")) { final byte image[] = getFile(src); - final BufferedImage read = ImageIO.read(new ByteArrayInputStream(image)); - if (read == null) { - return AtomText.create("(Cannot decode: " + src + ")", fc); - } - return new AtomImg(read); + return build(src, fc, image, scale); } return AtomText.create("(File not found: " + f + ")", fc); } @@ -90,12 +100,21 @@ if (read == null) { return AtomText.create("(Cannot decode: " + f + ")", fc); } - return new AtomImg(ImageIO.read(f)); + return new AtomImg(ImageIO.read(f), scale); } catch (IOException e) { return AtomText.create("ERROR " + e.toString(), fc); } } + private static Atom build(String source, final FontConfiguration fc, final byte[] data, double scale) + throws IOException { + final BufferedImage read = ImageIO.read(new ByteArrayInputStream(data)); + if (read == null) { + return AtomText.create("(Cannot decode: " + source + ")", fc); + } + return new AtomImg(read, scale); + } + // Added by Alain Corbiere static byte[] getFile(String host) throws IOException { final ByteArrayOutputStream image = new ByteArrayOutputStream(); @@ -121,7 +140,7 @@ // End public Dimension2D calculateDimension(StringBounder stringBounder) { - return new Dimension2DDouble(image.getWidth(), image.getHeight()); + return new Dimension2DDouble(image.getWidth() * scale, image.getHeight() * scale); } public double getStartingAltitude(StringBounder stringBounder) { @@ -130,7 +149,7 @@ public void drawU(UGraphic ug) { // final double h = calculateDimension(ug.getStringBounder()).getHeight(); - ug.draw(new UImage(image)); + ug.draw(new UImage(image, scale)); // tileImage.drawU(ug.apply(new UTranslate(0, -h))); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/Atom.java plantuml-8039/src/net/sourceforge/plantuml/creole/Atom.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/Atom.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/Atom.java 2016-04-22 16:26:21.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -47,5 +47,5 @@ public double getStartingAltitude(StringBounder stringBounder); public void drawU(UGraphic ug); - + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/AtomOpenIcon.java plantuml-8039/src/net/sourceforge/plantuml/creole/AtomOpenIcon.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/AtomOpenIcon.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/AtomOpenIcon.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -70,5 +70,5 @@ public void drawU(UGraphic ug) { asTextBlock().drawU(ug); } - + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/AtomSpace.java plantuml-8039/src/net/sourceforge/plantuml/creole/AtomSpace.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/AtomSpace.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/AtomSpace.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/AtomSprite.java plantuml-8039/src/net/sourceforge/plantuml/creole/AtomSprite.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/AtomSprite.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/AtomSprite.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -62,5 +62,5 @@ public void drawU(UGraphic ug) { sprite.drawU(ug); } - + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/AtomTable.java plantuml-8039/src/net/sourceforge/plantuml/creole/AtomTable.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/AtomTable.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/AtomTable.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,18 +43,27 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.ULine; +import net.sourceforge.plantuml.ugraphic.URectangle; import net.sourceforge.plantuml.ugraphic.UTranslate; public class AtomTable implements Atom { class Line { private final List cells = new ArrayList(); + private final List cellsBackColor = new ArrayList(); + private final HtmlColor lineBackColor; - public void add(Atom cell) { + private Line(HtmlColor lineBackColor) { + this.lineBackColor = lineBackColor; + } + + public void add(Atom cell, HtmlColor cellBackColor) { cells.add(cell); + cellsBackColor.add(cellBackColor); } public int size() { @@ -88,8 +97,27 @@ public void drawU(UGraphic ug) { initMap(ug.getStringBounder()); - for (Line line : lines) { - for (Atom cell : line.cells) { + for (int i = 0; i < getNbLines(); i++) { + final Line line = lines.get(i); + if (line.lineBackColor != null) { + final double y1 = getStartingY(i); + final double y2 = getStartingY(i + 1); + final double x1 = getStartingX(0); + final double x2 = getStartingX(getNbCols()); + ug.apply(new UChangeColor(null)).apply(new UChangeBackColor(line.lineBackColor)) + .apply(new UTranslate(x1, y1)).draw(new URectangle(x2 - x1, y2 - y1)); + } + for (int j = 0; j < getNbCols(); j++) { + final Atom cell = line.cells.get(j); + final HtmlColor cellBackColor = line.cellsBackColor.get(j); + if (cellBackColor != null) { + final double y1 = getStartingY(i); + final double y2 = getStartingY(i + 1); + final double x1 = getStartingX(j); + final double x2 = getStartingX(j + 1); + ug.apply(new UChangeColor(null)).apply(new UChangeBackColor(cellBackColor)) + .apply(new UTranslate(x1, y1)).draw(new URectangle(x2 - x1, y2 - y1)); + } final Position pos = positions.get(cell); cell.drawU(ug.apply(pos.getTranslate())); } @@ -164,7 +192,11 @@ private double getColWidth(int col) { double result = 0; for (int i = 0; i < getNbLines(); i++) { - final double width = getPosition(i, col).getWidth(); + final Position position = getPosition(i, col); + if (position == null) { + continue; + } + final double width = position.getWidth(); result = Math.max(result, width); } return result; @@ -173,14 +205,24 @@ private double getLineHeight(int line) { double result = 0; for (int i = 0; i < getNbCols(); i++) { - final double height = getPosition(line, i).getHeight(); + final Position position = getPosition(line, i); + if (position == null) { + continue; + } + final double height = position.getHeight(); result = Math.max(result, height); } return result; } private Position getPosition(int line, int col) { + if (line >= lines.size()) { + return null; + } final Line l = lines.get(line); + if (col >= l.cells.size()) { + return null; + } final Atom atom = l.cells.get(col); return positions.get(atom); } @@ -197,13 +239,12 @@ return lines.get(lines.size() - 1); } - public void addCell(Atom cell) { - lastLine().add(cell); + public void addCell(Atom cell, HtmlColor cellBackColor) { + lastLine().add(cell, cellBackColor); positions.clear(); } - public void newLine() { - lines.add(new Line()); + public void newLine(HtmlColor lineBackColor) { + lines.add(new Line(lineBackColor)); } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/AtomText.java plantuml-8039/src/net/sourceforge/plantuml/creole/AtomText.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/AtomText.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/AtomText.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -118,8 +118,9 @@ private AtomText(String text, FontConfiguration style, Url url, DelayedDouble marginLeft, DelayedDouble marginRight) { this.marginLeft = marginLeft; this.marginRight = marginRight; - //this.text = StringUtils.showComparatorCharacters(StringUtils.manageBackslash(text)); - this.text = StringUtils.showComparatorCharacters(CharHidder.unhide(text)); + // this.text = StringUtils.showComparatorCharacters(StringUtils.manageBackslash(text)); + this.text = StringUtils.manageTildeArobaseStart(StringUtils.manageUnicodeNotationUplus(StringUtils + .manageAmpDiese(StringUtils.showComparatorCharacters(CharHidder.unhide(text))))); this.fontConfiguration = style; this.url = url; } @@ -158,7 +159,15 @@ } private double getTabSize(StringBounder stringBounder) { - return stringBounder.calculateDimension(fontConfiguration.getFont(), " ").getWidth(); + return stringBounder.calculateDimension(fontConfiguration.getFont(), tabString()).getWidth(); + } + + private String tabString() { + final int nb = fontConfiguration.getTabSize(); + if (nb >= 1 && nb < 7) { + return " ".substring(0, nb); + } + return " "; } public void drawU(UGraphic ug) { @@ -247,4 +256,5 @@ public final String getText() { return text; } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/AtomTree.java plantuml-8039/src/net/sourceforge/plantuml/creole/AtomTree.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/AtomTree.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/AtomTree.java 2016-04-22 16:26:22.000000000 +0000 @@ -0,0 +1,103 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.creole; + +import java.awt.geom.Dimension2D; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.salt.element.Skeleton2; +import net.sourceforge.plantuml.ugraphic.UChangeColor; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class AtomTree implements Atom { + + private final HtmlColor lineColor; + private final List cells = new ArrayList(); + private final Map levels = new HashMap(); + private final double margin = 2; + + public AtomTree(HtmlColor lineColor) { + this.lineColor = lineColor; + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + final Skeleton2 skeleton = new Skeleton2(); + double width = 0; + double height = 0; + for (Atom cell : cells) { + final Dimension2D dim = cell.calculateDimension(stringBounder); + height += dim.getHeight(); + final int level = getLevel(cell); + width = Math.max(width, skeleton.getXEndForLevel(level) + margin + dim.getWidth()); + } + return new Dimension2DDouble(width, height); + } + + public double getStartingAltitude(StringBounder stringBounder) { + return 0; + } + + public void drawU(final UGraphic ugInit) { + final Skeleton2 skeleton = new Skeleton2(); + double y = 0; + UGraphic ug = ugInit; + for (Atom cell : cells) { + final int level = getLevel(cell); + cell.drawU(ug.apply(new UTranslate(margin + skeleton.getXEndForLevel(level), 0))); + final Dimension2D dim = cell.calculateDimension(ug.getStringBounder()); + skeleton.add(level, y + dim.getHeight() / 2); + ug = ug.apply(new UTranslate(0, dim.getHeight())); + y += dim.getHeight(); + } + skeleton.draw(ugInit.apply(new UChangeColor(this.lineColor))); + } + + private int getLevel(Atom atom) { + return levels.get(atom); + } + + public void addCell(Atom cell, int level) { + this.cells.add(cell); + this.levels.put(cell, level); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/AtomWithMargin.java plantuml-8039/src/net/sourceforge/plantuml/creole/AtomWithMargin.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/AtomWithMargin.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/AtomWithMargin.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -64,5 +64,5 @@ public void drawU(UGraphic ug) { atom.drawU(ug.apply(new UTranslate(0, marginY1))); } - + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/Bullet.java plantuml-8039/src/net/sourceforge/plantuml/creole/Bullet.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/Bullet.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/Bullet.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -105,6 +105,6 @@ private Dimension2D calculateDimension1(StringBounder stringBounder) { return new Dimension2DDouble(getWidth(stringBounder), 3); } - + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleColorAndSizeChange.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleColorAndSizeChange.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleColorAndSizeChange.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleColorAndSizeChange.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleColorChange.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleColorChange.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleColorChange.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleColorChange.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleExposantChange.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleExposantChange.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleExposantChange.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleExposantChange.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleFontFamilyChange.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleFontFamilyChange.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleFontFamilyChange.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleFontFamilyChange.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleImg.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleImg.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleImg.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleImg.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; import net.sourceforge.plantuml.graphic.Splitter; @@ -65,15 +66,26 @@ if (m.find() == false) { throw new IllegalStateException(); } - // final int size = Integer.parseInt(m.group(2)); - // final FontConfiguration fc1 = stripe.getActualFontConfiguration(); - // final FontConfiguration fc2 = fc1.changeSize(size); - // stripe.setActualFontConfiguration(fc2); - // stripe.analyzeAndAdd(m.group(3)); - final String src = m.group(2); - stripe.addImage(src); - // stripe.setActualFontConfiguration(fc1); + String src = m.group(2); + final double scale = getScale(m.group(3)); + if (src.toLowerCase().startsWith("src=")) { + src = src.substring(4); + } + src = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(src, "\""); + stripe.addImage(src, scale); return line.substring(m.group(1).length()); } + public static double getScale(String s) { + if (s == null) { + return 1; + } + final Pattern p = Pattern.compile("scale=([0-9.]+)"); + final Matcher m = p.matcher(s); + if (m.find()) { + return Double.parseDouble(m.group(1)); + } + return 1; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleMonospaced.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleMonospaced.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleMonospaced.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleMonospaced.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,14 +42,18 @@ public class CommandCreoleMonospaced implements Command { + public static final String MONOSPACED = "monospaced"; + private final Pattern pattern; + private final String monospacedFamily; - public static Command create() { - return new CommandCreoleMonospaced("^(?i)([%g][%g](.*?)[%g][%g])"); + public static Command create(String monospacedFamily) { + return new CommandCreoleMonospaced("^(?i)([%g][%g](.*?)[%g][%g])", monospacedFamily); } - private CommandCreoleMonospaced(String p) { + private CommandCreoleMonospaced(String p, String monospacedFamily) { this.pattern = MyPattern.cmpile(p); + this.monospacedFamily = monospacedFamily; } public int matchingSize(String line) { @@ -66,7 +70,7 @@ throw new IllegalStateException(); } final FontConfiguration fc1 = stripe.getActualFontConfiguration(); - final FontConfiguration fc2 = fc1.changeFamily("monospaced"); + final FontConfiguration fc2 = fc1.changeFamily(monospacedFamily); stripe.setActualFontConfiguration(fc2); stripe.analyzeAndAdd(m.group(2)); stripe.setActualFontConfiguration(fc1); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleOpenIcon.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleOpenIcon.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleOpenIcon.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleOpenIcon.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleSizeChange.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleSizeChange.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleSizeChange.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleSizeChange.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleSpace.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleSpace.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleSpace.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleSpace.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleSprite.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleSprite.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleSprite.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleSprite.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -66,7 +66,8 @@ throw new IllegalStateException(); } final String src = m.group(2); - stripe.addSprite(src); + final double scale = CommandCreoleImg.getScale(m.group(3)); + stripe.addSprite(src, scale); return line.substring(m.group(1).length()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleStyle.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleStyle.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleStyle.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleStyle.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleSvgAttributeChange.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleSvgAttributeChange.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleSvgAttributeChange.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleSvgAttributeChange.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleUrl.java plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleUrl.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CommandCreoleUrl.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CommandCreoleUrl.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/Command.java plantuml-8039/src/net/sourceforge/plantuml/creole/Command.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/Command.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/Command.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CreoleContext.java plantuml-8039/src/net/sourceforge/plantuml/creole/CreoleContext.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CreoleContext.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CreoleContext.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CreoleHorizontalLine.java plantuml-8039/src/net/sourceforge/plantuml/creole/CreoleHorizontalLine.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CreoleHorizontalLine.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CreoleHorizontalLine.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -79,7 +79,7 @@ if (line.length() == 0) { return TextBlockUtils.empty(0, 0); } - final CreoleParser parser = new CreoleParser(fontConfiguration, HorizontalAlignment.LEFT, skinParam, false); + final CreoleParser parser = new CreoleParser(fontConfiguration, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL); final Sheet sheet = parser.createSheet(Display.getWithNewlines(line)); final TextBlock tb = new SheetBlock1(sheet, 0, skinParam.getPadding()); return tb; @@ -103,5 +103,5 @@ public double getStartingAltitude(StringBounder stringBounder) { return 0; } - + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CreoleMode.java plantuml-8039/src/net/sourceforge/plantuml/creole/CreoleMode.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CreoleMode.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CreoleMode.java 2016-04-22 16:26:22.000000000 +0000 @@ -0,0 +1,40 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.creole; + +public enum CreoleMode { + FULL, SIMPLE_LINE; + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CreoleParser.java plantuml-8039/src/net/sourceforge/plantuml/creole/CreoleParser.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CreoleParser.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CreoleParser.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import net.sourceforge.plantuml.EmbededDiagram; import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; @@ -48,30 +49,53 @@ private final FontConfiguration fontConfiguration; private final ISkinSimple skinParam; private final HorizontalAlignment horizontalAlignment; - private final boolean modeSimpleLine; + private final CreoleMode modeSimpleLine; public CreoleParser(FontConfiguration fontConfiguration, HorizontalAlignment horizontalAlignment, - ISkinSimple skinParam, boolean modeSimpleLine) { + ISkinSimple skinParam, CreoleMode modeSimpleLine) { this.modeSimpleLine = modeSimpleLine; this.fontConfiguration = fontConfiguration; this.skinParam = skinParam; + if (skinParam == null) { + throw new IllegalArgumentException(); + } this.horizontalAlignment = horizontalAlignment; } private Stripe createStripe(String line, CreoleContext context, Stripe lastStripe) { - if (lastStripe instanceof StripeTable && line.startsWith("|") && line.endsWith("|")) { + if (lastStripe instanceof StripeTable && isTableLine(line)) { final StripeTable table = (StripeTable) lastStripe; table.analyzeAndAddNormal(line); return null; - } else if (line.startsWith("|=") && line.endsWith("|")) { + } else if (lastStripe instanceof StripeTree && isTreeStart(StringUtils.trinNoTrace(line))) { + final StripeTree tree = (StripeTree) lastStripe; + tree.analyzeAndAdd(line); + return null; + } else if (isTableLine(line)) { return new StripeTable(fontConfiguration, skinParam, line); + } else if (isTreeStart(line)) { + return new StripeTree(fontConfiguration, skinParam, line); } - return new CreoleStripeSimpleParser(line, context, fontConfiguration, skinParam, modeSimpleLine).createStripe(context); + return new CreoleStripeSimpleParser(line, context, fontConfiguration, skinParam, modeSimpleLine) + .createStripe(context); + } + + private static boolean isTableLine(String line) { + return line.matches("^(\\<#\\w+\\>)?\\|(\\=)?.*\\|$"); + } + + public static boolean doesStartByColor(String line) { + return line.matches("^(\\<#\\w+\\>).*"); + } + + public static boolean isTreeStart(String line) { + // return false; + return line.startsWith("|_"); } public Sheet createSheet(Display display) { final Sheet sheet = new Sheet(horizontalAlignment); - if (display != null) { + if (Display.isNull(display) == false) { final CreoleContext context = new CreoleContext(); for (CharSequence cs : display) { final Stripe stripe; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/CreoleStripeSimpleParser.java plantuml-8039/src/net/sourceforge/plantuml/creole/CreoleStripeSimpleParser.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/CreoleStripeSimpleParser.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/CreoleStripeSimpleParser.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,6 +38,7 @@ import java.util.regex.Pattern; import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.utils.CharHidder; @@ -46,16 +47,19 @@ final private String line; final private StripeStyle style; - private final boolean modeSimpleLine; + private final CreoleMode modeSimpleLine; private final FontConfiguration fontConfiguration; private final ISkinSimple skinParam; public CreoleStripeSimpleParser(String line, CreoleContext creoleContext, FontConfiguration fontConfiguration, - ISkinSimple skinParam, boolean modeSimpleLine) { + ISkinSimple skinParam, CreoleMode modeSimpleLine) { this.fontConfiguration = fontConfiguration; this.modeSimpleLine = modeSimpleLine; this.skinParam = skinParam; + if (skinParam == null) { + throw new IllegalArgumentException(); + } final Pattern p4 = MyPattern.cmpile("^--([^-]*)--$"); final Matcher m4 = p4.matcher(line); @@ -80,15 +84,15 @@ return; } - if (modeSimpleLine == false) { - final Pattern p6 = MyPattern.cmpile("^__([^_]*)__$"); - final Matcher m6 = p6.matcher(line); - if (m6.find()) { - this.line = m6.group(1); - this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '_'); - return; - } - } + // if (modeSimpleLine == CreoleMode.FULL) { + // final Pattern p6 = MyPattern.cmpile("^__([^_]*)__$"); + // final Matcher m6 = p6.matcher(line); + // if (m6.find()) { + // this.line = m6.group(1); + // this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '_'); + // return; + // } + // } final Pattern p7 = MyPattern.cmpile("^\\.\\.([^\\.]*)\\.\\.$"); final Matcher m7 = p7.matcher(line); @@ -98,22 +102,22 @@ return; } - if (modeSimpleLine == false) { + if (modeSimpleLine == CreoleMode.FULL) { final Pattern p1 = MyPattern.cmpile("^(\\*+)([^*]+(?:[^*]|\\*\\*[^*]+\\*\\*)*)$"); final Matcher m1 = p1.matcher(line); if (m1.find()) { - this.line = m1.group(2).trim(); + this.line = StringUtils.trin(m1.group(2)); final int order = m1.group(1).length() - 1; this.style = new StripeStyle(StripeStyleType.LIST_WITHOUT_NUMBER, order, '\0'); return; } } - if (modeSimpleLine == false) { + if (modeSimpleLine == CreoleMode.FULL) { final Pattern p2 = MyPattern.cmpile("^(#+)(.+)$"); final Matcher m2 = p2.matcher(CharHidder.hide(line)); if (m2.find()) { - this.line = CharHidder.unhide(m2.group(2)).trim(); + this.line = StringUtils.trin(CharHidder.unhide(m2.group(2))); final int order = CharHidder.unhide(m2.group(1)).length() - 1; this.style = new StripeStyle(StripeStyleType.LIST_WITH_NUMBER, order, '\0'); return; @@ -123,7 +127,7 @@ final Pattern p3 = MyPattern.cmpile("^(=+)(.+)$"); final Matcher m3 = p3.matcher(line); if (m3.find()) { - this.line = m3.group(2).trim(); + this.line = StringUtils.trin(m3.group(2)); final int order = m3.group(1).length() - 1; this.style = new StripeStyle(StripeStyleType.HEADING, order, '\0'); return; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/Fission.java plantuml-8039/src/net/sourceforge/plantuml/creole/Fission.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/Fission.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/Fission.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/Position.java plantuml-8039/src/net/sourceforge/plantuml/creole/Position.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/Position.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/Position.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/PSystemCreoleFactory.java plantuml-8039/src/net/sourceforge/plantuml/creole/PSystemCreoleFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/PSystemCreoleFactory.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/PSystemCreoleFactory.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/PSystemCreole.java plantuml-8039/src/net/sourceforge/plantuml/creole/PSystemCreole.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/PSystemCreole.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/PSystemCreole.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -48,7 +48,6 @@ import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.ugraphic.ColorMapperIdentity; import net.sourceforge.plantuml.ugraphic.ImageBuilder; import net.sourceforge.plantuml.ugraphic.UFont; @@ -71,15 +70,15 @@ public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException { final Display display = Display.create(lines); final UFont font = new UFont("Serif", Font.PLAIN, 14); - final FontConfiguration fontConfiguration = new FontConfiguration(font, HtmlColorUtils.BLACK, - HtmlColorUtils.BLUE, true); - final Sheet sheet = new CreoleParser(fontConfiguration, HorizontalAlignment.LEFT, null, false) + final FontConfiguration fontConfiguration = FontConfiguration.blackBlueTrue(font); + final Sheet sheet = new CreoleParser(fontConfiguration, HorizontalAlignment.LEFT, null, CreoleMode.FULL) .createSheet(display); final SheetBlock1 sheetBlock = new SheetBlock1(sheet, 0, 0); - final ImageBuilder builder = new ImageBuilder(new ColorMapperIdentity(), 1.0, null, null, null, 0, 0, null, false); - builder.addUDrawable(sheetBlock); - return builder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + final ImageBuilder builder = new ImageBuilder(new ColorMapperIdentity(), 1.0, null, null, null, 0, 0, null, + false); + builder.setUDrawable(sheetBlock); + return builder.writeImageTOBEMOVED(fileFormat, os); // final Dimension2D dim = TextBlockUtils.getDimension(sheetBlock); // final UGraphic2 ug = fileFormat.createUGraphic(new ColorMapperIdentity(), 1, dim, null, false); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/Sea.java plantuml-8039/src/net/sourceforge/plantuml/creole/Sea.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/Sea.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/Sea.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/SheetBlock1.java plantuml-8039/src/net/sourceforge/plantuml/creole/SheetBlock1.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/SheetBlock1.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/SheetBlock1.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,12 +35,14 @@ package net.sourceforge.plantuml.creole; import java.awt.geom.Dimension2D; +import java.awt.geom.Rectangle2D; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; @@ -48,7 +50,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class SheetBlock1 implements TextBlock, Atom, Stencil { +public class SheetBlock1 extends AbstractTextBlock implements TextBlock, Atom, Stencil { private final Sheet sheet; private List stripes; @@ -129,6 +131,12 @@ initMap(stringBounder); return Dimension2DDouble.delta(minMax.getDimension(), 2 * padding); } + + @Override + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + return null; + } + public void drawU(UGraphic ug) { initMap(ug.getStringBounder()); @@ -155,4 +163,5 @@ public double getEndingX(StringBounder stringBounder, double y) { return calculateDimension(stringBounder).getWidth(); } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/SheetBlock2.java plantuml-8039/src/net/sourceforge/plantuml/creole/SheetBlock2.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/SheetBlock2.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/SheetBlock2.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,14 +35,16 @@ package net.sourceforge.plantuml.creole; import java.awt.geom.Dimension2D; +import java.awt.geom.Rectangle2D; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UGraphicStencil; import net.sourceforge.plantuml.ugraphic.UStroke; -public class SheetBlock2 implements TextBlock, Atom { +public class SheetBlock2 extends AbstractTextBlock implements TextBlock, Atom { private final SheetBlock1 block; private final UStroke defaultStroke; @@ -71,4 +73,10 @@ public double getStartingAltitude(StringBounder stringBounder) { return 0; } + + @Override + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + return block.getInnerPosition(member, stringBounder); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/Sheet.java plantuml-8039/src/net/sourceforge/plantuml/creole/Sheet.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/Sheet.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/Sheet.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/Stencil.java plantuml-8039/src/net/sourceforge/plantuml/creole/Stencil.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/Stencil.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/Stencil.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/Stripe.java plantuml-8039/src/net/sourceforge/plantuml/creole/Stripe.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/Stripe.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/Stripe.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/StripeSimple.java plantuml-8039/src/net/sourceforge/plantuml/creole/StripeSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/StripeSimple.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/StripeSimple.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,13 +45,13 @@ import net.sourceforge.plantuml.graphic.FontStyle; import net.sourceforge.plantuml.graphic.ImgValign; import net.sourceforge.plantuml.openiconic.OpenIcon; -import net.sourceforge.plantuml.ugraphic.Sprite; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; import net.sourceforge.plantuml.utils.CharHidder; public class StripeSimple implements Stripe { final private List atoms = new ArrayList(); - private final List commands = new ArrayList(); + final private List commands = new ArrayList(); private FontConfiguration fontConfiguration; @@ -59,7 +59,7 @@ final private ISkinSimple skinParam; public StripeSimple(FontConfiguration fontConfiguration, StripeStyle style, CreoleContext context, - ISkinSimple skinParam, boolean modeSimpleLine) { + ISkinSimple skinParam, CreoleMode modeSimpleLine) { this.fontConfiguration = fontConfiguration; this.style = style; this.skinParam = skinParam; @@ -71,7 +71,7 @@ this.commands.add(CommandCreoleStyle.createCreole(FontStyle.ITALIC)); this.commands.add(CommandCreoleStyle.createLegacy(FontStyle.ITALIC)); this.commands.add(CommandCreoleStyle.createLegacyEol(FontStyle.ITALIC)); - if (modeSimpleLine == false) { + if (modeSimpleLine == CreoleMode.FULL) { this.commands.add(CommandCreoleStyle.createCreole(FontStyle.UNDERLINE)); } this.commands.add(CommandCreoleStyle.createLegacy(FontStyle.UNDERLINE)); @@ -98,7 +98,7 @@ this.commands.add(CommandCreoleSpace.create()); this.commands.add(CommandCreoleFontFamilyChange.create()); this.commands.add(CommandCreoleFontFamilyChange.createEol()); - this.commands.add(CommandCreoleMonospaced.create()); + this.commands.add(CommandCreoleMonospaced.create(skinParam.getMonospacedFamily())); this.commands.add(CommandCreoleUrl.create(skinParam)); this.commands.add(CommandCreoleSvgAttributeChange.create()); @@ -138,8 +138,8 @@ } } - public void addImage(String src) { - atoms.add(AtomImg.create(src, ImgValign.TOP, 0)); + public void addImage(String src, double scale) { + atoms.add(AtomImg.create(src, ImgValign.TOP, 0, scale)); } public void addSpace(int size) { @@ -150,10 +150,10 @@ atoms.add(AtomText.createUrl(url, fontConfiguration)); } - public void addSprite(String src) { + public void addSprite(String src, double scale) { final Sprite sprite = skinParam.getSprite(src); if (sprite != null) { - atoms.add(new AtomSprite(sprite.asTextBlock(fontConfiguration.getColor()), fontConfiguration)); + atoms.add(new AtomSprite(sprite.asTextBlock(fontConfiguration.getColor(), scale), fontConfiguration)); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/StripeStyle.java plantuml-8039/src/net/sourceforge/plantuml/creole/StripeStyle.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/StripeStyle.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/StripeStyle.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/StripeStyleType.java plantuml-8039/src/net/sourceforge/plantuml/creole/StripeStyleType.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/StripeStyleType.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/StripeStyleType.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,5 +35,5 @@ package net.sourceforge.plantuml.creole; public enum StripeStyleType { - NORMAL, HEADING, LIST_WITHOUT_NUMBER, LIST_WITH_NUMBER, HORIZONTAL_LINE + NORMAL, HEADING, LIST_WITHOUT_NUMBER, LIST_WITH_NUMBER, HORIZONTAL_LINE, TREE } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/StripeTable.java plantuml-8039/src/net/sourceforge/plantuml/creole/StripeTable.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/StripeTable.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/StripeTable.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,6 +42,7 @@ import net.sourceforge.plantuml.ISkinSimple; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.HtmlColor; public class StripeTable implements Stripe { @@ -67,7 +68,7 @@ return Collections. singletonList(marged); } - private static Atom asAtom(List cells, double padding) { + static Atom asAtom(List cells, double padding) { final Sheet sheet = new Sheet(HorizontalAlignment.LEFT); for (StripeSimple cell : cells) { sheet.add(cell); @@ -75,10 +76,39 @@ return new SheetBlock1(sheet, 0, padding); } + private HtmlColor getBackColor(String line) { + if (CreoleParser.doesStartByColor(line)) { + final int idx1 = line.indexOf('#'); + final int idx2 = line.indexOf('>'); + if (idx2 == -1) { + throw new IllegalStateException(); + } + final String color = line.substring(idx1, idx2); + return skinParam.getIHtmlColorSet().getColorIfValid(color); + } + return null; + } + + private String withouBackColor(String line) { + final int idx2 = line.indexOf('>'); + if (idx2 == -1) { + throw new IllegalStateException(); + } + return line.substring(idx2 + 1); + } + private void analyzeAndAddInternal(String line, Mode mode) { - table.newLine(); + HtmlColor lineBackColor = getBackColor(line); + if (lineBackColor != null) { + line = withouBackColor(line); + } + table.newLine(lineBackColor); for (final StringTokenizer st = new StringTokenizer(line, "|"); st.hasMoreTokens();) { String v = st.nextToken(); + HtmlColor cellBackColor = getBackColor(v); + if (cellBackColor != null) { + v = withouBackColor(v); + } if (mode == Mode.HEADER && v.startsWith("=")) { v = v.substring(1); } @@ -86,15 +116,15 @@ final List cells = new ArrayList(); for (String s : lines) { final StripeSimple cell = new StripeSimple(getFontConfiguration(mode), stripeStyle, - new CreoleContext(), skinParam, false); + new CreoleContext(), skinParam, CreoleMode.FULL); cell.analyzeAndAdd(s); cells.add(cell); } - table.addCell(asAtom(cells, skinParam.getPadding())); + table.addCell(asAtom(cells, skinParam.getPadding()), cellBackColor); } } - private static List getWithNewlinesInternal(String s) { + static List getWithNewlinesInternal(String s) { final List result = new ArrayList(); final StringBuilder current = new StringBuilder(); for (int i = 0; i < s.length(); i++) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/StripeTree.java plantuml-8039/src/net/sourceforge/plantuml/creole/StripeTree.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/StripeTree.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/StripeTree.java 2016-04-22 16:26:22.000000000 +0000 @@ -0,0 +1,77 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.creole; + +import java.util.Collections; +import java.util.List; + +import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.graphic.FontConfiguration; + +public class StripeTree implements Stripe { + + private FontConfiguration fontConfiguration; + final private ISkinSimple skinParam; + final private AtomTree tree; + final private Atom marged; + final private StripeStyle stripeStyle = new StripeStyle(StripeStyleType.TREE, 0, '\0'); + + public StripeTree(FontConfiguration fontConfiguration, ISkinSimple skinParam, String line) { + this.fontConfiguration = fontConfiguration; + this.skinParam = skinParam; + this.tree = new AtomTree(fontConfiguration.getColor()); + this.marged = new AtomWithMargin(tree, 2, 2); + analyzeAndAdd(line); + } + + public List getAtoms() { + return Collections. singletonList(marged); + } + + public void analyzeAndAdd(String line) { + final List lines = StripeTable.getWithNewlinesInternal(line); + for (String s : lines) { + final StripeSimple cell = new StripeSimple(fontConfiguration, stripeStyle, new CreoleContext(), skinParam, + CreoleMode.FULL); + // EMTEC + final String text = s.replaceFirst("^\\s*\\|_", ""); + final int level = (s.length() - text.length()) / 2; + cell.analyzeAndAdd(text); + this.tree.addCell(StripeTable.asAtom(Collections.singletonList(cell), 0), level); + } + + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/creole/UCreole.java plantuml-8039/src/net/sourceforge/plantuml/creole/UCreole.java --- plantuml-8024/src/net/sourceforge/plantuml/creole/UCreole.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/creole/UCreole.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/BlockMemberImpl.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/BlockMemberImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/BlockMemberImpl.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/BlockMemberImpl.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.cucadiagram; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import net.sourceforge.plantuml.FontParam; -import net.sourceforge.plantuml.ISkinParam; -import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockLineBefore; -import net.sourceforge.plantuml.graphic.TextBlockUtils; - -public class BlockMemberImpl implements BlockMember { - - private final List members = new ArrayList(); - - public BlockMemberImpl(List members) { - this.members.addAll(members); - } - - public List getAll() { - return Collections.unmodifiableList(members); - } - - public TextBlock asTextBlock(FontParam fontParam, ISkinParam skinParam) { - return new TextBlockLineBefore(TextBlockUtils.withMargin((TextBlock) new MethodsOrFieldsArea(members, - fontParam, skinParam), 6, 4)); - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/BlockMember.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/BlockMember.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/BlockMember.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/BlockMember.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.cucadiagram; - -import net.sourceforge.plantuml.FontParam; -import net.sourceforge.plantuml.ISkinParam; -import net.sourceforge.plantuml.graphic.TextBlock; - -public interface BlockMember { - - public TextBlock asTextBlock(FontParam fontParam, ISkinParam skinParam); - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Bodier.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Bodier.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Bodier.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Bodier.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,19 +41,28 @@ import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.TextBlockVertical2; import net.sourceforge.plantuml.skin.VisibilityModifier; -import net.sourceforge.plantuml.StringUtils; public class Bodier { private final List rawBody = new ArrayList(); private final Set hides; - private final LeafType type; + private LeafType type; private List methodsToDisplay; private List fieldsToDisplay; private final boolean manageModifier; + public void muteClassToObject() { + methodsToDisplay = null; + fieldsToDisplay = null; + type = LeafType.OBJECT; + } + public Bodier(LeafType type, Set hides) { this.hides = hides; this.type = type; @@ -67,7 +76,7 @@ rawBody.add(s); } - public boolean isBodyEnhanced() { + private boolean isBodyEnhanced() { for (String s : rawBody) { if (BodyEnhanced.isBlockSeparator(s)) { return true; @@ -76,24 +85,10 @@ return false; } - public BlockMember getBodyEnhanced() { - return new BlockMember() { - public TextBlock asTextBlock(FontParam fontParam, ISkinParam skinParam) { - final BodyEnhanced result = new BodyEnhanced(rawBody, fontParam, skinParam, manageModifier); - return result; - } - }; - } - - private LeafType getEntityType() { - return type; - } - private boolean isMethod(String s) { - if (getEntityType() == LeafType.ANNOTATION || getEntityType() == LeafType.ABSTRACT_CLASS - || getEntityType() == LeafType.CLASS || getEntityType() == LeafType.INTERFACE - || getEntityType() == LeafType.ENUM) { - return StringUtils.isMethod(s); + if (type == LeafType.ANNOTATION || type == LeafType.ABSTRACT_CLASS || type == LeafType.CLASS + || type == LeafType.INTERFACE || type == LeafType.ENUM) { + return MemberImpl.isMethod(s); } return false; } @@ -109,7 +104,7 @@ if (s.length() == 0 && methodsToDisplay.size() == 0) { continue; } - final Member m = new Member(s, true, manageModifier); + final Member m = new MemberImpl(s, true, manageModifier, true); if (hides == null || hides.contains(m.getVisibilityModifier()) == false) { methodsToDisplay.add(m); } @@ -137,7 +132,7 @@ if (s.length() == 0 && fieldsToDisplay.size() == 0) { continue; } - final Member m = new Member(s, false, manageModifier); + final Member m = new MemberImpl(s, false, manageModifier, true); if (hides == null || hides.contains(m.getVisibilityModifier()) == false) { fieldsToDisplay.add(m); } @@ -148,7 +143,7 @@ } private void removeFinalEmptyMembers(List result) { - while (result.size() > 0 && result.get(result.size() - 1).getDisplay(false).trim().length() == 0) { + while (result.size() > 0 && StringUtils.trin(result.get(result.size() - 1).getDisplay(false)).length() == 0) { result.remove(result.size() - 1); } } @@ -166,4 +161,34 @@ } return true; } + + public TextBlock getBody(final FontParam fontParam, final ISkinParam skinParam, final boolean showMethods, + final boolean showFields, Stereotype stereotype) { + if (type.isLikeClass() && isBodyEnhanced()) { + if (showMethods || showFields) { + return new BodyEnhanced(rawBody, fontParam, skinParam, manageModifier, stereotype); + } + return null; + } + final MethodsOrFieldsArea fields = new MethodsOrFieldsArea(getFieldsToDisplay(), fontParam, skinParam, stereotype); + if (type == LeafType.OBJECT) { + return fields.asBlockMemberImpl(); + } + if (type.isLikeClass() == false) { + throw new UnsupportedOperationException(); + } + final MethodsOrFieldsArea methods = new MethodsOrFieldsArea(getMethodsToDisplay(), fontParam, skinParam, stereotype); + if (showFields && showMethods == false) { + return fields.asBlockMemberImpl(); + } else if (showMethods && showFields == false) { + return methods.asBlockMemberImpl(); + } else if (showFields == false && showMethods == false) { + return TextBlockUtils.empty(0, 0); + } + + final TextBlock bb1 = fields.asBlockMemberImpl(); + final TextBlock bb2 = methods.asBlockMemberImpl(); + return new TextBlockVertical2(bb1, bb2, HorizontalAlignment.LEFT); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced2.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced2.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced2.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced2.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,18 +40,18 @@ import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockLineBefore; import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.graphic.TextBlockVertical2; -import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; -public class BodyEnhanced2 implements TextBlock { +public class BodyEnhanced2 extends AbstractTextBlock implements TextBlock { private TextBlock area2; private final FontConfiguration titleConfig; @@ -120,7 +120,7 @@ } private TextBlock getTextBlock(Display members2, StringBounder stringBounder) { - final TextBlock result = TextBlockUtils.create(members2, titleConfig, align, spriteContainer); + final TextBlock result = members2.create(titleConfig, align, spriteContainer); return result; } @@ -144,9 +144,8 @@ if (s.length() <= 4) { return null; } - s = s.substring(2, s.length() - 2).trim(); - return TextBlockUtils - .create(Display.getWithNewlines(s), titleConfig, HorizontalAlignment.LEFT, spriteContainer); + s = StringUtils.trin(s.substring(2, s.length() - 2)); + return Display.getWithNewlines(s).create(titleConfig, HorizontalAlignment.LEFT, spriteContainer); } public void drawU(UGraphic ug) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,11 +38,16 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.ListIterator; import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; +import net.sourceforge.plantuml.creole.CreoleMode; +import net.sourceforge.plantuml.creole.CreoleParser; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.StringBounder; @@ -52,9 +57,8 @@ import net.sourceforge.plantuml.graphic.TextBlockVertical2; import net.sourceforge.plantuml.skin.rose.Rose; import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.StringUtils; -public class BodyEnhanced implements TextBlock { +public class BodyEnhanced extends AbstractTextBlock implements TextBlock { private TextBlock area2; private final FontConfiguration titleConfig; @@ -66,14 +70,17 @@ private final boolean manageHorizontalLine; private final boolean manageModifier; private final List urls = new ArrayList(); + private final boolean manageUrl; + private final Stereotype stereotype; - public BodyEnhanced(List rawBody, FontParam fontParam, ISkinParam skinParam, boolean manageModifier) { + public BodyEnhanced(List rawBody, FontParam fontParam, ISkinParam skinParam, boolean manageModifier, Stereotype stereotype) { this.rawBody = new ArrayList(rawBody); + this.stereotype = stereotype; this.fontParam = fontParam; this.skinParam = skinParam; + this.manageUrl = true; - this.titleConfig = new FontConfiguration(skinParam.getFont(fontParam, null, false), new Rose().getFontColor(skinParam, - fontParam), skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()); + this.titleConfig = new FontConfiguration(skinParam, fontParam, stereotype); this.lineFirst = true; this.align = HorizontalAlignment.LEFT; this.manageHorizontalLine = true; @@ -81,7 +88,9 @@ } public BodyEnhanced(Display display, FontParam fontParam, ISkinParam skinParam, HorizontalAlignment align, - Stereotype stereotype, boolean manageHorizontalLine, boolean manageModifier) { + Stereotype stereotype, boolean manageHorizontalLine, boolean manageModifier, boolean manageUrl) { + this.manageUrl = manageUrl; + this.stereotype = stereotype; this.rawBody = new ArrayList(); for (CharSequence s : display) { this.rawBody.add(s.toString()); @@ -124,22 +133,33 @@ char separator = lineFirst ? '_' : 0; TextBlock title = null; List members = new ArrayList(); - for (String s : rawBody) { + for (ListIterator it = rawBody.listIterator(); it.hasNext();) { + final String s = it.next(); if (manageHorizontalLine && isBlockSeparator(s)) { - blocks.add(decorate(stringBounder, new MethodsOrFieldsArea(members, fontParam, skinParam, align), + blocks.add(decorate(stringBounder, new MethodsOrFieldsArea(members, fontParam, skinParam, align, stereotype), separator, title)); separator = s.charAt(0); title = getTitle(s, skinParam); members = new ArrayList(); + } else if (CreoleParser.isTreeStart(s)) { + if (members.size() > 0) { + blocks.add(decorate(stringBounder, new MethodsOrFieldsArea(members, fontParam, skinParam, align, stereotype), + separator, title)); + } + members = new ArrayList(); + final List allTree = buildAllTree(s, it); + final TextBlock bloc = Display.create(allTree).create(fontParam.getFontConfiguration(skinParam), align, + skinParam, CreoleMode.FULL); + blocks.add(bloc); } else { - final Member m = new Member(s, StringUtils.isMethod(s), manageModifier); + final Member m = new MemberImpl(s, MemberImpl.isMethod(s), manageModifier, manageUrl); members.add(m); if (m.getUrl() != null) { urls.add(m.getUrl()); } } } - blocks.add(decorate(stringBounder, new MethodsOrFieldsArea(members, fontParam, skinParam, align), separator, + blocks.add(decorate(stringBounder, new MethodsOrFieldsArea(members, fontParam, skinParam, align, stereotype), separator, title)); if (blocks.size() == 1) { @@ -151,6 +171,22 @@ return area2; } + private static List buildAllTree(String init, ListIterator it) { + final List result = new ArrayList(); + result.add(init); + while (it.hasNext()) { + final String s = it.next(); + if (CreoleParser.isTreeStart(StringUtils.trinNoTrace(s))) { + result.add(s); + } else { + it.previous(); + return result; + } + + } + return result; + } + public static boolean isBlockSeparator(String s) { if (s.startsWith("--") && s.endsWith("--")) { return true; @@ -171,9 +207,8 @@ if (s.length() <= 4) { return null; } - s = s.substring(2, s.length() - 2).trim(); - return TextBlockUtils - .create(Display.getWithNewlines(s), titleConfig, HorizontalAlignment.LEFT, spriteContainer); + s = StringUtils.trin(s.substring(2, s.length() - 2)); + return Display.getWithNewlines(s).create(titleConfig, HorizontalAlignment.LEFT, spriteContainer); } public void drawU(UGraphic ug) { @@ -183,5 +218,4 @@ public List getUrls() { return Collections.unmodifiableList(urls); } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Code.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Code.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Code.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Code.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/CucaDiagram.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/CucaDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/CucaDiagram.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/CucaDiagram.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -48,7 +48,6 @@ import net.sourceforge.plantuml.FileFormat; import net.sourceforge.plantuml.FileFormatOption; import net.sourceforge.plantuml.Log; -import net.sourceforge.plantuml.OptionFlags; import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.UmlDiagramType; import net.sourceforge.plantuml.api.ImageDataSimple; @@ -56,20 +55,23 @@ import net.sourceforge.plantuml.cucadiagram.dot.CucaDiagramTxtMaker; import net.sourceforge.plantuml.cucadiagram.entity.EntityFactory; import net.sourceforge.plantuml.graphic.USymbol; -import net.sourceforge.plantuml.hector2.CucaDiagramFileMakerHectorC1; +import net.sourceforge.plantuml.jdot.CucaDiagramFileMakerJDot; import net.sourceforge.plantuml.skin.VisibilityModifier; +import net.sourceforge.plantuml.statediagram.StateDiagram; import net.sourceforge.plantuml.svek.CucaDiagramFileMaker; import net.sourceforge.plantuml.svek.CucaDiagramFileMakerSvek; import net.sourceforge.plantuml.ugraphic.ColorMapper; import net.sourceforge.plantuml.xmi.CucaDiagramXmiMaker; +import net.sourceforge.plantuml.xmlsc.StateDiagramScxmlMaker; public abstract class CucaDiagram extends UmlDiagram implements GroupHierarchy, PortionShower { private int horizontalPages = 1; private int verticalPages = 1; private final Set hiddenType = new HashSet(); + private final Set hiddenStereotype = new HashSet(); - protected final EntityFactory entityFactory = new EntityFactory(hiddenType); + protected final EntityFactory entityFactory = new EntityFactory(hiddenType, hiddenStereotype); protected IGroup currentGroup = entityFactory.getRootGroup(); private boolean visibilityModifierPresent; @@ -113,6 +115,9 @@ result = createLeafInternal(code, Display.getWithNewlines(code), type, getCurrentGroup(), symbol); result.setUSymbol(symbol); } + if (result.getEntityType() == LeafType.CLASS && type == LeafType.OBJECT) { + result.muteToType(type, symbol); + } this.lastEntity = result; return result; } @@ -125,7 +130,7 @@ } final protected ILeaf createLeafInternal(Code code, Display display, LeafType type, IGroup group, USymbol symbol) { - if (display == null) { + if (Display.isNull(display)) { display = Display.getWithNewlines(code); } final ILeaf leaf = entityFactory.createLeaf(code, display, type, group, getHides(), getNamespaceSeparator()); @@ -155,8 +160,7 @@ return g; } - private IGroup getOrCreateGroupInternal(Code code, Display display, Code namespace2, GroupType type, - IGroup parent) { + private IGroup getOrCreateGroupInternal(Code code, Display display, Code namespace2, GroupType type, IGroup parent) { IGroup result = entityFactory.getGroups().get(code); if (result != null) { return result; @@ -287,6 +291,11 @@ maker.createFiles(suggestedFile); } + private void createFilesScxml(OutputStream suggestedFile) throws IOException { + final StateDiagramScxmlMaker maker = new StateDiagramScxmlMaker((StateDiagram) this); + maker.createFiles(suggestedFile); + } + @Override protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) throws IOException { @@ -306,11 +315,18 @@ return new ImageDataSimple(); } + if (fileFormat == FileFormat.SCXML) { + createFilesScxml(os); + return new ImageDataSimple(); + } + if (getUmlDiagramType() == UmlDiagramType.COMPOSITE) { throw new UnsupportedOperationException(); } - final CucaDiagramFileMaker maker = OptionFlags.USE_HECTOR ? new CucaDiagramFileMakerHectorC1(this) + // final CucaDiagramFileMaker maker = OptionFlags.USE_HECTOR ? new CucaDiagramFileMakerHectorC1(this) + // : new CucaDiagramFileMakerSvek(this); + final CucaDiagramFileMaker maker = this.isUseJDot() ? new CucaDiagramFileMakerJDot(this) : new CucaDiagramFileMakerSvek(this); final ImageData result = maker.createFile(os, getDotStrings(), fileFormatOption); @@ -471,6 +487,14 @@ leaf.setRemoved(!show); } + public void hideOrShow(Stereotype stereotype, boolean show) { + if (show) { + hiddenStereotype.remove(stereotype.getLabel(false)); + } else { + hiddenStereotype.add(stereotype.getLabel(false)); + } + } + public void hideOrShow(LeafType leafType, boolean show) { if (show) { hiddenType.remove(leafType); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Display2.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Display2.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Display2.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Display2.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,241 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.cucadiagram; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; - -import net.sourceforge.plantuml.Url; -import net.sourceforge.plantuml.UrlBuilder; -import net.sourceforge.plantuml.UrlBuilder.ModeUrl; - -public class Display2 implements Iterable { - - private final List display = new ArrayList(); - - public static Display2 empty() { - return new Display2(); - } - - public static Display2 create(CharSequence... s) { - if (s.length==1 && s[0]==null) { - return empty(); - } - return new Display2(Arrays.asList(s)); - } - - public static Display2 create(List other) { - return new Display2(other); - } - - public static Display2 getWithNewlines(Code s) { - return getWithNewlines(s.getFullName()); - } - - public static Display2 getWithNewlines(String s) { - if (s == null) { - return null; - } - final Display2 result = new Display2(); - result.display.addAll(getWithNewlinesInternal(s)); - return result; - } - - private Display2(List other) { - for (CharSequence s : other) { - this.display.addAll(getWithNewlinesInternal(s)); - } - } - - private Display2(Display2 other) { - this.display.addAll(other.display); - } - - private Display2() { - } - - public Display2 underlined() { - final List result = new ArrayList(); - for (CharSequence line : display) { - result.add("" + line); - } - return new Display2(result); - } - - @Override - public String toString() { - return display.toString(); - } - - @Override - public int hashCode() { - return display.hashCode(); - } - - @Override - public boolean equals(Object other) { - return this.display.equals(((Display2) other).display); - } - - public Display2 addAll(Display2 other) { - final Display2 result = new Display2(this); - result.display.addAll(other.display); - return result; - } - - public Display2 addFirst(CharSequence s) { - final Display2 result = new Display2(this); - result.display.addAll(0, getWithNewlinesInternal(s)); - return result; - } - - public Display2 add(CharSequence s) { - final Display2 result = new Display2(this); - result.display.addAll(getWithNewlinesInternal(s)); - return result; - } - - private boolean firstColumnRemovable() { - boolean allEmpty = true; - for (CharSequence s : this) { - if (s.length() == 0) { - continue; - } - allEmpty = false; - final char c = s.charAt(0); - if (c != ' ' && c != '\t') { - return false; - } - } - return allEmpty == false; - } - - public Display2 removeEmptyColumns() { - if (firstColumnRemovable() == false) { - return this; - } - final Display2 result = new Display2(this); - do { - for (int i = 0; i < result.size(); i++) { - final CharSequence s = result.get(i); - if (s.length() > 0) { - result.display.set(i, s.toString().substring(1)); - } - } - } while (result.firstColumnRemovable()); - return result; - } - - public int size() { - return display.size(); - } - - public CharSequence get(int i) { - return display.get(i); - } - - public Iterator iterator() { - return Collections.unmodifiableList(display).iterator(); - } - - public Display2 subList(int i, int size) { - final Display2 result = new Display2(); - result.display.addAll(display.subList(i, size)); - return result; - } - - public List as() { - return Collections.unmodifiableList(display); - } - - private static List getWithNewlinesInternal(CharSequence s) { - final List result = new ArrayList(); - final StringBuilder current = new StringBuilder(); - for (int i = 0; i < s.length(); i++) { - final char c = s.charAt(i); - if (c == '\\' && i < s.length() - 1) { - final char c2 = s.charAt(i + 1); - i++; - if (c2 == 'n') { - result.add(current.toString()); - current.setLength(0); - } else if (c2 == 't') { - current.append('\t'); - } else if (c2 == '\\') { - current.append(c2); - } else { - current.append(c); - current.append(c2); - } - } else { - current.append(c); - } - } - result.add(current.toString()); - return result; - } - - public Url initUrl() { - if (this.size() == 0) { - return null; - } - final UrlBuilder urlBuilder = new UrlBuilder(null, ModeUrl.AT_START); - return urlBuilder.getUrl(this.get(0).toString().trim()); - } - - public Display2 removeUrl(Url url) { - if (url == null) { - return this; - } - final Display2 result = new Display2(); - result.display.add(UrlBuilder.purgeUrl(this.get(0).toString())); - result.display.addAll(this.subList(1, this.size()).display); - return result; - } - - public boolean hasUrl() { - final UrlBuilder urlBuilder = new UrlBuilder(null, ModeUrl.ANYWHERE); - for (CharSequence s : this) { - if (urlBuilder.getUrl(s.toString()) != null) { - return true; - } - } - return false; - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Display.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Display.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Display.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Display.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,35 +36,74 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import net.sourceforge.plantuml.CharSequence2; +import net.sourceforge.plantuml.CharSequence2Impl; import net.sourceforge.plantuml.EmbededDiagram; +import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.LineLocationImpl; +import net.sourceforge.plantuml.SpriteContainer; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; +import net.sourceforge.plantuml.creole.CreoleMode; +import net.sourceforge.plantuml.creole.CreoleParser; +import net.sourceforge.plantuml.creole.Sheet; +import net.sourceforge.plantuml.creole.SheetBlock1; +import net.sourceforge.plantuml.creole.SheetBlock2; +import net.sourceforge.plantuml.graphic.CircledCharacter; +import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.TextBlockSimple; +import net.sourceforge.plantuml.graphic.TextBlockSpotted; +import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.VerticalAlignment; +import net.sourceforge.plantuml.sequencediagram.MessageNumber; +import net.sourceforge.plantuml.ugraphic.UFont; +import net.sourceforge.plantuml.ugraphic.UStroke; public class Display implements Iterable { - private final List display = new ArrayList(); + private final List display; private final HorizontalAlignment naturalHorizontalAlignment; + private final boolean isNull; + private final CreoleMode defaultCreoleMode; + + // public void setDefaultCreoleMode(CreoleMode defaultCreoleMode) { + // this.defaultCreoleMode = defaultCreoleMode; + // } + + public Display removeUrlHiddenNewLineUrl() { + final String full = UrlBuilder.purgeUrl(asStringWithHiddenNewLine()); + return new Display(StringUtils.splitHiddenNewLine(full), this.naturalHorizontalAlignment, this.isNull, + this.defaultCreoleMode); + } + + public final static Display NULL = new Display(null, null, true, CreoleMode.FULL); public boolean isWhite() { return display.size() == 0 || (display.size() == 1 && display.get(0).toString().matches("\\s*")); } public static Display empty() { - return new Display((HorizontalAlignment) null); + return new Display((HorizontalAlignment) null, false, CreoleMode.FULL); } public static Display create(CharSequence... s) { return create(Arrays.asList(s)); } - public static Display create(List other) { - return new Display(other, null); + public static Display create(Collection other) { + return new Display(other, null, false, CreoleMode.FULL); } public static Display getWithNewlines(Code s) { @@ -73,7 +112,8 @@ public static Display getWithNewlines(String s) { if (s == null) { - return null; + // Thread.dumpStack(); + return NULL; } final List result = new ArrayList(); final StringBuilder current = new StringBuilder(); @@ -99,39 +139,48 @@ current.append(c); current.append(c2); } + } else if (c == StringUtils.hiddenNewLine()) { + result.add(current.toString()); + current.setLength(0); } else { current.append(c); } } result.add(current.toString()); - return new Display(result, naturalHorizontalAlignment); + return new Display(result, naturalHorizontalAlignment, false, CreoleMode.FULL); } - private Display(Display other) { - this(other.naturalHorizontalAlignment); + private Display(Display other, CreoleMode mode) { + this(other.naturalHorizontalAlignment, other.isNull, mode); this.display.addAll(other.display); } - private Display(HorizontalAlignment naturalHorizontalAlignment) { - this.naturalHorizontalAlignment = naturalHorizontalAlignment; + private Display(HorizontalAlignment naturalHorizontalAlignment, boolean isNull, CreoleMode defaultCreoleMode) { + this.defaultCreoleMode = defaultCreoleMode; + this.isNull = isNull; + this.display = isNull ? null : new ArrayList(); + this.naturalHorizontalAlignment = isNull ? null : naturalHorizontalAlignment; } - private Display(List other, HorizontalAlignment naturalHorizontalAlignment) { - this(naturalHorizontalAlignment); - this.display.addAll(manageEmbededDiagrams2(other)); + private Display(Collection other, HorizontalAlignment naturalHorizontalAlignment, + boolean isNull, CreoleMode defaultCreoleMode) { + this(naturalHorizontalAlignment, isNull, defaultCreoleMode); + if (isNull == false) { + this.display.addAll(manageEmbededDiagrams2(other)); + } } - private static List manageEmbededDiagrams2(final List strings) { + private static List manageEmbededDiagrams2(final Collection strings) { final List result = new ArrayList(); final Iterator it = strings.iterator(); while (it.hasNext()) { CharSequence s = it.next(); - if (s != null && s.toString().trim().equals("{{")) { + if (s != null && StringUtils.trin(s.toString()).equals("{{")) { final List other = new ArrayList(); other.add("@startuml"); while (it.hasNext()) { final CharSequence s2 = it.next(); - if (s2 != null && s2.toString().trim().equals("}}")) { + if (s2 != null && StringUtils.trin(s2.toString()).equals("}}")) { break; } other.add(s2); @@ -149,11 +198,32 @@ for (CharSequence line : display) { result.add("" + line); } - return new Display(result, this.naturalHorizontalAlignment); + return new Display(result, this.naturalHorizontalAlignment, this.isNull, this.defaultCreoleMode); + } + + public Display withCreoleMode(CreoleMode mode) { + if (isNull) { + throw new IllegalArgumentException(); + } + return new Display(this, mode); + } + + public String asStringWithHiddenNewLine() { + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < display.size(); i++) { + sb.append(display.get(i)); + if (i < display.size() - 1) { + sb.append(StringUtils.hiddenNewLine()); + } + } + return sb.toString(); } @Override public String toString() { + if (isNull) { + return "NULL"; + } return display.toString(); } @@ -168,55 +238,27 @@ } public Display addAll(Display other) { - final Display result = new Display(this); + final Display result = new Display(this, this.defaultCreoleMode); result.display.addAll(other.display); return result; } public Display addFirst(CharSequence s) { - final Display result = new Display(this); + final Display result = new Display(this, this.defaultCreoleMode); result.display.add(0, s); return result; } public Display add(CharSequence s) { - final Display result = new Display(this); + final Display result = new Display(this, this.defaultCreoleMode); result.display.add(s); return result; } - private boolean firstColumnRemovable() { - boolean allEmpty = true; - for (CharSequence s : this) { - if (s.length() == 0) { - continue; - } - allEmpty = false; - final char c = s.charAt(0); - if (c != ' ' && c != '\t') { - return false; - } - } - return allEmpty == false; - } - - public Display removeEmptyColumns() { - if (firstColumnRemovable() == false) { - return this; - } - final Display result = new Display(this); - do { - for (int i = 0; i < result.size(); i++) { - final CharSequence s = result.get(i); - if (s.length() > 0) { - result.display.set(i, s.toString().substring(1)); - } - } - } while (result.firstColumnRemovable()); - return result; - } - public int size() { + if (isNull) { + return 0; + } return display.size(); } @@ -229,26 +271,37 @@ } public Display subList(int i, int size) { - return new Display(display.subList(i, size), this.naturalHorizontalAlignment); + return new Display(display.subList(i, size), this.naturalHorizontalAlignment, this.isNull, + this.defaultCreoleMode); } public List as() { return Collections.unmodifiableList(display); } + public List as2() { + final List result = new ArrayList(); + LineLocationImpl location = new LineLocationImpl("inner", null); + for (CharSequence cs : display) { + location = location.oneLineRead(); + result.add(new CharSequence2Impl(cs, location)); + } + return Collections.unmodifiableList(result); + } + public Url initUrl() { if (this.size() == 0) { return null; } final UrlBuilder urlBuilder = new UrlBuilder(null, ModeUrl.AT_START); - return urlBuilder.getUrl(this.get(0).toString().trim()); + return urlBuilder.getUrl(StringUtils.trin(this.get(0).toString())); } public Display removeUrl(Url url) { if (url == null) { return this; } - final Display result = new Display(this.naturalHorizontalAlignment); + final Display result = new Display(this.naturalHorizontalAlignment, this.isNull, this.defaultCreoleMode); result.display.add(UrlBuilder.purgeUrl(this.get(0).toString())); result.display.addAll(this.subList(1, this.size()).display); return result; @@ -268,4 +321,108 @@ return naturalHorizontalAlignment; } + public List splitMultiline(Pattern separator) { + final List result = new ArrayList(); + Display pending = new Display(this.naturalHorizontalAlignment, this.isNull, this.defaultCreoleMode); + result.add(pending); + for (CharSequence line : display) { + final Matcher m = separator.matcher(line); + if (m.find()) { + final CharSequence s1 = line.subSequence(0, m.start()); + pending.display.add(s1); + final CharSequence s2 = line.subSequence(m.end(), line.length()); + pending = new Display(this.naturalHorizontalAlignment, this.isNull, this.defaultCreoleMode); + result.add(pending); + pending.display.add(s2); + } else { + pending.display.add(line); + } + } + return Collections.unmodifiableList(result); + } + + // ------ + + public static boolean isNull(Display display) { + // if (display == null) { + // throw new IllegalArgumentException(); + // } + return display == null || display.isNull; + } + + public TextBlock create(FontConfiguration fontConfiguration, HorizontalAlignment horizontalAlignment, + ISkinSimple spriteContainer) { + return create(fontConfiguration, horizontalAlignment, spriteContainer, CreoleMode.FULL); + } + + public TextBlock createWithNiceCreoleMode(FontConfiguration fontConfiguration, + HorizontalAlignment horizontalAlignment, ISkinSimple spriteContainer) { + return create(fontConfiguration, horizontalAlignment, spriteContainer, defaultCreoleMode); + } + + public TextBlock create(FontConfiguration fontConfiguration, HorizontalAlignment horizontalAlignment, + ISkinSimple spriteContainer, CreoleMode modeSimpleLine) { + return create(fontConfiguration, horizontalAlignment, spriteContainer, 0, modeSimpleLine, null, null); + } + + public TextBlock create(FontConfiguration fontConfiguration, HorizontalAlignment horizontalAlignment, + ISkinSimple spriteContainer, double maxMessageSize, CreoleMode modeSimpleLine, UFont fontForStereotype, + HtmlColor htmlColorForStereotype) { + if (getNaturalHorizontalAlignment() != null) { + horizontalAlignment = getNaturalHorizontalAlignment(); + } + if (size() > 0) { + if (get(0) instanceof Stereotype) { + return createStereotype(fontConfiguration, horizontalAlignment, spriteContainer, 0, fontForStereotype, + htmlColorForStereotype); + } + if (get(size() - 1) instanceof Stereotype) { + return createStereotype(fontConfiguration, horizontalAlignment, spriteContainer, size() - 1, + fontForStereotype, htmlColorForStereotype); + } + if (get(0) instanceof MessageNumber) { + return createMessageNumber(fontConfiguration, horizontalAlignment, spriteContainer, maxMessageSize); + } + } + + return getCreole(fontConfiguration, horizontalAlignment, spriteContainer, maxMessageSize, modeSimpleLine); + } + + private TextBlock getCreole(FontConfiguration fontConfiguration, HorizontalAlignment horizontalAlignment, + ISkinSimple spriteContainer, double maxMessageSize, CreoleMode modeSimpleLine) { + final Sheet sheet = new CreoleParser(fontConfiguration, horizontalAlignment, spriteContainer, modeSimpleLine) + .createSheet(this); + final SheetBlock1 sheetBlock1 = new SheetBlock1(sheet, maxMessageSize, spriteContainer == null ? 0 + : spriteContainer.getPadding()); + return new SheetBlock2(sheetBlock1, sheetBlock1, new UStroke(1.5)); + } + + private TextBlock createMessageNumber(FontConfiguration fontConfiguration, HorizontalAlignment horizontalAlignment, + ISkinSimple spriteContainer, double maxMessageSize) { + TextBlock tb1 = subList(0, 1).getCreole(fontConfiguration, horizontalAlignment, spriteContainer, + maxMessageSize, CreoleMode.FULL); + tb1 = TextBlockUtils.withMargin(tb1, 0, 4, 0, 0); + final TextBlock tb2 = subList(1, size()).getCreole(fontConfiguration, horizontalAlignment, spriteContainer, + maxMessageSize, CreoleMode.FULL); + return TextBlockUtils.mergeLR(tb1, tb2, VerticalAlignment.CENTER); + + } + + private TextBlock createStereotype(FontConfiguration fontConfiguration, HorizontalAlignment horizontalAlignment, + SpriteContainer spriteContainer, int position, UFont fontForStereotype, HtmlColor htmlColorForStereotype) { + final Stereotype stereotype = (Stereotype) get(position); + if (stereotype.isSpotted()) { + final CircledCharacter circledCharacter = new CircledCharacter(stereotype.getCharacter(), + stereotype.getRadius(), stereotype.getCircledFont(), stereotype.getHtmlColor(), null, + fontConfiguration.getColor()); + if (stereotype.getLabel(false) == null) { + return new TextBlockSpotted(circledCharacter, this.subList(1, this.size()), fontConfiguration, + horizontalAlignment, spriteContainer); + } + return new TextBlockSpotted(circledCharacter, this, fontConfiguration, horizontalAlignment, spriteContainer); + } + return new TextBlockSimple(this, fontConfiguration, horizontalAlignment, spriteContainer, 0, fontForStereotype, + htmlColorForStereotype); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/DisplayPositionned.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/DisplayPositionned.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/DisplayPositionned.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/DisplayPositionned.java 2016-04-22 16:26:22.000000000 +0000 @@ -0,0 +1,77 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.cucadiagram; + +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.VerticalAlignment; + +public class DisplayPositionned { + + private final Display display; + private final HorizontalAlignment horizontalAlignment; + private final VerticalAlignment verticalAlignment; + + public DisplayPositionned(Display display, HorizontalAlignment horizontalAlignment, + VerticalAlignment verticalAlignment) { + this.display = display; + this.horizontalAlignment = horizontalAlignment; + this.verticalAlignment = verticalAlignment; + } + + public static DisplayPositionned none(HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment) { + return new DisplayPositionned(Display.NULL, horizontalAlignment, verticalAlignment); + } + + public final Display getDisplay() { + return display; + } + + public final HorizontalAlignment getHorizontalAlignment() { + return horizontalAlignment; + } + + public final VerticalAlignment getVerticalAlignment() { + return verticalAlignment; + } + + public static boolean isNull(DisplayPositionned data) { + return data == null || Display.isNull(data.display); + } + + public boolean hasUrl() { + return display.hasUrl(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/AbstractGraphviz.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/AbstractGraphviz.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/AbstractGraphviz.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/AbstractGraphviz.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import java.util.Arrays; import java.util.List; +import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.Log; import net.sourceforge.plantuml.OptionFlags; import net.sourceforge.plantuml.StringUtils; @@ -48,31 +49,31 @@ private final File dotExe; private final String dotString; private final String[] type; + private final ISkinParam skinParam; static boolean isWindows() { return File.separatorChar == '\\'; } - AbstractGraphviz(String dotString, String... type) { + AbstractGraphviz(ISkinParam skinParam, String dotString, String... type) { if (type == null) { throw new IllegalArgumentException(); } + this.skinParam = skinParam; this.dotExe = searchDotExe(); this.dotString = dotString; this.type = type; } private File searchDotExe() { - if (OptionFlags.getInstance().getDotExecutable() == null) { + if (skinParam == null || skinParam.getDotExecutable() == null) { final String getenv = GraphvizUtils.getenvGraphvizDot(); if (getenv == null) { return specificDotExe(); } return new File(getenv); } - - return new File(OptionFlags.getInstance().getDotExecutable()); - + return new File(skinParam.getDotExecutable()); } abstract protected File specificDotExe(); @@ -148,7 +149,7 @@ } sb.append(p.getError()); } - return sb.toString().replace('\n', ' ').trim(); + return StringUtils.trin(sb.toString().replace('\n', ' ')); } final String[] getCommandLine() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramPngMaker3.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramPngMaker3.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramPngMaker3.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramPngMaker3.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramSimplifierActivity.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramSimplifierActivity.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramSimplifierActivity.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramSimplifierActivity.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramSimplifierState.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramSimplifierState.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramSimplifierState.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramSimplifierState.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramTxtMaker.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramTxtMaker.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramTxtMaker.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/CucaDiagramTxtMaker.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -124,15 +124,15 @@ int y = 2; ug.getCharArea().drawHLine('-', y, 1, w - 1); y++; - for (Member att : ent.getFieldsToDisplay()) { - final List disp = StringUtils.getWithNewlines2(att.getDisplay(true)); + for (Member att : ent.getBodier().getFieldsToDisplay()) { + final List disp = StringUtils.getWithNewlines(att.getDisplay(true)); ug.getCharArea().drawStringsLR(disp, 1, y); y += StringUtils.getHeight(disp); } ug.getCharArea().drawHLine('-', y, 1, w - 1); y++; - for (Member att : ent.getMethodsToDisplay()) { - final List disp = StringUtils.getWithNewlines2(att.getDisplay(true)); + for (Member att : ent.getBodier().getMethodsToDisplay()) { + final List disp = StringUtils.getWithNewlines(att.getDisplay(true)); ug.getCharArea().drawStringsLR(disp, 1, y); y += StringUtils.getHeight(disp); } @@ -149,10 +149,10 @@ private int getHeight(IEntity entity) { int result = StringUtils.getHeight(entity.getDisplay()); - for (Member att : entity.getMethodsToDisplay()) { + for (Member att : entity.getBodier().getMethodsToDisplay()) { result += StringUtils.getHeight(Display.getWithNewlines(att.getDisplay(true))); } - for (Member att : entity.getFieldsToDisplay()) { + for (Member att : entity.getBodier().getFieldsToDisplay()) { result += StringUtils.getHeight(Display.getWithNewlines(att.getDisplay(true))); } return result + 4; @@ -160,13 +160,13 @@ private int getWidth(IEntity entity) { int result = StringUtils.getWidth(entity.getDisplay()); - for (Member att : entity.getMethodsToDisplay()) { + for (Member att : entity.getBodier().getMethodsToDisplay()) { final int w = StringUtils.getWidth(Display.getWithNewlines(att.getDisplay(true))); if (w > result) { result = w; } } - for (Member att : entity.getFieldsToDisplay()) { + for (Member att : entity.getBodier().getFieldsToDisplay()) { final int w = StringUtils.getWidth(Display.getWithNewlines(att.getDisplay(true))); if (w > result) { result = w; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/DebugTrace.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/DebugTrace.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/DebugTrace.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/DebugTrace.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/DotData.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/DotData.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/DotData.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/DotData.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/DotMaker2.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/DotMaker2.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/DotMaker2.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/DotMaker2.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/DotSplines.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/DotSplines.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/DotSplines.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/DotSplines.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/Graphviz.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/Graphviz.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/Graphviz.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/Graphviz.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizLayoutStrategy.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizLayoutStrategy.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizLayoutStrategy.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizLayoutStrategy.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.cucadiagram.dot; - -import java.io.File; - -import net.sourceforge.plantuml.OptionFlags; - -public enum GraphvizLayoutStrategy { - DOT, NEATO, FDP, TWOPI, CIRCO; - - public File getSystemForcedExecutable() { - return getSystemForcedDot(); - } - - private File getSystemForcedDot() { - if (OptionFlags.getInstance().getDotExecutable() == null) { - final String getenv = GraphvizUtils.getenvGraphvizDot(); - if (getenv == null) { - return null; - } - return new File(getenv); - } - - return new File(OptionFlags.getInstance().getDotExecutable()); - - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizLinux.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizLinux.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizLinux.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizLinux.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,10 +36,12 @@ import java.io.File; +import net.sourceforge.plantuml.ISkinParam; + class GraphvizLinux extends AbstractGraphviz { - GraphvizLinux(String dotString, String... type) { - super(dotString, type); + GraphvizLinux(ISkinParam skinParam, String dotString, String... type) { + super(skinParam, dotString, type); } @Override diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizUtils.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizUtils.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizUtils.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,6 +43,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.StringUtils; public class GraphvizUtils { @@ -53,13 +54,22 @@ return File.separatorChar == '\\'; } - @Deprecated - public static Graphviz create(String dotString, String... type) { + private static String dotExecutable; + + public static final String getDotExecutableForTest() { + return dotExecutable; + } + + public static final void setDotExecutable(String value) { + dotExecutable = value; + } + + public static Graphviz create(ISkinParam skinParam, String dotString, String... type) { final AbstractGraphviz result; if (isWindows()) { - result = new GraphvizWindows(dotString, type); + result = new GraphvizWindows(skinParam, dotString, type); } else { - result = new GraphvizLinux(dotString, type); + result = new GraphvizLinux(skinParam, dotString, type); } // if (OptionFlags.GRAPHVIZCACHE) { // return new GraphvizCached(result); @@ -67,16 +77,14 @@ return result; } - // public static Graphviz create2(GraphvizLayoutStrategy strategy, String - // dotString, String... type) { - // return new AbstractGraphviz2(getOS(), strategy, dotString, type); - // } - static public File getDotExe() { return create(null, "png").getDotExe(); } public static String getenvGraphvizDot() { + if (StringUtils.isNotEmpty(dotExecutable)) { + return StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(dotExecutable); + } final String env = System.getProperty("GRAPHVIZ_DOT"); if (StringUtils.isNotEmpty(env)) { return StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(env); @@ -88,6 +96,18 @@ return null; } + public static int getenvImageLimit() { + final String env = System.getProperty("PLANTUML_LIMIT_SIZE"); + if (StringUtils.isNotEmpty(env) && env.matches("\\d+")) { + return Integer.parseInt(env); + } + final String getenv = System.getenv("PLANTUML_LIMIT_SIZE"); + if (StringUtils.isNotEmpty(getenv) && getenv.matches("\\d+")) { + return Integer.parseInt(getenv); + } + return 4096; + } + public static String getenvLogData() { final String env = System.getProperty("PLANTUML_LOGDATA"); if (StringUtils.isNotEmpty(env)) { @@ -193,7 +213,7 @@ } static String getTestCreateSimpleFile() throws IOException { - final Graphviz graphviz2 = GraphvizUtils.create("digraph foo { test; }", "svg"); + final Graphviz graphviz2 = GraphvizUtils.create(null, "digraph foo { test; }", "svg"); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final ProcessState state = graphviz2.createFile3(baos); if (state.differs(ProcessState.TERMINATED_OK())) { @@ -212,11 +232,4 @@ return null; } - // public static OS getOS() { - // if (isWindows()) { - // return new OSWindows(); - // } - // return new OSLinux(); - // } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersionFinder.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersionFinder.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersionFinder.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersionFinder.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -98,7 +98,7 @@ } sb.append(p.getError()); } - return sb.toString().replace('\n', ' ').trim(); + return StringUtils.trin(sb.toString().replace('\n', ' ')); } private String[] getCommandLine() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersion.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersion.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersion.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersion.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersions.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersions.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersions.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizVersions.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizWindows.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizWindows.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizWindows.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizWindows.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,6 +40,7 @@ import java.util.Collections; import java.util.List; +import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.StringUtils; class GraphvizWindows extends AbstractGraphviz { @@ -87,8 +88,8 @@ return dots.get(0); } - GraphvizWindows(String dotString, String... type) { - super(dotString, type); + GraphvizWindows(ISkinParam skinParam, String dotString, String... type) { + super(skinParam, dotString, type); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/Neighborhood.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/Neighborhood.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/Neighborhood.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/Neighborhood.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/OS.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/OS.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/OS.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/OS.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.cucadiagram.dot; - -import java.io.File; - -abstract class OS { - - static boolean isWindows() { - return File.separatorChar == '\\'; - } - - abstract String getFileName(GraphvizLayoutStrategy strategy); - - abstract File getExecutable(GraphvizLayoutStrategy strategy); - - public abstract String getCommand(GraphvizLayoutStrategy strategy); - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/OSLinux.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/OSLinux.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/OSLinux.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/OSLinux.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.cucadiagram.dot; - -import java.io.File; - -import net.sourceforge.plantuml.StringUtils; - -class OSLinux extends OS { - - @Override - File getExecutable(GraphvizLayoutStrategy strategy) { - final File result = strategy.getSystemForcedExecutable(); - if (result != null) { - return result; - } - final String fileName = getFileName(strategy); - final File usrLocalBin = new File("/usr/local/bin/" + fileName); - - if (usrLocalBin.exists()) { - return usrLocalBin; - } - final File usrBin = new File("/usr/bin/" + fileName); - return usrBin; - } - - @Override - String getFileName(GraphvizLayoutStrategy strategy) { - return StringUtils.goLowerCase(strategy.name()); - } - - @Override - public String getCommand(GraphvizLayoutStrategy strategy) { - return getExecutable(strategy).getAbsolutePath(); - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/OSWindows.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/OSWindows.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/OSWindows.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/OSWindows.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,97 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.cucadiagram.dot; - -import java.io.File; -import java.io.FileFilter; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import net.sourceforge.plantuml.StringUtils; - -class OSWindows extends OS { - - @Override - File getExecutable(GraphvizLayoutStrategy strategy) { - File result = strategy.getSystemForcedExecutable(); - if (result != null) { - return result; - } - result = searchInDir(new File("c:/Program Files"), strategy); - if (result != null) { - return result; - } - result = searchInDir(new File("c:/Program Files (x86)"), strategy); - return result; - } - - private File searchInDir(final File programFile, GraphvizLayoutStrategy strategy) { - if (programFile.exists() == false || programFile.isDirectory() == false) { - return null; - } - final List dots = new ArrayList(); - for (File f : programFile.listFiles(new FileFilter() { - public boolean accept(File pathname) { - return pathname.isDirectory() && pathname.getName().startsWith("Graphviz"); - } - })) { - final File result = new File(new File(f, "bin"), getFileName(strategy)); - if (result.exists() && result.canRead()) { - dots.add(result.getAbsoluteFile()); - } - } - return higherVersion(dots); - } - - static File higherVersion(List dots) { - if (dots.size() == 0) { - return null; - } - Collections.sort(dots, Collections.reverseOrder()); - return dots.get(0); - } - - @Override - String getFileName(GraphvizLayoutStrategy strategy) { - return StringUtils.goLowerCase(strategy.name()) + ".exe"; - } - - @Override - public String getCommand(GraphvizLayoutStrategy strategy) { - return "\"" + getExecutable(strategy).getAbsolutePath() + "\""; - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/ProcessRunner.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/ProcessRunner.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/ProcessRunner.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/ProcessRunner.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/ProcessState.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/ProcessState.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/dot/ProcessState.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/dot/ProcessState.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/entity/EntityFactory.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/entity/EntityFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/entity/EntityFactory.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/entity/EntityFactory.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -53,6 +53,7 @@ import net.sourceforge.plantuml.cucadiagram.LeafType; import net.sourceforge.plantuml.cucadiagram.Link; import net.sourceforge.plantuml.cucadiagram.LongCode; +import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.skin.VisibilityModifier; public class EntityFactory { @@ -64,13 +65,23 @@ private final IGroup rootGroup = new GroupRoot(this); private final Set hiddenTypes; + private final Set hiddenStereotype; - public EntityFactory(Set hiddenTypes) { + public EntityFactory(Set hiddenTypes, Set hiddenStereotype) { this.hiddenTypes = hiddenTypes; + this.hiddenStereotype = hiddenStereotype; } - public boolean isHidden(LeafType leafType) { - return hiddenTypes.contains(leafType); + public boolean isHidden(ILeaf leaf) { + if (hiddenTypes.contains(leaf.getEntityType())) { + return true; + } + final Stereotype stereotype = leaf.getStereotype(); + if (stereotype != null && hiddenStereotype.contains(stereotype.getLabel(false))) { + return true; + } + return false; + } public ILeaf createLeaf(Code code, Display display, LeafType entityType, IGroup parentContainer, @@ -105,7 +116,7 @@ final LongCode longCode = getLongCode(code, namespaceSeparator); final EntityImpl result = new EntityImpl(this, code, bodier, parentContainer, groupType, namespace2, longCode, namespaceSeparator, rawLayout); - if (display != null) { + if (Display.isNull(display) == false) { result.setDisplay(display); } return result; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/entity/EntityImpl.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/entity/EntityImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/entity/EntityImpl.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/entity/EntityImpl.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,19 +37,17 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; -import net.sourceforge.plantuml.cucadiagram.BlockMember; -import net.sourceforge.plantuml.cucadiagram.BlockMemberImpl; import net.sourceforge.plantuml.cucadiagram.Bodier; -import net.sourceforge.plantuml.cucadiagram.BodyEnhanced; import net.sourceforge.plantuml.cucadiagram.Code; import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.cucadiagram.EntityPortion; import net.sourceforge.plantuml.cucadiagram.EntityPosition; import net.sourceforge.plantuml.cucadiagram.EntityUtils; import net.sourceforge.plantuml.cucadiagram.GroupRoot; @@ -59,19 +57,18 @@ import net.sourceforge.plantuml.cucadiagram.LeafType; import net.sourceforge.plantuml.cucadiagram.Link; import net.sourceforge.plantuml.cucadiagram.LongCode; -import net.sourceforge.plantuml.cucadiagram.Member; -import net.sourceforge.plantuml.cucadiagram.PortionShower; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.cucadiagram.dot.Neighborhood; +import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockVertical2; import net.sourceforge.plantuml.graphic.USymbol; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.svek.IEntityImage; import net.sourceforge.plantuml.svek.PackageStyle; import net.sourceforge.plantuml.svek.SingleStrategy; -import net.sourceforge.plantuml.ugraphic.UStroke; +import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.utils.UniqueSequence; final class EntityImpl implements ILeaf, IGroup { @@ -95,25 +92,17 @@ private boolean top; - private final List mouseOver = new ArrayList(); - // Group private Code namespace2; private GroupType groupType; - private boolean autonom = true; - // Other - - private HtmlColor specificBackcolor; private boolean nearDecoration = false; private int xposition; private IEntityImage svekImage; private boolean removed = false; - private HtmlColor specificLineColor; - private UStroke specificStroke; private USymbol symbol; private final int rawLayout; private char concurrentSeparator; @@ -178,10 +167,13 @@ throw new IllegalArgumentException("type=" + leafType); } if (newType != LeafType.ANNOTATION && newType != LeafType.ABSTRACT_CLASS && newType != LeafType.CLASS - && newType != LeafType.ENUM && newType != LeafType.INTERFACE) { + && newType != LeafType.ENUM && newType != LeafType.INTERFACE && newType != LeafType.OBJECT) { throw new IllegalArgumentException("newtype=" + newType); } } + if (leafType == LeafType.CLASS && newType == LeafType.OBJECT) { + bodier.muteClassToObject(); + } this.leafType = newType; this.symbol = newSymbol; } @@ -222,20 +214,12 @@ return code + " " + display + "(" + leafType + ") " + xposition + " " + getUid(); } - public HtmlColor getSpecificBackColor() { - return specificBackcolor; - } - - public void setSpecificBackcolor(HtmlColor color) { - this.specificBackcolor = color; - } - public final Url getUrl99() { return url; } public boolean hasUrl() { - if (display != null && display.hasUrl()) { + if (Display.isNull(display) == false && display.hasUrl()) { return true; } if (bodier.hasUrl()) { @@ -288,72 +272,8 @@ return generic; } - public BlockMember getBody(final PortionShower portionShower) { - checkNotGroup(); - final boolean showMethods = portionShower.showPortion(EntityPortion.METHOD, EntityImpl.this); - final boolean showFields = portionShower.showPortion(EntityPortion.FIELD, EntityImpl.this); - if (getEntityType().isLikeClass() && bodier.isBodyEnhanced()) { - if (showMethods && showFields) { - return bodier.getBodyEnhanced(); - } - return new BlockMember() { - public TextBlock asTextBlock(FontParam fontParam, ISkinParam skinParam) { - return null; - } - }; - } - return new BlockMember() { - public TextBlock asTextBlock(FontParam fontParam, ISkinParam skinParam) { - if (getEntityType().isLikeClass()) { - - if (showFields && showMethods) { - return new TextBlockVertical2(new BlockMemberImpl(getFieldsToDisplay()).asTextBlock(fontParam, - skinParam), - new BlockMemberImpl(getMethodsToDisplay()).asTextBlock(fontParam, skinParam), - HorizontalAlignment.LEFT); - } else if (showFields) { - return new BlockMemberImpl(getFieldsToDisplay()).asTextBlock(fontParam, skinParam); - } else if (showMethods) { - return new BlockMemberImpl(getMethodsToDisplay()).asTextBlock(fontParam, skinParam); - } - return null; - } - if (getEntityType() == LeafType.OBJECT) { - return new BlockMemberImpl(getFieldsToDisplay()).asTextBlock(fontParam, skinParam); - } - throw new UnsupportedOperationException(); - } - }; - } - - public BlockMember getMouseOver() { - if (mouseOver.size() == 0) { - return null; - } - return new BlockMember() { - public TextBlock asTextBlock(FontParam fontParam, ISkinParam skinParam) { - return new BodyEnhanced(mouseOver, fontParam, skinParam, leafType.manageModifier()); - } - }; - } - - public void mouseOver(String s) { - mouseOver.add(s); - } - - public List getFieldsToDisplay() { - // checkNotGroup(); - return bodier.getFieldsToDisplay(); - } - - public List getMethodsToDisplay() { - // checkNotGroup(); - return bodier.getMethodsToDisplay(); - } - - public void addFieldOrMethod(String s) { - // checkNotGroup(); - bodier.addFieldOrMethod(s); + public Bodier getBodier() { + return bodier; } public EntityPosition getEntityPosition() { @@ -368,14 +288,7 @@ if (stereotype == null) { return EntityPosition.NORMAL; } - final String label = stereotype.getLabel(false); - if ("<>".equalsIgnoreCase(label)) { - return EntityPosition.ENTRY_POINT; - } - if ("<>".equalsIgnoreCase(label)) { - return EntityPosition.EXIT_POINT; - } - return EntityPosition.NORMAL; + return EntityPosition.fromStereotype(stereotype.getLabel(false)); } @@ -474,16 +387,6 @@ return namespace2; } - public boolean isAutonom() { - checkGroup(); - return autonom; - } - - public void setAutonom(boolean autonom) { - this.autonom = autonom; - - } - public PackageStyle getPackageStyle() { checkGroup(); if (stereotype == null) { @@ -542,7 +445,7 @@ } public boolean isHidden() { - if (entityFactory.isHidden(leafType)) { + if (entityFactory.isHidden(this)) { return true; } if (stereotype != null) { @@ -552,6 +455,9 @@ } public USymbol getUSymbol() { + if (symbol != null && stereotype != null && stereotype.getSprite() != null) { + return symbol.withStereoAlignment(HorizontalAlignment.RIGHT); + } return symbol; } @@ -587,22 +493,6 @@ this.removed = removed; } - public HtmlColor getSpecificLineColor() { - return specificLineColor; - } - - public void setSpecificLineColor(HtmlColor specificLinecolor) { - this.specificLineColor = specificLinecolor; - } - - public UStroke getSpecificLineStroke() { - return specificStroke; - } - - public void setSpecificLineStroke(UStroke specificLineStroke) { - this.specificStroke = specificLineStroke; - } - private int layer; public int getHectorLayer() { @@ -620,13 +510,22 @@ return longCode; } - public FontParam getTitleFontParam() { + private FontParam getTitleFontParam() { if (symbol != null) { return symbol.getFontParam(); } return getGroupType() == GroupType.STATE ? FontParam.STATE : FontParam.PACKAGE; } + public FontConfiguration getFontConfigurationForTitle(final ISkinParam skinParam) { + final FontParam fontParam = getTitleFontParam(); + final HtmlColor fontHtmlColor = skinParam.getFontHtmlColor(getStereotype(), fontParam, FontParam.PACKAGE); + final UFont font = skinParam.getFont(getStereotype(), true, fontParam, FontParam.PACKAGE); + final FontConfiguration fontConfiguration = new FontConfiguration(font, fontHtmlColor, + skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink(), skinParam.getTabSize()); + return fontConfiguration; + } + public final int getRawLayout() { return rawLayout; } @@ -649,4 +548,45 @@ return neighborhood; } + private final Map tips = new LinkedHashMap(); + + public void putTip(String member, Display display) { + tips.put(member, display); + } + + public Map getTips() { + return Collections.unmodifiableMap(tips); + } + + private Colors colors = Colors.empty(); + + public Colors getColors(ISkinParam skinParam) { + return colors; + } + + public void setColors(Colors colors) { + this.colors = colors; + } + + public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color) { + if (color != null) { + this.colors = colors.add(type, color); + } + } + + // public void setSpecificLineStroke(UStroke specificLineStroke) { + // colors = colors.addSpecificLineStroke(specificLineStroke); + // } + + @Deprecated + public void applyStroke(String s) { + throw new UnsupportedOperationException(); + // if (s == null) { + // return; + // } + // final LinkStyle style = LinkStyle.valueOf(StringUtils.goUpperCase(s)); + // colors = colors.addSpecificLineStroke(style); + // // setSpecificLineStroke(LinkStyle.getStroke(style)); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/EntityGender.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/EntityGender.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/EntityGender.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/EntityGender.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/EntityGenderUtils.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/EntityGenderUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/EntityGenderUtils.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/EntityGenderUtils.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -88,7 +88,6 @@ }; } - static public EntityGender all() { return new EntityGender() { public boolean contains(IEntity test) { @@ -100,7 +99,7 @@ static public EntityGender emptyMethods() { return new EntityGender() { public boolean contains(IEntity test) { - return test.getMethodsToDisplay().size()==0; + return test.getBodier().getMethodsToDisplay().size() == 0; } }; } @@ -108,7 +107,7 @@ static public EntityGender emptyFields() { return new EntityGender() { public boolean contains(IEntity test) { - return test.getFieldsToDisplay().size()==0; + return test.getBodier().getFieldsToDisplay().size() == 0; } }; } @@ -116,7 +115,8 @@ static public EntityGender emptyMembers() { return new EntityGender() { public boolean contains(IEntity test) { - return test.getMethodsToDisplay().size()==0 && test.getFieldsToDisplay().size()==0; + return test.getBodier().getMethodsToDisplay().size() == 0 + && test.getBodier().getFieldsToDisplay().size() == 0; } }; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/EntityPortion.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/EntityPortion.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/EntityPortion.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/EntityPortion.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/EntityPosition.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/EntityPosition.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/EntityPosition.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/EntityPosition.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,7 +34,124 @@ */ package net.sourceforge.plantuml.cucadiagram; +import java.awt.geom.Dimension2D; +import java.awt.geom.Point2D; +import java.util.EnumSet; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.svek.ShapeType; +import net.sourceforge.plantuml.ugraphic.Shadowable; +import net.sourceforge.plantuml.ugraphic.UEllipse; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.ULine; +import net.sourceforge.plantuml.ugraphic.URectangle; +import net.sourceforge.plantuml.ugraphic.UTranslate; + public enum EntityPosition { - NORMAL, ENTRY_POINT, EXIT_POINT + NORMAL, ENTRY_POINT, EXIT_POINT, INPUT_PIN, OUTPUT_PIN, EXPANSION_INPUT, EXPANSION_OUTPUT; + + public static final double RADIUS = 6; + + public void drawSymbol(UGraphic ug, Rankdir rankdir) { + if (this == NORMAL) { + throw new IllegalStateException(); + } else if (this == ENTRY_POINT || this == EXIT_POINT) { + final Shadowable circle = new UEllipse(RADIUS * 2, RADIUS * 2); + ug.draw(circle); + if (this == EntityPosition.EXIT_POINT) { + final double xc = 0 + RADIUS + .5; + final double yc = 0 + RADIUS + .5; + final double radius = RADIUS - .5; + drawLine(ug, getPointOnCircle(xc, yc, Math.PI / 4, radius), + getPointOnCircle(xc, yc, Math.PI + Math.PI / 4, radius)); + drawLine(ug, getPointOnCircle(xc, yc, -Math.PI / 4, radius), + getPointOnCircle(xc, yc, Math.PI - Math.PI / 4, radius)); + } + } else if (this == INPUT_PIN || this == OUTPUT_PIN) { + final Shadowable rectangle = new URectangle(RADIUS * 2, RADIUS * 2); + ug.draw(rectangle); + } else if (this == EXPANSION_INPUT || this == EXPANSION_OUTPUT) { + if (rankdir == Rankdir.TOP_TO_BOTTOM) { + final Shadowable rectangle = new URectangle(RADIUS * 2 * 4, RADIUS * 2); + ug.draw(rectangle); + final ULine vline = new ULine(0, RADIUS * 2); + ug.apply(new UTranslate(RADIUS * 2, 0)).draw(vline); + ug.apply(new UTranslate(RADIUS * 2 * 2, 0)).draw(vline); + ug.apply(new UTranslate(RADIUS * 2 * 3, 0)).draw(vline); + } else { + final Shadowable rectangle = new URectangle(RADIUS * 2, RADIUS * 2 * 4); + ug.apply(new UTranslate(0, 0)).draw(rectangle); + final ULine hline = new ULine(RADIUS * 2, 0); + ug.apply(new UTranslate(0, RADIUS * 2)).draw(hline); + ug.apply(new UTranslate(0, RADIUS * 2 * 2)).draw(hline); + ug.apply(new UTranslate(0, RADIUS * 2 * 3)).draw(hline); + } + } + + } + + public Dimension2D getDimension(Rankdir rankdir) { + if (this == EXPANSION_INPUT || this == EXPANSION_OUTPUT) { + if (rankdir == Rankdir.TOP_TO_BOTTOM) { + return new Dimension2DDouble(EntityPosition.RADIUS * 2 * 4, EntityPosition.RADIUS * 2); + } + return new Dimension2DDouble(EntityPosition.RADIUS * 2, EntityPosition.RADIUS * 2 * 4); + } + return new Dimension2DDouble(EntityPosition.RADIUS * 2, EntityPosition.RADIUS * 2); + } + + private Point2D getPointOnCircle(double xc, double yc, double angle, double radius) { + final double x = xc + radius * Math.cos(angle); + final double y = yc + radius * Math.sin(angle); + return new Point2D.Double(x, y); + } + + static private void drawLine(UGraphic ug, Point2D p1, Point2D p2) { + final double dx = p2.getX() - p1.getX(); + final double dy = p2.getY() - p1.getY(); + ug.apply(new UTranslate(p1.getX(), p1.getY())).draw(new ULine(dx, dy)); + + } + + public ShapeType getShapeType() { + if (this == NORMAL) { + throw new IllegalStateException(); + } + if (this == ENTRY_POINT || this == EXIT_POINT) { + return ShapeType.CIRCLE; + } + return ShapeType.RECTANGLE; + } + + public static EntityPosition fromStereotype(String label) { + if ("<>".equalsIgnoreCase(label)) { + return ENTRY_POINT; + } + if ("<>".equalsIgnoreCase(label)) { + return EXIT_POINT; + } + if ("<>".equalsIgnoreCase(label)) { + return INPUT_PIN; + } + if ("<>".equalsIgnoreCase(label)) { + return OUTPUT_PIN; + } + if ("<>".equalsIgnoreCase(label)) { + return EXPANSION_INPUT; + } + if ("<>".equalsIgnoreCase(label)) { + return EXPANSION_OUTPUT; + } + return EntityPosition.NORMAL; + } + + public static EnumSet getInputs() { + return EnumSet.of(ENTRY_POINT, INPUT_PIN, EXPANSION_INPUT); + } + + public static EnumSet getOutputs() { + return EnumSet.of(EXIT_POINT, OUTPUT_PIN, EXPANSION_OUTPUT); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/EntityUtils.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/EntityUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/EntityUtils.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/EntityUtils.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/GroupHierarchy.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/GroupHierarchy.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/GroupHierarchy.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/GroupHierarchy.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/GroupPrinter.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/GroupPrinter.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/GroupPrinter.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/GroupPrinter.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/GroupRoot.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/GroupRoot.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/GroupRoot.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/GroupRoot.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,12 +38,18 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Map; import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.cucadiagram.entity.EntityFactory; +import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.USymbol; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.svek.IEntityImage; import net.sourceforge.plantuml.svek.PackageStyle; import net.sourceforge.plantuml.svek.SingleStrategy; @@ -106,17 +112,7 @@ } - public List getFieldsToDisplay() { - throw new UnsupportedOperationException(); - - } - - public List getMethodsToDisplay() { - throw new UnsupportedOperationException(); - - } - - public BlockMember getBody(PortionShower portionShower) { + public TextBlock getBody(PortionShower portionShower, FontParam fontParam, ISkinParam skinParam) { throw new UnsupportedOperationException(); } @@ -129,35 +125,11 @@ return null; } - public BlockMember getMouseOver() { - throw new UnsupportedOperationException(); - } - - public void addFieldOrMethod(String s) { - throw new UnsupportedOperationException(); - - } - - public void mouseOver(String s) { - throw new UnsupportedOperationException(); - - } - public void addUrl(Url url) { throw new UnsupportedOperationException(); } - public HtmlColor getSpecificBackColor() { - throw new UnsupportedOperationException(); - - } - - public void setSpecificBackcolor(HtmlColor specificBackcolor) { - throw new UnsupportedOperationException(); - - } - public IGroup getParentContainer() { return null; } @@ -194,16 +166,6 @@ } - public boolean isAutonom() { - throw new UnsupportedOperationException(); - - } - - public void setAutonom(boolean autonom) { - throw new UnsupportedOperationException(); - - } - public PackageStyle getPackageStyle() { throw new UnsupportedOperationException(); @@ -234,47 +196,67 @@ return false; } - public HtmlColor getSpecificLineColor() { - return null; + public boolean hasUrl() { + return false; } - public void setSpecificLineColor(HtmlColor specificLinecolor) { + public int getHectorLayer() { throw new UnsupportedOperationException(); } - public UStroke getSpecificLineStroke() { - return null; + public void setHectorLayer(int layer) { + throw new UnsupportedOperationException(); } - public void setSpecificLineStroke(UStroke specificLineStoke) { + public int getRawLayout() { throw new UnsupportedOperationException(); } - public boolean hasUrl() { - return false; + public char getConcurrentSeparator() { + throw new UnsupportedOperationException(); } - public int getHectorLayer() { + public void setConcurrentSeparator(char separator) { + // throw new UnsupportedOperationException(); + } + + public void putTip(String member, Display display) { throw new UnsupportedOperationException(); } - public void setHectorLayer(int layer) { + public Map getTips() { throw new UnsupportedOperationException(); } - public FontParam getTitleFontParam() { + public Bodier getBodier() { throw new UnsupportedOperationException(); } - public int getRawLayout() { + public Colors getColors(ISkinParam skinParam) { + return Colors.empty(); + } + + public void setColors(Colors colors) { throw new UnsupportedOperationException(); } - public char getConcurrentSeparator() { + public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color) { throw new UnsupportedOperationException(); } - public void setConcurrentSeparator(char separator) { + public void setSpecificLineStroke(UStroke specificLineStroke) { + throw new UnsupportedOperationException(); + } + + public void applyStroke(String s) { + throw new UnsupportedOperationException(); + } + + public void applyStroke(Colors colors) { + throw new UnsupportedOperationException(); + } + + public FontConfiguration getFontConfigurationForTitle(ISkinParam skinParam) { throw new UnsupportedOperationException(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/GroupType.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/GroupType.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/GroupType.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/GroupType.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Ident.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Ident.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Ident.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Ident.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/IEntity.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/IEntity.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/IEntity.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/IEntity.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,7 +34,7 @@ */ package net.sourceforge.plantuml.cucadiagram; -import java.util.List; +import java.util.Map; import net.sourceforge.plantuml.Hideable; import net.sourceforge.plantuml.LineConfigurable; @@ -42,6 +42,7 @@ import net.sourceforge.plantuml.SpecificBackcolorable; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.graphic.USymbol; +import net.sourceforge.plantuml.graphic.color.Colors; public interface IEntity extends SpecificBackcolorable, Hideable, Removeable, LineConfigurable { @@ -69,17 +70,7 @@ public void setStereotype(Stereotype stereotype); - public List getFieldsToDisplay(); - - public List getMethodsToDisplay(); - - public BlockMember getBody(PortionShower portionShower); - - public BlockMember getMouseOver(); - - public void addFieldOrMethod(String s); - - public void mouseOver(String s); + public Bodier getBodier(); public void addUrl(Url url); @@ -93,4 +84,11 @@ public int getRawLayout(); + public void putTip(String member, Display display); + + public Map getTips(); + + @Deprecated + public void applyStroke(String s); + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/IGroup.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/IGroup.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/IGroup.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/IGroup.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,7 +36,8 @@ import java.util.Collection; -import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.svek.IEntityImage; import net.sourceforge.plantuml.svek.PackageStyle; import net.sourceforge.plantuml.svek.SingleStrategy; @@ -57,19 +58,15 @@ public Code getNamespace2(); - public boolean isAutonom(); - - public void setAutonom(boolean autonom); - public PackageStyle getPackageStyle(); public void overideImage(IEntityImage img, LeafType state); public SingleStrategy getSingleStrategy(); - public FontParam getTitleFontParam(); - + public FontConfiguration getFontConfigurationForTitle(ISkinParam skinParam); + public char getConcurrentSeparator(); - + public void setConcurrentSeparator(char separator); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/ILeaf.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/ILeaf.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/ILeaf.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/ILeaf.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LeafType.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LeafType.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LeafType.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LeafType.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,7 +40,7 @@ EMPTY_PACKAGE, - ABSTRACT_CLASS, CLASS, INTERFACE, ANNOTATION, LOLLIPOP, NOTE, OBJECT, ASSOCIATION, ENUM, + ABSTRACT_CLASS, CLASS, INTERFACE, ANNOTATION, LOLLIPOP, NOTE, TIPS, OBJECT, ASSOCIATION, ENUM, USECASE, diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkArrow.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkArrow.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkArrow.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkDecor.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkDecor.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkDecor.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkDecor.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkHat.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkHat.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkHat.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkHat.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Link.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Link.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Link.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Link.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -46,11 +46,10 @@ import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.HtmlColorSet; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.graphic.USymbolInterface; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.utils.UniqueSequence; @@ -68,7 +67,7 @@ private Display note; private Position notePosition; - private HtmlColor noteColor; + private Colors noteColors; private boolean invis = false; private double weight = 1.0; @@ -111,8 +110,8 @@ this.cl1 = cl1; this.cl2 = cl2; this.type = type; - if (label == null) { - this.label = null; + if (Display.isNull(label)) { + this.label = Display.NULL; } else if (doWeHaveToRemoveUrlAtStart(label)) { this.url = label.initUrl(); this.label = label.removeUrl(url); @@ -131,9 +130,9 @@ if (qualifier2 != null) { ((ILeaf) cl2).setNearDecoration(true); } -// if (type.getDecor2() == LinkDecor.EXTENDS) { -// setSametail(cl1.getUid()); -// } + // if (type.getDecor2() == LinkDecor.EXTENDS) { + // setSametail(cl1.getUid()); + // } } private static boolean doWeHaveToRemoveUrlAtStart(Display label) { @@ -247,6 +246,25 @@ return result; } + private boolean isReallyGroup(IEntity ent) { + if (ent.isGroup() == false) { + return false; + } + final IGroup group = (IGroup) ent; + return group.getChildren().size() + group.getLeafsDirect().size() > 0; + } + + public LinkType getTypePatchCluster() { + LinkType result = getType(); + if (isReallyGroup(getEntity1())) { + result = result.withoutDecors2(); + } + if (isReallyGroup(getEntity2())) { + result = result.withoutDecors1(); + } + return result; + } + private LinkType getTypeSpecialForPrinting() { if (opale) { return new LinkType(LinkDecor.NONE, LinkDecor.NONE); @@ -299,25 +317,25 @@ return note; } - public final HtmlColor getNoteColor() { - return noteColor; + public final Colors getNoteColors() { + return noteColors; } public final Position getNotePosition() { return notePosition; } - public final void addNote(Display note, Position position, HtmlColor noteColor) { + public final void addNote(Display note, Position position, Colors colors) { this.note = note; this.notePosition = position; - this.noteColor = noteColor; + this.noteColors = colors; } - public final void addNote(String n, Position position, HtmlColor noteColor) { - this.note = Display.getWithNewlines(n); - this.notePosition = position; - this.noteColor = noteColor; - } + // public final void addNote(String n, Position position, Colors colors) { + // this.note = Display.getWithNewlines(n); + // this.notePosition = position; + // this.noteColors = colors; + // } public boolean isAutoLinkOfAGroup() { if (getEntity1().isGroup() == false) { @@ -371,8 +389,8 @@ private double getQualifierMargin(StringBounder stringBounder, UFont fontQualif, String qualif, ISkinSimple spriteContainer) { if (qualif != null) { - final TextBlock b = TextBlockUtils.create(Display.create(qualif), new FontConfiguration(fontQualif, - HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.LEFT, spriteContainer); + final TextBlock b = Display.create(qualif).create(FontConfiguration.blackBlueTrue(fontQualif), + HorizontalAlignment.LEFT, spriteContainer); final Dimension2D dim = b.calculateDimension(stringBounder); return Math.max(dim.getWidth(), dim.getHeight()); } @@ -481,7 +499,7 @@ } public boolean hasUrl() { - if (label != null && label.hasUrl()) { + if (Display.isNull(label) == false && label.hasUrl()) { return true; } return getUrl() != null; @@ -495,4 +513,14 @@ this.sametail = sametail; } + private Colors colors; + + public void setColors(Colors colors) { + this.colors = colors; + } + + public final Colors getColors() { + return colors; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkMiddleDecor.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkMiddleDecor.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkMiddleDecor.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkMiddleDecor.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkStyle.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkStyle.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkStyle.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkStyle.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,10 +34,27 @@ */ package net.sourceforge.plantuml.cucadiagram; +import net.sourceforge.plantuml.ugraphic.UStroke; + public enum LinkStyle { NORMAL, DASHED, DOTTED, BOLD, INVISIBLE, DOUBLE_tobedone, __toremove_INTERFACE_PROVIDER, __toremove_INTERFACE_USER; + + public static UStroke getStroke(LinkStyle style) { + if (style == LinkStyle.DASHED) { + return new UStroke(6, 6, 1); + } + if (style == LinkStyle.DOTTED) { + return new UStroke(1, 3, 1); + } + if (style == LinkStyle.BOLD) { + return new UStroke(2.5); + } + return new UStroke(); + } + + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkType.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkType.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LinkType.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LinkType.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -53,6 +53,14 @@ this(hat1, decor1, LinkStyle.NORMAL, LinkMiddleDecor.NONE, decor2, hat2); } + public LinkType withoutDecors1() { + return new LinkType(hat1, LinkDecor.NONE, style, middleDecor, decor2, hat2); + } + + public LinkType withoutDecors2() { + return new LinkType(hat1, decor1, style, middleDecor, LinkDecor.NONE, hat2); + } + // public boolean contains(LinkDecor decors) { // return decor1 == decors || decor2 == decors; // } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LongCode.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LongCode.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/LongCode.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/LongCode.java 2016-04-22 16:26:22.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Magma.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Magma.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Magma.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Magma.java 2016-04-22 16:26:23.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -50,11 +50,11 @@ public void putInSquare() { final SquareLinker linker = new SquareLinker() { public void topDown(ILeaf top, ILeaf down) { - system.addLink(new Link(top, down, linkType, null, 2)); + system.addLink(new Link(top, down, linkType, Display.NULL, 2)); } public void leftRight(ILeaf left, ILeaf right) { - system.addLink(new Link(left, right, linkType, null, 1)); + system.addLink(new Link(left, right, linkType, Display.NULL, 1)); } }; new SquareMaker().putInSquare(standalones, linker); @@ -100,12 +100,12 @@ } public void linkToDown(Magma down) { - system.addLink(new Link(this.getBottomLeft(), down.getTopLeft(), linkType, null, 2)); + system.addLink(new Link(this.getBottomLeft(), down.getTopLeft(), linkType, Display.NULL, 2)); } public void linkToRight(Magma right) { - system.addLink(new Link(this.getTopRight(), right.getTopLeft(), linkType, null, 1)); + system.addLink(new Link(this.getTopRight(), right.getTopLeft(), linkType, Display.NULL, 1)); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/MagmaList.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/MagmaList.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/MagmaList.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/MagmaList.java 2016-04-22 16:26:23.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/MemberImpl.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/MemberImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/MemberImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/MemberImpl.java 2016-04-22 16:26:23.000000000 +0000 @@ -0,0 +1,210 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.cucadiagram; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.Url; +import net.sourceforge.plantuml.UrlBuilder; +import net.sourceforge.plantuml.UrlBuilder.ModeUrl; +import net.sourceforge.plantuml.command.regex.MyPattern; +import net.sourceforge.plantuml.skin.VisibilityModifier; + +public class MemberImpl implements Member { + + private final String display; + private final boolean staticModifier; + private final boolean abstractModifier; + private final Url url; + private final boolean hasUrl; + + private final VisibilityModifier visibilityModifier; + + public MemberImpl(String tmpDisplay, boolean isMethod, boolean manageModifier, boolean manageUrl) { + tmpDisplay = tmpDisplay.replaceAll("(?i)\\{(method|field)\\}\\s*", ""); + if (manageModifier) { + this.hasUrl = new UrlBuilder(null, ModeUrl.ANYWHERE).getUrl(tmpDisplay) != null; + final Pattern pstart = MyPattern.cmpile("^(" + UrlBuilder.getRegexp() + ")([^\\[\\]]+)$"); + final Matcher mstart = pstart.matcher(tmpDisplay); + + if (mstart.matches()) { + if (mstart.groupCount() != 4) { + throw new IllegalStateException(); + } + final UrlBuilder urlBuilder = new UrlBuilder(null, ModeUrl.AT_START); + this.url = urlBuilder.getUrl(mstart.group(1)); + this.url.setMember(true); + tmpDisplay = /* mstart.group(1).trim() + */StringUtils.trin(mstart.group(mstart.groupCount())); + } else { + final Pattern pend = MyPattern.cmpile("^((?:[^\\[\\]]|\\[[^\\[\\]]*\\])+)(" + UrlBuilder.getRegexp() + + ")$"); + final Matcher mend = pend.matcher(tmpDisplay); + + if (mend.matches()) { + if (mend.groupCount() != 4) { + throw new IllegalStateException(); + } + final UrlBuilder urlBuilder = new UrlBuilder(null, ModeUrl.AT_END); + this.url = urlBuilder.getUrl(mend.group(2)); + this.url.setMember(true); + tmpDisplay = StringUtils.trin(mend.group(1)); + } else { + this.url = null; + } + } + } else { + this.url = null; + this.hasUrl = false; + } + + final String lower = StringUtils.goLowerCase(tmpDisplay); + + if (manageModifier) { + this.staticModifier = lower.contains("{static}") || lower.contains("{classifier}"); + this.abstractModifier = lower.contains("{abstract}"); + String displayClean = tmpDisplay.replaceAll("(?i)\\{(static|classifier|abstract)\\}\\s*", ""); + if (displayClean.length() == 0) { + displayClean = " "; + } + + if (VisibilityModifier.isVisibilityCharacter(displayClean.charAt(0))) { + visibilityModifier = VisibilityModifier + .getVisibilityModifier(displayClean.charAt(0), isMethod == false); + this.display = StringUtils.trin(StringUtils.manageGuillemet(displayClean.substring(1))); + } else { + this.display = StringUtils.manageGuillemet(displayClean); + visibilityModifier = null; + } + } else { + this.staticModifier = false; + this.visibilityModifier = null; + this.abstractModifier = false; + tmpDisplay = StringUtils.trin(tmpDisplay); + this.display = tmpDisplay.length() == 0 ? " " : StringUtils.manageGuillemet(StringUtils.trin(tmpDisplay)); + } + } + + public String getDisplay(boolean withVisibilityChar) { + if (withVisibilityChar) { + return getDisplayWithVisibilityChar(); + } + return getDisplayWithoutVisibilityChar(); + } + + private String getDisplayWithoutVisibilityChar() { + // assert display.length() == 0 || VisibilityModifier.isVisibilityCharacter(display.charAt(0)) == false; + return display; + } + + public String getDisplayWithVisibilityChar() { + if (isPrivate()) { + return "-" + display; + } + if (isPublic()) { + return "+" + display; + } + if (isPackagePrivate()) { + return "~" + display; + } + if (isProtected()) { + return "#" + display; + } + return display; + } + + @Override + public boolean equals(Object obj) { + final MemberImpl other = (MemberImpl) obj; + return this.display.equals(other.display); + } + + @Override + public int hashCode() { + return display.hashCode(); + } + + public final boolean isStatic() { + return staticModifier; + } + + public final boolean isAbstract() { + return abstractModifier; + } + + private boolean isPrivate() { + return visibilityModifier == VisibilityModifier.PRIVATE_FIELD + || visibilityModifier == VisibilityModifier.PRIVATE_METHOD; + } + + private boolean isProtected() { + return visibilityModifier == VisibilityModifier.PROTECTED_FIELD + || visibilityModifier == VisibilityModifier.PROTECTED_METHOD; + } + + private boolean isPublic() { + return visibilityModifier == VisibilityModifier.PUBLIC_FIELD + || visibilityModifier == VisibilityModifier.PUBLIC_METHOD; + } + + private boolean isPackagePrivate() { + return visibilityModifier == VisibilityModifier.PACKAGE_PRIVATE_FIELD + || visibilityModifier == VisibilityModifier.PACKAGE_PRIVATE_METHOD; + } + + public final VisibilityModifier getVisibilityModifier() { + return visibilityModifier; + } + + public final Url getUrl() { + return url; + } + + public boolean hasUrl() { + return hasUrl; + } + + public static boolean isMethod(String s) { + if (s.contains("{method}")) { + return true; + } + if (s.contains("{field}")) { + return false; + } + return s.contains("(") || s.contains(")"); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Member.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Member.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Member.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Member.java 2016-04-22 16:26:23.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,159 +34,20 @@ */ package net.sourceforge.plantuml.cucadiagram; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; -import net.sourceforge.plantuml.UrlBuilder; -import net.sourceforge.plantuml.UrlBuilder.ModeUrl; -import net.sourceforge.plantuml.command.regex.MyPattern; import net.sourceforge.plantuml.skin.VisibilityModifier; -public class Member { +public interface Member { + + public Url getUrl(); + + public String getDisplay(boolean withVisibilityChar); + + public boolean hasUrl(); + + public VisibilityModifier getVisibilityModifier(); - private final String display; - private final boolean staticModifier; - private final boolean abstractModifier; - private final Url url; - private final boolean hasUrl; - - private final VisibilityModifier visibilityModifier; - - public Member(String display, boolean isMethod, boolean manageModifier) { - this.hasUrl = new UrlBuilder(null, ModeUrl.ANYWHERE).getUrl(display) != null; - final Pattern pstart = MyPattern.cmpile("^(" + UrlBuilder.getRegexp() + ")([^\\[\\]]+)$"); - final Matcher mstart = pstart.matcher(display); - - if (mstart.matches()) { - if (mstart.groupCount() != 5) { - throw new IllegalStateException(); - } - final UrlBuilder urlBuilder = new UrlBuilder(null, ModeUrl.AT_START); - url = urlBuilder.getUrl(mstart.group(1)); - url.setMember(true); - display = /* mstart.group(1).trim() + */mstart.group(mstart.groupCount()).trim(); - } else { - final Pattern pend = MyPattern.cmpile("^((?:[^\\[\\]]|\\[[^\\[\\]]*\\])+)(" + UrlBuilder.getRegexp() + ")$"); - final Matcher mend = pend.matcher(display); - - if (mend.matches()) { - if (mend.groupCount() != 5) { - throw new IllegalStateException(); - } - final UrlBuilder urlBuilder = new UrlBuilder(null, ModeUrl.AT_END); - url = urlBuilder.getUrl(mend.group(2)); - url.setMember(true); - display = mend.group(1).trim(); - } else { - url = null; - } - } - - final String lower = StringUtils.goLowerCase(display); - - if (manageModifier) { - this.staticModifier = lower.contains("{static}") || lower.contains("{classifier}"); - this.abstractModifier = lower.contains("{abstract}"); - String displayClean = display.replaceAll("(?i)\\{(static|classifier|abstract)\\}", "").trim(); - if (displayClean.length() == 0) { - displayClean = " "; - } - - if (VisibilityModifier.isVisibilityCharacter(displayClean.charAt(0))) { - visibilityModifier = VisibilityModifier.getVisibilityModifier(display.charAt(0), isMethod == false); - this.display = displayClean.substring(1).trim(); - } else { - this.display = displayClean; - visibilityModifier = null; - } - } else { - this.staticModifier = false; - this.visibilityModifier = null; - this.abstractModifier = false; - display = display.trim(); - this.display = display.length() == 0 ? " " : display.trim(); - } - } - - public String getDisplay(boolean withVisibilityChar) { - if (withVisibilityChar) { - return getDisplayWithVisibilityChar(); - } - return getDisplayWithoutVisibilityChar(); - } - - public String getDisplayWithoutVisibilityChar() { - // assert display.length() == 0 || VisibilityModifier.isVisibilityCharacter(display.charAt(0)) == false; - return display; - } - - public String getDisplayWithVisibilityChar() { - if (isPrivate()) { - return "-" + display; - } - if (isPublic()) { - return "+" + display; - } - if (isPackagePrivate()) { - return "~" + display; - } - if (isProtected()) { - return "#" + display; - } - return display; - } - - @Override - public boolean equals(Object obj) { - final Member other = (Member) obj; - return this.display.equals(other.display); - } - - @Override - public int hashCode() { - return display.hashCode(); - } - - public final boolean isStatic() { - return staticModifier; - } - - public final boolean isAbstract() { - return abstractModifier; - } - - private boolean isPrivate() { - return visibilityModifier == VisibilityModifier.PRIVATE_FIELD - || visibilityModifier == VisibilityModifier.PRIVATE_METHOD; - } - - private boolean isProtected() { - return visibilityModifier == VisibilityModifier.PROTECTED_FIELD - || visibilityModifier == VisibilityModifier.PROTECTED_METHOD; - } - - private boolean isPublic() { - return visibilityModifier == VisibilityModifier.PUBLIC_FIELD - || visibilityModifier == VisibilityModifier.PUBLIC_METHOD; - } - - private boolean isPackagePrivate() { - return visibilityModifier == VisibilityModifier.PACKAGE_PRIVATE_FIELD - || visibilityModifier == VisibilityModifier.PACKAGE_PRIVATE_METHOD; - } - - public final VisibilityModifier getVisibilityModifier() { - return visibilityModifier; - } - - public final Url getUrl() { - return url; - } - - public boolean hasUrl() { - return hasUrl; - } + public boolean isStatic(); + public boolean isAbstract(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/MethodsOrFieldsArea.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/MethodsOrFieldsArea.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/MethodsOrFieldsArea.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/MethodsOrFieldsArea.java 2016-04-22 16:26:23.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.cucadiagram; import java.awt.geom.Dimension2D; +import java.awt.geom.Rectangle2D; import java.util.ArrayList; import java.util.List; @@ -42,11 +43,15 @@ import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.Url; +import net.sourceforge.plantuml.creole.CreoleMode; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.TextBlockLineBefore; import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.graphic.TextBlockWidth; import net.sourceforge.plantuml.skin.VisibilityModifier; @@ -55,14 +60,17 @@ import net.sourceforge.plantuml.ugraphic.PlacementStrategyVisibility; import net.sourceforge.plantuml.ugraphic.PlacementStrategyY1Y2Center; import net.sourceforge.plantuml.ugraphic.PlacementStrategyY1Y2Left; -import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.ULayoutGroup; import net.sourceforge.plantuml.utils.CharHidder; -public class MethodsOrFieldsArea implements TextBlockWidth, TextBlock { +public class MethodsOrFieldsArea extends AbstractTextBlock implements TextBlockWidth, TextBlock { - private final UFont font; + public TextBlock asBlockMemberImpl() { + return new TextBlockLineBefore(TextBlockUtils.withMargin(this, 6, 4)); + } + + private final FontParam fontParam; private final ISkinParam skinParam; private final HtmlColor color; private final HtmlColor hyperlinkColor; @@ -70,16 +78,18 @@ private final Rose rose = new Rose(); private final List members = new ArrayList(); private final HorizontalAlignment align; + private final Stereotype stereotype; - public MethodsOrFieldsArea(List members, FontParam fontParam, ISkinParam skinParam) { - this(members, fontParam, skinParam, HorizontalAlignment.LEFT); + public MethodsOrFieldsArea(List members, FontParam fontParam, ISkinParam skinParam, Stereotype stereotype) { + this(members, fontParam, skinParam, HorizontalAlignment.LEFT, stereotype); } public MethodsOrFieldsArea(List members, FontParam fontParam, ISkinParam skinParam, - HorizontalAlignment align) { + HorizontalAlignment align, Stereotype stereotype) { + this.stereotype = stereotype; this.align = align; this.skinParam = skinParam; - this.font = skinParam.getFont(fontParam, null, false); + this.fontParam = fontParam; this.color = rose.getFontColor(skinParam, fontParam); this.hyperlinkColor = skinParam.getHyperlinkColor(); this.useUnderlineForHyperlink = skinParam.useUnderlineForHyperlink(); @@ -121,18 +131,19 @@ if (withVisibilityChar && s.startsWith("#")) { s = CharHidder.addTileAtBegin(s); } - FontConfiguration config = new FontConfiguration(font, color, hyperlinkColor, useUnderlineForHyperlink); + FontConfiguration config = new FontConfiguration(skinParam, fontParam, stereotype); if (m.isAbstract()) { config = config.italic(); } if (m.isStatic()) { config = config.underline(); } - final TextBlock bloc = TextBlockUtils.create(Display.getWithNewlines(s), config, align, skinParam, true); + TextBlock bloc = Display.getWithNewlines(s).create(config, align, skinParam, CreoleMode.SIMPLE_LINE); + bloc = TextBlockUtils.fullInnerPosition(bloc, m.getDisplay(false)); return new TextBlockTracer(m, bloc); } - static class TextBlockTracer implements TextBlock { + static class TextBlockTracer extends AbstractTextBlock implements TextBlock { private final TextBlock bloc; private final Url url; @@ -157,11 +168,16 @@ return dim; } + @Override + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + return bloc.getInnerPosition(member, stringBounder); + } + } private TextBlock getUBlock(final VisibilityModifier modifier) { if (modifier == null) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { } @@ -180,23 +196,29 @@ } public TextBlock asTextBlock(final double widthToUse) { - return new TextBlock() { + return this; + } - public void drawU(UGraphic ug) { - MethodsOrFieldsArea.this.drawU(ug); + public boolean contains(String member) { + for (Member att : members) { + if (att.getDisplay(false).startsWith(member)) { + return true; } + } + return false; + } - public Dimension2D calculateDimension(StringBounder stringBounder) { - return MethodsOrFieldsArea.this.calculateDimension(stringBounder); - } - }; + @Override + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + final ULayoutGroup group = getLayout(stringBounder); + final Dimension2D dim = calculateDimension(stringBounder); + return group.getInnerPosition(member, dim.getWidth(), dim.getHeight(), stringBounder); } - public void drawU(UGraphic ug) { - final Dimension2D dim = calculateDimension(ug.getStringBounder()); + private ULayoutGroup getLayout(final StringBounder stringBounder) { final ULayoutGroup group; if (hasSmallIcon()) { - group = new ULayoutGroup(new PlacementStrategyVisibility(ug.getStringBounder(), + group = new ULayoutGroup(new PlacementStrategyVisibility(stringBounder, skinParam.getCircledCharacterRadius() + 3)); for (Member att : members) { final TextBlock bloc = createTextBlock(att); @@ -207,9 +229,9 @@ } else { final PlacementStrategy placementStrategy; if (align == HorizontalAlignment.LEFT) { - placementStrategy = new PlacementStrategyY1Y2Left(ug.getStringBounder()); + placementStrategy = new PlacementStrategyY1Y2Left(stringBounder); } else if (align == HorizontalAlignment.CENTER) { - placementStrategy = new PlacementStrategyY1Y2Center(ug.getStringBounder()); + placementStrategy = new PlacementStrategyY1Y2Center(stringBounder); } else { throw new IllegalStateException(); } @@ -219,6 +241,13 @@ group.add(bloc); } } - group.drawU(ug, 0, 0, dim.getWidth(), dim.getHeight()); + return group; + } + + public void drawU(UGraphic ug) { + final ULayoutGroup group = getLayout(ug.getStringBounder()); + final Dimension2D dim = calculateDimension(ug.getStringBounder()); + group.drawU(ug, dim.getWidth(), dim.getHeight()); } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Namespace.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Namespace.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Namespace.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Namespace.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/PortionShower.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/PortionShower.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/PortionShower.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/PortionShower.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Rankdir.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Rankdir.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Rankdir.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Rankdir.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/RuleType.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/RuleType.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/RuleType.java 2015-05-03 15:06:15.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/RuleType.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/SquareLinker.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/SquareLinker.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/SquareLinker.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/SquareLinker.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/SquareMaker.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/SquareMaker.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/SquareMaker.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/SquareMaker.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Stereotype.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Stereotype.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/Stereotype.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/Stereotype.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -49,12 +49,13 @@ import net.sourceforge.plantuml.graphic.IHtmlColorSet; import net.sourceforge.plantuml.svek.PackageStyle; import net.sourceforge.plantuml.ugraphic.UFont; +import net.sourceforge.plantuml.ugraphic.sprite.SpriteUtils; public class Stereotype implements CharSequence, Hideable { private final static Pattern circleChar = MyPattern .cmpile("\\<\\<[%s]*\\(?(\\S)[%s]*,[%s]*(#[0-9a-fA-F]{6}|\\w+)[%s]*(?:[),](.*?))?\\>\\>"); - private final static Pattern circleSprite = MyPattern - .cmpile("\\<\\<[%s]*\\(?\\$([\\p{L}0-9_]+)[%s]*(?:,[%s]*(#[0-9a-fA-F]{6}|\\w+))?[%s]*(?:[),](.*?))?\\>\\>"); + private final static Pattern circleSprite = MyPattern.cmpile("\\<\\<[%s]*\\(?\\$(" + SpriteUtils.SPRITE_NAME + + ")[%s]*(?:,[%s]*(#[0-9a-fA-F]{6}|\\w+))?[%s]*(?:[),](.*?))?\\>\\>"); private final String label; private final HtmlColor htmlColor; @@ -121,7 +122,11 @@ this.character = '\0'; this.radius = 0; this.circledFont = null; - this.sprite = null; + if (label.startsWith("<<$") && label.endsWith(">>")) { + this.sprite = label.substring(3, label.length() - 2).trim(); + } else { + this.sprite = null; + } } public HtmlColor getHtmlColor() { @@ -146,11 +151,23 @@ return null; } if (withGuillement) { - return manageGuillemet(label); + return StringUtils.manageGuillemet(label); } return label; } + public List getMultipleLabels() { + final List result = new ArrayList(); + if (label != null) { + final Pattern p = Pattern.compile("\\<\\<\\s?([^<>]+?)\\s?\\>\\>"); + final Matcher m = p.matcher(label); + while (m.find()) { + result.add(m.group(1)); + } + } + return Collections.unmodifiableList(result); + } + public boolean isSpotted() { return character != 0; } @@ -195,7 +212,7 @@ final Matcher m = p.matcher(getLabel(false)); while (m.find()) { if (useGuillemet) { - result.add(manageGuillemet(m.group())); + result.add(StringUtils.manageGuillemetStrict(m.group())); } else { result.add(m.group()); } @@ -203,20 +220,6 @@ return Collections.unmodifiableList(result); } - private static String manageGuillemet(String st) { - if (st.startsWith("<< ")) { - st = "\u00AB" + st.substring(3); - } else if (st.startsWith("<<")) { - st = "\u00AB" + st.substring(2); - } - if (st.endsWith(" >>")) { - st = st.substring(0, st.length() - 3) + "\u00BB"; - } else if (st.endsWith(">>")) { - st = st.substring(0, st.length() - 2) + "\u00BB"; - } - return st; - } - public PackageStyle getPackageStyle() { if (automaticPackageStyle == false) { return null; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/UnparsableGraphvizException.java plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/UnparsableGraphvizException.java --- plantuml-8024/src/net/sourceforge/plantuml/cucadiagram/UnparsableGraphvizException.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cucadiagram/UnparsableGraphvizException.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/ApolloniusSolver2.java plantuml-8039/src/net/sourceforge/plantuml/cute/ApolloniusSolver2.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/ApolloniusSolver2.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/ApolloniusSolver2.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/ApolloniusSolver.java plantuml-8039/src/net/sourceforge/plantuml/cute/ApolloniusSolver.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/ApolloniusSolver.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/ApolloniusSolver.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Arc.java plantuml-8039/src/net/sourceforge/plantuml/cute/Arc.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Arc.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Arc.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Balloon.java plantuml-8039/src/net/sourceforge/plantuml/cute/Balloon.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Balloon.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Balloon.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/BetweenCorners.java plantuml-8039/src/net/sourceforge/plantuml/cute/BetweenCorners.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/BetweenCorners.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/BetweenCorners.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Cheese.java plantuml-8039/src/net/sourceforge/plantuml/cute/Cheese.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Cheese.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Cheese.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Circle.java plantuml-8039/src/net/sourceforge/plantuml/cute/Circle.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Circle.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Circle.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Corner.java plantuml-8039/src/net/sourceforge/plantuml/cute/Corner.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Corner.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Corner.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Crossing.java plantuml-8039/src/net/sourceforge/plantuml/cute/Crossing.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Crossing.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Crossing.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/CrossingSegment.java plantuml-8039/src/net/sourceforge/plantuml/cute/CrossingSegment.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/CrossingSegment.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/CrossingSegment.java 2016-04-22 16:26:24.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.cute; + +import java.awt.geom.Point2D; +import java.util.ArrayList; +import java.util.List; + +import net.sourceforge.plantuml.geom.LineSegmentDouble; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class CrossingSegment { + + private final Balloon balloon; + private final LineSegmentDouble segment; + + public CrossingSegment(Balloon balloon, LineSegmentDouble segment) { + this.balloon = balloon; + this.segment = segment; + } + + public List intersection() { + final List result = new ArrayList(); + + final UTranslate tr = new UTranslate(balloon.getCenter()); + final UTranslate trInverse = tr.reverse(); + + final CrossingSimple simple = new CrossingSimple(balloon.getRadius(), + new InfiniteLine(segment).translate(trInverse)); + for (Point2D pt : simple.intersection()) { + pt = tr.getTranslated(pt); + if (segment.isPointOnSegment(pt)) { + result.add(pt); + } + } + + return result; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/CrossingSimple.java plantuml-8039/src/net/sourceforge/plantuml/cute/CrossingSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/CrossingSimple.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/CrossingSimple.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/CutePath.java plantuml-8039/src/net/sourceforge/plantuml/cute/CutePath.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/CutePath.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/CutePath.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/CuteShapeFactory.java plantuml-8039/src/net/sourceforge/plantuml/cute/CuteShapeFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/CuteShapeFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/CuteShapeFactory.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,8 @@ import java.util.Map; +import net.sourceforge.plantuml.StringUtils; + public class CuteShapeFactory { private final Map groups; @@ -51,7 +53,7 @@ } private CuteShape createCuteShape(String data) { - data = data.toLowerCase().trim(); + data = StringUtils.trin(data.toLowerCase()); final VarArgs varArgs = new VarArgs(data); if (data.startsWith("circle ")) { return new Circle(varArgs); @@ -69,12 +71,12 @@ return new Triangle(varArgs); } final String first = data.split(" ")[0]; - System.err.println("Looking for group " + first + " in " + groups.keySet()); + // System.err.println("Looking for group " + first + " in " + groups.keySet()); final Group group = groups.get(first); if (group == null) { throw new IllegalArgumentException("Cannot find group " + first + " in " + groups.keySet()); } - System.err.println("Found group " + first + " in " + groups.keySet()); + // System.err.println("Found group " + first + " in " + groups.keySet()); return group; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/CuteShape.java plantuml-8039/src/net/sourceforge/plantuml/cute/CuteShape.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/CuteShape.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/CuteShape.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Group.java plantuml-8039/src/net/sourceforge/plantuml/cute/Group.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Group.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Group.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/InfiniteLine.java plantuml-8039/src/net/sourceforge/plantuml/cute/InfiniteLine.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/InfiniteLine.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/InfiniteLine.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,7 @@ import java.awt.geom.Point2D; +import net.sourceforge.plantuml.geom.AbstractLineSegment; import net.sourceforge.plantuml.ugraphic.UTranslate; public class InfiniteLine { @@ -48,6 +49,10 @@ this.b = b; } + public InfiniteLine(AbstractLineSegment segment) { + this(segment.getP1(), segment.getP2()); + } + @Override public String toString() { return "{" + a + ";" + b + "}"; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/MyDouble.java plantuml-8039/src/net/sourceforge/plantuml/cute/MyDouble.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/MyDouble.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/MyDouble.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/MyPoint2D.java plantuml-8039/src/net/sourceforge/plantuml/cute/MyPoint2D.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/MyPoint2D.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/MyPoint2D.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/PositionnedImpl.java plantuml-8039/src/net/sourceforge/plantuml/cute/PositionnedImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/PositionnedImpl.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/PositionnedImpl.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Positionned.java plantuml-8039/src/net/sourceforge/plantuml/cute/Positionned.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Positionned.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Positionned.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/PSystemCuteFactory.java plantuml-8039/src/net/sourceforge/plantuml/cute/PSystemCuteFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/PSystemCuteFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/PSystemCuteFactory.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/PSystemCute.java plantuml-8039/src/net/sourceforge/plantuml/cute/PSystemCute.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/PSystemCute.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/PSystemCute.java 2016-04-22 16:26:24.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,14 +36,11 @@ import java.io.IOException; import java.io.OutputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import java.util.StringTokenizer; import net.sourceforge.plantuml.AbstractPSystem; import net.sourceforge.plantuml.FileFormatOption; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.core.DiagramDescription; import net.sourceforge.plantuml.core.DiagramDescriptionImpl; import net.sourceforge.plantuml.core.ImageData; @@ -65,7 +62,7 @@ } public void doCommandLine(String line) { - line = line.trim(); + line = StringUtils.trin(line); if (line.length()==0 || line.startsWith("'")) { return; } @@ -88,7 +85,7 @@ public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException { final ImageBuilder builder = new ImageBuilder(new ColorMapperIdentity(), 1.0, null, null, null, 10, 10, null, false); - builder.addUDrawable(root); - return builder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + builder.setUDrawable(root); + return builder.writeImageTOBEMOVED(fileFormat, os); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Rectangle.java plantuml-8039/src/net/sourceforge/plantuml/cute/Rectangle.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Rectangle.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Rectangle.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/RotationZoom.java plantuml-8039/src/net/sourceforge/plantuml/cute/RotationZoom.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/RotationZoom.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/RotationZoom.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Segment.java plantuml-8039/src/net/sourceforge/plantuml/cute/Segment.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Segment.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Segment.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Stick.java plantuml-8039/src/net/sourceforge/plantuml/cute/Stick.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Stick.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Stick.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Tension.java plantuml-8039/src/net/sourceforge/plantuml/cute/Tension.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Tension.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Tension.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/TriangleCorner.java plantuml-8039/src/net/sourceforge/plantuml/cute/TriangleCorner.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/TriangleCorner.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/TriangleCorner.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/TriangleCornerSimple.java plantuml-8039/src/net/sourceforge/plantuml/cute/TriangleCornerSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/TriangleCornerSimple.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/TriangleCornerSimple.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/Triangle.java plantuml-8039/src/net/sourceforge/plantuml/cute/Triangle.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/Triangle.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/Triangle.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/cute/VarArgs.java plantuml-8039/src/net/sourceforge/plantuml/cute/VarArgs.java --- plantuml-8024/src/net/sourceforge/plantuml/cute/VarArgs.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/cute/VarArgs.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/dedication/DecoderInputStream.java plantuml-8039/src/net/sourceforge/plantuml/dedication/DecoderInputStream.java --- plantuml-8024/src/net/sourceforge/plantuml/dedication/DecoderInputStream.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/dedication/DecoderInputStream.java 2016-04-22 16:26:25.000000000 +0000 @@ -0,0 +1,103 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.dedication; + +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Random; + +public class DecoderInputStream extends FilterInputStream { + + private final byte key[]; + private int idx; + private final Random rnd; + + public DecoderInputStream(InputStream source, byte key[]) { + super(source); + this.key = key; + this.rnd = new Random(getSeed()); + } + + private long getSeed() { + long result = 17; + for (byte b : key) { + result = result * 37 + b; + } + return result; + } + + private byte getNextByte() { + for (int i = 0; i < nextKey(); i++) { + rnd.nextInt(); + } + return (byte) rnd.nextInt(); + } + + private int nextKey() { + final int result = key[idx]; + idx++; + if (idx >= key.length) { + idx = 0; + } + if (result < 0) { + return result + 256; + } + return result; + } + + @Override + public int read() throws IOException { + int b = super.read(); + if (b == -1) { + return -1; + } + b = b ^ getNextByte(); + return b; + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + final int nb = super.read(b, off, len); + if (nb == -1) { + return nb; + } + for (int i = 0; i < nb; i++) { + b[i + off] = (byte) (b[i + off] ^ getNextByte()); + } + return nb; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/dedication/Dedication.java plantuml-8039/src/net/sourceforge/plantuml/dedication/Dedication.java --- plantuml-8024/src/net/sourceforge/plantuml/dedication/Dedication.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/dedication/Dedication.java 2016-04-22 16:26:25.000000000 +0000 @@ -0,0 +1,85 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.dedication; + +import java.awt.image.BufferedImage; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; + +import javax.imageio.ImageIO; +import javax.imageio.stream.ImageInputStream; + +import net.sourceforge.plantuml.webp.VP8Decoder; + +public class Dedication { + + private final String signature; + + public Dedication(String signature) { + this.signature = signature; + } + + public String getSignature() { + return signature; + } + + public byte[] getKey(String keepLetter) { + try { + return keepLetter.getBytes("UTF8"); + } catch (UnsupportedEncodingException e) { + throw new IllegalStateException(e); + } + } + + private InputStream getInputStream(String keepLetter) { + final byte[] key = getKey(keepLetter); + final InputStream tmp = PSystemDedication.class.getResourceAsStream(getSignature() + ".png"); + return new DecoderInputStream(tmp, key); + } + + public BufferedImage getBufferedImage(String keepLetter) { + try { + final InputStream is = getInputStream(keepLetter); + final ImageInputStream iis = ImageIO.createImageInputStream(is); + final VP8Decoder vp8Decoder = new VP8Decoder(); + vp8Decoder.decodeFrame(iis, false); + iis.close(); + return vp8Decoder.getFrame().getBufferedImage(); + } catch (Exception e) { + return null; + } + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/dedication/Dedications.java plantuml-8039/src/net/sourceforge/plantuml/dedication/Dedications.java --- plantuml-8024/src/net/sourceforge/plantuml/dedication/Dedications.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/dedication/Dedications.java 2016-04-22 16:26:25.000000000 +0000 @@ -0,0 +1,79 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.dedication; + +import java.util.HashMap; +import java.util.Map; + +import net.sourceforge.plantuml.SignatureUtils; + +public class Dedications { + + private static final Map all = new HashMap(); + + static { + addNormal("Write your own dedication!"); + addCrypted("RyHcSMMTGTW-ZlDelq18AwlwfbZZdfo-Yo0ketavjyFxRAFoKx1mAI032reWO3p4Mog-AV6jFqjXfi8G6pKo7G00"); + } + + private static void addNormal(String sentence) { + final String signature = SignatureUtils.getSignatureSha512(keepLetter(sentence)); + addCrypted(signature); + } + + private static void addCrypted(String signature) { + all.put(signature, new Dedication(signature)); + } + + private Dedications() { + } + + public static Dedication get(String line) { + final String signature = SignatureUtils.getSignatureSha512(keepLetter(line)); + return all.get(signature); + } + + public static String keepLetter(String s) { + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < s.length(); i++) { + final char c = s.charAt(i); + if (Character.isLetter(c)) { + sb.append(c); + } + } + return sb.toString().toUpperCase(); + } + +} Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/net/sourceforge/plantuml/dedication/G-vlxV6y0ekXvg4jdrZhpVdo7lhOrgzdDMujAyww7DSmBwYMPUi9rNQVH44hebtYNePymublPiBIpRDwZGKrbG00.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/net/sourceforge/plantuml/dedication/G-vlxV6y0ekXvg4jdrZhpVdo7lhOrgzdDMujAyww7DSmBwYMPUi9rNQVH44hebtYNePymublPiBIpRDwZGKrbG00.png differ diff -Nru plantuml-8024/src/net/sourceforge/plantuml/dedication/PSystemDedicationFactory.java plantuml-8039/src/net/sourceforge/plantuml/dedication/PSystemDedicationFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/dedication/PSystemDedicationFactory.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/dedication/PSystemDedicationFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -0,0 +1,51 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.dedication; + +import net.sourceforge.plantuml.AbstractPSystem; +import net.sourceforge.plantuml.command.PSystemSingleLineFactory; + +public class PSystemDedicationFactory extends PSystemSingleLineFactory { + + @Override + protected AbstractPSystem executeLine(String line) { + final Dedication dedication = Dedications.get(line); + if (dedication != null) { + return new PSystemDedication(dedication, Dedications.keepLetter(line)); + } + return null; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/dedication/PSystemDedication.java plantuml-8039/src/net/sourceforge/plantuml/dedication/PSystemDedication.java --- plantuml-8024/src/net/sourceforge/plantuml/dedication/PSystemDedication.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/dedication/PSystemDedication.java 2016-04-22 16:26:25.000000000 +0000 @@ -0,0 +1,81 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.dedication; + +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.io.OutputStream; + +import net.sourceforge.plantuml.AbstractPSystem; +import net.sourceforge.plantuml.FileFormatOption; +import net.sourceforge.plantuml.core.DiagramDescription; +import net.sourceforge.plantuml.core.DiagramDescriptionImpl; +import net.sourceforge.plantuml.core.ImageData; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.UDrawable; +import net.sourceforge.plantuml.ugraphic.ColorMapperIdentity; +import net.sourceforge.plantuml.ugraphic.ImageBuilder; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UImage; + +public class PSystemDedication extends AbstractPSystem { + + private final Dedication dedication; + private final String keepLetter; + + public PSystemDedication(Dedication dedication, String keepLetter) { + this.dedication = dedication; + this.keepLetter = keepLetter; + } + + public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException { + final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, HtmlColorUtils.WHITE, + getMetadata(), null, 0, 0, null, false); + imageBuilder.setUDrawable(new UDrawable() { + public void drawU(UGraphic ug) { + final BufferedImage bufferedImage = dedication.getBufferedImage(keepLetter); + if (bufferedImage != null) { + ug.draw(new UImage(bufferedImage)); + } + } + }); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); + } + + public DiagramDescription getDescription() { + return new DiagramDescriptionImpl("(Dedication)", getClass()); + } + +} Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/net/sourceforge/plantuml/dedication/RyHcSMMTGTW-ZlDelq18AwlwfbZZdfo-Yo0ketavjyFxRAFoKx1mAI032reWO3p4Mog-AV6jFqjXfi8G6pKo7G00.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/net/sourceforge/plantuml/dedication/RyHcSMMTGTW-ZlDelq18AwlwfbZZdfo-Yo0ketavjyFxRAFoKx1mAI032reWO3p4Mog-AV6jFqjXfi8G6pKo7G00.png differ diff -Nru plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandCreateElementFull.java plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandCreateElementFull.java --- plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandCreateElementFull.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandCreateElementFull.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.descdiagram.command; import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; @@ -50,9 +51,11 @@ import net.sourceforge.plantuml.cucadiagram.LeafType; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.descdiagram.DescriptionDiagram; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.USymbol; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; public class CommandCreateElementFull extends SingleLineCommand2 { @@ -88,9 +91,14 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("$")); } + + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } + private static final String CODE_CORE = "[\\p{L}0-9_.]+|\\(\\)[%s]*[\\p{L}0-9_.]+|\\(\\)[%s]*[%g][^%g]+[%g]|:[^:]+:|\\([^()]+\\)|\\[[^\\[\\]]+\\]"; private static final String CODE = "(" + CODE_CORE + ")"; @@ -101,8 +109,8 @@ private static final String DISPLAY_WITHOUT_QUOTE = "(" + DISPLAY_CORE + "|[\\p{L}0-9_.]+)"; @Override - final protected boolean isForbidden(String line) { - if (line.matches("^[\\p{L}0-9_.]+$")) { + final protected boolean isForbidden(CharSequence line) { + if (line.toString().matches("^[\\p{L}0-9_.]+$")) { return true; } return false; @@ -117,7 +125,7 @@ final String symbol; if (codeRaw.startsWith("()")) { symbol = "interface"; - codeRaw = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(codeRaw.substring(2).trim()); + codeRaw = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils.trin(codeRaw.substring(2))); } else if (codeChar == '(' || codeDisplay == '(') { symbol = "usecase"; } else if (codeChar == ':' || codeDisplay == ':') { @@ -207,7 +215,7 @@ entity.setUSymbol(usymbol); if (stereotype != null) { entity.setStereotype(new Stereotype(stereotype, diagram.getSkinParam().getCircledCharacterRadius(), diagram - .getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam() + .getSkinParam().getFont(null, false, FontParam.CIRCLED_CHARACTER), diagram.getSkinParam() .getIHtmlColorSet())); } @@ -218,7 +226,15 @@ entity.addUrl(url); } - entity.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); + Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); + + final HtmlColor lineColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1)); + if (lineColor != null) { + colors = colors.add(ColorType.LINE, lineColor); + } + entity.setColors(colors); + + //entity.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandCreateElementMultilines.java plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandCreateElementMultilines.java --- plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandCreateElementMultilines.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandCreateElementMultilines.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,8 @@ import java.util.List; import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; import net.sourceforge.plantuml.command.MultilinesStrategy; @@ -50,40 +52,63 @@ import net.sourceforge.plantuml.cucadiagram.LeafType; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.descdiagram.DescriptionDiagram; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.USymbol; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; public class CommandCreateElementMultilines extends CommandMultilines2 { + private final int type; + enum Mode { EXTENDS, IMPLEMENTS }; - public CommandCreateElementMultilines() { - super(getRegexConcat(), MultilinesStrategy.REMOVE_STARTING_QUOTE); + public CommandCreateElementMultilines(int type) { + super(getRegexConcat(type), MultilinesStrategy.REMOVE_STARTING_QUOTE); + this.type = type; } @Override public String getPatternEnd() { - return "(?i)^(.*)[%g]$"; + if (type == 0) { + return "(?i)^(.*)[%g]$"; + } + if (type == 1) { + return "(?i)^(.*)\\]$"; + } + throw new IllegalArgumentException(); } - private static RegexConcat getRegexConcat() { - return new RegexConcat(new RegexLeaf("^"), // - new RegexLeaf("TYPE", "(usecase|database)[%s]+"), // - new RegexLeaf("CODE", "([\\p{L}0-9_.]+)"), // - new RegexLeaf("[%s]*"), // - new RegexLeaf("STEREO", "(\\<\\<.+\\>\\>)?"), // - new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // - new RegexLeaf("[%s]*"), // - new RegexLeaf("DESC", "as[%s]*[%g](.*)$")); + private static RegexConcat getRegexConcat(int type) { + if (type == 0) { + return new RegexConcat(new RegexLeaf("^"), // + new RegexLeaf("TYPE", "(usecase|database|artifact)[%s]+"), // + new RegexLeaf("CODE", "([\\p{L}0-9_.]+)"), // + new RegexLeaf("[%s]*"), // + new RegexLeaf("STEREO", "(\\<\\<.+\\>\\>)?"), // + new RegexLeaf("[%s]*"), // + ColorParser.exp1(), // + new RegexLeaf("[%s]*"), // + new RegexLeaf("DESC", "as[%s]*[%g](.*)$")); + } + if (type == 1) { + return new RegexConcat(new RegexLeaf("^"), // + new RegexLeaf("TYPE", "(package|usecase|database|artifact)[%s]+"), // + new RegexLeaf("CODE", "([\\p{L}0-9_.]+)"), // + new RegexLeaf("[%s]*"), // + new RegexLeaf("STEREO", "(\\<\\<.+\\>\\>)?"), // + new RegexLeaf("[%s]*"), // + ColorParser.exp1(), // + new RegexLeaf("[%s]*"), // + new RegexLeaf("DESC", "\\[(.*)$")); + } + throw new IllegalArgumentException(); } - public CommandExecutionResult executeNow(DescriptionDiagram diagram, List lines) { - StringUtils.trim(lines, false); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); + public CommandExecutionResult executeNow(DescriptionDiagram diagram, BlocLines lines) { + lines = lines.trim(false); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); final String symbol = StringUtils.goUpperCase(line0.get("TYPE", 0)); final LeafType type; final USymbol usymbol; @@ -91,22 +116,29 @@ if (symbol.equalsIgnoreCase("usecase")) { type = LeafType.USECASE; usymbol = null; + } else if (symbol.equalsIgnoreCase("package")) { + type = LeafType.DESCRIPTION; + usymbol = USymbol.PACKAGE; } else if (symbol.equalsIgnoreCase("database")) { type = LeafType.DESCRIPTION; usymbol = USymbol.DATABASE; + } else if (symbol.equalsIgnoreCase("artifact")) { + type = LeafType.DESCRIPTION; + usymbol = USymbol.ARTIFACT; } else { throw new IllegalStateException(); } final Code code = Code.of(line0.get("CODE", 0)); - Display display = Display.create(lines.subList(1, lines.size() - 1)); + final List lineLast = StringUtils.getSplit(MyPattern.cmpile(getPatternEnd()), lines.getLast499() + .toString()); + lines = lines.subExtract(1, 1); + Display display = lines.toDisplay(); final String descStart = line0.get("DESC", 0); if (StringUtils.isNotEmpty(descStart)) { display = display.addFirst(descStart); } - final List lineLast = StringUtils.getSplit(MyPattern.cmpile(getPatternEnd()), - lines.get(lines.size() - 1)); if (StringUtils.isNotEmpty(lineLast.get(0))) { display = display.add(lineLast.get(0)); } @@ -117,11 +149,11 @@ result.setUSymbol(usymbol); if (stereotype != null) { result.setStereotype(new Stereotype(stereotype, diagram.getSkinParam().getCircledCharacterRadius(), diagram - .getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam() + .getSkinParam().getFont(null, false, FontParam.CIRCLED_CHARACTER), diagram.getSkinParam() .getIHtmlColorSet())); } - result.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0))); + result.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0))); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandLinkElement.java plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandLinkElement.java --- plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandLinkElement.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandLinkElement.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,7 +37,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.Direction; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.classdiagram.command.CommandLinkClass; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand2; @@ -56,7 +58,9 @@ import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.descdiagram.DescriptionDiagram; import net.sourceforge.plantuml.graphic.USymbol; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; public class CommandLinkElement extends SingleLineCommand2 { @@ -74,11 +78,11 @@ new RegexLeaf("HEAD2", "(0\\)|<<|[<^*+#0)]|<\\||[%s]+o)?"), // new RegexLeaf("BODY1", "([-=.~]+)"), // new RegexLeaf("ARROW_STYLE1", - "(?:\\[((?:#\\w+|dotted|dashed|bold|hidden)(?:,#\\w+|,dotted|,dashed|,bold|,hidden)*)\\])?"), + "(?:\\[((?:#\\w+|dotted|dashed|plain|bold|hidden|norank)(?:,#\\w+|,dotted|,dashed|,plain|,bold|,hidden|,norank)*)\\])?"), new RegexLeaf("DIRECTION", "(?:(left|right|up|down|le?|ri?|up?|do?)(?=[-=.~0()]))?"), // new RegexLeaf("INSIDE", "(?:(0|\\(0\\)|\\(0|0\\))(?=[-=.~]))?"), // new RegexLeaf("ARROW_STYLE2", - "(?:\\[((?:#\\w+|dotted|dashed|bold|hidden)(?:,#\\w+|,dotted|,dashed|,bold|,hidden)*)\\])?"), + "(?:\\[((?:#\\w+|dotted|dashed|plain|bold|hidden|norank)(?:,#\\w+|,dotted|,dashed|,plain|,bold|,hidden|,norank)*)\\])?"), new RegexLeaf("BODY2", "([-=.~]*)"), // new RegexLeaf("HEAD1", "(\\(0|>>|[>^*+#0(]|\\|>|o[%s]+)?"), // new RegexLeaf("[%s]*"), // @@ -86,9 +90,17 @@ new RegexLeaf("[%s]*"), // getGroup("ENT2"), // new RegexLeaf("[%s]*"), // + color().getRegex(), // + new RegexLeaf("[%s]*"), // + new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)?"), // + new RegexLeaf("[%s]*"), // new RegexLeaf("LABEL_LINK", "(?::[%s]*(.+))?$")); } + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.LINE); + } + private LinkType getLinkType(RegexResult arg) { final String head1 = trimAndLowerCase(arg.get("HEAD1", 0)); final String head2 = trimAndLowerCase(arg.get("HEAD2", 0)); @@ -170,7 +182,7 @@ if (s == null) { return ""; } - return StringUtils.goLowerCase(s.trim()); + return StringUtils.goLowerCase(StringUtils.trin(s)); } private Direction getDirection(RegexResult arg) { @@ -189,7 +201,7 @@ private static RegexLeaf getGroup(String name) { return new RegexLeaf( name, - "([\\p{L}0-9_.]+|\\(\\)[%s]*[\\p{L}0-9_.]+|\\(\\)[%s]*[%g][^%g]+[%g]|:[^:]+:|(?!\\[\\*\\])\\[[^\\[\\]]+\\]|\\((?!\\*\\))[^)]+\\))(?:[%s]*(\\<\\<.*\\>\\>))?"); + "([\\p{L}0-9_.]+|\\(\\)[%s]*[\\p{L}0-9_.]+|\\(\\)[%s]*[%g][^%g]+[%g]|:[^:]+:|(?!\\[\\*\\])\\[[^\\[\\]]+\\]|\\((?!\\*\\))[^)]+\\))"); } static class Labels { @@ -216,7 +228,8 @@ final Matcher m1 = p1.matcher(labelLink); if (m1.matches()) { firstLabel = m1.group(1); - labelLink = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m1.group(2).trim()).trim(); + labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils + .trin(m1.group(2)))); secondLabel = m1.group(3); return; } @@ -224,7 +237,8 @@ final Matcher m2 = p2.matcher(labelLink); if (m2.matches()) { firstLabel = m2.group(1); - labelLink = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m2.group(2).trim()).trim(); + labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils + .trin(m2.group(2)))); secondLabel = null; return; } @@ -232,7 +246,8 @@ final Matcher m3 = p3.matcher(labelLink); if (m3.matches()) { firstLabel = null; - labelLink = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m3.group(1).trim()).trim(); + labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils + .trin(m3.group(1)))); secondLabel = m3.group(2); } } @@ -247,21 +262,18 @@ if (diagram.isGroup(ent1) && diagram.isGroup(ent2)) { return executePackageLink(diagram, arg); } - // if (diagram.isGroup(ent1) || diagram.isGroup(ent2)) { - // return CommandExecutionResult.error("Package can be only linked to other package"); - // } final IEntity cl1 = diagram.isGroup(ent1) ? diagram.getGroup(Code.of(arg.get("ENT1", 0))) : getOrCreateLeaf( diagram, ent1); final IEntity cl2 = diagram.isGroup(ent2) ? diagram.getGroup(Code.of(arg.get("ENT2", 0))) : getOrCreateLeaf( diagram, ent2); - if (arg.get("ENT1", 1) != null) { - cl1.setStereotype(new Stereotype(arg.get("ENT1", 1))); - } - if (arg.get("ENT2", 1) != null) { - cl2.setStereotype(new Stereotype(arg.get("ENT2", 1))); - } + // if (arg.get("ENT1", 1) != null) { + // cl1.setStereotype(new Stereotype(arg.get("ENT1", 1))); + // } + // if (arg.get("ENT2", 1) != null) { + // cl2.setStereotype(new Stereotype(arg.get("ENT2", 1))); + // } final LinkType linkType = getLinkType(arg); final Direction dir = getDirection(arg); @@ -280,7 +292,14 @@ if (dir == Direction.LEFT || dir == Direction.UP) { link = link.getInv(); } - CommandLinkClass.applyStyle(arg.getLazzy("ARROW_STYLE", 0), link); + Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); + colors = CommandLinkClass.applyStyle(arg.getLazzy("ARROW_STYLE", 0), link, colors); + if (arg.get("STEREOTYPE", 0) != null) { + final Stereotype stereotype = new Stereotype(arg.get("STEREOTYPE", 0)); + colors = colors.applyStereotype(stereotype, diagram.getSkinParam(), ColorParam.componentArrow); + } + + link.setColors(colors); diagram.addLink(link); return CommandExecutionResult.ok(); } @@ -288,9 +307,8 @@ private ILeaf getOrCreateLeaf(DescriptionDiagram diagram, final Code code2) { final String code = code2.getFullName(); if (code.startsWith("()")) { - return diagram.getOrCreateLeaf( - Code.of(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(code.substring(2).trim())), - LeafType.DESCRIPTION, USymbol.INTERFACE); + return diagram.getOrCreateLeaf(Code.of(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils + .trin(code.substring(2)))), LeafType.DESCRIPTION, USymbol.INTERFACE); } final char codeChar = code.length() > 2 ? code.charAt(0) : 0; if (codeChar == '(') { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandNamespaceSeparator.java plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandNamespaceSeparator.java --- plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandNamespaceSeparator.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandNamespaceSeparator.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandNewpage.java plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandNewpage.java --- plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandNewpage.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandNewpage.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -60,8 +60,8 @@ @Override protected CommandExecutionResult executeArg(AbstractPSystem diagram, RegexResult arg) { - // NewpagedDiagram result = NewpagedDiagram.newpage(diagram, factory.createEmptyDiagram()); NewpagedDiagram result = new NewpagedDiagram(diagram, factory.createEmptyDiagram()); + // NewpagedDiagram result = NewpagedDiagram.newpage(diagram, factory.createEmptyDiagram()); return CommandExecutionResult.newDiagram(result); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandPackageWithUSymbol.java plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandPackageWithUSymbol.java --- plantuml-8024/src/net/sourceforge/plantuml/descdiagram/command/CommandPackageWithUSymbol.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/descdiagram/command/CommandPackageWithUSymbol.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,7 @@ */ package net.sourceforge.plantuml.descdiagram.command; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.classdiagram.AbstractEntityDiagram; import net.sourceforge.plantuml.command.CommandExecutionResult; @@ -47,9 +48,9 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.IGroup; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.USymbol; -import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.utils.UniqueSequence; public class CommandPackageWithUSymbol extends SingleLineCommand2 { @@ -60,7 +61,7 @@ private static RegexConcat getRegexConcat() { return new RegexConcat(new RegexLeaf("^"), // - new RegexLeaf("SYMBOL", "(package|rectangle|node|artifact|folder|frame|cloud|database|storage|component|card)"), // + new RegexLeaf("SYMBOL", "(package|rectangle|node|artifact|folder|frame|cloud|database|storage|component|card|together)"), // new RegexLeaf("[%s]+"), // new RegexLeaf("NAME", "([%g][^%g]+[%g]|[^#%s{}]*)"), // new RegexLeaf("AS", "(?:[%s]+as[%s]+([\\p{L}0-9_.]+))?"), // @@ -69,7 +70,7 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("[%s]*\\{$")); } @@ -100,7 +101,7 @@ } final String color = arg.get("COLOR", 0); if (color != null) { - p.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color)); + p.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color)); } return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagramFactory.java plantuml-8039/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagramFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagramFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagramFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,11 +38,11 @@ import java.util.List; import net.sourceforge.plantuml.AbstractPSystem; +import net.sourceforge.plantuml.classdiagram.command.CommandHideShowSpecificClass; import net.sourceforge.plantuml.classdiagram.command.CommandUrl; import net.sourceforge.plantuml.command.Command; import net.sourceforge.plantuml.command.CommandEndPackage; import net.sourceforge.plantuml.command.CommandFootboxIgnored; -import net.sourceforge.plantuml.command.CommandPackage; import net.sourceforge.plantuml.command.CommandPage; import net.sourceforge.plantuml.command.CommandRankDir; import net.sourceforge.plantuml.command.UmlDiagramFactory; @@ -79,12 +79,9 @@ cmds.add(new CommandLinkElement()); // cmds.add(new CommandPackageWithUSymbol()); - cmds.add(new CommandPackage()); cmds.add(new CommandEndPackage()); - // addCommand(new CommandNamespace()); - // addCommand(new CommandEndNamespace()); final FactoryNoteCommand factoryNoteCommand = new FactoryNoteCommand(); - cmds.add(factoryNoteCommand.createMultiLine()); + cmds.add(factoryNoteCommand.createMultiLine(false)); final FactoryNoteOnEntityCommand factoryNoteOnEntityCommand = new FactoryNoteOnEntityCommand(new RegexOr( "ENTITY", // @@ -100,19 +97,19 @@ cmds.add(factoryNoteCommand.createSingleLine()); cmds.add(new CommandUrl()); - // addCommand(new CommandCreateComponent2()); cmds.add(new CommandCreateElementFull()); - cmds.add(new CommandCreateElementMultilines()); - // addCommand(new CommandCreateElementTyped()); - // addCommand(new CommandCreateCircleInterface()); - // addCommand(new CommandCreateActorInComponent()); + cmds.add(new CommandCreateElementMultilines(0)); + cmds.add(new CommandCreateElementMultilines(1)); - cmds.add(factoryNoteOnEntityCommand.createMultiLine()); - cmds.add(factoryNoteCommand.createMultiLine()); + cmds.add(factoryNoteOnEntityCommand.createMultiLine(true)); + cmds.add(factoryNoteOnEntityCommand.createMultiLine(false)); + cmds.add(factoryNoteCommand.createMultiLine(false)); final FactoryNoteOnLinkCommand factoryNoteOnLinkCommand = new FactoryNoteOnLinkCommand(); cmds.add(factoryNoteOnLinkCommand.createSingleLine()); - cmds.add(factoryNoteOnLinkCommand.createMultiLine()); + cmds.add(factoryNoteOnLinkCommand.createMultiLine(false)); + + cmds.add(new CommandHideShowSpecificClass()); return cmds; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagram.java plantuml-8039/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagram.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagram.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -69,7 +69,7 @@ LeafType.DESCRIPTION, USymbol.ACTOR); } if (code2.startsWith("()")) { - code2 = code2.substring(2).trim(); + code2 = StringUtils.trin(code2.substring(2)); code2 = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(code2); return getOrCreateLeafDefault(Code.of(code2), LeafType.DESCRIPTION, USymbol.INTERFACE); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/Dimension2DDouble.java plantuml-8039/src/net/sourceforge/plantuml/Dimension2DDouble.java --- plantuml-8024/src/net/sourceforge/plantuml/Dimension2DDouble.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/Dimension2DDouble.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/directdot/PSystemDotFactory.java plantuml-8039/src/net/sourceforge/plantuml/directdot/PSystemDotFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/directdot/PSystemDotFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/directdot/PSystemDotFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -53,7 +53,7 @@ @Override public PSystemDot executeLine(PSystemDot system, String line) { - if (system == null && line.matches("(di)?graph\\s+\\w+\\s+\\{")) { + if (system == null && line.matches("(strict\\s+)?(di)?graph\\s+\\w+\\s+\\{")) { data = new StringBuilder(line); data.append("\n"); return new PSystemDot(data.toString()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/directdot/PSystemDot.java plantuml-8039/src/net/sourceforge/plantuml/directdot/PSystemDot.java --- plantuml-8024/src/net/sourceforge/plantuml/directdot/PSystemDot.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/directdot/PSystemDot.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -69,7 +69,7 @@ public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException { final Graphviz graphviz = GraphvizUtils - .create(data, StringUtils.goLowerCase(fileFormat.getFileFormat().name())); + .create(null, data, StringUtils.goLowerCase(fileFormat.getFileFormat().name())); if (graphviz.illegalDotExe()) { final TextBlock result = GraphicStrings.createDefault(Arrays.asList("There is an issue with your Dot/Graphviz installation"), false); UGraphicUtils.writeImage(os, null, fileFormat, new ColorMapperIdentity(), HtmlColorUtils.WHITE, result); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/Direction.java plantuml-8039/src/net/sourceforge/plantuml/Direction.java --- plantuml-8024/src/net/sourceforge/plantuml/Direction.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/Direction.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/DirWatcher2.java plantuml-8039/src/net/sourceforge/plantuml/DirWatcher2.java --- plantuml-8024/src/net/sourceforge/plantuml/DirWatcher2.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/DirWatcher2.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,7 +37,6 @@ import java.io.File; import java.io.IOException; import java.util.Collections; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -50,6 +49,7 @@ import java.util.concurrent.TimeUnit; import net.sourceforge.plantuml.preproc.Defines; +import net.sourceforge.plantuml.preproc.FileWithSuffix; public class DirWatcher2 { @@ -91,7 +91,7 @@ try { final List generatedImages = sourceFileReader .getGeneratedImages(); - final Set files = new HashSet(sourceFileReader.getIncludedFiles()); + final Set files = FileWithSuffix.convert(sourceFileReader.getIncludedFiles()); files.add(f); modifieds.put(f, new FileWatcher(files)); return Collections.unmodifiableList(generatedImages); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/DirWatcher.java plantuml-8039/src/net/sourceforge/plantuml/DirWatcher.java --- plantuml-8024/src/net/sourceforge/plantuml/DirWatcher.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/DirWatcher.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,12 +39,12 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import net.sourceforge.plantuml.preproc.Defines; +import net.sourceforge.plantuml.preproc.FileWithSuffix; @Deprecated public class DirWatcher { @@ -79,7 +79,7 @@ if (watcher == null || watcher.hasChanged()) { final SourceFileReader sourceFileReader = new SourceFileReader(new Defines(), f, option.getOutputDir(), option.getConfig(), option.getCharset(), option.getFileFormatOption()); - final Set files = new HashSet(sourceFileReader.getIncludedFiles()); + final Set files = FileWithSuffix.convert(sourceFileReader.getIncludedFiles()); files.add(f); for (GeneratedImage g : sourceFileReader.getGeneratedImages()) { result.add(g); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/donors/PSystemDonorsFactory.java plantuml-8039/src/net/sourceforge/plantuml/donors/PSystemDonorsFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/donors/PSystemDonorsFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/donors/PSystemDonorsFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/donors/PSystemDonors.java plantuml-8039/src/net/sourceforge/plantuml/donors/PSystemDonors.java --- plantuml-8024/src/net/sourceforge/plantuml/donors/PSystemDonors.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/donors/PSystemDonors.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -59,19 +59,14 @@ public class PSystemDonors extends AbstractPSystem { - public static final String DONORS = "UDfTaikosZ0CXlTw2gypquT8IOTEu5pcqEcYEv7e41sCH6s7DddwYhR11gsiqUtx9TU--cyKu9KI1LTBKc7iu1jLsVG4MyrkY50lfRY7TSWXcc17Uuo9KTop3WArz1hSMYdDT7s-lrl6aeu2Mom6IOA65uSzrBcrNc0tPeG9rbpTcoYq2-KOOPVeF92ubUhPz3NB78gmEJsKQe2LUXRtfcCaQCU7UFMX9cHnpWnF1JMUIjT6rPv-e_IspjN0rlM0OJAbRpVPSe3daZxDyEBvOWKDTqSZlqLOu4kyjPO2eg8BDFE9KvZS5WVj4ThhqdyCQEsBl8fyFfVPSR8r2IRBCpxZQl_1q_5EbVHtxjzAjaRUobv2uXc-vd2lyCJTGDvzHlPJgS3F9KoCZsWjeNngiVivKdJDk0zef_LP_dVzIDGDRXCmOaOwaFtOue2_hX_DKjn6Bmn_0C5QlDy0"; - - // public ImageData exportDiagram(OutputStream os, int num, FileFormatOption - // fileFormat) throws IOException { - // return getGraphicStrings().exportDiagram(os, fileFormat); - // } + public static final String DONORS = "UDfTKyjosp0ClEChUDQa7w7OhLlPJZ9Msixa1bk8H9icL99oAtrRR_snGcvbKkP96Bns5wlSPFyVENYXG4xbDh3LU81NokBZCsmuXiv3FhNY7bOkfgY7alReWqQhdhYnaDkAdLenXO76p_TtgPZAqS86aqKsm59FWJQGnz5yWRAB47fOwMp-B4CneUmyb87QXgnQCBV2Rpdj8G_hyrqhErYmqLRjkFC4HNUNpuuiHAQWrR1DKECv3MLLRkWNsahaN3HQfjReUc6wkz6sDJobwCC0pqPVf66f3oT1Vije2n_zRRHDG6HqWULmri7rQeCDLmZ5AFfRWp8-gSl8n7F9E_KYayKWTO9FS1N_mDDfnifMi_3QgMMGaRPd5_G0dsEwOjZgGqD6FQ8sVSh032aOx--X5OJsGu677nrvjUps3kMq9jB_niT0XqQj7NgCa6eInoO7_3aQJKhKcYywzStLELyZVusmIxmyhfZnF4ftcxYCJwDGZ-pGecaVr1i5vDR3JlYYgzHQZvU6JuRTAF_spszZhXw8_Z29LyLTcvkx74xYZoPevenyOfXHg1USlBFJC_YvqQf4hEI_SZMfxsHhSWzgcxz-ANFu2z-Q0eS0"; public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException { final GraphicStrings result = getGraphicStrings(); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } private GraphicStrings getGraphicStrings() throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/EggUtils.java plantuml-8039/src/net/sourceforge/plantuml/eggs/EggUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/EggUtils.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/EggUtils.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/GraphicsPath.java plantuml-8039/src/net/sourceforge/plantuml/eggs/GraphicsPath.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/GraphicsPath.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/GraphicsPath.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemAppleTwoFactory.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemAppleTwoFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemAppleTwoFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemAppleTwoFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemAppleTwo.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemAppleTwo.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemAppleTwo.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemAppleTwo.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -76,8 +76,8 @@ final GraphicStrings result = getGraphicStrings(); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } private GraphicStrings getGraphicStrings() throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemCharlieFactory.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemCharlieFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemCharlieFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemCharlieFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemCharlie.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemCharlie.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemCharlie.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemCharlie.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -62,18 +62,18 @@ public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException { final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, HtmlColorUtils.BLACK, getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(new UDrawable() { + imageBuilder.setUDrawable(new UDrawable() { public void drawU(UGraphic ug) { final UImage im = new UImage(image); ug.draw(im); } }); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } public DiagramDescription getDescription() { - return new DiagramDescriptionImpl("(Version)", getClass()); + return new DiagramDescriptionImpl("(Je Suis Charlie)", getClass()); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemEggFactory.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemEggFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemEggFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemEggFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemEgg.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemEgg.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemEgg.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemEgg.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -68,8 +68,8 @@ final GraphicStrings result = getGraphicStrings(); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } private GraphicStrings getGraphicStrings() throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemLostFactory.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemLostFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemLostFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemLostFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemLost.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemLost.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemLost.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemLost.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -64,8 +64,8 @@ final GraphicStrings result = getGraphicStrings(); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } private GraphicStrings getGraphicStrings() throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemMemorialFactory.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemMemorialFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemMemorialFactory.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemMemorialFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -0,0 +1,53 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.eggs; + +import net.sourceforge.plantuml.AbstractPSystem; +import net.sourceforge.plantuml.command.PSystemSingleLineFactory; +import net.sourceforge.plantuml.webp.Portrait; +import net.sourceforge.plantuml.webp.Portraits; + +public class PSystemMemorialFactory extends PSystemSingleLineFactory { + + @Override + protected AbstractPSystem executeLine(String line) { + final Portrait portrait = Portraits.getOne(line); + if (portrait != null) { + return new PSystemMemorial(portrait); + } + return null; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemMemorial.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemMemorial.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemMemorial.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemMemorial.java 2016-04-22 16:26:25.000000000 +0000 @@ -0,0 +1,108 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.eggs; + +import java.awt.Font; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Arrays; + +import net.sourceforge.plantuml.AbstractPSystem; +import net.sourceforge.plantuml.FileFormatOption; +import net.sourceforge.plantuml.SpriteContainerEmpty; +import net.sourceforge.plantuml.core.DiagramDescription; +import net.sourceforge.plantuml.core.DiagramDescriptionImpl; +import net.sourceforge.plantuml.core.ImageData; +import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.DateEventUtils; +import net.sourceforge.plantuml.graphic.FontConfiguration; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.UDrawable; +import net.sourceforge.plantuml.ugraphic.ColorMapperIdentity; +import net.sourceforge.plantuml.ugraphic.ImageBuilder; +import net.sourceforge.plantuml.ugraphic.UFont; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UImage; +import net.sourceforge.plantuml.ugraphic.UTranslate; +import net.sourceforge.plantuml.webp.Portrait; + +public class PSystemMemorial extends AbstractPSystem { + + private Portrait portrait; + + PSystemMemorial(Portrait portrait) { + this.portrait = portrait; + } + + public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException { + final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, HtmlColorUtils.WHITE, + getMetadata(), null, 0, 0, null, false); + imageBuilder.setUDrawable(new UDrawable() { + + public void drawU(UGraphic ug) { + final String name = portrait.getName(); + final String quote = portrait.getQuote(); + final String age = "" + portrait.getAge() + " years old"; + final UFont font = new UFont("SansSerif", Font.BOLD, 14); + final BufferedImage im = portrait.getBufferedImage(); + final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLACK, + true); + + final TextBlock top = DateEventUtils.getComment( + Arrays.asList("A thought for those who died in Paris the 13th November 2015."), + HtmlColorUtils.BLACK); + + final TextBlock tb = Display.create(name, age, quote).create(fc, HorizontalAlignment.LEFT, + new SpriteContainerEmpty()); + + top.drawU(ug); + ug = ug.apply(new UTranslate(0, top.calculateDimension(ug.getStringBounder()).getHeight() + 10)); + + ug.draw(new UImage(im)); + ug = ug.apply(new UTranslate(im.getWidth() + 10, 0)); + tb.drawU(ug); + } + }); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); + } + + public DiagramDescription getDescription() { + return new DiagramDescriptionImpl("(Memorial)", getClass()); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemPathFactory.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemPathFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemPathFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemPathFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemPath.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemPath.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemPath.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemPath.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemRIPFactory.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemRIPFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemRIPFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemRIPFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemRIP.java plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemRIP.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/PSystemRIP.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/PSystemRIP.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -85,8 +85,8 @@ final GraphicStrings result = getGraphicStrings(); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/SentenceDecoder.java plantuml-8039/src/net/sourceforge/plantuml/eggs/SentenceDecoder.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/SentenceDecoder.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/SentenceDecoder.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eggs/SentenceProducer.java plantuml-8039/src/net/sourceforge/plantuml/eggs/SentenceProducer.java --- plantuml-8024/src/net/sourceforge/plantuml/eggs/SentenceProducer.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eggs/SentenceProducer.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/EmbededDiagram.java plantuml-8039/src/net/sourceforge/plantuml/EmbededDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/EmbededDiagram.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/EmbededDiagram.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/EmptyImageBuilder.java plantuml-8039/src/net/sourceforge/plantuml/EmptyImageBuilder.java --- plantuml-8024/src/net/sourceforge/plantuml/EmptyImageBuilder.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/EmptyImageBuilder.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; +import net.sourceforge.plantuml.cucadiagram.dot.GraphvizUtils; import net.sourceforge.plantuml.ugraphic.ColorMapperIdentity; import net.sourceforge.plantuml.ugraphic.UAntiAliasing; import net.sourceforge.plantuml.ugraphic.g2d.UGraphicG2d; @@ -47,12 +48,21 @@ private final BufferedImage im; private final Graphics2D g2d; + static final private int LIMIT = GraphvizUtils.getenvImageLimit(); public EmptyImageBuilder(double width, double height, Color background) { this((int) width, (int) height, background); } public EmptyImageBuilder(int width, int height, Color background) { + if (width > LIMIT) { + Log.info("Width too large " + width); + width = LIMIT; + } + if (height > LIMIT) { + Log.info("Height too large " + height); + height = LIMIT; + } Log.info("Creating image " + width + "x" + height); im = new BufferedImage(width, height, background == null ? BufferedImage.TYPE_INT_ARGB : BufferedImage.TYPE_INT_RGB); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/EnsureVisible.java plantuml-8039/src/net/sourceforge/plantuml/EnsureVisible.java --- plantuml-8024/src/net/sourceforge/plantuml/EnsureVisible.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/EnsureVisible.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/EpsGraphics.java plantuml-8039/src/net/sourceforge/plantuml/eps/EpsGraphics.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/EpsGraphics.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/EpsGraphics.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -518,6 +518,9 @@ } protected void appendColor(Color c) { + if (c == null) { + return; + } final double r = c.getRed() / 255.0; final double g = c.getGreen() / 255.0; final double b = c.getBlue() / 255.0; @@ -525,6 +528,9 @@ } protected void appendColorShort(Color c) { + if (c == null) { + return; + } final double r = c.getRed() / 255.0; final double g = c.getGreen() / 255.0; final double b = c.getBlue() / 255.0; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/EpsGraphicsMacroAndText.java plantuml-8039/src/net/sourceforge/plantuml/eps/EpsGraphicsMacroAndText.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/EpsGraphicsMacroAndText.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/EpsGraphicsMacroAndText.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/EpsGraphicsMacro.java plantuml-8039/src/net/sourceforge/plantuml/eps/EpsGraphicsMacro.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/EpsGraphicsMacro.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/EpsGraphicsMacro.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/EpsStrategy.java plantuml-8039/src/net/sourceforge/plantuml/eps/EpsStrategy.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/EpsStrategy.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/EpsStrategy.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandCurveTo.java plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandCurveTo.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandCurveTo.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandCurveTo.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommand.java plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommand.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommand.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandLineTo.java plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandLineTo.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandLineTo.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandLineTo.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandMacro.java plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandMacro.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandMacro.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandMacro.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandMoveTo.java plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandMoveTo.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandMoveTo.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandMoveTo.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandQuadTo.java plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandQuadTo.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandQuadTo.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandQuadTo.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandRaw.java plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandRaw.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptCommandRaw.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptCommandRaw.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptData.java plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptData.java --- plantuml-8024/src/net/sourceforge/plantuml/eps/PostScriptData.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/eps/PostScriptData.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ErrorUml.java plantuml-8039/src/net/sourceforge/plantuml/ErrorUml.java --- plantuml-8024/src/net/sourceforge/plantuml/ErrorUml.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ErrorUml.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,14 +43,16 @@ private final int position; private final ErrorUmlType type; private SuggestEngineResult suggest; + private final LineLocation lineLocation; - public ErrorUml(ErrorUmlType type, String error, int position) { + public ErrorUml(ErrorUmlType type, String error, int position, LineLocation lineLocation) { if (error == null || type == null || StringUtils.isEmpty(error)) { throw new IllegalArgumentException(); } this.error = error; this.type = type; this.position = position; + this.lineLocation = lineLocation; } @Override @@ -81,6 +83,10 @@ return position; } + public LineLocation getLineLocation() { + return lineLocation; + } + public final SuggestEngineResult getSuggest() { return suggest; } @@ -93,4 +99,5 @@ this.suggest = suggest; } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ErrorUmlType.java plantuml-8039/src/net/sourceforge/plantuml/ErrorUmlType.java --- plantuml-8024/src/net/sourceforge/plantuml/ErrorUmlType.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ErrorUmlType.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/FileFormat.java plantuml-8039/src/net/sourceforge/plantuml/FileFormat.java --- plantuml-8024/src/net/sourceforge/plantuml/FileFormat.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/FileFormat.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,7 +43,8 @@ * */ public enum FileFormat { - PNG, SVG, EPS, EPS_TEXT, ATXT, UTXT, XMI_STANDARD, XMI_STAR, XMI_ARGO, PDF, MJPEG, ANIMATED_GIF, HTML, HTML5, VDX, LATEX, BASE64; + PNG, SVG, EPS, EPS_TEXT, ATXT, UTXT, XMI_STANDARD, XMI_STAR, XMI_ARGO, SCXML, + PDF, MJPEG, ANIMATED_GIF, HTML, HTML5, VDX, LATEX, LATEX_NO_PREAMBLE, BASE64; /** * Returns the file format to be used for that format. @@ -57,6 +58,9 @@ if (this == MJPEG) { return ".avi"; } + if (this == LATEX_NO_PREAMBLE) { + return ".latex"; + } if (this == ANIMATED_GIF) { return ".gif"; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/FileFormatOption.java plantuml-8039/src/net/sourceforge/plantuml/FileFormatOption.java --- plantuml-8024/src/net/sourceforge/plantuml/FileFormatOption.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/FileFormatOption.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import java.awt.geom.AffineTransform; import java.awt.geom.Dimension2D; import java.awt.image.BufferedImage; +import java.io.Serializable; import net.sourceforge.plantuml.eps.EpsStrategy; import net.sourceforge.plantuml.graphic.HtmlColor; @@ -65,15 +66,20 @@ * @author Arnaud Roques * */ -public class FileFormatOption { +public class FileFormatOption implements Serializable { private final FileFormat fileFormat; private final AffineTransform affineTransform; private final boolean withMetadata; private final boolean useRedForError; + private final String svgLinkTarget; public FileFormatOption(FileFormat fileFormat) { - this(fileFormat, null, true, false); + this(fileFormat, null, true, false, "_top"); + } + + public String getSvgLinkTarget() { + return svgLinkTarget; } public final boolean isWithMetadata() { @@ -81,18 +87,24 @@ } public FileFormatOption(FileFormat fileFormat, boolean withMetadata) { - this(fileFormat, null, false, false); + this(fileFormat, null, false, false, "_top"); } - private FileFormatOption(FileFormat fileFormat, AffineTransform at, boolean withMetadata, boolean useRedForError) { + private FileFormatOption(FileFormat fileFormat, AffineTransform at, boolean withMetadata, boolean useRedForError, + String svgLinkTarget) { this.fileFormat = fileFormat; this.affineTransform = at; this.withMetadata = withMetadata; this.useRedForError = useRedForError; + this.svgLinkTarget = svgLinkTarget; } public FileFormatOption withUseRedForError() { - return new FileFormatOption(fileFormat, affineTransform, withMetadata, true); + return new FileFormatOption(fileFormat, affineTransform, withMetadata, true, svgLinkTarget); + } + + public FileFormatOption withSvgLinkTarget(String target) { + return new FileFormatOption(fileFormat, affineTransform, withMetadata, useRedForError, target); } @Override @@ -135,7 +147,9 @@ case VDX: return new UGraphicVdx(colorMapper); case LATEX: - return new UGraphicTikz(colorMapper); + return new UGraphicTikz(colorMapper, true); + case LATEX_NO_PREAMBLE: + return new UGraphicTikz(colorMapper, false); default: throw new UnsupportedOperationException(fileFormat.toString()); } @@ -153,11 +167,11 @@ } final UGraphicSvg ug; if (mybackcolor instanceof HtmlColorGradient) { - ug = new UGraphicSvg(colorMapper, (HtmlColorGradient) mybackcolor, false, scale); + ug = new UGraphicSvg(colorMapper, (HtmlColorGradient) mybackcolor, false, scale, getSvgLinkTarget()); } else if (backColor == null || backColor.equals(Color.WHITE)) { - ug = new UGraphicSvg(colorMapper, false, scale); + ug = new UGraphicSvg(colorMapper, false, scale, getSvgLinkTarget()); } else { - ug = new UGraphicSvg(colorMapper, StringUtils.getAsHtml(backColor), false, scale); + ug = new UGraphicSvg(colorMapper, StringUtils.getAsHtml(backColor), false, scale, getSvgLinkTarget()); } return ug; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/FileGroup.java plantuml-8039/src/net/sourceforge/plantuml/FileGroup.java --- plantuml-8024/src/net/sourceforge/plantuml/FileGroup.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/FileGroup.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/FileSystem.java plantuml-8039/src/net/sourceforge/plantuml/FileSystem.java --- plantuml-8024/src/net/sourceforge/plantuml/FileSystem.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/FileSystem.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/FileUtils.java plantuml-8039/src/net/sourceforge/plantuml/FileUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/FileUtils.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/FileUtils.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/FileWatcher.java plantuml-8039/src/net/sourceforge/plantuml/FileWatcher.java --- plantuml-8024/src/net/sourceforge/plantuml/FileWatcher.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/FileWatcher.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/flashcode/FlashCodeFactory.java plantuml-8039/src/net/sourceforge/plantuml/flashcode/FlashCodeFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/flashcode/FlashCodeFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/flashcode/FlashCodeFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/flashcode/FlashCodeUtils.java plantuml-8039/src/net/sourceforge/plantuml/flashcode/FlashCodeUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/flashcode/FlashCodeUtils.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/flashcode/FlashCodeUtils.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/flashcode/FlashCodeUtilsNone.java plantuml-8039/src/net/sourceforge/plantuml/flashcode/FlashCodeUtilsNone.java --- plantuml-8024/src/net/sourceforge/plantuml/flashcode/FlashCodeUtilsNone.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/flashcode/FlashCodeUtilsNone.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/flowdiagram/ActivityBox.java plantuml-8039/src/net/sourceforge/plantuml/flowdiagram/ActivityBox.java --- plantuml-8024/src/net/sourceforge/plantuml/flowdiagram/ActivityBox.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/flowdiagram/ActivityBox.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,12 +41,12 @@ import net.sourceforge.plantuml.SpriteContainerEmpty; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.golem.Tile; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.Shadowable; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; @@ -56,7 +56,7 @@ import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class ActivityBox implements TextBlock { +public class ActivityBox extends AbstractTextBlock { private static final int CORNER = 25; private static final int MARGIN = 10; @@ -71,8 +71,8 @@ this.id = id; this.label = label; final UFont font = new UFont("Serif", Font.PLAIN, 14); - final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); - tb = TextBlockUtils.create(Display.create(label), fc, HorizontalAlignment.LEFT, new SpriteContainerEmpty()); + final FontConfiguration fc = FontConfiguration.blackBlueTrue(font); + tb = Display.create(label).create(fc, HorizontalAlignment.LEFT, new SpriteContainerEmpty()); } public Tile getTile() { @@ -90,14 +90,14 @@ public void drawU(UGraphic ug) { final Dimension2D dimTotal = calculateDimension(ug.getStringBounder()); // final Dimension2D dimDesc = tb.calculateDimension(ug.getStringBounder()); - + final double widthTotal = dimTotal.getWidth(); final double heightTotal = dimTotal.getHeight(); final Shadowable rect = new URectangle(widthTotal, heightTotal, CORNER, CORNER); ug = ug.apply(new UChangeColor(HtmlColorUtils.MY_RED)); ug = ug.apply(new UChangeBackColor(HtmlColorUtils.MY_YELLOW)); ug.apply(new UStroke(1.5)).draw(rect); - + tb.drawU(ug.apply(new UTranslate(MARGIN, MARGIN))); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/flowdiagram/CommandLineSimple.java plantuml-8039/src/net/sourceforge/plantuml/flowdiagram/CommandLineSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/flowdiagram/CommandLineSimple.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/flowdiagram/CommandLineSimple.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/flowdiagram/CommandLink.java plantuml-8039/src/net/sourceforge/plantuml/flowdiagram/CommandLink.java --- plantuml-8024/src/net/sourceforge/plantuml/flowdiagram/CommandLink.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/flowdiagram/CommandLink.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/flowdiagram/FlowDiagramFactory.java plantuml-8039/src/net/sourceforge/plantuml/flowdiagram/FlowDiagramFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/flowdiagram/FlowDiagramFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/flowdiagram/FlowDiagramFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/flowdiagram/FlowDiagram.java plantuml-8039/src/net/sourceforge/plantuml/flowdiagram/FlowDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/flowdiagram/FlowDiagram.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/flowdiagram/FlowDiagram.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,11 +36,10 @@ import java.awt.geom.Dimension2D; import java.awt.geom.Point2D; -import java.awt.image.BufferedImage; +import java.awt.geom.Rectangle2D; import java.io.IOException; import java.io.OutputStream; import java.util.HashMap; -import java.util.List; import java.util.Map; import net.sourceforge.plantuml.Dimension2DDouble; @@ -80,6 +79,10 @@ private final Map tilesBoxes = new HashMap(); private Tile lastTile; + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + throw new UnsupportedOperationException(); + } + public DiagramDescription getDescription() { return new DiagramDescriptionImpl("Flow Diagram", getClass()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/font/PSystemListFontsFactory.java plantuml-8039/src/net/sourceforge/plantuml/font/PSystemListFontsFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/font/PSystemListFontsFactory.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/font/PSystemListFontsFactory.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -46,7 +46,7 @@ if (lineLower.equals("listfont") || lineLower.equals("listfonts") || lineLower.startsWith("listfont ") || lineLower.startsWith("listfonts ")) { final int idx = line.indexOf(' '); - return new PSystemListFonts(idx == -1 ? "This is a test" : line.substring(idx).trim()); + return new PSystemListFonts(idx == -1 ? "This is a test" : StringUtils.trin(line.substring(idx))); } return null; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/font/PSystemListFonts.java plantuml-8039/src/net/sourceforge/plantuml/font/PSystemListFonts.java --- plantuml-8024/src/net/sourceforge/plantuml/font/PSystemListFonts.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/font/PSystemListFonts.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -76,8 +76,8 @@ final GraphicStrings result = getGraphicStrings(); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } private GraphicStrings getGraphicStrings() throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/FontParam.java plantuml-8039/src/net/sourceforge/plantuml/FontParam.java --- plantuml-8024/src/net/sourceforge/plantuml/FontParam.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/FontParam.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,8 @@ import java.awt.Font; +import net.sourceforge.plantuml.graphic.FontConfiguration; + interface FontParamConstant { String FAMILY = "SansSerif"; String COLOR = "black"; @@ -59,6 +61,7 @@ COMPONENT_STEREOTYPE(14, Font.ITALIC), // NOTE(13, Font.PLAIN), // PACKAGE(14, Font.PLAIN), // + PACKAGE_STEREOTYPE(14, Font.ITALIC), // ACTOR(14, Font.PLAIN), // ARTIFACT(14, Font.PLAIN), // CLOUD(14, Font.PLAIN), // @@ -86,6 +89,8 @@ STATE_ATTRIBUTE(12, Font.PLAIN), // LEGEND(14, Font.PLAIN), // TITLE(18, Font.PLAIN), // + CAPTION(14, Font.PLAIN), // + SWIMLANE_TITLE(18, Font.PLAIN), // FOOTER(10, Font.PLAIN, "#888888", FontParamConstant.FAMILY), // HEADER(10, Font.PLAIN, "#888888", FontParamConstant.FAMILY), // USECASE(14, Font.PLAIN), // @@ -104,7 +109,9 @@ DATABASE_STEREOTYPE(14, Font.ITALIC), // QUEUE_STEREOTYPE(14, Font.ITALIC), // ACTOR_STEREOTYPE(14, Font.ITALIC), // - SEQUENCE_STEREOTYPE(14, Font.ITALIC); // + SEQUENCE_STEREOTYPE(14, Font.ITALIC), // + PARTITION(14, Font.PLAIN); // + private final int defaultSize; private final int fontStyle; @@ -147,4 +154,8 @@ return defaultFamily; } + public FontConfiguration getFontConfiguration(ISkinParam skinParam) { + return new FontConfiguration(skinParam, this, null); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ftp/FtpConnexion.java plantuml-8039/src/net/sourceforge/plantuml/ftp/FtpConnexion.java --- plantuml-8024/src/net/sourceforge/plantuml/ftp/FtpConnexion.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ftp/FtpConnexion.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ftp/FtpLoop.java plantuml-8039/src/net/sourceforge/plantuml/ftp/FtpLoop.java --- plantuml-8024/src/net/sourceforge/plantuml/ftp/FtpLoop.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ftp/FtpLoop.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ftp/FtpServer.java plantuml-8039/src/net/sourceforge/plantuml/ftp/FtpServer.java --- plantuml-8024/src/net/sourceforge/plantuml/ftp/FtpServer.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ftp/FtpServer.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/fun/IconLoader.java plantuml-8039/src/net/sourceforge/plantuml/fun/IconLoader.java --- plantuml-8024/src/net/sourceforge/plantuml/fun/IconLoader.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/fun/IconLoader.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/GeneratedImageImpl.java plantuml-8039/src/net/sourceforge/plantuml/GeneratedImageImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/GeneratedImageImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/GeneratedImageImpl.java 2016-04-22 16:26:25.000000000 +0000 @@ -0,0 +1,93 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +import java.io.File; + +import net.sourceforge.plantuml.core.Diagram; + +public class GeneratedImageImpl implements GeneratedImage { + + private final File pngFile; + private final String description; + private final BlockUml blockUml; + + public GeneratedImageImpl(File pngFile, String description, BlockUml blockUml) { + this.blockUml = blockUml; + this.pngFile = pngFile; + this.description = description; + } + + public File getPngFile() { + return pngFile; + } + + public String getDescription() { + return description; + } + + public int lineErrorRaw() { + final Diagram system = blockUml.getDiagram(); + if (system instanceof PSystemError) { + return ((PSystemError) system).getHigherErrorPosition() + blockUml.getStartLine(); + } + return -1; + } + + @Override + public String toString() { + return pngFile.getAbsolutePath() + " " + description; + } + + public int compareTo(GeneratedImage this2) { + final int cmp = this.pngFile.compareTo(this2.getPngFile()); + if (cmp != 0) { + return cmp; + } + return this.description.compareTo(this2.getDescription()); + } + + @Override + public int hashCode() { + return pngFile.hashCode() + description.hashCode(); + } + + @Override + public boolean equals(Object obj) { + final GeneratedImageImpl this2 = (GeneratedImageImpl) obj; + return this2.pngFile.equals(this.pngFile) && this2.description.equals(this.description); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/GeneratedImage.java plantuml-8039/src/net/sourceforge/plantuml/GeneratedImage.java --- plantuml-8024/src/net/sourceforge/plantuml/GeneratedImage.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/GeneratedImage.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,58 +36,12 @@ import java.io.File; -import net.sourceforge.plantuml.core.Diagram; +public interface GeneratedImage extends Comparable { -public class GeneratedImage implements Comparable { + public File getPngFile(); - private final File pngFile; - private final String description; - private final BlockUml blockUml; - - public GeneratedImage(File pngFile, String description, BlockUml blockUml) { - this.blockUml = blockUml; - this.pngFile = pngFile; - this.description = description; - } - - public File getPngFile() { - return pngFile; - } - - public String getDescription() { - return description; - } - - public int lineErrorRaw() { - final Diagram system = blockUml.getDiagram(); - if (system instanceof PSystemError) { - return ((PSystemError) system).getHigherErrorPosition() + blockUml.getStartLine(); - } - return -1; - } - - @Override - public String toString() { - return pngFile.getAbsolutePath() + " " + description; - } - - public int compareTo(GeneratedImage this2) { - final int cmp = this.pngFile.compareTo(this2.pngFile); - if (cmp != 0) { - return cmp; - } - return this.description.compareTo(this2.description); - } - - @Override - public int hashCode() { - return pngFile.hashCode() + description.hashCode(); - } - - @Override - public boolean equals(Object obj) { - final GeneratedImage this2 = (GeneratedImage) obj; - return this2.pngFile.equals(this.pngFile) && this2.description.equals(this.description); - } + public String getDescription(); + + public int lineErrorRaw(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/AbstractFigure.java plantuml-8039/src/net/sourceforge/plantuml/geom/AbstractFigure.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/AbstractFigure.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/AbstractFigure.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/AbstractLineSegment.java plantuml-8039/src/net/sourceforge/plantuml/geom/AbstractLineSegment.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/AbstractLineSegment.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/AbstractLineSegment.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -77,7 +77,7 @@ } else if (other.isHorizontal()) { u = getIntersectionHorizontal(other.getP1().getY()); } else { - throw new UnsupportedOperationException(); + return getDichoIntersection(other); } if (java.lang.Double.isNaN(u) || u < 0 || u > 1) { return null; @@ -89,6 +89,28 @@ return null; } + private Point2D getDichoIntersection(AbstractLineSegment other) { + if (doesIntersect(other) == false) { + return null; + } + if (other.getLength() < 0.01) { + return other.getMiddle(); + } + final LineSegmentDouble p1 = new LineSegmentDouble(other.getP1(), other.getMiddle()); + final LineSegmentDouble p2 = new LineSegmentDouble(other.getMiddle(), other.getP2()); + if (doesIntersect(p1)) { + return getDichoIntersection(p1); + } + if (doesIntersect(p2)) { + return getDichoIntersection(p2); + } + throw new IllegalStateException(); + } + + private Point2D.Double getMiddle() { + return getPoint2D(0.5); + } + private static boolean isBetween(double value, double v1, double v2) { if (v1 < v2) { return value >= v1 && value <= v2; @@ -165,6 +187,10 @@ return Math.abs(a1 - a2) < 0.0001; } + public boolean isPointOnSegment(Point2D pt) { + return equals(pt.distance(getP1()) + pt.distance(getP2()), getLength()); + } + private double getDistanceInternal(AbstractLineSegment other) { double result = this.getDistance(other.getP1()); result += this.getDistance(other.getP2()); @@ -238,8 +264,7 @@ public double determinant(AbstractLineSegment other) { return determinant(this.getP1().getX() - this.getP2().getX(), this.getP1().getY() - this.getP2().getY(), other - .getP1().getX() - - other.getP2().getX(), other.getP1().getY() - other.getP2().getY()); + .getP1().getX() - other.getP2().getX(), other.getP1().getY() - other.getP2().getY()); } private static double determinant(double x1, double y1, double x2, double y2) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/AbstractPolyline.java plantuml-8039/src/net/sourceforge/plantuml/geom/AbstractPolyline.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/AbstractPolyline.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/AbstractPolyline.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/Box.java plantuml-8039/src/net/sourceforge/plantuml/geom/Box.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/Box.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/Box.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/ClosedArea.java plantuml-8039/src/net/sourceforge/plantuml/geom/ClosedArea.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/ClosedArea.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/ClosedArea.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/CollectionUtils.java plantuml-8039/src/net/sourceforge/plantuml/geom/CollectionUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/CollectionUtils.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/CollectionUtils.java 2016-04-22 16:26:25.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/Dijkstra.java plantuml-8039/src/net/sourceforge/plantuml/geom/Dijkstra.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/Dijkstra.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/Dijkstra.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/InflateData.java plantuml-8039/src/net/sourceforge/plantuml/geom/InflateData.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/InflateData.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/InflateData.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/InflationTransform.java plantuml-8039/src/net/sourceforge/plantuml/geom/InflationTransform.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/InflationTransform.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/InflationTransform.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/Frame.java plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/Frame.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/Frame.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/Frame.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/MoveObserver.java plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/MoveObserver.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/MoveObserver.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/MoveObserver.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/Path.java plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/Path.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/Path.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/Path.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/Point2DCharge.java plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/Point2DCharge.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/Point2DCharge.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/Point2DCharge.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/Quadrant.java plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/Quadrant.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/Quadrant.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/Quadrant.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/QuadrantMapper.java plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/QuadrantMapper.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/QuadrantMapper.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/QuadrantMapper.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/SegmentCutter.java plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/SegmentCutter.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/SegmentCutter.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/SegmentCutter.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/VectorForce.java plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/VectorForce.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/VectorForce.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/VectorForce.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/World.java plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/World.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/kinetic/World.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/kinetic/World.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/Kingdom.java plantuml-8039/src/net/sourceforge/plantuml/geom/Kingdom.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/Kingdom.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/Kingdom.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/LineSegmentDouble.java plantuml-8039/src/net/sourceforge/plantuml/geom/LineSegmentDouble.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/LineSegmentDouble.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/LineSegmentDouble.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,7 @@ */ package net.sourceforge.plantuml.geom; +import java.awt.geom.CubicCurve2D; import java.awt.geom.Point2D; import java.util.Locale; @@ -48,8 +49,8 @@ @Override public String toString() { - return String.format(Locale.US, "( %.2f,%.2f - %.2f,%.2f )", getP1().getX(), getP1().getY(), getP2().getX(), getP2() - .getY()); + return String.format(Locale.US, "( %.2f,%.2f - %.2f,%.2f )", getP1().getX(), getP1().getY(), getP2().getX(), + getP2().getY()); } public LineSegmentDouble(double x1, double y1, double x2, double y2) { @@ -67,6 +68,14 @@ assert this.getDistance(this) == 0; } + public LineSegmentDouble(CubicCurve2D.Double curve) { + this(curve.getP1(), curve.getP2()); + } + + public LineSegmentDouble translate(UTranslate translate) { + return new LineSegmentDouble(translate.getTranslated(getP1()), translate.getTranslated(getP2())); + } + @Override public Point2D getP1() { return p1; @@ -104,7 +113,8 @@ final double y2 = p2.getY(); ug = ug.apply(new UTranslate(x1, y1)); ug.draw(new ULine(x2 - x1, y2 - y1)); - + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/LineSegmentInt.java plantuml-8039/src/net/sourceforge/plantuml/geom/LineSegmentInt.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/LineSegmentInt.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/LineSegmentInt.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/Neighborhood.java plantuml-8039/src/net/sourceforge/plantuml/geom/Neighborhood.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/Neighborhood.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/Neighborhood.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/Orientation.java plantuml-8039/src/net/sourceforge/plantuml/geom/Orientation.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/Orientation.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/Orientation.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/Point2DInt.java plantuml-8039/src/net/sourceforge/plantuml/geom/Point2DInt.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/Point2DInt.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/Point2DInt.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/Pointable.java plantuml-8039/src/net/sourceforge/plantuml/geom/Pointable.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/Pointable.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/Pointable.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/PolylineBreakeable.java plantuml-8039/src/net/sourceforge/plantuml/geom/PolylineBreakeable.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/PolylineBreakeable.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/PolylineBreakeable.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/PolylineImpl.java plantuml-8039/src/net/sourceforge/plantuml/geom/PolylineImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/PolylineImpl.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/PolylineImpl.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/Polyline.java plantuml-8039/src/net/sourceforge/plantuml/geom/Polyline.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/Polyline.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/Polyline.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/Singularity.java plantuml-8039/src/net/sourceforge/plantuml/geom/Singularity.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/Singularity.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/Singularity.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/SpiderWeb.java plantuml-8039/src/net/sourceforge/plantuml/geom/SpiderWeb.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/SpiderWeb.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/SpiderWeb.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/geom/XMoveable.java plantuml-8039/src/net/sourceforge/plantuml/geom/XMoveable.java --- plantuml-8024/src/net/sourceforge/plantuml/geom/XMoveable.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/geom/XMoveable.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/golem/Magnet.java plantuml-8039/src/net/sourceforge/plantuml/golem/Magnet.java --- plantuml-8024/src/net/sourceforge/plantuml/golem/Magnet.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/golem/Magnet.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/golem/MinMaxDouble.java plantuml-8039/src/net/sourceforge/plantuml/golem/MinMaxDouble.java --- plantuml-8024/src/net/sourceforge/plantuml/golem/MinMaxDouble.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/golem/MinMaxDouble.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/golem/MinMaxGolem.java plantuml-8039/src/net/sourceforge/plantuml/golem/MinMaxGolem.java --- plantuml-8024/src/net/sourceforge/plantuml/golem/MinMaxGolem.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/golem/MinMaxGolem.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/golem/Path.java plantuml-8039/src/net/sourceforge/plantuml/golem/Path.java --- plantuml-8024/src/net/sourceforge/plantuml/golem/Path.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/golem/Path.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/golem/Position.java plantuml-8039/src/net/sourceforge/plantuml/golem/Position.java --- plantuml-8024/src/net/sourceforge/plantuml/golem/Position.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/golem/Position.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/golem/Square.java plantuml-8039/src/net/sourceforge/plantuml/golem/Square.java --- plantuml-8024/src/net/sourceforge/plantuml/golem/Square.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/golem/Square.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/golem/TileArea.java plantuml-8039/src/net/sourceforge/plantuml/golem/TileArea.java --- plantuml-8024/src/net/sourceforge/plantuml/golem/TileArea.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/golem/TileArea.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/golem/TileGeometry.java plantuml-8039/src/net/sourceforge/plantuml/golem/TileGeometry.java --- plantuml-8024/src/net/sourceforge/plantuml/golem/TileGeometry.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/golem/TileGeometry.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/golem/Tile.java plantuml-8039/src/net/sourceforge/plantuml/golem/Tile.java --- plantuml-8024/src/net/sourceforge/plantuml/golem/Tile.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/golem/Tile.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,12 +43,12 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.SpriteContainerEmpty; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.UChangeColor; import net.sourceforge.plantuml.ugraphic.UEllipse; import net.sourceforge.plantuml.ugraphic.UFont; @@ -56,13 +56,13 @@ import net.sourceforge.plantuml.ugraphic.URectangle; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class Tile implements TextBlock { +public class Tile extends AbstractTextBlock implements TextBlock { private static double SIZE = 40; private final int num; private final UFont numberFont = new UFont("Monospaced", Font.PLAIN, 11); - private final FontConfiguration fc = new FontConfiguration(numberFont, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); + private final FontConfiguration fc = FontConfiguration.blackBlueTrue(numberFont); private final Map geometries; Tile(int num) { @@ -80,8 +80,7 @@ public void drawU(UGraphic ug) { ug = ug.apply(new UChangeColor(HtmlColorUtils.BLACK)); - final TextBlock n = TextBlockUtils.create(Display.create("" + num), fc, HorizontalAlignment.LEFT, - new SpriteContainerEmpty()); + final TextBlock n = Display.create("" + num).create(fc, HorizontalAlignment.LEFT, new SpriteContainerEmpty()); final Dimension2D dimNum = n.calculateDimension(ug.getStringBounder()); final Dimension2D dimTotal = calculateDimension(ug.getStringBounder()); final double diffx = dimTotal.getWidth() - dimNum.getWidth(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/golem/TilesField.java plantuml-8039/src/net/sourceforge/plantuml/golem/TilesField.java --- plantuml-8024/src/net/sourceforge/plantuml/golem/TilesField.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/golem/TilesField.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,6 +43,7 @@ import java.util.Map; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; @@ -51,7 +52,7 @@ import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class TilesField implements TextBlock { +public class TilesField extends AbstractTextBlock implements TextBlock { private int size = 1; private final Tile root = new Tile(0); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/AbstractEntityImage.java plantuml-8039/src/net/sourceforge/plantuml/graph/AbstractEntityImage.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/AbstractEntityImage.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/AbstractEntityImage.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/ALinkImpl.java plantuml-8039/src/net/sourceforge/plantuml/graph/ALinkImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/ALinkImpl.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/ALinkImpl.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/ALink.java plantuml-8039/src/net/sourceforge/plantuml/graph/ALink.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/ALink.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/ALink.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/ANodeImpl.java plantuml-8039/src/net/sourceforge/plantuml/graph/ANodeImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/ANodeImpl.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/ANodeImpl.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/ANode.java plantuml-8039/src/net/sourceforge/plantuml/graph/ANode.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/ANode.java 2015-05-03 15:06:16.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/ANode.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/BoardCollection.java plantuml-8039/src/net/sourceforge/plantuml/graph/BoardCollection.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/BoardCollection.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/BoardCollection.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/BoardExplorer.java plantuml-8039/src/net/sourceforge/plantuml/graph/BoardExplorer.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/BoardExplorer.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/BoardExplorer.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Board.java plantuml-8039/src/net/sourceforge/plantuml/graph/Board.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Board.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Board.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/CostComputer.java plantuml-8039/src/net/sourceforge/plantuml/graph/CostComputer.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/CostComputer.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/CostComputer.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Elastane.java plantuml-8039/src/net/sourceforge/plantuml/graph/Elastane.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Elastane.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Elastane.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -270,12 +270,10 @@ final String label = l.getLabel().get(0).toString(); if (label != null) { // polyline.getFirst().getCenter(); - final TextBlock textBlock = TextBlockUtils.create(Display.create(label), - new FontConfiguration(UFont.getCurrentFont(g2d), HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), - HorizontalAlignment.LEFT, new SpriteContainerEmpty()); - textBlock.calculateDimension(StringBounderUtils.asStringBounder(g2d)); - // textBlock.drawTOBEREMOVED(new ColorMapperIdentity(), g2d, center.getXint() - dim.getWidth() / 2, - // center.getYint() - dim.getHeight() / 2); + final TextBlock textBlock = Display.create(label).create( + FontConfiguration.blackBlueTrue(UFont.getCurrentFont(g2d)), HorizontalAlignment.LEFT, + new SpriteContainerEmpty()); + textBlock.calculateDimension(StringBounderUtils.asStringBounder()); } g2d.setColor(red); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/ElectricCharge.java plantuml-8039/src/net/sourceforge/plantuml/graph/ElectricCharge.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/ElectricCharge.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/ElectricCharge.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/ElectricWord.java plantuml-8039/src/net/sourceforge/plantuml/graph/ElectricWord.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/ElectricWord.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/ElectricWord.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageActivityBar.java plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageActivityBar.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageActivityBar.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageActivityBar.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageActivityBranch.java plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageActivityBranch.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageActivityBranch.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageActivityBranch.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageActivityCircle.java plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageActivityCircle.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageActivityCircle.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageActivityCircle.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageActivity.java plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageActivity.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageActivity.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageActivity.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,6 +41,7 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.SpriteContainerEmpty; +import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; @@ -48,7 +49,6 @@ import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.StringBounderUtils; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.ColorMapper; class EntityImageActivity extends AbstractEntityImage { @@ -60,8 +60,8 @@ public EntityImageActivity(IEntity entity) { super(entity); - this.text = TextBlockUtils.create(entity.getDisplay(), new FontConfiguration(getFont14(), - HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.CENTER, new SpriteContainerEmpty()); + this.text = entity.getDisplay().create(FontConfiguration.blackBlueTrue(getFont14()), + HorizontalAlignment.CENTER, new SpriteContainerEmpty()); } @Override @@ -72,7 +72,7 @@ @Override public void draw(ColorMapper colorMapper, Graphics2D g2d) { - final Dimension2D dimTotal = getDimension(StringBounderUtils.asStringBounder(g2d)); + final Dimension2D dimTotal = getDimension(StringBounderUtils.asStringBounder()); final int width = (int) dimTotal.getWidth(); final int height = (int) dimTotal.getHeight(); @@ -98,7 +98,7 @@ g2d.draw(p); // g2d.drawRect(0, 0, width - 1, height - 1); g2d.setColor(Color.BLACK); -// text.drawTOBEREMOVED(colorMapper, g2d, xMargin, yMargin); + // text.drawTOBEREMOVED(colorMapper, g2d, xMargin, yMargin); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageCircleInterface.java plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageCircleInterface.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageCircleInterface.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageCircleInterface.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,10 +42,8 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.skin.CircleInterface; import net.sourceforge.plantuml.ugraphic.ColorMapper; @@ -56,8 +54,8 @@ public EntityImageCircleInterface(IEntity entity) { super(entity); - this.name = TextBlockUtils.create(entity.getDisplay(), new FontConfiguration(getFont14(), - HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.CENTER, new SpriteContainerEmpty()); + this.name = entity.getDisplay().create(FontConfiguration.blackBlueTrue(getFont14()), + HorizontalAlignment.CENTER, new SpriteContainerEmpty()); this.circleInterface = new CircleInterface(getYellow(), getRed()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageComponent.java plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageComponent.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageComponent.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageComponent.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,97 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.graph; - -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Dimension2D; -import java.awt.geom.Rectangle2D; - -import net.sourceforge.plantuml.Dimension2DDouble; -import net.sourceforge.plantuml.SpriteContainerEmpty; -import net.sourceforge.plantuml.cucadiagram.IEntity; -import net.sourceforge.plantuml.graphic.FontConfiguration; -import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.graphic.StringBounder; -import net.sourceforge.plantuml.graphic.StringBounderUtils; -import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; -import net.sourceforge.plantuml.ugraphic.ColorMapper; - -class EntityImageComponent extends AbstractEntityImage { - - final private TextBlock name; - private final float thickness = (float) 1.6; - - public EntityImageComponent(IEntity entity) { - super(entity); - this.name = TextBlockUtils.create(entity.getDisplay(), new FontConfiguration(getFont14(), - HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.CENTER, new SpriteContainerEmpty()); - } - - @Override - public Dimension2D getDimension(StringBounder stringBounder) { - final Dimension2D nameDim = name.calculateDimension(stringBounder); - return Dimension2DDouble.delta(nameDim, 20, 14); - } - - private void drawRect(ColorMapper colorMapper, Graphics2D g2d, double x, double y, double width, double height) { - g2d.setStroke(new BasicStroke(thickness)); - final Shape head = new Rectangle2D.Double(x, y, width, height); - g2d.setColor(colorMapper.getMappedColor(getYellow())); - g2d.fill(head); - g2d.setColor(colorMapper.getMappedColor(getRed())); - g2d.draw(head); - - g2d.setStroke(new BasicStroke()); - } - - @Override - public void draw(ColorMapper colorMapper, Graphics2D g2d) { - final Dimension2D dimTotal = getDimension(StringBounderUtils.asStringBounder(g2d)); - name.calculateDimension(StringBounderUtils.asStringBounder(g2d)); - - drawRect(colorMapper, g2d, 6, 0, dimTotal.getWidth(), dimTotal.getHeight()); - drawRect(colorMapper, g2d, 0, 7, 12, 6); - drawRect(colorMapper, g2d, 0, dimTotal.getHeight() - 7 - 6, 12, 6); - - g2d.setColor(Color.BLACK); -// name.drawTOBEREMOVED(colorMapper, g2d, 6 + (dimTotal.getWidth() - nameDim.getWidth()) / 2, -// (dimTotal.getHeight() - nameDim.getHeight()) / 2); - } -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageDefault.java plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageDefault.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageDefault.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageDefault.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,11 +43,9 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.StringBounderUtils; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.ColorMapper; class EntityImageDefault extends AbstractEntityImage { @@ -56,8 +54,8 @@ public EntityImageDefault(IEntity entity) { super(entity); - this.textBlock = TextBlockUtils.create(entity.getDisplay(), new FontConfiguration(getFont14(), HtmlColorUtils.BLACK, - HtmlColorUtils.BLUE, true), HorizontalAlignment.CENTER, new SpriteContainerEmpty()); + this.textBlock = entity.getDisplay().create(FontConfiguration.blackBlueTrue(getFont14()), + HorizontalAlignment.CENTER, new SpriteContainerEmpty()); } @Override @@ -68,11 +66,11 @@ @Override public void draw(ColorMapper colorMapper, Graphics2D g2d) { - final Dimension2D dim = textBlock.calculateDimension(StringBounderUtils.asStringBounder(g2d)); + final Dimension2D dim = textBlock.calculateDimension(StringBounderUtils.asStringBounder()); final int width = (int) dim.getWidth(); final int height = (int) dim.getHeight(); g2d.setColor(Color.BLACK); g2d.drawRect(0, 0, width, height); -// textBlock.drawTOBEREMOVED(colorMapper, g2d, 0, 0); + // textBlock.drawTOBEREMOVED(colorMapper, g2d, 0, 0); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageFactory.java plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageFactory.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageFactory.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageNote.java plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageNote.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageNote.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageNote.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,11 +44,9 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.StringBounderUtils; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.ColorMapper; class EntityImageNote extends AbstractEntityImage { @@ -60,8 +58,8 @@ public EntityImageNote(IEntity entity) { super(entity); - this.text = TextBlockUtils.create(entity.getDisplay(), new FontConfiguration(getFont14(), - HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.CENTER, new SpriteContainerEmpty()); + this.text = entity.getDisplay().create(FontConfiguration.blackBlueTrue(getFont14()), + HorizontalAlignment.CENTER, new SpriteContainerEmpty()); } @Override @@ -72,7 +70,7 @@ @Override public void draw(ColorMapper colorMapper, Graphics2D g2d) { - final Dimension2D dimTotal = getDimension(StringBounderUtils.asStringBounder(g2d)); + final Dimension2D dimTotal = getDimension(StringBounderUtils.asStringBounder()); final int width = (int) dimTotal.getWidth(); final int height = (int) dimTotal.getHeight(); @@ -93,7 +91,7 @@ g2d.drawLine(width - xMargin, yMargin, width, yMargin); g2d.setColor(Color.BLACK); -// text.drawTOBEREMOVED(colorMapper, g2d, xMargin, yMargin); + // text.drawTOBEREMOVED(colorMapper, g2d, xMargin, yMargin); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageUsecase.java plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageUsecase.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/EntityImageUsecase.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/EntityImageUsecase.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,6 +42,7 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.SpriteContainerEmpty; +import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; @@ -49,7 +50,6 @@ import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.StringBounderUtils; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.ColorMapper; class EntityImageUsecase extends AbstractEntityImage { @@ -58,8 +58,8 @@ public EntityImageUsecase(IEntity entity) { super(entity); - this.name = TextBlockUtils.create(entity.getDisplay(), new FontConfiguration(getFont14(), - HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.CENTER, new SpriteContainerEmpty()); + this.name = entity.getDisplay().create(FontConfiguration.blackBlueTrue(getFont14()), + HorizontalAlignment.CENTER, new SpriteContainerEmpty()); } @Override @@ -77,7 +77,7 @@ @Override public void draw(ColorMapper colorMapper, Graphics2D g2d) { - final Dimension2D dimTotal = getDimension(StringBounderUtils.asStringBounder(g2d)); + final Dimension2D dimTotal = getDimension(StringBounderUtils.asStringBounder()); // Shape ellipse = new Ellipse2D.Double(0, 0, dimTotal.getWidth(), // dimTotal.getHeight()); @@ -94,9 +94,9 @@ g2d.setColor(colorMapper.getMappedColor(getRed())); g2d.draw(ellipse); -// final Dimension2D nameDim = name.calculateDimension(StringBounderUtils.asStringBounder(g2d)); -// final double posx = (w - nameDim.getWidth()) / 2; -// final double posy = (h - nameDim.getHeight()) / 2; + // final Dimension2D nameDim = name.calculateDimension(StringBounderUtils.asStringBounder(g2d)); + // final double posx = (w - nameDim.getWidth()) / 2; + // final double posy = (h - nameDim.getHeight()) / 2; // final Shape rect = new Rectangle2D.Double(posx, posy, nameDim.getWidth(), nameDim.getHeight()); // g2d.draw(rect); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Galaxy4.java plantuml-8039/src/net/sourceforge/plantuml/graph/Galaxy4.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Galaxy4.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Galaxy4.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/GeneralPathFactory.java plantuml-8039/src/net/sourceforge/plantuml/graph/GeneralPathFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/GeneralPathFactory.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/GeneralPathFactory.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Graph1.java plantuml-8039/src/net/sourceforge/plantuml/graph/Graph1.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Graph1.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Graph1.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Graph2.java plantuml-8039/src/net/sourceforge/plantuml/graph/Graph2.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Graph2.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Graph2.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -47,22 +47,15 @@ public class Graph2 { - final private static Graphics2D dummyGraphics2D; - private final Elastane elastane; private int widthCell; private int heightCell; - static { - final EmptyImageBuilder builder = new EmptyImageBuilder(10, 10, Color.WHITE); - dummyGraphics2D = builder.getGraphics2D(); - } - public Graph2(Board board) { board.normalize(); for (ANode n : board.getNodes()) { - final Dimension2D dim = images(n).getDimension(StringBounderUtils.asStringBounder(dummyGraphics2D)); + final Dimension2D dim = images(n).getDimension(StringBounderUtils.asStringBounder()); widthCell = Math.max(widthCell, (int) dim.getWidth()); heightCell = Math.max(heightCell, (int) dim.getHeight()); } @@ -70,7 +63,7 @@ elastane = new Elastane(galaxy); for (ANode n : board.getNodes()) { - final Dimension2D dim = images(n).getDimension(StringBounderUtils.asStringBounder(dummyGraphics2D)); + final Dimension2D dim = images(n).getDimension(StringBounderUtils.asStringBounder()); elastane.addBox(n, (int) dim.getWidth(), (int) dim.getHeight()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Graph3.java plantuml-8039/src/net/sourceforge/plantuml/graph/Graph3.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Graph3.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Graph3.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -68,8 +68,6 @@ public class Graph3 { - final private static Graphics2D dummyGraphics2D; - private final int spaceWidth = 40; private final int spaceHeight = 40; private final int minDistBetweenPoint = 20; @@ -85,11 +83,6 @@ private int maxRow; private int maxCol; - static { - final EmptyImageBuilder builder = new EmptyImageBuilder(10, 10, Color.WHITE); - dummyGraphics2D = builder.getGraphics2D(); - } - class ANodePoint implements Pointable, XMoveable { final private ANode node; private int deltaX = 0; @@ -155,8 +148,8 @@ final Point2DInt p = nodePoint.getPosition(); final AbstractEntityImage image = getImage(nodePoint.getNode()); - int widthCell = (int) image.getDimension(StringBounderUtils.asStringBounder(dummyGraphics2D)).getWidth(); - int heightCell = (int) image.getDimension(StringBounderUtils.asStringBounder(dummyGraphics2D)).getHeight(); + int widthCell = (int) image.getDimension(StringBounderUtils.asStringBounder()).getWidth(); + int heightCell = (int) image.getDimension(StringBounderUtils.asStringBounder()).getHeight(); if (widthCell % 2 == 1) { widthCell++; } @@ -186,7 +179,7 @@ final double x = point.getPosition().getX(); final double y = point.getPosition().getY(); final Dimension2D dim = getImage(point.getNode()).getDimension( - StringBounderUtils.asStringBounder(dummyGraphics2D)); + StringBounderUtils.asStringBounder()); final Frame frame = new Frame(x, y, (int) dim.getWidth(), (int) dim.getHeight()); frames.put(point, frame); world.addFrame(frame); @@ -434,8 +427,8 @@ for (ANodePoint nodePoint : nodePoints.values()) { final Frame frame = frames.get(nodePoint); final AbstractEntityImage image = getImage(nodePoint.getNode()); - final double width = image.getDimension(StringBounderUtils.asStringBounder(g2d)).getWidth(); - final double height = image.getDimension(StringBounderUtils.asStringBounder(g2d)).getHeight(); + final double width = image.getDimension(StringBounderUtils.asStringBounder()).getWidth(); + final double height = image.getDimension(StringBounderUtils.asStringBounder()).getHeight(); g2d.translate(frame.getX() - width / 2, frame.getY() - height / 2); image.draw(new ColorMapperIdentity(), g2d); g2d.translate(-frame.getX() + width / 2, -frame.getY() + height / 2); @@ -462,8 +455,8 @@ final Point2DInt p = nodePoint.getPosition(); // Log.println("p=" + p); final AbstractEntityImage image = getImage(nodePoint.getNode()); - final int width = (int) (image.getDimension(StringBounderUtils.asStringBounder(g2d)).getWidth()); - final int height = (int) (image.getDimension(StringBounderUtils.asStringBounder(g2d)).getHeight()); + final int width = (int) (image.getDimension(StringBounderUtils.asStringBounder()).getWidth()); + final int height = (int) (image.getDimension(StringBounderUtils.asStringBounder()).getHeight()); g2d.translate(p.getXint() - width / 2, p.getYint() - height / 2); image.draw(new ColorMapperIdentity(), g2d); g2d.translate(-p.getXint() + width / 2, -p.getYint() + height / 2); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Graph4.java plantuml-8039/src/net/sourceforge/plantuml/graph/Graph4.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Graph4.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Graph4.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -64,8 +64,6 @@ public class Graph4 { - final private static Graphics2D dummyGraphics2D; - private final int spaceWidth = 40; private final int spaceHeight = 40; @@ -81,11 +79,6 @@ private int addedWidth = 0; private int addedHeight = 0; - static { - final EmptyImageBuilder builder = new EmptyImageBuilder(10, 10, Color.WHITE); - dummyGraphics2D = builder.getGraphics2D(); - } - class ANodePoint implements Pointable, XMoveable { final private ANode node; private int deltaX = 0; @@ -129,8 +122,8 @@ final Point2DInt p = nodePoint.getPosition(); final AbstractEntityImage image = getImage(nodePoint.getNode()); - int widthCell = (int) image.getDimension(StringBounderUtils.asStringBounder(dummyGraphics2D)).getWidth(); - int heightCell = (int) image.getDimension(StringBounderUtils.asStringBounder(dummyGraphics2D)).getHeight(); + int widthCell = (int) image.getDimension(StringBounderUtils.asStringBounder()).getWidth(); + int heightCell = (int) image.getDimension(StringBounderUtils.asStringBounder()).getHeight(); if (widthCell % 2 == 1) { widthCell++; } @@ -156,7 +149,7 @@ final double x = point.getPosition().getX(); final double y = point.getPosition().getY(); final Dimension2D dim = getImage(point.getNode()).getDimension( - StringBounderUtils.asStringBounder(dummyGraphics2D)); + StringBounderUtils.asStringBounder()); final int width = (int) dim.getWidth(); final int height = (int) dim.getHeight(); final Frame frame = new Frame(x - width / 2, y - height / 2, width, height); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Graph5.java plantuml-8039/src/net/sourceforge/plantuml/graph/Graph5.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Graph5.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Graph5.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -58,8 +58,6 @@ public class Graph5 { - final private static Graphics2D dummyGraphics2D; - private final int spaceWidth = 40; private final int spaceHeight = 40; @@ -74,11 +72,6 @@ // private final IInflationTransform inflationTransform = new // IdentityInflationTransform(); - static { - final EmptyImageBuilder builder = new EmptyImageBuilder(10, 10, Color.WHITE); - dummyGraphics2D = builder.getGraphics2D(); - } - private AbstractEntityImage getImage(ANode n) { return new EntityImageFactory().createEntityImage((IEntity) n.getUserData()); } @@ -96,9 +89,9 @@ for (ANode n : board.getNodes()) { final AbstractEntityImage image = getImage(n); final Point2D.Double pos = getPosition(n); - final int widthCell = (int) image.getDimension(StringBounderUtils.asStringBounder(dummyGraphics2D)) + final int widthCell = (int) image.getDimension(StringBounderUtils.asStringBounder()) .getWidth() + 20; - final int heightCell = (int) image.getDimension(StringBounderUtils.asStringBounder(dummyGraphics2D)) + final int heightCell = (int) image.getDimension(StringBounderUtils.asStringBounder()) .getHeight() + 20; inflationTransform.addInflationX(pos.getX(), widthCell); inflationTransform.addInflationY(pos.getY(), heightCell); @@ -137,8 +130,8 @@ final AbstractEntityImage image = getImage(n); Point2D pos = getPosition(n); pos = inflationTransform.inflatePoint2D(pos); - final double x = pos.getX() - image.getDimension(StringBounderUtils.asStringBounder(g2d)).getWidth() / 2; - final double y = pos.getY() - image.getDimension(StringBounderUtils.asStringBounder(g2d)).getHeight() / 2; + final double x = pos.getX() - image.getDimension(StringBounderUtils.asStringBounder()).getWidth() / 2; + final double y = pos.getY() - image.getDimension(StringBounderUtils.asStringBounder()).getHeight() / 2; g2d.translate(x, y); image.draw(new ColorMapperIdentity(), g2d); g2d.translate(-x, -y); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Heap.java plantuml-8039/src/net/sourceforge/plantuml/graph/Heap.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Heap.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Heap.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/KenavoCostComputer.java plantuml-8039/src/net/sourceforge/plantuml/graph/KenavoCostComputer.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/KenavoCostComputer.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/KenavoCostComputer.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/LenghtLinkComparator.java plantuml-8039/src/net/sourceforge/plantuml/graph/LenghtLinkComparator.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/LenghtLinkComparator.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/LenghtLinkComparator.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/LinkString.java plantuml-8039/src/net/sourceforge/plantuml/graph/LinkString.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/LinkString.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/LinkString.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/MethodsOrFieldsArea.java plantuml-8039/src/net/sourceforge/plantuml/graph/MethodsOrFieldsArea.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/MethodsOrFieldsArea.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/MethodsOrFieldsArea.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -82,8 +82,8 @@ } private TextBlock createTextBlock(String s) { - return TextBlockUtils.create(Display.create(s), new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), - HorizontalAlignment.LEFT, new SpriteContainerEmpty()); + return Display.create(s).create(FontConfiguration.blackBlueTrue(font), HorizontalAlignment.LEFT, + new SpriteContainerEmpty()); } public void draw(UGraphic ug, double x, double y) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Move.java plantuml-8039/src/net/sourceforge/plantuml/graph/Move.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Move.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Move.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Oven.java plantuml-8039/src/net/sourceforge/plantuml/graph/Oven.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Oven.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Oven.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/SimpleCostComputer.java plantuml-8039/src/net/sourceforge/plantuml/graph/SimpleCostComputer.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/SimpleCostComputer.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/SimpleCostComputer.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/SortedCollectionArrayList.java plantuml-8039/src/net/sourceforge/plantuml/graph/SortedCollectionArrayList.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/SortedCollectionArrayList.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/SortedCollectionArrayList.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/SortedCollection.java plantuml-8039/src/net/sourceforge/plantuml/graph/SortedCollection.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/SortedCollection.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/SortedCollection.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/SortedCollectionLinked.java plantuml-8039/src/net/sourceforge/plantuml/graph/SortedCollectionLinked.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/SortedCollectionLinked.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/SortedCollectionLinked.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Zoda1.java plantuml-8039/src/net/sourceforge/plantuml/graph/Zoda1.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Zoda1.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Zoda1.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph/Zoda2.java plantuml-8039/src/net/sourceforge/plantuml/graph/Zoda2.java --- plantuml-8024/src/net/sourceforge/plantuml/graph/Zoda2.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph/Zoda2.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/CubicCurveFactory.java plantuml-8039/src/net/sourceforge/plantuml/graph2/CubicCurveFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/CubicCurveFactory.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/CubicCurveFactory.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/Dijkstra.java plantuml-8039/src/net/sourceforge/plantuml/graph2/Dijkstra.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/Dijkstra.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/Dijkstra.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/GeomUtils.java plantuml-8039/src/net/sourceforge/plantuml/graph2/GeomUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/GeomUtils.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/GeomUtils.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/IdentityInflationTransform.java plantuml-8039/src/net/sourceforge/plantuml/graph2/IdentityInflationTransform.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/IdentityInflationTransform.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/IdentityInflationTransform.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/IInflationTransform.java plantuml-8039/src/net/sourceforge/plantuml/graph2/IInflationTransform.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/IInflationTransform.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/IInflationTransform.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/InflateData2.java plantuml-8039/src/net/sourceforge/plantuml/graph2/InflateData2.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/InflateData2.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/InflateData2.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/InflationTransform2.java plantuml-8039/src/net/sourceforge/plantuml/graph2/InflationTransform2.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/InflationTransform2.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/InflationTransform2.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/MagicPointsFactory2.java plantuml-8039/src/net/sourceforge/plantuml/graph2/MagicPointsFactory2.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/MagicPointsFactory2.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/MagicPointsFactory2.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/MagicPointsFactory.java plantuml-8039/src/net/sourceforge/plantuml/graph2/MagicPointsFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/MagicPointsFactory.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/MagicPointsFactory.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/Measurer.java plantuml-8039/src/net/sourceforge/plantuml/graph2/Measurer.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/Measurer.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/Measurer.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/MyCurve.java plantuml-8039/src/net/sourceforge/plantuml/graph2/MyCurve.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/MyCurve.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/MyCurve.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/Neighborhood2.java plantuml-8039/src/net/sourceforge/plantuml/graph2/Neighborhood2.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/Neighborhood2.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/Neighborhood2.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/Plan.java plantuml-8039/src/net/sourceforge/plantuml/graph2/Plan.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/Plan.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/Plan.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/Polyline2.java plantuml-8039/src/net/sourceforge/plantuml/graph2/Polyline2.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/Polyline2.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/Polyline2.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/RectanglesCollection.java plantuml-8039/src/net/sourceforge/plantuml/graph2/RectanglesCollection.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/RectanglesCollection.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/RectanglesCollection.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/Singularity2.java plantuml-8039/src/net/sourceforge/plantuml/graph2/Singularity2.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/Singularity2.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/Singularity2.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/SortedListImpl.java plantuml-8039/src/net/sourceforge/plantuml/graph2/SortedListImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/SortedListImpl.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/SortedListImpl.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graph2/SortedList.java plantuml-8039/src/net/sourceforge/plantuml/graph2/SortedList.java --- plantuml-8024/src/net/sourceforge/plantuml/graph2/SortedList.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graph2/SortedList.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/AbstractTextBlock.java plantuml-8039/src/net/sourceforge/plantuml/graphic/AbstractTextBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/AbstractTextBlock.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/AbstractTextBlock.java 2016-04-22 16:26:26.000000000 +0000 @@ -0,0 +1,44 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.graphic; + +import java.awt.geom.Rectangle2D; + +public abstract class AbstractTextBlock implements TextBlock { + + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + throw new UnsupportedOperationException("member=" + member + " " + getClass().toString()); + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/AddStyle.java plantuml-8039/src/net/sourceforge/plantuml/graphic/AddStyle.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/AddStyle.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/AddStyle.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/CircledCharacter.java plantuml-8039/src/net/sourceforge/plantuml/graphic/CircledCharacter.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/CircledCharacter.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/CircledCharacter.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,7 +45,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class CircledCharacter implements TextBlock { +public class CircledCharacter extends AbstractTextBlock implements TextBlock { private final String c; private final UFont font; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/color/ColorParser.java plantuml-8039/src/net/sourceforge/plantuml/graphic/color/ColorParser.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/color/ColorParser.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/color/ColorParser.java 2016-04-22 16:26:26.000000000 +0000 @@ -0,0 +1,110 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.graphic.color; + +import net.sourceforge.plantuml.command.regex.RegexLeaf; +import net.sourceforge.plantuml.command.regex.RegexResult; +import net.sourceforge.plantuml.graphic.IHtmlColorSet; + +public class ColorParser { + + private static final String COLOR_REGEXP = "#\\w+[-\\\\|/]?\\w+"; + + private static final String PART2 = "#(?:\\w+[-\\\\|/]?\\w+;)?(?:(?:text|back|header|line|line\\.dashed|line\\.dotted|line\\.bold|shadowing)(?::\\w+[-\\\\|/]?\\w+)?(?:;|(?![\\w;:.])))+"; + private static final String COLORS_REGEXP = "(?:" + PART2 + ")|(?:" + COLOR_REGEXP + ")"; + + private final RegexLeaf regex; + private final String name; + private final ColorType mainType; + + private ColorParser(String name, RegexLeaf regex, ColorType mainType) { + this.regex = regex; + this.name = name; + this.mainType = mainType; + } + + public Colors getColor(RegexResult arg, IHtmlColorSet set) { + if (mainType == null) { + throw new IllegalStateException(); + } + final String data = arg.get(name, 0); + if (data == null) { + return Colors.empty(); + } + return new Colors(data, set, mainType); + // return result.getColor(type); + } + + // New Parsers + public static ColorParser simpleColor(ColorType mainType) { + return new ColorParser("COLOR", new RegexLeaf("COLOR", "(" + COLORS_REGEXP + ")?"), mainType); + } + + public static ColorParser simpleColor(String optPrefix, ColorType mainType) { + return new ColorParser("COLOR", new RegexLeaf("COLOR", "(?:" + optPrefix + " (" + COLORS_REGEXP + "))?"), + mainType); + } + + // Old Parsers + + public static RegexLeaf exp1() { + return simpleColor(null).regex; + } + + public static RegexLeaf exp2() { + return new RegexLeaf("BACKCOLOR", "(" + COLOR_REGEXP + ")?"); + } + + public static RegexLeaf exp3() { + return new RegexLeaf("BACKCOLOR2", "(" + COLOR_REGEXP + ")?"); + } + + public static RegexLeaf exp4() { + return new RegexLeaf("COLOR", "(?:(" + COLOR_REGEXP + "):)?"); + } + + public static RegexLeaf exp6() { + return new RegexLeaf("COLOR", "(?:(" + COLOR_REGEXP + ")\\|)?"); + } + + public static RegexLeaf exp7() { + return new RegexLeaf("COLOR", "(?:(" + COLOR_REGEXP + "))?"); + } + + public RegexLeaf getRegex() { + return regex; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/color/Colors.java plantuml-8039/src/net/sourceforge/plantuml/graphic/color/Colors.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/color/Colors.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/color/Colors.java 2016-04-22 16:26:26.000000000 +0000 @@ -0,0 +1,237 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.graphic.color; + +import java.util.EnumMap; +import java.util.Map; +import java.util.StringTokenizer; + +import net.sourceforge.plantuml.ColorParam; +import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.SkinParamColors; +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.cucadiagram.LinkStyle; +import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.IHtmlColorSet; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UStroke; + +public class Colors { + + private final Map map = new EnumMap(ColorType.class); + private LinkStyle lineStyle = null; + private Boolean shadowing = null; + + @Override + public String toString() { + return map.toString() + " " + lineStyle; + } + + public static Colors empty() { + return new Colors(); + } + + private Colors copy() { + final Colors result = new Colors(); + result.map.putAll(this.map); + result.lineStyle = this.lineStyle; + return result; + } + + private Colors() { + } + + public Colors(String data, IHtmlColorSet set, ColorType mainType) { + data = StringUtils.goLowerCase(data); + + for (final StringTokenizer st = new StringTokenizer(data, "#;"); st.hasMoreTokens();) { + final String s = st.nextToken(); + final int x = s.indexOf(':'); + if (x == -1) { + if (s.contains(".") == false) { + map.put(mainType, set.getColorIfValid(s)); + } + } else { + final String name = s.substring(0, x); + final String value = s.substring(x + 1); + if (name.equalsIgnoreCase("shadowing")) { + this.shadowing = value.equalsIgnoreCase("true"); + } else { + final ColorType key = ColorType.getType(name); + final HtmlColor color = set.getColorIfValid(value); + map.put(key, color); + } + } + } + if (data.contains("line.dashed")) { + lineStyle = LinkStyle.DASHED; + } else if (data.contains("line.dotted")) { + lineStyle = LinkStyle.DOTTED; + } else if (data.contains("line.bold")) { + lineStyle = LinkStyle.BOLD; + } + } + + public HtmlColor getColor(ColorType key) { + if (key == null) { + throw new IllegalArgumentException(); + } + return map.get(key); + } + + public HtmlColor getColor(ColorType key1, ColorType key2) { + final HtmlColor result = getColor(key1); + if (result != null) { + return result; + } + return getColor(key2); + } + + public UStroke getSpecificLineStroke() { + if (lineStyle == null) { + return null; + } + return LinkStyle.getStroke(lineStyle); + } + + // public Colors addSpecificLineStroke(UStroke specificStroke) { + // final Colors result = copy(); + // result.specificStroke = specificStroke; + // return result; + // } + + public Colors add(ColorType type, HtmlColor color) { + if (color == null) { + return this; + } + final Colors result = copy(); + result.map.put(type, color); + return result; + } + + private Colors add(ColorType colorType, Colors other) { + final Colors result = copy(); + result.map.putAll(other.map); + if (other.lineStyle != null) { + result.lineStyle = other.lineStyle; + } + return result; + } + + public final LinkStyle getLineStyle() { + return lineStyle; + } + + public ISkinParam mute(ISkinParam skinParam) { + return new SkinParamColors(skinParam, this); + } + + public Colors addLegacyStroke(String s) { + if (s == null) { + throw new IllegalArgumentException(); + } + final Colors result = copy(); + result.lineStyle = LinkStyle.valueOf(StringUtils.goUpperCase(s)); + return result; + + } + + public static UGraphic applyStroke(UGraphic ug, Colors colors) { + if (colors == null) { + return ug; + } + if (colors.lineStyle == null) { + return ug; + } + return ug.apply(LinkStyle.getStroke(colors.lineStyle)); + } + + public Colors applyStereotype(Stereotype stereotype, ISkinParam skinParam, ColorParam param) { + if (stereotype == null) { + throw new IllegalArgumentException(); + } + if (param == null) { + throw new IllegalArgumentException(); + } + final ColorType colorType = param.getColorType(); + if (colorType == null) { + throw new IllegalArgumentException(); + } + if (getColor(colorType) != null) { + return this; + } + final Colors colors = skinParam.getColors(param, stereotype); + return add(colorType, colors); + } + + private Colors applyFontParamStereotype(Stereotype stereotype, ISkinParam skinParam, FontParam param) { + if (stereotype == null) { + throw new IllegalArgumentException(); + } + if (param == null) { + return this; + } + final ColorType colorType = ColorType.TEXT; + if (getColor(colorType) != null) { + return this; + } + final HtmlColor col = skinParam.getFontHtmlColor(stereotype, param); + return add(colorType, col); + } + + public Colors applyStereotypeForNote(Stereotype stereotype, ISkinParam skinParam, FontParam fontParam, + ColorParam... params) { + if (stereotype == null) { + throw new IllegalArgumentException(); + } + if (params == null) { + throw new IllegalArgumentException(); + } + Colors result = this; + for (ColorParam param : params) { + result = result.applyStereotype(stereotype, skinParam, param); + } + result = result.applyFontParamStereotype(stereotype, skinParam, fontParam); + result.shadowing = skinParam.shadowingForNote(stereotype); + return result; + } + + public Boolean getShadowing() { + return shadowing; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/color/ColorType.java plantuml-8039/src/net/sourceforge/plantuml/graphic/color/ColorType.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/color/ColorType.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/color/ColorType.java 2016-04-22 16:26:26.000000000 +0000 @@ -0,0 +1,48 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.graphic.color; + +public enum ColorType { + TEXT, LINE, BACK, HEADER, ARROW; + + public static ColorType getType(String s) { + final int x = s.indexOf('.'); + if (x != -1) { + s = s.substring(0, x); + } + final ColorType key = ColorType.valueOf(s.toUpperCase()); + return key; + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/ColorAndSizeChange.java plantuml-8039/src/net/sourceforge/plantuml/graphic/ColorAndSizeChange.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/ColorAndSizeChange.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/ColorAndSizeChange.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/ColorChange.java plantuml-8039/src/net/sourceforge/plantuml/graphic/ColorChange.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/ColorChange.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/ColorChange.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/DateEventUtils.java plantuml-8039/src/net/sourceforge/plantuml/graphic/DateEventUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/DateEventUtils.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/DateEventUtils.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,7 +37,6 @@ import java.awt.Font; import java.awt.geom.Dimension2D; import java.awt.image.BufferedImage; -import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; @@ -46,16 +45,20 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.SpriteContainerEmpty; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.ugraphic.LimitFinder; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UImage; +import net.sourceforge.plantuml.ugraphic.UTranslate; import net.sourceforge.plantuml.version.PSystemVersion; +import net.sourceforge.plantuml.webp.Portrait; +import net.sourceforge.plantuml.webp.Portraits; public class DateEventUtils { public static TextBlock addEvent(TextBlock textBlock, HtmlColor color) { - final DateFormat dateFormat = new SimpleDateFormat("MM-dd"); - final String today = dateFormat.format(new Date()); + final String today = new SimpleDateFormat("MM-dd").format(new Date()); + final String todayDayOfWeek = new SimpleDateFormat("MM-dd-u").format(new Date()); if ("11-05".equals(today)) { final List asList = Arrays.asList("November 5th, 1955", @@ -71,16 +74,58 @@ "a character on a keyboard and seen it show up on their", "own computer's screen right in front of them.\"", "\t\t\t\t\t\t\t\t\t\tSteve Wozniak"); return TextBlockUtils.mergeTB(textBlock, getComment(asList, color), HorizontalAlignment.LEFT); - } else if ("01-07".equals(today) || "01-08".equals(today)) { + } else if ("01-07".equals(today) || "01-08-1".equals(todayDayOfWeek)) { return addCharlie(textBlock); + } else if ("11-13".equals(today) || "11-14-1".equals(todayDayOfWeek)) { + return addMemorial(textBlock, color); + } + return textBlock; + } + private static TextBlock addMemorial(TextBlock textBlock, HtmlColor color) { + final Portrait portrait = Portraits.getOne(); + if (portrait == null) { + return textBlock; + } + final BufferedImage im = portrait.getBufferedImage(); + if (im == null) { + return textBlock; } - return textBlock; + final String name = portrait.getName(); + final String quote = portrait.getQuote(); + final String age = "" + portrait.getAge() + " years old"; + final UFont font = new UFont("SansSerif", Font.BOLD, 12); + TextBlock comment = Display.create(name, age, quote).create( + new FontConfiguration(font, color, HtmlColorUtils.BLUE, true), HorizontalAlignment.LEFT, + new SpriteContainerEmpty()); + comment = TextBlockUtils.withMinWidth(TextBlockUtils.withMargin(comment, 4, 4), 800, HorizontalAlignment.LEFT); + + final TextBlock bottom0 = getComment( + Arrays.asList("A thought for those who died in Paris the 13th November 2015."), color); + final TextBlock bottom1 = new AbstractTextBlock() { + private double margin = 10; + + public void drawU(UGraphic ug) { + ug = ug.apply(new UTranslate(0, margin)); + ug.draw(new UImage(im)); + if (ug instanceof LimitFinder) { + return; + } + Portraits.nextOne(); + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + return new Dimension2DDouble(im.getWidth(), margin + im.getHeight()); + } + }; + final TextBlock bottom = TextBlockUtils.mergeTB(bottom0, + TextBlockUtils.mergeLR(bottom1, comment, VerticalAlignment.CENTER), HorizontalAlignment.LEFT); + return TextBlockUtils.mergeTB(textBlock, bottom, HorizontalAlignment.LEFT); } private static TextBlock addCharlie(TextBlock textBlock) { - final TextBlock charlie = new TextBlock() { + final TextBlock charlie = new AbstractTextBlock() { private final BufferedImage charlie = PSystemVersion.getCharlieImage(); public void drawU(UGraphic ug) { @@ -95,10 +140,11 @@ } - private static TextBlock getComment(final List asList, HtmlColor color) { + public static TextBlock getComment(final List asList, HtmlColor color) { final UFont font = new UFont("SansSerif", Font.BOLD, 14); - TextBlock comment = TextBlockUtils.create(Display.create(asList), new FontConfiguration(font, color, - HtmlColorUtils.BLUE, true), HorizontalAlignment.LEFT, new SpriteContainerEmpty()); + TextBlock comment = Display.create(asList).create( + new FontConfiguration(font, color, HtmlColorUtils.BLUE, true), HorizontalAlignment.LEFT, + new SpriteContainerEmpty()); comment = TextBlockUtils.withMargin(comment, 4, 4); comment = new TextBlockBordered(comment, color); comment = TextBlockUtils.withMargin(comment, 10, 10); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/DisplayUtils.java plantuml-8039/src/net/sourceforge/plantuml/graphic/DisplayUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/DisplayUtils.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/DisplayUtils.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/EmbededSystemLine.java plantuml-8039/src/net/sourceforge/plantuml/graphic/EmbededSystemLine.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/EmbededSystemLine.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/EmbededSystemLine.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,6 +44,7 @@ import javax.imageio.ImageIO; import net.sourceforge.plantuml.BlockUml; +import net.sourceforge.plantuml.CharSequence2; import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.EmbededDiagram; import net.sourceforge.plantuml.FileFormat; @@ -53,12 +54,12 @@ import net.sourceforge.plantuml.ugraphic.UImage; import net.sourceforge.plantuml.ugraphic.UShape; -class EmbededSystemLine implements Line { +class EmbededSystemLine extends AbstractTextBlock implements Line { - final private List lines; + final private List lines2; public EmbededSystemLine(EmbededDiagram sys) { - this.lines = sys.getLines().as(); + this.lines2 = sys.getLines().as2(); } public Dimension2D calculateDimension(StringBounder stringBounder) { @@ -102,7 +103,7 @@ } private Diagram getSystem() throws IOException, InterruptedException { - final BlockUml blockUml = new BlockUml(lines, 0); + final BlockUml blockUml = new BlockUml(lines2, 0); return blockUml.getDiagram(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/ExposantChange.java plantuml-8039/src/net/sourceforge/plantuml/graphic/ExposantChange.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/ExposantChange.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/ExposantChange.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/FontChange.java plantuml-8039/src/net/sourceforge/plantuml/graphic/FontChange.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/FontChange.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/FontChange.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/FontConfiguration.java plantuml-8039/src/net/sourceforge/plantuml/graphic/FontConfiguration.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/FontConfiguration.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/FontConfiguration.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,6 +41,8 @@ import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.SkinParamUtils; import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.ugraphic.UFont; public class FontConfiguration { @@ -56,19 +58,29 @@ private final SvgAttributes svgAttributes; private final boolean hyperlink; private final boolean useUnderlineForHyperlink; + private final int tabSize; public FontConfiguration(UFont font, HtmlColor color, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) { + this(font, color, hyperlinkColor, useUnderlineForHyperlink, 8); + } + + public FontConfiguration(UFont font, HtmlColor color, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink, + int tabSize) { this(getStyles(font), font, color, font, color, null, FontPosition.NORMAL, new SvgAttributes(), false, - hyperlinkColor, useUnderlineForHyperlink); + hyperlinkColor, useUnderlineForHyperlink, tabSize); + } + + public static FontConfiguration blackBlueTrue(UFont font) { + return new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true, 8); } public FontConfiguration(ISkinParam skinParam, FontParam fontParam, Stereotype stereo) { this(SkinParamUtils.getFont(skinParam, fontParam, stereo), SkinParamUtils.getFontColor(skinParam, fontParam, - stereo), skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()); + stereo), skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink(), skinParam.getTabSize()); } - - //--- - + + // --- + public final boolean useUnderlineForHyperlink() { return useUnderlineForHyperlink; } @@ -77,7 +89,7 @@ return hyperlinkColor; } - //--- + // --- private static EnumSet getStyles(UFont font) { final boolean bold = font.isBold(); @@ -101,7 +113,7 @@ private FontConfiguration(EnumSet styles, UFont motherFont, HtmlColor motherColor, UFont currentFont, HtmlColor currentColor, HtmlColor extendedColor, FontPosition fontPosition, SvgAttributes svgAttributes, - boolean hyperlink, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) { + boolean hyperlink, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink, int tabSize) { this.styles = styles; this.currentFont = currentFont; this.motherFont = motherFont; @@ -113,6 +125,7 @@ this.hyperlink = hyperlink; this.hyperlinkColor = hyperlinkColor; this.useUnderlineForHyperlink = useUnderlineForHyperlink; + this.tabSize = tabSize; } public FontConfiguration forceFont(UFont newFont, HtmlColor htmlColorForStereotype) { @@ -120,7 +133,8 @@ return add(FontStyle.ITALIC); } FontConfiguration result = new FontConfiguration(styles, newFont, motherColor, newFont, currentColor, - extendedColor, fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink); + extendedColor, fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, + tabSize); if (htmlColorForStereotype != null) { result = result.changeColor(htmlColorForStereotype); } @@ -129,27 +143,40 @@ public FontConfiguration changeAttributes(SvgAttributes toBeAdded) { return new FontConfiguration(styles, motherFont, motherColor, currentFont, currentColor, extendedColor, - fontPosition, svgAttributes.add(toBeAdded), hyperlink, hyperlinkColor, useUnderlineForHyperlink); + fontPosition, svgAttributes.add(toBeAdded), hyperlink, hyperlinkColor, useUnderlineForHyperlink, + tabSize); } private FontConfiguration withHyperlink() { return new FontConfiguration(styles, motherFont, motherColor, currentFont, currentColor, extendedColor, - fontPosition, svgAttributes, true, hyperlinkColor, useUnderlineForHyperlink); + fontPosition, svgAttributes, true, hyperlinkColor, useUnderlineForHyperlink, tabSize); } public FontConfiguration changeColor(HtmlColor htmlColor) { return new FontConfiguration(styles, motherFont, motherColor, currentFont, htmlColor, extendedColor, - fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink); + fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize); + } + + public FontConfiguration mute(Colors colors) { + if (colors == null) { + throw new IllegalArgumentException(); + } + final HtmlColor color = colors.getColor(ColorType.TEXT); + if (color == null) { + return this; + } + return changeColor(color); } FontConfiguration changeExtendedColor(HtmlColor newExtendedColor) { return new FontConfiguration(styles, motherFont, motherColor, currentFont, currentColor, newExtendedColor, - fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink); + fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize); } public FontConfiguration changeSize(float size) { return new FontConfiguration(styles, motherFont, motherColor, currentFont.deriveSize(size), currentColor, - extendedColor, fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink); + extendedColor, fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, + tabSize); } public FontConfiguration bigger(double delta) { @@ -158,25 +185,25 @@ public FontConfiguration changeFontPosition(FontPosition fontPosition) { return new FontConfiguration(styles, motherFont, motherColor, currentFont, currentColor, extendedColor, - fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink); + fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize); } public FontConfiguration changeFamily(String family) { return new FontConfiguration(styles, motherFont, motherColor, new UFont(family, currentFont.getStyle(), currentFont.getSize()), currentColor, extendedColor, fontPosition, svgAttributes, hyperlink, - hyperlinkColor, useUnderlineForHyperlink); + hyperlinkColor, useUnderlineForHyperlink, tabSize); } public FontConfiguration resetFont() { return new FontConfiguration(styles, motherFont, motherColor, motherFont, motherColor, null, - FontPosition.NORMAL, new SvgAttributes(), hyperlink, hyperlinkColor, useUnderlineForHyperlink); + FontPosition.NORMAL, new SvgAttributes(), hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize); } FontConfiguration add(FontStyle style) { final EnumSet r = styles.clone(); r.add(style); return new FontConfiguration(r, motherFont, motherColor, currentFont, currentColor, extendedColor, - fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink); + fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize); } public FontConfiguration italic() { @@ -202,7 +229,7 @@ final EnumSet r = styles.clone(); r.remove(style); return new FontConfiguration(r, motherFont, motherColor, currentFont, currentColor, extendedColor, - fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink); + fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize); } public UFont getFont() { @@ -240,4 +267,8 @@ return currentFont.getSize2D(); } + public int getTabSize() { + return tabSize; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/FontFamilyChange.java plantuml-8039/src/net/sourceforge/plantuml/graphic/FontFamilyChange.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/FontFamilyChange.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/FontFamilyChange.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; class FontFamilyChange implements FontChange { @@ -50,7 +51,7 @@ if (matcherColor.find() == false) { throw new IllegalArgumentException(); } - this.family = matcherColor.group(1).trim(); + this.family = StringUtils.trin(matcherColor.group(1)); } public FontConfiguration apply(FontConfiguration initial) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/FontPosition.java plantuml-8039/src/net/sourceforge/plantuml/graphic/FontPosition.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/FontPosition.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/FontPosition.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/FontStyle.java plantuml-8039/src/net/sourceforge/plantuml/graphic/FontStyle.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/FontStyle.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/FontStyle.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/GraphicPosition.java plantuml-8039/src/net/sourceforge/plantuml/graphic/GraphicPosition.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/GraphicPosition.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/GraphicPosition.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/GraphicStrings.java plantuml-8039/src/net/sourceforge/plantuml/graphic/GraphicStrings.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/GraphicStrings.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/GraphicStrings.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -53,7 +53,7 @@ import net.sourceforge.plantuml.ugraphic.UImage; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class GraphicStrings implements IEntityImage { +public class GraphicStrings extends AbstractTextBlock implements IEntityImage { private final HtmlColor background; @@ -62,7 +62,7 @@ private final HtmlColor green; private final HtmlColor hyperlinkColor = HtmlColorUtils.BLUE; - + private final boolean useUnderlineForHyperlink = true; private final List strings; @@ -111,14 +111,15 @@ private TextBlock getTextBlock() { TextBlock result = null; if (maxLine == 0) { - result = TextBlockUtils.create(Display.create(strings), new FontConfiguration(font, green, hyperlinkColor, useUnderlineForHyperlink), + result = Display.create(strings).create( + new FontConfiguration(font, green, hyperlinkColor, useUnderlineForHyperlink), HorizontalAlignment.LEFT, new SpriteContainerEmpty()); } else { for (int i = 0; i < strings.size(); i += maxLine) { final int n = Math.min(i + maxLine, strings.size()); - final TextBlock textBlock1 = TextBlockUtils.create(Display.create(strings.subList(i, n)), - new FontConfiguration(font, green, hyperlinkColor, useUnderlineForHyperlink), HorizontalAlignment.LEFT, - new SpriteContainerEmpty()); + final TextBlock textBlock1 = Display.create(strings.subList(i, n)).create( + new FontConfiguration(font, green, hyperlinkColor, useUnderlineForHyperlink), + HorizontalAlignment.LEFT, new SpriteContainerEmpty()); if (result == null) { result = textBlock1; } else { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/HorizontalAlignment.java plantuml-8039/src/net/sourceforge/plantuml/graphic/HorizontalAlignment.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/HorizontalAlignment.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/HorizontalAlignment.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,10 +34,12 @@ */ package net.sourceforge.plantuml.graphic; +import net.sourceforge.plantuml.StringUtils; + public enum HorizontalAlignment { LEFT, CENTER, RIGHT; - + public static HorizontalAlignment fromString(String s) { if (LEFT.name().equalsIgnoreCase(s)) { return LEFT; @@ -51,4 +53,19 @@ return null; } + public static HorizontalAlignment fromString(String s, HorizontalAlignment defaultValue) { + if (defaultValue == null) { + throw new IllegalArgumentException(); + } + if (s == null) { + return defaultValue; + } + s = StringUtils.goUpperCase(s); + final HorizontalAlignment result = fromString(s); + if (result == null) { + return defaultValue; + } + return result; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorGradient.java plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorGradient.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorGradient.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorGradient.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColor.java plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColor.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColor.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColor.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorSet.java plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorSet.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorSet.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorSet.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorSetSimple.java plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorSetSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorSetSimple.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorSetSimple.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -246,6 +246,9 @@ final Color color; if (s.equalsIgnoreCase("transparent")) { return new HtmlColorTransparent(); + } else if (s.matches("[0-9A-Fa-f]{3}")) { + s = "" + s.charAt(0) + s.charAt(0) + s.charAt(1) + s.charAt(1) + s.charAt(2) + s.charAt(2); + color = new Color(Integer.parseInt(s, 16)); } else if (s.matches("[0-9A-Fa-f]{6}")) { color = new Color(Integer.parseInt(s, 16)); } else { @@ -260,6 +263,9 @@ private boolean isValid(String s, boolean acceptTransparent) { s = removeFirstDieseAndgoLowerCase(s); + if (s.matches("[0-9A-Fa-f]{3}")) { + return true; + } if (s.matches("[0-9A-Fa-f]{6}")) { return true; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorSimple.java plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorSimple.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorSimple.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorTransparent.java plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorTransparent.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorTransparent.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorTransparent.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorUserDef.java plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorUserDef.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorUserDef.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorUserDef.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorUtils.java plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlColorUtils.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlColorUtils.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,8 +37,6 @@ public class HtmlColorUtils { - public static final String COLOR_REGEXP = "#\\w+[-\\\\|/]?\\w+"; - public static final HtmlColor BLACK; public static final HtmlColor WHITE; public static final HtmlColor RED_LIGHT; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlCommandFactory.java plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlCommandFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlCommandFactory.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlCommandFactory.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlCommand.java plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/HtmlCommand.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/HtmlCommand.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/IHtmlColorSet.java plantuml-8039/src/net/sourceforge/plantuml/graphic/IHtmlColorSet.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/IHtmlColorSet.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/IHtmlColorSet.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/Img.java plantuml-8039/src/net/sourceforge/plantuml/graphic/Img.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/Img.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/Img.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/ImgValign.java plantuml-8039/src/net/sourceforge/plantuml/graphic/ImgValign.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/ImgValign.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/ImgValign.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/Line.java plantuml-8039/src/net/sourceforge/plantuml/graphic/Line.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/Line.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/Line.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/QuoteUtils.java plantuml-8039/src/net/sourceforge/plantuml/graphic/QuoteUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/QuoteUtils.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/QuoteUtils.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -146,10 +146,36 @@ "If you are a friend, you speak the password, and the doors will open.", // "You Shall Not Pass", // "73.6% Of All Statistics Are Made Up", // - "We can neither confirm nor deny that this is crashing" - // When the beating of your heart echoes the beating of the drums - // Never trust a computer you can't throw out a window - ); + "We can neither confirm nor deny that this is crashing", // + "When the beating of your heart echoes the beating of the drums", // + "Never trust a computer you can't throw out a window", // + "Yeah, I'm calm. I'm a calm person. Is there some reason I shouldn't be calm?", // + "Everybody just stay calm. The situation is under control.", // + "Hippy, you think everything is a conspiracy.", // + "These guys are about as much fun as a tax audit.", // + "There is something down there! Something not us.", // + "I saw a glimpse of my future and everything's changed for me now.", // + "In space no one can hear you scream", // + "I can't lie to you about your chances, but... you have my sympathies.", // + "There is an explanation for this, you know.", // + "Bishop: I'm afraid I have some bad news.", // + "Do me a favour. Disconnect me. I could be reworked, but I'll never be top of the line again.", // + "Take it easy, don't push the little button on the joystick!", // + "I'm a very private person.", // + "To sculpt an elephant from a big block of marble, just knock away all the bits that don't look like an elephant.", // + "Who said you could talk to me? Have I got something on my face ?", // + "We've been through worst", // + "United we stand", // + "We shall never surrender", // + "Absolute honesty isn't always the most diplomatic nor the safest form of communication with emotional beings.", // + "Humor: seventy-five percent. [Confirmed] Self destruct sequence in T minus 10, 9... ", // + "It's... complicated.", // + "Do not open until 1985", // + "I still mess up but I'll just start again", // + "I won't give up, no I won't give in; Till I reach the end; And then I'll start again", // + "I wanna try even though I could fail", // + "Sometimes we come last but we did our best"); + private QuoteUtils() { } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/RemoveStyle.java plantuml-8039/src/net/sourceforge/plantuml/graphic/RemoveStyle.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/RemoveStyle.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/RemoveStyle.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/ResetFont.java plantuml-8039/src/net/sourceforge/plantuml/graphic/ResetFont.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/ResetFont.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/ResetFont.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/SingleLine.java plantuml-8039/src/net/sourceforge/plantuml/graphic/SingleLine.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/SingleLine.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/SingleLine.java 2016-04-22 16:26:26.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,11 +41,11 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.SpriteContainer; import net.sourceforge.plantuml.Url; -import net.sourceforge.plantuml.ugraphic.Sprite; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; -class SingleLine implements Line { +class SingleLine extends AbstractTextBlock implements Line { private final List blocs = new ArrayList(); private final HorizontalAlignment horizontalAlignment; @@ -72,7 +72,7 @@ } else if (cmd instanceof SpriteCommand) { final Sprite sprite = spriteContainer.getSprite(((SpriteCommand) cmd).getSprite()); if (sprite != null) { - blocs.add(sprite.asTextBlock(fontConfiguration.getColor())); + blocs.add(sprite.asTextBlock(fontConfiguration.getColor(), 1)); } } else if (cmd instanceof FontChange) { fontConfiguration = ((FontChange) cmd).apply(fontConfiguration); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/SizeChange.java plantuml-8039/src/net/sourceforge/plantuml/graphic/SizeChange.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/SizeChange.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/SizeChange.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/SkinParameter.java plantuml-8039/src/net/sourceforge/plantuml/graphic/SkinParameter.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/SkinParameter.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/SkinParameter.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/Splitter.java plantuml-8039/src/net/sourceforge/plantuml/graphic/Splitter.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/Splitter.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/Splitter.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,8 +42,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import net.sourceforge.plantuml.command.regex.MyPattern; import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.command.regex.MyPattern; +import net.sourceforge.plantuml.ugraphic.sprite.SpriteUtils; public class Splitter { @@ -55,12 +56,14 @@ static final String fontSup = "\\"; static final String fontSub = "\\"; static final String imgPattern = "\\]+[%q%g]?[%s]*|vspace\\s*=\\s*[%q%g]?\\d+[%q%g]?\\s*|valign[%s]*=[%s]*[%q%g]?(top|middle|bottom)[%q%g]?[%s]*)+\\>"; - public static final String imgPatternNoSrcColon = "\\]+)/?\\>"; + public static final String imgPatternNoSrcColon = "\\{}]+)" + "(\\{scale=(?:[0-9.]+)\\})?" + "\\>"; public static final String fontFamilyPattern = "\\]+)/?\\>"; public static final String svgAttributePattern = "\\]+)/?\\>"; public static final String openiconPattern = "\\<&([-\\w]+)\\>"; - public static final String spritePattern = "\\<\\$[\\p{L}0-9_]+\\>"; - public static final String spritePattern2 = "\\<\\$([\\p{L}0-9_]+)\\>"; + public static final String spritePattern = "\\<\\$" + SpriteUtils.SPRITE_NAME + "(?:\\{scale=(?:[0-9.]+)\\})?" + + "\\>"; + public static final String spritePattern2 = "\\<\\$(" + SpriteUtils.SPRITE_NAME + ")" + + "(\\{scale=(?:[0-9.]+)\\})?" + "\\>"; static final String htmlTag; static final String linkPattern = "\\[\\[([^\\[\\]]+)\\]\\]"; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/SpriteCommand.java plantuml-8039/src/net/sourceforge/plantuml/graphic/SpriteCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/SpriteCommand.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/SpriteCommand.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,8 @@ */ package net.sourceforge.plantuml.graphic; +import net.sourceforge.plantuml.StringUtils; + public class SpriteCommand implements HtmlCommand { private final String sprite; @@ -48,7 +50,7 @@ if (sprite.endsWith(">") == false) { throw new IllegalArgumentException(); } - this.sprite = sprite.substring(2, sprite.length() - 1).trim(); + this.sprite = StringUtils.trin(sprite.substring(2, sprite.length() - 1)); } public String getSprite() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/StringBounder.java plantuml-8039/src/net/sourceforge/plantuml/graphic/StringBounder.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/StringBounder.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/StringBounder.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/StringBounderUtils.java plantuml-8039/src/net/sourceforge/plantuml/graphic/StringBounderUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/StringBounderUtils.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/StringBounderUtils.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,18 +38,22 @@ import java.awt.Graphics2D; import java.awt.geom.Dimension2D; import java.awt.geom.Rectangle2D; +import java.awt.image.BufferedImage; import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.ugraphic.UFont; public class StringBounderUtils { - public static StringBounder asStringBounder(final Graphics2D g2d) { - + final static BufferedImage imDummy = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB); + final static Graphics2D gg = imDummy.createGraphics(); + + public static StringBounder asStringBounder() { + return new StringBounder() { public Dimension2D calculateDimension(UFont font, String text) { - final FontMetrics fm = g2d.getFontMetrics(font.getFont()); - final Rectangle2D rect = fm.getStringBounds(text, g2d); + final FontMetrics fm = gg.getFontMetrics(font.getFont()); + final Rectangle2D rect = fm.getStringBounds(text, gg); return new Dimension2DDouble(rect.getWidth(), rect.getHeight()); } }; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/SvgAttributesChange.java plantuml-8039/src/net/sourceforge/plantuml/graphic/SvgAttributesChange.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/SvgAttributesChange.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/SvgAttributesChange.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/SvgAttributes.java plantuml-8039/src/net/sourceforge/plantuml/graphic/SvgAttributes.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/SvgAttributes.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/SvgAttributes.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/SymbolContext.java plantuml-8039/src/net/sourceforge/plantuml/graphic/SymbolContext.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/SymbolContext.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/SymbolContext.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockArrow.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockArrow.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockArrow.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,7 +44,7 @@ import net.sourceforge.plantuml.ugraphic.UPolygon; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class TextBlockArrow implements TextBlock { +public class TextBlockArrow extends AbstractTextBlock implements TextBlock { private final double size; private final Direction arrow; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockBordered.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockBordered.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockBordered.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockBordered.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.ugraphic.URectangle; import net.sourceforge.plantuml.ugraphic.UTranslate; -class TextBlockBordered implements TextBlock { +class TextBlockBordered extends AbstractTextBlock implements TextBlock { private final TextBlock textBlock; private final HtmlColor color; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockCompressed2.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockCompressed2.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockCompressed2.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockCompressed2.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,7 +41,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UGraphicCompress2; -public class TextBlockCompressed2 implements TextBlock { +public class TextBlockCompressed2 extends AbstractTextBlock implements TextBlock { private final TextBlock textBlock; private final CompressionTransform compressionTransform; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockCompressed.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockCompressed.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockCompressed.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockCompressed.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,7 +43,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UGraphicCompress; -public class TextBlockCompressed implements TextBlock { +public class TextBlockCompressed extends AbstractTextBlock implements TextBlock { private final TextBlock textBlock; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockEmpty.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockEmpty.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockEmpty.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockEmpty.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,7 +39,7 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.ugraphic.UGraphic; -public class TextBlockEmpty implements TextBlockWidth, TextBlock { +public class TextBlockEmpty extends AbstractTextBlock implements TextBlockWidth, TextBlock { private final double width; private final double height; @@ -61,7 +61,7 @@ } public TextBlock asTextBlock(final double widthToUse) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockGeneric.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockGeneric.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockGeneric.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockGeneric.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.ugraphic.URectangle; import net.sourceforge.plantuml.ugraphic.UStroke; -public class TextBlockGeneric implements TextBlock { +public class TextBlockGeneric extends AbstractTextBlock implements TextBlock { private final TextBlock textBlock; private final HtmlColor background; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockHorizontal.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockHorizontal.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockHorizontal.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockHorizontal.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,7 +40,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -class TextBlockHorizontal implements TextBlock { +class TextBlockHorizontal extends AbstractTextBlock implements TextBlock { private final TextBlock b1; private final TextBlock b2; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlock.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlock.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlock.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,11 +35,15 @@ package net.sourceforge.plantuml.graphic; import java.awt.geom.Dimension2D; +import java.awt.geom.Rectangle2D; import net.sourceforge.plantuml.ugraphic.UShape; public interface TextBlock extends UDrawable, UShape { public Dimension2D calculateDimension(StringBounder stringBounder); + + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder); + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockLineBefore.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockLineBefore.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockLineBefore.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockLineBefore.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,13 +35,14 @@ package net.sourceforge.plantuml.graphic; import java.awt.geom.Dimension2D; +import java.awt.geom.Rectangle2D; import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.ugraphic.UChangeColor; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UHorizontalLine; -public class TextBlockLineBefore implements TextBlock { +public class TextBlockLineBefore extends AbstractTextBlock implements TextBlock { private final TextBlock textBlock; private final char separator; @@ -81,5 +82,10 @@ UHorizontalLine.infinite(1, 1, title, separator).drawMe(ug); } } + + @Override + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + return textBlock.getInnerPosition(member, stringBounder); + } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockMarged.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockMarged.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockMarged.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockMarged.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,12 +35,13 @@ package net.sourceforge.plantuml.graphic; import java.awt.geom.Dimension2D; +import java.awt.geom.Rectangle2D; import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -class TextBlockMarged implements TextBlock { +class TextBlockMarged extends AbstractTextBlock implements TextBlock { private final TextBlock textBlock; private final double x1; @@ -62,7 +63,18 @@ } public void drawU(UGraphic ug) { - textBlock.drawU(ug.apply(new UTranslate(x1, y1))); + final UTranslate translate = new UTranslate(x1, y1); + textBlock.drawU(ug.apply(translate)); + } + + @Override + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + final Rectangle2D parent = textBlock.getInnerPosition(member, stringBounder); + if (parent == null) { + return null; + } + final UTranslate translate = new UTranslate(x1, y1); + return translate.apply(parent); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockMinWidth.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockMinWidth.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockMinWidth.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockMinWidth.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,7 +40,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -class TextBlockMinWidth implements TextBlock { +class TextBlockMinWidth extends AbstractTextBlock implements TextBlock { private final TextBlock textBlock; private final double minWidth; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockRecentred.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockRecentred.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockRecentred.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockRecentred.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,11 +36,12 @@ import java.awt.geom.Dimension2D; +import net.sourceforge.plantuml.svek.TextBlockBackcolored; import net.sourceforge.plantuml.ugraphic.MinMax; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class TextBlockRecentred implements TextBlock { +public class TextBlockRecentred extends AbstractTextBlock implements TextBlockBackcolored { private final TextBlock textBlock; @@ -58,4 +59,8 @@ return minMax.getDimension(); } + public HtmlColor getBackcolor() { + return ((TextBlockBackcolored) textBlock).getBackcolor(); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockSimple.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockSimple.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockSimple.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -50,7 +50,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -class TextBlockSimple implements TextBlock { +public class TextBlockSimple extends AbstractTextBlock implements TextBlock { private List lines2; @@ -67,7 +67,7 @@ this(texts, fontConfiguration, horizontalAlignment, spriteContainer, maxMessageSize, null, null); } - protected TextBlockSimple(Display texts, FontConfiguration fontConfiguration, + public TextBlockSimple(Display texts, FontConfiguration fontConfiguration, HorizontalAlignment horizontalAlignment, SpriteContainer spriteContainer, double maxMessageSize, UFont fontForStereotype, HtmlColor htmlColorForStereotype) { this.texts = texts; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockSpotted.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockSpotted.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockSpotted.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockSpotted.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -class TextBlockSpotted extends TextBlockSimple { +public class TextBlockSpotted extends TextBlockSimple { private final CircledCharacter circledCharacter; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockUtils.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockUtils.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockUtils.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,104 +41,19 @@ import java.awt.font.LineMetrics; import java.awt.geom.Dimension2D; import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import net.sourceforge.plantuml.Dimension2DDouble; -import net.sourceforge.plantuml.ISkinSimple; -import net.sourceforge.plantuml.SpriteContainer; -import net.sourceforge.plantuml.creole.CreoleParser; -import net.sourceforge.plantuml.creole.Sheet; -import net.sourceforge.plantuml.creole.SheetBlock1; -import net.sourceforge.plantuml.creole.SheetBlock2; -import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.posimo.Positionable; import net.sourceforge.plantuml.posimo.PositionableImpl; -import net.sourceforge.plantuml.sequencediagram.MessageNumber; import net.sourceforge.plantuml.ugraphic.LimitFinder; import net.sourceforge.plantuml.ugraphic.MinMax; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.ugraphic.UStroke; public class TextBlockUtils { - public static TextBlock create(Display texts, FontConfiguration fontConfiguration, - HorizontalAlignment horizontalAlignment, ISkinSimple spriteContainer) { - return create(texts, fontConfiguration, horizontalAlignment, spriteContainer, false); - } - - public static TextBlock create(Display texts, FontConfiguration fontConfiguration, - HorizontalAlignment horizontalAlignment, ISkinSimple spriteContainer, boolean modeSimpleLine) { - if (texts == null) { - return empty(0, 0); - } - return create(texts, fontConfiguration, horizontalAlignment, spriteContainer, 0, modeSimpleLine, null, null); - } - - public static TextBlock create(Display texts, FontConfiguration fontConfiguration, - HorizontalAlignment horizontalAlignment, ISkinSimple spriteContainer, double maxMessageSize, - boolean modeSimpleLine, UFont fontForStereotype, HtmlColor htmlColorForStereotype) { - if (texts.getNaturalHorizontalAlignment() != null) { - horizontalAlignment = texts.getNaturalHorizontalAlignment(); - } - if (texts.size() > 0) { - if (texts.get(0) instanceof Stereotype) { - return createStereotype(texts, fontConfiguration, horizontalAlignment, spriteContainer, 0, - fontForStereotype, htmlColorForStereotype); - } - if (texts.get(texts.size() - 1) instanceof Stereotype) { - return createStereotype(texts, fontConfiguration, horizontalAlignment, spriteContainer, - texts.size() - 1, fontForStereotype, htmlColorForStereotype); - } - if (texts.get(0) instanceof MessageNumber) { - return createMessageNumber(texts, fontConfiguration, horizontalAlignment, spriteContainer, - maxMessageSize); - } - } - - return getCreole(texts, fontConfiguration, horizontalAlignment, spriteContainer, maxMessageSize, modeSimpleLine); - } - - private static TextBlock getCreole(Display texts, FontConfiguration fontConfiguration, - HorizontalAlignment horizontalAlignment, ISkinSimple spriteContainer, double maxMessageSize, - boolean modeSimpleLine) { - final Sheet sheet = new CreoleParser(fontConfiguration, horizontalAlignment, spriteContainer, modeSimpleLine) - .createSheet(texts); - final SheetBlock1 sheetBlock1 = new SheetBlock1(sheet, maxMessageSize, spriteContainer == null ? 0 - : spriteContainer.getPadding()); - return new SheetBlock2(sheetBlock1, sheetBlock1, new UStroke(1.5)); - } - - private static TextBlock createMessageNumber(Display texts, FontConfiguration fontConfiguration, - HorizontalAlignment horizontalAlignment, ISkinSimple spriteContainer, double maxMessageSize) { - TextBlock tb1 = getCreole(texts.subList(0, 1), fontConfiguration, horizontalAlignment, spriteContainer, - maxMessageSize, false); - tb1 = TextBlockUtils.withMargin(tb1, 0, 4, 0, 0); - final TextBlock tb2 = getCreole(texts.subList(1, texts.size()), fontConfiguration, horizontalAlignment, - spriteContainer, maxMessageSize, false); - return TextBlockUtils.mergeLR(tb1, tb2, VerticalAlignment.CENTER); - - } - - private static TextBlock createStereotype(Display texts, FontConfiguration fontConfiguration, - HorizontalAlignment horizontalAlignment, SpriteContainer spriteContainer, int position, - UFont fontForStereotype, HtmlColor htmlColorForStereotype) { - final Stereotype stereotype = (Stereotype) texts.get(position); - if (stereotype.isSpotted()) { - final CircledCharacter circledCharacter = new CircledCharacter(stereotype.getCharacter(), - stereotype.getRadius(), stereotype.getCircledFont(), stereotype.getHtmlColor(), null, - fontConfiguration.getColor()); - if (stereotype.getLabel(false) == null) { - return new TextBlockSpotted(circledCharacter, texts.subList(1, texts.size()), fontConfiguration, - horizontalAlignment, spriteContainer); - } - return new TextBlockSpotted(circledCharacter, texts, fontConfiguration, horizontalAlignment, - spriteContainer); - } - return new TextBlockSimple(texts, fontConfiguration, horizontalAlignment, spriteContainer, 0, fontForStereotype, htmlColorForStereotype); - } - public static TextBlock withMargin(TextBlock textBlock, double marginX, double marginY) { return new TextBlockMarged(textBlock, marginX, marginX, marginY, marginY); } @@ -153,7 +68,7 @@ } public static TextBlock empty(final double width, final double height) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { } @@ -187,7 +102,15 @@ static { final BufferedImage imDummy = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB); gg = imDummy.createGraphics(); - dummyStringBounder = StringBounderUtils.asStringBounder(gg); + dummyStringBounder = StringBounderUtils.asStringBounder(); + } + + public static boolean isEmpty(TextBlock text) { + if (text == null) { + return true; + } + final Dimension2D dim = text.calculateDimension(dummyStringBounder); + return dim.getHeight() == 0 && dim.getWidth() == 0; } public static StringBounder getDummyStringBounder() { @@ -214,4 +137,25 @@ return gg.getFontMetrics(font); } + public static TextBlock fullInnerPosition(final TextBlock bloc, final String display) { + return new TextBlock() { + + public void drawU(UGraphic ug) { + bloc.drawU(ug); + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + return bloc.calculateDimension(stringBounder); + } + + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + if (display.startsWith(member)) { + final Dimension2D dim = calculateDimension(stringBounder); + return new Rectangle2D.Double(0, 0, dim.getWidth(), dim.getHeight()); + } + return null; + } + }; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockVertical2.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockVertical2.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockVertical2.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockVertical2.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.graphic; import java.awt.geom.Dimension2D; +import java.awt.geom.Rectangle2D; import java.util.ArrayList; import java.util.List; @@ -42,7 +43,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class TextBlockVertical2 implements TextBlock { +public class TextBlockVertical2 extends AbstractTextBlock implements TextBlock { private final List blocks = new ArrayList(); private final HorizontalAlignment horizontalAlignment; @@ -72,13 +73,16 @@ public void drawU(UGraphic ug) { double y = 0; final Dimension2D dimtotal = calculateDimension(ug.getStringBounder()); - for (TextBlock b : blocks) { - final Dimension2D dimb = b.calculateDimension(ug.getStringBounder()); + for (TextBlock block : blocks) { + final Dimension2D dimb = block.calculateDimension(ug.getStringBounder()); if (horizontalAlignment == HorizontalAlignment.LEFT) { - b.drawU(ug.apply(new UTranslate(0, y))); + block.drawU(ug.apply(new UTranslate(0, y))); } else if (horizontalAlignment == HorizontalAlignment.CENTER) { final double dx = (dimtotal.getWidth() - dimb.getWidth()) / 2; - b.drawU(ug.apply(new UTranslate(dx, y))); + block.drawU(ug.apply(new UTranslate(dx, y))); + } else if (horizontalAlignment == HorizontalAlignment.RIGHT) { + final double dx = dimtotal.getWidth() - dimb.getWidth(); + block.drawU(ug.apply(new UTranslate(dx, y))); } else { throw new UnsupportedOperationException(); } @@ -86,4 +90,18 @@ } } + @Override + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + double y = 0; + for (TextBlock block : blocks) { + final Dimension2D dimb = block.calculateDimension(stringBounder); + final Rectangle2D result = block.getInnerPosition(member, stringBounder); + if (result != null) { + return new UTranslate(0, y).apply(result); + } + y += dimb.getHeight(); + } + return null; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockWidthAdapter.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockWidthAdapter.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockWidthAdapter.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockWidthAdapter.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,7 +38,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; -public class TextBlockWidthAdapter implements TextBlock { +public class TextBlockWidthAdapter extends AbstractTextBlock implements TextBlock { private final TextBlockWidth textBlockWidth; private final double width; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockWidth.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockWidth.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextBlockWidth.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextBlockWidth.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/Text.java plantuml-8039/src/net/sourceforge/plantuml/graphic/Text.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/Text.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/Text.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TextLink.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TextLink.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TextLink.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TextLink.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TileImage.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TileImage.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TileImage.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TileImage.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.ugraphic.UImage; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class TileImage implements TextBlock { +public class TileImage extends AbstractTextBlock implements TextBlock { private final BufferedImage image; private final int vspace; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TileImageSvg.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TileImageSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TileImageSvg.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TileImageSvg.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,7 +44,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UImageSvg; -public class TileImageSvg implements TextBlock { +public class TileImageSvg extends AbstractTextBlock implements TextBlock { private final UImageSvg svg; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/TileText.java plantuml-8039/src/net/sourceforge/plantuml/graphic/TileText.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/TileText.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/TileText.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,7 +45,7 @@ import net.sourceforge.plantuml.ugraphic.UText; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class TileText implements TextBlock { +public class TileText extends AbstractTextBlock implements TextBlock { private final String text; private final FontConfiguration fontConfiguration; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/UDrawable.java plantuml-8039/src/net/sourceforge/plantuml/graphic/UDrawable.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/UDrawable.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/UDrawable.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/UDrawableUtils.java plantuml-8039/src/net/sourceforge/plantuml/graphic/UDrawableUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/UDrawableUtils.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/UDrawableUtils.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/UGraphicDelegator.java plantuml-8039/src/net/sourceforge/plantuml/graphic/UGraphicDelegator.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/UGraphicDelegator.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/UGraphicDelegator.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/UGraphicInterceptorUDrawable.java plantuml-8039/src/net/sourceforge/plantuml/graphic/UGraphicInterceptorUDrawable.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/UGraphicInterceptorUDrawable.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/UGraphicInterceptorUDrawable.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/UnusedSpace.java plantuml-8039/src/net/sourceforge/plantuml/graphic/UnusedSpace.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/UnusedSpace.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/UnusedSpace.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolActor.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolActor.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolActor.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolActor.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolArtifact.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolArtifact.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolArtifact.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolArtifact.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,10 +37,13 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.creole.Stencil; import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UGraphicStencil; import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UPolygon; import net.sourceforge.plantuml.ugraphic.URectangle; +import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; class USymbolArtifact extends USymbol { @@ -50,7 +53,6 @@ return SkinParameter.ARTIFACT; } - private void drawArtifact(UGraphic ug, double widthTotal, double heightTotal, boolean shadowing) { final URectangle form = new URectangle(widthTotal, heightTotal); @@ -86,12 +88,27 @@ private Margin getMargin() { return new Margin(10, 10 + 10, 10 + 3, 10); } + + public boolean manageHorizontalLine() { + return true; + } + - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); + final Stencil stencil = new Stencil() { + public double getStartingX(StringBounder stringBounder, double y) { + return 0; + } + + public double getEndingX(StringBounder stringBounder, double y) { + return dim.getWidth(); + } + }; + ug = new UGraphicStencil(ug, stencil, new UStroke()); ug = symbolContext.apply(ug); drawArtifact(ug, dim.getWidth(), dim.getHeight(), symbolContext.isShadowing()); final Margin margin = getMargin(); @@ -109,7 +126,7 @@ public TextBlock asBig(final TextBlock title, final TextBlock stereotype, final double width, final double height, final SymbolContext symbolContext) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolBoundary.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolBoundary.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolBoundary.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolBoundary.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolCard.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolCard.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolCard.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolCard.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -71,8 +71,8 @@ return new Margin(10, 10, 3, 3); } - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); @@ -93,7 +93,7 @@ public TextBlock asBig(final TextBlock title, final TextBlock stereotype, final double width, final double height, final SymbolContext symbolContext) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolCloud.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolCloud.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolCloud.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolCloud.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -87,8 +87,8 @@ return new Margin(10, 10, 10, 10); } - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); @@ -109,7 +109,7 @@ public TextBlock asBig(final TextBlock title, final TextBlock stereotype, final double width, final double height, final SymbolContext symbolContext) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolComponent1.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolComponent1.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolComponent1.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolComponent1.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -70,8 +70,8 @@ return new Margin(10, 10, 10, 10); } - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final StringBounder stringBounder = ug.getStringBounder(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolComponent2.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolComponent2.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolComponent2.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolComponent2.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,9 +36,8 @@ import java.awt.geom.Dimension2D; -import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.Dimension2DDouble; -import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.graphic.USymbol.Margin; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.URectangle; import net.sourceforge.plantuml.ugraphic.UShape; @@ -51,7 +50,6 @@ return SkinParameter.COMPONENT2; } - private void drawNode(UGraphic ug, double widthTotal, double heightTotal, boolean shadowing) { final URectangle form = new URectangle(widthTotal, heightTotal); @@ -75,33 +73,43 @@ return new Margin(10 + 5, 20 + 5, 15 + 5, 5 + 5); } - public TextBlock asSmall(final TextBlock label, TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, + final SymbolContext symbolContext) { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); ug = symbolContext.apply(ug); drawNode(ug, dim.getWidth(), dim.getHeight(), symbolContext.isShadowing()); final Margin margin = getMargin(); - label.drawU(ug.apply(new UTranslate(margin.getX1(), margin.getY1()))); + + final TextBlock tb = TextBlockUtils.mergeTB(stereotype, label, HorizontalAlignment.CENTER); + tb.drawU(ug.apply(new UTranslate(margin.getX1(), margin.getY1()))); + // label.drawU(ug.apply(new UTranslate(margin.getX1(), margin.getY1()))); } public Dimension2D calculateDimension(StringBounder stringBounder) { - final Dimension2D dim = label.calculateDimension(stringBounder); - return getMargin().addDimension(dim); + final Dimension2D dimLabel = label.calculateDimension(stringBounder); + final Dimension2D dimStereo = stereotype.calculateDimension(stringBounder); + return getMargin().addDimension(Dimension2DDouble.mergeTB(dimStereo, dimLabel)); } }; } - public TextBlock asBig(final TextBlock title, TextBlock stereotype, final double width, final double height, + public TextBlock asBig(final TextBlock title, final TextBlock stereotype, final double width, final double height, final SymbolContext symbolContext) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); ug = symbolContext.apply(ug); drawNode(ug, dim.getWidth(), dim.getHeight(), symbolContext.isShadowing()); - title.drawU(ug.apply(new UTranslate(3, 13))); + final Dimension2D dimStereo = stereotype.calculateDimension(ug.getStringBounder()); + final double posStereo = (width - dimStereo.getWidth()) / 2; + stereotype.drawU(ug.apply(new UTranslate(posStereo, 13))); + final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); + final double posTitle = (width - dimTitle.getWidth()) / 2; + title.drawU(ug.apply(new UTranslate(posTitle, 13 + dimStereo.getHeight()))); } public Dimension2D calculateDimension(StringBounder stringBounder) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolControl.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolControl.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolControl.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolControl.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolDatabase.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolDatabase.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolDatabase.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolDatabase.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -113,8 +113,8 @@ return new Margin(10, 10, 20, 5); } - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); @@ -136,7 +136,7 @@ public TextBlock asBig(final TextBlock title, final TextBlock stereotype, final double width, final double height, final SymbolContext symbolContext) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolEntityDomain.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolEntityDomain.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolEntityDomain.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolEntityDomain.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolFolder.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolFolder.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolFolder.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolFolder.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -102,30 +102,36 @@ return new Margin(10, 10 + 10, 10 + 3, 10); } - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(final TextBlock name, final TextBlock label, final TextBlock stereotype, + final SymbolContext symbolContext) { + if (name == null) { + throw new IllegalArgumentException(); + } + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); ug = symbolContext.apply(ug); - drawFolder(ug, dim.getWidth(), dim.getHeight(), new Dimension2DDouble(0, 0), - symbolContext.isShadowing()); + final Dimension2D dimName = name.calculateDimension(ug.getStringBounder()); + drawFolder(ug, dim.getWidth(), dim.getHeight(), dimName, symbolContext.isShadowing()); final Margin margin = getMargin(); final TextBlock tb = TextBlockUtils.mergeTB(stereotype, label, HorizontalAlignment.CENTER); - tb.drawU(ug.apply(new UTranslate(margin.getX1(), margin.getY1()))); + name.drawU(ug.apply(new UTranslate(4, 3))); + tb.drawU(ug.apply(new UTranslate(margin.getX1(), margin.getY1() + dimName.getHeight()))); } public Dimension2D calculateDimension(StringBounder stringBounder) { + final Dimension2D dimName = name.calculateDimension(stringBounder); final Dimension2D dimLabel = label.calculateDimension(stringBounder); final Dimension2D dimStereo = stereotype.calculateDimension(stringBounder); - return getMargin().addDimension(Dimension2DDouble.mergeTB(dimStereo, dimLabel)); + return getMargin().addDimension(Dimension2DDouble.mergeTB(dimName, dimStereo, dimLabel)); } }; } public TextBlock asBig(final TextBlock title, final TextBlock stereotype, final double width, final double height, final SymbolContext symbolContext) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final StringBounder stringBounder = ug.getStringBounder(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolFrame.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolFrame.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolFrame.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolFrame.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -91,8 +91,8 @@ return new Margin(10 + 5, 20 + 5, 15 + 5, 5 + 5); } - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); @@ -113,7 +113,7 @@ public TextBlock asBig(final TextBlock title, final TextBlock stereotype, final double width, final double height, final SymbolContext symbolContext) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final StringBounder stringBounder = ug.getStringBounder(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolInterface.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolInterface.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolInterface.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolInterface.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbol.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbol.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbol.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbol.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -57,8 +57,8 @@ public final static USymbol PACKAGE = record("PACKAGE", SkinParameter.PACKAGE, new USymbolFolder( SkinParameter.PACKAGE)); public final static USymbol FOLDER = record("FOLDER", SkinParameter.FOLDER, new USymbolFolder(SkinParameter.FOLDER)); - public final static USymbol RECTANGLE = record("RECTANGLE", SkinParameter.CARD, new USymbolRect(SkinParameter.CARD)); - public final static USymbol AGENT = record("AGENT", SkinParameter.AGENT, new USymbolRect(SkinParameter.AGENT)); + public final static USymbol RECTANGLE = record("RECTANGLE", SkinParameter.CARD, new USymbolRect(SkinParameter.CARD, HorizontalAlignment.CENTER)); + public final static USymbol AGENT = record("AGENT", SkinParameter.AGENT, new USymbolRect(SkinParameter.AGENT, HorizontalAlignment.CENTER)); public final static USymbol ACTOR = record("ACTOR", SkinParameter.ACTOR, new USymbolActor()); public final static USymbol USECASE = null; public final static USymbol COMPONENT1 = record("COMPONENT1", SkinParameter.COMPONENT1, new USymbolComponent1()); @@ -69,8 +69,13 @@ public final static USymbol CONTROL = record("CONTROL", SkinParameter.CONTROL, new USymbolControl(2)); public final static USymbol INTERFACE = record("INTERFACE", SkinParameter.INTERFACE, new USymbolInterface()); public final static USymbol QUEUE = record("QUEUE", SkinParameter.QUEUE, new USymbolQueue()); + public final static USymbol TOGETHER = record("TOGETHER", SkinParameter.QUEUE, new USymbolTogether()); abstract public SkinParameter getSkinParameter(); + + public USymbol withStereoAlignment(HorizontalAlignment alignment) { + return this; + } public FontParam getFontParam() { return getSkinParameter().getFontParam(); @@ -90,12 +95,12 @@ } public static USymbol getFromString(String s) { - final USymbol result = all.get(StringUtils.goUpperCase(s)); + final USymbol result = all.get(StringUtils.goUpperCase(s.replaceAll("\\W", ""))); if (result == null) { if (s.equalsIgnoreCase("component")) { return COMPONENT2; } - throw new IllegalArgumentException("s=" + s); + return null; } return result; } @@ -105,7 +110,7 @@ return symbol; } - public abstract TextBlock asSmall(TextBlock label, TextBlock stereotype, SymbolContext symbolContext); + public abstract TextBlock asSmall(TextBlock name, TextBlock label, TextBlock stereotype, SymbolContext symbolContext); public abstract TextBlock asBig(TextBlock label, TextBlock stereotype, double width, double height, SymbolContext symbolContext); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolNode.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolNode.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolNode.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolNode.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -74,8 +74,8 @@ return new Margin(10 + 5, 20 + 5, 15 + 5, 5 + 5); } - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); @@ -96,7 +96,7 @@ public TextBlock asBig(final TextBlock title, final TextBlock stereotype, final double width, final double height, final SymbolContext symbolContext) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolQueue.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolQueue.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolQueue.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolQueue.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -115,8 +115,8 @@ return new Margin(5, 15, 5, 5); } - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolRect.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolRect.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolRect.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolRect.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,20 +42,25 @@ import net.sourceforge.plantuml.ugraphic.UTranslate; class USymbolRect extends USymbol { - - private final SkinParameter skinParameter; + private final SkinParameter skinParameter; + private final HorizontalAlignment stereotypeAlignement; - public USymbolRect(SkinParameter skinParameter) { + public USymbolRect(SkinParameter skinParameter, HorizontalAlignment stereotypeAlignement) { this.skinParameter = skinParameter; + this.stereotypeAlignement = stereotypeAlignement; } - + + @Override + public USymbol withStereoAlignment(HorizontalAlignment alignment) { + return new USymbolRect(skinParameter, alignment); + } + @Override public SkinParameter getSkinParameter() { return skinParameter; } - private void drawRect(UGraphic ug, double width, double height, boolean shadowing) { final URectangle shape = new URectangle(width, height); if (shadowing) { @@ -68,15 +73,16 @@ return new Margin(10, 10, 10, 10); } - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, + final SymbolContext symbolContext) { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); ug = symbolContext.apply(ug); drawRect(ug, dim.getWidth(), dim.getHeight(), symbolContext.isShadowing()); final Margin margin = getMargin(); - final TextBlock tb = TextBlockUtils.mergeTB(stereotype, label, HorizontalAlignment.CENTER); + final TextBlock tb = TextBlockUtils.mergeTB(stereotype, label, stereotypeAlignement); tb.drawU(ug.apply(new UTranslate(margin.getX1(), margin.getY1()))); } @@ -90,15 +96,22 @@ public TextBlock asBig(final TextBlock title, final TextBlock stereotype, final double width, final double height, final SymbolContext symbolContext) { - return new TextBlock() { - + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); ug = symbolContext.apply(ug); drawRect(ug, dim.getWidth(), dim.getHeight(), symbolContext.isShadowing()); final Dimension2D dimStereo = stereotype.calculateDimension(ug.getStringBounder()); - final double posStereo = (width - dimStereo.getWidth()) / 2; - stereotype.drawU(ug.apply(new UTranslate(posStereo, 2))); + final double posStereoX; + final double posStereoY; + if (stereotypeAlignement == HorizontalAlignment.RIGHT) { + posStereoX = width - dimStereo.getWidth() - getMargin().getX1() / 2; + posStereoY = getMargin().getY1() / 2; + } else { + posStereoX = (width - dimStereo.getWidth()) / 2; + posStereoY = 2; + } + stereotype.drawU(ug.apply(new UTranslate(posStereoX, posStereoY))); final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); final double posTitle = (width - dimTitle.getWidth()) / 2; title.drawU(ug.apply(new UTranslate(posTitle, 2 + dimStereo.getHeight()))); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolSimpleAbstract.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolSimpleAbstract.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolSimpleAbstract.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolSimpleAbstract.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,12 +42,12 @@ abstract class USymbolSimpleAbstract extends USymbol { - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { if (stereotype == null) { throw new IllegalArgumentException(); } final TextBlock stickman = getDrawing(symbolContext); - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final StringBounder stringBounder = ug.getStringBounder(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolStorage.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolStorage.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolStorage.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolStorage.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -60,8 +60,8 @@ return new Margin(10, 10, 10, 10); } - public TextBlock asSmall(final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { - return new TextBlock() { + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, final SymbolContext symbolContext) { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); @@ -82,7 +82,7 @@ public TextBlock asBig(final TextBlock title, final TextBlock stereotype, final double width, final double height, final SymbolContext symbolContext) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final Dimension2D dim = calculateDimension(ug.getStringBounder()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolTogether.java plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolTogether.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/USymbolTogether.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/USymbolTogether.java 2016-04-22 16:26:27.000000000 +0000 @@ -0,0 +1,67 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.graphic; + +import java.awt.geom.Dimension2D; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.ugraphic.UGraphic; + +class USymbolTogether extends USymbol { + + @Override + public SkinParameter getSkinParameter() { + return SkinParameter.STORAGE; + } + + public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype, + final SymbolContext symbolContext) { + throw new UnsupportedOperationException(); + } + + public TextBlock asBig(final TextBlock title, final TextBlock stereotype, final double width, final double height, + final SymbolContext symbolContext) { + return new AbstractTextBlock() { + + public void drawU(UGraphic ug) { + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + return new Dimension2DDouble(width, height); + } + }; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/VerticalAlignment.java plantuml-8039/src/net/sourceforge/plantuml/graphic/VerticalAlignment.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/VerticalAlignment.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/VerticalAlignment.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/graphic/VerticalPosition.java plantuml-8039/src/net/sourceforge/plantuml/graphic/VerticalPosition.java --- plantuml-8024/src/net/sourceforge/plantuml/graphic/VerticalPosition.java 2015-05-03 15:06:17.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/graphic/VerticalPosition.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/Box2D.java plantuml-8039/src/net/sourceforge/plantuml/hector/Box2D.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/Box2D.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/Box2D.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector2.java plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector2.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector2.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector2.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector3.java plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector3.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector3.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector3.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector4.java plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector4.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector4.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector4.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHectorB1.java plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHectorB1.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHectorB1.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHectorB1.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHectorB2.java plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHectorB2.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHectorB2.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHectorB2.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector.java plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/CucaDiagramFileMakerHector.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/GrowingTree.java plantuml-8039/src/net/sourceforge/plantuml/hector/GrowingTree.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/GrowingTree.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/GrowingTree.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/HectorPath.java plantuml-8039/src/net/sourceforge/plantuml/hector/HectorPath.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/HectorPath.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/HectorPath.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/PinFactory.java plantuml-8039/src/net/sourceforge/plantuml/hector/PinFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/PinFactory.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/PinFactory.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/Pin.java plantuml-8039/src/net/sourceforge/plantuml/hector/Pin.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/Pin.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/Pin.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/PinLink.java plantuml-8039/src/net/sourceforge/plantuml/hector/PinLink.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/PinLink.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/PinLink.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/PinLinksContinuousSet.java plantuml-8039/src/net/sourceforge/plantuml/hector/PinLinksContinuousSet.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/PinLinksContinuousSet.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/PinLinksContinuousSet.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonBuilder.java plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonBuilder.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonBuilder.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonBuilder.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurationComparator.java plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurationComparator.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurationComparator.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurationComparator.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurationEvaluator.java plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurationEvaluator.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurationEvaluator.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurationEvaluator.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurationEvaluatorLineLenght.java plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurationEvaluatorLineLenght.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurationEvaluatorLineLenght.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurationEvaluatorLineLenght.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfiguration.java plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfiguration.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfiguration.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfiguration.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurationSet.java plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurationSet.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurationSet.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurationSet.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurations.java plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurations.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurations.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurations.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurationUtils.java plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurationUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonConfigurationUtils.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonConfigurationUtils.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/Skeleton.java plantuml-8039/src/net/sourceforge/plantuml/hector/Skeleton.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/Skeleton.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/Skeleton.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonMutation.java plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonMutation.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/SkeletonMutation.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/SkeletonMutation.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/SmartConnection.java plantuml-8039/src/net/sourceforge/plantuml/hector/SmartConnection.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/SmartConnection.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/SmartConnection.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/UnlinarCompressedPlan.java plantuml-8039/src/net/sourceforge/plantuml/hector/UnlinarCompressedPlan.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/UnlinarCompressedPlan.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/UnlinarCompressedPlan.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector/UnlinearCompression.java plantuml-8039/src/net/sourceforge/plantuml/hector/UnlinearCompression.java --- plantuml-8024/src/net/sourceforge/plantuml/hector/UnlinearCompression.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector/UnlinearCompression.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector2/continuity/SkeletonBuilder.java plantuml-8039/src/net/sourceforge/plantuml/hector2/continuity/SkeletonBuilder.java --- plantuml-8024/src/net/sourceforge/plantuml/hector2/continuity/SkeletonBuilder.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector2/continuity/SkeletonBuilder.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector2/continuity/Skeleton.java plantuml-8039/src/net/sourceforge/plantuml/hector2/continuity/Skeleton.java --- plantuml-8024/src/net/sourceforge/plantuml/hector2/continuity/Skeleton.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector2/continuity/Skeleton.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector2/CucaDiagramFileMakerHectorC1.java plantuml-8039/src/net/sourceforge/plantuml/hector2/CucaDiagramFileMakerHectorC1.java --- plantuml-8024/src/net/sourceforge/plantuml/hector2/CucaDiagramFileMakerHectorC1.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector2/CucaDiagramFileMakerHectorC1.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector2/graphic/Foo1.java plantuml-8039/src/net/sourceforge/plantuml/hector2/graphic/Foo1.java --- plantuml-8024/src/net/sourceforge/plantuml/hector2/graphic/Foo1.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector2/graphic/Foo1.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector2/graphic/Foo2.java plantuml-8039/src/net/sourceforge/plantuml/hector2/graphic/Foo2.java --- plantuml-8024/src/net/sourceforge/plantuml/hector2/graphic/Foo2.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector2/graphic/Foo2.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,6 +40,7 @@ import net.sourceforge.plantuml.cucadiagram.CucaDiagram; import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.ILeaf; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.hector2.MinMax; @@ -50,7 +51,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class Foo2 implements TextBlock { +public class Foo2 extends AbstractTextBlock implements TextBlock { private final Distribution distribution; private final CucaDiagram diagram; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector2/layering/LayerFactory.java plantuml-8039/src/net/sourceforge/plantuml/hector2/layering/LayerFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/hector2/layering/LayerFactory.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector2/layering/LayerFactory.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector2/layering/Layer.java plantuml-8039/src/net/sourceforge/plantuml/hector2/layering/Layer.java --- plantuml-8024/src/net/sourceforge/plantuml/hector2/layering/Layer.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector2/layering/Layer.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector2/MinMax.java plantuml-8039/src/net/sourceforge/plantuml/hector2/MinMax.java --- plantuml-8024/src/net/sourceforge/plantuml/hector2/MinMax.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector2/MinMax.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector2/mpos/Distribution.java plantuml-8039/src/net/sourceforge/plantuml/hector2/mpos/Distribution.java --- plantuml-8024/src/net/sourceforge/plantuml/hector2/mpos/Distribution.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector2/mpos/Distribution.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector2/mpos/MutationLayer.java plantuml-8039/src/net/sourceforge/plantuml/hector2/mpos/MutationLayer.java --- plantuml-8024/src/net/sourceforge/plantuml/hector2/mpos/MutationLayer.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector2/mpos/MutationLayer.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/hector2/mpos/MutationLayerMove.java plantuml-8039/src/net/sourceforge/plantuml/hector2/mpos/MutationLayerMove.java --- plantuml-8024/src/net/sourceforge/plantuml/hector2/mpos/MutationLayerMove.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/hector2/mpos/MutationLayerMove.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/Hideable.java plantuml-8039/src/net/sourceforge/plantuml/Hideable.java --- plantuml-8024/src/net/sourceforge/plantuml/Hideable.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/Hideable.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/html/CucaDiagramHtmlMaker.java plantuml-8039/src/net/sourceforge/plantuml/html/CucaDiagramHtmlMaker.java --- plantuml-8024/src/net/sourceforge/plantuml/html/CucaDiagramHtmlMaker.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/html/CucaDiagramHtmlMaker.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -135,12 +135,12 @@ } pw.println("


"); - if (entity.getFieldsToDisplay().size() == 0) { + if (entity.getBodier().getFieldsToDisplay().size() == 0) { pw.println("

No fields

"); } else { pw.println("

Fields:

"); pw.println("
    "); - for (Member m : entity.getFieldsToDisplay()) { + for (Member m : entity.getBodier().getFieldsToDisplay()) { pw.println("
  • "); pw.println(StringUtils.unicodeForHtml(m.getDisplay(true))); pw.println("
  • "); @@ -149,12 +149,12 @@ } pw.println("
    "); - if (entity.getMethodsToDisplay().size() == 0) { + if (entity.getBodier().getMethodsToDisplay().size() == 0) { pw.println("

    No methods

    "); } else { pw.println("

    Methods:

    "); pw.println("
      "); - for (Member m : entity.getMethodsToDisplay()) { + for (Member m : entity.getBodier().getMethodsToDisplay()) { pw.println("
    • "); pw.println(StringUtils.unicodeForHtml(m.getDisplay(true))); pw.println("
    • "); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/html/LinkHtmlPrinter.java plantuml-8039/src/net/sourceforge/plantuml/html/LinkHtmlPrinter.java --- plantuml-8024/src/net/sourceforge/plantuml/html/LinkHtmlPrinter.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/html/LinkHtmlPrinter.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ISkinParam.java plantuml-8039/src/net/sourceforge/plantuml/ISkinParam.java --- plantuml-8024/src/net/sourceforge/plantuml/ISkinParam.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ISkinParam.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,11 +37,10 @@ import net.sourceforge.plantuml.cucadiagram.Rankdir; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.cucadiagram.dot.DotSplines; -import net.sourceforge.plantuml.cucadiagram.dot.GraphvizLayoutStrategy; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.IHtmlColorSet; import net.sourceforge.plantuml.graphic.SkinParameter; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.svek.ConditionStyle; import net.sourceforge.plantuml.svek.PackageStyle; import net.sourceforge.plantuml.ugraphic.ColorMapper; @@ -58,11 +57,13 @@ public HtmlColor getHtmlColor(ColorParam param, Stereotype stereotype, boolean clickable); - public HtmlColor getFontHtmlColor(FontParam param, Stereotype stereotype); + public Colors getColors(ColorParam param, Stereotype stereotype); + + public HtmlColor getFontHtmlColor(Stereotype stereotype, FontParam... param); public UStroke getThickness(LineParam param, Stereotype stereotype); - public UFont getFont(FontParam fontParam, Stereotype stereotype, boolean inPackageTitle); + public UFont getFont(Stereotype stereotype, boolean inPackageTitle, FontParam... fontParam); public HorizontalAlignment getHorizontalAlignment(AlignParam param); @@ -78,9 +79,11 @@ public DotSplines getDotSplines(); - public GraphvizLayoutStrategy getStrategy(); + public String getDotExecutable(); public boolean shadowing(); + + public boolean shadowingForNote(Stereotype stereotype); public boolean shadowing2(SkinParameter skinParameter); @@ -114,12 +117,16 @@ public boolean useOctagonForActivity(Stereotype stereotype); - public IHtmlColorSet getIHtmlColorSet(); - public int groupInheritance(); - + public boolean useGuillemet(); public boolean handwritten(); + public String getSvgLinkTarget(); + + public int getTabSize(); + + public int maxAsciiMessageLength(); + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ISkinSimple.java plantuml-8039/src/net/sourceforge/plantuml/ISkinSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/ISkinSimple.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ISkinSimple.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,11 +34,18 @@ */ package net.sourceforge.plantuml; +import net.sourceforge.plantuml.graphic.IHtmlColorSet; + public interface ISkinSimple extends SpriteContainer { public String getValue(String key); public double getPadding(); + + public String getMonospacedFamily(); + public int getTabSize(); + + public IHtmlColorSet getIHtmlColorSet(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ISourceFileReader.java plantuml-8039/src/net/sourceforge/plantuml/ISourceFileReader.java --- plantuml-8024/src/net/sourceforge/plantuml/ISourceFileReader.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ISourceFileReader.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,5 +44,8 @@ public List getEncodedUrl() throws IOException; public boolean hasError(); + + public void setFileFormatOption(FileFormatOption fileFormatOption); + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jdot/CucaDiagramFileMakerJDot.java plantuml-8039/src/net/sourceforge/plantuml/jdot/CucaDiagramFileMakerJDot.java --- plantuml-8024/src/net/sourceforge/plantuml/jdot/CucaDiagramFileMakerJDot.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jdot/CucaDiagramFileMakerJDot.java 2016-04-22 16:26:27.000000000 +0000 @@ -0,0 +1,596 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.jdot; + +import static gen.lib.cgraph.attr__c.agsafeset; +import static gen.lib.cgraph.edge__c.agedge; +import static gen.lib.cgraph.graph__c.agopen; +import static gen.lib.cgraph.node__c.agnode; +import static gen.lib.cgraph.subg__c.agsubg; +import static gen.lib.gvc.gvc__c.gvContext; +import static gen.lib.gvc.gvlayout__c.gvLayoutJobs; +import h.Agedge_s; +import h.Agnode_s; +import h.Agnodeinfo_t; +import h.Agraph_s; +import h.Agraphinfo_t; +import h.GVC_s; +import h.boxf; + +import java.awt.geom.Dimension2D; +import java.awt.geom.Point2D; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +import net.sourceforge.plantuml.ColorParam; +import net.sourceforge.plantuml.FileFormatOption; +import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.UmlDiagram; +import net.sourceforge.plantuml.api.ImageDataSimple; +import net.sourceforge.plantuml.core.ImageData; +import net.sourceforge.plantuml.cucadiagram.CucaDiagram; +import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.EntityPortion; +import net.sourceforge.plantuml.cucadiagram.GroupType; +import net.sourceforge.plantuml.cucadiagram.IEntity; +import net.sourceforge.plantuml.cucadiagram.IGroup; +import net.sourceforge.plantuml.cucadiagram.ILeaf; +import net.sourceforge.plantuml.cucadiagram.LeafType; +import net.sourceforge.plantuml.cucadiagram.Link; +import net.sourceforge.plantuml.cucadiagram.Member; +import net.sourceforge.plantuml.cucadiagram.MethodsOrFieldsArea; +import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.FontConfiguration; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.QuoteUtils; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.TextBlockEmpty; +import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.TextBlockWidth; +import net.sourceforge.plantuml.graphic.UDrawable; +import net.sourceforge.plantuml.graphic.USymbol; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.svek.Bibliotekon; +import net.sourceforge.plantuml.svek.Cluster; +import net.sourceforge.plantuml.svek.ColorSequence; +import net.sourceforge.plantuml.svek.CucaDiagramFileMaker; +import net.sourceforge.plantuml.svek.CucaDiagramFileMakerSvek2; +import net.sourceforge.plantuml.svek.DotStringFactory; +import net.sourceforge.plantuml.svek.GraphvizCrash; +import net.sourceforge.plantuml.svek.IEntityImage; +import net.sourceforge.plantuml.svek.Shape; +import net.sourceforge.plantuml.ugraphic.ImageBuilder; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UStroke; +import net.sourceforge.plantuml.ugraphic.UTranslate; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; +import smetana.core.CString; +import smetana.core.JUtils; +import smetana.core.Macro; +import smetana.core.Z; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class CucaDiagramFileMakerJDot implements CucaDiagramFileMaker { + + private final CucaDiagram diagram; + + private final StringBounder stringBounder = TextBlockUtils.getDummyStringBounder(); + private final Map nodes = new LinkedHashMap(); + private final Map edges = new LinkedHashMap(); + private final Map clusters = new LinkedHashMap(); + private Map emptyGroups = new HashMap(); + + private final DotStringFactory dotStringFactory; + + class Drawing implements UDrawable { + + private final YMirror ymirror; + + public Drawing(YMirror ymirror) { + this.ymirror = ymirror; + } + + public void drawU(UGraphic ug) { + + for (Map.Entry ent : clusters.entrySet()) { + drawGroup(ug, ymirror, ent.getKey(), ent.getValue()); + } + + for (Map.Entry ent : nodes.entrySet()) { + final ILeaf leaf = ent.getKey(); + final Agnode_s node = ent.getValue(); + final Point2D corner = getCorner(node); + + final Shape shape = dotStringFactory.getBibliotekon().getShape(leaf); + final IEntityImage image = shape.getImage(); + image.drawU(ug.apply(new UTranslate(corner))); + } + + for (Map.Entry ent : edges.entrySet()) { + final Link link = ent.getKey(); + final Agedge_s edge = ent.getValue(); + new JDotPath(link, edge, ymirror, diagram, getLabel(link)).drawU(ug); + } + } + + private Point2D getCorner(Agnode_s n) { + final Agnodeinfo_t data = (Agnodeinfo_t) Macro.AGDATA(n).castTo(Agnodeinfo_t.class); + final double width = data.getDouble("width") * 72; + final double height = data.getDouble("height") * 72; + final double x = data.getStruct("coord").getDouble("x"); + final double y = data.getStruct("coord").getDouble("y"); + + if (ymirror == null) { + return new Point2D.Double(x - width / 2, y - height / 2); + } + return ymirror.getMirrored(new Point2D.Double(x - width / 2, y + height / 2)); + } + + } + + public CucaDiagramFileMakerJDot(CucaDiagram diagram) { + this.diagram = diagram; + this.dotStringFactory = new DotStringFactory(new ColorSequence(), stringBounder, diagram); + + printGroups(diagram.getRootGroup()); + printEntities(getUnpackagedEntities()); + + } + + public void drawGroup(UGraphic ug, YMirror ymirror, IGroup group, Agraph_s gr) { + JUtils.LOG2("drawGroup"); + final __ptr__ data = Macro.AGDATA(gr).castTo(Agraphinfo_t.class); + final __struct__ bb = data.getStruct("bb"); + final double llx = bb.getStruct("LL").getDouble("x"); + double lly = bb.getStruct("LL").getDouble("y"); + final double urx = bb.getStruct("UR").getDouble("x"); + double ury = bb.getStruct("UR").getDouble("y"); + if (ymirror != null) { + final double tmpUry = ury; + ury = ymirror.getMirrored(lly); + lly = ymirror.getMirrored(tmpUry); + } + + final Cluster cluster = dotStringFactory.getBibliotekon().getCluster(group); + cluster.setPosition(llx, lly, urx, ury); + JUtils.LOG2("cluster=" + cluster); + // ug.apply(new UTranslate(llx, lly)).apply(new UChangeColor(HtmlColorUtils.BLUE)) + // .draw(new URectangle(urx - llx, ury - lly)); + cluster.drawU(ug, new UStroke(1.5), diagram.getUmlDiagramType(), diagram.getSkinParam()); + } + + private void printGroups(IGroup parent) { + for (IGroup g : diagram.getChildrenGroups(parent)) { + if (g.isRemoved()) { + continue; + } + if (diagram.isEmpty(g) && g.getGroupType() == GroupType.PACKAGE) { + final ILeaf folder = diagram.getEntityFactory().createLeaf(g.getCode(), g.getDisplay(), + LeafType.EMPTY_PACKAGE, g.getParentContainer(), null, diagram.getNamespaceSeparator()); + emptyGroups.put(g, folder); + final USymbol symbol = g.getUSymbol(); + folder.setUSymbol(symbol); + folder.setStereotype(g.getStereotype()); + if (g.getColors(diagram.getSkinParam()).getColor(ColorType.BACK) == null) { + final ColorParam param = symbol == null ? ColorParam.packageBackground : symbol.getColorParamBack(); + final HtmlColor c1 = diagram.getSkinParam().getHtmlColor(param, g.getStereotype(), false); + folder.setSpecificColorTOBEREMOVED(ColorType.BACK, c1 == null ? diagram.getSkinParam() + .getBackgroundColor() : c1); + } else { + folder.setSpecificColorTOBEREMOVED(ColorType.BACK, + g.getColors(diagram.getSkinParam()).getColor(ColorType.BACK)); + } + printEntityNew(folder); + } else { + printGroup(g); + } + } + } + + private void printGroup(IGroup g) { + if (g.getGroupType() == GroupType.CONCURRENT_STATE) { + return; + } + int titleAndAttributeWidth = 0; + int titleAndAttributeHeight = 0; + + final TextBlock title = getTitleBlock(g); + final TextBlock stereo = getStereoBlock(g); + final TextBlock stereoAndTitle = TextBlockUtils.mergeTB(stereo, title, HorizontalAlignment.CENTER); + final Dimension2D dimLabel = stereoAndTitle.calculateDimension(stringBounder); + if (dimLabel.getWidth() > 0) { + final List members = ((IEntity) g).getBodier().getFieldsToDisplay(); + final TextBlockWidth attribute; + if (members.size() == 0) { + attribute = new TextBlockEmpty(); + } else { + attribute = new MethodsOrFieldsArea(members, FontParam.STATE_ATTRIBUTE, diagram.getSkinParam(), + g.getStereotype()); + } + final Dimension2D dimAttribute = attribute.calculateDimension(stringBounder); + final double attributeHeight = dimAttribute.getHeight(); + final double attributeWidth = dimAttribute.getWidth(); + final double marginForFields = attributeHeight > 0 ? IEntityImage.MARGIN : 0; + final USymbol uSymbol = g.getUSymbol(); + final int suppHeightBecauseOfShape = uSymbol == null ? 0 : uSymbol.suppHeightBecauseOfShape(); + final int suppWidthBecauseOfShape = uSymbol == null ? 0 : uSymbol.suppWidthBecauseOfShape(); + + titleAndAttributeWidth = (int) Math.max(dimLabel.getWidth(), attributeWidth) + suppWidthBecauseOfShape; + titleAndAttributeHeight = (int) (dimLabel.getHeight() + attributeHeight + marginForFields + suppHeightBecauseOfShape); + } + + dotStringFactory.openCluster(g, titleAndAttributeWidth, titleAndAttributeHeight, title, stereo); + this.printEntities(g.getLeafsDirect()); + + printGroups(g); + + dotStringFactory.closeCluster(); + } + + private void printEntities(Collection entities2) { + for (ILeaf ent : entities2) { + if (ent.isRemoved()) { + continue; + } + printEntity(ent); + } + } + + private void exportEntities(Agraph_s g, Collection entities2) { + for (ILeaf ent : entities2) { + if (ent.isRemoved()) { + continue; + } + exportEntity(g, ent); + } + } + + private void exportEntity(Agraph_s g, ILeaf leaf) { + final Shape shape = dotStringFactory.getBibliotekon().getShape(leaf); + final Agnode_s node = agnode(g, new CString(shape.getUid()), true); + agsafeset(node, new CString("shape"), new CString("box"), new CString("")); + final String width = "" + (shape.getWidth() / 72); + final String height = "" + (shape.getHeight() / 72); + agsafeset(node, new CString("width"), new CString(width), new CString("")); + agsafeset(node, new CString("height"), new CString(height), new CString("")); + // System.err.println("NODE " + leaf.getUid() + " " + width + " " + height); + nodes.put(leaf, node); + } + + private void printEntity(ILeaf ent) { + if (ent.isRemoved()) { + throw new IllegalStateException(); + } + final IEntityImage image = printEntityInternal(ent); + final Dimension2D dim = image.calculateDimension(stringBounder); + final Shape shape = new Shape(image, image.getShapeType(), dim.getWidth(), dim.getHeight(), + dotStringFactory.getColorSequence(), ent.isTop(), image.getShield(), ent.getEntityPosition()); + dotStringFactory.addShape(shape); + getBibliotekon().putShape(ent, shape); + } + + private TextBlock getTitleBlock(IGroup g) { + final Display label = g.getDisplay(); + if (label == null) { + return TextBlockUtils.empty(0, 0); + } + + final ISkinParam skinParam = diagram.getSkinParam(); + final FontConfiguration fontConfiguration = g.getFontConfigurationForTitle(skinParam); + return label.create(fontConfiguration, HorizontalAlignment.CENTER, skinParam); + } + + private TextBlock getStereoBlock(IGroup g) { + final Stereotype stereotype = g.getStereotype(); + if (stereotype == null) { + return TextBlockUtils.empty(0, 0); + } + if (stereotype.getSprite() != null) { + final Sprite tmp = diagram.getSkinParam().getSprite(stereotype.getSprite()); + if (tmp != null) { + return tmp.asTextBlock(stereotype.getHtmlColor(), 1); + } + } + final List stereos = stereotype.getLabels(diagram.getSkinParam().useGuillemet()); + if (stereos == null) { + return TextBlockUtils.empty(0, 0); + } + final boolean show = diagram.showPortion(EntityPortion.STEREOTYPE, g); + if (show == false) { + return TextBlockUtils.empty(0, 0); + } + + final FontParam fontParam = FontParam.PACKAGE_STEREOTYPE; + return Display.create(stereos).create(new FontConfiguration(diagram.getSkinParam(), fontParam, stereotype), + HorizontalAlignment.CENTER, diagram.getSkinParam()); + } + + private Collection getUnpackagedEntities() { + final List result = new ArrayList(); + for (ILeaf ent : diagram.getLeafsvalues()) { + if (diagram.getEntityFactory().getRootGroup() == ent.getParentContainer()) { + result.add(ent); + } + } + return result; + } + + private void printCluster(Agraph_s g, Cluster cluster) { + for (Shape shape : cluster.getShapes()) { + final Agnode_s node = agnode(g, new CString(shape.getUid()), true); + agsafeset(node, new CString("shape"), new CString("box"), new CString("")); + final String width = "" + (shape.getWidth() / 72); + final String height = "" + (shape.getHeight() / 72); + agsafeset(node, new CString("width"), new CString(width), new CString("")); + agsafeset(node, new CString("height"), new CString(height), new CString("")); + final ILeaf leaf = dotStringFactory.getBibliotekon().getLeaf(shape); + nodes.put(leaf, node); + } + + } + + private static final Lock lock = new ReentrantLock(); + + public ImageData createFile(OutputStream os, List dotStrings, FileFormatOption fileFormatOption) + throws IOException { + lock.lock(); + try { + return createFileLocked(os, dotStrings, fileFormatOption); + } finally { + lock.unlock(); + } + } + + private ImageData createFileLocked(OutputStream os, List dotStrings, FileFormatOption fileFormatOption) + throws IOException { + + for (ILeaf leaf : diagram.getLeafsvalues()) { + printEntityNew(leaf); + } + + Z.open(); + try { + final Agraph_s g = agopen(new CString("g"), Z._().Agdirected, null); + + // printCluster(g, root); + exportEntities(g, getUnpackagedEntities()); + exportGroups(g, diagram.getEntityFactory().getRootGroup()); + + // for (ILeaf leaf : diagram.getLeafsvalues()) { + // final Shape shape = bibliotekon.getShape(leaf); + // final Agnode_s node = agnode(g, new CString(shape.getUid()), true); + // agsafeset(node, new CString("shape"), new CString("box"), new CString("")); + // final String width = "" + (shape.getWidth() / 72); + // final String height = "" + (shape.getHeight() / 72); + // agsafeset(node, new CString("width"), new CString(width), new CString("")); + // agsafeset(node, new CString("height"), new CString(height), new CString("")); + // nodes.put(leaf, node); + // // System.err + // // .println("NODE " + leaf.getUid() + " [shape=box, width=" + width + ", height=" + height + "]"); + // } + // + for (Link link : diagram.getLinks()) { + // System.err.println("link=" + link); + final Agedge_s e = createEdge(g, link); + // System.err.println("Agedge_s=" + e); + if (e != null) { + edges.put(link, e); + } + } + + final GVC_s gvc = gvContext(); + gvLayoutJobs(gvc, g); + + // for (Agedge_s e : edges.values()) { + // DebugUtils.printDebugEdge(e); + // } + + final double scale = 1; + + final ImageBuilder imageBuilder = new ImageBuilder(diagram.getSkinParam().getColorMapper(), scale, null, + fileFormatOption.isWithMetadata() ? diagram.getMetadata() : null, null, 0, 10, + diagram.getAnimation(), diagram.getSkinParam().handwritten()); + + imageBuilder.setUDrawable(new Drawing(null)); + final Dimension2D dim = imageBuilder.getFinalDimension(); + + imageBuilder.setUDrawable(new Drawing(new YMirror(dim.getHeight()))); + + return imageBuilder.writeImageTOBEMOVED(fileFormatOption, os); + } catch (Throwable e) { + UmlDiagram.exportDiagramError(os, e, fileFormatOption, diagram.getMetadata(), diagram.getFlashData(), + getFailureText3(e)); + return new ImageDataSimple(); + } finally { + Z.close(); + } + } + + private void exportGroups(Agraph_s graph, IGroup parent) { + for (IGroup g : diagram.getChildrenGroups(parent)) { + if (g.isRemoved()) { + continue; + } + if (diagram.isEmpty(g) && g.getGroupType() == GroupType.PACKAGE) { + final ILeaf folder = emptyGroups.get(g); + exportEntity(graph, folder); + } else { + exportGroup(graph, g); + } + } + + } + + private void exportGroup(Agraph_s graph, IGroup group) { + final Cluster cluster = getBibliotekon().getCluster(group); + JUtils.LOG2("cluster = " + cluster.getClusterId()); + final Agraph_s cluster1 = agsubg(graph, new CString(cluster.getClusterId()), true); + if (cluster.isLabel()) { + final double width = cluster.getTitleAndAttributeWidth(); + final double height = cluster.getTitleAndAttributeHeight() - 5; + agsafeset(cluster1, new CString("label"), + Macro.createHackInitDimensionFromLabel((int) width, (int) height), new CString("")); + } + this.exportEntities(cluster1, group.getLeafsDirect()); + this.clusters.put(group, cluster1); + this.exportGroups(cluster1, group); + } + + private TextBlock getLabel(Link link) { + final double marginLabel = 1; // startUid.equals(endUid) ? 6 : 1; + ISkinParam skinParam = diagram.getSkinParam(); + final FontConfiguration labelFont = new FontConfiguration(skinParam, FontParam.GENERIC_ARROW, null); + final TextBlock label = link.getLabel().create(labelFont, skinParam.getDefaultTextAlignment(), skinParam); + if (TextBlockUtils.isEmpty(label)) { + return label; + } + return TextBlockUtils.withMargin(label, marginLabel, marginLabel); + + } + + private Agnode_s getAgnodeFromLeaf(IEntity entity) { + final Agnode_s n = nodes.get(entity); + if (n != null) { + return n; + } + final String id = getBibliotekon().getShapeUid((ILeaf) entity); + for (Map.Entry ent : nodes.entrySet()) { + if (id.equals(getBibliotekon().getShapeUid(ent.getKey()))) { + return ent.getValue(); + } + } + return null; + + } + + private Agedge_s createEdge(final Agraph_s g, Link link) { + final Agnode_s n = getAgnodeFromLeaf(link.getEntity1()); + final Agnode_s m = getAgnodeFromLeaf(link.getEntity2()); + if (n == null) { + return null; + } + if (m == null) { + return null; + } + final Agedge_s e = agedge(g, n, m, null, true); + agsafeset(e, new CString("arrowtail"), new CString("none"), new CString("")); + agsafeset(e, new CString("arrowhead"), new CString("none"), new CString("")); + + int length = link.getLength(); + // System.err.println("length=" + length); + // if (/* pragma.horizontalLineBetweenDifferentPackageAllowed() || */link.isInvis() || length != 1) { + agsafeset(e, new CString("minlen"), new CString("" + (length - 1)), new CString("")); + // } + // System.err.print("EDGE " + link.getEntity1().getUid() + "->" + link.getEntity2().getUid() + " minlen=" + // + (length - 1) + " "); + + final TextBlock label = getLabel(link); + if (TextBlockUtils.isEmpty(label) == false) { + final Dimension2D dimLabel = label.calculateDimension(stringBounder); + // System.err.println("dimLabel = " + dimLabel); + final CString hackDim = Macro.createHackInitDimensionFromLabel((int) dimLabel.getWidth(), + (int) dimLabel.getHeight()); + agsafeset(e, new CString("label"), hackDim, new CString("")); + // System.err.print("label=" + hackDim.getContent()); + } + // System.err.println(); + return e; + } + + static private List getFailureText3(Throwable exception) { + exception.printStackTrace(); + final List strings = new ArrayList(); + strings.add("An error has occured : " + exception); + final String quote = QuoteUtils.getSomeQuote(); + strings.add("" + quote); + strings.add(" "); + GraphvizCrash.addProperties(strings); + strings.add(" "); + strings.add("Sorry, the subproject Smetana is not finished yet..."); + strings.add(" "); + strings.add("You should send this diagram and this image to plantuml@gmail.com or"); + strings.add("post to http://plantuml.com/qa to solve this issue."); + strings.add(" "); + return strings; + } + + private void printEntityNew(ILeaf ent) { + if (ent.isRemoved()) { + throw new IllegalStateException(); + } + final IEntityImage image = printEntityInternal(ent); + final Dimension2D dim = image.calculateDimension(stringBounder); + final Shape shape = new Shape(image, image.getShapeType(), dim.getWidth(), dim.getHeight(), + dotStringFactory.getColorSequence(), ent.isTop(), image.getShield(), ent.getEntityPosition()); + // dotStringFactory.addShape(shape); + getBibliotekon().putShape(ent, shape); + } + + private Bibliotekon getBibliotekon() { + return dotStringFactory.getBibliotekon(); + } + + private IEntityImage printEntityInternal(ILeaf ent) { + if (ent.isRemoved()) { + throw new IllegalStateException(); + } + if (ent.getSvekImage() == null) { + ISkinParam skinParam = diagram.getSkinParam(); + if (skinParam.sameClassWidth()) { + throw new UnsupportedOperationException(); + // final double width = getMaxWidth(); + // skinParam = new SkinParamSameClassWidth(dotData.getSkinParam(), width); + } + + return CucaDiagramFileMakerSvek2.createEntityImageBlock(ent, skinParam, + diagram.isHideEmptyDescriptionForState(), diagram, getBibliotekon(), null, + diagram.getUmlDiagramType()); + } + return ent.getSvekImage(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jdot/DebugUtils.java plantuml-8039/src/net/sourceforge/plantuml/jdot/DebugUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/jdot/DebugUtils.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jdot/DebugUtils.java 2016-04-22 16:26:27.000000000 +0000 @@ -0,0 +1,132 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.jdot; + +import h.Agedge_s; +import h.Agedgeinfo_t; +import h.Agnode_s; +import h.Agnodeinfo_t; +import h.bezier; +import h.boxf; +import h.pointf; +import h.splines; +import h.textlabel_t; +import smetana.core.Macro; +import smetana.core.__ptr__; +import smetana.core.__struct__; +import smetana.core.amiga.StarArrayOfPtr; +import smetana.core.amiga.StarStruct; + +public class DebugUtils { + + public static void printDebugEdge(Agedge_s e) { + System.err.println("*********** PRINT EDGE ********** " + getUID(e)); + final Agedgeinfo_t data = (Agedgeinfo_t) Macro.AGDATA(e).castTo(Agedgeinfo_t.class); + final splines splines = (splines) data.getPtr("spl"); + __struct__ bb = splines.getStruct("bb"); + // final bezier list = (bezier) splines.getPtr("list"); + System.err.println("splines.UID=" + ((StarStruct) splines).getUID36()); + System.err.println("splines.size=" + splines.getInt("size")); + System.err.println("bb.LL=" + pointftoString(bb.getStruct("LL"))); + System.err.println("bb.UR=" + pointftoString(bb.getStruct("UR"))); + printDebugBezier((bezier) splines.getPtr("list").getPtr()); + + textlabel_t label = (textlabel_t) data.getPtr("label"); + if (label != null) { + System.err.println("LABEL dimen=" + pointftoString(label.getStruct("dimen"))); + System.err.println("LABEL space=" + pointftoString(label.getStruct("space"))); + System.err.println("LABEL pos=" + pointftoString(label.getStruct("pos"))); + } + + } + + public static String getUID(Object o) { + if (o instanceof StarArrayOfPtr) { + return ((StarArrayOfPtr) o).getUID36(); + } + return ((StarStruct) o).getUID36(); + } + + public static void printDebugBezier(bezier bezier) { + System.err.println("bezier.size=" + bezier.getInt("size")); + System.err.println("bezier.sflag=" + bezier.getInt("sflag")); + System.err.println("splines.eflag=" + bezier.getInt("eflag")); + System.err.println("bezier.sp=" + pointftoString(bezier.getStruct("sp"))); + System.err.println("bezier.ep=" + pointftoString(bezier.getStruct("ep"))); + System.err.println("bezier.list=" + getUID(bezier.getPtr("list"))); + for (int i = 0; i < bezier.getInt("size"); i++) { + final __ptr__ pt = bezier.getPtr("list").plus(i).getPtr(); + System.err.println("pt=" + pointftoString(pt)); + } + + } + + public static void printDebugNode(Agnode_s n) { + System.err.println("*********** PRINT NODE ********** "); + final Agnodeinfo_t data = (Agnodeinfo_t) Macro.AGDATA(n).castTo(Agnodeinfo_t.class); + System.err.println("width=" + data.getDouble("width")); + System.err.println("height=" + data.getDouble("height")); + System.err.println("ht=" + data.getDouble("ht")); + System.err.println("lw=" + data.getDouble("lw")); + System.err.println("rw=" + data.getDouble("rw")); + System.err.println("coord=" + pointftoString(data.getStruct("coord"))); + + __struct__ bb = data.getStruct("bb"); + System.err.println("bb.LL=" + pointftoString(bb.getStruct("LL"))); + System.err.println("bb.UR=" + pointftoString(bb.getStruct("UR"))); + // TODO Auto-generated method stub + } + + public static String pointftoString(__struct__ point) { + final StringBuilder sb = new StringBuilder(); + sb.append("("); + sb.append(point.getDouble("x")); + sb.append(" ; "); + sb.append(point.getDouble("y")); + sb.append(")"); + return sb.toString(); + + } + + public static String pointftoString(__ptr__ point) { + final StringBuilder sb = new StringBuilder(); + sb.append("("); + sb.append(point.getDouble("x")); + sb.append(" ; "); + sb.append(point.getDouble("y")); + sb.append(")"); + return sb.toString(); + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jdot/JDotPath.java plantuml-8039/src/net/sourceforge/plantuml/jdot/JDotPath.java --- plantuml-8024/src/net/sourceforge/plantuml/jdot/JDotPath.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jdot/JDotPath.java 2016-04-22 16:26:27.000000000 +0000 @@ -0,0 +1,215 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.jdot; + +import h.Agedge_s; +import h.Agedgeinfo_t; +import h.bezier; +import h.pointf; +import h.splines; +import h.textlabel_t; + +import java.awt.geom.Point2D; + +import net.sourceforge.plantuml.ColorParam; +import net.sourceforge.plantuml.UmlDiagramType; +import net.sourceforge.plantuml.cucadiagram.CucaDiagram; +import net.sourceforge.plantuml.cucadiagram.Link; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.UDrawable; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.posimo.DotPath; +import net.sourceforge.plantuml.skin.rose.Rose; +import net.sourceforge.plantuml.ugraphic.UChangeBackColor; +import net.sourceforge.plantuml.ugraphic.UChangeColor; +import net.sourceforge.plantuml.ugraphic.UEllipse; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.URectangle; +import net.sourceforge.plantuml.ugraphic.UTranslate; +import smetana.core.Macro; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class JDotPath implements UDrawable { + + private final Link link; + private final Agedge_s edge; + private final YMirror ymirror; + private final CucaDiagram diagram; + private final TextBlock label; + private final Rose rose = new Rose(); + + public JDotPath(Link link, Agedge_s edge, YMirror ymirror, CucaDiagram diagram, TextBlock label) { + this.link = link; + this.edge = edge; + this.ymirror = ymirror; + this.diagram = diagram; + this.label = label; + } + + private ColorParam getArrowColorParam() { + if (diagram.getUmlDiagramType() == UmlDiagramType.CLASS) { + return ColorParam.classArrow; + } else if (diagram.getUmlDiagramType() == UmlDiagramType.OBJECT) { + return ColorParam.objectArrow; + } else if (diagram.getUmlDiagramType() == UmlDiagramType.DESCRIPTION) { + return ColorParam.usecaseArrow; + } else if (diagram.getUmlDiagramType() == UmlDiagramType.ACTIVITY) { + return ColorParam.activityArrow; + } else if (diagram.getUmlDiagramType() == UmlDiagramType.STATE) { + return ColorParam.stateArrow; + } + throw new IllegalStateException(); + } + + public void drawU(UGraphic ug) { + + HtmlColor color = rose.getHtmlColor(diagram.getSkinParam(), getArrowColorParam(), null); + + if (this.link.getColors() != null) { + final HtmlColor newColor = this.link.getColors().getColor(ColorType.ARROW, ColorType.LINE); + if (newColor != null) { + color = newColor; + } + + } else if (this.link.getSpecificColor() != null) { + color = this.link.getSpecificColor(); + } + + DotPath dotPath = getDotPath(edge); + if (ymirror != null) { + dotPath = ymirror.getMirrored(dotPath); + } + + ug.apply(new UChangeColor(color)).draw(dotPath); + if (getLabelRectangleTranslate() != null) { + label.drawU(ug.apply(getLabelRectangleTranslate())); + } + // printDebug(ug); + + } + + private void printDebug(UGraphic ug) { + ug = ug.apply(new UChangeColor(HtmlColorUtils.BLUE)).apply(new UChangeBackColor(HtmlColorUtils.BLUE)); + final splines splines = getSplines(edge); + final bezier beziers = (bezier) splines.getPtr("list"); + for (int i = 0; i < beziers.getInt("size"); i++) { + Point2D pt = getPoint(splines, i); + if (ymirror != null) { + pt = ymirror.getMirrored(pt); + } + ug.apply(new UTranslate(pt).compose(new UTranslate(-1, -1))).draw(new UEllipse(3, 3)); + } + if (getLabelRectangleTranslate() != null && getLabelURectangle() != null) { + ug = ug.apply(new UChangeColor(HtmlColorUtils.BLUE)).apply(new UChangeBackColor(null)); + ug.apply(getLabelRectangleTranslate()).draw(getLabelURectangle()); + } + + } + + private URectangle getLabelURectangle() { + final Agedgeinfo_t data = (Agedgeinfo_t) Macro.AGDATA(edge).castTo(Agedgeinfo_t.class); + textlabel_t label = (textlabel_t) data.getPtr("label"); + if (label == null) { + return null; + } + final __struct__ dimen = label.getStruct("dimen"); + final __struct__ space = label.getStruct("space"); + final __struct__ pos = label.getStruct("pos"); + final double x = pos.getDouble("x"); + final double y = pos.getDouble("y"); + final double width = dimen.getDouble("x"); + final double height = dimen.getDouble("y"); + return new URectangle(width, height); + } + + private UTranslate getLabelRectangleTranslate() { + final Agedgeinfo_t data = (Agedgeinfo_t) Macro.AGDATA(edge).castTo(Agedgeinfo_t.class); + textlabel_t label = (textlabel_t) data.getPtr("label"); + if (label == null) { + return null; + } + final __struct__ dimen = label.getStruct("dimen"); + final __struct__ space = label.getStruct("space"); + final __struct__ pos = label.getStruct("pos"); + final double x = pos.getDouble("x"); + final double y = pos.getDouble("y"); + final double width = dimen.getDouble("x"); + final double height = dimen.getDouble("y"); + + if (ymirror == null) { + return new UTranslate(x - width / 2, y - height / 2); + } + return ymirror.getMirrored(new UTranslate(x - width / 2, y + height / 2)); + } + + public DotPath getDotPath(Agedge_s e) { + final splines splines = getSplines(e); + return getDotPath(splines); + } + + private splines getSplines(Agedge_s e) { + final Agedgeinfo_t data = (Agedgeinfo_t) Macro.AGDATA(e).castTo(Agedgeinfo_t.class); + final splines splines = (splines) data.getPtr("spl"); + return splines; + } + + private DotPath getDotPath(splines splines) { + DotPath result = new DotPath(); + final bezier beziers = (bezier) splines.getPtr("list"); + final Point2D pt1 = getPoint(splines, 0); + final Point2D pt2 = getPoint(splines, 1); + final Point2D pt3 = getPoint(splines, 2); + final Point2D pt4 = getPoint(splines, 3); + result = result.addCurve(pt1, pt2, pt3, pt4); + final int n = beziers.getInt("size"); + for (int i = 4; i < n; i += 3) { + final Point2D ppt2 = getPoint(splines, i); + final Point2D ppt3 = getPoint(splines, i + 1); + final Point2D ppt4 = getPoint(splines, i + 2); + result = result.addCurve(ppt2, ppt3, ppt4); + } + return result; + } + + private Point2D getPoint(splines splines, int i) { + final bezier beziers = (bezier) splines.getPtr("list"); + final __ptr__ pt = beziers.getPtr("list").plus(i).getPtr(); + return new Point2D.Double(pt.getDouble("x"), pt.getDouble("y")); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jdot/YMirror.java plantuml-8039/src/net/sourceforge/plantuml/jdot/YMirror.java --- plantuml-8024/src/net/sourceforge/plantuml/jdot/YMirror.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jdot/YMirror.java 2016-04-22 16:26:27.000000000 +0000 @@ -0,0 +1,78 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.jdot; + +import java.awt.geom.CubicCurve2D; +import java.awt.geom.Point2D; + +import net.sourceforge.plantuml.posimo.DotPath; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class YMirror { + + private final double max; + + public YMirror(double max) { + this.max = max; + } + + public double getMirrored(double v) { + if (v < 0 || v > max) { + throw new IllegalArgumentException(); + } + //return v; + return max - v; + } + + public Point2D getMirrored(Point2D pt) { + //return pt; + return new Point2D.Double(pt.getX(), max - pt.getY()); + } + + public DotPath getMirrored(DotPath path) { + DotPath result = new DotPath(); + for (CubicCurve2D.Double bez : path.getBeziers()) { + result = result.addCurve(getMirrored(bez.getP1()), getMirrored(bez.getCtrlP1()), + getMirrored(bez.getCtrlP2()), getMirrored(bez.getP2())); + } + return result; + } + + public UTranslate getMirrored(UTranslate tr) { + return new UTranslate(tr.getDx(), max - tr.getDy()); + //return tr; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/CommandAddLevel.java plantuml-8039/src/net/sourceforge/plantuml/jungle/CommandAddLevel.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/CommandAddLevel.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/CommandAddLevel.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/CommandEmpty.java plantuml-8039/src/net/sourceforge/plantuml/jungle/CommandEmpty.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/CommandEmpty.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/CommandEmpty.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/GNode.java plantuml-8039/src/net/sourceforge/plantuml/jungle/GNode.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/GNode.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/GNode.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/GNodeUtils.java plantuml-8039/src/net/sourceforge/plantuml/jungle/GNodeUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/GNodeUtils.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/GNodeUtils.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/GTileGeometry.java plantuml-8039/src/net/sourceforge/plantuml/jungle/GTileGeometry.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/GTileGeometry.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/GTileGeometry.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/GTile.java plantuml-8039/src/net/sourceforge/plantuml/jungle/GTile.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/GTile.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/GTile.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/GTileLeftRight.java plantuml-8039/src/net/sourceforge/plantuml/jungle/GTileLeftRight.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/GTileLeftRight.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/GTileLeftRight.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,6 +38,7 @@ import java.util.Arrays; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.UChangeColor; @@ -45,7 +46,7 @@ import net.sourceforge.plantuml.ugraphic.UPath; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class GTileLeftRight implements GTile { +public class GTileLeftRight extends AbstractTextBlock implements GTile { private final GTile left; private final GTile right; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/GTileNode.java plantuml-8039/src/net/sourceforge/plantuml/jungle/GTileNode.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/GTileNode.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/GTileNode.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,11 +39,12 @@ import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.SkinParam; -import net.sourceforge.plantuml.UmlDiagramType; +import net.sourceforge.plantuml.creole.CreoleMode; import net.sourceforge.plantuml.creole.CreoleParser; import net.sourceforge.plantuml.creole.Sheet; import net.sourceforge.plantuml.creole.SheetBlock1; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; @@ -57,7 +58,7 @@ import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; -public class GTileNode implements GTile { +public class GTileNode extends AbstractTextBlock implements GTile { private final TextBlock tb; @@ -66,18 +67,19 @@ final SheetBlock1 sheetBlock1 = getTextBlock(display); final SymbolContext symbolContext = new SymbolContext(HtmlColorUtils.MY_YELLOW, HtmlColorUtils.BLACK); - tb = USymbol.RECTANGLE.asSmall(sheetBlock1, TextBlockUtils.empty(0, 0), symbolContext); + tb = USymbol.RECTANGLE.asSmall(null, sheetBlock1, TextBlockUtils.empty(0, 0), symbolContext); } public static SheetBlock1 getTextBlock(final Display display) { final Rose rose = new Rose(); final SkinParam skinParam = new SkinParam(); final HtmlColor fontColor = rose.getFontColor(skinParam, FontParam.NOTE); - final UFont fontNote = skinParam.getFont(FontParam.NOTE, null, false); + final UFont fontNote = skinParam.getFont(null, false, FontParam.NOTE); - final FontConfiguration fc = new FontConfiguration(fontNote, fontColor, skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()); + final FontConfiguration fc = new FontConfiguration(skinParam, FontParam.NOTE, null); - final Sheet sheet9 = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, false).createSheet(display); + final Sheet sheet9 = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL) + .createSheet(display); final SheetBlock1 sheetBlock1 = new SheetBlock1(sheet9, 0, 0); return sheetBlock1; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/GTileOneLevelFactory.java plantuml-8039/src/net/sourceforge/plantuml/jungle/GTileOneLevelFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/GTileOneLevelFactory.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/GTileOneLevelFactory.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/GTileStack.java plantuml-8039/src/net/sourceforge/plantuml/jungle/GTileStack.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/GTileStack.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/GTileStack.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,11 +38,12 @@ import java.util.ArrayList; import java.util.List; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class GTileStack implements GTile { +public class GTileStack extends AbstractTextBlock implements GTile { private final List tiles; private final double space; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/Needle.java plantuml-8039/src/net/sourceforge/plantuml/jungle/Needle.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/Needle.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/Needle.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/PSystemTreeFactory.java plantuml-8039/src/net/sourceforge/plantuml/jungle/PSystemTreeFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/PSystemTreeFactory.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/PSystemTreeFactory.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/PSystemTree.java plantuml-8039/src/net/sourceforge/plantuml/jungle/PSystemTree.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/PSystemTree.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/PSystemTree.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -72,11 +72,11 @@ final LimitFinder limitFinder = new LimitFinder(TextBlockUtils.getDummyStringBounder(), true); tmp.drawU(limitFinder); final double minY = limitFinder.getMinY(); - builder.addUDrawable(UDrawableUtils.move(tmp, 0, -minY)); + builder.setUDrawable(UDrawableUtils.move(tmp, 0, -minY)); } else { - builder.addUDrawable(new GTileOneLevelFactory().createGTile(root)); + builder.setUDrawable(new GTileOneLevelFactory().createGTile(root)); } - return builder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + return builder.writeImageTOBEMOVED(fileFormat, os); } public CommandExecutionResult addParagraph(int level, String label) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/jungle/Rendering.java plantuml-8039/src/net/sourceforge/plantuml/jungle/Rendering.java --- plantuml-8024/src/net/sourceforge/plantuml/jungle/Rendering.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/jungle/Rendering.java 2016-04-22 16:26:27.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/LineConfigurable.java plantuml-8039/src/net/sourceforge/plantuml/LineConfigurable.java --- plantuml-8024/src/net/sourceforge/plantuml/LineConfigurable.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/LineConfigurable.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,16 +35,18 @@ package net.sourceforge.plantuml; import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.ugraphic.UStroke; public interface LineConfigurable { - public HtmlColor getSpecificLineColor(); + public Colors getColors(ISkinParam skinParam); + + public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color); - public void setSpecificLineColor(HtmlColor specificLinecolor); +// public void setSpecificLineStroke(UStroke specificLineStroke); - public UStroke getSpecificLineStroke(); - public void setSpecificLineStroke(UStroke specificLineStoke); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/LineLocationImpl.java plantuml-8039/src/net/sourceforge/plantuml/LineLocationImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/LineLocationImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/LineLocationImpl.java 2016-04-22 16:26:28.000000000 +0000 @@ -0,0 +1,84 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +public class LineLocationImpl implements LineLocation { + + private final String desc; + private final int position; + private final LineLocation parent; + + @Override + public String toString() { + if (desc == null) { + return "[?] : " + position; + } + return desc + " : " + position; + } + + public LineLocationImpl(String desc, LineLocation parent) { + this(desc, parent, -1); + } + + private LineLocationImpl(String desc, LineLocation parent, int position) { + this.parent = parent; + this.desc = desc; + this.position = position; + } + + public LineLocationImpl oneLineRead() { + return new LineLocationImpl(desc, parent, position + 1); + } + + public static LineLocation fromLine(CharSequence cs) { + if (cs instanceof CharSequence2) { + return ((CharSequence2) cs).getLocation(); + } + return null; + } + + public int getPosition() { + return position; + } + + public String getDescription() { + return desc; + } + + public LineLocation getParent() { + return parent; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/LineLocation.java plantuml-8039/src/net/sourceforge/plantuml/LineLocation.java --- plantuml-8024/src/net/sourceforge/plantuml/LineLocation.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/LineLocation.java 2016-04-22 16:26:28.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +/** + * Indicates the location of a line of code within a resource. + * The resource maybe a local file or a remote URL. + * + */ +public interface LineLocation { + + /** + * Position of the line, starting at 0. + */ + public int getPosition(); + + /** + * A description of the ressource. + * If the ressource is a file, this is the complete path of the file. + */ + public String getDescription(); + + /** + * Get the parent of this location. + * If this resource has been included by a !include or !includeurl directive, + * this return the location of the !include line. + */ + public LineLocation getParent(); + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/LineParam.java plantuml-8039/src/net/sourceforge/plantuml/LineParam.java --- plantuml-8024/src/net/sourceforge/plantuml/LineParam.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/LineParam.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,7 +44,9 @@ sequenceLifeLineBorder, sequenceParticipantBorder, noteBorder, sequenceGroupBorder, sequenceReferenceBorder, classBorder, objectBorder, - packageBorder; + partitionBorder, + packageBorder, + swimlaneBorder; // sequenceBoxBorder(0.1); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/Log.java plantuml-8039/src/net/sourceforge/plantuml/Log.java --- plantuml-8024/src/net/sourceforge/plantuml/Log.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/Log.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/mda/MDADiagramImpl.java plantuml-8039/src/net/sourceforge/plantuml/mda/MDADiagramImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/mda/MDADiagramImpl.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/mda/MDADiagramImpl.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/mda/MDAEntityImpl.java plantuml-8039/src/net/sourceforge/plantuml/mda/MDAEntityImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/mda/MDAEntityImpl.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/mda/MDAEntityImpl.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/mda/MDAPackageImpl.java plantuml-8039/src/net/sourceforge/plantuml/mda/MDAPackageImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/mda/MDAPackageImpl.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/mda/MDAPackageImpl.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/mjpeg/MJPEGGenerator.java plantuml-8039/src/net/sourceforge/plantuml/mjpeg/MJPEGGenerator.java --- plantuml-8024/src/net/sourceforge/plantuml/mjpeg/MJPEGGenerator.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/mjpeg/MJPEGGenerator.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/NewpagedDiagram.java plantuml-8039/src/net/sourceforge/plantuml/NewpagedDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/NewpagedDiagram.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/NewpagedDiagram.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,8 +37,10 @@ import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.Command; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.core.Diagram; @@ -66,7 +68,11 @@ return super.toString() + " SIZE=" + diagrams.size() + " " + diagrams; } - public CommandExecutionResult executeCommand(Command cmd, List lines) { + public Diagram getLastDiagram() { + return diagrams.get(diagrams.size() - 1); + } + + public CommandExecutionResult executeCommand(Command cmd, BlocLines lines) { final int nb = diagrams.size(); final CommandExecutionResult tmp = cmd.execute(diagrams.get(nb - 1), lines); if (tmp.getNewDiagram() instanceof NewpagedDiagram) { @@ -119,7 +125,12 @@ if (sb.length() > 0) { sb.append(" "); } - sb.append(d.getWarningOrError()); + if (d.getWarningOrError() != null) { + sb.append(d.getWarningOrError()); + } + } + if (sb.length() == 0) { + return null; } return sb.toString(); } @@ -132,4 +143,8 @@ } } + public final List getDiagrams() { + return Collections.unmodifiableList(diagrams); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/NullOutputStream.java plantuml-8039/src/net/sourceforge/plantuml/NullOutputStream.java --- plantuml-8024/src/net/sourceforge/plantuml/NullOutputStream.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/NullOutputStream.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/AbstractClassOrObjectDiagram.java plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/AbstractClassOrObjectDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/AbstractClassOrObjectDiagram.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/AbstractClassOrObjectDiagram.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -156,17 +156,19 @@ void createNew(int mode, LinkType linkType, Display label) { existingLink = foundLink(entity1, entity2); if (existingLink == null) { - existingLink = new Link(entity1, entity2, new LinkType(LinkDecor.NONE, LinkDecor.NONE), null, - 2); + existingLink = new Link(entity1, entity2, new LinkType(LinkDecor.NONE, LinkDecor.NONE), Display.NULL, 2); } else { removeLink(existingLink); } - entity1ToPoint = new Link(entity1, point, existingLink.getType().getPart2(), existingLink.getLabel(), + final IEntity entity1real = existingLink.isInverted() ? existingLink.getEntity2() : existingLink.getEntity1(); + final IEntity entity2real = existingLink.isInverted() ? existingLink.getEntity1() : existingLink.getEntity2(); + + entity1ToPoint = new Link(entity1real, point, existingLink.getType().getPart2(), existingLink.getLabel(), existingLink.getLength(), existingLink.getQualifier1(), null, existingLink.getLabeldistance(), existingLink.getLabelangle()); entity1ToPoint.setLinkArrow(existingLink.getLinkArrow()); - pointToEntity2 = new Link(point, entity2, existingLink.getType().getPart1(), null, + pointToEntity2 = new Link(point, entity2real, existingLink.getType().getPart1(), Display.NULL, existingLink.getLength(), null, existingLink.getQualifier2(), existingLink.getLabeldistance(), existingLink.getLabelangle()); addLink(entity1ToPoint); @@ -191,15 +193,14 @@ void createInSecond(LinkType linkType, Display label) { existingLink = foundLink(entity1, entity2); if (existingLink == null) { - existingLink = new Link(entity1, entity2, new LinkType(LinkDecor.NONE, LinkDecor.NONE), null, - 2); + existingLink = new Link(entity1, entity2, new LinkType(LinkDecor.NONE, LinkDecor.NONE), Display.NULL, 2); } else { removeLink(existingLink); } entity1ToPoint = new Link(entity1, point, existingLink.getType().getPart2(), existingLink.getLabel(), 2, existingLink.getQualifier1(), null, existingLink.getLabeldistance(), existingLink.getLabelangle()); - pointToEntity2 = new Link(point, entity2, existingLink.getType().getPart1(), null, 2, null, + pointToEntity2 = new Link(point, entity2, existingLink.getType().getPart1(), Display.NULL, 2, null, existingLink.getQualifier2(), existingLink.getLabeldistance(), existingLink.getLabelangle()); // entity1ToPoint = new Link(entity1, point, existingLink.getType(), // null, 2); @@ -215,7 +216,8 @@ pointToAssocied = new Link(point, associed, linkType, label, 1); addLink(pointToAssocied); - final Link lnode = new Link(other.point, this.point, new LinkType(LinkDecor.NONE, LinkDecor.NONE), null, 1); + final Link lnode = new Link(other.point, this.point, new LinkType(LinkDecor.NONE, LinkDecor.NONE), + Display.NULL, 1); lnode.setInvis(true); addLink(lnode); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/command/CommandAddData.java plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/command/CommandAddData.java --- plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/command/CommandAddData.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/command/CommandAddData.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,24 +40,24 @@ import net.sourceforge.plantuml.command.SingleLineCommand; import net.sourceforge.plantuml.cucadiagram.Code; import net.sourceforge.plantuml.cucadiagram.IEntity; -import net.sourceforge.plantuml.objectdiagram.ObjectDiagram; +import net.sourceforge.plantuml.objectdiagram.AbstractClassOrObjectDiagram; import net.sourceforge.plantuml.skin.VisibilityModifier; -public class CommandAddData extends SingleLineCommand { +public class CommandAddData extends SingleLineCommand { public CommandAddData() { super("(?i)^([\\p{L}0-9_.]+)[%s]*:[%s]*(.*)$"); } @Override - protected CommandExecutionResult executeArg(ObjectDiagram diagram, List arg) { + protected CommandExecutionResult executeArg(AbstractClassOrObjectDiagram diagram, List arg) { final IEntity entity = diagram.getOrCreateLeaf(Code.of(arg.get(0)), null, null); final String field = arg.get(1); if (field.length() > 0 && VisibilityModifier.isVisibilityCharacter(field.charAt(0))) { diagram.setVisibilityModifierPresent(true); } - entity.addFieldOrMethod(field); + entity.getBodier().addFieldOrMethod(field); return CommandExecutionResult.ok(); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/command/CommandCreateEntityObject.java plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/command/CommandCreateEntityObject.java --- plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/command/CommandCreateEntityObject.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/command/CommandCreateEntityObject.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -48,10 +48,12 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.LeafType; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.objectdiagram.AbstractClassOrObjectDiagram; import net.sourceforge.plantuml.objectdiagram.ObjectDiagram; -public class CommandCreateEntityObject extends SingleLineCommand2 { +public class CommandCreateEntityObject extends SingleLineCommand2 { public CommandCreateEntityObject() { super(getRegexConcat()); @@ -66,12 +68,12 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("$")); } @Override - protected CommandExecutionResult executeArg(ObjectDiagram diagram, RegexResult arg) { + protected CommandExecutionResult executeArg(AbstractClassOrObjectDiagram diagram, RegexResult arg) { final Code code = Code.of(arg.get("NAME", 1)); final String display = arg.get("NAME", 0); final String stereotype = arg.get("STEREO", 0); @@ -81,7 +83,7 @@ final IEntity entity = diagram.createLeaf(code, Display.getWithNewlines(display), LeafType.OBJECT, null); if (stereotype != null) { entity.setStereotype(new Stereotype(stereotype, diagram.getSkinParam().getCircledCharacterRadius(), diagram - .getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam() + .getSkinParam().getFont(null, false, FontParam.CIRCLED_CHARACTER), diagram.getSkinParam() .getIHtmlColorSet())); } final String urlString = arg.get("URL", 0); @@ -90,7 +92,7 @@ final Url url = urlBuilder.getUrl(urlString); entity.addUrl(url); } - entity.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); + entity.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/command/CommandCreateEntityObjectMultilines.java plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/command/CommandCreateEntityObjectMultilines.java --- plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/command/CommandCreateEntityObjectMultilines.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/command/CommandCreateEntityObjectMultilines.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,10 +34,10 @@ */ package net.sourceforge.plantuml.objectdiagram.command; -import java.util.List; - import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UrlBuilder; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines2; import net.sourceforge.plantuml.command.MultilinesStrategy; @@ -49,12 +49,13 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.LeafType; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.objectdiagram.AbstractClassOrObjectDiagram; import net.sourceforge.plantuml.objectdiagram.ObjectDiagram; import net.sourceforge.plantuml.skin.VisibilityModifier; -import net.sourceforge.plantuml.StringUtils; -public class CommandCreateEntityObjectMultilines extends CommandMultilines2 { +public class CommandCreateEntityObjectMultilines extends CommandMultilines2 { public CommandCreateEntityObjectMultilines() { super(getRegexConcat(), MultilinesStrategy.REMOVE_STARTING_QUOTE); @@ -69,7 +70,7 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("[%s]*\\{[%s]*$")); } @@ -78,37 +79,38 @@ return "(?i)^[%s]*\\}[%s]*$"; } - public CommandExecutionResult executeNow(ObjectDiagram diagram, List lines) { - StringUtils.trim(lines, true); - final RegexResult line0 = getStartingPattern().matcher(lines.get(0).trim()); + public CommandExecutionResult executeNow(AbstractClassOrObjectDiagram diagram, BlocLines lines) { + lines = lines.trim(true); + final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499())); final IEntity entity = executeArg0(diagram, line0); if (entity == null) { return CommandExecutionResult.error("No such entity"); } - for (String s : lines.subList(1, lines.size() - 1)) { + lines = lines.subExtract(1, 1); + for (CharSequence s : lines) { assert s.length() > 0; if (VisibilityModifier.isVisibilityCharacter(s.charAt(0))) { diagram.setVisibilityModifierPresent(true); } - entity.addFieldOrMethod(s); + entity.getBodier().addFieldOrMethod(s.toString()); } return CommandExecutionResult.ok(); } - private IEntity executeArg0(ObjectDiagram diagram, RegexResult line0) { + private IEntity executeArg0(AbstractClassOrObjectDiagram diagram, RegexResult line0) { final Code code = Code.of(line0.get("NAME", 1)); final String display = line0.get("NAME", 0); final String stereotype = line0.get("STEREO", 0); if (diagram.leafExist(code)) { - return diagram.getOrCreateLeaf(code, null, null); + return diagram.getOrCreateLeaf(code, LeafType.OBJECT, null); } final IEntity entity = diagram.createLeaf(code, Display.getWithNewlines(display), LeafType.OBJECT, null); if (stereotype != null) { entity.setStereotype(new Stereotype(stereotype, diagram.getSkinParam().getCircledCharacterRadius(), diagram - .getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam() + .getSkinParam().getFont(null, false, FontParam.CIRCLED_CHARACTER), diagram.getSkinParam() .getIHtmlColorSet())); } - entity.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0))); + entity.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0))); return entity; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/ObjectDiagramFactory.java plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/ObjectDiagramFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/ObjectDiagramFactory.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/ObjectDiagramFactory.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -86,13 +86,14 @@ cmds.add(new CommandUrl()); - cmds.add(factoryNoteCommand.createMultiLine()); - cmds.add(factoryNoteOnEntityCommand.createMultiLine()); + cmds.add(factoryNoteCommand.createMultiLine(false)); + cmds.add(factoryNoteOnEntityCommand.createMultiLine(true)); + cmds.add(factoryNoteOnEntityCommand.createMultiLine(false)); cmds.add(new CommandCreateEntityObjectMultilines()); final FactoryNoteOnLinkCommand factoryNoteOnLinkCommand = new FactoryNoteOnLinkCommand(); cmds.add(factoryNoteOnLinkCommand.createSingleLine()); - cmds.add(factoryNoteOnLinkCommand.createMultiLine()); + cmds.add(factoryNoteOnLinkCommand.createMultiLine(false)); // addCommand(new CommandNoopClass()); return cmds; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/ObjectDiagram.java plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/ObjectDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/objectdiagram/ObjectDiagram.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/objectdiagram/ObjectDiagram.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/data/DummyIcon.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/data/DummyIcon.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/data/DummyIcon.java 2015-05-03 15:06:18.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/data/DummyIcon.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/Movement.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/Movement.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/Movement.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/Movement.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/OpenIcon.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/OpenIcon.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/OpenIcon.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/OpenIcon.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,6 +45,7 @@ import java.util.List; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; @@ -131,7 +132,7 @@ } public TextBlock asTextBlock(final HtmlColor color, final double factor) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { svgPath.drawMe(ug.apply(new UChangeColor(color)), factor); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/PSystemListOpenIconicFactory.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/PSystemListOpenIconicFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/PSystemListOpenIconicFactory.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/PSystemListOpenIconicFactory.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/PSystemListOpenIconic.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/PSystemListOpenIconic.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/PSystemListOpenIconic.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/PSystemListOpenIconic.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -62,8 +62,8 @@ final GraphicStrings result = getGraphicStrings(); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } private GraphicStrings getGraphicStrings() throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/PSystemOpenIconicFactory.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/PSystemOpenIconicFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/PSystemOpenIconicFactory.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/PSystemOpenIconicFactory.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/PSystemOpenIconic.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/PSystemOpenIconic.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/PSystemOpenIconic.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/PSystemOpenIconic.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -62,8 +62,8 @@ final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, null, null, null, 5, 5, null, false); - imageBuilder.addUDrawable(icon.asTextBlock(HtmlColorUtils.BLACK, factor)); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(icon.asTextBlock(HtmlColorUtils.BLACK, factor)); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); // UGraphic2 ug = fileFormat.createUGraphic(dim); // ug = (UGraphic2) ug.apply(new UTranslate(10, 10)); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/StringDecipher.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/StringDecipher.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/StringDecipher.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/StringDecipher.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/SvgCommand.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/SvgCommand.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/SvgCommand.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/SvgCommand.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/SvgCommandLetter.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/SvgCommandLetter.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/SvgCommandLetter.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/SvgCommandLetter.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/SvgCommandNumber.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/SvgCommandNumber.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/SvgCommandNumber.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/SvgCommandNumber.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/SvgPath.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/SvgPath.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/SvgPath.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/SvgPath.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/openiconic/SvgPosition.java plantuml-8039/src/net/sourceforge/plantuml/openiconic/SvgPosition.java --- plantuml-8024/src/net/sourceforge/plantuml/openiconic/SvgPosition.java 2015-05-03 15:06:19.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/openiconic/SvgPosition.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/OptionFlags.java plantuml-8039/src/net/sourceforge/plantuml/OptionFlags.java --- plantuml-8024/src/net/sourceforge/plantuml/OptionFlags.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/OptionFlags.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -54,10 +54,15 @@ static public final boolean USE_HECTOR = false; static public boolean ADD_NICE_FOR_DOT = false; static public final boolean STRICT_SELFMESSAGE_POSITION = true; + + // static public final boolean USE_IF_VERTICAL = true; static public final boolean FORCE_TEOZ = false; static public final boolean USE_INTERFACE_EYE1 = false; static public final boolean USE_INTERFACE_EYE2 = false; static public final boolean SWI2 = false; + // static public final boolean USE_COMPOUND = false; + static public final boolean OMEGA_CROSSING = false; + // static public final boolean USE_JDOT = false; public void reset() { reset(false); @@ -69,7 +74,7 @@ metadata = false; word = false; systemExit = exit; - dotExecutable = null; + GraphvizUtils.setDotExecutable(null); gui = false; quiet = false; checkDotError = false; @@ -91,7 +96,6 @@ private boolean metadata; private boolean word; private boolean systemExit; - private String dotExecutable; private boolean gui; private boolean quiet; private boolean checkDotError; @@ -150,14 +154,6 @@ this.systemExit = systemExit; } - public final String getDotExecutable() { - return dotExecutable; - } - - public final void setDotExecutable(String dotExecutable) { - this.dotExecutable = dotExecutable; - } - public final boolean isGui() { return gui; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/Option.java plantuml-8039/src/net/sourceforge/plantuml/Option.java --- plantuml-8024/src/net/sourceforge/plantuml/Option.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/Option.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -48,6 +48,7 @@ import java.util.regex.Pattern; import net.sourceforge.plantuml.command.regex.MyPattern; +import net.sourceforge.plantuml.cucadiagram.dot.GraphvizUtils; import net.sourceforge.plantuml.preproc.Defines; public class Option { @@ -96,6 +97,8 @@ setFileFormat(FileFormat.SVG); } else if (s.equalsIgnoreCase("-thtml") || s.equalsIgnoreCase("-html")) { setFileFormat(FileFormat.HTML); + } else if (s.equalsIgnoreCase("-tscxml") || s.equalsIgnoreCase("-scxml")) { + setFileFormat(FileFormat.SCXML); } else if (s.equalsIgnoreCase("-txmi") || s.equalsIgnoreCase("-xmi")) { setFileFormat(FileFormat.XMI_STANDARD); } else if (s.equalsIgnoreCase("-txmi:argo") || s.equalsIgnoreCase("-xmi:argo")) { @@ -116,6 +119,8 @@ setFileFormat(FileFormat.VDX); } else if (s.equalsIgnoreCase("-latex") || s.equalsIgnoreCase("-tlatex")) { setFileFormat(FileFormat.LATEX); + } else if (s.equalsIgnoreCase("-latex:nopreamble") || s.equalsIgnoreCase("-tlatex:nopreamble")) { + setFileFormat(FileFormat.LATEX_NO_PREAMBLE); } else if (s.equalsIgnoreCase("-base64") || s.equalsIgnoreCase("-tbase64")) { setFileFormat(FileFormat.BASE64); } else if (s.equalsIgnoreCase("-pdf") || s.equalsIgnoreCase("-tpdf")) { @@ -139,8 +144,7 @@ if (i == arg.length) { continue; } - OptionFlags.getInstance().setDotExecutable( - StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(arg[i])); + GraphvizUtils.setDotExecutable(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(arg[i])); } else if (s.equalsIgnoreCase("-charset")) { i++; if (i == arg.length) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/OptionPrint.java plantuml-8039/src/net/sourceforge/plantuml/OptionPrint.java --- plantuml-8024/src/net/sourceforge/plantuml/OptionPrint.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/OptionPrint.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -76,9 +76,12 @@ System.out.println(" -tpdf\t\tTo generate images using PDF format"); System.out.println(" -tvdx\t\tTo generate images using VDX format"); System.out.println(" -txmi\t\tTo generate XMI file for class diagram"); - System.out.println(" -thtml\t\tTo generate HTML files for class diagram"); + System.out.println(" -tscxml\t\tTo generate SCXML file for state diagram"); + System.out.println(" -thtml\t\tTo generate HTML file for class diagram"); System.out.println(" -ttxt\t\tTo generate images with ASCII art"); System.out.println(" -tutxt\t\tTo generate images with ASCII art using Unicode characters"); + System.out.println(" -tlatex\t\tTo generate images using LaTeX/Tikz format"); + System.out.println(" -tlatex:nopreamble\tTo generate images using LaTeX/Tikz format without preamble"); System.out.println(" -o[utput] \"dir\"\tTo generate images in the specified directory"); System.out.println(" -DVAR1=value\tTo set a preprocessing variable as if '!define VAR1 value' were used"); System.out.println(" -Sparam1=value\tTo set a skin parameter as if 'skinparam param1 value' were used"); @@ -91,8 +94,6 @@ System.out.println(" -checkversion\tTo check if a newer version is available for download"); System.out.println(" -v[erbose]\t\tTo have log information"); System.out.println(" -quiet\t\tTo NOT print error message into the console"); - // Log.println(" -forcegd\t\tTo force dot to use GD PNG library"); - // Log.println(" -forcecairo\t\tTo force dot to use Cairo PNG library"); System.out.println(" -keepfiles\t\tTo NOT delete temporary files after process"); System.out.println(" -h[elp]\t\tTo display this help message"); System.out.println(" -testdot\t\tTo test the installation of graphviz"); @@ -156,11 +157,11 @@ final int lastversion = PSystemVersion.extractDownloadableVersion(null, null); if (lastversion == -1) { System.out.println("Error"); - System.out.println("Cannot connect to http://plantuml.sourceforge.net/"); + System.out.println("Cannot connect to http://plantuml.com/"); System.out.println("Maybe you should set your proxy ?"); } else if (lastversion == 0) { System.out.println("Error"); - System.out.println("Cannot retrieve last version from http://plantuml.sourceforge.net/"); + System.out.println("Cannot retrieve last version from http://plantuml.com/"); } else { System.out.println("Last available version for download : " + lastversion); System.out.println(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/oregon/BasicGame.java plantuml-8039/src/net/sourceforge/plantuml/oregon/BasicGame.java --- plantuml-8024/src/net/sourceforge/plantuml/oregon/BasicGame.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/oregon/BasicGame.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/oregon/Keyboard.java plantuml-8039/src/net/sourceforge/plantuml/oregon/Keyboard.java --- plantuml-8024/src/net/sourceforge/plantuml/oregon/Keyboard.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/oregon/Keyboard.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/oregon/KeyboardList.java plantuml-8039/src/net/sourceforge/plantuml/oregon/KeyboardList.java --- plantuml-8024/src/net/sourceforge/plantuml/oregon/KeyboardList.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/oregon/KeyboardList.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/oregon/MagicTable.java plantuml-8039/src/net/sourceforge/plantuml/oregon/MagicTable.java --- plantuml-8024/src/net/sourceforge/plantuml/oregon/MagicTable.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/oregon/MagicTable.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/oregon/NoInputException.java plantuml-8039/src/net/sourceforge/plantuml/oregon/NoInputException.java --- plantuml-8024/src/net/sourceforge/plantuml/oregon/NoInputException.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/oregon/NoInputException.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/oregon/OregonBasicGame.java plantuml-8039/src/net/sourceforge/plantuml/oregon/OregonBasicGame.java --- plantuml-8024/src/net/sourceforge/plantuml/oregon/OregonBasicGame.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/oregon/OregonBasicGame.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/oregon/PSystemOregonFactory.java plantuml-8039/src/net/sourceforge/plantuml/oregon/PSystemOregonFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/oregon/PSystemOregonFactory.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/oregon/PSystemOregonFactory.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/oregon/PSystemOregon.java plantuml-8039/src/net/sourceforge/plantuml/oregon/PSystemOregon.java --- plantuml-8024/src/net/sourceforge/plantuml/oregon/PSystemOregon.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/oregon/PSystemOregon.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -101,8 +101,8 @@ final GraphicStrings result = getGraphicStrings(); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } private GraphicStrings getGraphicStrings() throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/oregon/Screen.java plantuml-8039/src/net/sourceforge/plantuml/oregon/Screen.java --- plantuml-8024/src/net/sourceforge/plantuml/oregon/Screen.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/oregon/Screen.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/oregon/SecureCoder.java plantuml-8039/src/net/sourceforge/plantuml/oregon/SecureCoder.java --- plantuml-8024/src/net/sourceforge/plantuml/oregon/SecureCoder.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/oregon/SecureCoder.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/oregon/SmartKeyboard.java plantuml-8039/src/net/sourceforge/plantuml/oregon/SmartKeyboard.java --- plantuml-8024/src/net/sourceforge/plantuml/oregon/SmartKeyboard.java 2015-05-03 15:06:20.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/oregon/SmartKeyboard.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/pdf/PdfConverter.java plantuml-8039/src/net/sourceforge/plantuml/pdf/PdfConverter.java --- plantuml-8024/src/net/sourceforge/plantuml/pdf/PdfConverter.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/pdf/PdfConverter.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/png/Metadata.java plantuml-8039/src/net/sourceforge/plantuml/png/Metadata.java --- plantuml-8024/src/net/sourceforge/plantuml/png/Metadata.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/png/Metadata.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/png/MetadataTag.java plantuml-8039/src/net/sourceforge/plantuml/png/MetadataTag.java --- plantuml-8024/src/net/sourceforge/plantuml/png/MetadataTag.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/png/MetadataTag.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,7 @@ import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.util.Iterator; import javax.imageio.ImageIO; @@ -48,16 +49,21 @@ public class MetadataTag { - private final File f; + private final Object source; private final String tag; - public MetadataTag(File f, String tag) { - this.f = f; + public MetadataTag(File file, String tag) { + this.source = file; + this.tag = tag; + } + + public MetadataTag(InputStream is, String tag) { + this.source = is; this.tag = tag; } public String getData() throws IOException { - final ImageInputStream iis = ImageIO.createImageInputStream(f); + final ImageInputStream iis = ImageIO.createImageInputStream(source); final Iterator readers = ImageIO.getImageReaders(iis); if (readers.hasNext()) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/png/PngFlashcoder.java plantuml-8039/src/net/sourceforge/plantuml/png/PngFlashcoder.java --- plantuml-8024/src/net/sourceforge/plantuml/png/PngFlashcoder.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/png/PngFlashcoder.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/png/PngIO.java plantuml-8039/src/net/sourceforge/plantuml/png/PngIO.java --- plantuml-8024/src/net/sourceforge/plantuml/png/PngIO.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/png/PngIO.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -47,7 +47,7 @@ public class PngIO { - private static final String copyleft = "Generated by http://plantuml.sourceforge.net"; + private static final String copyleft = "Generated by http://plantuml.com"; public static void write(RenderedImage image, File file, int dpi) throws IOException { write(image, file, null, dpi); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/png/PngIOMetadata.java plantuml-8039/src/net/sourceforge/plantuml/png/PngIOMetadata.java --- plantuml-8024/src/net/sourceforge/plantuml/png/PngIOMetadata.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/png/PngIOMetadata.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,6 +42,7 @@ import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageWriter; +import javax.imageio.stream.ImageOutputStream; import net.sourceforge.plantuml.Log; @@ -49,9 +50,10 @@ public class PngIOMetadata { - private static final String copyleft = "Generated by http://plantuml.sourceforge.net"; + private static final String copyleft = "Generated by http://plantuml.com"; - public static void writeWithMetadata(RenderedImage image, OutputStream os, String metadata, int dpi, String debugData) throws IOException { + public static void writeWithMetadata(RenderedImage image, OutputStream os, String metadata, int dpi, + String debugData) throws IOException { // Create & populate metadata final PNGMetadata pngMetadata = new PNGMetadata(); @@ -67,19 +69,13 @@ pngMetadata.zTXt_keyword.add("plantuml"); pngMetadata.zTXt_compressionMethod.add(new Integer(0)); pngMetadata.zTXt_text.add(metadata); - // Log.println("metadata=" + metadata); - // if (metadata.equals("Generated by - // http://plantuml.sourceforge.net")) { - // throw new IllegalArgumentException(); - // } } - + if (debugData != null) { pngMetadata.tEXt_keyword.add("debug"); pngMetadata.tEXt_text.add(debugData); } - pngMetadata.tEXt_keyword.add("copyleft"); pngMetadata.tEXt_text.add(copyleft); @@ -92,16 +88,26 @@ final ImageWriter imagewriter = getImageWriter(); Log.debug("PngIOMetadata imagewriter=" + imagewriter); + // See http://plantuml.sourceforge.net/qa/?qa=4367/sometimes-missing-response-headers-for-broken-png-images + // Code provided by Michael Griffel synchronized (imagewriter) { - imagewriter.setOutput(ImageIO.createImageOutputStream(os)); - imagewriter.write(null, iioImage, null); - os.flush(); - imagewriter.reset(); - imagewriter.dispose(); + final ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream(os); + imagewriter.setOutput(imageOutputStream); + try { + imagewriter.write(null /* default */, iioImage, null /* use default ImageWriteParam */); + } finally { + //os.flush(); + // Log.debug("PngIOMetadata finally 1"); + imageOutputStream.flush(); + // Log.debug("PngIOMetadata finally 2"); + imageOutputStream.close(); + // Log.debug("PngIOMetadata finally 3"); + imagewriter.reset(); + // Log.debug("PngIOMetadata finally 4"); + imagewriter.dispose(); + // Log.debug("PngIOMetadata finally 5"); + } } -// Log.debug("PngIOMetadata before flush"); -// os.flush(); -// Log.debug("PngIOMetadata after flush"); } private static ImageWriter getImageWriter() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/png/PngRotation.java plantuml-8039/src/net/sourceforge/plantuml/png/PngRotation.java --- plantuml-8024/src/net/sourceforge/plantuml/png/PngRotation.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/png/PngRotation.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/png/PngSegment.java plantuml-8039/src/net/sourceforge/plantuml/png/PngSegment.java --- plantuml-8024/src/net/sourceforge/plantuml/png/PngSegment.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/png/PngSegment.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/png/PngSizer.java plantuml-8039/src/net/sourceforge/plantuml/png/PngSizer.java --- plantuml-8024/src/net/sourceforge/plantuml/png/PngSizer.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/png/PngSizer.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/png/PngSplitter.java plantuml-8039/src/net/sourceforge/plantuml/png/PngSplitter.java --- plantuml-8024/src/net/sourceforge/plantuml/png/PngSplitter.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/png/PngSplitter.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/png/PngTitler.java plantuml-8039/src/net/sourceforge/plantuml/png/PngTitler.java --- plantuml-8024/src/net/sourceforge/plantuml/png/PngTitler.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/png/PngTitler.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,7 +44,6 @@ import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.UFont; public class PngTitler { @@ -78,12 +77,12 @@ } public TextBlock getTextBlock() { - if (text == null || text.size() == 0) { + if (Display.isNull(text) || text.size() == 0) { return null; } final UFont normalFont = new UFont(fontFamily, Font.PLAIN, fontSize); - return TextBlockUtils.create(text, new FontConfiguration(normalFont, textColor, hyperlinkColor, useUnderlineForHyperlink), horizontalAlignment, - new SpriteContainerEmpty()); + return text.create(new FontConfiguration(normalFont, textColor, hyperlinkColor, useUnderlineForHyperlink), + horizontalAlignment, new SpriteContainerEmpty()); } private double getOffsetX(double imWidth, StringBounder stringBounder) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/AbstractEntityImage2.java plantuml-8039/src/net/sourceforge/plantuml/posimo/AbstractEntityImage2.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/AbstractEntityImage2.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/AbstractEntityImage2.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -67,11 +67,11 @@ } protected UFont getFont(FontParam fontParam) { - return skinParam.getFont(fontParam, null, false); + return skinParam.getFont(null, false, fontParam); } protected HtmlColor getFontColor(FontParam fontParam) { - return skinParam.getFontHtmlColor(fontParam, null); + return skinParam.getFontHtmlColor(null, fontParam); } protected final HtmlColor getColor(ColorParam colorParam) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/BezierUtils.java plantuml-8039/src/net/sourceforge/plantuml/posimo/BezierUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/BezierUtils.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/BezierUtils.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -96,16 +96,20 @@ } - public static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right, final double coef) { + private static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right, final double coef) { final double coef1 = coef; final double coef2 = 1 - coef; final double centerxA = src.getCtrlX1() * coef1 + src.getCtrlX2() * coef2; final double centeryA = src.getCtrlY1() * coef1 + src.getCtrlY2() * coef2; - final double ctrlx1 = src.getX1() * coef1 + src.getCtrlX1() * coef1; - final double ctrly1 = src.getY1() * coef1 + src.getCtrlY1() * coef1; - final double ctrlx2 = src.getX2() * coef1 + src.getCtrlX2() * coef1; - final double ctrly2 = src.getY2() * coef1 + src.getCtrlY2() * coef1; + final double x1 = src.getX1(); + final double y1 = src.getY1(); + final double x2 = src.getX2(); + final double y2 = src.getY2(); + final double ctrlx1 = x1 * coef1 + src.getCtrlX1() * coef1; + final double ctrly1 = y1 * coef1 + src.getCtrlY1() * coef1; + final double ctrlx2 = x2 * coef1 + src.getCtrlX2() * coef1; + final double ctrly2 = y2 * coef1 + src.getCtrlY2() * coef1; final double ctrlx12 = ctrlx1 * coef1 + centerxA * coef1; final double ctrly12 = ctrly1 * coef1 + centeryA * coef1; @@ -113,8 +117,8 @@ final double ctrly21 = ctrly2 * coef1 + centeryA * coef1; final double centerxB = ctrlx12 * coef1 + ctrlx21 * coef1; final double centeryB = ctrly12 * coef1 + ctrly21 * coef1; - left.setCurve(src.getX1(), src.getY1(), ctrlx1, ctrly1, ctrlx12, ctrly12, centerxB, centeryB); - right.setCurve(centerxB, centeryB, ctrlx21, ctrly21, ctrlx2, ctrly2, src.getX2(), src.getY2()); + left.setCurve(x1, y1, ctrlx1, ctrly1, ctrlx12, ctrly12, centerxB, centeryB); + right.setCurve(centerxB, centeryB, ctrlx21, ctrly21, ctrlx2, ctrly2, x2, y2); } static double dist(CubicCurve2D.Double seg) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/Block.java plantuml-8039/src/net/sourceforge/plantuml/posimo/Block.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/Block.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/Block.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/Clusterable.java plantuml-8039/src/net/sourceforge/plantuml/posimo/Clusterable.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/Clusterable.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/Clusterable.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/Cluster.java plantuml-8039/src/net/sourceforge/plantuml/posimo/Cluster.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/Cluster.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/Cluster.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/DecorInterfaceProvider.java plantuml-8039/src/net/sourceforge/plantuml/posimo/DecorInterfaceProvider.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/DecorInterfaceProvider.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/DecorInterfaceProvider.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/Decor.java plantuml-8039/src/net/sourceforge/plantuml/posimo/Decor.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/Decor.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/Decor.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/DotPath.java plantuml-8039/src/net/sourceforge/plantuml/posimo/DotPath.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/DotPath.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/DotPath.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -49,8 +49,11 @@ import java.util.StringTokenizer; import net.sourceforge.plantuml.EnsureVisible; +import net.sourceforge.plantuml.OptionFlags; import net.sourceforge.plantuml.asciiart.BasicCharArea; import net.sourceforge.plantuml.eps.EpsGraphics; +import net.sourceforge.plantuml.geom.LineSegmentDouble; +import net.sourceforge.plantuml.svek.Cluster; import net.sourceforge.plantuml.svek.ClusterPosition; import net.sourceforge.plantuml.svek.MinFinder; import net.sourceforge.plantuml.svek.PointAndAngle; @@ -106,6 +109,25 @@ this.beziers.addAll(beziers); } + public DotPath addCurve(Point2D pt1, Point2D pt2, Point2D pt3, Point2D pt4) { + final List beziersNew = new ArrayList(beziers); + beziersNew.add(new CubicCurve2D.Double(pt1.getX(), pt1.getY(), pt2.getX(), pt2.getY(), pt3.getX(), pt3.getY(), + pt4.getX(), pt4.getY())); + return new DotPath(beziersNew); + } + + public DotPath addCurve(Point2D pt2, Point2D pt3, Point2D pt4) { + final CubicCurve2D.Double last = beziers.get(beziers.size() - 1); + final Point2D p1 = last.getP2(); + return addCurve(p1, pt2, pt3, pt4); + } + + private Point2D mirror(Point2D center, Point2D pt) { + final double x = 2 * center.getX() - pt.getX(); + final double y = 2 * center.getY() - pt.getY(); + return new Point2D.Double(x, y); + } + public DotPath(String init, double deltaY) { if (init.startsWith("M") == false) { throw new IllegalArgumentException(); @@ -217,7 +239,7 @@ } public MinMax getMinMax() { - MinMax result = MinMax.getEmpty(false); + MinMax result = MinMax.getEmpty(false); for (CubicCurve2D.Double c : beziers) { result = result.addPoint(c.x1, c.y1); result = result.addPoint(c.x2, c.y2); @@ -291,7 +313,7 @@ return new DotPath(copy); } - public DotPath addBefore(DotPath other) { + private DotPath addBefore(DotPath other) { final List copy = new ArrayList(beziers); copy.addAll(0, other.beziers); return new DotPath(copy); @@ -323,7 +345,7 @@ return result; } - public PointDirected getIntersection(ClusterPosition position) { + private PointDirected getIntersection(ClusterPosition position) { for (CubicCurve2D.Double bez : beziers) { final PointDirected result = position.getIntersection(bez); if (result != null) { @@ -333,15 +355,6 @@ return null; } - // public void drawOld(Graphics2D g2d, double x, double y) { - // for (CubicCurve2D.Double bez : beziers) { - // bez = new CubicCurve2D.Double(x + bez.x1, y + bez.y1, x + bez.ctrlx1, y + - // bez.ctrly1, x + bez.ctrlx2, y - // + bez.ctrly2, x + bez.x2, y + bez.y2); - // g2d.draw(bez); - // } - // } - // public void draw(Graphics2D g2d, double x, double y) { final GeneralPath p = new GeneralPath(); for (CubicCurve2D.Double bez : beziers) { @@ -400,7 +413,7 @@ return result; } - public Point2D getFrontierIntersection(Shape shape, Rectangle2D... notIn) { + private Point2D getFrontierIntersection(Shape shape, Rectangle2D... notIn) { final List all = new ArrayList(beziers); for (int i = 0; i < 8; i++) { for (CubicCurve2D.Double immutable : all) { @@ -454,7 +467,7 @@ return false; } - public DotPath manageRect(Rectangle2D start, Rectangle2D end) { + private DotPath manageRect(Rectangle2D start, Rectangle2D end) { final List list = new ArrayList(this.beziers); while (true) { if (BezierUtils.isCutting(list.get(0), start) == false) { @@ -475,7 +488,7 @@ return new DotPath(list); } - public Point2D getFrontierIntersection(Positionable p) { + private Point2D getFrontierIntersection(Positionable p) { return getFrontierIntersection(PositionableUtils.convert(p)); } @@ -504,6 +517,7 @@ final StringBuilder sb = new StringBuilder(); for (CubicCurve2D.Double c : beziers) { sb.append(toString(c)); + sb.append(" - "); } return sb.toString(); } @@ -537,4 +551,114 @@ return Collections.unmodifiableList(beziers); } + public DotPath simulateCompound(Cluster head, Cluster tail) { +// if (OptionFlags.USE_COMPOUND) { +// throw new IllegalStateException(); +// } + if (head == null && tail == null) { + return this; + } + // System.err.println("head=" + head + " tail=" + tail); + DotPath me = this; + if (tail != null) { + // System.err.println("beziers1=" + this.toString()); + final ClusterPosition clusterPosition = tail.getClusterPosition(); + if (clusterPosition.contains(getStartPoint())) { + final DotPath result = new DotPath(); + int idx = 0; + while (idx + 1 < this.beziers.size() && clusterPosition.contains(this.beziers.get(idx).getP2())) { + if (clusterPosition.contains(this.beziers.get(idx).getP1()) == false) { + throw new IllegalStateException(); + } + idx++; + } + if (clusterPosition.contains(this.beziers.get(idx).getP2())) { + // System.err.println("strange1"); + } else { + assert clusterPosition.contains(this.beziers.get(idx).getP1()); + assert clusterPosition.contains(this.beziers.get(idx).getP2()) == false; + CubicCurve2D current = this.beziers.get(idx); + for (int k = 0; k < 8; k++) { + // System.err.println("length=" + length(current)); + final CubicCurve2D.Double part1 = new CubicCurve2D.Double(); + final CubicCurve2D.Double part2 = new CubicCurve2D.Double(); + current.subdivide(part1, part2); + assert part1.getP2().equals(part2.getP1()); + if (clusterPosition.contains(part1.getP2())) { + current = part2; + } else { + result.beziers.add(0, part2); + current = part1; + } + } + for (int i = idx + 1; i < this.beziers.size(); i++) { + result.beziers.add(this.beziers.get(i)); + } + me = result; + } + } + } + if (head != null) { + // System.err.println("beziers2=" + me.toString()); + final DotPath result = new DotPath(); + final ClusterPosition clusterPosition = head.getClusterPosition(); + if (clusterPosition.contains(getEndPoint())) { + for (CubicCurve2D.Double current : me.beziers) { + if (clusterPosition.contains(current.getP2()) == false) { + result.beziers.add(current); + } else { + if (clusterPosition.contains(current.getP1())) { + // System.err.println("strange2"); + return me; + } + assert clusterPosition.contains(current.getP1()) == false; + assert clusterPosition.contains(current.getP2()); + for (int k = 0; k < 8; k++) { + // System.err.println("length=" + length(current)); + final CubicCurve2D.Double part1 = new CubicCurve2D.Double(); + final CubicCurve2D.Double part2 = new CubicCurve2D.Double(); + current.subdivide(part1, part2); + assert part1.getP2().equals(part2.getP1()); + if (clusterPosition.contains(part1.getP2())) { + current = part1; + } else { + result.beziers.add(part1); + current = part2; + // System.err.println("k=" + k + " result=" + result.toString()); + } + } + // System.err.println("Final Result=" + result.toString()); + return result; + } + } + } + + } + return me; + } + + private double length(CubicCurve2D curve) { + return curve.getP1().distance(curve.getP2()); + } + + public boolean isLine() { + for (CubicCurve2D.Double curve : beziers) { + if (curve.getFlatnessSq() > 0.001) { + return false; + } + } + return true; + } + + public List getLineSegments() { + final List result = new ArrayList(); + for (CubicCurve2D.Double curve : beziers) { + if (curve.getFlatnessSq() <= 0.001) { + result.add(new LineSegmentDouble(curve)); + + } + } + return Collections.unmodifiableList(result); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/DotxMaker.java plantuml-8039/src/net/sourceforge/plantuml/posimo/DotxMaker.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/DotxMaker.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/DotxMaker.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/EntityImageNote2.java plantuml-8039/src/net/sourceforge/plantuml/posimo/EntityImageNote2.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/EntityImageNote2.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/EntityImageNote2.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/Frame.java plantuml-8039/src/net/sourceforge/plantuml/posimo/Frame.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/Frame.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/Frame.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -119,11 +119,13 @@ } private TextBlock createTextBloc() { - final UFont font = skinParam.getFont(FontParam.PACKAGE, null, false); - final HtmlColor textColor = skinParam.getFontHtmlColor(FontParam.PACKAGE, null); - final TextBlock bloc = TextBlockUtils.create(Display.create(name), new FontConfiguration(font, textColor, skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()), - HorizontalAlignment.LEFT, new SpriteContainerEmpty()); - return bloc; + final UFont font = skinParam.getFont(null, false, FontParam.PACKAGE); + final HtmlColor textColor = skinParam.getFontHtmlColor(null, FontParam.PACKAGE); + // final TextBlock bloc = Display.create(name).create(new FontConfiguration(font, textColor, + // skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()), HorizontalAlignment.LEFT, new + // SpriteContainerEmpty()); + // return bloc; + throw new UnsupportedOperationException(); } public final Dimension2D getPreferredDimension(StringBounder stringBounder) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/GraphvizSolverB.java plantuml-8039/src/net/sourceforge/plantuml/posimo/GraphvizSolverB.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/GraphvizSolverB.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/GraphvizSolverB.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -103,7 +103,7 @@ // exportPng(dotString, new File("png", "test1.png")); - final Graphviz graphviz = GraphvizUtils.create(dotString, "svg"); + final Graphviz graphviz = GraphvizUtils.create(null, dotString, "svg"); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final ProcessState state = graphviz.createFile3(baos); baos.close(); @@ -244,7 +244,7 @@ } private void exportPng(final String dotString, File f) throws IOException { - final Graphviz graphviz = GraphvizUtils.create(dotString, "png"); + final Graphviz graphviz = GraphvizUtils.create(null, dotString, "png"); final OutputStream os = new BufferedOutputStream(new FileOutputStream(f)); final ProcessState state = graphviz.createFile3(os); os.close(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/IEntityImageBlock.java plantuml-8039/src/net/sourceforge/plantuml/posimo/IEntityImageBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/IEntityImageBlock.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/IEntityImageBlock.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/LabelImage.java plantuml-8039/src/net/sourceforge/plantuml/posimo/LabelImage.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/LabelImage.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/LabelImage.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,16 +36,10 @@ import java.awt.geom.Dimension2D; -import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; -import net.sourceforge.plantuml.SpriteContainerEmpty; import net.sourceforge.plantuml.cucadiagram.Link; -import net.sourceforge.plantuml.graphic.FontConfiguration; -import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.skin.rose.Rose; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; @@ -64,8 +58,11 @@ // this.entity = entity; this.param = param; this.rose = rose; - this.name = TextBlockUtils.create(link.getLabel(), - new FontConfiguration(param.getFont(FontParam.CLASS, null, false), HtmlColorUtils.BLACK, param.getHyperlinkColor(), param.useUnderlineForHyperlink()), HorizontalAlignment.CENTER, new SpriteContainerEmpty()); +// this.name = link.getLabel().create( +// new FontConfiguration(param.getFont(FontParam.CLASS, null, false), HtmlColorUtils.BLACK, +// param.getHyperlinkColor(), param.useUnderlineForHyperlink()), HorizontalAlignment.CENTER, +// new SpriteContainerEmpty()); + throw new UnsupportedOperationException(); } public Dimension2D getDimension(StringBounder stringBounder) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/Label.java plantuml-8039/src/net/sourceforge/plantuml/posimo/Label.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/Label.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/Label.java 2016-04-22 16:26:28.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/LineRectIntersection.java plantuml-8039/src/net/sourceforge/plantuml/posimo/LineRectIntersection.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/LineRectIntersection.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/LineRectIntersection.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/LineSegmentIntersection.java plantuml-8039/src/net/sourceforge/plantuml/posimo/LineSegmentIntersection.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/LineSegmentIntersection.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/LineSegmentIntersection.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/MargedBlock.java plantuml-8039/src/net/sourceforge/plantuml/posimo/MargedBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/MargedBlock.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/MargedBlock.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/Mirror.java plantuml-8039/src/net/sourceforge/plantuml/posimo/Mirror.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/Mirror.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/Mirror.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/Moveable.java plantuml-8039/src/net/sourceforge/plantuml/posimo/Moveable.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/Moveable.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/Moveable.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/PathDrawerInterface.java plantuml-8039/src/net/sourceforge/plantuml/posimo/PathDrawerInterface.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/PathDrawerInterface.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/PathDrawerInterface.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/PathDrawer.java plantuml-8039/src/net/sourceforge/plantuml/posimo/PathDrawer.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/PathDrawer.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/PathDrawer.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/Path.java plantuml-8039/src/net/sourceforge/plantuml/posimo/Path.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/Path.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/Path.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/PositionableImpl.java plantuml-8039/src/net/sourceforge/plantuml/posimo/PositionableImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/PositionableImpl.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/PositionableImpl.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/Positionable.java plantuml-8039/src/net/sourceforge/plantuml/posimo/Positionable.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/Positionable.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/Positionable.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/PositionableUtils.java plantuml-8039/src/net/sourceforge/plantuml/posimo/PositionableUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/PositionableUtils.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/PositionableUtils.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/RacorderAbstract.java plantuml-8039/src/net/sourceforge/plantuml/posimo/RacorderAbstract.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/RacorderAbstract.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/RacorderAbstract.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/RacorderFollowTangeante.java plantuml-8039/src/net/sourceforge/plantuml/posimo/RacorderFollowTangeante.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/RacorderFollowTangeante.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/RacorderFollowTangeante.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/RacorderFollowTangeanteOld.java plantuml-8039/src/net/sourceforge/plantuml/posimo/RacorderFollowTangeanteOld.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/RacorderFollowTangeanteOld.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/RacorderFollowTangeanteOld.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/RacorderInToCenter.java plantuml-8039/src/net/sourceforge/plantuml/posimo/RacorderInToCenter.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/RacorderInToCenter.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/RacorderInToCenter.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/Racorder.java plantuml-8039/src/net/sourceforge/plantuml/posimo/Racorder.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/Racorder.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/Racorder.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/RacorderOrthogonal.java plantuml-8039/src/net/sourceforge/plantuml/posimo/RacorderOrthogonal.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/RacorderOrthogonal.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/RacorderOrthogonal.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/SimpleDrawer.java plantuml-8039/src/net/sourceforge/plantuml/posimo/SimpleDrawer.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/SimpleDrawer.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/SimpleDrawer.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/posimo/TwoLinesIntersection.java plantuml-8039/src/net/sourceforge/plantuml/posimo/TwoLinesIntersection.java --- plantuml-8024/src/net/sourceforge/plantuml/posimo/TwoLinesIntersection.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/posimo/TwoLinesIntersection.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/postit/Area.java plantuml-8039/src/net/sourceforge/plantuml/postit/Area.java --- plantuml-8024/src/net/sourceforge/plantuml/postit/Area.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/postit/Area.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/postit/AreaLayoutFixedWidth.java plantuml-8039/src/net/sourceforge/plantuml/postit/AreaLayoutFixedWidth.java --- plantuml-8024/src/net/sourceforge/plantuml/postit/AreaLayoutFixedWidth.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/postit/AreaLayoutFixedWidth.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/postit/AreaLayout.java plantuml-8039/src/net/sourceforge/plantuml/postit/AreaLayout.java --- plantuml-8024/src/net/sourceforge/plantuml/postit/AreaLayout.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/postit/AreaLayout.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/postit/CommandCreatePostIt.java plantuml-8039/src/net/sourceforge/plantuml/postit/CommandCreatePostIt.java --- plantuml-8024/src/net/sourceforge/plantuml/postit/CommandCreatePostIt.java 2015-05-03 15:06:21.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/postit/CommandCreatePostIt.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/postit/CommandWidth.java plantuml-8039/src/net/sourceforge/plantuml/postit/CommandWidth.java --- plantuml-8024/src/net/sourceforge/plantuml/postit/CommandWidth.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/postit/CommandWidth.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/postit/Elastic.java plantuml-8039/src/net/sourceforge/plantuml/postit/Elastic.java --- plantuml-8024/src/net/sourceforge/plantuml/postit/Elastic.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/postit/Elastic.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/postit/PostIdDiagramFactory.java plantuml-8039/src/net/sourceforge/plantuml/postit/PostIdDiagramFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/postit/PostIdDiagramFactory.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/postit/PostIdDiagramFactory.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/postit/PostItDiagram.java plantuml-8039/src/net/sourceforge/plantuml/postit/PostItDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/postit/PostItDiagram.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/postit/PostItDiagram.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/postit/PostIt.java plantuml-8039/src/net/sourceforge/plantuml/postit/PostIt.java --- plantuml-8024/src/net/sourceforge/plantuml/postit/PostIt.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/postit/PostIt.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,6 +41,7 @@ import net.sourceforge.plantuml.SkinParam; import net.sourceforge.plantuml.SpriteContainerEmpty; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.HtmlColorSetSimple; import net.sourceforge.plantuml.graphic.HtmlColorUtils; @@ -111,10 +112,11 @@ final HtmlColor borderColor = HtmlColorUtils.MY_RED; final SkinParam param = SkinParam.noShadowing(); - final UFont fontNote = param.getFont(FontParam.NOTE, null, false); + final UFont fontNote = param.getFont(null, false, FontParam.NOTE); + final FontConfiguration font2 = fontNote.toFont2(HtmlColorUtils.BLACK, true, HtmlColorUtils.BLUE, 8); final ComponentRoseNote note = new ComponentRoseNote( - new SymbolContext(noteBackgroundColor, borderColor).withStroke(new UStroke()), fontNote.toFont2( - HtmlColorUtils.BLACK, true, HtmlColorUtils.BLUE), text, 0, 0, new SpriteContainerEmpty()); + new SymbolContext(noteBackgroundColor, borderColor).withStroke(new UStroke()), font2, text, 0, 0, + new SpriteContainerEmpty()); return note; } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/Pragma.java plantuml-8039/src/net/sourceforge/plantuml/Pragma.java --- plantuml-8024/src/net/sourceforge/plantuml/Pragma.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/Pragma.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,17 +37,12 @@ import java.util.LinkedHashMap; import java.util.Map; -import net.sourceforge.plantuml.StringUtils; - public class Pragma { private final Map values = new LinkedHashMap(); public void define(String name, String value) { values.put(name, value); - if (name.equalsIgnoreCase("graphviz_dot")) { - OptionFlags.getInstance().setDotExecutable(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(value)); - } } public boolean isDefine(String name) { @@ -66,6 +61,11 @@ return isDefine("horizontallinebetweendifferentpackageallowed"); } + public boolean useVerticalIf() { + final String teoz = getValue("useverticalif"); + return "true".equalsIgnoreCase(teoz) || "on".equalsIgnoreCase(teoz); + } + public boolean useTeozLayout() { final String teoz = getValue("teoz"); return "true".equalsIgnoreCase(teoz) || "on".equalsIgnoreCase(teoz); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/Defines.java plantuml-8039/src/net/sourceforge/plantuml/preproc/Defines.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/Defines.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/Defines.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -86,29 +86,7 @@ } final String value = Matcher.quoteReplacement(ent.getValue()); if (key.contains("(")) { - final StringTokenizer st = new StringTokenizer(key, "(),"); - final String fctName = st.nextToken(); - String newValue = value; - final StringBuilder regex = new StringBuilder("\\b" + fctName + "\\("); - int i = 1; - - while (st.hasMoreTokens()) { - if (st.hasMoreTokens()) { - regex.append("([^,]*?)"); - } else { - regex.append("([^)]*?)"); - } - final String var1 = st.nextToken(); - final String var2 = "(##" + var1 + "\\b)|(\\b" + var1 + "##)|(\\b" + var1 + "\\b)"; - newValue = newValue.replaceAll(var2, "\\$" + i); - i++; - if (st.hasMoreTokens()) { - regex.append(","); - } - } - - regex.append("\\)"); - line = line.replaceAll(regex.toString(), newValue); + line = applyMethod(line, key, value); } else { final String regex = "\\b" + key + "\\b"; line = line.replaceAll(regex, value); @@ -117,6 +95,28 @@ return Arrays.asList(line.split("\n")); } + private String applyMethod(String line, final String key, final String value) { + final StringTokenizer st = new StringTokenizer(key, "(),"); + final String fctName = st.nextToken(); + String newValue = value; + final StringBuilder regex = new StringBuilder("\\b" + fctName + "\\("); + int i = 1; + + while (st.hasMoreTokens()) { + regex.append("(?:(?:\\s*\"([^\"]*)\"\\s*)|(?:\\s*'([^']*)'\\s*)|\\s*" + "((?:\\([^()]*\\)|[^,])*?)" + ")"); + final String var1 = st.nextToken(); + final String var2 = "(##" + var1 + "\\b)|(\\b" + var1 + "##)|(\\b" + var1 + "\\b)"; + newValue = newValue.replaceAll(var2, "\\$" + i + "\\$" + (i + 1) + "\\$" + (i + 2)); + i += 3; + if (st.hasMoreTokens()) { + regex.append(","); + } + } + regex.append("\\)"); + line = line.replaceAll(regex.toString(), newValue); + return line; + } + public void saveState() { if (savedState.size() > 0) { throw new IllegalStateException(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/FileWithSuffix.java plantuml-8039/src/net/sourceforge/plantuml/preproc/FileWithSuffix.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/FileWithSuffix.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/FileWithSuffix.java 2016-04-22 16:26:29.000000000 +0000 @@ -0,0 +1,81 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.preproc; + +import java.io.File; +import java.util.HashSet; +import java.util.Set; + +public class FileWithSuffix { + + private final File file; + private final String suffix; + + public FileWithSuffix(File file, String suffix) { + this.file = file; + this.suffix = suffix; + } + + @Override + public int hashCode() { + return file.hashCode() + (suffix == null ? 0 : suffix.hashCode() * 43); + } + + @Override + public boolean equals(Object arg) { + final FileWithSuffix other = (FileWithSuffix) arg; + return this.file.equals(other.file) && equals(suffix, other.suffix); + } + + private static boolean equals(String s1, String s2) { + if (s1 == null && s2 == null) { + return true; + } + if (s1 != null && s2 != null) { + return s1.equals(s2); + } + assert (s1 == null && s2 != null) || (s1 != null && s2 == null); + return false; + } + + public static Set convert(Set all) { + final Set result = new HashSet(); + for (FileWithSuffix f : all) { + result.add(f.file); + } + return result; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/IfManager.java plantuml-8039/src/net/sourceforge/plantuml/preproc/IfManager.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/IfManager.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/IfManager.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,6 +38,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.CharSequence2; import net.sourceforge.plantuml.command.regex.MyPattern; class IfManager implements ReadLine { @@ -56,9 +57,9 @@ this.source = source; } - final public String readLine() throws IOException { + final public CharSequence2 readLine() throws IOException { if (child != null) { - final String s = child.readLine(); + final CharSequence2 s = child.readLine(); if (s != null) { return s; } @@ -68,8 +69,8 @@ return readLineInternal(); } - protected String readLineInternal() throws IOException { - final String s = source.readLine(); + protected CharSequence2 readLineInternal() throws IOException { + final CharSequence2 s = source.readLine(); if (s == null) { return null; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/IfManagerNegatif.java plantuml-8039/src/net/sourceforge/plantuml/preproc/IfManagerNegatif.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/IfManagerNegatif.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/IfManagerNegatif.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,8 @@ import java.io.IOException; import java.util.regex.Matcher; +import net.sourceforge.plantuml.CharSequence2; + class IfManagerNegatif extends IfManager { private boolean skippingDone = false; @@ -46,11 +48,11 @@ } @Override - protected String readLineInternal() throws IOException { + protected CharSequence2 readLineInternal() throws IOException { if (skippingDone == false) { skippingDone = true; do { - final String s = readLine(); + final CharSequence2 s = readLine(); if (s == null) { return null; } @@ -65,7 +67,7 @@ } while (true); } - final String s = super.readLineInternal(); + final CharSequence2 s = super.readLineInternal(); if (s == null) { return null; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/IfManagerPositif.java plantuml-8039/src/net/sourceforge/plantuml/preproc/IfManagerPositif.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/IfManagerPositif.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/IfManagerPositif.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,8 @@ import java.io.IOException; import java.util.regex.Matcher; +import net.sourceforge.plantuml.CharSequence2; + class IfManagerPositif extends IfManager { public IfManagerPositif(ReadLine source, Defines defines) { @@ -44,8 +46,8 @@ } @Override - protected String readLineInternal() throws IOException { - String s = super.readLineInternal(); + protected CharSequence2 readLineInternal() throws IOException { + CharSequence2 s = super.readLineInternal(); if (s == null) { return null; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/PreprocessorInclude.java plantuml-8039/src/net/sourceforge/plantuml/preproc/PreprocessorInclude.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/PreprocessorInclude.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/PreprocessorInclude.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,11 +42,16 @@ import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; +import java.util.Collections; +import java.util.HashSet; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.CharSequence2; +import net.sourceforge.plantuml.CharSequence2Impl; import net.sourceforge.plantuml.FileSystem; +import net.sourceforge.plantuml.LineLocation; import net.sourceforge.plantuml.Log; import net.sourceforge.plantuml.OptionFlags; import net.sourceforge.plantuml.StringUtils; @@ -67,13 +72,24 @@ private PreprocessorInclude included = null; private final File oldCurrentDir; - private final Set filesUsed; + private final Set filesUsedCurrent; + private final Set filesUsedGlobal; - public PreprocessorInclude(ReadLine reader, Defines defines, String charset, Set filesUsed, File newCurrentDir) { + public PreprocessorInclude(ReadLine reader, Defines defines, String charset, File newCurrentDir) { + this(reader, defines, charset, newCurrentDir, new HashSet(), new HashSet()); + } + + public Set getFilesUsedGlobal() { + return Collections.unmodifiableSet(filesUsedGlobal); + } + + private PreprocessorInclude(ReadLine reader, Defines defines, String charset, File newCurrentDir, + Set filesUsedCurrent, Set filesUsedGlobal) { this.defines = defines; this.charset = charset; this.reader2 = reader; - this.filesUsed = filesUsed; + this.filesUsedCurrent = filesUsedCurrent; + this.filesUsedGlobal = filesUsedGlobal; if (newCurrentDir == null) { oldCurrentDir = null; } else { @@ -88,18 +104,18 @@ } } - public String readLine() throws IOException { - final String result = readLineInternal(); + public CharSequence2 readLine() throws IOException { + final CharSequence2 result = readLineInternal(); if (result != null && (StartUtils.isArobaseEndDiagram(result) || StartUtils.isArobaseStartDiagram(result))) { // http://plantuml.sourceforge.net/qa/?qa=3389/error-generating-when-same-file-included-different-diagram - filesUsed.clear(); + filesUsedCurrent.clear(); } return result; } - private String readLineInternal() throws IOException { + private CharSequence2 readLineInternal() throws IOException { if (included != null) { - final String s = included.readLine(); + final CharSequence2 s = included.readLine(); if (s != null) { return s; } @@ -107,7 +123,7 @@ included = null; } - final String s = reader2.readLine(); + final CharSequence2 s = reader2.readLine(); numLine++; if (s == null) { return null; @@ -116,17 +132,17 @@ final Matcher m = includePattern.matcher(s); assert included == null; if (m.find()) { - return manageFileInclude(m); + return manageFileInclude(m, s.getLocation()); } } final Matcher mUrl = includeURLPattern.matcher(s); if (mUrl.find()) { - return manageUrlInclude(mUrl); + return manageUrlInclude(mUrl, s.getLocation()); } return s; } - private String manageUrlInclude(Matcher m) throws IOException { + private CharSequence2 manageUrlInclude(Matcher m, LineLocation lineLocation) throws IOException { String urlString = m.group(1); urlString = defines.applyDefines(urlString).get(0); // @@ -138,14 +154,15 @@ } try { final URL url = new URL(urlString); - included = new PreprocessorInclude(getReaderInclude(url, suf), defines, charset, filesUsed, null); + included = new PreprocessorInclude(getReaderInclude(url, suf, lineLocation), defines, charset, null, filesUsedCurrent, + filesUsedGlobal); } catch (MalformedURLException e) { - return "Cannot include url " + urlString; + return CharSequence2Impl.errorPreprocessor("Cannot include url " + urlString, lineLocation); } return this.readLine(); } - private String manageFileInclude(Matcher m) throws IOException { + private CharSequence2 manageFileInclude(Matcher m, LineLocation lineLocation) throws IOException { String fileName = m.group(1); fileName = defines.applyDefines(fileName).get(0); final int idx = fileName.lastIndexOf('!'); @@ -155,13 +172,17 @@ fileName = fileName.substring(0, idx); } final File f = FileSystem.getInstance().getFile(withEnvironmentVariable(fileName)); + final FileWithSuffix f2 = new FileWithSuffix(f, suf); if (f.exists() == false) { - return "Cannot include " + f.getAbsolutePath(); - } else if (filesUsed.contains(f)) { - return "File already included " + f.getAbsolutePath(); + return CharSequence2Impl.errorPreprocessor("Cannot include " + f.getAbsolutePath(), lineLocation); + } else if (filesUsedCurrent.contains(f2)) { + // return CharSequence2Impl.errorPreprocessor("File already included " + f.getAbsolutePath(), lineLocation); + return this.readLine(); } else { - filesUsed.add(f); - included = new PreprocessorInclude(getReaderInclude(f, suf), defines, charset, filesUsed, f.getParentFile()); + filesUsedCurrent.add(f2); + filesUsedGlobal.add(f2); + included = new PreprocessorInclude(getReaderInclude(f, suf, lineLocation), defines, charset, f.getParentFile(), + filesUsedCurrent, filesUsedGlobal); } return this.readLine(); } @@ -195,7 +216,7 @@ return null; } - private ReadLine getReaderInclude(final File f, String suf) throws IOException { + private ReadLine getReaderInclude(final File f, String suf, LineLocation parent) throws IOException { if (StartDiagramExtractReader.containsStartDiagram(f, charset)) { int bloc = 0; if (suf != null && suf.matches("\\d+")) { @@ -205,13 +226,13 @@ } if (charset == null) { Log.info("Using default charset"); - return new ReadLineReader(new FileReader(f)); + return new ReadLineReader(new FileReader(f), f.getAbsolutePath(), parent); } Log.info("Using charset " + charset); - return new ReadLineReader(new InputStreamReader(new FileInputStream(f), charset)); + return new ReadLineReader(new InputStreamReader(new FileInputStream(f), charset), f.getAbsolutePath(), parent); } - private ReadLine getReaderInclude(final URL url, String suf) throws IOException { + private ReadLine getReaderInclude(final URL url, String suf, LineLocation parent) throws IOException { if (StartDiagramExtractReader.containsStartDiagram(url, charset)) { int bloc = 0; if (suf != null && suf.matches("\\d+")) { @@ -222,10 +243,10 @@ final InputStream is = url.openStream(); if (charset == null) { Log.info("Using default charset"); - return new ReadLineReader(new InputStreamReader(is)); + return new ReadLineReader(new InputStreamReader(is), url.toString(), parent); } Log.info("Using charset " + charset); - return new ReadLineReader(new InputStreamReader(is, charset)); + return new ReadLineReader(new InputStreamReader(is, charset), url.toString(), parent); } public int getLineNumber() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/Preprocessor.java plantuml-8039/src/net/sourceforge/plantuml/preproc/Preprocessor.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/Preprocessor.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/Preprocessor.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,14 +37,17 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.CharSequence2; +import net.sourceforge.plantuml.CharSequence2Impl; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; import net.sourceforge.plantuml.utils.StartUtils; -import net.sourceforge.plantuml.StringUtils; public class Preprocessor implements ReadLine { @@ -60,15 +63,15 @@ private final PreprocessorInclude rawSource; private final ReadLineInsertable source; - public Preprocessor(ReadLine reader, String charset, Defines defines, Set filesUsed, File newCurrentDir) { + public Preprocessor(ReadLine reader, String charset, Defines defines, File newCurrentDir) { this.defines = defines; this.defines.saveState(); - this.rawSource = new PreprocessorInclude(reader, defines, charset, filesUsed, newCurrentDir); + this.rawSource = new PreprocessorInclude(reader, defines, charset, newCurrentDir); this.source = new ReadLineInsertable(new IfManager(rawSource, defines)); } - public String readLine() throws IOException { - final String s = source.readLine(); + public CharSequence2 readLine() throws IOException { + final CharSequence2 s = source.readLine(); if (s == null) { return null; } @@ -96,30 +99,30 @@ return s; } - final List result = defines.applyDefines(s); + final List result = defines.applyDefines(s.toString2()); if (result.size() > 1) { ignoreDefineDuringSeveralLines = result.size() - 2; - source.insert(result.subList(1, result.size() - 1)); + source.insert(result.subList(1, result.size() - 1), s.getLocation()); } - return result.get(0); + return new CharSequence2Impl(result.get(0), s.getLocation()); } private int ignoreDefineDuringSeveralLines = 0; - private String manageUndef(Matcher m) throws IOException { + private CharSequence2 manageUndef(Matcher m) throws IOException { defines.undefine(m.group(1)); return this.readLine(); } - private String manageDefineLong(Matcher m) throws IOException { + private CharSequence2 manageDefineLong(Matcher m) throws IOException { final String group1 = m.group(1); final List def = new ArrayList(); while (true) { - final String read = this.readLine(); + final CharSequence2 read = this.readLine(); if (read == null) { return null; } - def.add(read); + def.add(read.toString2()); if (enddefinelongPattern.matcher(read).find()) { defines.define(group1, def); return this.readLine(); @@ -127,7 +130,7 @@ } } - private String manageDefine(Matcher m) throws IOException { + private CharSequence2 manageDefine(Matcher m) throws IOException { final String group1 = m.group(1); final String group2 = m.group(2); if (group2 == null) { @@ -135,17 +138,18 @@ } else { final List strings = defines.applyDefines(group2); if (strings.size() > 1) { - throw new UnsupportedOperationException(); - } - final StringBuilder value = new StringBuilder(strings.get(0)); - while (StringUtils.endsWithBackslash(value.toString())) { - value.setLength(value.length() - 1); - final String read = this.readLine(); - value.append(read); + defines.define(group1, strings); + } else { + final StringBuilder value = new StringBuilder(strings.get(0)); + while (StringUtils.endsWithBackslash(value.toString())) { + value.setLength(value.length() - 1); + final CharSequence2 read = this.readLine(); + value.append(read.toString2()); + } + final List li = new ArrayList(); + li.add(value.toString()); + defines.define(group1, li); } - final List li = new ArrayList(); - li.add(value.toString()); - defines.define(group1, li); } return this.readLine(); } @@ -158,4 +162,8 @@ rawSource.close(); } + public Set getFilesUsed() { + return Collections.unmodifiableSet(rawSource.getFilesUsedGlobal()); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/ReadLineInsertable.java plantuml-8039/src/net/sourceforge/plantuml/preproc/ReadLineInsertable.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/ReadLineInsertable.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/ReadLineInsertable.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,10 +39,14 @@ import java.util.LinkedList; import java.util.List; +import net.sourceforge.plantuml.CharSequence2; +import net.sourceforge.plantuml.CharSequence2Impl; +import net.sourceforge.plantuml.LineLocation; + class ReadLineInsertable implements ReadLine { private final ReadLine source; - private final List inserted = new LinkedList(); + private final List inserted = new LinkedList(); public ReadLineInsertable(ReadLine source) { this.source = source; @@ -52,18 +56,20 @@ source.close(); } - public String readLine() throws IOException { + public CharSequence2 readLine() throws IOException { if (inserted.size() > 0) { - final Iterator it = inserted.iterator(); - final String result = it.next(); + final Iterator it = inserted.iterator(); + final CharSequence2 result = it.next(); it.remove(); return result; } return source.readLine(); } - public void insert(List data) { - inserted.addAll(data); + public void insert(List data, LineLocation location) { + for (CharSequence s : data) { + inserted.add(new CharSequence2Impl(s, location)); + } } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/ReadLine.java plantuml-8039/src/net/sourceforge/plantuml/preproc/ReadLine.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/ReadLine.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/ReadLine.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,7 +37,9 @@ import java.io.Closeable; import java.io.IOException; +import net.sourceforge.plantuml.CharSequence2; + public interface ReadLine extends Closeable { - public String readLine() throws IOException; + public CharSequence2 readLine() throws IOException; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/ReadLineReader.java plantuml-8039/src/net/sourceforge/plantuml/preproc/ReadLineReader.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/ReadLineReader.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/ReadLineReader.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,34 +38,47 @@ import java.io.IOException; import java.io.Reader; +import net.sourceforge.plantuml.CharSequence2; +import net.sourceforge.plantuml.CharSequence2Impl; +import net.sourceforge.plantuml.LineLocation; +import net.sourceforge.plantuml.LineLocationImpl; + public class ReadLineReader implements ReadLine { private final BufferedReader br; + private LineLocationImpl location; - public ReadLineReader(Reader reader) { + public ReadLineReader(Reader reader, String desc, LineLocation parent) { br = new BufferedReader(reader); + location = new LineLocationImpl(desc, parent); + } + + public ReadLineReader(Reader reader, String desc) { + this(reader, desc, null); } - public String readLine() throws IOException { + public CharSequence2 readLine() throws IOException { String s = br.readLine(); - if (s != null && s.startsWith("\uFEFF")) { - s = s.substring(1); + location = location.oneLineRead(); + if (s == null) { + return null; } - if (s != null) { - s = s.replace('\u2013', '-'); - // s = s.replace('\u00A0', ' '); - // s = s.replace('\u201c', '\"'); - // s = s.replace('\u201d', '\"'); - // s = s.replace('\u00ab', '\"'); - // s = s.replace('\u00bb', '\"'); - // s = s.replace('\u2018', '\''); - // s = s.replace('\u2019', '\''); - // for (int i = 0; i < s.length(); i++) { - // char c = s.charAt(i); - // System.err.println("X " + Integer.toHexString((int) c) + " " + c); - // } + if (s.startsWith("\uFEFF")) { + s = s.substring(1); } - return s; + s = s.replace('\u2013', '-'); + // s = s.replace('\u00A0', ' '); + // s = s.replace('\u201c', '\"'); + // s = s.replace('\u201d', '\"'); + // s = s.replace('\u00ab', '\"'); + // s = s.replace('\u00bb', '\"'); + // s = s.replace('\u2018', '\''); + // s = s.replace('\u2019', '\''); + // for (int i = 0; i < s.length(); i++) { + // char c = s.charAt(i); + // System.err.println("X " + Integer.toHexString((int) c) + " " + c); + // } + return new CharSequence2Impl(s, location); } public void close() throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/StackReadLine.java plantuml-8039/src/net/sourceforge/plantuml/preproc/StackReadLine.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/StackReadLine.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/StackReadLine.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.preproc; - -import java.util.Collection; -import java.util.Iterator; - -public class StackReadLine implements ReadLine { - - final private Iterator it; - - public StackReadLine(Collection all) { - this.it = all.iterator(); - } - - public void close() { - } - - public String readLine() { - if (it.hasNext()) { - return it.next(); - } - return null; - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/StartDiagramExtractReader.java plantuml-8039/src/net/sourceforge/plantuml/preproc/StartDiagramExtractReader.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/StartDiagramExtractReader.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/StartDiagramExtractReader.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,6 +41,7 @@ import java.io.InputStreamReader; import java.net.URL; +import net.sourceforge.plantuml.CharSequence2; import net.sourceforge.plantuml.Log; import net.sourceforge.plantuml.utils.StartUtils; @@ -62,7 +63,7 @@ throw new IllegalArgumentException(); } this.raw = raw; - String s = null; + CharSequence2 s = null; while ((s = raw.readLine()) != null) { if (StartUtils.isArobaseStartDiagram(s)) { if (num == 0) { @@ -78,20 +79,22 @@ if (charset == null) { Log.info("Using default charset"); - return new UncommentReadLine(new ReadLineReader(new FileReader(f))); + return new UncommentReadLine(new ReadLineReader(new FileReader(f), f.getAbsolutePath())); } Log.info("Using charset " + charset); - return new UncommentReadLine(new ReadLineReader(new InputStreamReader(new FileInputStream(f), charset))); + return new UncommentReadLine(new ReadLineReader(new InputStreamReader(new FileInputStream(f), charset), + f.getAbsolutePath())); } private static ReadLine getReadLine(URL url, String charset) throws IOException { if (charset == null) { Log.info("Using default charset"); - return new UncommentReadLine(new ReadLineReader(new InputStreamReader(url.openStream()))); + return new UncommentReadLine(new ReadLineReader(new InputStreamReader(url.openStream()), url.toString())); } Log.info("Using charset " + charset); - return new UncommentReadLine(new ReadLineReader(new InputStreamReader(url.openStream(), charset))); + return new UncommentReadLine( + new ReadLineReader(new InputStreamReader(url.openStream(), charset), url.toString())); } static public boolean containsStartDiagram(File f, String charset) throws IOException { @@ -106,7 +109,7 @@ private static boolean containsStartDiagram(final ReadLine r) throws IOException { try { - String s = null; + CharSequence2 s = null; while ((s = r.readLine()) != null) { if (StartUtils.isArobaseStartDiagram(s)) { return true; @@ -120,11 +123,11 @@ return false; } - public String readLine() throws IOException { + public CharSequence2 readLine() throws IOException { if (finished) { return null; } - final String result = raw.readLine(); + final CharSequence2 result = raw.readLine(); if (result != null && StartUtils.isArobaseEndDiagram(result)) { finished = true; return null; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/preproc/UncommentReadLine.java plantuml-8039/src/net/sourceforge/plantuml/preproc/UncommentReadLine.java --- plantuml-8024/src/net/sourceforge/plantuml/preproc/UncommentReadLine.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/preproc/UncommentReadLine.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,7 +38,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.CharSequence2; +import net.sourceforge.plantuml.CharSequence2Impl; import net.sourceforge.plantuml.command.regex.MyPattern; +import net.sourceforge.plantuml.utils.StartUtils; public class UncommentReadLine implements ReadLine { @@ -50,12 +53,12 @@ public UncommentReadLine(ReadLine source) { this.raw = source; - this.start = MyPattern.cmpile("(?i)((?:\\W|\\<[^<>]*\\>)*)@start"); - this.unpause = MyPattern.cmpile("(?i)((?:\\W|\\<[^<>]*\\>)*)@unpause"); + this.start = MyPattern.cmpile(StartUtils.START_PATTERN); + this.unpause = MyPattern.cmpile(StartUtils.PAUSE_PATTERN); } - public String readLine() throws IOException { - final String result = raw.readLine(); + public CharSequence2 readLine() throws IOException { + final CharSequence2 result = raw.readLine(); if (result == null) { return null; @@ -71,11 +74,11 @@ headerToRemove = m2.group(1); } } - if (headerToRemove != null && headerToRemove.startsWith(result)) { - return ""; + if (headerToRemove != null && headerToRemove.startsWith(result.toString2())) { + return new CharSequence2Impl("", result.getLocation()); } - if (headerToRemove != null && result.startsWith(headerToRemove)) { - return result.substring(headerToRemove.length()); + if (headerToRemove != null && result.toString2().startsWith(headerToRemove)) { + return result.subSequence(headerToRemove.length(), result.length()); } return result; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/printskin/PrintSkinFactory.java plantuml-8039/src/net/sourceforge/plantuml/printskin/PrintSkinFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/printskin/PrintSkinFactory.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/printskin/PrintSkinFactory.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/printskin/PrintSkin.java plantuml-8039/src/net/sourceforge/plantuml/printskin/PrintSkin.java --- plantuml-8024/src/net/sourceforge/plantuml/printskin/PrintSkin.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/printskin/PrintSkin.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -154,8 +154,8 @@ } private void println(String s) { - final TextBlock textBlock = TextBlockUtils.create(Display.create(s), new FontConfiguration(FONT1, - HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.LEFT, new SpriteContainerEmpty()); + final TextBlock textBlock = Display.create(s).create(FontConfiguration.blackBlueTrue(FONT1), + HorizontalAlignment.LEFT, new SpriteContainerEmpty()); textBlock.drawU(ug.apply(new UTranslate(xpos, ypos))); ypos += textBlock.calculateDimension(ug.getStringBounder()).getHeight(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/BasicInstantArithmetic.java plantuml-8039/src/net/sourceforge/plantuml/project/BasicInstantArithmetic.java --- plantuml-8024/src/net/sourceforge/plantuml/project/BasicInstantArithmetic.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/BasicInstantArithmetic.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/command/CommandAffectation.java plantuml-8039/src/net/sourceforge/plantuml/project/command/CommandAffectation.java --- plantuml-8024/src/net/sourceforge/plantuml/project/command/CommandAffectation.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/command/CommandAffectation.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,7 @@ import java.util.List; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand; import net.sourceforge.plantuml.project.Expression; @@ -49,8 +50,8 @@ @Override protected CommandExecutionResult executeArg(PSystemProject diagram, List arg) { - final Expression exp = diagram.getProject().getExpression(arg.get(1).trim()); - final boolean ok = diagram.getProject().affectation(arg.get(0).trim(), exp); + final Expression exp = diagram.getProject().getExpression(StringUtils.trin(arg.get(1))); + final boolean ok = diagram.getProject().affectation(StringUtils.trin(arg.get(0)), exp); if (ok) { return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/command/CommandCloseWeekDay.java plantuml-8039/src/net/sourceforge/plantuml/project/command/CommandCloseWeekDay.java --- plantuml-8024/src/net/sourceforge/plantuml/project/command/CommandCloseWeekDay.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/command/CommandCloseWeekDay.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Constant.java plantuml-8039/src/net/sourceforge/plantuml/project/Constant.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Constant.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Constant.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/DayClose.java plantuml-8039/src/net/sourceforge/plantuml/project/DayClose.java --- plantuml-8024/src/net/sourceforge/plantuml/project/DayClose.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/DayClose.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/DayCloseNone.java plantuml-8039/src/net/sourceforge/plantuml/project/DayCloseNone.java --- plantuml-8024/src/net/sourceforge/plantuml/project/DayCloseNone.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/DayCloseNone.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/DayCloseOr.java plantuml-8039/src/net/sourceforge/plantuml/project/DayCloseOr.java --- plantuml-8024/src/net/sourceforge/plantuml/project/DayCloseOr.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/DayCloseOr.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/DayCloseWeekDay.java plantuml-8039/src/net/sourceforge/plantuml/project/DayCloseWeekDay.java --- plantuml-8024/src/net/sourceforge/plantuml/project/DayCloseWeekDay.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/DayCloseWeekDay.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Day.java plantuml-8039/src/net/sourceforge/plantuml/project/Day.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Day.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Day.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Duration.java plantuml-8039/src/net/sourceforge/plantuml/project/Duration.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Duration.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Duration.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Expression.java plantuml-8039/src/net/sourceforge/plantuml/project/Expression.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Expression.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Expression.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/FormalAdditionInstantDuration.java plantuml-8039/src/net/sourceforge/plantuml/project/FormalAdditionInstantDuration.java --- plantuml-8024/src/net/sourceforge/plantuml/project/FormalAdditionInstantDuration.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/FormalAdditionInstantDuration.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/FormalAddition.java plantuml-8039/src/net/sourceforge/plantuml/project/FormalAddition.java --- plantuml-8024/src/net/sourceforge/plantuml/project/FormalAddition.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/FormalAddition.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Formal.java plantuml-8039/src/net/sourceforge/plantuml/project/Formal.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Formal.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Formal.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/FreeVariable.java plantuml-8039/src/net/sourceforge/plantuml/project/FreeVariable.java --- plantuml-8024/src/net/sourceforge/plantuml/project/FreeVariable.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/FreeVariable.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/graphic/GanttDiagram.java plantuml-8039/src/net/sourceforge/plantuml/project/graphic/GanttDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/project/graphic/GanttDiagram.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/graphic/GanttDiagram.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/graphic/ItemHeader.java plantuml-8039/src/net/sourceforge/plantuml/project/graphic/ItemHeader.java --- plantuml-8024/src/net/sourceforge/plantuml/project/graphic/ItemHeader.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/graphic/ItemHeader.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,7 +44,6 @@ import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.project.Item; import net.sourceforge.plantuml.project.Project; import net.sourceforge.plantuml.ugraphic.UChangeColor; @@ -58,7 +57,7 @@ private final UFont font = new UFont("Serif", Font.PLAIN, 9); private final Project project; - private final FontConfiguration fontConfig = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); + private final FontConfiguration fontConfig = FontConfiguration.blackBlueTrue(font); public ItemHeader(Project project) { this.project = project; @@ -72,8 +71,8 @@ ug.apply(new UTranslate(x, y)).draw(new URectangle(getWidth(stringBounder), getHeight(stringBounder))); for (Item it : project.getValidItems()) { - final TextBlock b = TextBlockUtils.create(Display.create("" + it.getCode()), fontConfig, - HorizontalAlignment.LEFT, new SpriteContainerEmpty()); + final TextBlock b = Display.create("" + it.getCode()).create(fontConfig, HorizontalAlignment.LEFT, + new SpriteContainerEmpty()); final Dimension2D dim = b.calculateDimension(stringBounder); b.drawU(ug.apply(new UTranslate(x, y))); y += dim.getHeight(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/graphic/TimeScale.java plantuml-8039/src/net/sourceforge/plantuml/project/graphic/TimeScale.java --- plantuml-8024/src/net/sourceforge/plantuml/project/graphic/TimeScale.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/graphic/TimeScale.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -47,7 +47,6 @@ import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.project.Day; import net.sourceforge.plantuml.project.Instant; import net.sourceforge.plantuml.project.Month; @@ -63,7 +62,7 @@ private final UFont font = new UFont("Serif", Font.PLAIN, 9); private final Project project; - private final FontConfiguration fontConfig = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); + private final FontConfiguration fontConfig = FontConfiguration.blackBlueTrue(font); public TimeScale(Project project) { this.project = project; @@ -88,8 +87,8 @@ if (printed == null || d.getMonth() != printed) { ug.apply(new UTranslate(curx, y)).draw(new ULine(0, monthHeight)); printed = d.getMonth(); - final TextBlock b = TextBlockUtils.create(Display.create(printed.name()), fontConfig, - HorizontalAlignment.LEFT, new SpriteContainerEmpty()); + final TextBlock b = Display.create(printed.name()).create(fontConfig, HorizontalAlignment.LEFT, + new SpriteContainerEmpty()); final Dimension2D dim = b.calculateDimension(stringBounder); b.drawU(ug.apply(new UTranslate(curx, (y + (monthHeight - dim.getHeight()) / 2)))); } @@ -102,10 +101,11 @@ for (Instant cur = project.getStart(); cur.compareTo(end) <= 0; cur = cur.next(project.getDayClose())) { final Day d = cur.getDay(); - final TextBlock b = TextBlockUtils.create(Display.create("" + d.getNumDay()), fontConfig, - HorizontalAlignment.LEFT, new SpriteContainerEmpty()); + final TextBlock b = Display.create("" + d.getNumDay()).create(fontConfig, HorizontalAlignment.LEFT, + new SpriteContainerEmpty()); final Dimension2D dim = b.calculateDimension(stringBounder); - b.drawU(ug.apply(new UTranslate((curx + (caseWidth - dim.getWidth()) / 2), (y + (caseHeight - dim.getHeight()) / 2)))); + b.drawU(ug.apply(new UTranslate((curx + (caseWidth - dim.getWidth()) / 2), (y + (caseHeight - dim + .getHeight()) / 2)))); curx += caseWidth; ug.apply(new UTranslate(curx, y)).draw(new ULine(0, caseHeight)); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/IncompleteItem.java plantuml-8039/src/net/sourceforge/plantuml/project/IncompleteItem.java --- plantuml-8024/src/net/sourceforge/plantuml/project/IncompleteItem.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/IncompleteItem.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/InstantArithmetic.java plantuml-8039/src/net/sourceforge/plantuml/project/InstantArithmetic.java --- plantuml-8024/src/net/sourceforge/plantuml/project/InstantArithmetic.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/InstantArithmetic.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Instant.java plantuml-8039/src/net/sourceforge/plantuml/project/Instant.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Instant.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Instant.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/ItemCaract.java plantuml-8039/src/net/sourceforge/plantuml/project/ItemCaract.java --- plantuml-8024/src/net/sourceforge/plantuml/project/ItemCaract.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/ItemCaract.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/ItemComparator.java plantuml-8039/src/net/sourceforge/plantuml/project/ItemComparator.java --- plantuml-8024/src/net/sourceforge/plantuml/project/ItemComparator.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/ItemComparator.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Item.java plantuml-8039/src/net/sourceforge/plantuml/project/Item.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Item.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Item.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Jalon.java plantuml-8039/src/net/sourceforge/plantuml/project/Jalon.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Jalon.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Jalon.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Load.java plantuml-8039/src/net/sourceforge/plantuml/project/Load.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Load.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Load.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Month.java plantuml-8039/src/net/sourceforge/plantuml/project/Month.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Month.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Month.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Numeric.java plantuml-8039/src/net/sourceforge/plantuml/project/Numeric.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Numeric.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Numeric.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/NumericNumber.java plantuml-8039/src/net/sourceforge/plantuml/project/NumericNumber.java --- plantuml-8024/src/net/sourceforge/plantuml/project/NumericNumber.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/NumericNumber.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/NumericType.java plantuml-8039/src/net/sourceforge/plantuml/project/NumericType.java --- plantuml-8024/src/net/sourceforge/plantuml/project/NumericType.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/NumericType.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/ParentItem.java plantuml-8039/src/net/sourceforge/plantuml/project/ParentItem.java --- plantuml-8024/src/net/sourceforge/plantuml/project/ParentItem.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/ParentItem.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Project.java plantuml-8039/src/net/sourceforge/plantuml/project/Project.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Project.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Project.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -85,7 +85,7 @@ } public Expression getExpression(String desc) { - desc = desc.trim(); + desc = StringUtils.trin(desc); final int plus = desc.indexOf('+'); if (plus != -1) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/PSystemProject.java plantuml-8039/src/net/sourceforge/plantuml/project/PSystemProject.java --- plantuml-8024/src/net/sourceforge/plantuml/project/PSystemProject.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/PSystemProject.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -79,7 +79,7 @@ final BufferedImage im = createImage(diagram); PngIO.write(im, os, fileFormatOption.isWithMetadata() ? getMetadata() : null, 96); } else if (fileFormat == FileFormat.SVG) { - final UGraphicSvg svg = new UGraphicSvg(colorMapper, StringUtils.getAsHtml(background), false, 1.0); + final UGraphicSvg svg = new UGraphicSvg(colorMapper, StringUtils.getAsHtml(background), false, 1.0, fileFormatOption.getSvgLinkTarget()); diagram.draw(svg, 0, 0); svg.createXml(os); } else if (fileFormat == FileFormat.EPS) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/Ressource.java plantuml-8039/src/net/sourceforge/plantuml/project/Ressource.java --- plantuml-8024/src/net/sourceforge/plantuml/project/Ressource.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/Ressource.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project/WeekDay.java plantuml-8039/src/net/sourceforge/plantuml/project/WeekDay.java --- plantuml-8024/src/net/sourceforge/plantuml/project/WeekDay.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project/WeekDay.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/command/CommandAffectation.java plantuml-8039/src/net/sourceforge/plantuml/project2/command/CommandAffectation.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/command/CommandAffectation.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/command/CommandAffectation.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,7 @@ import java.util.List; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand; import net.sourceforge.plantuml.project2.PSystemProject2; @@ -49,8 +50,8 @@ @Override protected CommandExecutionResult executeArg(PSystemProject2 diagram, List arg) { - final Value exp = diagram.getProject().getExpression(arg.get(1).trim()); - final boolean ok = diagram.getProject().affectation(arg.get(0).trim(), exp); + final Value exp = diagram.getProject().getExpression(StringUtils.trin(arg.get(1))); + final boolean ok = diagram.getProject().affectation(StringUtils.trin(arg.get(0)), exp); if (ok) { return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/command/CommandCloseWeekDay.java plantuml-8039/src/net/sourceforge/plantuml/project2/command/CommandCloseWeekDay.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/command/CommandCloseWeekDay.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/command/CommandCloseWeekDay.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/Day.java plantuml-8039/src/net/sourceforge/plantuml/project2/Day.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/Day.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/Day.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/GanttDiagram2.java plantuml-8039/src/net/sourceforge/plantuml/project2/GanttDiagram2.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/GanttDiagram2.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/GanttDiagram2.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -60,7 +60,7 @@ } private final UFont font = new UFont("Serif", Font.PLAIN, 9); - private final FontConfiguration fontConfig = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); + private final FontConfiguration fontConfig = FontConfiguration.blackBlueTrue(font); public void draw(UGraphic ug, double x, double y) { @@ -83,7 +83,7 @@ final List rows = new ArrayList(); for (Task t : tasks) { final String text = t.getCode(); - final TextBlock label = TextBlockUtils.create(Display.create(text), fontConfig, HorizontalAlignment.LEFT, + final TextBlock label = Display.create(text).create(fontConfig, HorizontalAlignment.LEFT, new SpriteContainerEmpty()); rows.add(new RowSimple((Day) t.getStart(), (Day) t.getEnd(), HtmlColorUtils.BLACK, TextBlockUtils .withMargin(label, 3, 3))); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/Knowledge.java plantuml-8039/src/net/sourceforge/plantuml/project2/Knowledge.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/Knowledge.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/Knowledge.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,8 @@ import java.util.HashMap; import java.util.Map; +import net.sourceforge.plantuml.StringUtils; + public class Knowledge { private final TaskContainer taskContainer; @@ -49,7 +51,7 @@ } public Value evaluate(String exp) { - exp = exp.trim(); + exp = StringUtils.trin(exp); int idx = exp.indexOf('$'); if (idx != -1) { return evaluate(exp.substring(0, idx), exp.substring(idx + 1)); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/Project2.java plantuml-8039/src/net/sourceforge/plantuml/project2/Project2.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/Project2.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/Project2.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/PSystemProject2.java plantuml-8039/src/net/sourceforge/plantuml/project2/PSystemProject2.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/PSystemProject2.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/PSystemProject2.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -78,7 +78,7 @@ final BufferedImage im = createImage(diagram); PngIO.write(im, os, fileFormatOption.isWithMetadata() ? getMetadata() : null, 96); } else if (fileFormat == FileFormat.SVG) { - final UGraphicSvg svg = new UGraphicSvg(colorMapper, StringUtils.getAsHtml(background), false, 1.0); + final UGraphicSvg svg = new UGraphicSvg(colorMapper, StringUtils.getAsHtml(background), false, 1.0, fileFormatOption.getSvgLinkTarget()); diagram.draw(svg, 0, 0); svg.createXml(os); } else if (fileFormat == FileFormat.EPS) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/PSystemProjectFactory2.java plantuml-8039/src/net/sourceforge/plantuml/project2/PSystemProjectFactory2.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/PSystemProjectFactory2.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/PSystemProjectFactory2.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/Ressource.java plantuml-8039/src/net/sourceforge/plantuml/project2/Ressource.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/Ressource.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/Ressource.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/Row.java plantuml-8039/src/net/sourceforge/plantuml/project2/Row.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/Row.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/Row.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/RowMerge.java plantuml-8039/src/net/sourceforge/plantuml/project2/RowMerge.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/RowMerge.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/RowMerge.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.ugraphic.UGraphic; @@ -53,7 +54,7 @@ } public TextBlock asTextBloc(final TimeConverter timeConverter) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { r1.asTextBloc(timeConverter).drawU(ug); @@ -81,7 +82,7 @@ } public TextBlock header() { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { r1.header().drawU(ug); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/RowOverwrite.java plantuml-8039/src/net/sourceforge/plantuml/project2/RowOverwrite.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/RowOverwrite.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/RowOverwrite.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.ugraphic.UGraphic; @@ -53,7 +54,7 @@ } public TextBlock asTextBloc(final TimeConverter timeConverter) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final double minX = getMinXwithoutHeader(timeConverter); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/RowSimple.java plantuml-8039/src/net/sourceforge/plantuml/project2/RowSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/RowSimple.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/RowSimple.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; @@ -76,7 +77,7 @@ } public TextBlock asTextBloc(final TimeConverter timeConverter) { - return new TextBlock() { + return new AbstractTextBlock() { public void drawU(UGraphic ug) { final double x1 = getMinXwithoutHeader(timeConverter) + 1; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/RowUtils.java plantuml-8039/src/net/sourceforge/plantuml/project2/RowUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/RowUtils.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/RowUtils.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TaskAttribute.java plantuml-8039/src/net/sourceforge/plantuml/project2/TaskAttribute.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TaskAttribute.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TaskAttribute.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TaskContainer.java plantuml-8039/src/net/sourceforge/plantuml/project2/TaskContainer.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TaskContainer.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TaskContainer.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TaskImpl.java plantuml-8039/src/net/sourceforge/plantuml/project2/TaskImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TaskImpl.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TaskImpl.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/Task.java plantuml-8039/src/net/sourceforge/plantuml/project2/Task.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/Task.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/Task.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TaskMerge.java plantuml-8039/src/net/sourceforge/plantuml/project2/TaskMerge.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TaskMerge.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TaskMerge.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TimeConverterDay.java plantuml-8039/src/net/sourceforge/plantuml/project2/TimeConverterDay.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TimeConverterDay.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TimeConverterDay.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TimeConverter.java plantuml-8039/src/net/sourceforge/plantuml/project2/TimeConverter.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TimeConverter.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TimeConverter.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TimeElement.java plantuml-8039/src/net/sourceforge/plantuml/project2/TimeElement.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TimeElement.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TimeElement.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TimeHeaderDay.java plantuml-8039/src/net/sourceforge/plantuml/project2/TimeHeaderDay.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TimeHeaderDay.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TimeHeaderDay.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,12 +40,12 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.SpriteContainerEmpty; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; import net.sourceforge.plantuml.ugraphic.UFont; @@ -53,7 +53,7 @@ import net.sourceforge.plantuml.ugraphic.URectangle; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class TimeHeaderDay implements TextBlock { +public class TimeHeaderDay extends AbstractTextBlock implements TextBlock { private final Day start; private final Day end; @@ -61,7 +61,7 @@ private final double dayWidth; private final UFont font = new UFont("Serif", Font.PLAIN, 9); - private final FontConfiguration fontConfig = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); + private final FontConfiguration fontConfig = FontConfiguration.blackBlueTrue(font); public TimeHeaderDay(Day start, Day end, TimeLine timeline, double dayWidth) { this.start = start; @@ -74,7 +74,7 @@ int n = 0; for (Day d = start; d.compareTo(end) <= 0; d = (Day) timeline.next(d)) { final String text = "" + d.getNumDay(); - final TextBlock b = TextBlockUtils.create(Display.create(text), fontConfig, HorizontalAlignment.LEFT, + final TextBlock b = Display.create(text).create(fontConfig, HorizontalAlignment.LEFT, new SpriteContainerEmpty()); final Dimension2D dimText = b.calculateDimension(ug.getStringBounder()); final double diffX = dayWidth - dimText.getWidth(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TimeHeaderMonth.java plantuml-8039/src/net/sourceforge/plantuml/project2/TimeHeaderMonth.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TimeHeaderMonth.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TimeHeaderMonth.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,12 +40,12 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.SpriteContainerEmpty; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; import net.sourceforge.plantuml.ugraphic.UFont; @@ -53,7 +53,7 @@ import net.sourceforge.plantuml.ugraphic.URectangle; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class TimeHeaderMonth implements TextBlock { +public class TimeHeaderMonth extends AbstractTextBlock implements TextBlock { private final Day start; private final Day end; @@ -61,7 +61,7 @@ private final double dayWidth; private final UFont font = new UFont("Serif", Font.PLAIN, 9); - private final FontConfiguration fontConfig = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); + private final FontConfiguration fontConfig = FontConfiguration.blackBlueTrue(font); public TimeHeaderMonth(Day start, Day end, TimeLine timeline, double dayWidth) { this.start = start; @@ -73,7 +73,7 @@ public void drawU(UGraphic ug) { int n = 0; String last = null; - + double pendingX = -1; for (Day d = start; d.compareTo(end) <= 0; d = (Day) timeline.next(d)) { final String text = "" + d.getMonth().name(); @@ -96,7 +96,7 @@ private void manage(UGraphic ug, double x, double y, int n, String last, double pendingX) { final double width = n * dayWidth - pendingX; ug.apply(new UTranslate(x + pendingX, y)).draw(new URectangle(width, getHeight())); - final TextBlock b = TextBlockUtils.create(Display.create(last), fontConfig, HorizontalAlignment.LEFT, + final TextBlock b = Display.create(last).create(fontConfig, HorizontalAlignment.LEFT, new SpriteContainerEmpty()); final Dimension2D dimText = b.calculateDimension(ug.getStringBounder()); final double diffX = width - dimText.getWidth(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TimeLineDay.java plantuml-8039/src/net/sourceforge/plantuml/project2/TimeLineDay.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TimeLineDay.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TimeLineDay.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TimeLine.java plantuml-8039/src/net/sourceforge/plantuml/project2/TimeLine.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TimeLine.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TimeLine.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TimeResolution.java plantuml-8039/src/net/sourceforge/plantuml/project2/TimeResolution.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TimeResolution.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TimeResolution.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/TimeUtils.java plantuml-8039/src/net/sourceforge/plantuml/project2/TimeUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/TimeUtils.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/TimeUtils.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/ValueInt.java plantuml-8039/src/net/sourceforge/plantuml/project2/ValueInt.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/ValueInt.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/ValueInt.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/Value.java plantuml-8039/src/net/sourceforge/plantuml/project2/Value.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/Value.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/Value.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/project2/ValueTime.java plantuml-8039/src/net/sourceforge/plantuml/project2/ValueTime.java --- plantuml-8024/src/net/sourceforge/plantuml/project2/ValueTime.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/project2/ValueTime.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/PSystemBuilder.java plantuml-8039/src/net/sourceforge/plantuml/PSystemBuilder.java --- plantuml-8024/src/net/sourceforge/plantuml/PSystemBuilder.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/PSystemBuilder.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,7 +35,6 @@ package net.sourceforge.plantuml; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import net.sourceforge.plantuml.activitydiagram.ActivityDiagramFactory; @@ -48,6 +47,7 @@ import net.sourceforge.plantuml.core.UmlSource; import net.sourceforge.plantuml.creole.PSystemCreoleFactory; import net.sourceforge.plantuml.cute.PSystemCuteFactory; +import net.sourceforge.plantuml.dedication.PSystemDedicationFactory; import net.sourceforge.plantuml.descdiagram.DescriptionDiagramFactory; import net.sourceforge.plantuml.directdot.PSystemDotFactory; import net.sourceforge.plantuml.donors.PSystemDonorsFactory; @@ -55,12 +55,12 @@ import net.sourceforge.plantuml.eggs.PSystemCharlieFactory; import net.sourceforge.plantuml.eggs.PSystemEggFactory; import net.sourceforge.plantuml.eggs.PSystemLostFactory; +import net.sourceforge.plantuml.eggs.PSystemMemorialFactory; import net.sourceforge.plantuml.eggs.PSystemPathFactory; import net.sourceforge.plantuml.eggs.PSystemRIPFactory; import net.sourceforge.plantuml.flowdiagram.FlowDiagramFactory; import net.sourceforge.plantuml.font.PSystemListFontsFactory; import net.sourceforge.plantuml.jungle.PSystemTreeFactory; -import net.sourceforge.plantuml.objectdiagram.ObjectDiagramFactory; import net.sourceforge.plantuml.openiconic.PSystemListOpenIconicFactory; import net.sourceforge.plantuml.openiconic.PSystemOpenIconicFactory; import net.sourceforge.plantuml.oregon.PSystemOregonFactory; @@ -70,6 +70,7 @@ import net.sourceforge.plantuml.salt.PSystemSaltFactory; import net.sourceforge.plantuml.sequencediagram.SequenceDiagramFactory; import net.sourceforge.plantuml.statediagram.StateDiagramFactory; +import net.sourceforge.plantuml.ugraphic.sprite.PSystemListInternalSpritesFactory; import net.sourceforge.plantuml.version.License; import net.sourceforge.plantuml.version.PSystemLicenseFactory; import net.sourceforge.plantuml.version.PSystemVersionFactory; @@ -78,13 +79,13 @@ public static final long startTime = System.currentTimeMillis(); - final public Diagram createPSystem(final List strings) { + final public Diagram createPSystem(final List strings2) { final List factories = getAllFactories(); - final DiagramType type = DiagramType.getTypeFromArobaseStart(strings.get(0).toString()); + final DiagramType type = DiagramType.getTypeFromArobaseStart(strings2.get(0).toString2()); - final UmlSource umlSource = new UmlSource(strings, type == DiagramType.UML); + final UmlSource umlSource = new UmlSource(strings2, type == DiagramType.UML); final DiagramType diagramType = umlSource.getDiagramType(); final List errors = new ArrayList(); for (PSystemFactory systemFactory : factories) { @@ -98,7 +99,7 @@ errors.add((PSystemError) sys); } - final PSystemError err = merge(errors); + final PSystemError err = PSystemError.merge(errors); // if (OptionFlags.getInstance().isQuiet() == false) { // err.print(System.err); // } @@ -115,7 +116,7 @@ factories.add(new StateDiagramFactory()); factories.add(new ActivityDiagramFactory3()); factories.add(new CompositeDiagramFactory()); - factories.add(new ObjectDiagramFactory()); + // factories.add(new ObjectDiagramFactory()); factories.add(new PostIdDiagramFactory()); factories.add(new PrintSkinFactory()); factories.add(new PSystemLicenseFactory()); @@ -124,6 +125,7 @@ factories.add(new PSystemListFontsFactory()); factories.add(new PSystemOpenIconicFactory()); factories.add(new PSystemListOpenIconicFactory()); + factories.add(new PSystemListInternalSpritesFactory()); factories.add(new PSystemSaltFactory(DiagramType.SALT)); factories.add(new PSystemSaltFactory(DiagramType.UML)); factories.add(new PSystemDotFactory(DiagramType.DOT)); @@ -136,28 +138,15 @@ factories.add(new PSystemPathFactory()); factories.add(new PSystemOregonFactory()); factories.add(new PSystemCharlieFactory()); + factories.add(new PSystemMemorialFactory()); factories.add(new PSystemProjectFactory2()); factories.add(new FlowDiagramFactory()); factories.add(new PSystemTreeFactory(DiagramType.JUNGLE)); factories.add(new PSystemCuteFactory(DiagramType.CUTE)); + factories.add(new PSystemDedicationFactory()); return factories; } - private PSystemError merge(Collection ps) { - UmlSource source = null; - final List errors = new ArrayList(); - for (PSystemError system : ps) { - if (system.getSource() != null && source == null) { - source = system.getSource(); - } - errors.addAll(system.getErrorsUml()); - } - if (source == null) { - throw new IllegalStateException(); - } - return new PSystemError(source, errors); - } - private boolean isOk(Diagram ps) { if (ps == null || ps instanceof PSystemError) { return false; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/PSystemError.java plantuml-8039/src/net/sourceforge/plantuml/PSystemError.java --- plantuml-8024/src/net/sourceforge/plantuml/PSystemError.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/PSystemError.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -56,24 +56,15 @@ public class PSystemError extends AbstractPSystem { - private String getSuggestColor(boolean useRed) { - if (useRed) { - return "black"; - } - return "white"; - } - - private String getRed(boolean useRed) { - if (useRed) { - return "#CD0A0A"; - } - return "red"; - } - private final int higherErrorPosition; private final List printedErrors; + private final List debugLines = new ArrayList(); - public PSystemError(UmlSource source, List all) { + public PSystemError(UmlSource source, ErrorUml singleError, List debugLines) { + this(source, Collections.singletonList(singleError), debugLines); + } + + private PSystemError(UmlSource source, List all, List debugLines) { this.setSource(source); final int higherErrorPositionExecution = getHigherErrorPosition(ErrorUmlType.EXECUTION_ERROR, all); @@ -92,10 +83,24 @@ printedErrors = getErrorsAt(higherErrorPositionSyntax, ErrorUmlType.SYNTAX_ERROR, all); } + if (debugLines != null) { + this.debugLines.addAll(debugLines); + } + + } + + private String getSuggestColor(boolean useRed) { + if (useRed) { + return "black"; + } + return "white"; } - public PSystemError(UmlSource source, ErrorUml singleError) { - this(source, Collections.singletonList(singleError)); + private String getRed(boolean useRed) { + if (useRed) { + return "#CD0A0A"; + } + return "red"; } public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException { @@ -111,12 +116,15 @@ final GraphicStrings result = GraphicStrings.createDefault(getHtmlStrings(useRed), useRed); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } private List getTextStrings() { - final List result = new ArrayList(); + final List result = new ArrayList(getStack()); + if (result.size() > 0) { + result.add(" "); + } final int limit = 4; int start; @@ -160,12 +168,44 @@ } first = false; } + result.addAll(this.debugLines); + + return result; + } + private List getStack() { + LineLocation lineLocation = getLineLocation(); + final List result = new ArrayList(); + if (lineLocation != null) { + append(result, lineLocation); + while (lineLocation.getParent() != null) { + lineLocation = lineLocation.getParent(); + append(result, lineLocation); + } + } return result; } + public LineLocation getLineLocation() { + for (ErrorUml err : printedErrors) { + if (err.getLineLocation() != null) { + return err.getLineLocation(); + } + } + return null; + } + + private void append(List result, LineLocation lineLocation) { + if (lineLocation.getDescription() != null) { + result.add("[From " + lineLocation.getDescription() + " (line " + (lineLocation.getPosition() + 1) + ") ]"); + } + } + private List getHtmlStrings(boolean useRed) { - final List htmlStrings = new ArrayList(); + final List htmlStrings = new ArrayList(getStack()); + if (htmlStrings.size() > 0) { + htmlStrings.add("----"); + } final int limit = 4; int start; @@ -188,10 +228,10 @@ if (StringUtils.isNotEmpty(err)) { htmlStrings.add("" + err + ""); } -// final StringBuilder underscore = new StringBuilder(); -// for (int i = 0; i < errorLine.length(); i++) { -// underscore.append("^"); -// } + // final StringBuilder underscore = new StringBuilder(); + // for (int i = 0; i < errorLine.length(); i++) { + // underscore.append("^"); + // } final Collection textErrors = new LinkedHashSet(); for (ErrorUml er : printedErrors) { textErrors.add(er.getError()); @@ -209,6 +249,7 @@ } first = false; } + htmlStrings.addAll(this.debugLines); return htmlStrings; } @@ -284,7 +325,7 @@ final StringBuilder sb = new StringBuilder(); sb.append(getDescription()); sb.append('\n'); - for (CharSequence t : getTitle()) { + for (CharSequence t : getTitle().getDisplay()) { sb.append(t); sb.append('\n'); } @@ -295,4 +336,28 @@ } return sb.toString(); } + + public static PSystemError merge(Collection ps) { + UmlSource source = null; + final List errors = new ArrayList(); + final List debugs = new ArrayList(); + for (PSystemError system : ps) { + if (system == null) { + continue; + } + if (system.getSource() != null && source == null) { + source = system.getSource(); + } + errors.addAll(system.getErrorsUml()); + debugs.addAll(system.debugLines); + if (system.debugLines.size() > 0) { + debugs.add("-"); + } + } + if (source == null) { + throw new IllegalStateException(); + } + return new PSystemError(source, errors, debugs); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/PSystemUtils.java plantuml-8039/src/net/sourceforge/plantuml/PSystemUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/PSystemUtils.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/PSystemUtils.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -56,6 +56,10 @@ public static List exportDiagrams(Diagram system, File suggestedFile, FileFormatOption fileFormatOption) throws IOException { + if (system instanceof UmlDiagram) { + final ISkinParam skinParam = ((UmlDiagram) system).getSkinParam(); + fileFormatOption = fileFormatOption.withSvgLinkTarget(skinParam.getSvgLinkTarget()); + } if (system instanceof NewpagedDiagram) { return exportDiagramsNewpaged((NewpagedDiagram) system, suggestedFile, fileFormatOption); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/AbstractReal.java plantuml-8039/src/net/sourceforge/plantuml/real/AbstractReal.java --- plantuml-8024/src/net/sourceforge/plantuml/real/AbstractReal.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/AbstractReal.java 2016-04-22 16:26:29.000000000 +0000 @@ -0,0 +1,67 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.real; + + +abstract class AbstractReal implements Real { + + private final RealLine line; + + AbstractReal(RealLine line) { + this.line = line; + this.line.register2(this); + } + + final RealLine getLine() { + return line; + } + + abstract double getCurrentValueInternal(); + + final public double getCurrentValue() { + final double result = getCurrentValueInternal(); + line.register(result); + return result; + } + + public Real getMaxAbsolute() { + return line.asMaxAbsolute(); + } + + public Real getMinAbsolute() { + return line.asMinAbsolute(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/PositiveForce.java plantuml-8039/src/net/sourceforge/plantuml/real/PositiveForce.java --- plantuml-8024/src/net/sourceforge/plantuml/real/PositiveForce.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/PositiveForce.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,8 @@ private final Real fixedPoint; private final RealMoveable movingPoint; private final double minimunDistance; + private final boolean trace = false; + private final Throwable creationPoint; public PositiveForce(Real fixedPoint, RealMoveable movingPoint, double minimunDistance) { if (fixedPoint == movingPoint) { @@ -47,6 +49,8 @@ this.fixedPoint = fixedPoint; this.movingPoint = movingPoint; this.minimunDistance = minimunDistance; + this.creationPoint = new Throwable(); + this.creationPoint.fillInStackTrace(); } @Override @@ -55,12 +59,32 @@ } public boolean apply() { - final double distance = movingPoint.getCurrentValue() - fixedPoint.getCurrentValue(); + if (trace) { + System.err.println("apply " + this); + } + final double movingPointValue = movingPoint.getCurrentValue(); + final double fixedPointValue; + try { + fixedPointValue = fixedPoint.getCurrentValue(); + } catch (IllegalStateException e) { + System.err.println("Pb with force " + this); + System.err.println("This force has been created here:"); + creationPoint.printStackTrace(); + System.err.println("The fixed point has been created here: " + fixedPoint); + fixedPoint.printCreationStackTrace(); + throw e; + } + final double distance = movingPointValue - fixedPointValue; final double diff = distance - minimunDistance; if (diff >= 0) { + if (trace) { + System.err.println("Not using "); + } return false; } - // System.err.println("moving " + (-diff) + " " + movingPoint); + if (trace) { + System.err.println("moving " + (-diff) + " " + movingPoint); + } movingPoint.move(-diff); return true; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/RealDelta.java plantuml-8039/src/net/sourceforge/plantuml/real/RealDelta.java --- plantuml-8024/src/net/sourceforge/plantuml/real/RealDelta.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/RealDelta.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,12 +40,13 @@ private final double diff; RealDelta(Real delegated, double diff) { - super("[Delegated {" + delegated.getName() + "} d=" + diff + "]"); + super(((AbstractReal) delegated).getLine(), "[Delegated {" + delegated.getName() + "} d=" + diff + "]"); this.delegated = delegated; this.diff = diff; } - public double getCurrentValue() { + @Override + double getCurrentValueInternal() { return delegated.getCurrentValue() + diff; } @@ -55,19 +56,10 @@ public void ensureBiggerThan(Real other) { delegated.ensureBiggerThan(new RealDelta(other, -diff)); - - } - - public void compile() { - delegated.compile(); } void move(double delta) { ((RealMoveable) delegated).move(delta); } - RealLine getLine() { - return ((RealMoveable) delegated).getLine(); - } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/RealImpl.java plantuml-8039/src/net/sourceforge/plantuml/real/RealImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/real/RealImpl.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/RealImpl.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,14 +34,12 @@ */ package net.sourceforge.plantuml.real; -class RealImpl extends RealMoveable { +class RealImpl extends RealMoveable implements RealOrigin { - private final RealLine line; private double currentValue; public RealImpl(String name, RealLine line, double currentValue) { - super(name); - this.line = line; + super(line, name); this.currentValue = currentValue; } @@ -49,26 +47,22 @@ this.currentValue += delta; } - public double getCurrentValue() { + @Override + double getCurrentValueInternal() { return currentValue; } public Real addAtLeast(double delta) { - final RealImpl result = new RealImpl(getName() + ".addAtLeast" + delta, line, this.currentValue + delta); - line.addForce(new PositiveForce(this, result, delta)); + final RealImpl result = new RealImpl(getName() + ".addAtLeast" + delta, getLine(), this.currentValue + delta); + getLine().addForce(new PositiveForce(this, result, delta)); return result; } public void ensureBiggerThan(Real other) { - line.addForce(new PositiveForce(other, this, 0)); + getLine().addForce(new PositiveForce(other, this, 0)); } - public void compile() { - line.compile(); + public void compileNow() { + getLine().compile(); } - - RealLine getLine() { - return line; - } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/Real.java plantuml-8039/src/net/sourceforge/plantuml/real/Real.java --- plantuml-8024/src/net/sourceforge/plantuml/real/Real.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/Real.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,8 @@ public interface Real { + public void printCreationStackTrace(); + public String getName(); public double getCurrentValue(); @@ -46,6 +48,8 @@ public void ensureBiggerThan(Real other); - public void compile(); - +// public Real getMaxAbsolute(); +// +// public Real getMinAbsolute(); +// } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/RealLine.java plantuml-8039/src/net/sourceforge/plantuml/real/RealLine.java --- plantuml-8024/src/net/sourceforge/plantuml/real/RealLine.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/RealLine.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,12 +35,38 @@ package net.sourceforge.plantuml.real; import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Set; class RealLine { private final List forces = new ArrayList(); + private double min; + private double max; + private Set all = new HashSet(); + + void register(double v) { + // System.err.println("RealLine::register " + v); + // min = Math.min(min, v); + // max = Math.max(max, v); + } + + void register2(AbstractReal abstractReal) { + all.add(abstractReal); + } + + public double getAbsoluteMin() { + return min; + } + + public double getAbsoluteMax() { + return max; + } + public void addForce(PositiveForce force) { this.forces.add(force); } @@ -49,12 +75,14 @@ public void compile() { int cpt = 0; + final Map counter = new HashMap(); do { boolean done = true; for (PositiveForce f : forces) { // System.err.println("force=" + f); final boolean change = f.apply(); if (change) { + incCounter(counter, f); // System.err.println("changed! " + f); done = false; } @@ -63,14 +91,90 @@ // System.err.println("cpt=" + cpt + " size=" + forces.size()); CPT += cpt; // System.err.println("CPT=" + CPT); + min = 0; + max = 0; + for (AbstractReal real : all) { + final double v = real.getCurrentValue(); + // System.err.println("RealLine::compile v=" + v); + if (v > max) { + max = v; + } + if (v < min) { + min = v; + } + } + // System.err.println("RealLine::compile min=" + min + " max=" + max); return; } cpt++; if (cpt > 99999) { + printCounter(counter); throw new IllegalStateException("Inifinite Loop?"); } } while (true); } + private void printCounter(Map counter) { + for (Map.Entry ent : counter.entrySet()) { + System.err.println("count=" + ent.getValue() + " for " + ent.getKey()); + } + } + + private static void incCounter(Map counter, PositiveForce f) { + final Integer v = counter.get(f); + counter.put(f, v == null ? 1 : v + 1); + } + + Real asMaxAbsolute() { + return new MaxAbsolute(); + } + + Real asMinAbsolute() { + return new MinAbsolute(); + } + + class MaxAbsolute extends AbstractAbsolute { + public double getCurrentValue() { + return max; + } + } + + class MinAbsolute extends AbstractAbsolute { + public double getCurrentValue() { + return min; + } + } + + abstract class AbstractAbsolute implements Real { + + public void printCreationStackTrace() { + } + + public String getName() { + return getClass().getName(); + } + + public Real addFixed(double delta) { + throw new UnsupportedOperationException(); + } + + public Real addAtLeast(double delta) { + throw new UnsupportedOperationException(); + } + + public void ensureBiggerThan(Real other) { + throw new UnsupportedOperationException(); + } + + public Real getMaxAbsolute() { + return asMaxAbsolute(); + } + + public Real getMinAbsolute() { + return asMinAbsolute(); + } + + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/RealMax.java plantuml-8039/src/net/sourceforge/plantuml/real/RealMax.java --- plantuml-8024/src/net/sourceforge/plantuml/real/RealMax.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/RealMax.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,29 +35,42 @@ package net.sourceforge.plantuml.real; import java.util.ArrayList; +import java.util.Collection; import java.util.List; -public class RealMax implements Real { +class RealMax extends AbstractReal implements Real { private final List all = new ArrayList(); + private final Throwable creationPoint; - public void put(Real real) { - if (real == null) { - throw new IllegalArgumentException(); - } - if (real == this) { - return; - } - all.add(real); + RealMax(Collection reals) { + super(line(reals)); + this.all.addAll(reals); + this.creationPoint = new Throwable(); + this.creationPoint.fillInStackTrace(); + } + + static RealLine line(Collection reals) { + return ((AbstractReal) reals.iterator().next()).getLine(); } public String getName() { return "max " + all; } - public double getCurrentValue() { + @Override + double getCurrentValueInternal() { double result = all.get(0).getCurrentValue(); for (int i = 1; i < all.size(); i++) { + Throwable t = new Throwable(); + t.fillInStackTrace(); + final int stackLength = t.getStackTrace().length; + if (stackLength > 1000) { + System.err.println("The faulty RealMax " + getName()); + System.err.println("has been created here:"); + printCreationStackTrace(); + throw new IllegalStateException("Infinite recursion?"); + } final double v = all.get(i).getCurrentValue(); if (v > result) { result = v; @@ -75,11 +88,11 @@ } public void ensureBiggerThan(Real other) { - all.add(other); + throw new UnsupportedOperationException(); } - public void compile() { - all.get(0).compile(); + public void printCreationStackTrace() { + creationPoint.printStackTrace(); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/RealMiddle2.java plantuml-8039/src/net/sourceforge/plantuml/real/RealMiddle2.java --- plantuml-8024/src/net/sourceforge/plantuml/real/RealMiddle2.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/RealMiddle2.java 2016-04-22 16:26:29.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.real; + +class RealMiddle2 extends RealMoveable { + + private final RealMoveable p1; + private final RealMoveable p2; + + RealMiddle2(RealMoveable p1, RealMoveable p2) { + super(p1.getLine(), "middle"); + assert p1.getLine() == p2.getLine(); + this.p1 = p1; + this.p2 = p2; + } + + @Override + double getCurrentValueInternal() { + return (p1.getCurrentValue() + p2.getCurrentValue()) / 2; + } + + // public Real addFixed(double diff) { + // return new RealMiddle2(p1, p2, delta + diff); + // } + + public Real addAtLeast(double delta) { + throw new UnsupportedOperationException(); + } + + public void ensureBiggerThan(Real other) { + getLine().addForce(new PositiveForce(other, this, 0)); + } + + @Override + void move(double delta) { + p1.move(delta / 2); + p2.move(delta / 2); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/RealMiddle.java plantuml-8039/src/net/sourceforge/plantuml/real/RealMiddle.java --- plantuml-8024/src/net/sourceforge/plantuml/real/RealMiddle.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/RealMiddle.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,13 +34,14 @@ */ package net.sourceforge.plantuml.real; -class RealMiddle implements Real { +class RealMiddle extends AbstractReal implements Real { private final RealMoveable p1; private final RealMoveable p2; private final double delta; private RealMiddle(RealMoveable p1, RealMoveable p2, double delta) { + super(p1.getLine()); this.p1 = p1; this.p2 = p2; this.delta = delta; @@ -50,7 +51,8 @@ this(p1, p2, 0); } - public double getCurrentValue() { + @Override + double getCurrentValueInternal() { return (p1.getCurrentValue() + p2.getCurrentValue()) / 2 + delta; } @@ -66,12 +68,12 @@ throw new UnsupportedOperationException(); } - public void compile() { - p1.compile(); - } - public String getName() { return "[Middle " + p1.getName() + " and " + p2.getName() + "]"; } + public void printCreationStackTrace() { + throw new UnsupportedOperationException(); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/RealMin.java plantuml-8039/src/net/sourceforge/plantuml/real/RealMin.java --- plantuml-8024/src/net/sourceforge/plantuml/real/RealMin.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/RealMin.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,27 +35,24 @@ package net.sourceforge.plantuml.real; import java.util.ArrayList; +import java.util.Collection; import java.util.List; -public class RealMin implements Real { +class RealMin extends AbstractReal implements Real { private final List all = new ArrayList(); - public void put(Real real) { - if (real == null) { - throw new IllegalArgumentException(); - } - if (real == this) { - return; - } - all.add(real); + RealMin(Collection reals) { + super(RealMax.line(reals)); + this.all.addAll(reals); } public String getName() { return "min " + all; } - public double getCurrentValue() { + @Override + double getCurrentValueInternal() { double result = all.get(0).getCurrentValue(); for (int i = 1; i < all.size(); i++) { final double v = all.get(i).getCurrentValue(); @@ -75,15 +72,17 @@ } public void ensureBiggerThan(Real other) { - throw new UnsupportedOperationException(); - } - - public void compile() { - all.get(0).compile(); + for (Real r : all) { + r.ensureBiggerThan(other); + } } public int size() { return all.size(); } + public void printCreationStackTrace() { + throw new UnsupportedOperationException(); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/RealMoveable.java plantuml-8039/src/net/sourceforge/plantuml/real/RealMoveable.java --- plantuml-8024/src/net/sourceforge/plantuml/real/RealMoveable.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/RealMoveable.java 2016-04-22 16:26:29.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,29 +34,38 @@ */ package net.sourceforge.plantuml.real; -abstract class RealMoveable implements Real { +import java.util.concurrent.atomic.AtomicInteger; +abstract class RealMoveable extends AbstractReal implements Real { + + public static final AtomicInteger CPT = new AtomicInteger(); + private final int cpt = CPT.getAndIncrement(); private final String name; + private final Throwable creationPoint; - RealMoveable(String name) { + RealMoveable(RealLine line, String name) { + super(line); this.name = name; + this.creationPoint = new Throwable(); + this.creationPoint.fillInStackTrace(); } abstract void move(double delta); - abstract RealLine getLine(); + final public void printCreationStackTrace() { + creationPoint.printStackTrace(); + } final public Real addFixed(double delta) { return new RealDelta(this, delta); } @Override - public String toString() { - return name; + public final String toString() { + return "#" + cpt + "_" + name; } final public String getName() { return name; } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/RealOrigin.java plantuml-8039/src/net/sourceforge/plantuml/real/RealOrigin.java --- plantuml-8024/src/net/sourceforge/plantuml/real/RealOrigin.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/RealOrigin.java 2016-04-22 16:26:29.000000000 +0000 @@ -0,0 +1,40 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.real; + +public interface RealOrigin extends Real { + + public void compileNow(); +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/real/RealUtils.java plantuml-8039/src/net/sourceforge/plantuml/real/RealUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/real/RealUtils.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/real/RealUtils.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,26 +34,34 @@ */ package net.sourceforge.plantuml.real; -import java.util.List; +import java.util.Arrays; +import java.util.Collection; public class RealUtils { - public static Real createOrigin() { + public static RealOrigin createOrigin() { final RealLine line = new RealLine(); final RealImpl result = new RealImpl("O", line, 0); return result; } public static Real middle(Real r1, Real r2) { - return new RealMiddle((RealMoveable) r1, (RealMoveable) r2); + return new RealMiddle2((RealMoveable) r1, (RealMoveable) r2); } - // public static Real max(List all) { - // return new RealMax(all); - // } - // - // public static Real min(List all) { - // return new RealMin(all); - // } + public static Real max(Real... reals) { + return new RealMax(Arrays.asList(reals)); + } + + public static Real max(Collection reals) { + return new RealMax(reals); + } + public static Real min(Real... reals) { + return new RealMin(Arrays.asList(reals)); + } + + public static Real min(Collection reals) { + return new RealMin(reals); + } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/Removeable.java plantuml-8039/src/net/sourceforge/plantuml/Removeable.java --- plantuml-8024/src/net/sourceforge/plantuml/Removeable.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/Removeable.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/Run.java plantuml-8039/src/net/sourceforge/plantuml/Run.java --- plantuml-8024/src/net/sourceforge/plantuml/Run.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/Run.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -65,8 +65,8 @@ import net.sourceforge.plantuml.sequencediagram.SequenceDiagramFactory; import net.sourceforge.plantuml.statediagram.StateDiagramFactory; import net.sourceforge.plantuml.swing.MainWindow2; -import net.sourceforge.plantuml.ugraphic.SpriteGrayLevel; -import net.sourceforge.plantuml.ugraphic.SpriteUtils; +import net.sourceforge.plantuml.ugraphic.sprite.SpriteGrayLevel; +import net.sourceforge.plantuml.ugraphic.sprite.SpriteUtils; import net.sourceforge.plantuml.version.Version; public class Run { @@ -275,7 +275,16 @@ ps.println(system.getDescription()); } } else if (option.isPipe()) { - sourceStringReader.generateImage(ps, 0, option.getFileFormatOption()); + final String result = sourceStringReader.generateImage(ps, 0, option.getFileFormatOption()); + if ("(error)".equalsIgnoreCase(result)) { + System.err.println("ERROR"); + final Diagram system = sourceStringReader.getBlocks().get(0).getDiagram(); + final PSystemError sys = (PSystemError) system; + System.err.println(sys.getHigherErrorPosition()); + for (ErrorUml er : sys.getErrorsUml()) { + System.err.println(er.getError()); + } + } } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/Cell.java plantuml-8039/src/net/sourceforge/plantuml/salt/Cell.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/Cell.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/Cell.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/DataSourceImpl.java plantuml-8039/src/net/sourceforge/plantuml/salt/DataSourceImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/DataSourceImpl.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/DataSourceImpl.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,6 +40,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; public class DataSourceImpl implements DataSource { @@ -52,7 +53,7 @@ for (String s : data) { final StringTokenizer st = new StringTokenizer(s, "|}", true); while (st.hasMoreTokens()) { - final String token = st.nextToken().trim(); + final String token = StringUtils.trin(st.nextToken()); if (token.equals("|")) { continue; } @@ -83,7 +84,7 @@ } private void addInternal(String s, Terminator t) { - s = s.trim(); + s = StringUtils.trin(s); if (s.length() > 0) { data.add(new Terminated(s, t)); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/DataSource.java plantuml-8039/src/net/sourceforge/plantuml/salt/DataSource.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/DataSource.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/DataSource.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/Dictionary.java plantuml-8039/src/net/sourceforge/plantuml/salt/Dictionary.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/Dictionary.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/Dictionary.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,9 +39,12 @@ import net.sourceforge.plantuml.ISkinSimple; import net.sourceforge.plantuml.SpriteContainer; +import net.sourceforge.plantuml.creole.CommandCreoleMonospaced; +import net.sourceforge.plantuml.graphic.HtmlColorSetSimple; +import net.sourceforge.plantuml.graphic.IHtmlColorSet; import net.sourceforge.plantuml.salt.element.Element; import net.sourceforge.plantuml.salt.element.WrappedElement; -import net.sourceforge.plantuml.ugraphic.Sprite; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; public class Dictionary implements SpriteContainer, ISkinSimple { @@ -66,7 +69,7 @@ public String getValue(String key) { return null; } - + public double getPadding() { return 0; } @@ -75,4 +78,16 @@ return true; } + public String getMonospacedFamily() { + return CommandCreoleMonospaced.MONOSPACED; + } + + public int getTabSize() { + return 8; + } + + public IHtmlColorSet getIHtmlColorSet() { + return new HtmlColorSetSimple(); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/AbstractElement.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/AbstractElement.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/AbstractElement.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/AbstractElement.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/AbstractElementText.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/AbstractElementText.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/AbstractElementText.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/AbstractElementText.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,13 +38,12 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; @@ -56,14 +55,14 @@ private final int charLength; public AbstractElementText(String text, UFont font, boolean manageLength, ISkinSimple spriteContainer) { - config = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); + config = FontConfiguration.blackBlueTrue(font); if (manageLength) { this.charLength = getCharNumber(text); - text = text.trim(); + text = StringUtils.trin(text); } else { this.charLength = 0; } - this.block = TextBlockUtils.create(Display.create(text), config, HorizontalAlignment.LEFT, spriteContainer); + this.block = Display.create(text).create(config, HorizontalAlignment.LEFT, spriteContainer); } private int getCharNumber(String text) { @@ -96,7 +95,7 @@ // double max = 0; // for (int i = 32; i < 127; i++) { // final char c = (char) i; - // final double w = TextBlockUtils.create(Arrays.asList("" + c), config, HorizontalAlignment.LEFT) + // final double w = Display.create(Arrays.asList("" + c), config, HorizontalAlignment.LEFT) // .calculateDimension(stringBounder).getWidth(); // if (w > max) { // Log.println("c="+c+" "+max); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementBorder.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementBorder.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementBorder.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementBorder.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementButton.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementButton.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementButton.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementButton.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementDroplist.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementDroplist.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementDroplist.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementDroplist.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -73,8 +73,7 @@ if (drop.size() == 0) { this.openDrop = null; } else { - this.openDrop = TextBlockUtils.create(Display.create(drop), getConfig(), HorizontalAlignment.LEFT, - spriteContainer); + this.openDrop = Display.create(drop).create(getConfig(), HorizontalAlignment.LEFT, spriteContainer); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementEmpty.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementEmpty.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementEmpty.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementEmpty.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementImage.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementImage.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementImage.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementImage.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/Element.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/Element.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/Element.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/Element.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementLine.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementLine.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementLine.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementLine.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementMenuBar.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementMenuBar.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementMenuBar.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementMenuBar.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementMenuEntry.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementMenuEntry.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementMenuEntry.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementMenuEntry.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,10 +42,8 @@ import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; @@ -59,8 +57,8 @@ private double xxx; public ElementMenuEntry(String text, UFont font, ISkinSimple spriteContainer) { - final FontConfiguration config = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); - this.block = TextBlockUtils.create(Display.create(text), config, HorizontalAlignment.LEFT, spriteContainer); + final FontConfiguration config = FontConfiguration.blackBlueTrue(font); + this.block = Display.create(text).create(config, HorizontalAlignment.LEFT, spriteContainer); this.text = text; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementMenuPopup.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementMenuPopup.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementMenuPopup.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementMenuPopup.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementPyramid.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementPyramid.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementPyramid.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementPyramid.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementRadioCheckbox.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementRadioCheckbox.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementRadioCheckbox.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementRadioCheckbox.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,10 +42,8 @@ import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UEllipse; import net.sourceforge.plantuml.ugraphic.UFont; @@ -68,8 +66,8 @@ public ElementRadioCheckbox(List text, UFont font, boolean radio, boolean checked, ISkinSimple spriteContainer) { - final FontConfiguration config = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); - this.block = TextBlockUtils.create(Display.create(text), config, HorizontalAlignment.LEFT, spriteContainer); + final FontConfiguration config = FontConfiguration.blackBlueTrue(font); + this.block = Display.create(text).create(config, HorizontalAlignment.LEFT, spriteContainer); this.radio = radio; this.checked = checked; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementTabBar.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementTabBar.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementTabBar.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementTabBar.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementTextField.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementTextField.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementTextField.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementTextField.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementText.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementText.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementText.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementText.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,10 +41,8 @@ import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; @@ -55,8 +53,8 @@ private final String text; public ElementText(List text, UFont font, ISkinSimple spriteContainer) { - final FontConfiguration config = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true); - this.block = TextBlockUtils.create(Display.create(text), config, HorizontalAlignment.LEFT, spriteContainer); + final FontConfiguration config = FontConfiguration.blackBlueTrue(font); + this.block = Display.create(text).create(config, HorizontalAlignment.LEFT, spriteContainer); this.show = text.get(0).equals(".") == false; this.text = text.get(0); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementTreeEntry.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementTreeEntry.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementTreeEntry.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementTreeEntry.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementTree.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementTree.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ElementTree.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ElementTree.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,14 +42,12 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.graphic.HtmlColorSet; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.UChangeColor; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.ugraphic.ULine; -import net.sourceforge.plantuml.ugraphic.URectangle; -import net.sourceforge.plantuml.ugraphic.UTranslate; public class ElementTree extends AbstractElement { @@ -71,14 +69,14 @@ level++; s = s.substring(1); } - final Element elmt = new ElementText(Arrays.asList(s.trim()), font, spriteContainer); + final Element elmt = new ElementText(Arrays.asList(StringUtils.trin(s)), font, spriteContainer); entries.add(new ElementTreeEntry(level, elmt)); } public void addCellToEntry(String s) { final int size = entries.size(); if (size > 0) { - final Element elmt = new ElementText(Arrays.asList(s.trim()), font, spriteContainer); + final Element elmt = new ElementText(Arrays.asList(StringUtils.trin(s)), font, spriteContainer); entries.get(size - 1).addCell(elmt); } } @@ -154,56 +152,4 @@ } } - static class Skeleton { - - private final List entries = new ArrayList(); - - static class Entry { - private final double xpos; - private final double ypos; - - public Entry(double x, double y) { - this.xpos = x; - this.ypos = y; - } - - public void drawRectangle(UGraphic ug) { - ug.apply(new UTranslate(xpos, ypos)).draw(new URectangle(2, 2)); - } - } - - public void add(double x, double y) { - entries.add(new Entry(x, y)); - } - - public void draw(UGraphic ug, double x, double y) { - for (int i = 0; i < entries.size(); i++) { - final Entry en = entries.get(i); - if (i + 1 < entries.size() && entries.get(i + 1).xpos > en.xpos) { - en.drawRectangle(ug); - } - Entry parent = null; - for (int j = 0; j < i; j++) { - final Entry en0 = entries.get(j); - if (en0.xpos < en.xpos) { - parent = en0; - } - } - if (parent != null) { - drawChild(ug, parent, en); - } - } - } - - private void drawChild(UGraphic ug, Entry parent, Entry child) { - final double dy = child.ypos - parent.ypos - 2; - ug.apply(new UTranslate(parent.xpos + 1, parent.ypos + 3)).draw(new ULine(0, dy)); - - final double dx = child.xpos - parent.xpos - 2; - ug.apply(new UTranslate(parent.xpos + 1, child.ypos + 1)).draw(new ULine(dx, 0)); - - } - - } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/Grid2.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/Grid2.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/Grid2.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/Grid2.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/Grid.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/Grid.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/Grid.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/Grid.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/LeftFirst.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/LeftFirst.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/LeftFirst.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/LeftFirst.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/ListWidth.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/ListWidth.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/ListWidth.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/ListWidth.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/Segment.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/Segment.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/Segment.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/Segment.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/Skeleton2.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/Skeleton2.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/Skeleton2.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/Skeleton2.java 2016-04-22 16:26:30.000000000 +0000 @@ -0,0 +1,133 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.salt.element; + +import java.util.ArrayList; +import java.util.List; + +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.ULine; +import net.sourceforge.plantuml.ugraphic.URectangle; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class Skeleton2 { + + private final List entries = new ArrayList(); + private static final double sizeX = 8; + + static class Entry { + private final int level; + private final double ypos; + + Entry(int level, double y) { + // System.err.println("level=" + level); + this.level = level; + this.ypos = y; + } + + void drawHline(UGraphic ug) { + final double xpos = getXStartForLevel(level); + ug.apply(new UTranslate(xpos + sizeX - 1, ypos - 1)).draw(new URectangle(2, 2)); + ug.apply(new UTranslate(xpos, ypos)).draw(new ULine(sizeX, 0)); + } + + public void drawVline(UGraphic ug, double lastY) { + // System.err.println("ypos=" + ypos); + final double xpos = getXStartForLevel(level); + ug.apply(new UTranslate(xpos, lastY)).draw(new ULine(0, ypos - lastY)); + } + } + + public void add(int level, double y) { + entries.add(new Entry(level, y)); + } + + public void draw(UGraphic ug) { + for (int i = 0; i < entries.size(); i++) { + final Entry en = entries.get(i); + en.drawHline(ug); + final Entry up = getMotherOrSister(i); + en.drawVline(ug, up == null ? 0 : up.ypos); + } + } + + private Entry getMotherOrSister(int idx) { + final int currentLevel = entries.get(idx).level; + for (int i = idx - 1; i >= 0; i--) { + final int otherLevel = entries.get(i).level; + if (otherLevel == currentLevel || otherLevel == currentLevel - 1) { + return entries.get(i); + } + } + return null; + } + + private static double getXStartForLevel(int level) { + return level * sizeX; + } + + public double getXEndForLevel(int level) { + return getXStartForLevel(level) + sizeX; + } + + // public void drawOld(UGraphic ug, double x, double y) { + // for (int i = 0; i < entries.size(); i++) { + // final Entry en = entries.get(i); + // if (i + 1 < entries.size() && entries.get(i + 1).xpos > en.xpos) { + // en.drawRectangle(ug); + // } + // Entry parent = null; + // for (int j = 0; j < i; j++) { + // final Entry en0 = entries.get(j); + // if (en0.xpos < en.xpos) { + // parent = en0; + // } + // } + // if (parent != null) { + // drawChild(ug, parent, en); + // } + // } + // } + // + // private void drawChild(UGraphic ug, Entry parent, Entry child) { + // final double dy = child.ypos - parent.ypos - 2; + // ug.apply(new UTranslate(parent.xpos + 1, parent.ypos + 3)).draw(new ULine(0, dy)); + // + // final double dx = child.xpos - parent.xpos - 2; + // ug.apply(new UTranslate(parent.xpos + 1, child.ypos + 1)).draw(new ULine(dx, 0)); + // + // } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/Skeleton.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/Skeleton.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/Skeleton.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/Skeleton.java 2016-04-22 16:26:30.000000000 +0000 @@ -0,0 +1,95 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.salt.element; + +import java.util.ArrayList; +import java.util.List; + +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.ULine; +import net.sourceforge.plantuml.ugraphic.URectangle; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class Skeleton { + + private final List entries = new ArrayList(); + + static class Entry { + private final double xpos; + private final double ypos; + + public Entry(double x, double y) { + this.xpos = x; + this.ypos = y; + } + + public void drawRectangle(UGraphic ug) { + ug.apply(new UTranslate(xpos, ypos)).draw(new URectangle(2, 2)); + } + } + + public void add(double x, double y) { + entries.add(new Entry(x, y)); + } + + public void draw(UGraphic ug, double x, double y) { + for (int i = 0; i < entries.size(); i++) { + final Entry en = entries.get(i); + if (i + 1 < entries.size() && entries.get(i + 1).xpos > en.xpos) { + en.drawRectangle(ug); + } + Entry parent = null; + for (int j = 0; j < i; j++) { + final Entry en0 = entries.get(j); + if (en0.xpos < en.xpos) { + parent = en0; + } + } + if (parent != null) { + drawChild(ug, parent, en); + } + } + } + + private void drawChild(UGraphic ug, Entry parent, Entry child) { + final double dy = child.ypos - parent.ypos - 2; + ug.apply(new UTranslate(parent.xpos + 1, parent.ypos + 3)).draw(new ULine(0, dy)); + + final double dx = child.xpos - parent.xpos - 2; + ug.apply(new UTranslate(parent.xpos + 1, child.ypos + 1)).draw(new ULine(dx, 0)); + + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/TableStrategy.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/TableStrategy.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/TableStrategy.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/TableStrategy.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/TopFirst.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/TopFirst.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/TopFirst.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/TopFirst.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/element/WrappedElement.java plantuml-8039/src/net/sourceforge/plantuml/salt/element/WrappedElement.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/element/WrappedElement.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/element/WrappedElement.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/AbstractElementFactoryComplex.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/AbstractElementFactoryComplex.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/AbstractElementFactoryComplex.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/AbstractElementFactoryComplex.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryBorder.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryBorder.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryBorder.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryBorder.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryButton.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryButton.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryButton.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryButton.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryCheckboxOff.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryCheckboxOff.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryCheckboxOff.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryCheckboxOff.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import java.util.List; import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.salt.DataSource; import net.sourceforge.plantuml.salt.Terminated; import net.sourceforge.plantuml.salt.element.Element; @@ -68,7 +69,7 @@ private List extracted(final String text) { final int x = text.indexOf(']'); - return Arrays.asList(text.substring(x + 1).trim()); + return Arrays.asList(StringUtils.trin(text.substring(x + 1))); } public boolean ready() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryCheckboxOn.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryCheckboxOn.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryCheckboxOn.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryCheckboxOn.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import java.util.List; import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.salt.DataSource; import net.sourceforge.plantuml.salt.Terminated; import net.sourceforge.plantuml.salt.element.Element; @@ -68,7 +69,7 @@ private List extracted(final String text) { final int x = text.indexOf(']'); - return Arrays.asList(text.substring(x + 1).trim()); + return Arrays.asList(StringUtils.trin(text.substring(x + 1))); } public boolean ready() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryDroplist.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryDroplist.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryDroplist.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryDroplist.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryImage.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryImage.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryImage.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryImage.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactory.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactory.java 2015-05-03 15:06:22.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactory.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryLine.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryLine.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryLine.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryLine.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryMenu.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryMenu.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryMenu.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryMenu.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryPyramid.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryPyramid.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryPyramid.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryPyramid.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRadioOff.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRadioOff.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRadioOff.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRadioOff.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import java.util.List; import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.salt.DataSource; import net.sourceforge.plantuml.salt.Terminated; import net.sourceforge.plantuml.salt.element.Element; @@ -68,7 +69,7 @@ private List extracted(final String text) { final int x = text.indexOf(')'); - return Arrays.asList(text.substring(x + 1).trim()); + return Arrays.asList(StringUtils.trin(text.substring(x + 1))); } public boolean ready() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRadioOn.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRadioOn.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRadioOn.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRadioOn.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import java.util.List; import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.salt.DataSource; import net.sourceforge.plantuml.salt.Terminated; import net.sourceforge.plantuml.salt.element.Element; @@ -68,7 +69,7 @@ private List extracted(final String text) { final int x = text.indexOf(')'); - return Arrays.asList(text.substring(x + 1).trim()); + return Arrays.asList(StringUtils.trin(text.substring(x + 1))); } public boolean ready() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRetrieveFromDictonnary.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRetrieveFromDictonnary.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRetrieveFromDictonnary.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryRetrieveFromDictonnary.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTab.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTab.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTab.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTab.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTextField.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTextField.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTextField.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTextField.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryText.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryText.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryText.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryText.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,7 +38,7 @@ import java.util.Arrays; import net.sourceforge.plantuml.ISkinSimple; -import net.sourceforge.plantuml.SpriteContainer; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.salt.DataSource; import net.sourceforge.plantuml.salt.Terminated; import net.sourceforge.plantuml.salt.element.Element; @@ -72,7 +72,7 @@ if (text.startsWith("{") || text.startsWith("}")) { return false; } - return text.trim().length() > 0; + return StringUtils.trin(text).length() > 0; } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTree.java plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTree.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTree.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/factory/ElementFactoryTree.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/Position.java plantuml-8039/src/net/sourceforge/plantuml/salt/Position.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/Position.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/Position.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/Positionner2.java plantuml-8039/src/net/sourceforge/plantuml/salt/Positionner2.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/Positionner2.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/Positionner2.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/PSystemSaltFactory.java plantuml-8039/src/net/sourceforge/plantuml/salt/PSystemSaltFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/PSystemSaltFactory.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/PSystemSaltFactory.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,7 @@ */ package net.sourceforge.plantuml.salt; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.PSystemBasicFactory; import net.sourceforge.plantuml.core.DiagramType; @@ -62,7 +63,7 @@ if (system == null) { return null; } - system.add(line.trim()); + system.add(StringUtils.trin(line)); return system; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/PSystemSalt.java plantuml-8039/src/net/sourceforge/plantuml/salt/PSystemSalt.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/PSystemSalt.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/PSystemSalt.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -87,7 +87,7 @@ final Dimension2D size = salt.getPreferredDimension(TextBlockUtils.getDummyStringBounder(), 0, 0); final ImageBuilder builder = new ImageBuilder(new ColorMapperIdentity(), 1.0, HtmlColorUtils.WHITE, null, null, 5, 5, null, false); - builder.addUDrawable(new UDrawable() { + builder.setUDrawable(new UDrawable() { public void drawU(UGraphic ug) { ug = ug.apply(new UChangeColor(HtmlColorUtils.BLACK)); @@ -95,7 +95,7 @@ salt.drawU(ug, 1, new Dimension2DDouble(size.getWidth(), size.getHeight())); } }); - return builder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + return builder.writeImageTOBEMOVED(fileFormat, os); } private ImageData exportDiagramOld(OutputStream os, int num, FileFormatOption fileFormat) throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/SaltUtils.java plantuml-8039/src/net/sourceforge/plantuml/salt/SaltUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/SaltUtils.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/SaltUtils.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/Terminated.java plantuml-8039/src/net/sourceforge/plantuml/salt/Terminated.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/Terminated.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/Terminated.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/salt/Terminator.java plantuml-8039/src/net/sourceforge/plantuml/salt/Terminator.java --- plantuml-8024/src/net/sourceforge/plantuml/salt/Terminator.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/salt/Terminator.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ScaleHeight.java plantuml-8039/src/net/sourceforge/plantuml/ScaleHeight.java --- plantuml-8024/src/net/sourceforge/plantuml/ScaleHeight.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ScaleHeight.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/Scale.java plantuml-8039/src/net/sourceforge/plantuml/Scale.java --- plantuml-8024/src/net/sourceforge/plantuml/Scale.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/Scale.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ScaleMaxHeight.java plantuml-8039/src/net/sourceforge/plantuml/ScaleMaxHeight.java --- plantuml-8024/src/net/sourceforge/plantuml/ScaleMaxHeight.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ScaleMaxHeight.java 2016-04-22 16:26:30.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +public class ScaleMaxHeight implements Scale { + + private final double maxHeight; + + public ScaleMaxHeight(double maxHeight) { + this.maxHeight = maxHeight; + } + + public double getScale(double width, double height) { + final double result = maxHeight / height; + if (result > 1) { + return 1; + } + return result; + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ScaleMaxWidthAndHeight.java plantuml-8039/src/net/sourceforge/plantuml/ScaleMaxWidthAndHeight.java --- plantuml-8024/src/net/sourceforge/plantuml/ScaleMaxWidthAndHeight.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ScaleMaxWidthAndHeight.java 2016-04-22 16:26:30.000000000 +0000 @@ -0,0 +1,56 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +public class ScaleMaxWidthAndHeight implements Scale { + + private final double maxWidth; + private final double maxHeight; + + public ScaleMaxWidthAndHeight(double maxWidth, double maxHeight) { + this.maxWidth = maxWidth; + this.maxHeight = maxHeight; + } + + public double getScale(double width, double height) { + final double scale1 = maxWidth / width; + final double scale2 = maxHeight / height; + final double min = Math.min(scale1, scale2); + if (min > 1) { + return 1; + } + return min; + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ScaleMaxWidth.java plantuml-8039/src/net/sourceforge/plantuml/ScaleMaxWidth.java --- plantuml-8024/src/net/sourceforge/plantuml/ScaleMaxWidth.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ScaleMaxWidth.java 2016-04-22 16:26:30.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +public class ScaleMaxWidth implements Scale { + + private final double maxWidth; + + public ScaleMaxWidth(double maxWidth) { + this.maxWidth = maxWidth; + } + + public double getScale(double width, double height) { + final double result = maxWidth / width; + if (result > 1) { + return 1; + } + return result; + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ScaleSimple.java plantuml-8039/src/net/sourceforge/plantuml/ScaleSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/ScaleSimple.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ScaleSimple.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ScaleWidthAndHeight.java plantuml-8039/src/net/sourceforge/plantuml/ScaleWidthAndHeight.java --- plantuml-8024/src/net/sourceforge/plantuml/ScaleWidthAndHeight.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ScaleWidthAndHeight.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ScaleWidth.java plantuml-8039/src/net/sourceforge/plantuml/ScaleWidth.java --- plantuml-8024/src/net/sourceforge/plantuml/ScaleWidth.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ScaleWidth.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/AbstractEvent.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/AbstractEvent.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/AbstractEvent.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/AbstractEvent.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/AbstractMessage.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/AbstractMessage.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/AbstractMessage.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/AbstractMessage.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -57,6 +57,7 @@ private NotePosition notePosition; private HtmlColor noteBackColor; private Url urlNote; + private NoteStyle noteStyle; private final Url url; private final String messageNumber; private boolean parallel = false; @@ -139,6 +140,16 @@ return label; } + public final Display getLabelNumbered() { + if (getMessageNumber() == null) { + return getLabel(); + } + Display result = Display.empty(); + result = result.add(new MessageNumber(getMessageNumber())); + result = result.addAll(getLabel()); + return result; + } + public final ArrowConfiguration getArrowConfiguration() { return arrowConfiguration; } @@ -146,15 +157,20 @@ public final Display getNote() { return notes == null ? notes : notes; } + + public final NoteStyle getNoteStyle() { + return noteStyle; + } public final Url getUrlNote() { return urlNote; } - public final void setNote(Display strings, NotePosition notePosition, String backcolor, Url url) { + public final void setNote(Display strings, NotePosition notePosition, NoteStyle noteStyle, String backcolor, Url url) { if (notePosition != NotePosition.LEFT && notePosition != NotePosition.RIGHT) { throw new IllegalArgumentException(); } + this.noteStyle = noteStyle; this.notes = strings; this.urlNote = url; this.notePosition = overideNotePosition(notePosition); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandActivate2.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandActivate2.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandActivate2.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandActivate2.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandActivate.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandActivate.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandActivate.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandActivate.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,17 +36,19 @@ import java.util.List; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand; +import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.sequencediagram.LifeEventType; import net.sourceforge.plantuml.sequencediagram.Participant; import net.sourceforge.plantuml.sequencediagram.SequenceDiagram; -import net.sourceforge.plantuml.StringUtils; public class CommandActivate extends SingleLineCommand { public CommandActivate() { - super("(?i)^(activate|deactivate|destroy|create)[%s]+([\\p{L}0-9_.@]+|[%g][^%g]+[%g])[%s]*(#\\w+)?$"); + super( + "(?i)^(activate|deactivate|destroy|create)[%s]+([\\p{L}0-9_.@]+|[%g][^%g]+[%g])[%s]*(#\\w+)?(?:[%s]+(#\\w+))?$"); } @Override @@ -54,8 +56,9 @@ final LifeEventType type = LifeEventType.valueOf(StringUtils.goUpperCase(arg.get(0))); final Participant p = diagram.getOrCreateParticipant(StringUtils .eventuallyRemoveStartingAndEndingDoubleQuote(arg.get(1))); - final String error = diagram.activate(p, type, - diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get(2))); + final HtmlColor backColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get(2)); + final HtmlColor lineColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get(3)); + final String error = diagram.activate(p, type, backColor, lineColor); if (error == null) { return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandArrow.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandArrow.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandArrow.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.util.StringTokenizer; import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.classdiagram.command.CommandLinkClass; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand2; @@ -63,7 +64,7 @@ } public static String getColorOrStylePattern() { - return "(?:\\[((?:#\\w+|dotted|dashed|bold|hidden)(?:,#\\w+|,dotted|,dashed|,bold|,hidden)*)\\])?"; + return "(?:\\[((?:#\\w+|dotted|dashed|plain|bold|hidden)(?:,#\\w+|,dotted|,dashed|,plain|,bold|,hidden)*)\\])?"; } static RegexConcat getRegexConcat() { @@ -168,7 +169,8 @@ if (arg.get("MESSAGE", 0) == null) { labels = Display.create(""); } else { - labels = Display.getWithNewlines(arg.get("MESSAGE", 0)); + final String message = UrlBuilder.multilineTooltip(arg.get("MESSAGE", 0)); + labels = Display.getWithNewlines(message); } ArrowConfiguration config = hasDressing1 && hasDressing2 ? ArrowConfiguration.withDirectionBoth() diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutoactivate.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutoactivate.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutoactivate.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutoactivate.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutoNewpage.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutoNewpage.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutoNewpage.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutoNewpage.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumber.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumber.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumber.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumber.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -66,7 +66,7 @@ return CommandExecutionResult.error("Error in pattern : " + df); } - sequenceDiagram.goAutonumber(start, inc, decimalFormat); + sequenceDiagram.autonumberGo(start, inc, decimalFormat); return CommandExecutionResult.ok(); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumberResume.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumberResume.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumberResume.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumberResume.java 2016-04-22 16:26:30.000000000 +0000 @@ -0,0 +1,71 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.command; + +import java.text.DecimalFormat; +import java.util.List; + +import net.sourceforge.plantuml.command.CommandExecutionResult; +import net.sourceforge.plantuml.command.SingleLineCommand; +import net.sourceforge.plantuml.sequencediagram.SequenceDiagram; + +public class CommandAutonumberResume extends SingleLineCommand { + + public CommandAutonumberResume() { + super("(?i)^autonumber[%s]*resume(?:[%s]+(\\d+))?(?:[%s]+[%g]([^%g]+)[%g])?[%s]*$"); + } + + @Override + protected CommandExecutionResult executeArg(SequenceDiagram sequenceDiagram, List arg) { + final String df = arg.get(1); + DecimalFormat decimalFormat = null; + if (df != null) { + try { + decimalFormat = new DecimalFormat(df); + } catch (IllegalArgumentException e) { + return CommandExecutionResult.error("Error in pattern : " + df); + } + } + + final String inc = arg.get(0); + if (inc == null) { + sequenceDiagram.autonumberResume(decimalFormat); + } else { + sequenceDiagram.autonumberResume(Integer.parseInt(arg.get(0)), decimalFormat); + } + + return CommandExecutionResult.ok(); + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumberStop.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumberStop.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumberStop.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandAutonumberStop.java 2016-04-22 16:26:30.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.command; + +import java.util.List; + +import net.sourceforge.plantuml.command.CommandExecutionResult; +import net.sourceforge.plantuml.command.SingleLineCommand; +import net.sourceforge.plantuml.sequencediagram.SequenceDiagram; + +public class CommandAutonumberStop extends SingleLineCommand { + + public CommandAutonumberStop() { + super("(?i)^autonumber[%s]*stop$"); + } + + @Override + protected CommandExecutionResult executeArg(SequenceDiagram sequenceDiagram, List arg) { + sequenceDiagram.autonumberStop(); + return CommandExecutionResult.ok(); + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandBoxEnd.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandBoxEnd.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandBoxEnd.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandBoxEnd.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandBoxStart.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandBoxStart.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandBoxStart.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandBoxStart.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandDelay.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandDelay.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandDelay.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandDelay.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandDivider.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandDivider.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandDivider.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandDivider.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowAny.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowAny.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowAny.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowAny.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,11 +34,14 @@ */ package net.sourceforge.plantuml.sequencediagram.command; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand2; import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.sequencediagram.LifeEventType; import net.sourceforge.plantuml.sequencediagram.MessageExo; import net.sourceforge.plantuml.sequencediagram.MessageExoType; import net.sourceforge.plantuml.sequencediagram.Participant; @@ -47,7 +50,6 @@ import net.sourceforge.plantuml.skin.ArrowDecoration; import net.sourceforge.plantuml.skin.ArrowHead; import net.sourceforge.plantuml.skin.ArrowPart; -import net.sourceforge.plantuml.StringUtils; abstract class CommandExoArrowAny extends SingleLineCommand2 { @@ -56,23 +58,23 @@ } @Override - final protected CommandExecutionResult executeArg(SequenceDiagram sequenceDiagram, RegexResult arg2) { - final String body = arg2.getLazzy("ARROW_BODYA", 0) + arg2.getLazzy("ARROW_BODYB", 0); - final String dressing = arg2.getLazzy("ARROW_DRESSING", 0); - final Participant p = sequenceDiagram.getOrCreateParticipant(StringUtils - .eventuallyRemoveStartingAndEndingDoubleQuote(arg2.get("PARTICIPANT", 0))); + final protected CommandExecutionResult executeArg(SequenceDiagram diagram, RegexResult arg) { + final String body = arg.getLazzy("ARROW_BODYA", 0) + arg.getLazzy("ARROW_BODYB", 0); + final String dressing = arg.getLazzy("ARROW_DRESSING", 0); + final Participant p = diagram.getOrCreateParticipant(StringUtils + .eventuallyRemoveStartingAndEndingDoubleQuote(arg.get("PARTICIPANT", 0))); final boolean sync = dressing.length() == 2; final boolean dotted = body.contains("--"); final Display labels; - if (arg2.get("LABEL", 0) == null) { + if (arg.get("LABEL", 0) == null) { labels = Display.create(""); } else { - labels = Display.getWithNewlines(arg2.get("LABEL", 0)); + labels = Display.getWithNewlines(arg.get("LABEL", 0)); } - final boolean bothDirection = arg2.get("ARROW_BOTHDRESSING", 0) != null; + final boolean bothDirection = arg.get("ARROW_BOTHDRESSING", 0) != null; ArrowConfiguration config = bothDirection ? ArrowConfiguration.withDirectionBoth() : ArrowConfiguration .withDirectionNormal(); @@ -83,43 +85,56 @@ config = config.withHead(ArrowHead.ASYNC); } config = config.withPart(getArrowPart(dressing)); - config = CommandArrow.applyStyle(arg2.getLazzy("ARROW_STYLE", 0), config); - final MessageExoType messageExoType = getMessageExoType(arg2); + config = CommandArrow.applyStyle(arg.getLazzy("ARROW_STYLE", 0), config); + final MessageExoType messageExoType = getMessageExoType(arg); if (messageExoType == MessageExoType.TO_RIGHT || messageExoType == MessageExoType.TO_LEFT) { - if (containsSymbolExterior(arg2, "o")) { + if (containsSymbolExterior(arg, "o")) { config = config.withDecoration2(ArrowDecoration.CIRCLE); } - if (containsSymbol(arg2, "o")) { + if (containsSymbol(arg, "o")) { config = config.withDecoration1(ArrowDecoration.CIRCLE); } } else { - if (containsSymbolExterior(arg2, "o")) { + if (containsSymbolExterior(arg, "o")) { config = config.withDecoration1(ArrowDecoration.CIRCLE); } - if (containsSymbol(arg2, "o")) { + if (containsSymbol(arg, "o")) { config = config.withDecoration2(ArrowDecoration.CIRCLE); } } - if (containsSymbolExterior(arg2, "x") || containsSymbol(arg2, "x")) { + if (containsSymbolExterior(arg, "x") || containsSymbol(arg, "x")) { config = config.withHead2(ArrowHead.CROSSX); } -// if (messageExoType.getDirection() == 1) { -// if (containsSymbolExterior(arg2, "x") || containsSymbol(arg2, "x")) { -// config = config.withHead2(ArrowHead.CROSSX); -// } -// } else { -// if (containsSymbolExterior(arg2, "x") || containsSymbol(arg2, "x")) { -// config = config.withHead2(ArrowHead.CROSSX); -// } -// } + // if (messageExoType.getDirection() == 1) { + // if (containsSymbolExterior(arg2, "x") || containsSymbol(arg2, "x")) { + // config = config.withHead2(ArrowHead.CROSSX); + // } + // } else { + // if (containsSymbolExterior(arg2, "x") || containsSymbol(arg2, "x")) { + // config = config.withHead2(ArrowHead.CROSSX); + // } + // } - final String error = sequenceDiagram.addMessage(new MessageExo(p, messageExoType, labels, config, - sequenceDiagram.getNextMessageNumber(), isShortArrow(arg2))); + final String error = diagram.addMessage(new MessageExo(p, messageExoType, labels, config, diagram + .getNextMessageNumber(), isShortArrow(arg))); if (error != null) { return CommandExecutionResult.error(error); } + + final HtmlColor activationColor = diagram.getSkinParam().getIHtmlColorSet() + .getColorIfValid(arg.get("LIFECOLOR", 0)); + + if (diagram.isAutoactivate() && (config.getHead() == ArrowHead.NORMAL || config.getHead() == ArrowHead.ASYNC)) { + if (config.isDotted()) { + diagram.activate(p, LifeEventType.DEACTIVATE, null); + } else { + diagram.activate(p, LifeEventType.ACTIVATE, activationColor); + } + + } + return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowLeft.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowLeft.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowLeft.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowLeft.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowRight.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowRight.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowRight.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandExoArrowRight.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandFootbox.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandFootbox.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandFootbox.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandFootbox.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandFootboxOld.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandFootboxOld.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandFootboxOld.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandFootboxOld.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandGrouping.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandGrouping.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandGrouping.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandGrouping.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandHSpace.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandHSpace.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandHSpace.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandHSpace.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandIgnoreNewpage.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandIgnoreNewpage.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandIgnoreNewpage.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandIgnoreNewpage.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandNewpage.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandNewpage.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandNewpage.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandNewpage.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -49,7 +49,7 @@ @Override protected CommandExecutionResult executeArg(SequenceDiagram sequenceDiagram, List arg) { - final Display strings = arg.get(0) == null ? null : Display.getWithNewlines(arg.get(0)); + final Display strings = arg.get(0) == null ? Display.NULL : Display.getWithNewlines(arg.get(0)); sequenceDiagram.newpage(strings); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA2.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA2.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA2.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA2.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,7 +37,7 @@ import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; public class CommandParticipantA2 extends CommandParticipant { @@ -57,7 +57,7 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("$")); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA3.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA3.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA3.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA3.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,7 +37,7 @@ import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; public class CommandParticipantA3 extends CommandParticipant { @@ -56,7 +56,7 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("$")); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA4.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA4.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA4.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA4.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,7 +37,7 @@ import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; public class CommandParticipantA4 extends CommandParticipant { @@ -55,7 +55,7 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("$")); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipantA.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,7 +37,7 @@ import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.command.regex.RegexConcat; import net.sourceforge.plantuml.command.regex.RegexLeaf; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.color.ColorParser; public class CommandParticipantA extends CommandParticipant { @@ -56,7 +56,7 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + ColorParser.exp1(), // new RegexLeaf("$")); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipant.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipant.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipant.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandParticipant.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -49,6 +49,7 @@ import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.sequencediagram.LifeEventType; import net.sourceforge.plantuml.sequencediagram.Participant; import net.sourceforge.plantuml.sequencediagram.ParticipantType; @@ -74,7 +75,7 @@ return CommandExecutionResult.ok(); } - Display strings = null; + Display strings = Display.NULL; if (arg.get("FULL", 0) != null) { strings = Display.getWithNewlines(arg.get("FULL", 0)); } @@ -100,12 +101,12 @@ if (stereotype != null) { final ISkinParam skinParam = diagram.getSkinParam(); final boolean stereotypePositionTop = skinParam.stereotypePositionTop(); - final UFont font = skinParam.getFont(FontParam.CIRCLED_CHARACTER, null, false); + final UFont font = skinParam.getFont(null, false, FontParam.CIRCLED_CHARACTER); participant.setStereotype(new Stereotype(stereotype, skinParam.getCircledCharacterRadius(), font, diagram .getSkinParam().getIHtmlColorSet()), stereotypePositionTop); } participant - .setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); + .setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); final String urlString = arg.get("URL", 0); if (urlString != null) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandReferenceMultilinesOverSeveral.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandReferenceMultilinesOverSeveral.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandReferenceMultilinesOverSeveral.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandReferenceMultilinesOverSeveral.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,9 +37,11 @@ import java.util.ArrayList; import java.util.List; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.CommandMultilines; import net.sourceforge.plantuml.cucadiagram.Display; @@ -47,7 +49,6 @@ import net.sourceforge.plantuml.sequencediagram.Participant; import net.sourceforge.plantuml.sequencediagram.Reference; import net.sourceforge.plantuml.sequencediagram.SequenceDiagram; -import net.sourceforge.plantuml.StringUtils; public class CommandReferenceMultilinesOverSeveral extends CommandMultilines { @@ -61,8 +62,8 @@ return "(?i)^end[%s]?(ref)?$"; } - public CommandExecutionResult execute(final SequenceDiagram diagram, List lines) { - final List line0 = StringUtils.getSplit(getStartingPattern(), lines.get(0).trim()); + public CommandExecutionResult execute(final SequenceDiagram diagram, BlocLines lines) { + final List line0 = StringUtils.getSplit(getStartingPattern(), StringUtils.trin(lines.getFirst499())); final HtmlColor backColorElement = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get(0)); // final HtmlColor backColorGeneral = HtmlColorSet.getInstance().getColorIfValid(line0.get(1)); @@ -72,7 +73,9 @@ p.add(diagram.getOrCreateParticipant(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(s))); } - Display strings = Display.create(lines.subList(1, lines.size() - 1)).removeEmptyColumns(); + lines = lines.subExtract(1, 1); + lines = lines.removeEmptyColumns(); + Display strings = lines.toDisplay(); Url u = null; if (strings.size() > 0) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandReferenceOverSeveral.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandReferenceOverSeveral.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandReferenceOverSeveral.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandReferenceOverSeveral.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -75,7 +75,7 @@ final List participants = StringUtils.splitComma(arg.get("PARTS", 0)); final String url = arg.get("URL", 0); final String title = arg.get("URL", 1); - final String text = arg.get("TEXT", 0).trim(); + final String text = StringUtils.trin(arg.get("TEXT", 0)); final List p = new ArrayList(); for (String s : participants) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandReturn.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandReturn.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandReturn.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandReturn.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandSkin.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandSkin.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandSkin.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandSkin.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandUrl.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandUrl.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/command/CommandUrl.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/command/CommandUrl.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Delay.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Delay.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Delay.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Delay.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Divider.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Divider.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Divider.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Divider.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Englober.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Englober.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Englober.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Englober.java 2016-04-22 16:26:30.000000000 +0000 @@ -0,0 +1,214 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram; + +import java.util.ArrayList; +import java.util.List; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.SkinParamBackcolored; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.real.Real; +import net.sourceforge.plantuml.real.RealUtils; +import net.sourceforge.plantuml.sequencediagram.teoz.Bordered; +import net.sourceforge.plantuml.sequencediagram.teoz.LivingSpace; +import net.sourceforge.plantuml.sequencediagram.teoz.TileArguments; +import net.sourceforge.plantuml.skin.Area; +import net.sourceforge.plantuml.skin.Component; +import net.sourceforge.plantuml.skin.ComponentType; +import net.sourceforge.plantuml.skin.Context2D; +import net.sourceforge.plantuml.skin.Skin; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class Englober { + + final private ParticipantEnglober participantEnglober; + final private List participants = new ArrayList(); + final private TileArguments tileArguments; + final private Real core1; + final private Real core2; + + @Deprecated + public Englober(ParticipantEnglober participantEnglober, Participant first, ISkinParam skinParam, Skin skin) { + this(participantEnglober, first, convertFunctionToBeRemoved(skinParam, skin)); + } + + private static TileArguments convertFunctionToBeRemoved(ISkinParam skinParam, Skin skin) { + final TileArguments result = new TileArguments(TextBlockUtils.getDummyStringBounder(), null, skin, skinParam, + null); + return result; + } + + public Englober(ParticipantEnglober participantEnglober, Participant first, TileArguments tileArguments) { + if (tileArguments == null) { + throw new IllegalArgumentException(); + } + this.participantEnglober = participantEnglober; + this.participants.add(first); + this.tileArguments = tileArguments; + final double preferredWidth = getPreferredWidth(); + if (tileArguments.getLivingSpaces() == null) { + this.core1 = null; + this.core2 = null; + } else { + this.core1 = getMiddle().addFixed(-preferredWidth / 2); + this.core2 = getMiddle().addFixed(preferredWidth / 2); + } + } + + public final Participant getFirst2TOBEPRIVATE() { + return participants.get(0); + } + + public final Participant getLast2TOBEPRIVATE() { + return participants.get(participants.size() - 1); + } + + private Real getMiddle() { + return RealUtils.middle(getPosB(), getPosD()); + } + + private Real getPosB() { + return getFirstLivingSpace().getPosB(); + } + + private Real getPosD() { + return getLastLivingSpace().getPosD(tileArguments.getStringBounder()); + } + + private Real getPosAA() { + final LivingSpace previous = tileArguments.getLivingSpaces().previous(getFirstLivingSpace()); + if (previous == null) { + return tileArguments.getOrigin(); + } + return previous.getPosD(tileArguments.getStringBounder()); + } + + private Real getPosZZ() { + final LivingSpace next = tileArguments.getLivingSpaces().next(getLastLivingSpace()); + if (next == null) { + // return tileArguments.getMaxAbsolute(); + return null; + } + return next.getPosB(); + } + + private LivingSpace getFirstLivingSpace() { + return tileArguments.getLivingSpace(getFirst2TOBEPRIVATE()); + } + + private LivingSpace getLastLivingSpace() { + return tileArguments.getLivingSpace(getLast2TOBEPRIVATE()); + } + + private Component getComponent() { + final ParticipantEnglober englober = getParticipantEnglober(); + final ISkinParam s = englober.getBoxColor() == null ? tileArguments.getSkinParam() : new SkinParamBackcolored( + tileArguments.getSkinParam(), englober.getBoxColor()); + return tileArguments.getSkin().createComponent(ComponentType.ENGLOBER, null, s, englober.getTitle()); + } + + public final ParticipantEnglober getParticipantEnglober() { + return participantEnglober; + } + + public boolean contains(Participant p) { + return participants.contains(p); + } + + public void add(Participant p) { + if (participants.contains(p)) { + throw new IllegalArgumentException(); + } + participants.add(p); + } + + @Override + public String toString() { + return "ParticipantEngloberContexted:" + participantEnglober.getTitle().toString() + " " + participants; + } + + private double getPreferredWidth() { + return getComponent().getPreferredWidth(tileArguments.getStringBounder()); + } + + public double getPreferredHeight() { + final Component comp = tileArguments.getSkin().createComponent(ComponentType.ENGLOBER, null, + tileArguments.getSkinParam(), getParticipantEnglober().getTitle()); + return comp.getPreferredHeight(tileArguments.getStringBounder()); + } + + public void drawEnglober(UGraphic ug, double height, Context2D context) { + final double x1 = getX1().getCurrentValue() - 4; + final double x2 = getX2().getCurrentValue() + 4; + + final Dimension2DDouble dim = new Dimension2DDouble(x2 - x1, height); + getComponent().drawU(ug.apply(new UTranslate(x1, 1)), new Area(dim), context); + } + + private Real getX2() { + return RealUtils.max(getPosD(), core2); + } + + private Real getX1() { + return RealUtils.min(getPosB(), core1); + } + + public void addInternalConstraints() { + getX1().ensureBiggerThan(getPosAA().addFixed(10)); + final Real posZZ = getPosZZ(); + final Real limit = getX2().addFixed(10); + if (posZZ != null) { + posZZ.ensureBiggerThan(limit); + } + } + + public void addConstraintAfter(Englober current) { + current.getX1().ensureBiggerThan(getX2().addFixed(10)); + } + + public Real getMinX(StringBounder stringBounder) { + return getX1(); + } + + public Real getMaxX(StringBounder stringBounder) { + return getX2().addFixed(10); + } + + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Event.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Event.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Event.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Event.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/EventWithDeactivate.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/EventWithDeactivate.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/EventWithDeactivate.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/EventWithDeactivate.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ArrowAndNoteBox.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ArrowAndNoteBox.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ArrowAndNoteBox.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ArrowAndNoteBox.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -90,7 +90,11 @@ public double getPreferredWidth(StringBounder stringBounder) { double w = arrow.getPreferredWidth(stringBounder); w = Math.max(w, arrow.getActualWidth(stringBounder)); - return w + noteBox.getPreferredWidth(stringBounder); + double result = w + noteBox.getPreferredWidth(stringBounder); + if (noteBox.getNotePosition() == NotePosition.RIGHT) { + result += noteBox.getRightShift(arrow.getStartingY()); + } + return result; } @Override diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ArrowAndParticipant.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ArrowAndParticipant.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ArrowAndParticipant.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ArrowAndParticipant.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Arrow.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Arrow.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Arrow.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Arrow.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Constraint.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Constraint.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Constraint.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Constraint.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ConstraintSet.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ConstraintSet.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ConstraintSet.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ConstraintSet.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSetInitializer.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSetInitializer.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSetInitializer.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSetInitializer.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,6 +44,7 @@ import net.sourceforge.plantuml.SkinParamBackcoloredReference; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.SymbolContext; import net.sourceforge.plantuml.sequencediagram.AbstractMessage; import net.sourceforge.plantuml.sequencediagram.Delay; import net.sourceforge.plantuml.sequencediagram.Divider; @@ -63,7 +64,7 @@ import net.sourceforge.plantuml.sequencediagram.Notes; import net.sourceforge.plantuml.sequencediagram.Participant; import net.sourceforge.plantuml.sequencediagram.ParticipantEnglober; -import net.sourceforge.plantuml.sequencediagram.ParticipantEngloberContexted; +import net.sourceforge.plantuml.sequencediagram.Englober; import net.sourceforge.plantuml.sequencediagram.ParticipantType; import net.sourceforge.plantuml.sequencediagram.Reference; import net.sourceforge.plantuml.skin.Component; @@ -149,7 +150,7 @@ final LivingParticipantBox living = drawableSet.getLivingParticipantBox(p); for (int i = 0; i < p.getInitialLife(); i++) { living.getLifeLine().addSegmentVariation(LifeSegmentVariation.LARGER, - freeY2.getFreeY(getFullParticipantRange()), p.getLiveSpecificBackColor()); + freeY2.getFreeY(getFullParticipantRange()), p.getLiveSpecificBackColors()); } } @@ -207,11 +208,13 @@ } private void takeParticipantEngloberTitleWidth3(StringBounder stringBounder) { - for (ParticipantEngloberContexted pe : drawableSet.getExistingParticipantEnglober()) { + for (Englober pe : drawableSet.getExistingParticipantEnglober()) { final double preferredWidth = drawableSet.getEngloberPreferedWidth(stringBounder, pe.getParticipantEnglober()); - final ParticipantBox first = drawableSet.getLivingParticipantBox(pe.getFirst2()).getParticipantBox(); - final ParticipantBox last = drawableSet.getLivingParticipantBox(pe.getLast2()).getParticipantBox(); + final ParticipantBox first = drawableSet.getLivingParticipantBox(pe.getFirst2TOBEPRIVATE()) + .getParticipantBox(); + final ParticipantBox last = drawableSet.getLivingParticipantBox(pe.getLast2TOBEPRIVATE()) + .getParticipantBox(); final double x1 = drawableSet.getX1(pe); final double x2 = drawableSet.getX2(stringBounder, pe); final double missing = preferredWidth - (x2 - x1); @@ -432,7 +435,7 @@ } } final ISkinParam skinParam = n.getSkinParamBackcolored(drawableSet.getSkinParam()); - final ComponentType type = getNoteComponentType(n.getStyle()); + final ComponentType type = n.getStyle().getNoteComponentType(); final NoteBox noteBox = new NoteBox(freeY2.getFreeY(range), drawableSet.getSkin().createComponent(type, null, skinParam, n.getStrings()), p1, p2, n.getPosition(), n.getUrl()); return noteBox; @@ -454,16 +457,6 @@ freeY2 = freeY2.add(notesBoxes.getPreferredHeight(stringBounder), range); } - private ComponentType getNoteComponentType(NoteStyle noteStyle) { - if (noteStyle == NoteStyle.HEXAGONAL) { - return ComponentType.NOTE_HEXAGONAL; - } - if (noteStyle == NoteStyle.BOX) { - return ComponentType.NOTE_BOX; - } - return ComponentType.NOTE; - } - private void prepareLiveEvent(StringBounder stringBounder, LifeEvent lifeEvent, ParticipantRange range) { final double y = freeY2.getFreeY(range); final AbstractMessage message = lifeEvent.getMessage(); @@ -479,7 +472,7 @@ pos = message.getPosYstartLevel() + delta1; } final LifeLine line1 = drawableSet.getLivingParticipantBox(lifeEvent.getParticipant()).getLifeLine(); - line1.addSegmentVariation(LifeSegmentVariation.LARGER, pos, lifeEvent.getSpecificBackColor()); + line1.addSegmentVariation(LifeSegmentVariation.LARGER, pos, lifeEvent.getSpecificColors()); } else if (lifeEvent.getType() == LifeEventType.DESTROY || lifeEvent.getType() == LifeEventType.DEACTIVATE) { double delta = 0; if (OptionFlags.STRICT_SELFMESSAGE_POSITION && message != null && message.isSelfMessage()) { @@ -491,7 +484,7 @@ if (message != null) { pos2 = message.getPosYendLevel() - delta; } - line.addSegmentVariation(LifeSegmentVariation.SMALLER, pos2, lifeEvent.getSpecificBackColor()); + line.addSegmentVariation(LifeSegmentVariation.SMALLER, pos2, lifeEvent.getSpecificColors()); } if (lifeEvent.getType() == LifeEventType.DESTROY) { @@ -500,8 +493,14 @@ final double delta = comp.getPreferredHeight(stringBounder) / 2; final LivingParticipantBox livingParticipantBox = drawableSet.getLivingParticipantBox(lifeEvent .getParticipant()); - final LifeDestroy destroy = new LifeDestroy(lifeEvent.getMessage().getPosYendLevel() - delta, - livingParticipantBox.getParticipantBox(), comp); + double pos2 = y; + if (message == null) { + pos2 = y; + freeY2 = freeY2.add(comp.getPreferredHeight(stringBounder), range); + } else { + pos2 = message.getPosYendLevel() - delta; + } + final LifeDestroy destroy = new LifeDestroy(pos2, livingParticipantBox.getParticipantBox(), comp); drawableSet.addEvent(lifeEvent, destroy); } else { drawableSet.addEvent(lifeEvent, new GraphicalElementLiveEvent(y)); @@ -590,7 +589,8 @@ drawableSet.getSkinParam(), participantDisplay); final Component delayLine = drawableSet.getSkin().createComponent(ComponentType.DELAY_LINE, null, drawableSet.getSkinParam(), participantDisplay); - final ParticipantBox box = new ParticipantBox(head, line, tail, delayLine, this.freeX); + final ParticipantBox box = new ParticipantBox(head, line, tail, delayLine, this.freeX, + skinParam.maxAsciiMessageLength() > 0 ? 1 : 5); final Component comp = drawableSet.getSkin().createComponent(ComponentType.ALIVE_BOX_CLOSE_CLOSE, null, drawableSet.getSkinParam(), null); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSet.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSet.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSet.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSet.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -53,7 +53,7 @@ import net.sourceforge.plantuml.sequencediagram.Newpage; import net.sourceforge.plantuml.sequencediagram.Participant; import net.sourceforge.plantuml.sequencediagram.ParticipantEnglober; -import net.sourceforge.plantuml.sequencediagram.ParticipantEngloberContexted; +import net.sourceforge.plantuml.sequencediagram.Englober; import net.sourceforge.plantuml.skin.Area; import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.ComponentType; @@ -139,7 +139,7 @@ public double getHeadAndEngloberHeight(Participant p, StringBounder stringBounder) { final LivingParticipantBox box = participants.get(p); final double height = box.getParticipantBox().getHeadHeight(stringBounder); - final ParticipantEngloberContexted englober = getParticipantEnglober(p); + final Englober englober = getParticipantEnglober(p); if (englober == null) { return height; } @@ -149,9 +149,9 @@ return height + heightEnglober; } - public List getExistingParticipantEnglober() { - final List result = new ArrayList(); - ParticipantEngloberContexted pending = null; + public List getExistingParticipantEnglober() { + final List result = new ArrayList(); + Englober pending = null; for (Map.Entry ent : participantEnglobers2.entrySet()) { final ParticipantEnglober englober = ent.getValue(); if (englober == null) { @@ -163,7 +163,7 @@ pending.add(ent.getKey()); continue; } - pending = new ParticipantEngloberContexted(englober, ent.getKey()); + pending = new Englober(englober, ent.getKey(), getSkinParam(), skin); result.add(pending); } return Collections.unmodifiableList(result); @@ -171,7 +171,7 @@ public double getOffsetForEnglobers(StringBounder stringBounder) { double result = 0; - for (ParticipantEngloberContexted englober : getExistingParticipantEnglober()) { + for (Englober englober : getExistingParticipantEnglober()) { final Component comp = skin.createComponent(ComponentType.ENGLOBER, null, skinParam, englober .getParticipantEnglober().getTitle()); final double height = comp.getPreferredHeight(stringBounder); @@ -239,26 +239,6 @@ return dimension; } - void drawU_REMOVEDME_4243(UGraphic ug, final double delta, double width, Page page, boolean showTail) { - - final UGraphic ugOrig = ug; - - final int height = (int) page.getHeight(); - - ug = clipAndTranslate2(delta, width, page, ug); - final SimpleContext2D context = new SimpleContext2D(true); - this.drawPlaygroundU(ug, context); - ug = ugOrig; - - this.drawEnglobers(ug, height - MARGIN_FOR_ENGLOBERS1, context); - - this.drawLineU_REMOVEDME_4243(ug, showTail, page); - this.drawHeadTailU(ug, page, showTail ? height - getTailHeight(ug.getStringBounder(), true) : 0); - - ug = clipAndTranslate2(delta, width, page, ug); - this.drawPlaygroundU(ug, new SimpleContext2D(false)); - } - void drawU22(final UGraphic ug, final double delta, double width, Page page, boolean showTail) { // final UGraphic ugOrig = ug; final double height = page.getHeight(); @@ -304,26 +284,6 @@ } } - private void drawLineU_REMOVEDME_4243(UGraphic ug, boolean showTail, Page page) { - for (LivingParticipantBox box : getAllLivingParticipantBox()) { - final double create = box.getCreate(); - final double startMin = page.getBodyRelativePosition() - box.magicMargin(ug.getStringBounder()); - // final double endMax = page.getHeight() - 1; - final double endMax = startMin + page.getBodyHeight() + 2 * box.magicMargin(ug.getStringBounder()); - double start = startMin; - if (create > 0) { - if (create > page.getNewpage2()) { - continue; - } - if (create >= page.getNewpage1() && create < page.getNewpage2()) { - start += create - page.getNewpage1() + 2 * box.magicMargin(ug.getStringBounder()); - } - } - final double myDelta = page.getNewpage1() - page.getHeaderHeight(); - box.drawLineUTOBEREMOVED_4243(ug, start, endMax, showTail, myDelta); - } - } - private void drawHeadTailU(UGraphic ug, Page page, double positionTail) { for (Map.Entry ent : participants.entrySet()) { final Participant p = ent.getKey(); @@ -368,7 +328,7 @@ } private void drawEnglobers(UGraphic ug, double height, Context2D context) { - for (ParticipantEngloberContexted englober : getExistingParticipantEnglober()) { + for (Englober englober : getExistingParticipantEnglober()) { double x1 = getX1(englober); final double x2 = getX2(ug.getStringBounder(), englober); @@ -400,14 +360,14 @@ return skin.createComponent(ComponentType.ENGLOBER, null, s, englober.getTitle()); } - public double getX1(ParticipantEngloberContexted englober) { - final Participant first = englober.getFirst2(); + public double getX1(Englober englober) { + final Participant first = englober.getFirst2TOBEPRIVATE(); final ParticipantBox firstBox = participants.get(first).getParticipantBox(); return firstBox.getStartingX() + 1; } - public double getX2(StringBounder stringBounder, ParticipantEngloberContexted englober) { - final Participant last = englober.getLast2(); + public double getX2(StringBounder stringBounder, Englober englober) { + final Participant last = englober.getLast2TOBEPRIVATE(); final ParticipantBox lastBox = participants.get(last).getParticipantBox(); return lastBox.getMaxX(stringBounder) - 1; } @@ -419,8 +379,8 @@ line.drawU(ug, getSkin(), skinParam); } - private ParticipantEngloberContexted getParticipantEnglober(Participant p) { - for (ParticipantEngloberContexted pe : getExistingParticipantEnglober()) { + private Englober getParticipantEnglober(Participant p) { + for (Englober pe : getExistingParticipantEnglober()) { if (pe.contains(p)) { return pe; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FileMaker.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FileMaker.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FileMaker.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FileMaker.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FreeYStrategyBasic.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FreeYStrategyBasic.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FreeYStrategyBasic.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FreeYStrategyBasic.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FreeYStrategy.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FreeYStrategy.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FreeYStrategy.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FreeYStrategy.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierComplex.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierComplex.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierComplex.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierComplex.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Frontier.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Frontier.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Frontier.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Frontier.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierSimple.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierSimple.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierSimple.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierStackImpl.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierStackImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierStackImpl.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierStackImpl.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierStack.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierStack.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierStack.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierStack.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalDelayText.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalDelayText.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalDelayText.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalDelayText.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalDivider.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalDivider.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalDivider.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalDivider.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalElement.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalElement.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalElement.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalElement.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalElementLiveEvent.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalElementLiveEvent.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalElementLiveEvent.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalElementLiveEvent.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalHSpace.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalHSpace.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalHSpace.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalHSpace.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalNewpage.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalNewpage.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalNewpage.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalNewpage.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalReference.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalReference.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalReference.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GraphicalReference.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementElse.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementElse.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementElse.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementElse.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementHeader.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementHeader.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementHeader.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementHeader.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElement.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElement.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElement.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElement.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementTail.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementTail.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementTail.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/GroupingGraphicalElementTail.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/InGroupablesStack.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/InGroupablesStack.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/InGroupablesStack.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/InGroupablesStack.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Lazy.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Lazy.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Lazy.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Lazy.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeDestroy.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeDestroy.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeDestroy.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeDestroy.java 2016-04-22 16:26:30.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeLine.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeLine.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeLine.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeLine.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,10 +40,13 @@ import java.util.Iterator; import java.util.List; +import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.SkinParamBackcolored; +import net.sourceforge.plantuml.SkinParamForceColor; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.SymbolContext; import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.ComponentType; import net.sourceforge.plantuml.skin.Skin; @@ -54,13 +57,13 @@ static class Variation { final private LifeSegmentVariation type; - final private HtmlColor backcolor; + final private SymbolContext colors; final private double y; - Variation(LifeSegmentVariation type, double y, HtmlColor backcolor) { + Variation(LifeSegmentVariation type, double y, SymbolContext backcolor) { this.type = type; this.y = y; - this.backcolor = backcolor; + this.colors = backcolor; } @Override @@ -83,7 +86,7 @@ this.shadowing = shadowing; } - public void addSegmentVariation(LifeSegmentVariation type, double y, HtmlColor backcolor) { + public void addSegmentVariation(LifeSegmentVariation type, double y, SymbolContext colors) { if (events.size() > 0) { final Variation last = events.get(events.size() - 1); if (y < last.y) { @@ -95,7 +98,7 @@ // throw new IllegalArgumentException(); } } - events.add(new Variation(type, y, backcolor)); + events.add(new Variation(type, y, colors)); final int currentLevel = type.apply(stairs.getLastValue()); stairs.addStep(y, currentLevel); assert getLevel(y) == stairs.getValue(y); @@ -180,10 +183,10 @@ if (level == 0) { final double y1 = events.get(i).y; final double y2 = events.get(j).y; - return new SegmentColored(y1, y2, events.get(i).backcolor, shadowing); + return new SegmentColored(y1, y2, events.get(i).colors, shadowing); } } - return new SegmentColored(events.get(i).y, events.get(events.size() - 1).y, events.get(i).backcolor, shadowing); + return new SegmentColored(events.get(i).y, events.get(events.size() - 1).y, events.get(i).colors, shadowing); } private Collection getSegmentsCutted(StringBounder stringBounder, int i) { @@ -203,7 +206,12 @@ ComponentType type = ComponentType.ALIVE_BOX_CLOSE_OPEN; for (final Iterator it = getSegmentsCutted(stringBounder, i).iterator(); it.hasNext();) { final SegmentColored seg = it.next(); - final ISkinParam skinParam2 = new SkinParamBackcolored(skinParam, seg.getSpecificBackColor()); + ISkinParam skinParam2 = new SkinParamBackcolored(skinParam, seg.getSpecificBackColor()); + final HtmlColor specificLineColor = seg.getSpecificLineColor(); + if (specificLineColor != null) { + skinParam2 = new SkinParamForceColor(skinParam2, ColorParam.sequenceLifeLineBorder, + specificLineColor); + } if (it.hasNext() == false) { type = type == ComponentType.ALIVE_BOX_CLOSE_OPEN ? ComponentType.ALIVE_BOX_CLOSE_CLOSE : ComponentType.ALIVE_BOX_OPEN_CLOSE; @@ -239,4 +247,11 @@ public final boolean shadowing() { return shadowing; } + + public SymbolContext getColors() { + if (events.size() == 0) { + return null; + } + return events.get(events.size() - 1).colors; + } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeSegmentVariation.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeSegmentVariation.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeSegmentVariation.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeSegmentVariation.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/LivingParticipantBox.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/LivingParticipantBox.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/LivingParticipantBox.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/LivingParticipantBox.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.sequencediagram.graphic; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.SymbolContext; import net.sourceforge.plantuml.sequencediagram.InGroupable; import net.sourceforge.plantuml.ugraphic.UGraphic; @@ -70,18 +71,8 @@ final double centerX = participantBox.getCenterX(stringBounder); // Log.println("AZERTY " + y + " centerX=" + centerX + " left=" + left + " right=" + right); // Log.println("Attention, null for segment"); - return new SegmentColored(centerX - left, centerX + right, null, lifeLine.shadowing()); - } - - public void drawLineUTOBEREMOVED_4243(UGraphic ug, double startingY, double endingY, boolean showTail, double myDelta) { - if (endingY <= startingY) { - return; - } - final double destroy = lifeLine.getDestroy(); - if (destroy != 0 && destroy > startingY && destroy < endingY) { - endingY = destroy; - } - participantBox.drawLineUTOBEREMOVED_4243(ug, startingY, endingY, showTail, myDelta); + final SymbolContext colors = lifeLine.getColors(); + return new SegmentColored(centerX - left, centerX + right, colors, lifeLine.shadowing()); } public void drawLineU22(UGraphic ug, double startingY, double endingY, boolean showTail, double myDelta) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageArrow.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageArrow.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageArrow.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageExoArrow.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageExoArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageExoArrow.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageExoArrow.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageSelfArrow.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageSelfArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageSelfArrow.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/MessageSelfArrow.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/NoteBox.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/NoteBox.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/NoteBox.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/NoteBox.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -75,6 +75,13 @@ this.comp = comp; } + public double getRightShift(double y) { + if (p1 == null) { + return 0; + } + return p1.getLifeLine().getRightShift(y) + 5; + } + @Override final public double getPreferredWidth(StringBounder stringBounder) { final double preferredWidth = comp.getPreferredWidth(stringBounder); @@ -99,8 +106,8 @@ final StringBounder stringBounder = ug.getStringBounder(); final double xStart = getStartingX(stringBounder); ug = ug.apply(new UTranslate(xStart, getStartingY())); - final Dimension2D dimensionToUse = new Dimension2DDouble(getPreferredWidth(stringBounder), comp - .getPreferredHeight(stringBounder)); + final Dimension2D dimensionToUse = new Dimension2DDouble(getPreferredWidth(stringBounder), + comp.getPreferredHeight(stringBounder)); if (url != null) { ug.startUrl(url); } @@ -132,8 +139,8 @@ private SegmentColored getSegment(StringBounder stringBounder) { final SegmentColored segment = p1.getLiveThicknessAt(stringBounder, getStartingY()); - final SegmentColored segment2 = p1.getLiveThicknessAt(stringBounder, getStartingY() - + comp.getPreferredHeight(stringBounder)); + final SegmentColored segment2 = p1.getLiveThicknessAt(stringBounder, + getStartingY() + comp.getPreferredHeight(stringBounder)); return segment.merge(segment2); } @@ -157,4 +164,8 @@ return url; } + public NotePosition getNotePosition() { + return position; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/NotesBoxes.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/NotesBoxes.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/NotesBoxes.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/NotesBoxes.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Page.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Page.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Page.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Page.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/PageSplitter.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/PageSplitter.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/PageSplitter.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/PageSplitter.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBox.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBox.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBox.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBox.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -52,7 +52,7 @@ private static int CPT = 0; - private final int outMargin = 5; + private final int outMargin; private double startingX; @@ -63,7 +63,8 @@ private int cpt = CPT++; - public ParticipantBox(Component head, Component line, Component tail, Component delayLine, double startingX) { + public ParticipantBox(Component head, Component line, Component tail, Component delayLine, double startingX, int outMargin) { + this.outMargin = outMargin; this.startingX = startingX; this.head = head; this.line = line; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBoxSimple.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBoxSimple.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBoxSimple.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBoxSimple.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantRange.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantRange.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantRange.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantRange.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Pushable.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Pushable.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Pushable.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Pushable.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/SegmentColored.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/SegmentColored.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/SegmentColored.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/SegmentColored.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,6 +42,7 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.SymbolContext; import net.sourceforge.plantuml.skin.Area; import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.SimpleContext2D; @@ -51,23 +52,33 @@ class SegmentColored { final private Segment segment; - final private HtmlColor backcolor; + final private SymbolContext colors; final private boolean shadowing; final private double pos1Initial; - SegmentColored(double pos1, double pos2, HtmlColor backcolor, boolean shadowing) { - this(new Segment(pos1, pos2), backcolor, shadowing, pos1); + SegmentColored(double pos1, double pos2, SymbolContext colors, boolean shadowing) { + this(new Segment(pos1, pos2), colors, shadowing, pos1); } - private SegmentColored(Segment segment, HtmlColor backcolor, boolean shadowing, double pos1Initial) { + private SegmentColored(Segment segment, SymbolContext colors, boolean shadowing, double pos1Initial) { this.segment = segment; - this.backcolor = backcolor; + this.colors = colors; this.shadowing = shadowing; this.pos1Initial = pos1Initial; } public HtmlColor getSpecificBackColor() { - return backcolor; + if (colors == null) { + return null; + } + return colors.getBackColor(); + } + + public HtmlColor getSpecificLineColor() { + if (colors == null) { + return null; + } + return colors.getForeColor(); } @Override @@ -104,7 +115,7 @@ public SegmentColored merge(SegmentColored this2) { final Segment merge = this.segment.merge(this2.segment); - return new SegmentColored(merge, backcolor, shadowing, merge.getPos1()); + return new SegmentColored(merge, colors, shadowing, merge.getPos1()); } public final Segment getSegment() { @@ -126,7 +137,7 @@ } public SegmentColored next() { - return new SegmentColored(it.next(), backcolor, shadowing, pos1Initial); + return new SegmentColored(it.next(), colors, shadowing, pos1Initial); } public void remove() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Segment.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Segment.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Segment.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Segment.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,7 +45,7 @@ final private double pos1; final private double pos2; - Segment(double pos1, double pos2) { + public Segment(double pos1, double pos2) { this.pos1 = pos1; this.pos2 = pos2; if (pos2 < pos1) { @@ -106,11 +106,13 @@ result2.add(new Segment(pendingStart, this.pos2)); return Collections.unmodifiableCollection(result2); } - if (this.contains(d) == false) { - throw new IllegalStateException(); + // if (this.contains(d) == false) { + // throw new IllegalStateException(); + // } + if (this.contains(d)) { + result2.add(new Segment(pendingStart, d.pos1)); + pendingStart = d.pos2; } - result2.add(new Segment(pendingStart, d.pos1)); - pendingStart = d.pos2; } result2.add(new Segment(pendingStart, this.pos2)); return Collections.unmodifiableCollection(result2); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramArea.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramArea.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramArea.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramArea.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,7 +34,12 @@ */ package net.sourceforge.plantuml.sequencediagram.graphic; +import java.awt.geom.Dimension2D; + import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.png.PngTitler; +import net.sourceforge.plantuml.utils.MathUtils; public class SequenceDiagramArea { @@ -48,6 +53,9 @@ private double titleWidth; private double titleHeight; + private double captionWidth; + private double captionHeight; + private double footerWidth; private double footerHeight; private double footerMargin; @@ -57,9 +65,18 @@ this.sequenceHeight = height; } - public void setTitleArea(double titleWidth, double titleHeight) { - this.titleWidth = titleWidth; - this.titleHeight = titleHeight; + public void setTitleArea(double width, double height) { + this.titleWidth = width; + this.titleHeight = height; + } + + private void setCaptionArea(double width, double height) { + this.captionWidth = width; + this.captionHeight = height; + } + + public void setCaptionArea(Dimension2D dim) { + setCaptionArea(dim.getWidth(), dim.getHeight()); } public void setHeaderArea(double headerWidth, double headerHeight, double headerMargin) { @@ -75,21 +92,11 @@ } public double getWidth() { - double result = sequenceWidth; - if (headerWidth > result) { - result = headerWidth; - } - if (titleWidth > result) { - result = titleWidth; - } - if (footerWidth > result) { - result = footerWidth; - } - return result; + return MathUtils.max(sequenceWidth, headerWidth, titleWidth, footerWidth, captionWidth); } public double getHeight() { - return sequenceHeight + headerHeight + headerMargin + titleHeight + footerMargin + footerHeight; + return sequenceHeight + headerHeight + headerMargin + titleHeight + footerMargin + footerHeight + captionHeight; } public double getTitleX() { @@ -100,6 +107,14 @@ return headerHeight + headerMargin; } + public double getCaptionX() { + return (getWidth() - captionWidth) / 2; + } + + public double getCaptionY() { + return sequenceHeight + headerHeight + headerMargin + titleHeight; + } + public double getSequenceAreaX() { return (getWidth() - sequenceWidth) / 2; } @@ -113,7 +128,7 @@ } public double getFooterY() { - return sequenceHeight + headerHeight + headerMargin + titleHeight + footerMargin; + return sequenceHeight + headerHeight + headerMargin + titleHeight + footerMargin + captionHeight; } public double getFooterX(HorizontalAlignment align) { @@ -142,4 +157,18 @@ throw new IllegalStateException(); } + public void initFooter(PngTitler pngTitler) { + final Dimension2D dim = pngTitler.getTextDimension(TextBlockUtils.getDummyStringBounder()); + if (dim != null) { + setFooterArea(dim.getWidth(), dim.getHeight(), 3); + } + } + + public void initHeader(PngTitler pngTitler) { + final Dimension2D dim = pngTitler.getTextDimension(TextBlockUtils.getDummyStringBounder()); + if (dim != null) { + setHeaderArea(dim.getWidth(), dim.getHeight(), 3); + } + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,12 +42,14 @@ import java.util.List; import java.util.Map; +import net.sourceforge.plantuml.AnnotatedWorker; import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.FileFormatOption; import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.activitydiagram3.ftile.EntityImageLegend; import net.sourceforge.plantuml.core.ImageData; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; @@ -118,7 +120,8 @@ for (Newpage n : newpages) { positions.put(n, initializer.getYposition(dummyStringBounder, n)); } - pages = create(drawableSet, positions, sequenceDiagram.isShowFootbox(), sequenceDiagram.getTitle()).getPages(); + pages = create(drawableSet, positions, sequenceDiagram.isShowFootbox(), sequenceDiagram.getTitle().getDisplay()) + .getPages(); } public int getNbPages() { @@ -145,7 +148,10 @@ final SequenceDiagramArea area = new SequenceDiagramArea(fullDimension.getWidth(), page.getHeight()); final Component compTitle; - if (page.getTitle() == null) { + final TextBlock caption = new AnnotatedWorker(diagram, diagram.getSkinParam()).getCaption(); + area.setCaptionArea(caption.calculateDimension(dummyStringBounder)); + + if (Display.isNull(page.getTitle())) { compTitle = null; } else { compTitle = drawableSet.getSkin().createComponent(ComponentType.TITLE, null, drawableSet.getSkinParam(), @@ -153,17 +159,15 @@ area.setTitleArea(compTitle.getPreferredWidth(dummyStringBounder), compTitle.getPreferredHeight(dummyStringBounder)); } - addFooter2(area); - addHeader2(area); - - // final FileFormat fileFormat = fileFormatOption.getFileFormat(); + area.initFooter(getPngTitler(FontParam.FOOTER)); + area.initHeader(getPngTitler(FontParam.HEADER)); - final Display legend = diagram.getLegend(); + final DisplayPositionned legend = diagram.getLegend(); final TextBlock legendBlock; - if (legend == null) { + if (DisplayPositionned.isNull(legend)) { legendBlock = TextBlockUtils.empty(0, 0); } else { - legendBlock = EntityImageLegend.create(legend, diagram.getSkinParam()); + legendBlock = EntityImageLegend.create(legend.getDisplay(), diagram.getSkinParam()); } final Dimension2D dimLegend = TextBlockUtils.getDimension(legendBlock); @@ -173,11 +177,13 @@ // System.err.println("dpiFactor=" + dpiFactor); // System.err.println("scale=" + scale); + final String metadata = fileFormatOption.isWithMetadata() ? diagram.getMetadata() : null; + final ImageBuilder imageBuilder = new ImageBuilder(diagram.getSkinParam().getColorMapper(), oneOf(scale, - dpiFactor), diagram.getSkinParam().getBackgroundColor(), null, null, 3, 10, diagram.getAnimation(), + dpiFactor), diagram.getSkinParam().getBackgroundColor(), metadata, null, 3, 10, diagram.getAnimation(), diagram.getSkinParam().handwritten()); - imageBuilder.addUDrawable(new UDrawable() { + imageBuilder.setUDrawable(new UDrawable() { public void drawU(UGraphic ug) { double delta = 0; @@ -197,11 +203,12 @@ compTitle.drawU(ug.apply(new UTranslate(area.getTitleX(), area.getTitleY())), new Area( new Dimension2DDouble(w, h)), new SimpleContext2D(false)); } + caption.drawU(ug.apply(new UTranslate(area.getCaptionX(), area.getCaptionY()))); final double delta1 = Math.max(0, dimLegend.getWidth() - area.getWidth()); - final boolean legendTop = legend != null - && diagram.getLegendVerticalAlignment() == VerticalAlignment.TOP; + final boolean legendTop = DisplayPositionned.isNull(legend) == false + && legend.getVerticalAlignment() == VerticalAlignment.TOP; double sequenceAreaY = area.getSequenceAreaY(); if (legendTop) { @@ -210,14 +217,14 @@ drawableSet.drawU22(ug.apply(new UTranslate(area.getSequenceAreaX() + delta1 / 2, sequenceAreaY)), delta, fullDimension.getWidth(), page, diagram.isShowFootbox()); - addHeader3(area, ug); - addFooter3(area, ug); + drawHeader(area, ug); + drawFooter(area, ug); - if (legend != null) { + if (DisplayPositionned.isNull(legend) == false) { final double delta2; - if (diagram.getLegendAlignment() == HorizontalAlignment.LEFT) { + if (legend.getHorizontalAlignment() == HorizontalAlignment.LEFT) { delta2 = 0; - } else if (diagram.getLegendAlignment() == HorizontalAlignment.RIGHT) { + } else if (legend.getHorizontalAlignment() == HorizontalAlignment.RIGHT) { delta2 = Math.max(0, area.getWidth() - dimLegend.getWidth()); } else { delta2 = Math.max(0, area.getWidth() - dimLegend.getWidth()) / 2; @@ -228,7 +235,27 @@ } }); - return imageBuilder.writeImageTOBEMOVED(fileFormatOption.getFileFormat(), os); + return imageBuilder.writeImageTOBEMOVED(fileFormatOption, os); + } + + private void drawFooter(SequenceDiagramArea area, UGraphic ug) { + final PngTitler pngTitler = getPngTitler(FontParam.FOOTER); + final TextBlock text = pngTitler.getTextBlock(); + if (text == null) { + return; + } + text.drawU(ug.apply(new UTranslate(area.getFooterX(diagram.getFooter().getHorizontalAlignment()), area + .getFooterY()))); + } + + private void drawHeader(SequenceDiagramArea area, UGraphic ug) { + final PngTitler pngTitler = getPngTitler(FontParam.HEADER); + final TextBlock text = pngTitler.getTextBlock(); + if (text == null) { + return; + } + text.drawU(ug.apply(new UTranslate(area.getHeaderX(diagram.getHeader().getHorizontalAlignment()), area + .getHeaderY()))); } private double oneOf(double a, double b) { @@ -258,58 +285,14 @@ return diagram.getScale().getScale(width, height); } - private void addFooter2(SequenceDiagramArea area) { - final HtmlColor hyperlinkColor = diagram.getSkinParam().getHyperlinkColor(); - final HtmlColor titleColor = diagram.getSkinParam().getFontHtmlColor(FontParam.FOOTER, null); - final String fontFamily = diagram.getSkinParam().getFont(FontParam.FOOTER, null, false).getFamily(null); - final int fontSize = diagram.getSkinParam().getFont(FontParam.FOOTER, null, false).getSize(); - final PngTitler pngTitler = new PngTitler(titleColor, diagram.getFooter(), fontSize, fontFamily, - diagram.getFooterAlignment(), hyperlinkColor, diagram.getSkinParam().useUnderlineForHyperlink()); - final Dimension2D dim = pngTitler.getTextDimension(dummyStringBounder); - if (dim != null) { - area.setFooterArea(dim.getWidth(), dim.getHeight(), 3); - } - } - - private void addHeader2(SequenceDiagramArea area) { + private PngTitler getPngTitler(final FontParam fontParam) { final HtmlColor hyperlinkColor = diagram.getSkinParam().getHyperlinkColor(); - final HtmlColor titleColor = diagram.getSkinParam().getFontHtmlColor(FontParam.HEADER, null); - final String fontFamily = diagram.getSkinParam().getFont(FontParam.HEADER, null, false).getFamily(null); - final int fontSize = diagram.getSkinParam().getFont(FontParam.HEADER, null, false).getSize(); - final PngTitler pngTitler = new PngTitler(titleColor, diagram.getHeader(), fontSize, fontFamily, - diagram.getHeaderAlignment(), hyperlinkColor, diagram.getSkinParam().useUnderlineForHyperlink()); - final Dimension2D dim = pngTitler.getTextDimension(dummyStringBounder); - if (dim != null) { - area.setHeaderArea(dim.getWidth(), dim.getHeight(), 3); - } - } - - private void addFooter3(SequenceDiagramArea area, UGraphic ug) { - final HtmlColor hyperlinkColor = diagram.getSkinParam().getHyperlinkColor(); - final HtmlColor titleColor = diagram.getSkinParam().getFontHtmlColor(FontParam.FOOTER, null); - final String fontFamily = diagram.getSkinParam().getFont(FontParam.FOOTER, null, false).getFamily(null); - final int fontSize = diagram.getSkinParam().getFont(FontParam.FOOTER, null, false).getSize(); - final PngTitler pngTitler = new PngTitler(titleColor, diagram.getFooter(), fontSize, fontFamily, - diagram.getFooterAlignment(), hyperlinkColor, diagram.getSkinParam().useUnderlineForHyperlink()); - final TextBlock text = pngTitler.getTextBlock(); - if (text == null) { - return; - } - text.drawU(ug.apply(new UTranslate(area.getFooterX(diagram.getFooterAlignment()), area.getFooterY()))); - } - - private void addHeader3(SequenceDiagramArea area, UGraphic ug) { - final HtmlColor hyperlinkColor = diagram.getSkinParam().getHyperlinkColor(); - final HtmlColor titleColor = diagram.getSkinParam().getFontHtmlColor(FontParam.HEADER, null); - final String fontFamily = diagram.getSkinParam().getFont(FontParam.HEADER, null, false).getFamily(null); - final int fontSize = diagram.getSkinParam().getFont(FontParam.HEADER, null, false).getSize(); - final PngTitler pngTitler = new PngTitler(titleColor, diagram.getHeader(), fontSize, fontFamily, - diagram.getHeaderAlignment(), hyperlinkColor, diagram.getSkinParam().useUnderlineForHyperlink()); - final TextBlock text = pngTitler.getTextBlock(); - if (text == null) { - return; - } - text.drawU(ug.apply(new UTranslate(area.getHeaderX(diagram.getHeaderAlignment()), area.getHeaderY()))); + final HtmlColor titleColor = diagram.getSkinParam().getFontHtmlColor(null, fontParam); + final String fontFamily = diagram.getSkinParam().getFont(null, false, fontParam).getFamily(null); + final int fontSize = diagram.getSkinParam().getFont(null, false, fontParam).getSize(); + return new PngTitler(titleColor, diagram.getFooterOrHeaderTeoz(fontParam).getDisplay(), fontSize, fontFamily, + diagram.getFooterOrHeaderTeoz(fontParam).getHorizontalAlignment(), hyperlinkColor, diagram + .getSkinParam().useUnderlineForHyperlink()); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramTxtMaker.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramTxtMaker.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramTxtMaker.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramTxtMaker.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Stairs.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Stairs.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Stairs.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Stairs.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1Abstract.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1Abstract.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1Abstract.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1Abstract.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -82,17 +82,6 @@ abstract Frontier prepareMessage(ConstraintSet constraintSet, InGroupablesStack groupingStructures); - protected final Display getLabelOfMessage(AbstractMessage message) { - if (message.getMessageNumber() == null) { - return message.getLabel(); - } - Display result = Display.empty(); - result = result.add(new MessageNumber(message.getMessageNumber())); - result = result.addAll(message.getLabel()); - return result; - } - - protected final ArrowConfiguration getConfig() { return config; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1MessageExo.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1MessageExo.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1MessageExo.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1MessageExo.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -57,7 +57,7 @@ this.messageArrow = new MessageExoArrow(freeY.getFreeY(range), drawingSet.getSkin(), drawingSet.getSkin() .createComponent(ComponentType.ARROW, getConfig(), drawingSet.getSkinParam(), - getLabelOfMessage(message)), getLivingParticipantBox(), message.getType(), message.getUrl(), + message.getLabelNumbered()), getLivingParticipantBox(), message.getType(), message.getUrl(), message.isShortArrow(), message.getArrowConfiguration()); if (message.getNote() != null) { @@ -109,16 +109,6 @@ return getDrawingSet().getLivingParticipantBox(((MessageExo) getMessage()).getParticipant()); } - private Display getLabelOfMessage(MessageExo message) { - if (message.getMessageNumber() == null) { - return message.getLabel(); - } - Display result = Display.empty(); - result = result.add(new MessageNumber(message.getMessageNumber())); - result = result.addAll(message.getLabel()); - return result; - } - private Arrow createArrow() { if (getMessage().getNote() == null) { return messageArrow; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1Message.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1Message.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1Message.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/graphic/Step1Message.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -64,7 +64,7 @@ this.messageArrow = null; } else { final Component comp = drawingSet.getSkin().createComponent(ComponentType.ARROW, getConfig(), - drawingSet.getSkinParam(), getLabelOfMessage(message)); + drawingSet.getSkinParam(), message.getLabelNumbered()); final Component compAliveBox = drawingSet.getSkin().createComponent(ComponentType.ALIVE_BOX_OPEN_OPEN, null, drawingSet.getSkinParam(), null); @@ -74,7 +74,8 @@ if (message.getNote() != null) { final ISkinParam skinParam = message.getSkinParamNoteBackcolored(drawingSet.getSkinParam()); - setNote(drawingSet.getSkin().createComponent(ComponentType.NOTE, null, skinParam, message.getNote())); + setNote(drawingSet.getSkin().createComponent(message.getNoteStyle().getNoteComponentType(), null, + skinParam, message.getNote())); } } @@ -190,7 +191,7 @@ } return new MessageSelfArrow(posY, getDrawingSet().getSkin(), getDrawingSet().getSkin().createComponent( - ComponentType.ARROW, getConfig(), getDrawingSet().getSkinParam(), getLabelOfMessage(getMessage())), + ComponentType.ARROW, getConfig(), getDrawingSet().getSkinParam(), getMessage().getLabelNumbered()), getLivingParticipantBox1(), deltaY, getMessage().getUrl(), deltaX); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Grouping.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Grouping.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Grouping.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Grouping.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/GroupingLeaf.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/GroupingLeaf.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/GroupingLeaf.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/GroupingLeaf.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/GroupingStart.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/GroupingStart.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/GroupingStart.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/GroupingStart.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/GroupingType.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/GroupingType.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/GroupingType.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/GroupingType.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/HSpace.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/HSpace.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/HSpace.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/HSpace.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/InGroupable.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/InGroupable.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/InGroupable.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/InGroupable.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/InGroupableList.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/InGroupableList.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/InGroupableList.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/InGroupableList.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/LifeEvent.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/LifeEvent.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/LifeEvent.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/LifeEvent.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,15 +34,15 @@ */ package net.sourceforge.plantuml.sequencediagram; -import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.SymbolContext; public class LifeEvent extends AbstractEvent implements Event { private final Participant p; private final LifeEventType type; - private final HtmlColor backcolor; + private final SymbolContext backcolor; - public LifeEvent(Participant p, LifeEventType type, HtmlColor backcolor) { + public LifeEvent(Participant p, LifeEventType type, SymbolContext backcolor) { this.p = p; this.type = type; this.backcolor = backcolor; @@ -61,7 +61,7 @@ return type; } - public HtmlColor getSpecificBackColor() { + public SymbolContext getSpecificColors() { return backcolor; } @@ -77,10 +77,15 @@ return type == LifeEventType.DEACTIVATE || type == LifeEventType.DESTROY; } + @Deprecated public boolean isDestroy() { return type == LifeEventType.DESTROY; } + public boolean isDestroy(Participant p) { + return this.p == p && type == LifeEventType.DESTROY; + } + // public double getStrangePos() { // return message.getPosYendLevel(); // } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/LifeEventType.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/LifeEventType.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/LifeEventType.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/LifeEventType.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/MessageExo.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/MessageExo.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/MessageExo.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/MessageExo.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/MessageExoType.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/MessageExoType.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/MessageExoType.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/MessageExoType.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Message.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Message.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Message.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Message.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/MessageNumber.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/MessageNumber.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/MessageNumber.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/MessageNumber.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Newpage.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Newpage.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Newpage.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Newpage.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Note.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Note.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Note.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Note.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,13 +35,13 @@ package net.sourceforge.plantuml.sequencediagram; import net.sourceforge.plantuml.ISkinParam; -import net.sourceforge.plantuml.SkinParamBackcolored; import net.sourceforge.plantuml.SpecificBackcolorable; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.color.Colors; public class Note extends AbstractEvent implements Event, SpecificBackcolorable { @@ -53,6 +53,8 @@ private final NotePosition position; private NoteStyle style = NoteStyle.NORMAL; + // private Stereotype stereotype; + private final Url url; public Note(Participant p, NotePosition position, Display strings) { @@ -68,8 +70,9 @@ this.p2 = p2; this.position = position; if (strings != null && strings.size() > 0) { - final UrlBuilder urlBuilder = new UrlBuilder(null, ModeUrl.STRICT); - this.url = urlBuilder.getUrl(strings.get(0).toString()); + final UrlBuilder urlBuilder = new UrlBuilder(null, ModeUrl.AT_START); + final String s = strings.asStringWithHiddenNewLine(); + this.url = urlBuilder.getUrl(s); } else { this.url = null; } @@ -77,7 +80,7 @@ if (this.url == null) { this.strings = strings; } else { - this.strings = strings.subList(1, strings.size()); + this.strings = strings.removeUrlHiddenNewLineUrl(); } } @@ -97,14 +100,20 @@ return position; } - private HtmlColor specificBackcolor; - - public HtmlColor getSpecificBackColor() { - return specificBackcolor; + public Colors getColors(ISkinParam skinParam) { + return colors; } - public void setSpecificBackcolor(HtmlColor color) { - this.specificBackcolor = color; + // public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color) { + // if (color != null) { + // this.colors = colors.add(type, color); + // } + // } + + private Colors colors = Colors.empty(); + + public void setColors(Colors colors) { + this.colors = colors; } public boolean dealWith(Participant someone) { @@ -127,8 +136,18 @@ this.style = style; } - public SkinParamBackcolored getSkinParamBackcolored(ISkinParam skinParam) { - return new SkinParamBackcolored(skinParam, getSpecificBackColor()); + public ISkinParam getSkinParamBackcolored(ISkinParam skinParam) { + // return new SkinParamBackcolored(skinParam, getColors(skinParam).getColor(ColorType.BACK)); + return colors.mute(skinParam); + } + + public void setStereotype(Stereotype stereotype) { + // this.stereotype = stereotype; + } + + @Override + public String toString() { + return super.toString() + " " + strings; } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/NotePosition.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/NotePosition.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/NotePosition.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/NotePosition.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Notes.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Notes.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Notes.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Notes.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.sequencediagram; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -63,4 +64,12 @@ public Iterator iterator() { return notes.iterator(); } + + public Note get(int i) { + return notes.get(i); + } + + public List asList() { + return Collections.unmodifiableList(notes); + } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/NoteStyle.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/NoteStyle.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/NoteStyle.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/NoteStyle.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,8 @@ */ package net.sourceforge.plantuml.sequencediagram; +import net.sourceforge.plantuml.skin.ComponentType; + public enum NoteStyle { NORMAL, HEXAGONAL, BOX; @@ -46,5 +48,16 @@ } return NoteStyle.NORMAL; } + + public ComponentType getNoteComponentType() { + if (this == NoteStyle.HEXAGONAL) { + return ComponentType.NOTE_HEXAGONAL; + } + if (this == NoteStyle.BOX) { + return ComponentType.NOTE_BOX; + } + return ComponentType.NOTE; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/ParticipantEngloberContexted.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/ParticipantEngloberContexted.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/ParticipantEngloberContexted.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/ParticipantEngloberContexted.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.sequencediagram; - -import java.util.ArrayList; -import java.util.List; - -public class ParticipantEngloberContexted { - - final private ParticipantEnglober participantEnglober; - final private List participants = new ArrayList(); - - public ParticipantEngloberContexted(ParticipantEnglober participantEnglober, Participant first) { - this.participantEnglober = participantEnglober; - this.participants.add(first); - } - - public final ParticipantEnglober getParticipantEnglober() { - return participantEnglober; - } - - public boolean contains(Participant p) { - return participants.contains(p); - } - - public void add(Participant p) { - if (participants.contains(p)) { - throw new IllegalArgumentException(); - } - participants.add(p); - } - - public final Participant getFirst2() { - return participants.get(0); - } - - public final Participant getLast2() { - return participants.get(participants.size() - 1); - } - - @Override - public String toString() { - return super.toString()+" "+participants; - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/ParticipantEnglober.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/ParticipantEnglober.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/ParticipantEnglober.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/ParticipantEnglober.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Participant.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Participant.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Participant.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Participant.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,6 +42,9 @@ import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.SymbolContext; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; public class Participant implements SpecificBackcolorable { @@ -60,7 +63,7 @@ if (code == null || code.length() == 0) { throw new IllegalArgumentException(); } - if (display == null || display.size() == 0) { + if (Display.isNull(display) || display.size() == 0) { throw new IllegalArgumentException(); } this.code = code; @@ -110,25 +113,31 @@ return initialLife; } - private HtmlColor liveBackcolor; + private SymbolContext liveBackcolors; - public final void incInitialLife(HtmlColor backcolor) { + public final void incInitialLife(SymbolContext colors) { initialLife++; - this.liveBackcolor = backcolor; + this.liveBackcolors = colors; } - public HtmlColor getLiveSpecificBackColor() { - return liveBackcolor; + public SymbolContext getLiveSpecificBackColors() { + return liveBackcolors; } - private HtmlColor specificBackcolor; + public Colors getColors(ISkinParam skinParam) { + return colors; + } - public HtmlColor getSpecificBackColor() { - return specificBackcolor; + public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color) { + if (color != null) { + this.colors = colors.add(type, color); + } } - public void setSpecificBackcolor(HtmlColor color) { - this.specificBackcolor = color; + private Colors colors = Colors.empty(); + + public void setColors(Colors colors) { + this.colors = colors; } private Url url; @@ -150,13 +159,19 @@ } public SkinParamBackcolored getSkinParamBackcolored(ISkinParam skinParam) { - HtmlColor specificBackColor = getSpecificBackColor(); + HtmlColor specificBackColor = getColors(skinParam).getColor(ColorType.BACK); final boolean clickable = getUrl() != null; final HtmlColor stereoBackColor = skinParam.getHtmlColor(getBackgroundColorParam(), getStereotype(), clickable); if (stereoBackColor != null && specificBackColor == null) { specificBackColor = stereoBackColor; } - return new SkinParamBackcolored(skinParam, specificBackColor, clickable); + final SkinParamBackcolored result = new SkinParamBackcolored(skinParam, specificBackColor, clickable); + final HtmlColor stereoBorderColor = skinParam.getHtmlColor(ColorParam.participantBorder, getStereotype(), + clickable); + if (stereoBorderColor != null) { + result.forceColor(ColorParam.participantBorder, stereoBorderColor); + } + return result; } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/ParticipantType.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/ParticipantType.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/ParticipantType.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/ParticipantType.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/FixedLink.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/FixedLink.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/FixedLink.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/FixedLink.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/PSegment.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/PSegment.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/PSegment.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/PSegment.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/PUnivers.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/PUnivers.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/PUnivers.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/PUnivers.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/PushDirection.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/PushDirection.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/PushDirection.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/PushDirection.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/PushSide.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/PushSide.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/PushSide.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/PushSide.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/PushStrategy.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/PushStrategy.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/PushStrategy.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/PushStrategy.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/SegmentPosition.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/SegmentPosition.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/puma/SegmentPosition.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/puma/SegmentPosition.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Reference.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Reference.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/Reference.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/Reference.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagramFactory.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagramFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagramFactory.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagramFactory.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -49,6 +49,8 @@ import net.sourceforge.plantuml.sequencediagram.command.CommandAutoNewpage; import net.sourceforge.plantuml.sequencediagram.command.CommandAutoactivate; import net.sourceforge.plantuml.sequencediagram.command.CommandAutonumber; +import net.sourceforge.plantuml.sequencediagram.command.CommandAutonumberResume; +import net.sourceforge.plantuml.sequencediagram.command.CommandAutonumberStop; import net.sourceforge.plantuml.sequencediagram.command.CommandBoxEnd; import net.sourceforge.plantuml.sequencediagram.command.CommandBoxStart; import net.sourceforge.plantuml.sequencediagram.command.CommandDelay; @@ -112,9 +114,9 @@ final FactorySequenceNoteOnArrowCommand factorySequenceNoteOnArrowCommand = new FactorySequenceNoteOnArrowCommand(); cmds.add(factorySequenceNoteOnArrowCommand.createSingleLine()); - cmds.add(factorySequenceNoteCommand.createMultiLine()); - cmds.add(factorySequenceNoteOverSeveralCommand.createMultiLine()); - cmds.add(factorySequenceNoteOnArrowCommand.createMultiLine()); + cmds.add(factorySequenceNoteCommand.createMultiLine(false)); + cmds.add(factorySequenceNoteOverSeveralCommand.createMultiLine(false)); + cmds.add(factorySequenceNoteOnArrowCommand.createMultiLine(false)); cmds.add(new CommandNewpage()); cmds.add(new CommandIgnoreNewpage()); @@ -125,6 +127,8 @@ cmds.add(new CommandReferenceMultilinesOverSeveral()); cmds.add(new CommandSkin()); cmds.add(new CommandAutonumber()); + cmds.add(new CommandAutonumberStop()); + cmds.add(new CommandAutonumberResume()); cmds.add(new CommandAutoactivate()); cmds.add(new CommandFootbox()); cmds.add(new CommandDelay()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagram.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagram.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagram.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,7 @@ */ package net.sourceforge.plantuml.sequencediagram; +import java.awt.geom.Dimension2D; import java.io.IOException; import java.io.OutputStream; import java.text.DecimalFormat; @@ -45,16 +46,20 @@ import java.util.Map; import java.util.Stack; +import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.FileFormat; import net.sourceforge.plantuml.FileFormatOption; import net.sourceforge.plantuml.OptionFlags; +import net.sourceforge.plantuml.Scale; import net.sourceforge.plantuml.UmlDiagram; import net.sourceforge.plantuml.UmlDiagramType; import net.sourceforge.plantuml.core.DiagramDescription; import net.sourceforge.plantuml.core.DiagramDescriptionImpl; import net.sourceforge.plantuml.core.ImageData; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.SymbolContext; import net.sourceforge.plantuml.sequencediagram.graphic.FileMaker; import net.sourceforge.plantuml.sequencediagram.graphic.SequenceDiagramFileMakerPuma2; import net.sourceforge.plantuml.sequencediagram.graphic.SequenceDiagramTxtMaker; @@ -72,7 +77,8 @@ private final Map participantEnglobers2 = new HashMap(); - private Skin skin = new ProtectedSkin(new Rose()); + private final Skin skinInitial = new ProtectedSkin(new Rose()); + private Skin skin2 = new ProtectedSkin(new Rose()); @Deprecated public Participant getOrCreateParticipant(String code) { @@ -99,7 +105,7 @@ if (participants.containsKey(code)) { throw new IllegalArgumentException(); } - if (display == null) { + if (Display.isNull(display)) { // display = Arrays.asList(code); display = Display.getWithNewlines(code); } @@ -128,6 +134,7 @@ } public void addNote(Note n, boolean tryMerge) { + // this.lastEventWithDeactivate = null; if (tryMerge && events.size() > 0) { final Event last = events.get(events.size() - 1); if (last instanceof Note) { @@ -198,11 +205,15 @@ return new SequenceDiagramTxtMaker(this, fileFormat); } - if (OptionFlags.FORCE_TEOZ || getPragma().useTeozLayout()) { - return new SequenceDiagramFileMakerTeoz(this, skin, fileFormatOption); + if (modeTeoz()) { + return new SequenceDiagramFileMakerTeoz(this, getSkin2(), fileFormatOption); } - return new SequenceDiagramFileMakerPuma2(this, skin, fileFormatOption); + return new SequenceDiagramFileMakerPuma2(this, getSkin2(), fileFormatOption); + } + + private boolean modeTeoz() { + return OptionFlags.FORCE_TEOZ || getPragma().useTeozLayout(); } @Override @@ -225,10 +236,14 @@ private LifeEvent pendingCreate = null; public String activate(Participant p, LifeEventType lifeEventType, HtmlColor backcolor) { + return activate(p, lifeEventType, backcolor, null); + } + + public String activate(Participant p, LifeEventType lifeEventType, HtmlColor backcolor, HtmlColor linecolor) { if (lastDelay != null) { return "You cannot Activate/Deactivate just after a ..."; } - final LifeEvent lifeEvent = new LifeEvent(p, lifeEventType, backcolor); + final LifeEvent lifeEvent = new LifeEvent(p, lifeEventType, new SymbolContext(backcolor, linecolor)); events.add(lifeEvent); if (lifeEventType == LifeEventType.CREATE) { pendingCreate = lifeEvent; @@ -236,7 +251,7 @@ } if (lastEventWithDeactivate == null) { if (lifeEventType == LifeEventType.ACTIVATE) { - p.incInitialLife(backcolor); + p.incInitialLife(new SymbolContext(backcolor, linecolor)); return null; } return "Only activate command can occur before message are send"; @@ -263,6 +278,9 @@ if (type != GroupingType.START && openGroupings.size() == 0) { return false; } + if (backColorGeneral == null) { + backColorGeneral = getSkinParam().getHtmlColor(ColorParam.sequenceGroupBodyBackground, null, false); + } final GroupingStart top = openGroupings.size() > 0 ? openGroupings.get(0) : null; @@ -289,32 +307,56 @@ final Skin s = SkinUtils.loadSkin(className); final Integer expected = new Integer(1); if (s != null && expected.equals(s.getProtocolVersion())) { - this.skin = new ProtectedSkin(s); + this.skin2 = new ProtectedSkin(s); return true; } return false; } - public Skin getSkin() { - return skin; + private Skin getSkin2() { + if (modeTeoz()) { + return skinInitial; + } + return skin2; } - private Integer messageNumber = null; + private boolean autonumber = false; + private int messageNumber; private int incrementMessageNumber; private DecimalFormat decimalFormat; - public final void goAutonumber(int startingNumber, int increment, DecimalFormat decimalFormat) { + public final void autonumberGo(int startingNumber, int increment, DecimalFormat decimalFormat) { + this.autonumber = true; this.messageNumber = startingNumber; this.incrementMessageNumber = increment; this.decimalFormat = decimalFormat; } + public final void autonumberStop() { + this.autonumber = false; + } + + public final void autonumberResume(DecimalFormat decimalFormat) { + this.autonumber = true; + if (decimalFormat != null) { + this.decimalFormat = decimalFormat; + } + } + + public final void autonumberResume(int increment, DecimalFormat decimalFormat) { + this.autonumber = true; + this.incrementMessageNumber = increment; + if (decimalFormat != null) { + this.decimalFormat = decimalFormat; + } + } + public String getNextMessageNumber() { - if (messageNumber == null) { + if (autonumber == false) { return null; } - final Integer result = messageNumber; + final int result = messageNumber; messageNumber += incrementMessageNumber; return decimalFormat.format(result); } @@ -367,7 +409,12 @@ @Override public int getNbImages() { - return getSequenceDiagramPngMaker(new FileFormatOption(FileFormat.PNG)).getNbPages(); + try { + return getSequenceDiagramPngMaker(new FileFormatOption(FileFormat.PNG)).getNbPages(); + } catch (Throwable t) { + t.printStackTrace(); + return 1; + } } public void removeHiddenParticipants() { @@ -430,7 +477,7 @@ return true; } } - if (getLegend() != null && getLegend().hasUrl()) { + if (DisplayPositionned.isNull(getLegend()) == false && getLegend().hasUrl()) { return true; } return false; @@ -448,4 +495,15 @@ return true; } + public double getDpiFactor(FileFormatOption fileFormatOption, Dimension2D dim) { + final double dpiFactor; + final Scale scale = getScale(); + if (scale == null) { + dpiFactor = getDpiFactor(fileFormatOption); + } else { + dpiFactor = scale.getScale(dim.getWidth(), dim.getHeight()); + } + return dpiFactor; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/Bordered.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/Bordered.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/Bordered.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/Bordered.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,44 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.teoz; + + +public interface Bordered { + + public double getBorder1(); + + public double getBorder2(); + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,13 +41,16 @@ import net.sourceforge.plantuml.real.Real; import net.sourceforge.plantuml.sequencediagram.Event; import net.sourceforge.plantuml.sequencediagram.MessageExo; +import net.sourceforge.plantuml.sequencediagram.MessageExoType; import net.sourceforge.plantuml.skin.Area; import net.sourceforge.plantuml.skin.ArrowComponent; import net.sourceforge.plantuml.skin.ArrowConfiguration; +import net.sourceforge.plantuml.skin.ArrowDecoration; import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.ComponentType; import net.sourceforge.plantuml.skin.Context2D; import net.sourceforge.plantuml.skin.Skin; +import net.sourceforge.plantuml.skin.rose.ComponentRoseArrow; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; @@ -57,21 +60,19 @@ private final MessageExo message; private final Skin skin; private final ISkinParam skinParam; - private final Real alpha; - private final Real omega; + private final TileArguments tileArguments; public Event getEvent() { return message; } public CommunicationExoTile(LivingSpace livingSpace, MessageExo message, Skin skin, ISkinParam skinParam, - Real alpha, Real omega) { + TileArguments tileArguments) { + this.tileArguments = tileArguments; this.livingSpace = livingSpace; this.message = message; this.skin = skin; this.skinParam = skinParam; - this.alpha = alpha; - this.omega = omega; } private Component getComponent(StringBounder stringBounder) { @@ -88,31 +89,75 @@ final StringBounder stringBounder = ug.getStringBounder(); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final double x1 = getPoint1(stringBounder).getCurrentValue(); - final double x2 = getPoint2(stringBounder).getCurrentValue(); + double x1 = getPoint1Value(stringBounder); + double x2 = getPoint2Value(stringBounder); + final int level = livingSpace.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); + if (level > 0) { + if (message.getType().isRightBorder()) { + x1 += CommunicationTile.LIVE_DELTA_SIZE * level; + } else { + x2 += CommunicationTile.LIVE_DELTA_SIZE * (level - 2); + } + } + + final ArrowConfiguration arrowConfiguration = message.getArrowConfiguration(); + final MessageExoType type = message.getType(); + if (arrowConfiguration.getDecoration1() == ArrowDecoration.CIRCLE && type == MessageExoType.FROM_LEFT) { + x1 += ComponentRoseArrow.diamCircle / 2 + 2; + } + if (arrowConfiguration.getDecoration2() == ArrowDecoration.CIRCLE && type == MessageExoType.TO_LEFT) { + x1 += ComponentRoseArrow.diamCircle / 2 + 2; + } + if (arrowConfiguration.getDecoration2() == ArrowDecoration.CIRCLE && type == MessageExoType.TO_RIGHT) { + x2 -= ComponentRoseArrow.diamCircle / 2 + 2; + } + if (arrowConfiguration.getDecoration1() == ArrowDecoration.CIRCLE && type == MessageExoType.FROM_RIGHT) { + x2 -= ComponentRoseArrow.diamCircle / 2 + 2; + } + final Area area = new Area(x2 - x1, dim.getHeight()); ug = ug.apply(new UTranslate(x1, 0)); comp.drawU(ug, area, (Context2D) ug); } + private boolean isShortArrow() { + return message.isShortArrow(); + } + public double getPreferredHeight(StringBounder stringBounder) { final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); return dim.getHeight(); } + private double getPreferredWidth(StringBounder stringBounder) { + final Component comp = getComponent(stringBounder); + final Dimension2D dim = comp.getPreferredDimension(stringBounder); + return dim.getWidth(); + } + public void addConstraints(StringBounder stringBounder) { final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); final double width = dim.getWidth(); - final Real point1 = getPoint1(stringBounder); - final Real point2 = getPoint2(stringBounder); - if (point1.getCurrentValue() < point2.getCurrentValue()) { - point2.ensureBiggerThan(point1.addFixed(width)); + if (message.getType().isRightBorder()) { + } else { - point1.ensureBiggerThan(point2.addFixed(width)); + livingSpace.getPosC(stringBounder).ensureBiggerThan(tileArguments.getOrigin().addFixed(width)); } + + // final Real point1 = getPoint1(stringBounder); + // if (message.getType().isRightBorder()) { + // final Real point2 = point1.addFixed(width); + // } else { + // final Real point2 = getPoint2(stringBounder); + // if (point1.getCurrentValue() < point2.getCurrentValue()) { + // point2.ensureBiggerThan(point1.addFixed(width)); + // } else { + // point1.ensureBiggerThan(point2.addFixed(width)); + // } + // } } public void updateStairs(StringBounder stringBounder, double y) { @@ -128,14 +173,27 @@ if (message.getType().isRightBorder()) { return livingSpace.getPosC(stringBounder); } - return alpha; + return tileArguments.getOrigin(); + } + + private double getPoint1Value(final StringBounder stringBounder) { + if (message.getType().isRightBorder()) { + return livingSpace.getPosC(stringBounder).getCurrentValue(); + } + if (isShortArrow()) { + return getPoint2Value(stringBounder) - getPreferredWidth(stringBounder); + } + return tileArguments.getBorder1(); } - private Real getPoint2(final StringBounder stringBounder) { + private double getPoint2Value(final StringBounder stringBounder) { if (message.getType().isRightBorder()) { - return omega; + if (isShortArrow()) { + return getPoint1Value(stringBounder) + getPreferredWidth(stringBounder); + } + return tileArguments.getBorder2(); } - return livingSpace.getPosC(stringBounder); + return livingSpace.getPosC(stringBounder).getCurrentValue(); } public Real getMinX(StringBounder stringBounder) { @@ -143,7 +201,10 @@ } public Real getMaxX(StringBounder stringBounder) { - return getPoint2(stringBounder); + final Component comp = getComponent(stringBounder); + final Dimension2D dim = comp.getPreferredDimension(stringBounder); + final double width = dim.getWidth(); + return getPoint1(stringBounder).addFixed(width); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,7 +37,9 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.VerticalAlignment; import net.sourceforge.plantuml.real.Real; import net.sourceforge.plantuml.sequencediagram.Event; import net.sourceforge.plantuml.sequencediagram.Message; @@ -51,7 +53,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class CommunicationTile implements TileWithUpdateStairs { +public class CommunicationTile implements TileWithUpdateStairs, TileWithCallbackY { private final LivingSpace livingSpace1; private final LivingSpace livingSpace2; @@ -73,6 +75,10 @@ this.message = message; this.skin = skin; this.skinParam = skinParam; + + if (message.isCreate()) { + livingSpace2.goCreate(); + } // for (LifeEvent lifeEvent : message.getLiveEvents()) { // System.err.println("lifeEvent = " + lifeEvent); // // livingSpace1.addLifeEvent(this, lifeEvent); @@ -87,7 +93,10 @@ return true; } return false; + } + private boolean isCreate() { + return message.isCreate(); } private Component getComponent(StringBounder stringBounder) { @@ -99,7 +108,7 @@ arrowConfiguration = arrowConfiguration.reverse(); } final Component comp = skin.createComponent(ComponentType.ARROW, arrowConfiguration, skinParam, - message.getLabel()); + message.getLabelNumbered()); return comp; } @@ -125,31 +134,47 @@ double x1 = getPoint1(stringBounder).getCurrentValue(); double x2 = getPoint2(stringBounder).getCurrentValue(); - final int level1 = livingSpace1.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); - final int level2 = livingSpace2.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); - // System.err.println("CommunicationTile::draw msg=" + message + " level1=" + level1 + " level2=" + level2); - final Area area; if (isReverse(stringBounder)) { - System.err.println("isreverse!"); - // x1 -= LIVE_DELTA_SIZE * level1; + final int level1 = livingSpace1.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); + final int level2 = livingSpace2.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); + if (level1 > 0) { + x1 -= LIVE_DELTA_SIZE; + } x2 += LIVE_DELTA_SIZE * level2; area = new Area(x1 - x2, dim.getHeight()); ug = ug.apply(new UTranslate(x2, 0)); + if (isCreate()) { + livingSpace2.drawHead(ug, (Context2D) ug, VerticalAlignment.TOP, HorizontalAlignment.RIGHT); + } } else { + final int level1 = livingSpace1.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); + int level2 = livingSpace2.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); + if (level2 > 0) { + level2 = level2 - 2; + } x1 += LIVE_DELTA_SIZE * level1; - x2 -= LIVE_DELTA_SIZE * level2; + x2 += LIVE_DELTA_SIZE * level2; area = new Area(x2 - x1, dim.getHeight()); ug = ug.apply(new UTranslate(x1, 0)); + if (isCreate()) { + livingSpace2.drawHead(ug.apply(new UTranslate(area.getDimensionToUse().getWidth(), 0)), (Context2D) ug, + VerticalAlignment.TOP, HorizontalAlignment.LEFT); + } } comp.drawU(ug, area, (Context2D) ug); // ug.draw(new ULine(x2 - x1, 0)); + } public double getPreferredHeight(StringBounder stringBounder) { final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - return dim.getHeight(); + double height = dim.getHeight(); + if (isCreate()) { + height = Math.max(height, livingSpace2.getHeadPreferredDimension(stringBounder).getHeight()); + } + return height; } public void addConstraints(StringBounder stringBounder) { @@ -157,26 +182,25 @@ final Dimension2D dim = comp.getPreferredDimension(stringBounder); final double width = dim.getWidth(); - // if (isSelf()) { - // final LivingSpace next = livingSpace1.getNext(); - // if (next != null) { - // next.getPosB().ensureBiggerThan(getMaxX(stringBounder)); - // } - // } else { - final Real point1 = getPoint1(stringBounder); - final Real point2 = getPoint2(stringBounder); - if (point1.getCurrentValue() < point2.getCurrentValue()) { - point2.ensureBiggerThan(point1.addFixed(width)); - } else { + Real point1 = getPoint1(stringBounder); + Real point2 = getPoint2(stringBounder); + if (isReverse(stringBounder)) { + final int level1 = livingSpace1.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); + final int level2 = livingSpace2.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); + if (level1 > 0) { + point1 = point1.addFixed(-LIVE_DELTA_SIZE); + } + point2 = point2.addFixed(level2 * LIVE_DELTA_SIZE); point1.ensureBiggerThan(point2.addFixed(width)); - // } + } else { + final int level2 = livingSpace2.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); + if (level2 > 0) { + point2 = point2.addFixed(-LIVE_DELTA_SIZE); + } + point2.ensureBiggerThan(point1.addFixed(width)); } } - // private boolean isSelf() { - // return livingSpace1 == livingSpace2; - // } - private Real getPoint1(final StringBounder stringBounder) { return livingSpace1.getPosC(stringBounder); } @@ -199,16 +223,16 @@ } public Real getMaxX(StringBounder stringBounder) { - // if (isSelf()) { - // final Component comp = getComponent(stringBounder); - // final Dimension2D dim = comp.getPreferredDimension(stringBounder); - // final double width = dim.getWidth(); - // return livingSpace1.getPosC(stringBounder).addFixed(width); - // } if (isReverse(stringBounder)) { return getPoint1(stringBounder); } return getPoint2(stringBounder); } + public void callbackY(double y) { + if (message.isCreate()) { + livingSpace2.goCreate(y); + } + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteLeft.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteLeft.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteLeft.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteLeft.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -50,7 +50,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class CommunicationTileNoteLeft implements TileWithUpdateStairs { +public class CommunicationTileNoteLeft implements TileWithUpdateStairs, TileWithCallbackY { private final TileWithUpdateStairs tile; private final AbstractMessage message; @@ -59,14 +59,13 @@ private final Display notes; // private final NotePosition notePosition; private final LivingSpace livingSpace; - + public Event getEvent() { return message; } - - public CommunicationTileNoteLeft(TileWithUpdateStairs tile, AbstractMessage message, Skin skin, ISkinParam skinParam, - LivingSpace livingSpace) { + public CommunicationTileNoteLeft(TileWithUpdateStairs tile, AbstractMessage message, Skin skin, + ISkinParam skinParam, LivingSpace livingSpace) { this.tile = tile; this.message = message; this.skin = skin; @@ -75,14 +74,14 @@ // this.notePosition = message.getNotePosition(); this.livingSpace = livingSpace; } - + public void updateStairs(StringBounder stringBounder, double y) { tile.updateStairs(stringBounder, y); } - private Component getComponent(StringBounder stringBounder) { - final Component comp = skin.createComponent(ComponentType.NOTE, null, message.getSkinParamNoteBackcolored(skinParam), notes); + final Component comp = skin.createComponent(ComponentType.NOTE, null, + message.getSkinParamNoteBackcolored(skinParam), notes); return comp; } @@ -121,4 +120,10 @@ return tile.getMaxX(stringBounder); } + public void callbackY(double y) { + if (tile instanceof TileWithCallbackY) { + ((TileWithCallbackY) tile).callbackY(y); + } + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteRight.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteRight.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteRight.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteRight.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -50,20 +50,23 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class CommunicationTileNoteRight implements TileWithUpdateStairs { +public class CommunicationTileNoteRight implements TileWithUpdateStairs, TileWithCallbackY { private final TileWithUpdateStairs tile; private final AbstractMessage message; private final Skin skin; private final ISkinParam skinParam; private final Display notes; - // private final NotePosition notePosition; private final LivingSpace livingSpace; public Event getEvent() { return message; } + private boolean isCreate() { + return message.isCreate(); + } + public CommunicationTileNoteRight(TileWithUpdateStairs tile, AbstractMessage message, Skin skin, ISkinParam skinParam, LivingSpace livingSpace) { this.tile = tile; @@ -71,7 +74,6 @@ this.skin = skin; this.skinParam = skinParam; this.notes = message.getNote(); - // this.notePosition = message.getNotePosition(); this.livingSpace = livingSpace; } @@ -86,9 +88,13 @@ } private Real getNotePosition(StringBounder stringBounder) { - final Component comp = getComponent(stringBounder); - final Dimension2D dim = comp.getPreferredDimension(stringBounder); - return livingSpace.getPosC(stringBounder); + // final Component comp = getComponent(stringBounder); + // final Dimension2D dim = comp.getPreferredDimension(stringBounder); + if (isCreate()) { + return livingSpace.getPosD(stringBounder); + } + final int level = livingSpace.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); + return livingSpace.getPosC(stringBounder).addFixed(level * CommunicationTile.LIVE_DELTA_SIZE); } public void drawU(UGraphic ug) { @@ -122,4 +128,10 @@ return getNotePosition(stringBounder).addFixed(dim.getWidth()); } + public void callbackY(double y) { + if (tile instanceof TileWithCallbackY) { + ((TileWithCallbackY) tile).callbackY(y); + } + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -89,7 +89,7 @@ ArrowConfiguration arrowConfiguration = message.getArrowConfiguration(); arrowConfiguration = arrowConfiguration.self(); final Component comp = skin.createComponent(ComponentType.ARROW, arrowConfiguration, skinParam, - message.getLabel()); + message.getLabelNumbered()); return comp; } @@ -153,7 +153,7 @@ final LivingSpace next = getNext(); if (next != null) { - next.getPosB().ensureBiggerThan(getMaxX(stringBounder)); + next.getPosC(stringBounder).ensureBiggerThan(getMaxX(stringBounder)); } } @@ -183,7 +183,7 @@ final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); final double width = dim.getWidth(); - return livingSpace1.getPosC(stringBounder).addFixed(width); + return livingSpace1.getPosC2(stringBounder).addFixed(width); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelfNoteRight.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelfNoteRight.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelfNoteRight.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelfNoteRight.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/ComponentAdapter.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/ComponentAdapter.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/ComponentAdapter.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/ComponentAdapter.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,73 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.teoz; + +import java.awt.geom.Dimension2D; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.skin.Area; +import net.sourceforge.plantuml.skin.Component; +import net.sourceforge.plantuml.skin.SimpleContext2D; +import net.sourceforge.plantuml.ugraphic.UGraphic; + +public class ComponentAdapter extends AbstractTextBlock implements TextBlock { + + private final Component component; + + public ComponentAdapter(Component component) { + this.component = component; + } + + public void drawU(UGraphic ug) { + if (component == null) { + return; + } + component.drawU(ug, new Area(calculateDimension(ug.getStringBounder())), new SimpleContext2D(false)); + + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + if (component == null) { + return new Dimension2DDouble(0, 0); + } + final double width = component.getPreferredWidth(stringBounder); + final double height = component.getPreferredHeight(stringBounder); + return new Dimension2DDouble(width, height); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/DelayTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/DelayTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/DelayTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/DelayTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,27 +38,32 @@ import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.real.Real; +import net.sourceforge.plantuml.real.RealUtils; import net.sourceforge.plantuml.sequencediagram.Delay; import net.sourceforge.plantuml.sequencediagram.Event; import net.sourceforge.plantuml.skin.Area; import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.ComponentType; import net.sourceforge.plantuml.skin.Context2D; -import net.sourceforge.plantuml.skin.SimpleContext2D; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class DelayTile implements Tile { +public class DelayTile implements Tile, TileWithCallbackY { private final Delay delay; private final TileArguments tileArguments; - private Real first; - private Real last; - + // private Real first; + // private Real last; + private Real middle; + private double y; + public Event getEvent() { return delay; } + public void callbackY(double y) { + this.y = y; + } public DelayTile(Delay delay, TileArguments tileArguments) { this.delay = delay; @@ -66,14 +71,13 @@ } private void init(StringBounder stringBounder) { - if (first != null) { + if (middle != null) { return; } - this.first = tileArguments.getFirstLivingSpace().getPosC(stringBounder); + final Real first = tileArguments.getFirstLivingSpace().getPosC(stringBounder); final Component comp = getComponent(stringBounder); - final Dimension2D dim = comp.getPreferredDimension(stringBounder); - this.last = tileArguments.getLastLivingSpace().getPosC(stringBounder).addAtLeast(0); - this.last.ensureBiggerThan(this.first.addFixed(dim.getWidth())); + final Real last = tileArguments.getLastLivingSpace().getPosC(stringBounder); + this.middle = RealUtils.middle(first, last); } @@ -83,14 +87,21 @@ return comp; } + private double getPreferredWidth(StringBounder stringBounder) { + final Component comp = getComponent(stringBounder); + final Dimension2D dim = comp.getPreferredDimension(stringBounder); + return dim.getWidth(); + } + public void drawU(UGraphic ug) { final StringBounder stringBounder = ug.getStringBounder(); init(stringBounder); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(last.getCurrentValue() - first.getCurrentValue(), dim.getHeight()); + final Area area = new Area(getPreferredWidth(stringBounder), dim.getHeight()); + tileArguments.getLivingSpaces().delayOn(y, dim.getHeight()); - ug = ug.apply(new UTranslate(first.getCurrentValue(), 0)); + ug = ug.apply(new UTranslate(getMinX(stringBounder).getCurrentValue(), 0)); comp.drawU(ug, area, (Context2D) ug); } @@ -105,22 +116,22 @@ public Real getMinX(StringBounder stringBounder) { init(stringBounder); - return this.first; + return this.middle.addFixed(-getPreferredWidth(stringBounder) / 2); } public Real getMaxX(StringBounder stringBounder) { init(stringBounder); - return this.last; + return this.middle.addFixed(getPreferredWidth(stringBounder) / 2); } -// private double startingY; -// -// public void setStartingY(double startingY) { -// this.startingY = startingY; -// } -// -// public double getStartingY() { -// return startingY; -// } + // private double startingY; + // + // public void setStartingY(double startingY) { + // this.startingY = startingY; + // } + // + // public double getStartingY() { + // return startingY; + // } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/DividerTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/DividerTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/DividerTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/DividerTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,7 +45,6 @@ import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.ComponentType; import net.sourceforge.plantuml.skin.Context2D; -import net.sourceforge.plantuml.skin.SimpleContext2D; import net.sourceforge.plantuml.skin.Skin; import net.sourceforge.plantuml.ugraphic.UGraphic; @@ -55,19 +54,18 @@ private final ISkinParam skinParam; private final Divider divider; private final Real origin; - private final Real omega; - + private final TileArguments tileArguments; + public Event getEvent() { return divider; } - - public DividerTile(Divider divider, Skin skin, ISkinParam skinParam, Real origin, Real omega) { + public DividerTile(Divider divider, TileArguments tileArguments) { + this.tileArguments = tileArguments; this.divider = divider; - this.skin = skin; - this.skinParam = skinParam; - this.origin = origin; - this.omega = omega; + this.skin = tileArguments.getSkin(); + this.skinParam = tileArguments.getSkinParam(); + this.origin = tileArguments.getOrigin(); } private Component getComponent(StringBounder stringBounder) { @@ -79,7 +77,7 @@ final StringBounder stringBounder = ug.getStringBounder(); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(omega.getCurrentValue() - origin.getCurrentValue(), dim.getHeight()); + final Area area = new Area(tileArguments.getBorder2() - origin.getCurrentValue(), dim.getHeight()); // ug = ug.apply(new UTranslate(x, 0)); comp.drawU(ug, area, (Context2D) ug); @@ -102,7 +100,9 @@ } public Real getMaxX(StringBounder stringBounder) { - return omega; + final Component comp = getComponent(stringBounder); + final Dimension2D dim = comp.getPreferredDimension(stringBounder); + return origin.addFixed(dim.getWidth()); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/ElseTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/ElseTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/ElseTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/ElseTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,32 +37,28 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.SkinParamBackcolored; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.real.Real; import net.sourceforge.plantuml.sequencediagram.Event; import net.sourceforge.plantuml.sequencediagram.GroupingLeaf; -import net.sourceforge.plantuml.skin.Area; import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.ComponentType; -import net.sourceforge.plantuml.skin.Context2D; -import net.sourceforge.plantuml.skin.SimpleContext2D; import net.sourceforge.plantuml.skin.Skin; import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.ugraphic.UTranslate; -public class ElseTile implements Tile { +public class ElseTile implements TileWithCallbackY { private final Skin skin; private final ISkinParam skinParam; private final GroupingLeaf anElse; private final Tile parent; - + public Event getEvent() { return anElse; } - public ElseTile(GroupingLeaf anElse, Skin skin, ISkinParam skinParam, Tile parent) { this.anElse = anElse; this.skin = skin; @@ -70,22 +66,32 @@ this.parent = parent; } - private Component getComponent(StringBounder stringBounder) { - final Display display = Display.create(anElse.getTitle()); - final Component comp = skin.createComponent(ComponentType.GROUPING_ELSE, null, skinParam, display); + public Component getComponent(StringBounder stringBounder) { + // final Display display = Display.create(anElse.getTitle()); + final ISkinParam tmp = new SkinParamBackcolored(skinParam, anElse.getBackColorElement(), + anElse.getBackColorGeneral()); + + final Display display = Display.create(anElse.getComment()); + final Component comp = skin.createComponent(ComponentType.GROUPING_ELSE, null, tmp, display); return comp; } public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final Component comp = getComponent(stringBounder); - final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Real min = getMinX(stringBounder); - final Real max = getMaxX(stringBounder); - final Area area = new Area(max.getCurrentValue() - min.getCurrentValue(), dim.getHeight()); - ug = ug.apply(new UTranslate(min.getCurrentValue(), 0)); - // ug = ug.apply(new UTranslate(x, 0)); - comp.drawU(ug, area, (Context2D) ug); + // final StringBounder stringBounder = ug.getStringBounder(); + // final Component comp = getComponent(stringBounder); + // final Dimension2D dim = comp.getPreferredDimension(stringBounder); + // final Real min = getMinX(stringBounder); + // final Real max = getMaxX(stringBounder); + // final Context2D context = (Context2D) ug; + // double height = dim.getHeight(); + // // if (context.isBackground() && parent instanceof GroupingTile) { + // // final double startingY = ((GroupingTile) parent).getStartY(); + // // final double totalParentHeight = parent.getPreferredHeight(stringBounder); + // // height = totalParentHeight - (startingY - y); + // // } + // final Area area = new Area(max.getCurrentValue() - min.getCurrentValue(), height); + // ug = ug.apply(new UTranslate(min.getCurrentValue(), 0)); + // comp.drawU(ug, area, context); } public double getPreferredHeight(StringBounder stringBounder) { @@ -105,7 +111,19 @@ } public Real getMaxX(StringBounder stringBounder) { - return parent.getMaxX(stringBounder); + final Component comp = getComponent(stringBounder); + final Dimension2D dim = comp.getPreferredDimension(stringBounder); + return getMinX(stringBounder).addFixed(dim.getWidth()); + } + + private double y; + + public void callbackY(double y) { + this.y = y; + } + + public double getCallbackY() { + return y; } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/EmptyTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/EmptyTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/EmptyTile.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/EmptyTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,93 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.teoz; + +import net.sourceforge.plantuml.Url; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.real.Real; +import net.sourceforge.plantuml.sequencediagram.Event; +import net.sourceforge.plantuml.sequencediagram.Participant; +import net.sourceforge.plantuml.ugraphic.UGraphic; + +public class EmptyTile implements Tile { + + private final double height; + + private final Real origin; + + public EmptyTile(double height, TileArguments tileArguments) { + this.origin = tileArguments.getOrigin(); + this.height = height; + } + + public void drawU(UGraphic ug) { + } + + public double getPreferredHeight(StringBounder stringBounder) { + return height; + } + + public void addConstraints(StringBounder stringBounder) { + } + + public Real getMinX(StringBounder stringBounder) { + return origin; + } + + public Real getMaxX(StringBounder stringBounder) { + return origin; + } + + public Event getEvent() { + return new Event() { + public boolean dealWith(Participant someone) { + return false; + } + + public Url getUrl() { + return null; + } + + public boolean hasUrl() { + return false; + } + + public boolean isParallel() { + return false; + } + }; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/Englobers.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/Englobers.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/Englobers.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/Englobers.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,125 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.teoz; + +import java.util.ArrayList; +import java.util.List; + +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.real.Real; +import net.sourceforge.plantuml.real.RealUtils; +import net.sourceforge.plantuml.sequencediagram.Englober; +import net.sourceforge.plantuml.sequencediagram.Participant; +import net.sourceforge.plantuml.sequencediagram.ParticipantEnglober; +import net.sourceforge.plantuml.skin.Context2D; +import net.sourceforge.plantuml.ugraphic.UGraphic; + +public class Englobers { + + private final List englobers = new ArrayList(); + + public Englobers(TileArguments tileArguments) { + Englober pending = null; + for (Participant p : tileArguments.getLivingSpaces().participants()) { + final ParticipantEnglober englober = tileArguments.getLivingSpaces().get(p).getEnglober(); + if (englober == null) { + pending = null; + continue; + } + assert englober != null; + if (pending != null && englober == pending.getParticipantEnglober()) { + pending.add(p); + continue; + } + pending = new Englober(englober, p, tileArguments); + englobers.add(pending); + } + } + + public int size() { + return englobers.size(); + } + + public double getOffsetForEnglobers(StringBounder stringBounder) { + double result = 0; + for (Englober englober : englobers) { + final double height = englober.getPreferredHeight(); + if (height > result) { + result = height; + } + } + return result; + } + + public void addConstraints(StringBounder stringBounder) { + Englober last = null; + for (Englober current : englobers) { + current.addInternalConstraints(); + if (last != null) { + last.addConstraintAfter(current); + } + last = current; + } + } + + public void drawEnglobers(UGraphic ug, double height, Context2D context) { + for (Englober englober : englobers) { + englober.drawEnglober(ug, height, context); + } + } + + public Real getMinX(StringBounder stringBounder) { + if (size() == 0) { + throw new IllegalStateException(); + } + final List all = new ArrayList(); + for (Englober englober : englobers) { + all.add(englober.getMinX(stringBounder)); + } + return RealUtils.min(all); + } + + public Real getMaxX(StringBounder stringBounder) { + if (size() == 0) { + throw new IllegalStateException(); + } + final List all = new ArrayList(); + for (Englober englober : englobers) { + all.add(englober.getMaxX(stringBounder)); + } + return RealUtils.max(all); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistory.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistory.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistory.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistory.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,7 +39,8 @@ import java.util.List; import java.util.Map; -import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.SymbolContext; +import net.sourceforge.plantuml.sequencediagram.AbstractMessage; import net.sourceforge.plantuml.sequencediagram.Event; import net.sourceforge.plantuml.sequencediagram.LifeEvent; import net.sourceforge.plantuml.sequencediagram.Message; @@ -86,11 +87,11 @@ } } if (event == current) { - if (current instanceof Message) { + if (current instanceof AbstractMessage) { final Event next = nextButSkippingNotes(it); if (next instanceof LifeEvent) { final LifeEvent le = (LifeEvent) next; - final Message msg = (Message) current; + final AbstractMessage msg = (AbstractMessage) current; if (mode != EventsHistoryMode.IGNORE_FUTURE_ACTIVATE && le.isActivate() && msg.dealWith(p) && le.getParticipant() == p) { level++; @@ -103,6 +104,9 @@ } } + if (level < 0) { + return 0; + } // System.err.println("<-result1 is " + level); return level; } @@ -121,7 +125,7 @@ final Event next = nextButSkippingNotes(it); if (next instanceof LifeEvent) { final LifeEvent le = (LifeEvent) next; - return le.isDestroy(); + return le.isDestroy(p); } } return false; @@ -129,7 +133,7 @@ return false; } - private HtmlColor getActivateColor(Event event) { + private SymbolContext getActivateColor(Event event) { for (Iterator it = events.iterator(); it.hasNext();) { final Event current = it.next(); if (event != current) { @@ -140,7 +144,7 @@ if (next instanceof LifeEvent) { final LifeEvent le = (LifeEvent) next; if (le.isActivate()) { - return le.getSpecificBackColor(); + return le.getSpecificColors(); } return null; } @@ -164,23 +168,44 @@ } } - public Stairs2 getStairs(double totalHeight) { - System.err.println("EventsHistory::getStairs totalHeight=" + totalHeight); + public Stairs2 getStairs(double createY, double totalHeight) { + // System.err.println("EventsHistory::getStairs totalHeight=" + totalHeight); final Stairs2 result = new Stairs2(); int value = 0; for (Event event : events) { final Double position = ys3.get(event); - System.err.println("EventsHistory::getStairs event=" + event + " position=" + position); + // System.err.println("EventsHistory::getStairs event=" + event + " position=" + position); if (position != null) { assert position <= totalHeight : "position=" + position + " totalHeight=" + totalHeight; value = getLevelAt(event, EventsHistoryMode.CONSIDERE_FUTURE_DEACTIVATE); - result.addStep(new StairsPosition(position, isNextEventADestroy(event)), value, getActivateColor(event)); + result.addStep(new StairsPosition(Math.max(createY, position), isNextEventADestroy(event)), value, + getActivateColor(event)); } } - System.err.println("EventsHistory::getStairs finishing totalHeight=" + totalHeight); + // System.err.println("EventsHistory::getStairs finishing totalHeight=" + totalHeight); result.addStep(new StairsPosition(totalHeight, false), value, null); // System.err.println("EventsHistory::getStairs " + p + " result=" + result); return result; } + public int getMaxValue() { + int max = 0; + int level = 0; + for (Event current : events) { + if (current instanceof LifeEvent) { + final LifeEvent le = (LifeEvent) current; + if (le.getParticipant() == p && le.isActivate()) { + level++; + } + if (level > max) { + max = level; + } + if (le.getParticipant() == p && le.isDeactivateOrDestroy()) { + level--; + } + } + } + return max; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistoryMode.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistoryMode.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistoryMode.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistoryMode.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/GroupingTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/GroupingTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/GroupingTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/GroupingTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,8 +43,7 @@ import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.real.Real; -import net.sourceforge.plantuml.real.RealMax; -import net.sourceforge.plantuml.real.RealMin; +import net.sourceforge.plantuml.real.RealUtils; import net.sourceforge.plantuml.sequencediagram.Event; import net.sourceforge.plantuml.sequencediagram.Grouping; import net.sourceforge.plantuml.sequencediagram.GroupingLeaf; @@ -58,13 +57,15 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class GroupingTile implements Tile { +public class GroupingTile implements TileWithCallbackY { + private static final int EXTERNAL_MARGINX1 = 3; + private static final int EXTERNAL_MARGINX2 = 9; private static final int MARGINX = 16; private static final int MARGINY = 10; private final List tiles = new ArrayList(); - private final RealMin min = new RealMin(); - private final RealMax max = new RealMax(); + private final Real min; + private final Real max; private final GroupingStart start; // private final double marginX = 20; @@ -86,33 +87,43 @@ this.display = start.getTitle().equals("group") ? Display.create(start.getComment()) : Display.create( start.getTitle(), start.getComment()); this.skin = tileArgumentsOriginal.getSkin(); + // this.skinParam = tileArgumentsOriginal.getSkinParam(); this.skinParam = tileArgumentsBachColorChanged.getSkinParam(); - // this.max = min.addAtLeast(dim1.getWidth()); + final List min2 = new ArrayList(); + final List max2 = new ArrayList(); + + final List allElses = new ArrayList(); while (it.hasNext()) { final Event ev = it.next(); - System.err.println("GroupingTile::ev=" + ev); if (ev instanceof GroupingLeaf && ((Grouping) ev).getType() == GroupingType.END) { break; } - final Tile tile = TileBuilder.buildOne(it, tileArgumentsOriginal, ev, this); - if (tile != null) { + for (Tile tile : TileBuilder.buildOne(it, tileArgumentsOriginal, ev, this)) { tiles.add(tile); - min.put(tile.getMinX(stringBounder).addFixed(-MARGINX)); - final Real m = tile.getMaxX(stringBounder); - max.put(m == tileArgumentsOriginal.getOmega() ? m : m.addFixed(MARGINX)); bodyHeight += tile.getPreferredHeight(stringBounder); + if (ev instanceof GroupingLeaf && ((Grouping) ev).getType() == GroupingType.ELSE) { + allElses.add(tile); + continue; + } + min2.add(tile.getMinX(stringBounder).addFixed(-MARGINX)); + final Real m = tile.getMaxX(stringBounder); + // max2.add(m == tileArgumentsOriginal.getOmega() ? m : m.addFixed(MARGINX)); + max2.add(m.addFixed(MARGINX)); } } final Dimension2D dim1 = getPreferredDimensionIfEmpty(stringBounder); final double width = dim1.getWidth(); - System.err.println("width=" + width); - if (min.size() == 0) { - min.put(tileArgumentsOriginal.getOrigin()); - max.put(tileArgumentsOriginal.getOmega()); + if (min2.size() == 0) { + min2.add(tileArgumentsOriginal.getOrigin()); + } + this.min = RealUtils.min(min2); + for (Tile anElse : allElses) { + max2.add(anElse.getMaxX(stringBounder)); } - // max.ensureBiggerThan(min.addFixed(width)); - this.max.ensureBiggerThan(getMinX(stringBounder).addFixed(width + 16)); + max2.add(this.min.addFixed(width + 16)); + this.max = RealUtils.max(max2); + } private Component getComponent(StringBounder stringBounder) { @@ -120,7 +131,7 @@ return comp; } - public Dimension2D getPreferredDimensionIfEmpty(StringBounder stringBounder) { + private Dimension2D getPreferredDimensionIfEmpty(StringBounder stringBounder) { return getComponent(stringBounder).getPreferredDimension(stringBounder); } @@ -129,11 +140,11 @@ final Component comp = getComponent(stringBounder); final Dimension2D dim1 = getPreferredDimensionIfEmpty(stringBounder); - final Area area = new Area(max.getCurrentValue() - min.getCurrentValue(), bodyHeight + dim1.getHeight() - + MARGINY / 2); + final Area area = new Area(max.getCurrentValue() - min.getCurrentValue(), getTotalHeight(stringBounder)); if (ug instanceof LiveBoxFinder == false) { comp.drawU(ug.apply(new UTranslate(min.getCurrentValue(), 0)), area, (Context2D) ug); + drawAllElses(ug); } // ug.apply(new UChangeBackColor(HtmlColorUtils.LIGHT_GRAY)).draw(new URectangle(area.getDimensionToUse())); @@ -145,6 +156,35 @@ } + private double getTotalHeight(StringBounder stringBounder) { + final Dimension2D dimIfEmpty = getPreferredDimensionIfEmpty(stringBounder); + return bodyHeight + dimIfEmpty.getHeight() + MARGINY / 2; + } + + private void drawAllElses(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final double totalHeight = getTotalHeight(stringBounder); + final double suppHeight = getPreferredDimensionIfEmpty(stringBounder).getHeight() + MARGINY / 2; + final List ys = new ArrayList(); + for (Tile tile : tiles) { + if (tile instanceof ElseTile) { + final ElseTile elseTile = (ElseTile) tile; + ys.add(elseTile.getCallbackY() - y + suppHeight); + } + } + ys.add(totalHeight); + int i = 0; + for (Tile tile : tiles) { + if (tile instanceof ElseTile) { + final ElseTile elseTile = (ElseTile) tile; + final Component comp = elseTile.getComponent(stringBounder); + final Area area = new Area(max.getCurrentValue() - min.getCurrentValue(), ys.get(i + 1) - ys.get(i)); + comp.drawU(ug.apply(new UTranslate(min.getCurrentValue(), ys.get(i))), area, (Context2D) ug); + i++; + } + } + } + public double getPreferredHeight(StringBounder stringBounder) { final Dimension2D dim1 = getPreferredDimensionIfEmpty(stringBounder); return dim1.getHeight() + bodyHeight + MARGINY; @@ -157,10 +197,39 @@ } public Real getMinX(StringBounder stringBounder) { - return min; + return min.addFixed(-EXTERNAL_MARGINX1); } public Real getMaxX(StringBounder stringBounder) { - return max; + return max.addFixed(EXTERNAL_MARGINX2); } + + private double y; + + public void callbackY(double y) { + this.y = y; + } + + public static double fillPositionelTiles(StringBounder stringBounder, double y, List tiles, + final List positionedTiles) { + double lastY = y; + for (Tile tile : tiles) { + if (tile.getEvent().isParallel()) { + y = lastY; + } + positionedTiles.add(new YPositionedTile(tile, y)); + if (tile instanceof GroupingTile) { + final GroupingTile groupingTile = (GroupingTile) tile; + fillPositionelTiles(stringBounder, y, groupingTile.tiles, new ArrayList()); + } + lastY = y; + y += tile.getPreferredHeight(stringBounder); + } + return y; + + } + + // public double getStartY() { + // return y + MARGINY; + // } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/HSpaceTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/HSpaceTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/HSpaceTile.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/HSpaceTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,75 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.teoz; + +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.real.Real; +import net.sourceforge.plantuml.sequencediagram.Event; +import net.sourceforge.plantuml.sequencediagram.HSpace; +import net.sourceforge.plantuml.ugraphic.UGraphic; + +public class HSpaceTile implements Tile { + + private final HSpace hspace; + private final Real origin; + + public Event getEvent() { + return hspace; + } + + public HSpaceTile(HSpace hspace, TileArguments tileArguments) { + this.hspace = hspace; + this.origin = tileArguments.getOrigin(); + } + + public void drawU(UGraphic ug) { + } + + public double getPreferredHeight(StringBounder stringBounder) { + return hspace.getPixel(); + } + + public void addConstraints(StringBounder stringBounder) { + } + + public Real getMinX(StringBounder stringBounder) { + return origin; + } + + public Real getMaxX(StringBounder stringBounder) { + return origin.addFixed(10); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/IntegerColored.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/IntegerColored.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/IntegerColored.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/IntegerColored.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,14 +34,17 @@ */ package net.sourceforge.plantuml.sequencediagram.teoz; -import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.SymbolContext; public class IntegerColored { private final int value; - private final HtmlColor color; + private final SymbolContext color; - public IntegerColored(int value, HtmlColor color) { + public IntegerColored(int value, SymbolContext color) { + if (value < 0) { + throw new IllegalArgumentException(); + } this.value = value; this.color = color; } @@ -55,7 +58,7 @@ return value; } - public HtmlColor getColor() { + public SymbolContext getColors() { return color; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LifeEventTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LifeEventTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LifeEventTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LifeEventTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,9 +34,12 @@ */ package net.sourceforge.plantuml.sequencediagram.teoz; +import java.awt.geom.Dimension2D; + import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.real.Real; +import net.sourceforge.plantuml.real.RealUtils; import net.sourceforge.plantuml.sequencediagram.Event; import net.sourceforge.plantuml.sequencediagram.LifeEvent; import net.sourceforge.plantuml.sequencediagram.LifeEventType; @@ -45,6 +48,7 @@ import net.sourceforge.plantuml.skin.Context2D; import net.sourceforge.plantuml.skin.Skin; import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; public class LifeEventTile implements TileWithUpdateStairs { @@ -73,11 +77,26 @@ } public void drawU(UGraphic ug) { + if (isDestroyWithoutMessage()) { + final Component cross = skin.createComponent(ComponentType.DESTROY, null, skinParam, null); + final Dimension2D dimCross = cross.getPreferredDimension(ug.getStringBounder()); + final double x = livingSpace.getPosC(ug.getStringBounder()).getCurrentValue(); + cross.drawU(ug.apply(new UTranslate(x - dimCross.getWidth() / 2, 0)), null, (Context2D) ug); + } + } + + public boolean isDestroyWithoutMessage() { + return lifeEvent.getMessage() == null && lifeEvent.getType() == LifeEventType.DESTROY; } public double getPreferredHeight(StringBounder stringBounder) { - if (lifeEvent.isActivate()) { - return 20; +// if (lifeEvent.isActivate()) { +// return 20; +// } + if (isDestroyWithoutMessage()) { + final Component cross = skin.createComponent(ComponentType.DESTROY, null, skinParam, null); + final Dimension2D dimCross = cross.getPreferredDimension(stringBounder); + return dimCross.getHeight(); } return 0; } @@ -86,11 +105,13 @@ } public Real getMinX(StringBounder stringBounder) { - return tileArguments.getLivingSpace(lifeEvent.getParticipant()).getPosB(); + // return tileArguments.getLivingSpace(lifeEvent.getParticipant()).getPosB(); + return livingSpace.getPosB(); } public Real getMaxX(StringBounder stringBounder) { - return tileArguments.getLivingSpace(lifeEvent.getParticipant()).getPosD(stringBounder); + // final LivingSpace livingSpace2 = tileArguments.getLivingSpace(lifeEvent.getParticipant()); + return RealUtils.max(livingSpace.getPosD(stringBounder), livingSpace.getPosC2(stringBounder)); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxesDrawer.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxesDrawer.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxesDrawer.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxesDrawer.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,124 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.teoz; + +import java.awt.geom.Dimension2D; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; + +import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.SkinParamBackcolored; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.SymbolContext; +import net.sourceforge.plantuml.sequencediagram.graphic.Segment; +import net.sourceforge.plantuml.skin.Area; +import net.sourceforge.plantuml.skin.Component; +import net.sourceforge.plantuml.skin.ComponentType; +import net.sourceforge.plantuml.skin.Context2D; +import net.sourceforge.plantuml.skin.Skin; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class LiveBoxesDrawer { + + private double y1; + private SymbolContext color; + + private final Component cross; + private final Context2D context; + private final Skin skin; + private final ISkinParam skinParam; + private final Component compForWidth; + private final Collection delays; + + public LiveBoxesDrawer(Context2D context, Skin skin, ISkinParam skinParam, Map delays) { + this.cross = skin.createComponent(ComponentType.DESTROY, null, skinParam, null); + this.compForWidth = skin.createComponent(ComponentType.ALIVE_BOX_CLOSE_CLOSE, null, skinParam, null); + this.context = context; + this.skin = skin; + this.skinParam = skinParam; + this.delays = new HashSet(); + for (Map.Entry ent : delays.entrySet()) { + this.delays.add(new Segment(ent.getKey(), ent.getKey() + ent.getValue())); + } + } + + public double getWidth(StringBounder stringBounder) { + return compForWidth.getPreferredWidth(stringBounder); + } + + public void addStart(double y1, SymbolContext color) { + this.y1 = y1; + this.color = color; + } + + public void doDrawing(UGraphic ug, StairsPosition yposition) { + final Segment full = new Segment(y1, yposition.getValue()); + final Collection segments = full.cutSegmentIfNeed(delays); + ComponentType type = ComponentType.ALIVE_BOX_CLOSE_CLOSE; + if (segments.size() > 1) { + type = ComponentType.ALIVE_BOX_CLOSE_OPEN; + } + for (Iterator it = segments.iterator(); it.hasNext();) { + final Segment seg = it.next(); + if (it.hasNext() == false && type != ComponentType.ALIVE_BOX_CLOSE_CLOSE) { + type = ComponentType.ALIVE_BOX_OPEN_CLOSE; + } + drawInternal(ug, yposition, seg.getPos1(), seg.getPos2(), type); + type = ComponentType.ALIVE_BOX_OPEN_OPEN; + } + y1 = Double.MAX_VALUE; + } + + public void drawDestroyIfNeeded(UGraphic ug, StairsPosition yposition) { + if (yposition.isDestroy()) { + final Dimension2D dimCross = cross.getPreferredDimension(ug.getStringBounder()); + cross.drawU( + ug.apply(new UTranslate(-dimCross.getWidth() / 2, yposition.getValue() - dimCross.getHeight() / 2)), + null, context); + } + } + + private void drawInternal(UGraphic ug, StairsPosition yposition, double ya, double yb, ComponentType type) { + final double width = getWidth(ug.getStringBounder()); + final Area area = new Area(width, yb - ya); + final ISkinParam skinParam2 = new SkinParamBackcolored(skinParam, color == null ? null : color.getBackColor()); + final Component comp = skin.createComponent(type, null, skinParam2, null); + comp.drawU(ug.apply(new UTranslate(-width / 2, ya)), area, context); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxes.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxes.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxes.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxes.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,87 +34,78 @@ */ package net.sourceforge.plantuml.sequencediagram.teoz; -import java.awt.geom.Dimension2D; import java.util.Iterator; +import java.util.Map; +import java.util.TreeMap; import net.sourceforge.plantuml.ISkinParam; -import net.sourceforge.plantuml.SkinParamBackcolored; -import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.UDrawable; -import net.sourceforge.plantuml.skin.Area; -import net.sourceforge.plantuml.skin.Component; -import net.sourceforge.plantuml.skin.ComponentType; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.sequencediagram.Participant; import net.sourceforge.plantuml.skin.Context2D; +import net.sourceforge.plantuml.skin.SimpleContext2D; import net.sourceforge.plantuml.skin.Skin; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class LiveBoxes implements UDrawable { +public class LiveBoxes { private final EventsHistory eventsHistory; private final Skin skin; private final ISkinParam skinParam; - private final double totalHeight; - private final Context2D context; + private final Map delays = new TreeMap(); - public LiveBoxes(EventsHistory eventsHistory, Skin skin, ISkinParam skinParam, double totalHeight, Context2D context) { + public LiveBoxes(EventsHistory eventsHistory, Skin skin, ISkinParam skinParam, Participant participant) { this.eventsHistory = eventsHistory; this.skin = skin; this.skinParam = skinParam; - this.totalHeight = totalHeight; - this.context = context; } - public void drawU(UGraphic ug) { - final Stairs2 stairs = eventsHistory.getStairs(totalHeight); + public double getMaxPosition(StringBounder stringBounder) { + final int max = eventsHistory.getMaxValue(); + final LiveBoxesDrawer drawer = new LiveBoxesDrawer(new SimpleContext2D(true), skin, skinParam, delays); + return drawer.getWidth(stringBounder) / 2.0 * max; + } + + public void drawBoxes(UGraphic ug, Context2D context, double createY, double endY) { + final Stairs2 stairs = eventsHistory.getStairs(createY, endY); final int max = stairs.getMaxValue(); + if (max == 0) { + drawDestroys(ug, stairs, context); + } for (int i = 1; i <= max; i++) { drawOneLevel(ug, i, stairs, context); } } + private void drawDestroys(UGraphic ug, Stairs2 stairs, Context2D context) { + final LiveBoxesDrawer drawer = new LiveBoxesDrawer(context, skin, skinParam, delays); + for (StairsPosition yposition : stairs.getYs()) { + drawer.drawDestroyIfNeeded(ug, yposition); + } + } + private void drawOneLevel(UGraphic ug, int levelToDraw, Stairs2 stairs, Context2D context) { - final Component comp1 = skin.createComponent(ComponentType.ALIVE_BOX_CLOSE_CLOSE, null, skinParam, null); - final Component cross = skin.createComponent(ComponentType.DESTROY, null, skinParam, null); - final Dimension2D dimCross = cross.getPreferredDimension(ug.getStringBounder()); - final double width = comp1.getPreferredWidth(ug.getStringBounder()); - ug = ug.apply(new UTranslate((levelToDraw - 1) * width / 2.0, 0)); + final LiveBoxesDrawer drawer = new LiveBoxesDrawer(context, skin, skinParam, delays); + ug = ug.apply(new UTranslate((levelToDraw - 1) * drawer.getWidth(ug.getStringBounder()) / 2.0, 0)); - double y1 = Double.MAX_VALUE; - HtmlColor color = null; + boolean pending = true; for (Iterator it = stairs.getYs().iterator(); it.hasNext();) { final StairsPosition yposition = it.next(); - System.err.println("LiveBoxes::drawOneLevel " + levelToDraw + " " + yposition); final IntegerColored integerColored = stairs.getValue(yposition.getValue()); - System.err.println("integerColored=" + integerColored); final int level = integerColored.getValue(); - if (y1 == Double.MAX_VALUE && level == levelToDraw) { - y1 = yposition.getValue(); - color = integerColored.getColor(); - } else if (y1 != Double.MAX_VALUE && (it.hasNext() == false || level < levelToDraw)) { - final double y2 = yposition.getValue(); - final Area area = new Area(width, y2 - y1); - - final ISkinParam skinParam2 = new SkinParamBackcolored(skinParam, color); - final Component comp = skin - .createComponent(ComponentType.ALIVE_BOX_CLOSE_CLOSE, null, skinParam2, null); - - comp.drawU(ug.apply(new UTranslate(-width / 2, y1)), area, context); - System.err.println("LiveBoxes::drawOneLevel one block " + y1 + " " + y2); - if (yposition.isDestroy()) { - System.err.println("LiveBoxes::drawOneLevel DESTROY " + yposition); - cross.drawU(ug.apply(new UTranslate(-dimCross.getWidth() / 2, y2 - dimCross.getHeight() / 2)), - null, context); - } else { - System.err.println("LiveBoxes::drawOneLevel NOTDESTROY " + yposition); - } - y1 = Double.MAX_VALUE; + if (pending && level == levelToDraw) { + drawer.addStart(yposition.getValue(), integerColored.getColors()); + pending = false; + } else if (pending == false && (it.hasNext() == false || level < levelToDraw)) { + drawer.doDrawing(ug, yposition); + drawer.drawDestroyIfNeeded(ug, yposition); + pending = true; } } } - private UGraphic withColor(UGraphic ug) { - return ug; + public void delayOn(double y, double height) { + delays.put(y, height); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxFinder.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxFinder.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxFinder.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxFinder.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LivingSpace.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LivingSpace.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LivingSpace.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LivingSpace.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,7 +38,10 @@ import java.util.List; import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.Url; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.VerticalAlignment; import net.sourceforge.plantuml.real.Real; import net.sourceforge.plantuml.sequencediagram.Delay; import net.sourceforge.plantuml.sequencediagram.Event; @@ -52,6 +55,7 @@ import net.sourceforge.plantuml.skin.Skin; import net.sourceforge.plantuml.skin.rose.Rose; import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; public class LivingSpace { @@ -63,6 +67,7 @@ private final boolean useContinueLineBecauseOfDelay; private final MutingLine mutingLine; private final Rose rose = new Rose(); + private final LiveBoxes liveBoxes; // private final LivingSpaceImpl previous; // private LivingSpace next; @@ -72,6 +77,10 @@ private Real posD; private final EventsHistory eventsHistory; + private boolean create = false; + private double createY = 0; + + private final ParticipantEnglober englober; public int getLevelAt(Tile tile, EventsHistoryMode mode) { // assert mode == EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE; @@ -100,6 +109,7 @@ this.p = p; this.skin = skin; this.skinParam = skinParam; + this.englober = englober; this.posB = position; if (p.getType() == ParticipantType.PARTICIPANT) { headType = ComponentType.PARTICIPANT_HEAD; @@ -126,7 +136,7 @@ // this.stairs2.addStep2(0, 0); this.useContinueLineBecauseOfDelay = useContinueLineBecauseOfDelay(events); this.mutingLine = new MutingLine(skin, skinParam, events); - + this.liveBoxes = new LiveBoxes(eventsHistory, skin, skinParam, p); } private boolean useContinueLineBecauseOfDelay(List events) { @@ -144,34 +154,41 @@ public void drawLineAndLiveBoxes(UGraphic ug, double height, Context2D context) { - mutingLine.drawLine(ug, height, context); - // final ComponentType defaultLineType = useContinueLineBecauseOfDelay ? ComponentType.CONTINUE_LINE - // : ComponentType.PARTICIPANT_LINE; - // final Component comp = skin.createComponent(defaultLineType, null, skinParam, p.getDisplay(false)); - // final Dimension2D dim = comp.getPreferredDimension(ug.getStringBounder()); - // final Area area = new Area(dim.getWidth(), height); - // comp.drawU(ug, area, new SimpleContext2D(false)); - - final LiveBoxes liveBoxes = new LiveBoxes(eventsHistory, skin, skinParam, height, context); - liveBoxes.drawU(ug); + mutingLine.drawLine(ug, context, createY, height); + liveBoxes.drawBoxes(ug, context, createY, height); } // public void addDelayTile(DelayTile tile) { // System.err.println("addDelayTile " + this + " " + tile); // } - public void drawHead(UGraphic ug, Context2D context) { - // final Component comp = skin.createComponent(headType, null, skinParam, p.getDisplay(false)); + public void drawHead(UGraphic ug, Context2D context, VerticalAlignment verticalAlignment, + HorizontalAlignment horizontalAlignment) { + if (create && verticalAlignment == VerticalAlignment.BOTTOM) { + return; + } final Component comp = rose.createComponent(headType, null, p.getSkinParamBackcolored(skinParam), - p.getDisplay(false)); + p.getDisplay(skinParam.forceSequenceParticipantUnderlined())); final Dimension2D dim = comp.getPreferredDimension(ug.getStringBounder()); + if (horizontalAlignment == HorizontalAlignment.RIGHT) { + ug = ug.apply(new UTranslate(-dim.getWidth(), 0)); + } + if (verticalAlignment == VerticalAlignment.CENTER) { + ug = ug.apply(new UTranslate(0, -dim.getHeight() / 2)); + } final Area area = new Area(dim); + final Url url = getParticipant().getUrl(); + if (url != null) { + ug.startUrl(url); + } comp.drawU(ug, area, context); + if (url != null) { + ug.closeAction(); + } } public Dimension2D getHeadPreferredDimension(StringBounder stringBounder) { - // final Component comp = skin.createComponent(headType, null, skinParam, p.getDisplay(false)); - final Component comp = rose.createComponent(headType, null, skinParam, p.getDisplay(false)); + final Component comp = rose.createComponent(headType, null, skinParam, p.getDisplay(skinParam.forceSequenceParticipantUnderlined())); final Dimension2D dim = comp.getPreferredDimension(stringBounder); return dim; } @@ -187,10 +204,16 @@ return posC; } + public Real getPosC2(StringBounder stringBounder) { + final double delta = liveBoxes.getMaxPosition(stringBounder); + return getPosC(stringBounder).addFixed(delta); + } + public Real getPosD(StringBounder stringBounder) { if (posD == null) { this.posD = posB.addFixed(this.getPreferredWidth(stringBounder)); } + // System.err.println("LivingSpace::getPosD "+posD.getCurrentValue()); return posD; } @@ -202,4 +225,23 @@ return p; } + public void goCreate(double y) { + System.err.println("LivingSpace::goCreate y=" + y); + this.createY = y; + this.create = true; + } + + public void goCreate() { + this.create = true; + } + + public void delayOn(double y, double height) { + mutingLine.delayOn(y, height); + liveBoxes.delayOn(y, height); + } + + public ParticipantEnglober getEnglober() { + return englober; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LivingSpaces.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LivingSpaces.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/LivingSpaces.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/LivingSpaces.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,11 +36,14 @@ import java.awt.geom.Dimension2D; import java.util.Collection; +import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.VerticalAlignment; +import net.sourceforge.plantuml.real.Real; import net.sourceforge.plantuml.sequencediagram.Participant; import net.sourceforge.plantuml.skin.Context2D; import net.sourceforge.plantuml.ugraphic.UGraphic; @@ -54,6 +57,44 @@ return all.values(); } + public void addConstraints(StringBounder stringBounder) { + LivingSpace previous = null; + for (LivingSpace current : all.values()) { + if (previous != null) { + final Real point1 = previous.getPosD(stringBounder); + final Real point2 = current.getPosB(); + point2.ensureBiggerThan(point1.addFixed(10)); + } + previous = current; + } + } + + public LivingSpace previous(LivingSpace element) { + LivingSpace previous = null; + for (LivingSpace current : all.values()) { + if (current == element) { + return previous; + } + previous = current; + } + return null; + } + + public LivingSpace next(LivingSpace element) { + for (Iterator it = all.values().iterator(); it.hasNext();) { + final LivingSpace current = it.next(); + if (current == element && it.hasNext()) { + return it.next(); + } + } + return null; + + } + + public Collection participants() { + return all.keySet(); + } + public void put(Participant participant, LivingSpace livingSpace) { all.put(participant, livingSpace); } @@ -72,7 +113,7 @@ final Dimension2D dimHead = livingSpace.getHeadPreferredDimension(stringBounder); y = headHeight - dimHead.getHeight(); } - livingSpace.drawHead(ug.apply(new UTranslate(x, y)), context); + livingSpace.drawHead(ug.apply(new UTranslate(x, y)), context, verticalAlignment, HorizontalAlignment.LEFT); } } @@ -98,4 +139,14 @@ } } + public void delayOn(double y, double height) { + for (LivingSpace livingSpace : values()) { + livingSpace.delayOn(y, height); + } + } + + public int size() { + return all.size(); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/MainTileAdapter.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/MainTileAdapter.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/MainTileAdapter.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/MainTileAdapter.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,98 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.teoz; + +import java.awt.geom.Dimension2D; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.VerticalAlignment; +import net.sourceforge.plantuml.real.Real; +import net.sourceforge.plantuml.skin.Context2D; +import net.sourceforge.plantuml.skin.SimpleContext2D; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class MainTileAdapter extends AbstractTextBlock implements TextBlock { + + private final MainTile mainTile; + private Dimension2D cacheDimension; + + public MainTileAdapter(MainTile mainTile) { + if (mainTile == null) { + throw new IllegalArgumentException(); + } + this.mainTile = mainTile; + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + if (cacheDimension == null) { + final double width = mainTile.getMaxX(stringBounder).getCurrentValue() + - mainTile.getMinX(stringBounder).getCurrentValue(); + + final int factor = mainTile.isShowFootbox() ? 2 : 1; + final double height = mainTile.getPreferredHeight(stringBounder) + factor + * mainTile.getLivingSpaces().getHeadHeight(stringBounder); + + cacheDimension = new Dimension2DDouble(width, height); + } + return cacheDimension; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + + final Context2D context = new SimpleContext2D(false); + final double height = mainTile.getPreferredHeight(stringBounder); + final LivingSpaces livingSpaces = mainTile.getLivingSpaces(); + + final double headHeight = livingSpaces.getHeadHeight(stringBounder); + + mainTile.drawU(ug.apply(new UTranslate(0, headHeight))); + livingSpaces.drawLifeLines(ug.apply(new UTranslate(0, headHeight)), height, context); + livingSpaces.drawHeads(ug, context, VerticalAlignment.BOTTOM); + if (mainTile.isShowFootbox()) { + livingSpaces.drawHeads(ug.apply(new UTranslate(0, height + headHeight)), context, VerticalAlignment.TOP); + } + mainTile.drawForeground(ug.apply(new UTranslate(0, headHeight))); + } + + public Real getMinX(StringBounder stringBounder) { + return mainTile.getMinX(stringBounder); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/MainTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/MainTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/MainTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/MainTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,44 +37,57 @@ import java.util.ArrayList; import java.util.List; -import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.graphic.StringBounder; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.real.Real; -import net.sourceforge.plantuml.real.RealMax; -import net.sourceforge.plantuml.real.RealMin; +import net.sourceforge.plantuml.real.RealUtils; import net.sourceforge.plantuml.sequencediagram.Event; import net.sourceforge.plantuml.sequencediagram.SequenceDiagram; -import net.sourceforge.plantuml.skin.Skin; import net.sourceforge.plantuml.ugraphic.LimitFinder; import net.sourceforge.plantuml.ugraphic.UGraphic; -public class MainTile implements Tile { +public class MainTile implements Tile, Bordered { - private final RealMin min = new RealMin(); - private final RealMax max = new RealMax(); - // private double height; + private final double startingY = 8; + private final Real min; + private final Real max; + private final boolean isShowFootbox; private final List tiles = new ArrayList(); + private final LivingSpaces livingSpaces; - public MainTile(SequenceDiagram diagram, Skin skin, Real omega, LivingSpaces livingSpaces, Real origin) { + public MainTile(SequenceDiagram diagram, Englobers englobers, TileArguments tileArguments) { - min.put(origin); - max.put(omega); + this.livingSpaces = tileArguments.getLivingSpaces(); - final ISkinParam skinParam = diagram.getSkinParam(); - final StringBounder stringBounder = TextBlockUtils.getDummyStringBounder(); + final List min2 = new ArrayList(); + final List max2 = new ArrayList(); - final TileArguments tileArguments = new TileArguments(stringBounder, omega, livingSpaces, skin, skinParam, - origin); + min2.add(tileArguments.getOrigin()); + max2.add(tileArguments.getOrigin()); + + if (englobers.size() > 0) { + min2.add(englobers.getMinX(tileArguments.getStringBounder())); + max2.add(englobers.getMaxX(tileArguments.getStringBounder())); + } + + // tiles.add(new EmptyTile(8, tileArguments)); tiles.addAll(TileBuilder.buildSeveral(diagram.events().iterator(), tileArguments, null)); for (Tile tile : tiles) { - // height += tile.getPreferredHeight(stringBounder); - min.put(tile.getMinX(stringBounder)); - max.put(tile.getMaxX(stringBounder)); + min2.add(tile.getMinX(tileArguments.getStringBounder())); + max2.add(tile.getMaxX(tileArguments.getStringBounder())); + } + + for (LivingSpace livingSpace : livingSpaces.values()) { + max2.add(livingSpace.getPosD(tileArguments.getStringBounder())); + max2.add(livingSpace.getPosC2(tileArguments.getStringBounder())); } + + this.min = RealUtils.min(min2); + this.max = RealUtils.max(max2); + + this.isShowFootbox = diagram.isShowFootbox(); } public void drawU(UGraphic ug) { @@ -93,33 +106,21 @@ private double drawUInternal(UGraphic ug, boolean trace) { final StringBounder stringBounder = ug.getStringBounder(); - double y = 0; - double lastY = 0; final List positionedTiles = new ArrayList(); - for (Tile tile : tiles) { - if (tile.getEvent().isParallel()) { - y = lastY; - } - if (trace) { - System.err.println("MainTile::drawUInternal tile=" + tile + " y=" + y); - } - positionedTiles.add(new YPositionedTile(tile, y)); - lastY = y; - y += tile.getPreferredHeight(stringBounder); - } + final double y = GroupingTile.fillPositionelTiles(stringBounder, startingY, tiles, positionedTiles); for (YPositionedTile tile : positionedTiles) { tile.drawU(ug); } - System.err.println("MainTile::drawUInternal finalY=" + y); + // System.err.println("MainTile::drawUInternal finalY=" + y); return y; } public double getPreferredHeight(StringBounder stringBounder) { final LimitFinder limitFinder = new LimitFinder(stringBounder, true); final UGraphicInterceptorTile interceptor = new UGraphicInterceptorTile(limitFinder, false); - final double finalY = drawUInternal(interceptor, true); + final double finalY = drawUInternal(interceptor, false); final double result = Math.max(limitFinder.getMinMax().getDimension().getHeight(), finalY) + 10; - System.err.println("MainTile::getPreferredHeight=" + result); + // System.err.println("MainTile::getPreferredHeight=" + result); return result; } @@ -141,4 +142,20 @@ return null; } + public boolean isShowFootbox() { + return isShowFootbox; + } + + public LivingSpaces getLivingSpaces() { + return livingSpaces; + } + + public double getBorder1() { + return min.getCurrentValue(); + } + + public double getBorder2() { + return max.getCurrentValue(); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/MutingLine.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/MutingLine.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/MutingLine.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/MutingLine.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,8 @@ import java.awt.geom.Dimension2D; import java.util.List; +import java.util.Map; +import java.util.TreeMap; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.sequencediagram.Delay; @@ -46,12 +48,14 @@ import net.sourceforge.plantuml.skin.Context2D; import net.sourceforge.plantuml.skin.Skin; import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; public class MutingLine { private final Skin skin; private final ISkinParam skinParam; private final boolean useContinueLineBecauseOfDelay; + private final Map delays = new TreeMap(); public MutingLine(Skin skin, ISkinParam skinParam, List events) { this.skin = skin; @@ -72,13 +76,39 @@ return false; } - public void drawLine(UGraphic ug, double height, Context2D context) { + public void drawLine(UGraphic ug, Context2D context, double createY, double endY) { final ComponentType defaultLineType = useContinueLineBecauseOfDelay ? ComponentType.CONTINUE_LINE : ComponentType.PARTICIPANT_LINE; + if (delays.size() > 0) { + double y = createY; + for (Map.Entry ent : delays.entrySet()) { + if (ent.getKey() >= createY) { + drawInternal(ug, context, y, ent.getKey(), defaultLineType); + drawInternal(ug, context, ent.getKey(), ent.getKey() + ent.getValue(), ComponentType.DELAY_LINE); + y = ent.getKey() + ent.getValue(); + } + } + drawInternal(ug, context, y, endY, defaultLineType); + } else { + drawInternal(ug, context, createY, endY, defaultLineType); + } + } + + private void drawInternal(UGraphic ug, Context2D context, double y1, double y2, final ComponentType defaultLineType) { + if (y2 == y1) { + return; + } + if (y2 < y1) { + throw new IllegalArgumentException(); + } final Component comp = skin.createComponent(defaultLineType, null, skinParam, null); final Dimension2D dim = comp.getPreferredDimension(ug.getStringBounder()); - final Area area = new Area(dim.getWidth(), height); - comp.drawU(ug, area, context); + final Area area = new Area(dim.getWidth(), y2 - y1); + comp.drawU(ug.apply(new UTranslate(0, y1)), area, context); + } + + public void delayOn(double y, double height) { + delays.put(y, height); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/NotesTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/NotesTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/NotesTile.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/NotesTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,176 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.teoz; + +import java.awt.geom.Dimension2D; +import java.util.ArrayList; +import java.util.List; + +import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.real.Real; +import net.sourceforge.plantuml.real.RealUtils; +import net.sourceforge.plantuml.sequencediagram.Event; +import net.sourceforge.plantuml.sequencediagram.Note; +import net.sourceforge.plantuml.sequencediagram.NotePosition; +import net.sourceforge.plantuml.sequencediagram.NoteStyle; +import net.sourceforge.plantuml.sequencediagram.Notes; +import net.sourceforge.plantuml.skin.Area; +import net.sourceforge.plantuml.skin.Component; +import net.sourceforge.plantuml.skin.ComponentType; +import net.sourceforge.plantuml.skin.Context2D; +import net.sourceforge.plantuml.skin.Skin; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class NotesTile implements Tile { + + private final LivingSpaces livingSpaces; + private final Skin skin; + private final ISkinParam skinParam; + private final Notes notes; + + public Event getEvent() { + return notes; + } + + public NotesTile(LivingSpaces livingSpaces, Notes notes, Skin skin, ISkinParam skinParam) { + this.livingSpaces = livingSpaces; + this.notes = notes; + this.skin = skin; + this.skinParam = skinParam; + } + + private Component getComponent(StringBounder stringBounder, Note note) { + final Component comp = skin.createComponent(getNoteComponentType(note.getStyle()), null, + note.getSkinParamBackcolored(skinParam), note.getStrings()); + return comp; + } + + private ComponentType getNoteComponentType(NoteStyle noteStyle) { + if (noteStyle == NoteStyle.HEXAGONAL) { + return ComponentType.NOTE_HEXAGONAL; + } + if (noteStyle == NoteStyle.BOX) { + return ComponentType.NOTE_BOX; + } + return ComponentType.NOTE; + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + + for (Note note : notes) { + final Component comp = getComponent(stringBounder, note); + final Dimension2D dim = comp.getPreferredDimension(stringBounder); + final double x = getX(stringBounder, note).getCurrentValue(); + final Area area = new Area(getUsedWidth(stringBounder, note), dim.getHeight()); + + final UGraphic ug2 = ug.apply(new UTranslate(x, 0)); + comp.drawU(ug2, area, (Context2D) ug2); + } + } + + private double getUsedWidth(StringBounder stringBounder, Note note) { + final Component comp = getComponent(stringBounder, note); + final Dimension2D dim = comp.getPreferredDimension(stringBounder); + final double width = dim.getWidth(); + return width; + } + + private Real getX(StringBounder stringBounder, Note note) { + final LivingSpace livingSpace1 = livingSpaces.get(note.getParticipant()); + final NotePosition position = note.getPosition(); + final double width = getUsedWidth(stringBounder, note); + if (position == NotePosition.LEFT) { + return livingSpace1.getPosC(stringBounder).addFixed(-width); + } else if (position == NotePosition.RIGHT) { + final int level = livingSpace1.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_DEACTIVATE); + final double dx = level * CommunicationTile.LIVE_DELTA_SIZE; + return livingSpace1.getPosC(stringBounder).addFixed(dx); + } else if (position == NotePosition.OVER_SEVERAL) { + final LivingSpace livingSpace2 = livingSpaces.get(note.getParticipant2()); + final Real x1 = livingSpace1.getPosC(stringBounder); + final Real x2 = livingSpace2.getPosC(stringBounder); + return RealUtils.middle(x1, x2).addFixed(-width / 2); + } else if (position == NotePosition.OVER) { + return livingSpace1.getPosC(stringBounder).addFixed(-width / 2); + } else { + throw new UnsupportedOperationException(position.toString()); + } + } + + public double getPreferredHeight(StringBounder stringBounder) { + double result = 0; + for (Note note : notes) { + final Component comp = getComponent(stringBounder, note); + final Dimension2D dim = comp.getPreferredDimension(stringBounder); + result = Math.max(result, dim.getHeight()); + } + return result; + } + + public void addConstraints(StringBounder stringBounder) { + final List all = notes.asList(); + for (int i = 0; i < all.size() - 1; i++) { + for (int j = i + 1; j < all.size(); j++) { + final Real point1 = getX2(stringBounder, all.get(i)); + final Real point2 = getX(stringBounder, all.get(j)); + point2.ensureBiggerThan(point1); + } + } + } + + public Real getMinX(StringBounder stringBounder) { + final List reals = new ArrayList(); + for (Note note : notes) { + reals.add(getX(stringBounder, note)); + } + return RealUtils.min(reals); + } + + private Real getX2(StringBounder stringBounder, Note note) { + return getX(stringBounder, note).addFixed(getUsedWidth(stringBounder, note)); + } + + public Real getMaxX(StringBounder stringBounder) { + final List reals = new ArrayList(); + for (Note note : notes) { + reals.add(getX2(stringBounder, note)); + } + return RealUtils.max(reals); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/NoteTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/NoteTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/NoteTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/NoteTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,11 +43,11 @@ import net.sourceforge.plantuml.sequencediagram.Event; import net.sourceforge.plantuml.sequencediagram.Note; import net.sourceforge.plantuml.sequencediagram.NotePosition; +import net.sourceforge.plantuml.sequencediagram.NoteStyle; import net.sourceforge.plantuml.skin.Area; import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.ComponentType; import net.sourceforge.plantuml.skin.Context2D; -import net.sourceforge.plantuml.skin.SimpleContext2D; import net.sourceforge.plantuml.skin.Skin; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; @@ -73,11 +73,21 @@ } private Component getComponent(StringBounder stringBounder) { - final Component comp = skin.createComponent(ComponentType.NOTE, null, note.getSkinParamBackcolored(skinParam), - note.getStrings()); + final Component comp = skin.createComponent(getNoteComponentType(note.getStyle()), null, + note.getSkinParamBackcolored(skinParam), note.getStrings()); return comp; } + private ComponentType getNoteComponentType(NoteStyle noteStyle) { + if (noteStyle == NoteStyle.HEXAGONAL) { + return ComponentType.NOTE_HEXAGONAL; + } + if (noteStyle == NoteStyle.BOX) { + return ComponentType.NOTE_BOX; + } + return ComponentType.NOTE; + } + public void drawU(UGraphic ug) { final StringBounder stringBounder = ug.getStringBounder(); final Component comp = getComponent(stringBounder); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/ReferenceTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/ReferenceTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/ReferenceTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/ReferenceTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -60,7 +60,6 @@ return reference; } - public ReferenceTile(Reference reference, TileArguments tileArguments) { this.reference = reference; this.tileArguments = tileArguments; @@ -74,15 +73,17 @@ final LivingSpace livingSpace = tileArguments.getLivingSpace(p); final Real pos = livingSpace.getPosC(stringBounder); if (first == null || pos.getCurrentValue() < first.getCurrentValue()) { - this.first = pos; + this.first = livingSpace.getPosB(); } if (last == null || pos.getCurrentValue() > last.getCurrentValue()) { - this.last = pos; + this.last = livingSpace.getPosD(stringBounder); } } final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - this.last = this.last.addAtLeast(0); + if (reference.getParticipant().size() == 1) { + this.last = this.last.addAtLeast(0); + } this.last.ensureBiggerThan(this.first.addFixed(dim.getWidth())); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,24 +42,26 @@ import net.sourceforge.plantuml.FileFormatOption; import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.activitydiagram3.ftile.EntityImageLegend; import net.sourceforge.plantuml.api.ImageDataSimple; import net.sourceforge.plantuml.core.ImageData; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.graphic.VerticalAlignment; import net.sourceforge.plantuml.png.PngTitler; import net.sourceforge.plantuml.real.Real; +import net.sourceforge.plantuml.real.RealOrigin; import net.sourceforge.plantuml.real.RealUtils; import net.sourceforge.plantuml.sequencediagram.Participant; import net.sourceforge.plantuml.sequencediagram.SequenceDiagram; import net.sourceforge.plantuml.sequencediagram.graphic.FileMaker; -import net.sourceforge.plantuml.skin.Area; import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.ComponentType; -import net.sourceforge.plantuml.skin.Context2D; import net.sourceforge.plantuml.skin.SimpleContext2D; import net.sourceforge.plantuml.skin.Skin; import net.sourceforge.plantuml.ugraphic.UGraphic; @@ -78,162 +80,166 @@ this.diagram = sequenceDiagram; this.fileFormatOption = fileFormatOption; this.skin = skin; + this.footer = getFooterOrHeader(FontParam.FOOTER); + this.header = getFooterOrHeader(FontParam.HEADER); + + this.main = new MainTileAdapter(createMainTile()); + this.min1 = ((MainTileAdapter) main).getMinX(stringBounder); + + this.title = getTitle(); + this.legend = getLegend(); + + this.heightEnglober1 = englobers.getOffsetForEnglobers(stringBounder); + this.heightEnglober2 = heightEnglober1 == 0 ? 0 : 10; + + final double totalWidth = MathUtils.max(main.calculateDimension(stringBounder).getWidth(), title + .calculateDimension(stringBounder).getWidth(), footer.calculateDimension(stringBounder).getWidth(), + header.calculateDimension(stringBounder).getWidth(), legend.calculateDimension(stringBounder) + .getWidth()); + final double totalHeight = main.calculateDimension(stringBounder).getHeight() + heightEnglober1 + + heightEnglober2 + title.calculateDimension(stringBounder).getHeight() + + header.calculateDimension(stringBounder).getHeight() + + legend.calculateDimension(stringBounder).getHeight() + + footer.calculateDimension(stringBounder).getHeight(); + this.dimTotal = new Dimension2DDouble(totalWidth, totalHeight); } - public ImageData createOne(OutputStream os, int index, boolean isWithMetadata) throws IOException { - StringBounder stringBounder = TextBlockUtils.getDummyStringBounder(); + private Englobers englobers; + private final StringBounder stringBounder = TextBlockUtils.getDummyStringBounder(); - final ISkinParam skinParam = diagram.getSkinParam(); + private final TextBlock footer; + private final TextBlock header; - final Real origin = RealUtils.createOrigin(); - Real currentPos = origin.addAtLeast(0); - LivingSpace last = null; - LivingSpaces livingSpaces = new LivingSpaces(); - for (Participant p : diagram.participants().values()) { - final LivingSpace livingSpace = new LivingSpace(p, diagram.getEnglober(p), skin, skinParam, currentPos, - diagram.events()); - last = livingSpace; - ((LivingSpaces) livingSpaces).put(p, livingSpace); - currentPos = livingSpace.getPosD(stringBounder).addAtLeast(0); - } + private final TextBlock main; - final MainTile mainTile = new MainTile(diagram, skin, last.getPosD(stringBounder).addAtLeast(0), livingSpaces, - origin); - mainTile.addConstraints(stringBounder); - origin.compile(); + private final TextBlock title; + private final TextBlock legend; + private final Dimension2D dimTotal; + private final Real min1; - final double mainHeight = mainTile.getPreferredHeight(stringBounder) + 2 - * livingSpaces.getHeadHeight(stringBounder); + private final LivingSpaces livingSpaces = new LivingSpaces(); + private final double heightEnglober1; + private final double heightEnglober2; - final Real min1 = mainTile.getMinX(stringBounder); - final Real max1 = mainTile.getMaxX(stringBounder); - // System.err.println("min1=" + min1.getCurrentValue()); - // System.err.println("max1=" + max1.getCurrentValue()); + public ImageData createOne(OutputStream os, int index, boolean isWithMetadata) throws IOException { + final UTranslate min1translate = new UTranslate(-min1.getCurrentValue(), 0); + final double dpiFactor = diagram.getDpiFactor(fileFormatOption, dimTotal); + final UGraphic2 ug2 = (UGraphic2) fileFormatOption.createUGraphic(getSkinParam().getColorMapper(), dpiFactor, + dimTotal, getSkinParam().getBackgroundColor(), false).apply(min1translate); - final Component compTitle = getCompTitle(); + UGraphic ug = getSkinParam().handwritten() ? new UGraphicHandwritten(ug2) : ug2; + englobers.drawEnglobers(goDownForEnglobers(ug), main.calculateDimension(stringBounder).getHeight() + + this.heightEnglober1 + this.heightEnglober2 / 2, new SimpleContext2D(true)); - final double mainWidth = max1.getCurrentValue() - min1.getCurrentValue(); + printAligned(ug, diagram.getFooterOrHeaderTeoz(FontParam.HEADER).getHorizontalAlignment(), header); + ug = goDown(ug, header); - Dimension2D dimTitle = new Dimension2DDouble(0, 0); - if (compTitle != null) { - dimTitle = compTitle.getPreferredDimension(stringBounder); - } + printAligned(ug, HorizontalAlignment.CENTER, title); + ug = goDown(ug, title); - final PngTitler footer = getFooter(); - Dimension2D dimFooter = new Dimension2DDouble(0, 0); - if (footer != null && footer.getTextBlock() != null) { - dimFooter = footer.getTextBlock().calculateDimension(stringBounder); + if (diagram.getLegend().getVerticalAlignment() == VerticalAlignment.TOP) { + printAligned(ug, diagram.getLegend().getHorizontalAlignment(), legend); + ug = goDown(ug, legend); } - final PngTitler header = getHeader(); - Dimension2D dimHeader = new Dimension2DDouble(0, 0); - if (header != null && header.getTextBlock() != null) { - dimHeader = header.getTextBlock().calculateDimension(stringBounder); + ug = ug.apply(new UTranslate(0, this.heightEnglober1)); + printAligned(ug, HorizontalAlignment.CENTER, main); + ug = goDown(ug, main); + ug = ug.apply(new UTranslate(0, this.heightEnglober2)); + + if (diagram.getLegend().getVerticalAlignment() == VerticalAlignment.BOTTOM) { + printAligned(ug, diagram.getLegend().getHorizontalAlignment(), legend); + ug = goDown(ug, legend); } - final double totalWidth = MathUtils.max(mainWidth, dimTitle.getWidth(), dimFooter.getWidth(), - dimHeader.getWidth()); - final double totalHeight = mainHeight + dimTitle.getHeight() + dimHeader.getHeight() + dimFooter.getHeight(); - final Dimension2D dim = new Dimension2DDouble(totalWidth, totalHeight); - final UGraphic2 ug2 = (UGraphic2) fileFormatOption.createUGraphic(skinParam.getColorMapper(), - diagram.getDpiFactor(fileFormatOption), dim, skinParam.getBackgroundColor(), false).apply( - new UTranslate(-min1.getCurrentValue(), 0)); + printAligned(ug, diagram.getFooterOrHeaderTeoz(FontParam.FOOTER).getHorizontalAlignment(), footer); - UGraphic ug = diagram.getSkinParam().handwritten() ? new UGraphicHandwritten(ug2) : ug2; + ug2.writeImageTOBEMOVED(os, isWithMetadata ? diagram.getMetadata() : null, diagram.getDpi(fileFormatOption)); - if (footer != null && footer.getTextBlock() != null) { - double dx = 0; - if (diagram.getFooterAlignment() == HorizontalAlignment.RIGHT) { - dx = totalWidth - dimFooter.getWidth(); - } else if (diagram.getFooterAlignment() == HorizontalAlignment.CENTER) { - dx = (totalWidth - dimFooter.getWidth()) / 2; - } - footer.getTextBlock().drawU( - ug.apply(new UTranslate(dx, mainHeight + dimTitle.getHeight() + dimHeader.getHeight()))); + return new ImageDataSimple(dimTotal); + } + + private UGraphic goDownForEnglobers(UGraphic ug) { + ug = goDown(ug, title); + ug = goDown(ug, header); + if (diagram.getLegend().getVerticalAlignment() == VerticalAlignment.TOP) { + ug = goDown(ug, legend); } - if (header != null && header.getTextBlock() != null) { - double dx = 0; - if (diagram.getHeaderAlignment() == HorizontalAlignment.RIGHT) { - dx = totalWidth - dimHeader.getWidth(); - } else if (diagram.getHeaderAlignment() == HorizontalAlignment.CENTER) { - dx = (totalWidth - dimHeader.getWidth()) / 2; - } - header.getTextBlock().drawU(ug.apply(new UTranslate(dx, 0))); + return ug; + } + + private UGraphic goDown(UGraphic ug, TextBlock size) { + return ug.apply(new UTranslate(0, size.calculateDimension(stringBounder).getHeight())); + } + + public void printAligned(UGraphic ug, HorizontalAlignment align, final TextBlock layer) { + double dx = 0; + if (align == HorizontalAlignment.RIGHT) { + dx = dimTotal.getWidth() - layer.calculateDimension(stringBounder).getWidth(); + } else if (align == HorizontalAlignment.CENTER) { + dx = (dimTotal.getWidth() - layer.calculateDimension(stringBounder).getWidth()) / 2; } - if (compTitle != null) { - compTitle.drawU(ug.apply(new UTranslate((totalWidth - dimTitle.getWidth()) / 2, 0)), new Area(dimTitle), - new SimpleContext2D(false)); - ug = ug.apply(new UTranslate((totalWidth - mainWidth) / 2, dimTitle.getHeight() + dimHeader.getHeight())); + layer.drawU(ug.apply(new UTranslate(dx, 0))); + } + + private MainTile createMainTile() { + final RealOrigin origin = RealUtils.createOrigin(); + Real currentPos = origin.addAtLeast(0); + for (Participant p : diagram.participants().values()) { + final LivingSpace livingSpace = new LivingSpace(p, diagram.getEnglober(p), skin, getSkinParam(), + currentPos, diagram.events()); + livingSpaces.put(p, livingSpace); + currentPos = livingSpace.getPosD(stringBounder).addAtLeast(0); } - drawMainTile(ug, mainTile, livingSpaces); + final TileArguments tileArguments = new TileArguments(stringBounder, livingSpaces, skin, + diagram.getSkinParam(), origin); - ug2.writeImageTOBEMOVED(os, isWithMetadata ? diagram.getMetadata() : null, diagram.getDpi(fileFormatOption)); - final Dimension2D info = new Dimension2DDouble(dim.getWidth(), dim.getHeight()); + this.englobers = new Englobers(tileArguments); + final MainTile mainTile = new MainTile(diagram, englobers, tileArguments); + this.livingSpaces.addConstraints(stringBounder); + mainTile.addConstraints(stringBounder); + this.englobers.addConstraints(stringBounder); + origin.compileNow(); + tileArguments.setBordered(mainTile); + return mainTile; + } - // if (fileFormatOption.getFileFormat() == FileFormat.PNG && ug instanceof UGraphicG2d) { - // final Set urls = ((UGraphicG2d) ug).getAllUrlsEncountered(); - // if (urls.size() > 0) { - // if (scale == 0) { - // throw new IllegalStateException(); - // } - // final CMapData cmap = CMapData.cmapString(urls, scale); - // return new ImageDataComplex(info, cmap, null); - // } - // } - return new ImageDataSimple(info); - } - - private Component getCompTitle() { - final Display title = diagram.getTitle(); - - final Component compTitle; - if (title == null) { - compTitle = null; - } else { - compTitle = skin.createComponent(ComponentType.TITLE, null, diagram.getSkinParam(), title); - } - return compTitle; - } - - private PngTitler getFooter() { - if (diagram.getFooter() == null) { - return null; - } - final HtmlColor hyperlinkColor = diagram.getSkinParam().getHyperlinkColor(); - final HtmlColor titleColor = diagram.getSkinParam().getFontHtmlColor(FontParam.FOOTER, null); - final String fontFamily = diagram.getSkinParam().getFont(FontParam.FOOTER, null, false).getFamily(null); - final int fontSize = diagram.getSkinParam().getFont(FontParam.FOOTER, null, false).getSize(); - final PngTitler pngTitler = new PngTitler(titleColor, diagram.getFooter(), fontSize, fontFamily, - diagram.getFooterAlignment(), hyperlinkColor, diagram.getSkinParam().useUnderlineForHyperlink()); - return pngTitler; - } - - private PngTitler getHeader() { - final HtmlColor hyperlinkColor = diagram.getSkinParam().getHyperlinkColor(); - final HtmlColor titleColor = diagram.getSkinParam().getFontHtmlColor(FontParam.HEADER, null); - final String fontFamily = diagram.getSkinParam().getFont(FontParam.HEADER, null, false).getFamily(null); - final int fontSize = diagram.getSkinParam().getFont(FontParam.HEADER, null, false).getSize(); - final PngTitler pngTitler = new PngTitler(titleColor, diagram.getHeader(), fontSize, fontFamily, - diagram.getHeaderAlignment(), hyperlinkColor, diagram.getSkinParam().useUnderlineForHyperlink()); - return pngTitler; - } - - private void drawMainTile(final UGraphic ug, final MainTile mainTile, LivingSpaces livingSpaces) { - final StringBounder stringBounder = ug.getStringBounder(); - - final Context2D context = new SimpleContext2D(false); - livingSpaces.drawHeads(ug, context, VerticalAlignment.BOTTOM); - - final double headHeight = livingSpaces.getHeadHeight(stringBounder); - - mainTile.drawU(ug.apply(new UTranslate(0, headHeight))); - livingSpaces.drawLifeLines(ug.apply(new UTranslate(0, headHeight)), mainTile.getPreferredHeight(stringBounder), - context); - livingSpaces.drawHeads(ug.apply(new UTranslate(0, mainTile.getPreferredHeight(stringBounder) + headHeight)), - context, VerticalAlignment.TOP); - mainTile.drawForeground(ug.apply(new UTranslate(0, headHeight))); + public ISkinParam getSkinParam() { + return diagram.getSkinParam(); + } + + private TextBlock getTitle() { + if (DisplayPositionned.isNull(diagram.getTitle())) { + return new ComponentAdapter(null); + } + final Component compTitle = skin.createComponent(ComponentType.TITLE, null, getSkinParam(), diagram.getTitle() + .getDisplay()); + return new ComponentAdapter(compTitle); + } + + private TextBlock getLegend() { + final Display legend = diagram.getLegend().getDisplay(); + if (Display.isNull(legend)) { + return TextBlockUtils.empty(0, 0); + } + return EntityImageLegend.create(legend, diagram.getSkinParam()); + } + + public TextBlock getFooterOrHeader(final FontParam param) { + if (DisplayPositionned.isNull(diagram.getFooterOrHeaderTeoz(param))) { + return new TeozLayer(null, stringBounder, param); + } + final Display display = diagram.getFooterOrHeaderTeoz(param).getDisplay(); + final HtmlColor hyperlinkColor = getSkinParam().getHyperlinkColor(); + final HtmlColor titleColor = getSkinParam().getFontHtmlColor(null, param); + final String fontFamily = getSkinParam().getFont(null, false, param).getFamily(null); + final int fontSize = getSkinParam().getFont(null, false, param).getSize(); + final PngTitler pngTitler = new PngTitler(titleColor, display, fontSize, fontFamily, diagram + .getFooterOrHeaderTeoz(param).getHorizontalAlignment(), hyperlinkColor, getSkinParam() + .useUnderlineForHyperlink()); + return new TeozLayer(pngTitler, stringBounder, param); } public int getNbPages() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/Stairs2.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/Stairs2.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/Stairs2.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/Stairs2.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,7 +40,7 @@ import java.util.List; import java.util.Map; -import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.SymbolContext; public class Stairs2 { @@ -48,13 +48,22 @@ private final List values = new ArrayList(); private final Map cache = new HashMap(); - public void addStep(StairsPosition position, int value, HtmlColor color) { - System.err.println("Stairs2::addStep " + position + " " + value + " color=" + color); + @Override + public String toString() { + return ys.toString() + " " + values; + } + + public void addStep(StairsPosition position, int value, SymbolContext color) { + if (value < 0) { + throw new IllegalArgumentException(); + } + // System.err.println("Stairs2::addStep " + position + " " + value + " color=" + color); assert ys.size() == values.size(); if (ys.size() > 0) { final double lastY = ys.get(ys.size() - 1).getValue(); if (position.getValue() < lastY) { - throw new IllegalArgumentException(); + // throw new IllegalArgumentException(); + return; } if (lastY == position.getValue()) { values.set(ys.size() - 1, new IntegerColored(value, color)); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/StairsPosition.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/StairsPosition.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/StairsPosition.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/StairsPosition.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TeozLayer.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TeozLayer.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TeozLayer.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TeozLayer.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,77 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.teoz; + +import java.awt.geom.Dimension2D; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.png.PngTitler; +import net.sourceforge.plantuml.ugraphic.UGraphic; + +public class TeozLayer extends AbstractTextBlock implements TextBlock { + + private final PngTitler titler; + private Dimension2D dimension; + private final FontParam param; + + public TeozLayer(PngTitler titler, StringBounder stringBounder, FontParam param) { + this.titler = titler; + this.param = param; + + dimension = new Dimension2DDouble(0, 0); + if (titler != null && titler.getTextBlock() != null) { + dimension = titler.getTextBlock().calculateDimension(stringBounder); + } + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + return dimension; + } + + public FontParam getParam() { + return param; + } + + public void drawU(UGraphic ug) { + if (titler != null) { + titler.getTextBlock().drawU(ug); + } + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileArguments.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileArguments.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileArguments.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileArguments.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,42 +44,40 @@ import net.sourceforge.plantuml.sequencediagram.Reference; import net.sourceforge.plantuml.skin.Skin; -public class TileArguments { +public class TileArguments implements Bordered { private final StringBounder stringBounder; - private final Real omega; private final Real origin; private final LivingSpaces livingSpaces; private final Skin skin; private final ISkinParam skinParam; - public TileArguments(StringBounder stringBounder, Real omega, LivingSpaces livingSpaces, Skin skin, - ISkinParam skinParam, Real origin) { + public TileArguments(StringBounder stringBounder, LivingSpaces livingSpaces, Skin skin, ISkinParam skinParam, + Real origin) { this.stringBounder = stringBounder; this.origin = origin; - this.omega = omega; this.livingSpaces = livingSpaces; this.skin = skin; this.skinParam = skinParam; } public TileArguments withBackColorGeneral(HtmlColor backColorElement, HtmlColor backColorGeneral) { - return new TileArguments(stringBounder, omega, livingSpaces, skin, new SkinParamBackcolored(skinParam, + return new TileArguments(stringBounder, livingSpaces, skin, new SkinParamBackcolored(skinParam, backColorElement, backColorGeneral), origin); } public TileArguments withBackColor(Reference reference) { final ISkinParam newSkinParam = new SkinParamBackcoloredReference(skinParam, reference.getBackColorElement(), reference.getBackColorGeneral()); - return new TileArguments(stringBounder, omega, livingSpaces, skin, newSkinParam, origin); + return new TileArguments(stringBounder, livingSpaces, skin, newSkinParam, origin); } public final StringBounder getStringBounder() { return stringBounder; } - public final Real getOmega() { - return omega; - } + // public final Real getMaxAbsolute() { + // return origin.getMaxAbsolute(); + // } public final Real getOrigin() { return origin; @@ -113,6 +111,28 @@ return result; } + private Bordered bordered; + + public void setBordered(Bordered bordered) { + this.bordered = bordered; + } + + public double getBorder1() { + return bordered.getBorder1(); + } + + public double getBorder2() { + return bordered.getBorder2(); + } + + // public double getAbsoluteMin() { + // return line.getAbsoluteMin(); + // } + // + // public double getAbsoluteMax() { + // return line.getAbsoluteMax(); + // } + // public void ensure(Tile tile) { // getAlpha().ensureLowerThan(tile.getMinX(getStringBounder())); // getOmega().ensureBiggerThan(tile.getMaxX(getStringBounder())); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileBuilder.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileBuilder.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileBuilder.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileBuilder.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,20 +40,21 @@ import java.util.List; import net.sourceforge.plantuml.ISkinParam; -import net.sourceforge.plantuml.SkinParamBackcoloredReference; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.real.Real; import net.sourceforge.plantuml.sequencediagram.Delay; import net.sourceforge.plantuml.sequencediagram.Divider; import net.sourceforge.plantuml.sequencediagram.Event; import net.sourceforge.plantuml.sequencediagram.GroupingLeaf; import net.sourceforge.plantuml.sequencediagram.GroupingStart; import net.sourceforge.plantuml.sequencediagram.GroupingType; +import net.sourceforge.plantuml.sequencediagram.HSpace; import net.sourceforge.plantuml.sequencediagram.LifeEvent; import net.sourceforge.plantuml.sequencediagram.Message; import net.sourceforge.plantuml.sequencediagram.MessageExo; import net.sourceforge.plantuml.sequencediagram.Note; import net.sourceforge.plantuml.sequencediagram.NotePosition; +import net.sourceforge.plantuml.sequencediagram.Notes; import net.sourceforge.plantuml.sequencediagram.Reference; import net.sourceforge.plantuml.skin.Skin; @@ -63,93 +64,103 @@ final List tiles = new ArrayList(); while (it.hasNext()) { final Event ev = it.next(); - final Tile tile = TileBuilder.buildOne(it, tileArguments, ev, parent); - if (tile != null) { + for (Tile tile : TileBuilder.buildOne(it, tileArguments, ev, parent)) { tiles.add(tile); - tileArguments.getOmega().ensureBiggerThan(tile.getMaxX(tileArguments.getStringBounder())); + final Real tmpMax = tile.getMaxX(tileArguments.getStringBounder()); } } return Collections.unmodifiableList(tiles); } - public static Tile buildOne(Iterator it, TileArguments tileArguments, final Event ev, Tile parent) { + public static List buildOne(Iterator it, TileArguments tileArguments, final Event ev, Tile parent) { final StringBounder stringBounder = tileArguments.getStringBounder(); final Skin skin = tileArguments.getSkin(); final ISkinParam skinParam = tileArguments.getSkinParam(); final LivingSpaces livingSpaces = tileArguments.getLivingSpaces(); - Tile tile = null; + final List tiles = new ArrayList(); // System.err.println("TileBuilder::buildOne " + ev); if (ev instanceof Message) { final Message msg = (Message) ev; final LivingSpace livingSpace1 = livingSpaces.get(msg.getParticipant1()); final LivingSpace livingSpace2 = livingSpaces.get(msg.getParticipant2()); boolean reverse = false; + Tile result = null; if (msg.isSelfMessage()) { - tile = new CommunicationTileSelf(livingSpace1, msg, skin, skinParam, livingSpaces); + result = new CommunicationTileSelf(livingSpace1, msg, skin, skinParam, livingSpaces); } else { // System.err.println("msg=" + msg); - tile = new CommunicationTile(livingSpace1, livingSpace2, msg, skin, skinParam); - reverse = ((CommunicationTile) tile).isReverse(stringBounder); + result = new CommunicationTile(livingSpace1, livingSpace2, msg, skin, skinParam); + reverse = ((CommunicationTile) result).isReverse(stringBounder); } if (msg.getNote() != null) { final NotePosition notePosition = msg.getNotePosition(); if (notePosition == NotePosition.LEFT) { - tile = new CommunicationTileNoteLeft((TileWithUpdateStairs) tile, msg, skin, skinParam, + result = new CommunicationTileNoteLeft((TileWithUpdateStairs) result, msg, skin, skinParam, reverse ? livingSpace2 : livingSpace1); } else if (notePosition == NotePosition.RIGHT && msg.isSelfMessage()) { - tile = new CommunicationTileSelfNoteRight((CommunicationTileSelf) tile, msg, skin, skinParam); + result = new CommunicationTileSelfNoteRight((CommunicationTileSelf) result, msg, skin, skinParam); } else if (notePosition == NotePosition.RIGHT) { - tile = new CommunicationTileNoteRight((TileWithUpdateStairs) tile, msg, skin, skinParam, + result = new CommunicationTileNoteRight((TileWithUpdateStairs) result, msg, skin, skinParam, reverse ? livingSpace1 : livingSpace2); } } + tiles.add(result); } else if (ev instanceof MessageExo) { final MessageExo exo = (MessageExo) ev; final LivingSpace livingSpace1 = livingSpaces.get(exo.getParticipant()); - tile = new CommunicationExoTile(livingSpace1, exo, skin, skinParam, tileArguments.getOrigin(), - tileArguments.getOmega()); + Tile result = null; + result = new CommunicationExoTile(livingSpace1, exo, skin, skinParam, tileArguments); if (exo.getNote() != null) { final NotePosition notePosition = exo.getNotePosition(); if (notePosition == NotePosition.LEFT) { - tile = new CommunicationTileNoteLeft((TileWithUpdateStairs) tile, exo, skin, skinParam, + result = new CommunicationTileNoteLeft((TileWithUpdateStairs) result, exo, skin, skinParam, livingSpace1); } else if (notePosition == NotePosition.RIGHT) { - tile = new CommunicationTileNoteRight((TileWithUpdateStairs) tile, exo, skin, skinParam, + result = new CommunicationTileNoteRight((TileWithUpdateStairs) result, exo, skin, skinParam, livingSpace1); } } + tiles.add(result); } else if (ev instanceof Note) { final Note note = (Note) ev; final LivingSpace livingSpace1 = livingSpaces.get(note.getParticipant()); final LivingSpace livingSpace2 = note.getParticipant2() == null ? null : livingSpaces.get(note .getParticipant2()); - tile = new NoteTile(livingSpace1, livingSpace2, note, skin, skinParam); + tiles.add(new NoteTile(livingSpace1, livingSpace2, note, skin, skinParam)); + } else if (ev instanceof Notes) { + final Notes notes = (Notes) ev; + tiles.add(new NotesTile(livingSpaces, notes, skin, skinParam)); } else if (ev instanceof Divider) { final Divider divider = (Divider) ev; - tile = new DividerTile(divider, skin, skinParam, tileArguments.getOrigin(), tileArguments.getOmega()); + tiles.add(new DividerTile(divider, tileArguments)); } else if (ev instanceof GroupingStart) { final GroupingStart start = (GroupingStart) ev; - tile = new GroupingTile(it, start, tileArguments.withBackColorGeneral(start.getBackColorElement(), - start.getBackColorGeneral()), tileArguments); - // tile = TileUtils.withMargin(tile, 10, 10, 10, 10); + tiles.add(new EmptyTile(4, tileArguments)); + tiles.add(new GroupingTile(it, start, tileArguments.withBackColorGeneral(start.getBackColorElement(), + start.getBackColorGeneral()), tileArguments)); + tiles.add(new EmptyTile(4, tileArguments)); + // tiles.add(TileUtils.withMargin(tile, 0, 0, 4, 4); } else if (ev instanceof GroupingLeaf && ((GroupingLeaf) ev).getType() == GroupingType.ELSE) { final GroupingLeaf anElse = (GroupingLeaf) ev; - tile = new ElseTile(anElse, skin, skinParam, parent); + tiles.add(new ElseTile(anElse, skin, skinParam, parent)); } else if (ev instanceof Reference) { final Reference ref = (Reference) ev; - tile = new ReferenceTile(ref, tileArguments.withBackColor(ref)); + tiles.add(new ReferenceTile(ref, tileArguments.withBackColor(ref))); } else if (ev instanceof Delay) { final Delay delay = (Delay) ev; - tile = new DelayTile(delay, tileArguments); + tiles.add(new DelayTile(delay, tileArguments)); + } else if (ev instanceof HSpace) { + final HSpace hspace = (HSpace) ev; + tiles.add(new HSpaceTile(hspace, tileArguments)); } else if (ev instanceof LifeEvent) { final LifeEvent lifeEvent = (LifeEvent) ev; final LivingSpace livingSpace = livingSpaces.get(lifeEvent.getParticipant()); - tile = new LifeEventTile(lifeEvent, tileArguments, livingSpace, skin, skinParam); + tiles.add(new LifeEventTile(lifeEvent, tileArguments, livingSpace, skin, skinParam)); } else { System.err.println("TileBuilder::Ignoring " + ev.getClass()); } - return tile; + return tiles; } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/Tile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/Tile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/Tile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/Tile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileMarged.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileMarged.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileMarged.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileMarged.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileUtils.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileUtils.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileUtils.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,7 +36,7 @@ public class TileUtils { - private static Tile withMargin(Tile tile, double x1, double x2, double y1, double y2) { + public static Tile withMargin(Tile tile, double x1, double x2, double y1, double y2) { return new TileMarged(tile, x1, x2, y1, y2); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileWithCallbackY.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileWithCallbackY.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileWithCallbackY.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileWithCallbackY.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,41 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.sequencediagram.teoz; + + +public interface TileWithCallbackY extends Tile { + + public void callbackY(double y); +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileWithUpdateStairs.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileWithUpdateStairs.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/TileWithUpdateStairs.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/TileWithUpdateStairs.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/UGraphicInterceptorTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/UGraphicInterceptorTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/UGraphicInterceptorTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/UGraphicInterceptorTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/YPositionedTile.java plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/YPositionedTile.java --- plantuml-8024/src/net/sourceforge/plantuml/sequencediagram/teoz/YPositionedTile.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/sequencediagram/teoz/YPositionedTile.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -46,6 +46,9 @@ public YPositionedTile(Tile tile, double y) { this.tile = tile; this.y = y; + if (tile instanceof TileWithCallbackY) { + ((TileWithCallbackY) tile).callbackY(y); + } } public void drawU(UGraphic ug) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SignatureUtils.java plantuml-8039/src/net/sourceforge/plantuml/SignatureUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/SignatureUtils.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SignatureUtils.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -52,6 +52,22 @@ msgDigest.update(s.getBytes("UTF-8")); final byte[] digest = msgDigest.digest(); return coder.encode(digest); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + throw new UnsupportedOperationException(e); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + throw new UnsupportedOperationException(e); + } + } + + public static String getSignatureSha512(String s) { + try { + final AsciiEncoder coder = new AsciiEncoder(); + final MessageDigest msgDigest = MessageDigest.getInstance("SHA-512"); + msgDigest.update(s.getBytes("UTF-8")); + final byte[] digest = msgDigest.digest(); + return coder.encode(digest); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); throw new UnsupportedOperationException(e); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SingleLine.java plantuml-8039/src/net/sourceforge/plantuml/SingleLine.java --- plantuml-8024/src/net/sourceforge/plantuml/SingleLine.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SingleLine.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/AbstractComponent.java plantuml-8039/src/net/sourceforge/plantuml/skin/AbstractComponent.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/AbstractComponent.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/AbstractComponent.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/AbstractTextualComponent.java plantuml-8039/src/net/sourceforge/plantuml/skin/AbstractTextualComponent.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/AbstractTextualComponent.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/AbstractTextualComponent.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,6 +38,7 @@ import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinSimple; +import net.sourceforge.plantuml.creole.CreoleMode; import net.sourceforge.plantuml.cucadiagram.BodyEnhanced2; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.FontConfiguration; @@ -85,8 +86,8 @@ } else if (enhanced) { textBlock = new BodyEnhanced2(strings, FontParam.NOTE, spriteContainer, HorizontalAlignment.LEFT, font); } else { - textBlock = TextBlockUtils.create(strings, font, horizontalAlignment, spriteContainer, maxMessageSize, - false, fontForStereotype, htmlColorForStereotype); + textBlock = strings.create(font, horizontalAlignment, spriteContainer, maxMessageSize, CreoleMode.FULL, + fontForStereotype, htmlColorForStereotype); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/Area.java plantuml-8039/src/net/sourceforge/plantuml/skin/Area.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/Area.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/Area.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowBody.java plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowBody.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowBody.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowBody.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowComponent.java plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowComponent.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowComponent.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowComponent.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowConfiguration.java plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowConfiguration.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowConfiguration.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowConfiguration.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowDecoration.java plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowDecoration.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowDecoration.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowDecoration.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowDirection.java plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowDirection.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowDirection.java 2015-05-03 15:06:23.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowDirection.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowDressing.java plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowDressing.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowDressing.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowDressing.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowHead.java plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowHead.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowHead.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowHead.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowPart.java plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowPart.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/ArrowPart.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/ArrowPart.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/AbstractComponentBlueModernArrow.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/AbstractComponentBlueModernArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/AbstractComponentBlueModernArrow.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/AbstractComponentBlueModernArrow.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/BlueModern.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/BlueModern.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/BlueModern.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/BlueModern.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -81,18 +81,19 @@ final HtmlColor sequenceArrow = config.getColor() == null ? HtmlColorUtils.BLACK : config.getColor(); if (config.isSelfArrow()) { return new ComponentBlueModernSelfArrow(sequenceArrow, normalFont.toFont2(HtmlColorUtils.BLACK, - useUnderlineForHyperlink, hyperlinkColor), stringsToDisplay, config, param); + useUnderlineForHyperlink, hyperlinkColor, param.getTabSize()), stringsToDisplay, config, param); } return new ComponentBlueModernArrow(sequenceArrow, useUnderlineForHyperlink, normalFont.toFont2( - HtmlColorUtils.BLACK, useUnderlineForHyperlink, hyperlinkColor), stringsToDisplay, config, param); + HtmlColorUtils.BLACK, useUnderlineForHyperlink, hyperlinkColor, param.getTabSize()), + stringsToDisplay, config, param); } if (type == ComponentType.PARTICIPANT_HEAD) { return new ComponentBlueModernParticipant(blue1, blue2, participantFont.toFont2(HtmlColorUtils.WHITE, - useUnderlineForHyperlink, hyperlinkColor), stringsToDisplay, param); + useUnderlineForHyperlink, hyperlinkColor, param.getTabSize()), stringsToDisplay, param); } if (type == ComponentType.PARTICIPANT_TAIL) { return new ComponentBlueModernParticipant(blue1, blue2, participantFont.toFont2(HtmlColorUtils.WHITE, - useUnderlineForHyperlink, hyperlinkColor), stringsToDisplay, param); + useUnderlineForHyperlink, hyperlinkColor, param.getTabSize()), stringsToDisplay, param); } if (type == ComponentType.PARTICIPANT_LINE) { return new ComponentBlueModernLine(lineColor); @@ -102,15 +103,16 @@ } if (type == ComponentType.ACTOR_HEAD) { return new ComponentBlueModernActor(blue2, blue1, participantFont.toFont2(blue1, useUnderlineForHyperlink, - hyperlinkColor), stringsToDisplay, true, param); + hyperlinkColor, param.getTabSize()), stringsToDisplay, true, param); } if (type == ComponentType.ACTOR_TAIL) { return new ComponentBlueModernActor(blue2, blue1, participantFont.toFont2(blue1, useUnderlineForHyperlink, - hyperlinkColor), stringsToDisplay, false, param); + hyperlinkColor, param.getTabSize()), stringsToDisplay, false, param); } if (type == ComponentType.NOTE) { return new ComponentBlueModernNote(HtmlColorUtils.WHITE, HtmlColorUtils.BLACK, normalFont.toFont2( - HtmlColorUtils.BLACK, useUnderlineForHyperlink, hyperlinkColor), stringsToDisplay, param); + HtmlColorUtils.BLACK, useUnderlineForHyperlink, hyperlinkColor, param.getTabSize()), + stringsToDisplay, param); } if (type == ComponentType.ALIVE_BOX_CLOSE_CLOSE) { return new ComponentBlueModernActiveLine(blue1, true, true); @@ -128,50 +130,53 @@ return new ComponentBlueModernDelayLine(lineColor); } if (type == ComponentType.DELAY_TEXT) { - return new ComponentBlueModernDelayText(param.getFont(FontParam.SEQUENCE_DELAY, null, false).toFont2( - HtmlColorUtils.BLACK, useUnderlineForHyperlink, hyperlinkColor), stringsToDisplay, param); + return new ComponentBlueModernDelayText(param.getFont(null, false, FontParam.SEQUENCE_DELAY).toFont2( + HtmlColorUtils.BLACK, useUnderlineForHyperlink, hyperlinkColor, param.getTabSize()), + stringsToDisplay, param); } if (type == ComponentType.DESTROY) { return new ComponentRoseDestroy(red); } if (type == ComponentType.GROUPING_HEADER) { return new ComponentBlueModernGroupingHeader(blue1, blue3, borderGroupColor, HtmlColorUtils.BLACK, - normalFont.toFont2(HtmlColorUtils.WHITE, useUnderlineForHyperlink, hyperlinkColor), smallFont, - stringsToDisplay, param); + normalFont.toFont2(HtmlColorUtils.WHITE, useUnderlineForHyperlink, hyperlinkColor, + param.getTabSize()), smallFont, stringsToDisplay, param); } if (type == ComponentType.GROUPING_ELSE) { return new ComponentRoseGroupingElse(HtmlColorUtils.BLACK, smallFont.toFont2(HtmlColorUtils.BLACK, - useUnderlineForHyperlink, hyperlinkColor), stringsToDisplay.get(0), param, blue3); + useUnderlineForHyperlink, hyperlinkColor, param.getTabSize()), stringsToDisplay.get(0), param, + blue3); } if (type == ComponentType.GROUPING_SPACE) { return new ComponentRoseGroupingSpace(7); } if (type == ComponentType.TITLE) { return new ComponentRoseTitle(bigFont.toFont2(HtmlColorUtils.BLACK, useUnderlineForHyperlink, - hyperlinkColor), stringsToDisplay, param); + hyperlinkColor, param.getTabSize()), stringsToDisplay, param); } if (type == ComponentType.REFERENCE) { return new ComponentRoseReference(normalFont.toFont2(HtmlColorUtils.BLACK, useUnderlineForHyperlink, - hyperlinkColor), new SymbolContext(blue1, borderGroupColor).withStroke(Rose.getStroke(param, - LineParam.sequenceDividerBorder, 2)), normalFont.toFont2(HtmlColorUtils.WHITE, - useUnderlineForHyperlink, hyperlinkColor), stringsToDisplay, HorizontalAlignment.CENTER, param, - blue3); + hyperlinkColor, param.getTabSize()), new SymbolContext(blue1, borderGroupColor).withStroke(Rose + .getStroke(param, LineParam.sequenceDividerBorder, 2)), normalFont.toFont2(HtmlColorUtils.WHITE, + useUnderlineForHyperlink, hyperlinkColor, param.getTabSize()), stringsToDisplay, + HorizontalAlignment.CENTER, param, blue3); } if (type == ComponentType.NEWPAGE) { return new ComponentBlueModernNewpage(blue1); } if (type == ComponentType.DIVIDER) { return new ComponentBlueModernDivider(normalFont.toFont2(HtmlColorUtils.BLACK, useUnderlineForHyperlink, - hyperlinkColor), blue2, blue1, HtmlColorUtils.BLACK, stringsToDisplay, param); + hyperlinkColor, param.getTabSize()), blue2, blue1, HtmlColorUtils.BLACK, stringsToDisplay, param); } if (type == ComponentType.SIGNATURE) { return new ComponentRoseTitle(smallFont.toFont2(HtmlColorUtils.BLACK, useUnderlineForHyperlink, - hyperlinkColor), Display.create("This skin was created ", "in April 2009."), param); + hyperlinkColor, param.getTabSize()), Display.create("This skin was created ", "in April 2009."), + param); } if (type == ComponentType.ENGLOBER) { return new ComponentBlueModernEnglober(blue1, blue3, stringsToDisplay, param.getFont( - FontParam.SEQUENCE_BOX, null, false).toFont2(HtmlColorUtils.BLACK, useUnderlineForHyperlink, - hyperlinkColor), param); + null, false, FontParam.SEQUENCE_BOX).toFont2(HtmlColorUtils.BLACK, useUnderlineForHyperlink, + hyperlinkColor, param.getTabSize()), param); } return null; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernActiveLine.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernActiveLine.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernActiveLine.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernActiveLine.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernActor.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernActor.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernActor.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernActor.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernArrow.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernArrow.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernArrow.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDelayLine.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDelayLine.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDelayLine.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDelayLine.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDelayText.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDelayText.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDelayText.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDelayText.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDivider.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDivider.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDivider.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernDivider.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernEnglober.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernEnglober.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernEnglober.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernEnglober.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernGroupingHeader.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernGroupingHeader.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernGroupingHeader.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernGroupingHeader.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -68,18 +68,19 @@ private final HtmlColor borderColor; public ComponentBlueModernGroupingHeader(HtmlColor headerBackgroundColor, HtmlColor generalBackgroundColor, - HtmlColor borderColor, HtmlColor fontColor2, FontConfiguration bigFont, UFont smallFont, Display strings, ISkinSimple spriteContainer) { - super(strings.get(0), bigFont, HorizontalAlignment.LEFT, 15, 30, 1, spriteContainer, 0, null, - null); + HtmlColor borderColor, HtmlColor fontColor2, FontConfiguration bigFont, UFont smallFont, Display strings, + ISkinSimple spriteContainer) { + super(strings.get(0), bigFont, HorizontalAlignment.LEFT, 15, 30, 1, spriteContainer, 0, null, null); this.headerBackgroundColor = headerBackgroundColor; this.generalBackgroundColor = generalBackgroundColor; this.borderColor = borderColor; if (strings.size() == 1 || strings.get(1) == null) { this.commentTextBlock = null; } else { - this.commentTextBlock = TextBlockUtils.create(Display.create("[" + strings.get(1) + "]"), - new FontConfiguration(smallFont, fontColor2, bigFont.getHyperlinkColor(), bigFont.useUnderlineForHyperlink()), HorizontalAlignment.LEFT, - spriteContainer); + final FontConfiguration fontConfiguration = new FontConfiguration(smallFont, fontColor2, + bigFont.getHyperlinkColor(), bigFont.useUnderlineForHyperlink(), spriteContainer.getTabSize()); + this.commentTextBlock = Display.create("[" + strings.get(1) + "]").create(fontConfiguration, + HorizontalAlignment.LEFT, spriteContainer); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernLine.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernLine.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernLine.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernLine.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernNewpage.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernNewpage.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernNewpage.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernNewpage.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernNote.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernNote.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernNote.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernNote.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernParticipant.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernParticipant.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernParticipant.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernParticipant.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernSelfArrow.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernSelfArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernSelfArrow.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ComponentBlueModernSelfArrow.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/FillRoundShape.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/FillRoundShape.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/FillRoundShape.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/FillRoundShape.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ShadowShape.java plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ShadowShape.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/bluemodern/ShadowShape.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/bluemodern/ShadowShape.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/CircleInterface.java plantuml-8039/src/net/sourceforge/plantuml/skin/CircleInterface.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/CircleInterface.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/CircleInterface.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/Component.java plantuml-8039/src/net/sourceforge/plantuml/skin/Component.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/Component.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/Component.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/ComponentType.java plantuml-8039/src/net/sourceforge/plantuml/skin/ComponentType.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/ComponentType.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/ComponentType.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/Context2D.java plantuml-8039/src/net/sourceforge/plantuml/skin/Context2D.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/Context2D.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/Context2D.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/GrayComponent.java plantuml-8039/src/net/sourceforge/plantuml/skin/GrayComponent.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/GrayComponent.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/GrayComponent.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -75,8 +75,8 @@ strings.add(n.substring(i, Math.min(i + split, n.length()))); } - final TextBlock textBlock = TextBlockUtils.create(Display.create(strings), new FontConfiguration(NORMAL, HtmlColorUtils.BLACK, - HtmlColorUtils.BLUE, true), HorizontalAlignment.LEFT, new SpriteContainerEmpty()); + final TextBlock textBlock = Display.create(strings).create(FontConfiguration.blackBlueTrue(NORMAL), + HorizontalAlignment.LEFT, new SpriteContainerEmpty()); textBlock.drawU(ug); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/ProtectedSkin.java plantuml-8039/src/net/sourceforge/plantuml/skin/ProtectedSkin.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/ProtectedSkin.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/ProtectedSkin.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/AbstractComponentRoseArrow.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/AbstractComponentRoseArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/AbstractComponentRoseArrow.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/AbstractComponentRoseArrow.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseActiveLine.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseActiveLine.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseActiveLine.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseActiveLine.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseActor.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseActor.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseActor.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseActor.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseArrow.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseArrow.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseArrow.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseBoundary.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseBoundary.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseBoundary.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseBoundary.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseControl.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseControl.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseControl.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseControl.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDatabase.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDatabase.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDatabase.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDatabase.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -66,8 +66,8 @@ final SymbolContext symbolContext = new SymbolContext(biColor.getBackColor(), biColor.getForeColor()) .withStroke(new UStroke(1.5)).withShadow(biColor.getDeltaShadow() > 0); - this.stickman = USymbol.DATABASE.asSmall(TextBlockUtils.empty(16, 17), TextBlockUtils.empty(0, 0), - symbolContext); + this.stickman = USymbol.DATABASE.asSmall(null, TextBlockUtils.empty(16, 17), + TextBlockUtils.empty(0, 0), symbolContext); } @Override diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDelayLine.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDelayLine.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDelayLine.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDelayLine.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDelayText.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDelayText.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDelayText.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDelayText.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDestroy.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDestroy.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDestroy.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDestroy.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDivider.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDivider.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDivider.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseDivider.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,7 +41,6 @@ import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.skin.AbstractTextualComponent; @@ -57,16 +56,17 @@ public class ComponentRoseDivider extends AbstractTextualComponent { // private final int outMargin = 5; + private final HtmlColor borderColor; private final HtmlColor background; private final boolean empty; private final boolean withShadow; private final UStroke stroke; public ComponentRoseDivider(FontConfiguration font, HtmlColor background, Display stringsToDisplay, - ISkinSimple spriteContainer, boolean withShadow, UStroke stroke) { - super(stringsToDisplay, font, HorizontalAlignment.CENTER, 4, 4, 4, - spriteContainer, 0, false, null, null); + ISkinSimple spriteContainer, boolean withShadow, UStroke stroke, HtmlColor borderColor) { + super(stringsToDisplay, font, HorizontalAlignment.CENTER, 4, 4, 4, spriteContainer, 0, false, null, null); this.background = background; + this.borderColor = borderColor; this.empty = stringsToDisplay.get(0).length() == 0; this.withShadow = withShadow; this.stroke = stroke; @@ -90,7 +90,7 @@ drawSep(ug.apply(new UTranslate(0, dimensionToUse.getHeight() / 2)), dimensionToUse.getWidth()); - ug = ug.apply(new UChangeColor(HtmlColorUtils.BLACK)); + ug = ug.apply(new UChangeColor(borderColor)); ug = ug.apply(stroke); final URectangle rect = new URectangle(textWidth + deltaX, textHeight); if (withShadow) { @@ -120,7 +120,7 @@ } private void drawDoubleLine(UGraphic ug, final double width) { - ug = ug.apply(new UStroke(stroke.getThickness() / 2)).apply(new UChangeColor(HtmlColorUtils.BLACK)); + ug = ug.apply(new UStroke(stroke.getThickness() / 2)).apply(new UChangeColor(borderColor)); final ULine line = new ULine(width, 0); ug.apply(new UTranslate(0, -1)).draw(line); ug.apply(new UTranslate(0, 2)).draw(line); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseEnglober.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseEnglober.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseEnglober.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseEnglober.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseEntity.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseEntity.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseEntity.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseEntity.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingElse.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingElse.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingElse.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingElse.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingHeader.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingHeader.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingHeader.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingHeader.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,12 +44,10 @@ import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.SymbolContext; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.skin.AbstractTextualComponent; import net.sourceforge.plantuml.skin.Area; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; -import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UPolygon; import net.sourceforge.plantuml.ugraphic.URectangle; @@ -66,8 +64,8 @@ private final HtmlColor background; private final SymbolContext symbolContext; - public ComponentRoseGroupingHeader(HtmlColor background, SymbolContext symbolContext, FontConfiguration bigFont, UFont smallFont, - Display strings, ISkinSimple spriteContainer) { + public ComponentRoseGroupingHeader(HtmlColor background, SymbolContext symbolContext, FontConfiguration bigFont, + FontConfiguration smallFont2, Display strings, ISkinSimple spriteContainer) { super(strings.get(0), bigFont, HorizontalAlignment.LEFT, 15, 30, 1, spriteContainer, 0, null, null); this.symbolContext = symbolContext; this.background = background; @@ -75,16 +73,17 @@ this.commentTextBlock = null; } else { final Display display = Display.getWithNewlines("[" + strings.get(1) + "]"); - this.commentTextBlock = TextBlockUtils.create(display, new FontConfiguration(smallFont, bigFont.getColor(), - bigFont.getHyperlinkColor(), bigFont.useUnderlineForHyperlink()), HorizontalAlignment.LEFT, - spriteContainer); + // final FontConfiguration smallFont2 = bigFont.forceFont(smallFont, null); + this.commentTextBlock = display.create(smallFont2, HorizontalAlignment.LEFT, spriteContainer); } if (this.background == null) { throw new IllegalArgumentException(); } - } + // new FontConfiguration(smallFont, bigFont.getColor(), bigFont.getHyperlinkColor(), + // bigFont.useUnderlineForHyperlink()); + private double getSuppHeightForComment(StringBounder stringBounder) { if (commentTextBlock == null) { return 0; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingSpace.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingSpace.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingSpace.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseGroupingSpace.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseLine.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseLine.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseLine.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseLine.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNewpage.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNewpage.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNewpage.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNewpage.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNoteBox.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNoteBox.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNoteBox.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNoteBox.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNoteHexagonal.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNoteHexagonal.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNoteHexagonal.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNoteHexagonal.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNote.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNote.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNote.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseNote.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,13 +39,10 @@ import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.SymbolContext; import net.sourceforge.plantuml.skin.AbstractTextualComponent; import net.sourceforge.plantuml.skin.Area; -import net.sourceforge.plantuml.ugraphic.UChangeBackColor; -import net.sourceforge.plantuml.ugraphic.UChangeColor; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UGraphicStencil; import net.sourceforge.plantuml.ugraphic.ULine; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseParticipant.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseParticipant.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseParticipant.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseParticipant.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseReference.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseReference.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseReference.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseReference.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -71,8 +71,7 @@ this.symbolContext = symbolContext; this.background = background; - this.textHeader = TextBlockUtils.create(stringsToDisplay.subList(0, 1), header, HorizontalAlignment.LEFT, - spriteContainer); + this.textHeader = stringsToDisplay.subList(0, 1).create(header, HorizontalAlignment.LEFT, spriteContainer); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseSelfArrow.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseSelfArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseSelfArrow.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseSelfArrow.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseTitle.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseTitle.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/ComponentRoseTitle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/ComponentRoseTitle.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/rose/Rose.java plantuml-8039/src/net/sourceforge/plantuml/skin/rose/Rose.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/rose/Rose.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/rose/Rose.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.LineParam; +import net.sourceforge.plantuml.SkinParamUtils; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.graphic.FontConfiguration; @@ -60,7 +61,7 @@ final private double paddingY = 5; public HtmlColor getFontColor(ISkinParam skin, FontParam fontParam) { - return skin.getFontHtmlColor(fontParam, null); + return skin.getFontHtmlColor(null, fontParam); } public HtmlColor getHtmlColor(ISkinParam param, ColorParam color) { @@ -78,17 +79,15 @@ return result; } - private FontConfiguration getUFont2(ISkinParam param, FontParam fontParam) { - final UFont font = param.getFont(fontParam, null, false); - final HtmlColor fontColor = getFontColor(param, fontParam); - return new FontConfiguration(font, fontColor, param.getHyperlinkColor(), param.useUnderlineForHyperlink()); + private FontConfiguration getUFont2(ISkinParam skinParam, FontParam fontParam) { + return new FontConfiguration(skinParam, fontParam, null); } public Component createComponent(ComponentType type, ArrowConfiguration config, ISkinParam param, Display stringsToDisplay) { - final UFont fontGrouping = param.getFont(FontParam.SEQUENCE_GROUP, null, false); + final UFont fontGrouping = param.getFont(null, false, FontParam.SEQUENCE_GROUP); - final UFont newFontForStereotype = param.getFont(FontParam.SEQUENCE_STEREOTYPE, null, false); + final UFont newFontForStereotype = param.getFont(null, false, FontParam.SEQUENCE_STEREOTYPE); if (type.isArrow()) { // if (param.maxMessageSize() > 0) { @@ -189,10 +188,15 @@ return new ComponentRoseNoteBox(getSymbolContext(param, ColorParam.noteBorder), getUFont2(param, FontParam.NOTE), stringsToDisplay, param); } + final FontConfiguration bigFont = getUFont2(param, FontParam.SEQUENCE_GROUP_HEADER); if (type == ComponentType.GROUPING_HEADER) { + FontConfiguration smallFont = bigFont.forceFont(fontGrouping, null); + final HtmlColor smallColor = SkinParamUtils.getFontColor(param, FontParam.SEQUENCE_GROUP, null); + if (smallColor != null) { + smallFont = smallFont.changeColor(smallColor); + } return new ComponentRoseGroupingHeader(param.getBackgroundColor(), getSymbolContext(param, - ColorParam.sequenceGroupBorder), getUFont2(param, FontParam.SEQUENCE_GROUP_HEADER), fontGrouping, - stringsToDisplay, param); + ColorParam.sequenceGroupBorder), bigFont, smallFont, stringsToDisplay, param); } if (type == ComponentType.GROUPING_ELSE) { return new ComponentRoseGroupingElse(getHtmlColor(param, ColorParam.sequenceGroupBorder), getUFont2(param, @@ -223,25 +227,26 @@ return new ComponentRoseDestroy(getHtmlColor(param, ColorParam.sequenceLifeLineBorder)); } if (type == ComponentType.NEWPAGE) { - return new ComponentRoseNewpage(getFontColor(param, FontParam.SEQUENCE_GROUP)); + return new ComponentRoseNewpage(getHtmlColor(param, ColorParam.sequenceNewpageSeparator)); } if (type == ComponentType.DIVIDER) { return new ComponentRoseDivider(getUFont2(param, FontParam.SEQUENCE_DIVIDER), getHtmlColor(param, ColorParam.sequenceDividerBackground), stringsToDisplay, param, deltaShadow(param) > 0, getStroke( - param, LineParam.sequenceDividerBorder, 2)); + param, LineParam.sequenceDividerBorder, 2), getHtmlColor(param, ColorParam.sequenceDividerBorder)); } if (type == ComponentType.REFERENCE) { return new ComponentRoseReference(getUFont2(param, FontParam.SEQUENCE_REFERENCE), getSymbolContext(param, - ColorParam.sequenceReferenceBorder), getUFont2(param, FontParam.SEQUENCE_GROUP_HEADER), - stringsToDisplay, param.getHorizontalAlignment(AlignParam.SEQUENCE_REFERENCE_ALIGN), param, - getHtmlColor(param, ColorParam.sequenceReferenceBackground)); + ColorParam.sequenceReferenceBorder), bigFont, stringsToDisplay, + param.getHorizontalAlignment(AlignParam.SEQUENCE_REFERENCE_ALIGN), param, getHtmlColor(param, + ColorParam.sequenceReferenceBackground)); } if (type == ComponentType.TITLE) { return new ComponentRoseTitle(getUFont2(param, FontParam.SEQUENCE_TITLE), stringsToDisplay, param); } if (type == ComponentType.SIGNATURE) { return new ComponentRoseTitle(fontGrouping.toFont2(HtmlColorUtils.BLACK, param.useUnderlineForHyperlink(), - param.getHyperlinkColor()), Display.create("This skin was created ", "in April 2009."), param); + param.getHyperlinkColor(), param.getTabSize()), Display.create("This skin was created ", + "in April 2009."), param); } if (type == ComponentType.ENGLOBER) { return new ComponentRoseEnglober(getSymbolContext(param, ColorParam.sequenceBoxBorder), stringsToDisplay, diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/SimpleContext2D.java plantuml-8039/src/net/sourceforge/plantuml/skin/SimpleContext2D.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/SimpleContext2D.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/SimpleContext2D.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/Skin.java plantuml-8039/src/net/sourceforge/plantuml/skin/Skin.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/Skin.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/Skin.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/SkinUtils.java plantuml-8039/src/net/sourceforge/plantuml/skin/SkinUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/SkinUtils.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/SkinUtils.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/StickMan.java plantuml-8039/src/net/sourceforge/plantuml/skin/StickMan.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/StickMan.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/StickMan.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.SymbolContext; @@ -47,7 +48,7 @@ import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class StickMan implements TextBlock { +public class StickMan extends AbstractTextBlock implements TextBlock { private final double armsY = 8; private final double armsLenght = 13; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/skin/VisibilityModifier.java plantuml-8039/src/net/sourceforge/plantuml/skin/VisibilityModifier.java --- plantuml-8024/src/net/sourceforge/plantuml/skin/VisibilityModifier.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/skin/VisibilityModifier.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,9 +35,11 @@ package net.sourceforge.plantuml.skin; import java.awt.geom.Dimension2D; +import java.awt.geom.Rectangle2D; import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; @@ -77,18 +79,19 @@ } public TextBlock getUBlock(final int size, final HtmlColor foregroundColor, final HtmlColor backgoundColor) { - return new TextBlock() { + return new AbstractTextBlock() { public Dimension2D calculateDimension(StringBounder stringBounder) { return new Dimension2DDouble(size + 1, size + 1); } + + @Override + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + return null; + } public void drawU(UGraphic ug) { - // final double tx = ug.getTranslateX(); - // final double ty = ug.getTranslateY(); - // ug.translate(x, y);F drawInternal(ug, size, foregroundColor, backgoundColor, 0, 0); - // ug.setTranslate(tx, ty); } }; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SkinParamBackcolored.java plantuml-8039/src/net/sourceforge/plantuml/SkinParamBackcolored.java --- plantuml-8024/src/net/sourceforge/plantuml/SkinParamBackcolored.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SkinParamBackcolored.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,9 @@ */ package net.sourceforge.plantuml; +import java.util.EnumMap; +import java.util.Map; + import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.graphic.HtmlColor; @@ -63,6 +66,7 @@ this.backColorGeneral = backColorGeneral; } + @Override public HtmlColor getBackgroundColor() { if (backColorGeneral != null) { return backColorGeneral; @@ -70,6 +74,7 @@ return super.getBackgroundColor(); } + @Override public HtmlColor getHtmlColor(ColorParam param, Stereotype stereotype, boolean clickable) { if (param.isBackground() && backColorElement != null) { return backColorElement; @@ -81,7 +86,17 @@ } // clickable = true; } + final HtmlColor forcedColor = forced.get(param); + if (forcedColor != null) { + return forcedColor; + } return super.getHtmlColor(param, stereotype, clickable); } + private final Map forced = new EnumMap(ColorParam.class); + + public void forceColor(ColorParam param, HtmlColor color) { + forced.put(param, color); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SkinParamBackcoloredReference.java plantuml-8039/src/net/sourceforge/plantuml/SkinParamBackcoloredReference.java --- plantuml-8024/src/net/sourceforge/plantuml/SkinParamBackcoloredReference.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SkinParamBackcoloredReference.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -49,6 +49,7 @@ this.sequenceReferenceHeaderBackground = sequenceReferenceHeaderBackground; } + @Override public HtmlColor getHtmlColor(ColorParam param, Stereotype stereotype, boolean clickable) { if (param == ColorParam.sequenceReferenceHeaderBackground && sequenceReferenceHeaderBackground != null) { return sequenceReferenceHeaderBackground; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SkinParamColors.java plantuml-8039/src/net/sourceforge/plantuml/SkinParamColors.java --- plantuml-8024/src/net/sourceforge/plantuml/SkinParamColors.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SkinParamColors.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,87 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; + +public class SkinParamColors extends SkinParamDelegator { + + final private Colors colors; + + public SkinParamColors(ISkinParam skinParam, Colors colors) { + super(skinParam); + this.colors = colors; + } + + @Override + public String toString() { + return super.toString() + colors; + } + + @Override + public boolean shadowing() { + if (colors.getShadowing() == null) { + return super.shadowing(); + } + return colors.getShadowing(); + } + + @Override + public HtmlColor getFontHtmlColor(Stereotype stereotype, FontParam... param) { + final HtmlColor value = colors.getColor(ColorType.TEXT); + if (value == null) { + return super.getFontHtmlColor(stereotype, param); + } + return value; + } + + @Override + public HtmlColor getHtmlColor(ColorParam param, Stereotype stereotype, boolean clickable) { + final ColorType type = param.getColorType(); + if (type == null) { + return super.getHtmlColor(param, stereotype, clickable); + } + final HtmlColor value = colors.getColor(type); + if (value != null) { + return value; + } + assert value == null; + return super.getHtmlColor(param, stereotype, clickable); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SkinParamDelegator.java plantuml-8039/src/net/sourceforge/plantuml/SkinParamDelegator.java --- plantuml-8024/src/net/sourceforge/plantuml/SkinParamDelegator.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SkinParamDelegator.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,17 +37,17 @@ import net.sourceforge.plantuml.cucadiagram.Rankdir; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.cucadiagram.dot.DotSplines; -import net.sourceforge.plantuml.cucadiagram.dot.GraphvizLayoutStrategy; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.IHtmlColorSet; import net.sourceforge.plantuml.graphic.SkinParameter; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.svek.ConditionStyle; import net.sourceforge.plantuml.svek.PackageStyle; import net.sourceforge.plantuml.ugraphic.ColorMapper; -import net.sourceforge.plantuml.ugraphic.Sprite; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UStroke; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; public class SkinParamDelegator implements ISkinParam { @@ -69,12 +69,12 @@ return skinParam.getCircledCharacterRadius(); } - public UFont getFont(FontParam fontParam, Stereotype stereotype, boolean inPackageTitle) { - return skinParam.getFont(fontParam, stereotype, false); + public UFont getFont(Stereotype stereotype, boolean inPackageTitle, FontParam... fontParam) { + return skinParam.getFont(stereotype, false, fontParam); } - public HtmlColor getFontHtmlColor(FontParam param, Stereotype stereotype) { - return skinParam.getFontHtmlColor(param, stereotype); + public HtmlColor getFontHtmlColor(Stereotype stereotype, FontParam... param) { + return skinParam.getFontHtmlColor(stereotype, param); } public HtmlColor getHtmlColor(ColorParam param, Stereotype stereotype, boolean clickable) { @@ -97,8 +97,8 @@ return skinParam.getDotSplines(); } - public GraphvizLayoutStrategy getStrategy() { - return skinParam.getStrategy(); + public String getDotExecutable() { + return skinParam.getDotExecutable(); } public HorizontalAlignment getHorizontalAlignment(AlignParam param) { @@ -180,7 +180,7 @@ public Rankdir getRankdir() { return skinParam.getRankdir(); } - + public boolean useOctagonForActivity(Stereotype stereotype) { return skinParam.useOctagonForActivity(stereotype); } @@ -213,5 +213,28 @@ return skinParam.handwritten(); } + public String getSvgLinkTarget() { + return skinParam.getSvgLinkTarget(); + } + + public String getMonospacedFamily() { + return skinParam.getMonospacedFamily(); + } + + public Colors getColors(ColorParam param, Stereotype stereotype) { + return skinParam.getColors(param, stereotype); + } + + public int getTabSize() { + return skinParam.getTabSize(); + } + + public boolean shadowingForNote(Stereotype stereotype) { + return shadowingForNote(stereotype); + } + + public int maxAsciiMessageLength() { + return skinParam.maxAsciiMessageLength(); + } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SkinParamForceColor.java plantuml-8039/src/net/sourceforge/plantuml/SkinParamForceColor.java --- plantuml-8024/src/net/sourceforge/plantuml/SkinParamForceColor.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SkinParamForceColor.java 2016-04-22 16:26:31.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml; + +import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.HtmlColor; + +public class SkinParamForceColor extends SkinParamDelegator { + + final private ColorParam colorParam;; + final private HtmlColor color; + + public SkinParamForceColor(ISkinParam skinParam, ColorParam colorParam, HtmlColor color) { + super(skinParam); + this.color = color; + this.colorParam = colorParam; + } + + @Override + public HtmlColor getHtmlColor(ColorParam param, Stereotype stereotype, boolean clickable) { + if (colorParam == param) { + return color; + } + // return color; + return super.getHtmlColor(param, stereotype, clickable); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SkinParamForecolored.java plantuml-8039/src/net/sourceforge/plantuml/SkinParamForecolored.java --- plantuml-8024/src/net/sourceforge/plantuml/SkinParamForecolored.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SkinParamForecolored.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,7 @@ */ package net.sourceforge.plantuml; +import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.graphic.HtmlColor; public class SkinParamForecolored extends SkinParamDelegator { @@ -45,7 +46,8 @@ this.forecolor = forecolor; } - public HtmlColor getHtmlColor(ColorParam param, String stereotype, boolean clickable) { + @Override + public HtmlColor getHtmlColor(ColorParam param, Stereotype stereotype, boolean clickable) { return forecolor; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SkinParam.java plantuml-8039/src/net/sourceforge/plantuml/SkinParam.java --- plantuml-8024/src/net/sourceforge/plantuml/SkinParam.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SkinParam.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -46,40 +46,47 @@ import java.util.regex.Pattern; import net.sourceforge.plantuml.command.regex.MyPattern; +import net.sourceforge.plantuml.creole.CommandCreoleMonospaced; import net.sourceforge.plantuml.cucadiagram.Rankdir; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.cucadiagram.dot.DotSplines; -import net.sourceforge.plantuml.cucadiagram.dot.GraphvizLayoutStrategy; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.HtmlColorSetSimple; import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.IHtmlColorSet; import net.sourceforge.plantuml.graphic.SkinParameter; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.svek.ConditionStyle; import net.sourceforge.plantuml.svek.PackageStyle; import net.sourceforge.plantuml.ugraphic.ColorMapper; import net.sourceforge.plantuml.ugraphic.ColorMapperIdentity; import net.sourceforge.plantuml.ugraphic.ColorMapperMonochrome; -import net.sourceforge.plantuml.ugraphic.Sprite; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UStroke; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; +import net.sourceforge.plantuml.ugraphic.sprite.SpriteImage; public class SkinParam implements ISkinParam { + private static final String stereoPatternString = "\\<\\<(.*?)\\>\\>"; + private static final Pattern stereoPattern = MyPattern.cmpile(stereoPatternString); + private final Map params = new HashMap(); private Rankdir rankdir = Rankdir.TOP_TO_BOTTOM; + private String dotExecutable; - public void setParam(String key, String value) { - params.put(cleanForKey(key), value.trim()); + public String getDotExecutable() { + return dotExecutable; } - private static final String stereoPatternString = "\\<\\<(.*?)\\>\\>"; - private static final Pattern stereoPattern = MyPattern.cmpile(stereoPatternString); + public void setDotExecutable(String dotExecutable) { + this.dotExecutable = dotExecutable; + } - // public SkinParam() { - // - // } + public void setParam(String key, String value) { + params.put(cleanForKey(key), StringUtils.trin(value)); + } public static SkinParam noShadowing() { final SkinParam result = new SkinParam(); @@ -87,14 +94,8 @@ return result; } - // public SkinParam(String type) { - // if (type == null) { - // setParam("shadowing", "false"); - // } - // } - static String cleanForKey(String key) { - key = StringUtils.goLowerCase(key).trim(); + key = StringUtils.trin(StringUtils.goLowerCase(key)); key = key.replaceAll("_|\\.|\\s", ""); key = replaceSmart(key, "partition", "package"); key = replaceSmart(key, "sequenceparticipant", "participant"); @@ -163,19 +164,36 @@ public HtmlColor getHtmlColor(ColorParam param, Stereotype stereotype, boolean clickable) { if (stereotype != null) { checkStereotype(stereotype); - final String value2 = getValue(param.name() + "color" + stereotype.getLabel(false)); - if (value2 != null && getIHtmlColorSet().getColorIfValid(value2) != null) { - return getIHtmlColorSet().getColorIfValid(value2); + for (String s : stereotype.getMultipleLabels()) { + final String value2 = getValue(param.name() + "color" + "<<" + s + ">>"); + if (value2 != null && getIHtmlColorSet().getColorIfValid(value2) != null) { + return getIHtmlColorSet().getColorIfValid(value2); + } } } final String value = getValue(getParamName(param, clickable)); - final boolean acceptTransparent = param == ColorParam.background; if (value == null) { return null; } + final boolean acceptTransparent = param == ColorParam.background; return getIHtmlColorSet().getColorIfValid(value, acceptTransparent); } + public Colors getColors(ColorParam param, Stereotype stereotype) { + if (stereotype != null) { + checkStereotype(stereotype); + final String value2 = getValue(param.name() + "color" + stereotype.getLabel(false)); + if (value2 != null && getIHtmlColorSet().getColorIfValid(value2) != null) { + return new Colors(value2, getIHtmlColorSet(), param.getColorType()); + } + } + final String value = getValue(getParamName(param, false)); + if (value == null) { + return Colors.empty(); + } + return new Colors(value, getIHtmlColorSet(), param.getColorType()); + } + private String getParamName(ColorParam param, boolean clickable) { String n = param.name(); if (clickable && n.endsWith("Background")) { @@ -192,78 +210,88 @@ // } } - private int getFontSize(FontParam param, Stereotype stereotype) { + private int getFontSize(Stereotype stereotype, FontParam... param) { if (stereotype != null) { checkStereotype(stereotype); - final String value2 = getValue(param.name() + "fontsize" + stereotype.getLabel(false)); + final String value2 = getFirstValueNonNullWithSuffix("fontsize" + stereotype.getLabel(false), param); if (value2 != null && value2.matches("\\d+")) { return Integer.parseInt(value2); } } - String value = getValue(param.name() + "fontsize"); + String value = getFirstValueNonNullWithSuffix("fontsize", param); if (value == null || value.matches("\\d+") == false) { value = getValue("defaultfontsize"); } if (value == null || value.matches("\\d+") == false) { - return param.getDefaultSize(this); + return param[0].getDefaultSize(this); } return Integer.parseInt(value); } - private String getFontFamily(FontParam param, Stereotype stereotype) { + private String getFontFamily(Stereotype stereotype, FontParam... param) { if (stereotype != null) { checkStereotype(stereotype); - final String value2 = getValue(param.name() + "fontname" + stereotype.getLabel(false)); + final String value2 = getFirstValueNonNullWithSuffix("fontname" + stereotype.getLabel(false), param); if (value2 != null) { return StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(value2); } } // Times, Helvetica, Courier or Symbol - String value = getValue(param.name() + "fontname"); + String value = getFirstValueNonNullWithSuffix("fontname", param); if (value != null) { return StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(value); } - if (param != FontParam.CIRCLED_CHARACTER) { + if (param[0] != FontParam.CIRCLED_CHARACTER) { value = getValue("defaultfontname"); if (value != null) { return StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(value); } } - return param.getDefaultFamily(); + return param[0].getDefaultFamily(); } - public HtmlColor getFontHtmlColor(FontParam param, Stereotype stereotype) { + public HtmlColor getFontHtmlColor(Stereotype stereotype, FontParam... param) { String value = null; if (stereotype != null) { checkStereotype(stereotype); - value = getValue(param.name() + "fontcolor" + stereotype.getLabel(false)); + value = getFirstValueNonNullWithSuffix("fontcolor" + stereotype.getLabel(false), param); } if (value == null || getIHtmlColorSet().getColorIfValid(value) == null) { - value = getValue(param.name() + "fontcolor"); + value = getFirstValueNonNullWithSuffix("fontcolor", param); } if (value == null || getIHtmlColorSet().getColorIfValid(value) == null) { value = getValue("defaultfontcolor"); } if (value == null || getIHtmlColorSet().getColorIfValid(value) == null) { - value = param.getDefaultColor(); + value = param[0].getDefaultColor(); } return getIHtmlColorSet().getColorIfValid(value); } - private int getFontStyle(FontParam param, Stereotype stereotype, boolean inPackageTitle) { + private String getFirstValueNonNullWithSuffix(String suffix, FontParam... param) { + for (FontParam p : param) { + final String v = getValue(p.name() + suffix); + if (v != null) { + return v; + } + } + return null; + } + + private int getFontStyle(Stereotype stereotype, boolean inPackageTitle, FontParam... param) { String value = null; if (stereotype != null) { checkStereotype(stereotype); - value = getValue(param.name() + "fontstyle" + stereotype.getLabel(false)); + value = getFirstValueNonNullWithSuffix("fontstyle" + stereotype.getLabel(false), param); } if (value == null) { - value = getValue(param.name() + "fontstyle"); + value = getFirstValueNonNullWithSuffix("fontstyle", param); } if (value == null) { value = getValue("defaultfontstyle"); } if (value == null) { - return param.getDefaultFontStyle(this, inPackageTitle); + return param[0].getDefaultFontStyle(this, inPackageTitle); } int result = Font.PLAIN; if (StringUtils.goLowerCase(value).contains("bold")) { @@ -275,13 +303,13 @@ return result; } - public UFont getFont(FontParam fontParam, Stereotype stereotype, boolean inPackageTitle) { + public UFont getFont(Stereotype stereotype, boolean inPackageTitle, FontParam... fontParam) { if (stereotype != null) { checkStereotype(stereotype); } - final String fontFamily = getFontFamily(fontParam, stereotype); - final int fontStyle = getFontStyle(fontParam, stereotype, inPackageTitle); - final int fontSize = getFontSize(fontParam, stereotype); + final String fontFamily = getFontFamily(stereotype, fontParam); + final int fontStyle = getFontStyle(stereotype, inPackageTitle, fontParam); + final int fontSize = getFontSize(stereotype, fontParam); return new UFont(fontFamily, fontStyle, fontSize); } @@ -293,7 +321,7 @@ // return 11; // Log.println("SIZE1="+getFontSize(FontParam.CIRCLED_CHARACTER)); // Log.println("SIZE1="+getFontSize(FontParam.CIRCLED_CHARACTER)/3); - return getFontSize(FontParam.CIRCLED_CHARACTER, null) / 3 + 6; + return getFontSize(null, FontParam.CIRCLED_CHARACTER) / 3 + 6; } public int classAttributeIconSize() { @@ -359,23 +387,6 @@ return DotSplines.SPLINES; } - public GraphvizLayoutStrategy getStrategy() { - final String value = getValue("layout"); - if ("neato".equalsIgnoreCase(value)) { - return GraphvizLayoutStrategy.NEATO; - } - if ("circo".equalsIgnoreCase(value)) { - return GraphvizLayoutStrategy.CIRCO; - } - if ("fdp".equalsIgnoreCase(value)) { - return GraphvizLayoutStrategy.FDP; - } - if ("twopi".equalsIgnoreCase(value)) { - return GraphvizLayoutStrategy.TWOPI; - } - return GraphvizLayoutStrategy.DOT; - } - public HorizontalAlignment getHorizontalAlignment(AlignParam param) { final String value; switch (param) { @@ -436,6 +447,21 @@ return true; } + public boolean shadowingForNote(Stereotype stereotype) { + if (stereotype != null) { + checkStereotype(stereotype); + final String value2 = getValue("note" + "shadowing" + stereotype.getLabel(false)); + if (value2 != null) { + return value2.equalsIgnoreCase("true"); + } + } + final String value2 = getValue("note" + "shadowing"); + if (value2 != null) { + return value2.equalsIgnoreCase("true"); + } + return shadowing(); + } + public boolean shadowing2(SkinParameter skinParameter) { if (skinParameter == null) { throw new IllegalArgumentException(); @@ -473,7 +499,11 @@ } public Sprite getSprite(String name) { - return sprites.get(name); + Sprite result = sprites.get(name); + if (result == null) { + result = SpriteImage.fromInternal(name); + } + return result; } public boolean useUml2ForComponent() { @@ -665,4 +695,36 @@ return false; } + public String getSvgLinkTarget() { + final String value = getValue("svglinktarget"); + if (value == null) { + return "_top"; + } + return value; + } + + public String getMonospacedFamily() { + final String value = getValue("defaultMonospacedFontName"); + if (value == null) { + return CommandCreoleMonospaced.MONOSPACED; + } + return value; + } + + public int getTabSize() { + final String value = getValue("tabsize"); + if (value != null && value.matches("\\d+")) { + return Integer.parseInt(value); + } + return 8; + } + + public int maxAsciiMessageLength() { + final String value = getValue("maxasciimessagelength"); + if (value != null && value.matches("\\d+")) { + return Integer.parseInt(value); + } + return -1; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SkinParamSameClassWidth.java plantuml-8039/src/net/sourceforge/plantuml/SkinParamSameClassWidth.java --- plantuml-8024/src/net/sourceforge/plantuml/SkinParamSameClassWidth.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SkinParamSameClassWidth.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,6 +43,7 @@ this.width = width; } + @Override public double minClassWidth() { return width; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SkinParamUtils.java plantuml-8039/src/net/sourceforge/plantuml/SkinParamUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/SkinParamUtils.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SkinParamUtils.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,15 +44,15 @@ private static final Rose rose = new Rose(); public static UFont getFont(ISkinParam skinParam, FontParam fontParam, Stereotype stereo) { - return skinParam.getFont(fontParam, stereo, false); + return skinParam.getFont(stereo, false, fontParam); } public static HtmlColor getFontColor(ISkinParam skinParam, FontParam fontParam, Stereotype stereo) { - return skinParam.getFontHtmlColor(fontParam, stereo); + return skinParam.getFontHtmlColor(stereo, fontParam); } public static HtmlColor getColor(ISkinParam skinParam, ColorParam colorParam, Stereotype stereo) { return rose.getHtmlColor(skinParam, colorParam, stereo); } - + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SourceFileReader2.java plantuml-8039/src/net/sourceforge/plantuml/SourceFileReader2.java --- plantuml-8024/src/net/sourceforge/plantuml/SourceFileReader2.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SourceFileReader2.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -50,6 +50,7 @@ import net.sourceforge.plantuml.code.TranscoderUtil; import net.sourceforge.plantuml.core.Diagram; import net.sourceforge.plantuml.preproc.Defines; +import net.sourceforge.plantuml.preproc.FileWithSuffix; public class SourceFileReader2 implements ISourceFileReader { @@ -70,7 +71,7 @@ FileSystem.getInstance().setCurrentDir(file.getAbsoluteFile().getParentFile()); builder = new BlockUmlBuilder(config, charset, defines, getReader(charset), file.getAbsoluteFile() - .getParentFile()); + .getParentFile(), file.getAbsolutePath()); } public boolean hasError() { @@ -95,7 +96,7 @@ for (File f : PSystemUtils.exportDiagrams(system, suggested, fileFormatOption)) { final String desc = "[" + file.getName() + "] " + system.getDescription(); - final GeneratedImage generatedImage = new GeneratedImage(f, desc, blockUml); + final GeneratedImage generatedImage = new GeneratedImageImpl(f, desc, blockUml); result.add(generatedImage); } @@ -130,7 +131,7 @@ this.fileFormatOption = fileFormatOption; } - public final Set getIncludedFiles() { + public final Set getIncludedFiles2() { return builder.getIncludedFiles(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SourceFileReader.java plantuml-8039/src/net/sourceforge/plantuml/SourceFileReader.java --- plantuml-8024/src/net/sourceforge/plantuml/SourceFileReader.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SourceFileReader.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,12 +34,14 @@ */ package net.sourceforge.plantuml; +import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; +import java.io.OutputStream; import java.io.PrintStream; import java.io.Reader; import java.io.UnsupportedEncodingException; @@ -52,6 +54,7 @@ import net.sourceforge.plantuml.code.TranscoderUtil; import net.sourceforge.plantuml.core.Diagram; import net.sourceforge.plantuml.preproc.Defines; +import net.sourceforge.plantuml.preproc.FileWithSuffix; public class SourceFileReader implements ISourceFileReader { @@ -99,7 +102,7 @@ this.outputDirectory = outputDirectory; builder = new BlockUmlBuilder(config, charset, defines, getReader(charset), file.getAbsoluteFile() - .getParentFile()); + .getParentFile(), file.getAbsolutePath()); } public boolean hasError() { @@ -111,6 +114,53 @@ return false; } + private File getDirIfDirectory(String newName) { + Log.info("Checking=" + newName); + if (endsWithSlashOrAntislash(newName)) { + Log.info("It ends with / so it looks like a directory"); + newName = newName.substring(0, newName.length() - 1); + File f = new File(newName); + Log.info("f=" + f); + if (f.isAbsolute() == false) { + Log.info("It's relative, so let's change it"); + f = new File(outputDirectory, newName); + Log.info("f=" + f); + } + if (f.exists() == false) { + Log.info("It does not exist: let's create it"); + try { + f.mkdirs(); + } catch (Exception e) { + Log.info("Error " + e); + } + if (f.exists() && f.isDirectory()) { + Log.info("Creation ok"); + return f; + } + Log.info("We cannot create it"); + } else if (f.isDirectory() == false) { + Log.info("It exists, but is not a directory: we ignore it"); + return null; + } + return f; + + } + File f = new File(newName); + Log.info("f=" + f); + if (f.isAbsolute() == false) { + Log.info("Relative, so let's change it"); + f = new File(outputDirectory, newName); + Log.info("f=" + f); + } + if (f.exists() && f.isDirectory()) { + Log.info("It's an existing directory"); + return f; + } + Log.info("It's not a directory"); + return null; + + } + public List getGeneratedImages() throws IOException { Log.info("Reading file: " + file); @@ -118,16 +168,46 @@ final List result = new ArrayList(); for (BlockUml blockUml : builder.getBlockUmls()) { - String newName = blockUml.getFilename(); - - if (newName == null) { + String newName = blockUml.getFileOrDirname(); + Log.info("name from block=" + newName); + File suggested = null; + if (newName != null) { + final File dir = getDirIfDirectory(newName); + if (dir == null) { + Log.info(newName + " is not taken as a directory"); + suggested = new File(outputDirectory, newName); + } else { + Log.info("We are going to create files in directory " + dir); + newName = fileFormatOption.getFileFormat().changeName(file.getName(), cpt++); + suggested = new File(dir, newName); + } + Log.info("We are going to put data in " + suggested); + } + if (suggested == null) { newName = fileFormatOption.getFileFormat().changeName(file.getName(), cpt++); + suggested = new File(outputDirectory, newName); } - - final File suggested = new File(outputDirectory, newName); suggested.getParentFile().mkdirs(); - final Diagram system = blockUml.getDiagram(); + final Diagram system; + try { + system = blockUml.getDiagram(); + } catch (Throwable t) { + final GeneratedImage image = new GeneratedImageImpl(suggested, "Crash Error", blockUml); + OutputStream os = null; + try { + os = new BufferedOutputStream(new FileOutputStream(suggested)); + UmlDiagram.exportDiagramError(os, t, fileFormatOption, null, blockUml.getFlashData(), + UmlDiagram.getFailureText2(t)); + } finally { + if (os != null) { + os.close(); + } + } + + return Collections.singletonList(image); + } + final List exportDiagrams = PSystemUtils.exportDiagrams(system, suggested, fileFormatOption); OptionFlags.getInstance().logData(file, system); @@ -143,7 +223,7 @@ ps.close(); } } - final GeneratedImage generatedImage = new GeneratedImage(f, desc, blockUml); + final GeneratedImage generatedImage = new GeneratedImageImpl(f, desc, blockUml); result.add(generatedImage); } @@ -154,6 +234,10 @@ return Collections.unmodifiableList(result); } + private boolean endsWithSlashOrAntislash(String newName) { + return newName.endsWith("/") || newName.endsWith("\\"); + } + public List getEncodedUrl() throws IOException { final List result = new ArrayList(); final Transcoder transcoder = TranscoderUtil.getDefaultTranscoder(); @@ -178,7 +262,7 @@ this.fileFormatOption = fileFormatOption; } - public final Set getIncludedFiles() { + public final Set getIncludedFiles() { return builder.getIncludedFiles(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SourceStringReader.java plantuml-8039/src/net/sourceforge/plantuml/SourceStringReader.java --- plantuml-8024/src/net/sourceforge/plantuml/SourceStringReader.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SourceStringReader.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -73,8 +73,7 @@ // WARNING GLOBAL LOCK HERE synchronized (SourceStringReader.class) { try { - final BlockUmlBuilder builder = new BlockUmlBuilder(config, charset, defines, new StringReader(source), - null); + final BlockUmlBuilder builder = new BlockUmlBuilder(config, charset, defines, new StringReader(source)); this.blocks = builder.getBlockUmls(); } catch (IOException e) { Log.error("error " + e); @@ -130,8 +129,8 @@ fileFormatOption.isUseRedForError()); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, error.getBackcolor(), null, null, 0, 0, null, false); - imageBuilder.addUDrawable(error); - imageBuilder.writeImageTOBEMOVED(fileFormatOption.getFileFormat(), os); + imageBuilder.setUDrawable(error); + imageBuilder.writeImageTOBEMOVED(fileFormatOption, os); } public DiagramDescription generateDiagramDescription(OutputStream os) throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SpecificBackcolorable.java plantuml-8039/src/net/sourceforge/plantuml/SpecificBackcolorable.java --- plantuml-8024/src/net/sourceforge/plantuml/SpecificBackcolorable.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SpecificBackcolorable.java 2016-04-22 16:26:31.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,12 +34,14 @@ */ package net.sourceforge.plantuml; -import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.color.Colors; public interface SpecificBackcolorable { - public HtmlColor getSpecificBackColor(); + public Colors getColors(ISkinParam skinParam); - public void setSpecificBackcolor(HtmlColor specificBackcolor); + // public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color); + + public void setColors(Colors colors); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SpriteContainerEmpty.java plantuml-8039/src/net/sourceforge/plantuml/SpriteContainerEmpty.java --- plantuml-8024/src/net/sourceforge/plantuml/SpriteContainerEmpty.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SpriteContainerEmpty.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,12 +34,16 @@ */ package net.sourceforge.plantuml; -import net.sourceforge.plantuml.ugraphic.Sprite; +import net.sourceforge.plantuml.creole.CommandCreoleMonospaced; +import net.sourceforge.plantuml.graphic.HtmlColorSetSimple; +import net.sourceforge.plantuml.graphic.IHtmlColorSet; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; +import net.sourceforge.plantuml.ugraphic.sprite.SpriteImage; public class SpriteContainerEmpty implements SpriteContainer, ISkinSimple { public Sprite getSprite(String name) { - return null; + return SpriteImage.fromInternal(name); } public String getValue(String key) { @@ -54,4 +58,16 @@ return false; } + public String getMonospacedFamily() { + return CommandCreoleMonospaced.MONOSPACED; + } + + public int getTabSize() { + return 8; + } + + public IHtmlColorSet getIHtmlColorSet() { + return new HtmlColorSetSimple(); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/SpriteContainer.java plantuml-8039/src/net/sourceforge/plantuml/SpriteContainer.java --- plantuml-8024/src/net/sourceforge/plantuml/SpriteContainer.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/SpriteContainer.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,7 +34,7 @@ */ package net.sourceforge.plantuml; -import net.sourceforge.plantuml.ugraphic.Sprite; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; public interface SpriteContainer { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandAddField.java plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandAddField.java --- plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandAddField.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandAddField.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -67,7 +67,7 @@ final IEntity entity = diagram.getOrCreateLeaf(Code.of(code), null, null); - entity.addFieldOrMethod(field); + entity.getBodier().addFieldOrMethod(field); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandConcurrentState.java plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandConcurrentState.java --- plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandConcurrentState.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandConcurrentState.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandCreatePackageState.java plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandCreatePackageState.java --- plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandCreatePackageState.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandCreatePackageState.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,7 +37,6 @@ import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; -import net.sourceforge.plantuml.classdiagram.command.CommandCreateClassMultilines; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand2; import net.sourceforge.plantuml.command.regex.RegexConcat; @@ -50,7 +49,10 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.IGroup; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.statediagram.StateDiagram; public class CommandCreatePackageState extends SingleLineCommand2 { @@ -73,11 +75,16 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("[%s]*"), // new RegexLeaf("LINECOLOR", "(?:##(?:\\[(dotted|dashed|bold)\\])?(\\w+)?)?"), // new RegexLeaf("(?:[%s]*\\{|[%s]+begin)$")); } + + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } + private String getNotNull(RegexResult arg, String v1, String v2) { if (arg.get(v1, 0) == null) { @@ -106,9 +113,21 @@ final Url url = urlBuilder.getUrl(urlString); p.addUrl(url); } - p.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); - p.setSpecificLineColor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1))); - CommandCreateClassMultilines.applyStroke(p, arg.get("LINECOLOR", 0)); + + Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); + + final HtmlColor lineColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1)); + if (lineColor != null) { + colors = colors.add(ColorType.LINE, lineColor); + } + if (arg.get("LINECOLOR", 0) != null) { + colors = colors.addLegacyStroke(arg.get("LINECOLOR", 0)); + } + p.setColors(colors); + +// p.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); +// p.setSpecificColorTOBEREMOVED(ColorType.LINE, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1))); +// p.applyStroke(arg.get("LINECOLOR", 0)); return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandCreateState.java plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandCreateState.java --- plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandCreateState.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandCreateState.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,7 +37,6 @@ import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.UrlBuilder; import net.sourceforge.plantuml.UrlBuilder.ModeUrl; -import net.sourceforge.plantuml.classdiagram.command.CommandCreateClassMultilines; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand2; import net.sourceforge.plantuml.command.regex.RegexConcat; @@ -49,7 +48,10 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.LeafType; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.color.ColorParser; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.statediagram.StateDiagram; public class CommandCreateState extends SingleLineCommand2 { @@ -78,7 +80,7 @@ new RegexLeaf("[%s]*"), // new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("COLOR", "(" + HtmlColorUtils.COLOR_REGEXP + ")?"), // + color().getRegex(), // new RegexLeaf("[%s]*"), // new RegexLeaf("LINECOLOR", "(?:##(?:\\[(dotted|dashed|bold)\\])?(\\w+)?)?"), // new RegexLeaf("[%s]*"), // @@ -86,6 +88,10 @@ new RegexLeaf("$")); } + private static ColorParser color() { + return ColorParser.simpleColor(ColorType.BACK); + } + @Override protected CommandExecutionResult executeArg(StateDiagram diagram, RegexResult arg) { final Code code = Code.of(arg.getLazzy("CODE", 0)); @@ -111,13 +117,27 @@ final Url url = urlBuilder.getUrl(urlString); ent.addUrl(url); } - ent.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); - ent.setSpecificLineColor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1))); - CommandCreateClassMultilines.applyStroke(ent, arg.get("LINECOLOR", 0)); + + Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()); + + final HtmlColor lineColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1)); + if (lineColor != null) { + colors = colors.add(ColorType.LINE, lineColor); + } + if (arg.get("LINECOLOR", 0) != null) { + colors = colors.addLegacyStroke(arg.get("LINECOLOR", 0)); + } + ent.setColors(colors); + + // ent.setSpecificColorTOBEREMOVED(ColorType.BACK, + // diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0))); + // ent.setSpecificColorTOBEREMOVED(ColorType.LINE, + // diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1))); + // ent.applyStroke(arg.get("LINECOLOR", 0)); final String addFields = arg.get("ADDFIELD", 0); if (addFields != null) { - ent.addFieldOrMethod(addFields); + ent.getBodier().addFieldOrMethod(addFields); } return CommandExecutionResult.ok(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandEndState.java plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandEndState.java --- plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandEndState.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandEndState.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandHideEmptyDescription.java plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandHideEmptyDescription.java --- plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandHideEmptyDescription.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandHideEmptyDescription.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandLinkState.java plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandLinkState.java --- plantuml-8024/src/net/sourceforge/plantuml/statediagram/command/CommandLinkState.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/statediagram/command/CommandLinkState.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.statediagram.command; import net.sourceforge.plantuml.Direction; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.classdiagram.command.CommandLinkClass; import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.command.SingleLineCommand2; @@ -49,8 +50,8 @@ import net.sourceforge.plantuml.cucadiagram.LinkDecor; import net.sourceforge.plantuml.cucadiagram.LinkType; import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.statediagram.StateDiagram; -import net.sourceforge.plantuml.StringUtils; public class CommandLinkState extends SingleLineCommand2 { @@ -67,17 +68,17 @@ new RegexLeaf("ARROW_CROSS_START", "(x)?"), // new RegexLeaf("ARROW_BODY1", "(-+)"), // new RegexLeaf("ARROW_STYLE1", - "(?:\\[((?:#\\w+|dotted|dashed|bold|hidden)(?:,#\\w+|,dotted|,dashed|,bold|,hidden)*)\\])?"), // + "(?:\\[((?:#\\w+|dotted|dashed|plain|bold|hidden)(?:,#\\w+|,dotted|,dashed|,plain|,bold|,hidden)*)\\])?"), // new RegexLeaf("ARROW_DIRECTION", "(left|right|up|down|le?|ri?|up?|do?)?"), // new RegexLeaf("ARROW_STYLE2", - "(?:\\[((?:#\\w+|dotted|dashed|bold|hidden)(?:,#\\w+|,dotted|,dashed|,bold|,hidden)*)\\])?"), // + "(?:\\[((?:#\\w+|dotted|dashed|plain|bold|hidden)(?:,#\\w+|,dotted|,dashed|,plain|,bold|,hidden)*)\\])?"), // new RegexLeaf("ARROW_BODY2", "(-*)"), // new RegexLeaf("\\>"), // new RegexLeaf("ARROW_CIRCLE_END", "(o[%s]+)?")), // new RegexLeaf("[%s]*"), // getStatePattern("ENT2"), // new RegexLeaf("[%s]*"), // - new RegexLeaf("LABEL", "(?::[%s]*([^%g]+))?"), // + new RegexLeaf("LABEL", "(?::[%s]*(.+))?"), // new RegexLeaf("$")); } @@ -107,13 +108,13 @@ cl1.setStereotype(new Stereotype(arg.get("ENT1", 1))); } if (arg.get("ENT1", 2) != null) { - cl1.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("ENT1", 2))); + cl1.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("ENT1", 2))); } if (arg.get("ENT2", 1) != null) { cl2.setStereotype(new Stereotype(arg.get("ENT2", 1))); } if (arg.get("ENT2", 2) != null) { - cl2.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("ENT2", 2))); + cl2.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("ENT2", 2))); } String queue = arg.get("ARROW_BODY1", 0) + arg.get("ARROW_BODY2", 0); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/statediagram/StateDiagramFactory.java plantuml-8039/src/net/sourceforge/plantuml/statediagram/StateDiagramFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/statediagram/StateDiagramFactory.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/statediagram/StateDiagramFactory.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -84,19 +84,20 @@ "ENTITY", new RegexLeaf("[\\p{L}0-9_.]+"), // new RegexLeaf("[%g][^%g]+[%g]") // )); - cmds.add(factoryNoteOnEntityCommand.createMultiLine()); + cmds.add(factoryNoteOnEntityCommand.createMultiLine(true)); + cmds.add(factoryNoteOnEntityCommand.createMultiLine(false)); cmds.add(new CommandHideEmptyDescription()); cmds.add(factoryNoteOnEntityCommand.createSingleLine()); final FactoryNoteOnLinkCommand factoryNoteOnLinkCommand = new FactoryNoteOnLinkCommand(); cmds.add(factoryNoteOnLinkCommand.createSingleLine()); - cmds.add(factoryNoteOnLinkCommand.createMultiLine()); + cmds.add(factoryNoteOnLinkCommand.createMultiLine(false)); cmds.add(new CommandUrl()); final FactoryNoteCommand factoryNoteCommand = new FactoryNoteCommand(); cmds.add(factoryNoteCommand.createSingleLine()); - cmds.add(factoryNoteCommand.createMultiLine()); + cmds.add(factoryNoteCommand.createMultiLine(false)); addCommonCommands(cmds); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/statediagram/StateDiagram.java plantuml-8039/src/net/sourceforge/plantuml/statediagram/StateDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/statediagram/StateDiagram.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/statediagram/StateDiagram.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,12 +43,13 @@ import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.IGroup; import net.sourceforge.plantuml.cucadiagram.LeafType; -import net.sourceforge.plantuml.cucadiagram.Rankdir; import net.sourceforge.plantuml.graphic.USymbol; import net.sourceforge.plantuml.utils.UniqueSequence; public class StateDiagram extends AbstractEntityDiagram { + private static final String CONCURRENT_PREFIX = "CONC"; + public boolean checkConcurrentStateOk(Code code) { if (leafExist(code) == false) { return true; @@ -122,12 +123,12 @@ super.endGroup(); } getCurrentGroup().setConcurrentSeparator(direction); - final IGroup conc1 = getOrCreateGroup(UniqueSequence.getCode("CONC"), Display.create(""), + final IGroup conc1 = getOrCreateGroup(UniqueSequence.getCode(CONCURRENT_PREFIX), Display.create(""), GroupType.CONCURRENT_STATE, getCurrentGroup()); if (EntityUtils.groupRoot(cur) == false && cur.getGroupType() == GroupType.STATE) { cur.moveEntitiesTo(conc1); super.endGroup(); - getOrCreateGroup(UniqueSequence.getCode("CONC"), Display.create(""), GroupType.CONCURRENT_STATE, + getOrCreateGroup(UniqueSequence.getCode(CONCURRENT_PREFIX), Display.create(""), GroupType.CONCURRENT_STATE, getCurrentGroup()); } // printlink("AFTER"); @@ -165,52 +166,5 @@ return hideEmptyDescription; } - // public Link isEntryPoint(IEntity ent) { - // final Stereotype stereotype = ent.getStereotype(); - // if (stereotype == null) { - // return null; - // } - // final String label = stereotype.getLabel(); - // if ("<>".equalsIgnoreCase(label) == false) { - // return null; - // } - // Link inLink = null; - // Link outLink = null; - // for (Link link : getLinks()) { - // if (link.getEntity1() == ent) { - // if (outLink != null) { - // return null; - // } - // outLink = link; - // } - // if (link.getEntity2() == ent) { - // if (inLink != null) { - // return null; - // } - // inLink = link; - // } - // } - // if (inLink == null || outLink == null) { - // return null; - // } - // final Link result = Link.mergeForEntryPoint(inLink, outLink); - // result.setEntryPoint(ent.getContainer()); - // return result; - // } - // - // public void manageExitAndEntryPoints() { - // for (IEntity ent : getEntities().values()) { - // final Link entryPointLink = isEntryPoint(ent); - // if (entryPointLink != null) { - // addLink(entryPointLink); - // for (Link link : new ArrayList(getLinks())) { - // if (link.contains(ent)) { - // removeLink(link); - // } - // } - // } - // } - // - // } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/StringUtils.java plantuml-8039/src/net/sourceforge/plantuml/StringUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/StringUtils.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/StringUtils.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,23 +36,18 @@ import java.awt.Color; import java.io.File; -import java.io.IOException; -import java.io.StringReader; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; -import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; import net.sourceforge.plantuml.command.regex.MyPattern; -import net.sourceforge.plantuml.cucadiagram.Code; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.HtmlColorTransparent; -import net.sourceforge.plantuml.preproc.ReadLineReader; -import net.sourceforge.plantuml.preproc.UncommentReadLine; import net.sourceforge.plantuml.ugraphic.ColorMapper; // Do not move @@ -62,11 +57,7 @@ return file.getAbsolutePath(); } - public static List getWithNewlines2(Code s) { - return getWithNewlines2(s.getFullName()); - } - - public static List getWithNewlines2(String s) { + public static List getWithNewlines(CharSequence s) { if (s == null) { return null; } @@ -93,17 +84,6 @@ return Collections.unmodifiableList(result); } - public static String getMergedLines(List strings) { - final StringBuilder sb = new StringBuilder(); - for (int i = 0; i < strings.size(); i++) { - sb.append(strings.get(i)); - if (i < strings.size() - 1) { - sb.append("\\n"); - } - } - return sb.toString(); - } - final static public List getSplit(Pattern pattern, String line) { final Matcher m = pattern.matcher(line); if (m.find() == false) { @@ -118,7 +98,7 @@ } public static boolean isNotEmpty(String input) { - return input != null && input.trim().length() > 0; + return input != null && trin(input).length() > 0; } public static boolean isNotEmpty(List input) { @@ -126,7 +106,7 @@ } public static boolean isEmpty(String input) { - return input == null || input.trim().length() == 0; + return input == null || trin(input).length() == 0; } public static String manageHtml(String s) { @@ -180,7 +160,7 @@ public static String capitalize(String s) { return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase(); } - + public static String goUpperCase(String s) { return s.toUpperCase(Locale.ENGLISH); } @@ -314,6 +294,10 @@ return '\u0006'; } + public static char hiddenNewLine() { + return '\u0009'; + } + public static String hideComparatorCharacters(String s) { s = s.replace('<', hiddenLesserThan()); s = s.replace('>', hiddenBiggerThan()); @@ -326,16 +310,6 @@ return s; } - public static int getWidth(List stringsToDisplay) { - int result = 1; - for (CharSequence s : stringsToDisplay) { - if (result < s.length()) { - result = s.length(); - } - } - return result; - } - public static int getWidth(Display stringsToDisplay) { int result = 1; for (CharSequence s : stringsToDisplay) { @@ -354,72 +328,8 @@ return stringsToDisplay.size(); } - private static void removeFirstColumn(List data) { - for (int i = 0; i < data.size(); i++) { - final String s = data.get(i); - if (s.length() > 0) { - data.set(i, s.substring(1)); - } - } - } - - private static boolean firstColumnRemovable(List data) { - boolean allEmpty = true; - for (String s : data) { - if (s.length() == 0) { - continue; - } - allEmpty = false; - final char c = s.charAt(0); - if (c != ' ' && c != '\t') { - return false; - } - } - return allEmpty == false; - } - - public static List removeEmptyColumns(List data) { - if (firstColumnRemovable(data) == false) { - return data; - } - final List result = new ArrayList(data); - do { - removeFirstColumn(result); - } while (firstColumnRemovable(result)); - return result; - } - - public static void trim(List data, boolean removeEmptyLines) { - for (int i = 0; i < data.size(); i++) { - final String s = data.get(i); - data.set(i, s.trim()); - } - if (removeEmptyLines) { - for (final Iterator it = data.iterator(); it.hasNext();) { - if (it.next().length() == 0) { - it.remove(); - } - } - } - } - - public static String uncommentSource(String source) { - final StringReader sr = new StringReader(source); - final UncommentReadLine un = new UncommentReadLine(new ReadLineReader(sr)); - final StringBuilder sb = new StringBuilder(); - String s = null; - try { - while ((s = un.readLine()) != null) { - sb.append(s); - sb.append('\n'); - } - } catch (IOException e) { - Log.error("Error " + e); - throw new IllegalStateException(e.toString()); - } - - sr.close(); - return sb.toString(); + private static boolean isSpaceOrTab(char c) { + return c == ' ' || c == '\t'; } public static boolean isDiagramCacheable(String uml) { @@ -440,7 +350,7 @@ } public static List splitComma(String s) { - s = s.trim(); + s = trin(s); // if (s.matches("([\\p{L}0-9_.]+|[%g][^%g]+[%g])(\\s*,\\s*([\\p{L}0-9_.]+|[%g][^%g]+[%g]))*") == false) { // throw new IllegalArgumentException(); // } @@ -481,10 +391,6 @@ return uid1 + String.format("%04d", uid2); } - public static boolean isMethod(String s) { - return s.contains("(") || s.contains(")"); - } - public static List merge(List l1, List l2) { final List result = new ArrayList(l1); result.addAll(l2); @@ -495,5 +401,85 @@ return s.endsWith("\\") && s.endsWith("\\\\") == false; } + public static String manageGuillemetStrict(String st) { + if (st.startsWith("<< ")) { + st = "\u00AB" + st.substring(3); + } else if (st.startsWith("<<")) { + st = "\u00AB" + st.substring(2); + } + if (st.endsWith(" >>")) { + st = st.substring(0, st.length() - 3) + "\u00BB"; + } else if (st.endsWith(">>")) { + st = st.substring(0, st.length() - 2) + "\u00BB"; + } + return st; + } + + public static String manageGuillemet(String st) { + return st.replaceAll("\\<\\<\\s?([^<>]+?)\\s?\\>\\>", "\u00AB$1\u00BB"); + } + + public static String manageUnicodeNotationUplus(String s) { + final Pattern pattern = Pattern.compile("\\"); + final Matcher matcher = pattern.matcher(s); + final StringBuffer result = new StringBuffer(); + while (matcher.find()) { + final String num = matcher.group(1); + final int value = Integer.parseInt(num, 16); + final char c = (char) value; + matcher.appendReplacement(result, "" + c); + } + matcher.appendTail(result); + return result.toString(); + } + + public static String manageAmpDiese(String s) { + final Pattern pattern = Pattern.compile("\\&#([0-9]+);"); + final Matcher matcher = pattern.matcher(s); + final StringBuffer result = new StringBuffer(); + while (matcher.find()) { + final String num = matcher.group(1); + final char c = (char) Integer.parseInt(num); + matcher.appendReplacement(result, "" + c); + } + matcher.appendTail(result); + return result.toString(); + } + + public static String manageTildeArobaseStart(String s) { + s = s.replaceAll("~@start", "@start"); + return s; + } + + public static String trinNoTrace(CharSequence s) { + return s.toString().trim(); + } + + public static String trin(CharSequence arg) { + if (arg.length() == 0) { + return arg.toString(); + } + int i = 0; + while (i < arg.length() && isSpaceOrTab(arg.charAt(i))) { + i++; + } + int j = arg.length() - 1; + while (j >= i && isSpaceOrTab(arg.charAt(j))) { + j--; + } + if (i == 0 && j == arg.length() - 1) { + return arg.toString(); + } + return arg.subSequence(i, j + 1).toString(); + } + + public static List splitHiddenNewLine(String s) { + return Arrays.asList(s.split("" + hiddenNewLine())); + } + + public static String manageNewLine(String string) { + return string.replace(hiddenNewLine(), '\n'); + } + // http://docs.oracle.com/javase/tutorial/i18n/format/dateFormat.html } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/suggest/SuggestEngine.java plantuml-8039/src/net/sourceforge/plantuml/suggest/SuggestEngine.java --- plantuml-8024/src/net/sourceforge/plantuml/suggest/SuggestEngine.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/suggest/SuggestEngine.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,116 +35,82 @@ package net.sourceforge.plantuml.suggest; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Iterator; import java.util.List; import net.sourceforge.plantuml.AbstractPSystem; -import net.sourceforge.plantuml.command.Command; +import net.sourceforge.plantuml.CharSequence2; +import net.sourceforge.plantuml.CharSequence2Impl; +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.command.BlocLines; import net.sourceforge.plantuml.command.CommandControl; -import net.sourceforge.plantuml.command.CommandExecutionResult; -import net.sourceforge.plantuml.command.ProtectedCommand; import net.sourceforge.plantuml.command.UmlDiagramFactory; import net.sourceforge.plantuml.core.UmlSource; import net.sourceforge.plantuml.utils.StartUtils; +import net.sourceforge.plantuml.version.IteratorCounter2; +import net.sourceforge.plantuml.version.IteratorCounter2Impl; final public class SuggestEngine { private final UmlDiagramFactory systemFactory; - private final Iterator it; - private final String startLine; - - private String current = ""; - private String previous = ""; + private final IteratorCounter2 it99; public SuggestEngine(UmlSource source, UmlDiagramFactory systemFactory) { this.systemFactory = systemFactory; - this.it = source.iterator(); - startLine = next(); + this.it99 = source.iterator2(); + final CharSequence startLine = it99.next(); if (StartUtils.isArobaseStartDiagram(startLine) == false) { throw new UnsupportedOperationException(); } } - private boolean hasNext() { - return it.hasNext(); - } - - private String next() { - // nb++; - this.previous = this.current; - this.current = it.next(); - return current; - } - public SuggestEngineResult tryToSuggest(AbstractPSystem system) { return executeUmlCommand(system); } private SuggestEngineResult executeUmlCommand(AbstractPSystem system) { - // systemFactory.init(startLine); - while (hasNext()) { - final String s = next(); - if (StartUtils.isArobaseEndDiagram(s)) { + while (it99.hasNext()) { + if (StartUtils.isArobaseEndDiagram(it99.peek())) { return SuggestEngineResult.SYNTAX_OK; } - final SuggestEngineResult check = checkAndCorrect(s); + final SuggestEngineResult check = checkAndCorrect(); if (check.getStatus() != SuggestEngineStatus.SYNTAX_OK) { return check; } - final CommandControl commandControl = systemFactory.isValid(Arrays.asList(s)); + final CommandControl commandControl = systemFactory.isValid2(it99); if (commandControl == CommandControl.OK_PARTIAL) { - final boolean ok = manageMultiline(s); - if (ok == false) { - return SuggestEngineResult.CANNOT_CORRECT; - } + systemFactory.goForwardMultiline(it99); + // if (ok == false) { + // return SuggestEngineResult.CANNOT_CORRECT; + // } } else if (commandControl == CommandControl.OK) { -// final Command cmd = new ProtectedCommand(systemFactory.createCommand(Arrays.asList(s))); -// final CommandExecutionResult result = cmd.execute(system, Arrays.asList(s)); -// if (result.isOk() == false) { -// return SuggestEngineResult.CANNOT_CORRECT; -// } + it99.next(); + // final Command cmd = new ProtectedCommand(systemFactory.createCommand(Arrays.asList(s))); + // final CommandExecutionResult result = cmd.execute(system, Arrays.asList(s)); + // if (result.isOk() == false) { + // return SuggestEngineResult.CANNOT_CORRECT; + // } } else { - assert false; + return SuggestEngineResult.CANNOT_CORRECT; } } - throw new IllegalStateException(); - } - - private boolean manageMultiline(final String init) { - final List lines = new ArrayList(); - lines.add(init); - while (hasNext()) { - final String s = next(); - if (StartUtils.isArobaseEndDiagram(s)) { - return false; - } - lines.add(s); - final CommandControl commandControl = systemFactory.isValid(lines); - if (commandControl == CommandControl.NOT_OK) { - throw new IllegalStateException(); - } - if (commandControl == CommandControl.OK) { - // final Command cmd = systemFactory.createCommand(lines); - // return cmd.execute(lines).isOk(); - return true; - } - } - return false; - + return SuggestEngineResult.CANNOT_CORRECT; + // throw new IllegalStateException(); } - SuggestEngineResult checkAndCorrect(final String incorrectLine) { - final CommandControl commandControl = systemFactory.isValid(Arrays.asList(incorrectLine)); + SuggestEngineResult checkAndCorrect() { + final CommandControl commandControl = systemFactory.isValid2(it99); if (commandControl != CommandControl.NOT_OK) { return SuggestEngineResult.SYNTAX_OK; } - if (incorrectLine.trim().startsWith("{") - && systemFactory.isValid(Arrays.asList(previous + " {")) != CommandControl.NOT_OK) { - return new SuggestEngineResult(previous + " {"); + final String incorrectLine = it99.peek().toString(); + + if (StringUtils.trin(incorrectLine).startsWith("{") + && systemFactory.isValid(BlocLines.single(it99.peekPrevious() + " {")) != CommandControl.NOT_OK) { + return new SuggestEngineResult(it99.peekPrevious() + " {"); } final Collection> all = new ArrayList>(); @@ -155,8 +121,8 @@ all.add(new VariatorAddOneCharBetweenWords(incorrectLine, ' ')); // all.add(new VariatorAddTwoChar(incorrectLine, '\"')); - for (Iterator it : all) { - final SuggestEngineResult result = tryThis(it); + for (Iterator it2 : all) { + final SuggestEngineResult result = tryThis(it2); if (result != null) { return result; } @@ -164,18 +130,30 @@ return SuggestEngineResult.CANNOT_CORRECT; } - private SuggestEngineResult tryThis(Iterator it) { - while (it.hasNext()) { - final String newS = it.next(); - if (newS.trim().length() == 0) { + private SuggestEngineResult tryThis(Iterator it2) { + while (it2.hasNext()) { + final String newS = it2.next(); + if (StringUtils.trin(newS).length() == 0) { continue; } - final CommandControl commandControl = systemFactory.isValid(Arrays.asList(newS)); - if (commandControl != CommandControl.NOT_OK) { + final CommandControl commandControl = systemFactory.isValid2(replaceFirstLine(newS)); + if (commandControl == CommandControl.OK) { return new SuggestEngineResult(newS); } } return null; + } + private IteratorCounter2 replaceFirstLine(String s) { + final List tmp = new ArrayList(); + tmp.add(new CharSequence2Impl(s, null)); + final Iterator it3 = it99.cloneMe(); + if (it3.hasNext()) { + it3.next(); + } + while (it3.hasNext()) { + tmp.add(new CharSequence2Impl(it3.next(), null)); + } + return new IteratorCounter2Impl(tmp); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/suggest/SuggestEngineResult.java plantuml-8039/src/net/sourceforge/plantuml/suggest/SuggestEngineResult.java --- plantuml-8024/src/net/sourceforge/plantuml/suggest/SuggestEngineResult.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/suggest/SuggestEngineResult.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,8 @@ */ package net.sourceforge.plantuml.suggest; +import net.sourceforge.plantuml.StringUtils; + public class SuggestEngineResult { @@ -78,7 +80,7 @@ } public SuggestEngineResult(String suggestedLine) { - if (suggestedLine.trim().length() == 0) { + if (StringUtils.trin(suggestedLine).length() == 0) { throw new IllegalArgumentException(); } this.status = SuggestEngineStatus.ONE_SUGGESTION; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/suggest/SuggestEngineStatus.java plantuml-8039/src/net/sourceforge/plantuml/suggest/SuggestEngineStatus.java --- plantuml-8024/src/net/sourceforge/plantuml/suggest/SuggestEngineStatus.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/suggest/SuggestEngineStatus.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorAddOneCharBetweenWords.java plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorAddOneCharBetweenWords.java --- plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorAddOneCharBetweenWords.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorAddOneCharBetweenWords.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorAddOneChar.java plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorAddOneChar.java --- plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorAddOneChar.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorAddOneChar.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorAddTwoChar.java plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorAddTwoChar.java --- plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorAddTwoChar.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorAddTwoChar.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorIteratorAdaptor.java plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorIteratorAdaptor.java --- plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorIteratorAdaptor.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorIteratorAdaptor.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/suggest/Variator.java plantuml-8039/src/net/sourceforge/plantuml/suggest/Variator.java --- plantuml-8024/src/net/sourceforge/plantuml/suggest/Variator.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/suggest/Variator.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorRemoveOneChar.java plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorRemoveOneChar.java --- plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorRemoveOneChar.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorRemoveOneChar.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorSwapChar.java plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorSwapChar.java --- plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorSwapChar.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorSwapChar.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorSwapLetter.java plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorSwapLetter.java --- plantuml-8024/src/net/sourceforge/plantuml/suggest/VariatorSwapLetter.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/suggest/VariatorSwapLetter.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/AbstractEntityImage.java plantuml-8039/src/net/sourceforge/plantuml/svek/AbstractEntityImage.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/AbstractEntityImage.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/AbstractEntityImage.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,14 +37,16 @@ import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; -public abstract class AbstractEntityImage implements IEntityImage { +public abstract class AbstractEntityImage extends AbstractTextBlock implements IEntityImage { private final IEntity entity; private final ISkinParam skinParam; public AbstractEntityImage(IEntity entity, ISkinParam skinParam) { + // System.err.println("Creating abstractEntityImage "+getClass()); if (entity == null) { throw new IllegalArgumentException("entity null"); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/AbstractExtremityFactory.java plantuml-8039/src/net/sourceforge/plantuml/svek/AbstractExtremityFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/AbstractExtremityFactory.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/AbstractExtremityFactory.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,10 +36,15 @@ import java.awt.geom.Point2D; +import net.sourceforge.plantuml.graphic.UDrawable; import net.sourceforge.plantuml.svek.extremity.ExtremityFactory; public abstract class AbstractExtremityFactory implements ExtremityFactory { + public UDrawable createUDrawable(Point2D p0, double angle) { + throw new UnsupportedOperationException(getClass().toString()); + } + protected double atan2(Point2D p1, Point2D p0) { double a = Math.atan2(p1.getY() - p0.getY(), p1.getX() - p0.getX()); if (a < 0) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/ArithmeticStrategy.java plantuml-8039/src/net/sourceforge/plantuml/svek/ArithmeticStrategy.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/ArithmeticStrategy.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/ArithmeticStrategy.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/ArithmeticStrategyMax.java plantuml-8039/src/net/sourceforge/plantuml/svek/ArithmeticStrategyMax.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/ArithmeticStrategyMax.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/ArithmeticStrategyMax.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/ArithmeticStrategySum.java plantuml-8039/src/net/sourceforge/plantuml/svek/ArithmeticStrategySum.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/ArithmeticStrategySum.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/ArithmeticStrategySum.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/Bibliotekon.java plantuml-8039/src/net/sourceforge/plantuml/svek/Bibliotekon.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/Bibliotekon.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/Bibliotekon.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -181,4 +181,22 @@ throw new IllegalArgumentException(); } + public IEntity getOnlyOther(IEntity entity) { + for (Line line : allLines) { + final IEntity other = line.getOther(entity); + if (other != null) { + return other; + } + } + return null; + } + + public ILeaf getLeaf(Shape shape) { + for (Map.Entry ent : shapeMap.entrySet()) { + if (ent.getValue() == shape) { + return ent.getKey(); + } + } + throw new IllegalArgumentException(); + } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/Boundary.java plantuml-8039/src/net/sourceforge/plantuml/svek/Boundary.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/Boundary.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/Boundary.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,19 +37,15 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.Dimension2DDouble; -import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.SymbolContext; -import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.ugraphic.UChangeBackColor; -import net.sourceforge.plantuml.ugraphic.UChangeColor; import net.sourceforge.plantuml.ugraphic.UEllipse; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UPath; -import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class Boundary implements TextBlock { +public class Boundary extends AbstractTextBlock { private final double margin = 4; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/CircleAndArrow.java plantuml-8039/src/net/sourceforge/plantuml/svek/CircleAndArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/CircleAndArrow.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/CircleAndArrow.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/CircleInterface2.java plantuml-8039/src/net/sourceforge/plantuml/svek/CircleInterface2.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/CircleInterface2.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/CircleInterface2.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; @@ -47,7 +48,7 @@ import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class CircleInterface2 implements TextBlock { +public class CircleInterface2 extends AbstractTextBlock implements TextBlock { private final double margin = 1; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/ClusterDecoration.java plantuml-8039/src/net/sourceforge/plantuml/svek/ClusterDecoration.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/ClusterDecoration.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/ClusterDecoration.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,45 +34,31 @@ */ package net.sourceforge.plantuml.svek; -import java.awt.geom.Dimension2D; - -import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.SymbolContext; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.graphic.USymbol; -import net.sourceforge.plantuml.ugraphic.UChangeBackColor; -import net.sourceforge.plantuml.ugraphic.UChangeColor; import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.ugraphic.ULine; -import net.sourceforge.plantuml.ugraphic.UPolygon; -import net.sourceforge.plantuml.ugraphic.URectangle; import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; public class ClusterDecoration { private final UStroke defaultStroke;// = new UStroke(2); - final private PackageStyle style; final private USymbol symbol; final private TextBlock title; final private TextBlock stereo; - final private HtmlColor stateBack; final private double minX; final private double minY; final private double maxX; final private double maxY; - public ClusterDecoration(PackageStyle style, USymbol symbol, TextBlock title, TextBlock stereo, - HtmlColor stateBack, double minX, double minY, double maxX, double maxY, UStroke stroke) { - this.symbol = symbol; - this.style = style; + public ClusterDecoration(PackageStyle style, USymbol symbol, TextBlock title, TextBlock stereo, double minX, + double minY, double maxX, double maxY, UStroke stroke) { + this.symbol = guess(symbol, style); this.stereo = stereo; this.title = title; - this.stateBack = stateBack; this.minX = minX; this.minY = minY; this.maxX = maxX; @@ -83,146 +69,11 @@ // } } - public void drawU(UGraphic ug, HtmlColor borderColor, boolean shadowing) { + private static USymbol guess(USymbol symbol, PackageStyle style) { if (symbol != null) { - final SymbolContext symbolContext = new SymbolContext(stateBack, borderColor).withShadow(shadowing) - .withStroke(defaultStroke); - symbol.asBig(title, stereo, maxX - minX, maxY - minY, symbolContext).drawU( - ug.apply(new UTranslate(minX, minY))); - // ug.getParam().resetStroke(); - return; - } - if (style == PackageStyle.NODE) { - drawWithTitleNode(ug, borderColor, shadowing); - } else if (style == PackageStyle.CARD) { - drawWithTitleCard(ug, borderColor, shadowing); - } else if (style == PackageStyle.DATABASE) { - drawWithTitleDatabase(ug, borderColor, shadowing); - } else if (style == PackageStyle.CLOUD) { - drawWithTitleCloud(ug, borderColor, shadowing); - } else if (style == PackageStyle.FRAME) { - drawWithTitleFrame(ug, borderColor, shadowing); - } else if (style == PackageStyle.RECT) { - drawWithTitleRect(ug, borderColor, shadowing); - } else { - drawWithTitleFolder(ug, borderColor, shadowing); + return symbol; } - } - - // Cloud - private void drawWithTitleCloud(UGraphic ug, HtmlColor borderColor, boolean shadowing) { - final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); - final double width = maxX - minX; - final double height = maxY - minY; - ug = ug.apply(new UChangeBackColor(stateBack)).apply(new UChangeColor(borderColor)); - ug = ug.apply(defaultStroke); - PackageStyle.CLOUD.drawU(ug.apply(new UTranslate(minX, minY)), new Dimension2DDouble(width, height), dimTitle, - shadowing); - ug = ug.apply(new UStroke()); - title.drawU(ug.apply(new UTranslate(minX + (width - dimTitle.getWidth()) / 2, minY + 10))); - - } - - // Database - private void drawWithTitleDatabase(UGraphic ug, HtmlColor borderColor, boolean shadowing) { - final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); - final double width = maxX - minX; - final double height = maxY - minY; - ug = ug.apply(defaultStroke); - ug = ug.apply(new UChangeBackColor(stateBack)).apply(new UChangeColor(borderColor)); - PackageStyle.DATABASE.drawU(ug.apply(new UTranslate(minX, minY - 10)), - new Dimension2DDouble(width, height + 10), dimTitle, shadowing); - ug = ug.apply(new UStroke()); - title.drawU(ug.apply(new UTranslate(minX + marginTitleX1, minY + 10))); - - } - - // Corner - private void drawWithTitleFrame(UGraphic ug, HtmlColor borderColor, boolean shadowing) { - final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); - final double width = maxX - minX; - final double height = maxY - minY; - ug = ug.apply(new UChangeBackColor(stateBack)).apply(new UChangeColor(borderColor)); - ug = ug.apply(defaultStroke); - PackageStyle.FRAME.drawU(ug.apply(new UTranslate(minX, minY)), new Dimension2DDouble(width, height), dimTitle, - shadowing); - ug = ug.apply(new UStroke()); - title.drawU(ug.apply(new UTranslate(minX + marginTitleX1, minY))); - - } - - // Card - private void drawWithTitleCard(UGraphic ug, HtmlColor borderColor, boolean shadowing) { - final double width = maxX - minX; - final double height = maxY - minY; - final SymbolContext ctx = new SymbolContext(stateBack, borderColor).withStroke(defaultStroke).withShadow( - shadowing); - USymbol.CARD.asBig(title, TextBlockUtils.empty(0, 0), width + 10, height, ctx).drawU( - ug.apply(new UTranslate(minX, minY))); - } - - // Node - private void drawWithTitleNode(UGraphic ug, HtmlColor borderColor, boolean shadowing) { - final double width = maxX - minX; - final double height = maxY - minY; - final SymbolContext ctx = new SymbolContext(stateBack, borderColor).withStroke(defaultStroke).withShadow( - shadowing); - USymbol.NODE.asBig(title, TextBlockUtils.empty(0, 0), width + 10, height, ctx).drawU( - ug.apply(new UTranslate(minX, minY))); - } - - // Folder - private UPolygon getSpecificFrontierForFolder(StringBounder stringBounder) { - final double width = maxX - minX; - final double height = maxY - minY; - final Dimension2D dimTitle = title.calculateDimension(stringBounder); - final double wtitle = dimTitle.getWidth() + marginTitleX1 + marginTitleX2; - final double htitle = dimTitle.getHeight() + marginTitleY1 + marginTitleY2; - final UPolygon shape = new UPolygon(); - shape.addPoint(0, 0); - shape.addPoint(wtitle, 0); - shape.addPoint(wtitle + marginTitleX3, htitle); - shape.addPoint(width, htitle); - shape.addPoint(width, height); - shape.addPoint(0, height); - shape.addPoint(0, 0); - return shape; - } - - private void drawWithTitleFolder(UGraphic ug, HtmlColor borderColor, boolean shadowing) { - final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); - final double wtitle = dimTitle.getWidth() + marginTitleX1 + marginTitleX2; - final double htitle = dimTitle.getHeight() + marginTitleY1 + marginTitleY2; - final UPolygon shape = getSpecificFrontierForFolder(ug.getStringBounder()); - if (shadowing) { - shape.setDeltaShadow(3.0); - } - - ug = ug.apply(new UChangeBackColor(stateBack)).apply(new UChangeColor(borderColor)); - ug = ug.apply(defaultStroke); - ug.apply(new UTranslate(minX, minY)).draw(shape); - ug.apply(new UTranslate(minX, minY + htitle)).draw(new ULine(wtitle + marginTitleX3, 0)); - ug = ug.apply(new UStroke()); - title.drawU(ug.apply(new UTranslate(minX + marginTitleX1, minY + marginTitleY1))); - } - - // Rect - private void drawWithTitleRect(UGraphic ug, HtmlColor borderColor, boolean shadowing) { - final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); - final double width = maxX - minX; - final double height = maxY - minY; - final URectangle shape = new URectangle(width, height); - if (shadowing) { - shape.setDeltaShadow(3.0); - } - - ug = ug.apply(new UChangeBackColor(stateBack)).apply(new UChangeColor(borderColor)); - ug = ug.apply(defaultStroke); - - ug.apply(new UTranslate(minX, minY)).draw(shape); - ug = ug.apply(new UStroke()); - final double deltax = width - dimTitle.getWidth(); - title.drawU(ug.apply(new UTranslate(minX + deltax / 2, minY + 5))); + return style.toUSymbol(); } public final static int marginTitleX1 = 3; @@ -232,4 +83,146 @@ public final static int marginTitleY1 = 3; public final static int marginTitleY2 = 3; + public void drawU(UGraphic ug, HtmlColor backColor, HtmlColor borderColor, boolean shadowing) { + final SymbolContext biColor = new SymbolContext(backColor, borderColor); + if (symbol == null) { + throw new UnsupportedOperationException(); + } + final SymbolContext symbolContext = biColor.withShadow(shadowing).withStroke(defaultStroke); + symbol.asBig(title, stereo, maxX - minX, maxY - minY, symbolContext) + .drawU(ug.apply(new UTranslate(minX, minY))); + // return; + // } + // if (style == PackageStyle.NODE) { + // drawWithTitleNode(ug, biColor, shadowing); + // } else if (style == PackageStyle.CARD) { + // drawWithTitleCard(ug, biColor, shadowing); + // } else if (style == PackageStyle.DATABASE) { + // drawWithTitleDatabase(ug, biColor, shadowing); + // } else if (style == PackageStyle.CLOUD) { + // drawWithTitleCloud(ug, biColor, shadowing); + // } else if (style == PackageStyle.FRAME) { + // drawWithTitleFrame(ug, biColor, shadowing); + // } else if (style == PackageStyle.RECT) { + // drawWithTitleRect(ug, biColor, shadowing); + // } else { + // throw new UnsupportedOperationException(); + // // drawWithTitleFolder(ug, biColor, shadowing); + // } + } + + // // Cloud + // private void drawWithTitleCloud(UGraphic ug, SymbolContext biColor, boolean shadowing) { + // final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); + // final double width = maxX - minX; + // final double height = maxY - minY; + // ug = biColor.applyColors(ug); + // ug = ug.apply(defaultStroke); + // PackageStyle.CLOUD.drawU(ug.apply(new UTranslate(minX, minY)), new Dimension2DDouble(width, height), dimTitle, + // shadowing); + // ug = ug.apply(new UStroke()); + // title.drawU(ug.apply(new UTranslate(minX + (width - dimTitle.getWidth()) / 2, minY + 10))); + // + // } + // + // // Database + // private void drawWithTitleDatabase(UGraphic ug, SymbolContext biColor, boolean shadowing) { + // final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); + // final double width = maxX - minX; + // final double height = maxY - minY; + // ug = ug.apply(defaultStroke); + // ug = biColor.applyColors(ug); + // PackageStyle.DATABASE.drawU(ug.apply(new UTranslate(minX, minY - 10)), + // new Dimension2DDouble(width, height + 10), dimTitle, shadowing); + // ug = ug.apply(new UStroke()); + // title.drawU(ug.apply(new UTranslate(minX + marginTitleX1, minY + 10))); + // + // } + // + // // Corner + // private void drawWithTitleFrame(UGraphic ug, SymbolContext biColor, boolean shadowing) { + // final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); + // final double width = maxX - minX; + // final double height = maxY - minY; + // ug = biColor.applyColors(ug); + // ug = ug.apply(defaultStroke); + // PackageStyle.FRAME.drawU(ug.apply(new UTranslate(minX, minY)), new Dimension2DDouble(width, height), dimTitle, + // shadowing); + // ug = ug.apply(new UStroke()); + // title.drawU(ug.apply(new UTranslate(minX + marginTitleX1, minY))); + // + // } + // + // // Card + // private void drawWithTitleCard(UGraphic ug, SymbolContext biColor, boolean shadowing) { + // final double width = maxX - minX; + // final double height = maxY - minY; + // final SymbolContext ctx = biColor.withStroke(defaultStroke).withShadow(shadowing); + // USymbol.CARD.asBig(title, TextBlockUtils.empty(0, 0), width + 10, height, ctx).drawU( + // ug.apply(new UTranslate(minX, minY))); + // } + // + // // Node + // private void drawWithTitleNode(UGraphic ug, SymbolContext biColor, boolean shadowing) { + // final double width = maxX - minX; + // final double height = maxY - minY; + // final SymbolContext ctx = biColor.withStroke(defaultStroke).withShadow(shadowing); + // USymbol.NODE.asBig(title, TextBlockUtils.empty(0, 0), width + 10, height, ctx).drawU( + // ug.apply(new UTranslate(minX, minY))); + // } + // + // // Folder + // private UPolygon getSpecificFrontierForFolder(StringBounder stringBounder) { + // final double width = maxX - minX; + // final double height = maxY - minY; + // final Dimension2D dimTitle = title.calculateDimension(stringBounder); + // final double wtitle = dimTitle.getWidth() + marginTitleX1 + marginTitleX2; + // final double htitle = dimTitle.getHeight() + marginTitleY1 + marginTitleY2; + // final UPolygon shape = new UPolygon(); + // shape.addPoint(0, 0); + // shape.addPoint(wtitle, 0); + // shape.addPoint(wtitle + marginTitleX3, htitle); + // shape.addPoint(width, htitle); + // shape.addPoint(width, height); + // shape.addPoint(0, height); + // shape.addPoint(0, 0); + // return shape; + // } + // + // private void drawWithTitleFolder(UGraphic ug, SymbolContext biColor, boolean shadowing) { + // final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); + // final double wtitle = dimTitle.getWidth() + marginTitleX1 + marginTitleX2; + // final double htitle = dimTitle.getHeight() + marginTitleY1 + marginTitleY2; + // final UPolygon shape = getSpecificFrontierForFolder(ug.getStringBounder()); + // if (shadowing) { + // shape.setDeltaShadow(3.0); + // } + // + // ug = biColor.applyColors(ug); + // ug = ug.apply(defaultStroke); + // ug.apply(new UTranslate(minX, minY)).draw(shape); + // ug.apply(new UTranslate(minX, minY + htitle)).draw(new ULine(wtitle + marginTitleX3, 0)); + // ug = ug.apply(new UStroke()); + // title.drawU(ug.apply(new UTranslate(minX + marginTitleX1, minY + marginTitleY1))); + // } + // + // // Rect + // private void drawWithTitleRect(UGraphic ug, SymbolContext biColor, boolean shadowing) { + // final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); + // final double width = maxX - minX; + // final double height = maxY - minY; + // final URectangle shape = new URectangle(width, height); + // if (shadowing) { + // shape.setDeltaShadow(3.0); + // } + // + // ug = biColor.applyColors(ug); + // ug = ug.apply(defaultStroke); + // + // ug.apply(new UTranslate(minX, minY)).draw(shape); + // ug = ug.apply(new UStroke()); + // final double deltax = width - dimTitle.getWidth(); + // title.drawU(ug.apply(new UTranslate(minX + deltax / 2, minY + 5))); + // } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/Cluster.java plantuml-8039/src/net/sourceforge/plantuml/svek/Cluster.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/Cluster.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/Cluster.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -51,6 +52,8 @@ import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.LineParam; +import net.sourceforge.plantuml.SkinParamUtils; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagramType; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.cucadiagram.EntityPosition; @@ -60,7 +63,6 @@ import net.sourceforge.plantuml.cucadiagram.Member; import net.sourceforge.plantuml.cucadiagram.MethodsOrFieldsArea; import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.cucadiagram.dot.DotData; import net.sourceforge.plantuml.cucadiagram.dot.GraphvizVersion; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.HtmlColorTransparent; @@ -69,6 +71,7 @@ import net.sourceforge.plantuml.graphic.TextBlockEmpty; import net.sourceforge.plantuml.graphic.TextBlockWidth; import net.sourceforge.plantuml.graphic.USymbol; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.posimo.Moveable; import net.sourceforge.plantuml.skin.rose.Rose; import net.sourceforge.plantuml.svek.image.EntityImageState; @@ -79,7 +82,6 @@ import net.sourceforge.plantuml.ugraphic.URectangle; import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; -import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.utils.UniqueSequence; public class Cluster implements Moveable { @@ -141,7 +143,7 @@ } this.color = colorSequence.getValue(); this.colorTitle = colorSequence.getValue(); - this.skinParam = skinParam; + this.skinParam = group.getColors(skinParam).mute(skinParam); } @Override @@ -198,12 +200,12 @@ return firsts; } - private List getShapesEntryExit(EntityPosition position) { + private List getShapesEntryExit(EnumSet positions) { final List result = new ArrayList(); for (final Iterator it = shapes.iterator(); it.hasNext();) { final Shape sh = it.next(); - if (sh.getEntityPosition() == position) { + if (positions.contains(sh.getEntityPosition())) { result.add(sh); } } @@ -291,16 +293,18 @@ this.yTitle = y; } - private static HtmlColor getColor(ColorParam colorParam, ISkinParam skinParam) { - return new Rose().getHtmlColor(skinParam, colorParam); + private static HtmlColor getColor(ColorParam colorParam, ISkinParam skinParam, Stereotype stereotype) { + return SkinParamUtils.getColor(skinParam, colorParam, stereotype); } - public void drawU(UGraphic ug, DotData dotData, UStroke stroke) { + public void drawU(UGraphic ug, UStroke stroke, final UmlDiagramType umlDiagramType, final ISkinParam skinParam2) { + + final Stereotype stereotype = group.getStereotype(); HtmlColor borderColor; - if (dotData.getUmlDiagramType() == UmlDiagramType.STATE) { - borderColor = getColor(ColorParam.stateBorder, dotData.getSkinParam()); + if (umlDiagramType == UmlDiagramType.STATE) { + borderColor = getColor(ColorParam.stateBorder, skinParam, stereotype); } else { - borderColor = getColor(ColorParam.packageBorder, dotData.getSkinParam()); + borderColor = getColor(ColorParam.packageBorder, skinParam, stereotype); } final Url url = group.getUrl99(); @@ -309,48 +313,47 @@ } try { if (hasEntryOrExitPoint()) { - manageEntryExitPoint(dotData, ug.getStringBounder()); + manageEntryExitPoint(ug.getStringBounder()); } - if (skinParam.useSwimlanes(dotData.getUmlDiagramType())) { - drawSwinLinesState(ug, borderColor, dotData); + if (skinParam.useSwimlanes(umlDiagramType)) { + drawSwinLinesState(ug, borderColor); return; } - final boolean isState = dotData.getUmlDiagramType() == UmlDiagramType.STATE; + final boolean isState = umlDiagramType == UmlDiagramType.STATE; if (isState) { - if (group.getSpecificLineStroke() != null) { - stroke = group.getSpecificLineStroke(); + if (group.getColors(skinParam).getSpecificLineStroke() != null) { + stroke = group.getColors(skinParam).getSpecificLineStroke(); } - if (group.getSpecificLineColor() != null) { - borderColor = group.getSpecificLineColor(); + if (group.getColors(skinParam).getColor(ColorType.LINE) != null) { + borderColor = group.getColors(skinParam).getColor(ColorType.LINE); } - drawUState(ug, borderColor, dotData, stroke); + drawUState(ug, borderColor, skinParam2, stroke); return; } PackageStyle style = group.getPackageStyle(); if (style == null) { - style = dotData.getSkinParam().getPackageStyle(); + style = skinParam2.getPackageStyle(); } if (border != null) { - final HtmlColor tmp = dotData.getSkinParam().getHtmlColor(border, null, false); + final HtmlColor tmp = skinParam2.getHtmlColor(border, group.getStereotype(), false); if (tmp != null) { borderColor = tmp; } } if (ztitle != null || zstereo != null) { - final HtmlColor stateBack = getStateBackColor(getBackColor(), dotData.getSkinParam(), - group.getStereotype()); + final HtmlColor back = getBackColor(getBackColor(), skinParam2, group.getStereotype()); final ClusterDecoration decoration = new ClusterDecoration(style, group.getUSymbol(), ztitle, zstereo, - stateBack, minX, minY, maxX, maxY, getStroke(dotData.getSkinParam(), group.getStereotype())); - decoration.drawU(ug, borderColor, dotData.getSkinParam().shadowing()); + minX, minY, maxX, maxY, getStroke(skinParam2, group.getStereotype())); + decoration.drawU(ug, back, borderColor, skinParam2.shadowing()); return; } final URectangle rect = new URectangle(maxX - minX, maxY - minY); - if (dotData.getSkinParam().shadowing()) { + if (skinParam2.shadowing()) { rect.setDeltaShadow(3.0); } - final HtmlColor stateBack = getStateBackColor(getBackColor(), dotData.getSkinParam(), group.getStereotype()); - ug = ug.apply(new UChangeBackColor(stateBack)).apply(new UChangeColor(borderColor)); + final HtmlColor backColor = getBackColor(getBackColor(), skinParam2, group.getStereotype()); + ug = ug.apply(new UChangeBackColor(backColor)).apply(new UChangeColor(borderColor)); ug.apply(new UStroke(2)).apply(new UTranslate(minX, minY)).draw(rect); } finally { @@ -369,7 +372,7 @@ return stroke; } - private void manageEntryExitPoint(DotData dotData, StringBounder stringBounder) { + public void manageEntryExitPoint(StringBounder stringBounder) { final Collection insides = new ArrayList(); final List points = new ArrayList(); for (Shape sh : shapes) { @@ -397,7 +400,7 @@ xTitle = minX + ((maxX - minX - widthTitle) / 2); } - private void drawSwinLinesState(UGraphic ug, HtmlColor borderColor, DotData dotData) { + private void drawSwinLinesState(UGraphic ug, HtmlColor borderColor) { if (ztitle != null) { ztitle.drawU(ug.apply(new UTranslate(xTitle, 0))); } @@ -408,11 +411,11 @@ } - private HtmlColor getColor(DotData dotData, ColorParam colorParam, Stereotype stereo) { - return new Rose().getHtmlColor(dotData.getSkinParam(), colorParam, stereo); + private HtmlColor getColor(ISkinParam skinParam, ColorParam colorParam, Stereotype stereo) { + return new Rose().getHtmlColor(skinParam, colorParam, stereo); } - private void drawUState(UGraphic ug, HtmlColor borderColor, DotData dotData, UStroke stroke) { + private void drawUState(UGraphic ug, HtmlColor borderColor, ISkinParam skinParam2, UStroke stroke) { final Dimension2D total = new Dimension2DDouble(maxX - minX, maxY - minY); final double suppY; if (ztitle == null) { @@ -424,14 +427,14 @@ HtmlColor stateBack = getBackColor(); if (stateBack == null) { - stateBack = getColor(dotData, ColorParam.stateBackground, group.getStereotype()); + stateBack = getColor(skinParam2, ColorParam.stateBackground, group.getStereotype()); } - final HtmlColor background = getColor(dotData, ColorParam.background, null); - final TextBlockWidth attribute = getTextBlockAttribute(dotData); + final HtmlColor background = getColor(skinParam2, ColorParam.background, null); + final TextBlockWidth attribute = getTextBlockAttribute(skinParam2); final double attributeHeight = attribute.calculateDimension(ug.getStringBounder()).getHeight(); final RoundedContainer r = new RoundedContainer(total, suppY, attributeHeight + (attributeHeight > 0 ? IEntityImage.MARGIN : 0), borderColor, stateBack, background, stroke); - r.drawU(ug.apply(new UTranslate(minX, minY)), dotData.getSkinParam().shadowing()); + r.drawU(ug.apply(new UTranslate(minX, minY)), skinParam2.shadowing()); if (ztitle != null) { ztitle.drawU(ug.apply(new UTranslate(xTitle, yTitle))); @@ -450,13 +453,13 @@ } - private TextBlockWidth getTextBlockAttribute(DotData dotData) { + private TextBlockWidth getTextBlockAttribute(ISkinParam skinParam) { final TextBlockWidth attribute; - final List members = group.getFieldsToDisplay(); + final List members = group.getBodier().getFieldsToDisplay(); if (members.size() == 0) { attribute = new TextBlockEmpty(); } else { - attribute = new MethodsOrFieldsArea(members, FontParam.STATE_ATTRIBUTE, dotData.getSkinParam()); + attribute = new MethodsOrFieldsArea(members, FontParam.STATE_ATTRIBUTE, skinParam, group.getStereotype()); } return attribute; } @@ -510,8 +513,7 @@ } public void printClusterEntryExit(StringBuilder sb, StringBounder stringBounder) { - // final List entries = getShapesEntryExit(EntityPosition.ENTRY_POINT); - final List shapesEntryExitList = getShapesEntryExit(EntityPosition.ENTRY_POINT); + final List shapesEntryExitList = getShapesEntryExit(EntityPosition.getInputs()); final double maxWith = getMaxWidthFromLabelForEntryExit(shapesEntryExitList, stringBounder); final double naturalSpace = 70; final List entries; @@ -530,7 +532,7 @@ sh.appendShape(sb); } } - final List exits = getShapesEntryExit(EntityPosition.EXIT_POINT); + final List exits = getShapesEntryExit(EntityPosition.getOutputs()); if (exits.size() > 0) { sb.append("{rank=sink;"); for (Shape sh : exits) { @@ -699,9 +701,8 @@ sb.append("style=solid;"); sb.append("color=\"" + StringUtils.getAsHtml(color) + "\";"); - final boolean isLabel = getTitleAndAttributeHeight() > 0 && getTitleAndAttributeWidth() > 0; final String label; - if (isLabel) { + if (isLabel()) { final StringBuilder sblabel = new StringBuilder("<"); Line.appendTable(sblabel, getTitleAndAttributeWidth(), getTitleAndAttributeHeight() - 5, colorTitle); sblabel.append(">"); @@ -770,6 +771,10 @@ SvekUtils.println(sb); } + public boolean isLabel() { + return getTitleAndAttributeHeight() > 0 && getTitleAndAttributeWidth() > 0; + } + private void subgraphCluster(StringBuilder sb, String id) { subgraphCluster(sb, id, "\"\""); } @@ -792,7 +797,7 @@ if (EntityUtils.groupRoot(group)) { return null; } - final HtmlColor result = group.getSpecificBackColor(); + final HtmlColor result = group.getColors(skinParam).getColor(ColorType.BACK); if (result != null) { return result; } @@ -816,17 +821,17 @@ return group == ent; } - public static HtmlColor getStateBackColor(HtmlColor stateBack, ISkinParam skinParam, Stereotype stereotype) { - if (stateBack == null) { - stateBack = skinParam.getHtmlColor(ColorParam.packageBackground, stereotype, false); + public static HtmlColor getBackColor(HtmlColor backColor, ISkinParam skinParam, Stereotype stereotype) { + if (backColor == null) { + backColor = skinParam.getHtmlColor(ColorParam.packageBackground, stereotype, false); } - if (stateBack == null) { - stateBack = skinParam.getHtmlColor(ColorParam.background, stereotype, false); + if (backColor == null) { + backColor = skinParam.getHtmlColor(ColorParam.background, stereotype, false); } - if (stateBack == null /* || stateBack instanceof HtmlColorTransparent */) { - stateBack = new HtmlColorTransparent(); + if (backColor == null /* || stateBack instanceof HtmlColorTransparent */) { + backColor = new HtmlColorTransparent(); } - return stateBack; + return backColor; } public double checkFolderPosition(Point2D pt, StringBounder stringBounder) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/ClusterPosition.java plantuml-8039/src/net/sourceforge/plantuml/svek/ClusterPosition.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/ClusterPosition.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/ClusterPosition.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/ColorSequence.java plantuml-8039/src/net/sourceforge/plantuml/svek/ColorSequence.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/ColorSequence.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/ColorSequence.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/ConditionStyle.java plantuml-8039/src/net/sourceforge/plantuml/svek/ConditionStyle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/ConditionStyle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/ConditionStyle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/Control.java plantuml-8039/src/net/sourceforge/plantuml/svek/Control.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/Control.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/Control.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.SymbolContext; @@ -49,7 +50,7 @@ import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class Control implements TextBlock { +public class Control extends AbstractTextBlock implements TextBlock { private final double margin = 4; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/CucaDiagramFileMaker.java plantuml-8039/src/net/sourceforge/plantuml/svek/CucaDiagramFileMaker.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/CucaDiagramFileMaker.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/CucaDiagramFileMaker.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek2InternalImage.java plantuml-8039/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek2InternalImage.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek2InternalImage.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek2InternalImage.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,6 +43,7 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.cucadiagram.ILeaf; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; @@ -53,7 +54,7 @@ import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; -public final class CucaDiagramFileMakerSvek2InternalImage implements IEntityImage { +public final class CucaDiagramFileMakerSvek2InternalImage extends AbstractTextBlock implements IEntityImage { private final List inners = new ArrayList(); private final Separator separator; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek2.java plantuml-8039/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek2.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek2.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek2.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -53,6 +53,7 @@ import net.sourceforge.plantuml.Pragma; import net.sourceforge.plantuml.SkinParamForecolored; import net.sourceforge.plantuml.SkinParamSameClassWidth; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagramType; import net.sourceforge.plantuml.core.UmlSource; import net.sourceforge.plantuml.cucadiagram.Display; @@ -86,6 +87,7 @@ import net.sourceforge.plantuml.graphic.TextBlockWidth; import net.sourceforge.plantuml.graphic.USymbol; import net.sourceforge.plantuml.graphic.USymbolInterface; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.svek.image.EntityImageActivity; import net.sourceforge.plantuml.svek.image.EntityImageArcCircle; import net.sourceforge.plantuml.svek.image.EntityImageAssociation; @@ -94,8 +96,8 @@ import net.sourceforge.plantuml.svek.image.EntityImageCircleEnd; import net.sourceforge.plantuml.svek.image.EntityImageCircleStart; import net.sourceforge.plantuml.svek.image.EntityImageClass; -import net.sourceforge.plantuml.svek.image.EntityImageComponent; -import net.sourceforge.plantuml.svek.image.EntityImageEmptyPackage2; +import net.sourceforge.plantuml.svek.image.EntityImageDescription; +import net.sourceforge.plantuml.svek.image.EntityImageEmptyPackage; import net.sourceforge.plantuml.svek.image.EntityImageGroup; import net.sourceforge.plantuml.svek.image.EntityImageLollipopInterface; import net.sourceforge.plantuml.svek.image.EntityImageLollipopInterfaceEye1; @@ -108,7 +110,9 @@ import net.sourceforge.plantuml.svek.image.EntityImageStateBorder; import net.sourceforge.plantuml.svek.image.EntityImageStateEmptyDescription; import net.sourceforge.plantuml.svek.image.EntityImageSynchroBar; +import net.sourceforge.plantuml.svek.image.EntityImageTips; import net.sourceforge.plantuml.svek.image.EntityImageUseCase; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; public final class CucaDiagramFileMakerSvek2 { @@ -122,8 +126,7 @@ static private final StringBounder stringBounder; static { - final EmptyImageBuilder builder = new EmptyImageBuilder(10, 10, Color.WHITE); - stringBounder = StringBounderUtils.asStringBounder(builder.getGraphics2D()); + stringBounder = StringBounderUtils.asStringBounder(); } public CucaDiagramFileMakerSvek2(DotData dotData, EntityFactory entityFactory, UmlSource source, Pragma pragma) { @@ -153,7 +156,6 @@ printGroups(dotData.getRootGroup()); printEntities(getUnpackagedEntities()); - for (Link link : dotData.getLinks()) { if (link.isRemoved()) { continue; @@ -162,22 +164,20 @@ final String shapeUid1 = getBibliotekon().getShapeUid((ILeaf) link.getEntity1()); final String shapeUid2 = getBibliotekon().getShapeUid((ILeaf) link.getEntity2()); - String ltail = null; + Cluster ltail = null; if (shapeUid1.startsWith(Cluster.CENTER_ID)) { // final Group g1 = ((IEntityMutable) // link.getEntity1()).getContainerOrEquivalent(); - ltail = getCluster2((IEntity) link.getEntity1()).getClusterId(); + ltail = getCluster2((IEntity) link.getEntity1()); } - String lhead = null; + Cluster lhead = null; if (shapeUid2.startsWith(Cluster.CENTER_ID)) { // final Group g2 = ((IEntityMutable) // link.getEntity2()).getContainerOrEquivalent(); - lhead = getCluster2((IEntity) link.getEntity2()).getClusterId(); + lhead = getCluster2((IEntity) link.getEntity2()); } final ISkinParam skinParam = dotData.getSkinParam(); - final FontConfiguration labelFont = new FontConfiguration(skinParam.getFont(FontParam.GENERIC_ARROW, - null, false), skinParam.getFontHtmlColor(FontParam.GENERIC_ARROW, null), - skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()); + final FontConfiguration labelFont = new FontConfiguration(skinParam, FontParam.GENERIC_ARROW, null); final Line line = new Line(shapeUid1, shapeUid2, link, colorSequence, ltail, lhead, skinParam, stringBounder, labelFont, getBibliotekon(), dotStringFactory.getGraphvizVersion(), @@ -188,13 +188,19 @@ if (link.getEntity1().isGroup() == false && link.getEntity1().getEntityType() == LeafType.NOTE && onlyOneLink(link.getEntity1())) { final Shape shape = getBibliotekon().getShape(link.getEntity1()); - ((EntityImageNote) shape.getImage()).setOpaleLine(line, shape); - line.setOpale(true); + final Shape other = getBibliotekon().getShape(link.getEntity2()); + if (other != null) { + ((EntityImageNote) shape.getImage()).setOpaleLine(line, shape, other); + line.setOpale(true); + } } else if (link.getEntity2().isGroup() == false && link.getEntity2().getEntityType() == LeafType.NOTE && onlyOneLink(link.getEntity2())) { final Shape shape = getBibliotekon().getShape(link.getEntity2()); - ((EntityImageNote) shape.getImage()).setOpaleLine(line, shape); - line.setOpale(true); + final Shape other = getBibliotekon().getShape(link.getEntity1()); + if (other != null) { + ((EntityImageNote) shape.getImage()).setOpaleLine(line, shape, other); + line.setOpale(true); + } } } catch (IllegalStateException e) { e.printStackTrace(); @@ -242,7 +248,7 @@ final Pattern pGraph = Pattern.compile("(?mi)!-- generated by graphviz(.*)"); final Matcher mGraph = pGraph.matcher(svg); if (mGraph.find()) { - return mGraph.group(1).trim(); + return StringUtils.trin(mGraph.group(1)); } return null; } @@ -336,9 +342,9 @@ } if (ent.getSvekImage() == null) { ISkinParam skinParam = dotData.getSkinParam(); - if (dotData.getSkinParam().sameClassWidth()) { + if (skinParam.sameClassWidth()) { final double width = getMaxWidth(); - skinParam = new SkinParamSameClassWidth(dotData.getSkinParam(), width); + skinParam = new SkinParamSameClassWidth(skinParam, width); } return createEntityImageBlock(ent, skinParam, dotData.isHideEmptyDescriptionForState(), dotData, @@ -389,7 +395,7 @@ final Cluster stateParent = bibliotekon.getCluster(leaf.getParentContainer()); return new EntityImageStateBorder(leaf, skinParam, stateParent, bibliotekon); } - if (isHideEmptyDescriptionForState && leaf.getFieldsToDisplay().size() == 0) { + if (isHideEmptyDescriptionForState && leaf.getBodier().getFieldsToDisplay().size() == 0) { return new EntityImageStateEmptyDescription(leaf, skinParam); } if (leaf.getStereotype() != null && "<>".equals(leaf.getStereotype().getLabel(false))) { @@ -424,7 +430,7 @@ } else if (OptionFlags.USE_INTERFACE_EYE2 && leaf.getUSymbol() instanceof USymbolInterface) { return new EntityImageLollipopInterfaceEye2(leaf, skinParam, portionShower); } else { - return new EntityImageComponent(leaf, skinParam, portionShower); + return new EntityImageDescription(leaf, skinParam, portionShower); } } if (leaf.getEntityType() == LeafType.USECASE) { @@ -450,10 +456,10 @@ } if (leaf.getEntityType() == LeafType.EMPTY_PACKAGE) { if (leaf.getUSymbol() != null) { - return new EntityImageComponent(leaf, new SkinParamForecolored(skinParam, HtmlColorUtils.BLACK), + return new EntityImageDescription(leaf, new SkinParamForecolored(skinParam, HtmlColorUtils.BLACK), portionShower); } - return new EntityImageEmptyPackage2(leaf, skinParam); + return new EntityImageEmptyPackage(leaf, skinParam); } if (leaf.getEntityType() == LeafType.ASSOCIATION) { return new EntityImageAssociation(leaf, skinParam); @@ -461,6 +467,9 @@ if (leaf.getEntityType() == LeafType.PSEUDO_STATE) { return new EntityImagePseudoState(leaf, skinParam); } + if (leaf.getEntityType() == LeafType.TIPS) { + return new EntityImageTips(leaf, skinParam, bibliotekon); + } throw new UnsupportedOperationException(leaf.getEntityType().toString()); } @@ -484,12 +493,15 @@ g.getParentContainer(), null, dotData.getNamespaceSeparator()); final USymbol symbol = g.getUSymbol(); folder.setUSymbol(symbol); - if (g.getSpecificBackColor() == null) { + folder.setStereotype(g.getStereotype()); + if (g.getColors(dotData.getSkinParam()).getColor(ColorType.BACK) == null) { final ColorParam param = symbol == null ? ColorParam.packageBackground : symbol.getColorParamBack(); final HtmlColor c1 = dotData.getSkinParam().getHtmlColor(param, g.getStereotype(), false); - folder.setSpecificBackcolor(c1 == null ? dotData.getSkinParam().getBackgroundColor() : c1); + folder.setSpecificColorTOBEREMOVED(ColorType.BACK, c1 == null ? dotData.getSkinParam() + .getBackgroundColor() : c1); } else { - folder.setSpecificBackcolor(g.getSpecificBackColor()); + folder.setSpecificColorTOBEREMOVED(ColorType.BACK, + g.getColors(dotData.getSkinParam()).getColor(ColorType.BACK)); } printEntity(folder); } else { @@ -510,12 +522,12 @@ final TextBlock stereoAndTitle = TextBlockUtils.mergeTB(stereo, title, HorizontalAlignment.CENTER); final Dimension2D dimLabel = stereoAndTitle.calculateDimension(stringBounder); if (dimLabel.getWidth() > 0) { - final List members = ((IEntity) g).getFieldsToDisplay(); + final List members = ((IEntity) g).getBodier().getFieldsToDisplay(); final TextBlockWidth attribute; if (members.size() == 0) { attribute = new TextBlockEmpty(); } else { - attribute = new MethodsOrFieldsArea(members, FontParam.STATE_ATTRIBUTE, dotData.getSkinParam()); + attribute = new MethodsOrFieldsArea(members, FontParam.STATE_ATTRIBUTE, dotData.getSkinParam(), g.getStereotype()); } final Dimension2D dimAttribute = attribute.calculateDimension(stringBounder); final double attributeHeight = dimAttribute.getHeight(); @@ -539,25 +551,27 @@ private TextBlock getTitleBlock(IGroup g) { final Display label = g.getDisplay(); - final Stereotype stereotype2 = g.getStereotype(); - if (label == null) { return TextBlockUtils.empty(0, 0); } - final FontParam fontParam = g.getTitleFontParam(); - return TextBlockUtils.create(label, - new FontConfiguration(dotData.getSkinParam().getFont(fontParam, stereotype2, true), dotData - .getSkinParam().getFontHtmlColor(fontParam, stereotype2), dotData.getSkinParam() - .getHyperlinkColor(), dotData.getSkinParam().useUnderlineForHyperlink()), - HorizontalAlignment.CENTER, dotData.getSkinParam()); + final ISkinParam skinParam = dotData.getSkinParam(); + final FontConfiguration fontConfiguration = g.getFontConfigurationForTitle(skinParam); + return label.create(fontConfiguration, HorizontalAlignment.CENTER, skinParam); } private TextBlock getStereoBlock(IGroup g) { - if (g.getStereotype() == null) { + final Stereotype stereotype = g.getStereotype(); + if (stereotype == null) { return TextBlockUtils.empty(0, 0); } - final List stereos = g.getStereotype().getLabels(dotData.getSkinParam().useGuillemet()); + if (stereotype.getSprite() != null) { + final Sprite tmp = dotData.getSkinParam().getSprite(stereotype.getSprite()); + if (tmp != null) { + return tmp.asTextBlock(stereotype.getHtmlColor(), 1); + } + } + final List stereos = stereotype.getLabels(dotData.getSkinParam().useGuillemet()); if (stereos == null) { return TextBlockUtils.empty(0, 0); } @@ -566,14 +580,8 @@ return TextBlockUtils.empty(0, 0); } - final Stereotype stereotype2 = g.getStereotype(); - - final FontParam fontParam = FontParam.COMPONENT_STEREOTYPE; - return TextBlockUtils.create(Display.create(stereos), - new FontConfiguration(dotData.getSkinParam().getFont(fontParam, stereotype2, false), dotData - .getSkinParam().getFontHtmlColor(fontParam, stereotype2), dotData.getSkinParam() - .getHyperlinkColor(), dotData.getSkinParam().useUnderlineForHyperlink()), + final FontParam fontParam = FontParam.PACKAGE_STEREOTYPE; + return Display.create(stereos).create(new FontConfiguration(dotData.getSkinParam(), fontParam, stereotype), HorizontalAlignment.CENTER, dotData.getSkinParam()); } - } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek.java plantuml-8039/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/CucaDiagramFileMakerSvek.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,29 +41,23 @@ import java.util.ArrayList; import java.util.List; +import net.sourceforge.plantuml.AnnotatedWorker; import net.sourceforge.plantuml.EmptyImageBuilder; -import net.sourceforge.plantuml.FileFormat; import net.sourceforge.plantuml.FileFormatOption; import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.Scale; import net.sourceforge.plantuml.UmlDiagramType; -import net.sourceforge.plantuml.activitydiagram3.ftile.EntityImageLegend; import net.sourceforge.plantuml.core.ImageData; import net.sourceforge.plantuml.cucadiagram.CucaDiagram; -import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.Link; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.cucadiagram.dot.CucaDiagramSimplifierActivity; import net.sourceforge.plantuml.cucadiagram.dot.CucaDiagramSimplifierState; import net.sourceforge.plantuml.cucadiagram.dot.DotData; -import net.sourceforge.plantuml.graphic.FontConfiguration; -import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.StringBounderUtils; -import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.ugraphic.ImageBuilder; import net.sourceforge.plantuml.ugraphic.UFont; @@ -74,8 +68,7 @@ static private final StringBounder stringBounder; static { - final EmptyImageBuilder builder = new EmptyImageBuilder(10, 10, Color.WHITE); - stringBounder = StringBounderUtils.asStringBounder(builder.getGraphics2D()); + stringBounder = StringBounderUtils.asStringBounder(); } public CucaDiagramFileMakerSvek(CucaDiagram diagram) throws IOException { @@ -117,11 +110,7 @@ svek2 = buildCucaDiagramFileMakerSvek2(DotMode.NO_LEFT_RIGHT); result = svek2.createFile(diagram.getDotStringSkek()); } - result = addLegend(result); - result = addTitle(result); - result = addHeaderAndFooter(result); - - final FileFormat fileFormat = fileFormatOption.getFileFormat(); + result = new AnnotatedWorker(diagram, diagram.getSkinParam()).addAdd(result); final String widthwarning = diagram.getSkinParam().getValue("widthwarning"); if (widthwarning != null && widthwarning.matches("\\d+")) { @@ -135,8 +124,8 @@ final ImageBuilder imageBuilder = new ImageBuilder(diagram.getSkinParam().getColorMapper(), scale, result.getBackcolor(), fileFormatOption.isWithMetadata() ? diagram.getMetadata() : null, warningOrError, 0, 10, diagram.getAnimation(), diagram.getSkinParam().handwritten()); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat, os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormatOption, os); } @@ -172,56 +161,14 @@ return warningOrError; } - private TextBlockBackcolored addHeaderAndFooter(TextBlockBackcolored original) { - final Display footer = diagram.getFooter(); - final Display header = diagram.getHeader(); - if (footer == null && header == null) { - return original; - } - final TextBlock textFooter = footer == null ? null : TextBlockUtils.create(footer, new FontConfiguration( - getFont(FontParam.FOOTER), getFontColor(FontParam.FOOTER, null), diagram.getSkinParam() - .getHyperlinkColor(), diagram.getSkinParam().useUnderlineForHyperlink()), diagram - .getFooterAlignment(), diagram.getSkinParam()); - final TextBlock textHeader = header == null ? null : TextBlockUtils.create(header, new FontConfiguration( - getFont(FontParam.HEADER), getFontColor(FontParam.HEADER, null), diagram.getSkinParam() - .getHyperlinkColor(), diagram.getSkinParam().useUnderlineForHyperlink()), diagram - .getHeaderAlignment(), diagram.getSkinParam()); - - return new DecorateEntityImage(original, textHeader, diagram.getHeaderAlignment(), textFooter, - diagram.getFooterAlignment()); - } - - private TextBlockBackcolored addTitle(TextBlockBackcolored original) { - final Display title = diagram.getTitle(); - if (title == null) { - return original; - } - final TextBlock text = TextBlockUtils.create(title, new FontConfiguration(getFont(FontParam.TITLE), - getFontColor(FontParam.TITLE, null), diagram.getSkinParam().getHyperlinkColor(), diagram.getSkinParam() - .useUnderlineForHyperlink()), HorizontalAlignment.CENTER, diagram.getSkinParam()); - - return DecorateEntityImage.addTop(original, text, HorizontalAlignment.CENTER); - } - - private TextBlockBackcolored addLegend(TextBlockBackcolored original) { - final Display legend = diagram.getLegend(); - if (legend == null) { - return original; - } - final TextBlock text = EntityImageLegend.create(legend, diagram.getSkinParam()); - - return DecorateEntityImage.add(original, text, diagram.getLegendAlignment(), - diagram.getLegendVerticalAlignment()); - } - private final UFont getFont(FontParam fontParam) { final ISkinParam skinParam = diagram.getSkinParam(); - return skinParam.getFont(fontParam, null, false); + return skinParam.getFont(null, false, fontParam); } private final HtmlColor getFontColor(FontParam fontParam, Stereotype stereo) { final ISkinParam skinParam = diagram.getSkinParam(); - return skinParam.getFontHtmlColor(fontParam, stereo); + return skinParam.getFontHtmlColor(stereo, fontParam); } private double getScale(FileFormatOption fileFormatOption, final Dimension2D dim) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/DecorateEntityImage3.java plantuml-8039/src/net/sourceforge/plantuml/svek/DecorateEntityImage3.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/DecorateEntityImage3.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/DecorateEntityImage3.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,12 +36,13 @@ import java.awt.geom.Dimension2D; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.ugraphic.UGraphic; -public class DecorateEntityImage3 implements TextBlockBackcolored { +public class DecorateEntityImage3 extends AbstractTextBlock implements TextBlockBackcolored { private final TextBlock original; private final HtmlColor color; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/DecorateEntityImage.java plantuml-8039/src/net/sourceforge/plantuml/svek/DecorateEntityImage.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/DecorateEntityImage.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/DecorateEntityImage.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; @@ -45,7 +46,7 @@ import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class DecorateEntityImage implements TextBlockBackcolored { +public class DecorateEntityImage extends AbstractTextBlock implements TextBlockBackcolored { private final TextBlock original; private final HorizontalAlignment horizontal1; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/DecorateTextBlock.java plantuml-8039/src/net/sourceforge/plantuml/svek/DecorateTextBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/DecorateTextBlock.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/DecorateTextBlock.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,136 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.svek; - -import java.awt.geom.Dimension2D; - -import net.sourceforge.plantuml.Dimension2DDouble; -import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.StringBounder; -import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.ugraphic.UTranslate; - -public class DecorateTextBlock implements TextBlock { - - private final TextBlock original; - private final HorizontalAlignment horizontal1; - private final TextBlock text1; - private final HorizontalAlignment horizontal2; - private final TextBlock text2; - - private double deltaX; - private double deltaY; - - public DecorateTextBlock(TextBlock original, TextBlock text, HorizontalAlignment horizontal) { - this(original, text, horizontal, null, null); - } - - public DecorateTextBlock(TextBlock original, TextBlock text1, HorizontalAlignment horizontal1, TextBlock text2, - HorizontalAlignment horizontal2) { - this.original = original; - this.horizontal1 = horizontal1; - this.text1 = text1; - this.horizontal2 = horizontal2; - this.text2 = text2; - } - - public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final Dimension2D dimOriginal = original.calculateDimension(stringBounder); - final Dimension2D dimText1 = getTextDim(text1, stringBounder); - final Dimension2D dimText2 = getTextDim(text2, stringBounder); - final Dimension2D dimTotal = calculateDimension(stringBounder); - - final double yText1 = 0; - final double yImage = yText1 + dimText1.getHeight(); - final double yText2 = yImage + dimOriginal.getHeight(); - - final double xImage = (dimTotal.getWidth() - dimOriginal.getWidth()) / 2; - - if (text1 != null) { - final double xText1 = getTextX(dimText1, dimTotal, horizontal1); - text1.drawU(ug.apply(new UTranslate(xText1, yText1))); - } - original.drawU(ug.apply(new UTranslate(xImage, yImage))); - deltaX = xImage; - deltaY = yImage; - if (text2 != null) { - final double xText2 = getTextX(dimText2, dimTotal, horizontal2); - text2.drawU(ug.apply(new UTranslate(xText2, yText2))); - } - } - - private Dimension2D getTextDim(TextBlock text, StringBounder stringBounder) { - if (text == null) { - return new Dimension2DDouble(0, 0); - } - return text.calculateDimension(stringBounder); - } - - private double getTextX(final Dimension2D dimText, final Dimension2D dimTotal, HorizontalAlignment h) { - if (h == HorizontalAlignment.CENTER) { - return (dimTotal.getWidth() - dimText.getWidth()) / 2; - } else if (h == HorizontalAlignment.LEFT) { - return 0; - } else if (h == HorizontalAlignment.RIGHT) { - return dimTotal.getWidth() - dimText.getWidth(); - } else { - throw new IllegalStateException(); - } - } - - public Dimension2D calculateDimension(StringBounder stringBounder) { - final Dimension2D dimOriginal = original.calculateDimension(stringBounder); - final Dimension2D dimText = Dimension2DDouble.mergeTB(getTextDim(text1, stringBounder), - getTextDim(text2, stringBounder)); - return Dimension2DDouble.mergeTB(dimOriginal, dimText); - } - - private double getDeltaX() { - if (original instanceof DecorateTextBlock) { - return deltaX + ((DecorateTextBlock) original).deltaX; - } - return deltaX; - } - - private double getDeltaY() { - if (original instanceof DecorateTextBlock) { - return deltaY + ((DecorateTextBlock) original).deltaY; - } - return deltaY; - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/DotMode.java plantuml-8039/src/net/sourceforge/plantuml/svek/DotMode.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/DotMode.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/DotMode.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/DotStringFactory.java plantuml-8039/src/net/sourceforge/plantuml/svek/DotStringFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/DotStringFactory.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/DotStringFactory.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,11 +45,15 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.Log; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.UmlDiagramType; +import net.sourceforge.plantuml.cucadiagram.CucaDiagram; import net.sourceforge.plantuml.cucadiagram.IGroup; import net.sourceforge.plantuml.cucadiagram.Rankdir; import net.sourceforge.plantuml.cucadiagram.dot.DotData; +import net.sourceforge.plantuml.cucadiagram.dot.DotSplines; import net.sourceforge.plantuml.cucadiagram.dot.Graphviz; import net.sourceforge.plantuml.cucadiagram.dot.GraphvizUtils; import net.sourceforge.plantuml.cucadiagram.dot.GraphvizVersion; @@ -58,7 +62,6 @@ import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.posimo.Moveable; -import net.sourceforge.plantuml.StringUtils; public class DotStringFactory implements Moveable { @@ -70,15 +73,31 @@ private final Cluster root; private Cluster current; - private final DotData dotData; + private final UmlDiagramType umlDiagramType; + private final ISkinParam skinParam; + private final DotMode dotMode; private final StringBounder stringBounder; public DotStringFactory(ColorSequence colorSequence, StringBounder stringBounder, DotData dotData) { + this.skinParam = dotData.getSkinParam(); + this.umlDiagramType = dotData.getUmlDiagramType(); + this.dotMode = dotData.getDotMode(); + + this.colorSequence = colorSequence; + this.stringBounder = stringBounder; + this.root = new Cluster(colorSequence, skinParam, dotData.getRootGroup()); + this.current = root; + } + + public DotStringFactory(ColorSequence colorSequence, StringBounder stringBounder, CucaDiagram diagram) { + this.skinParam = diagram.getSkinParam(); + this.umlDiagramType = diagram.getUmlDiagramType(); + this.dotMode = DotMode.NORMAL; + this.colorSequence = colorSequence; - this.dotData = dotData; this.stringBounder = stringBounder; - this.root = new Cluster(colorSequence, dotData.getSkinParam(), dotData.getRootGroup()); + this.root = new Cluster(colorSequence, skinParam, diagram.getEntityFactory().getRootGroup()); this.current = root; } @@ -128,8 +147,8 @@ if (nodesep < getMinNodeSep()) { nodesep = getMinNodeSep(); } - if (dotData.getSkinParam().getNodesep() != 0) { - nodesep = dotData.getSkinParam().getNodesep(); + if (skinParam.getNodesep() != 0) { + nodesep = skinParam.getNodesep(); } final String nodesepInches = SvekUtils.pixelToInches(nodesep); // Log.println("nodesep=" + nodesepInches); @@ -137,8 +156,8 @@ if (ranksep < getMinRankSep()) { ranksep = getMinRankSep(); } - if (dotData.getSkinParam().getRanksep() != 0) { - ranksep = dotData.getSkinParam().getRanksep(); + if (skinParam.getRanksep() != 0) { + ranksep = skinParam.getRanksep(); } final String ranksepInches = SvekUtils.pixelToInches(ranksep); // Log.println("ranksep=" + ranksepInches); @@ -161,10 +180,21 @@ SvekUtils.println(sb); sb.append("searchsize=500;"); SvekUtils.println(sb); - sb.append("compound=true;"); - SvekUtils.println(sb); + // if (OptionFlags.USE_COMPOUND) { + // sb.append("compound=true;"); + // SvekUtils.println(sb); + // } + + final DotSplines dotSplines = skinParam.getDotSplines(); + if (dotSplines == DotSplines.POLYLINE) { + sb.append("splines=polyline;"); + SvekUtils.println(sb); + } else if (dotSplines == DotSplines.ORTHO) { + sb.append("splines=ortho;"); + SvekUtils.println(sb); + } - if (dotData.getSkinParam().getRankdir() == Rankdir.LEFT_TO_RIGHT) { + if (skinParam.getRankdir() == Rankdir.LEFT_TO_RIGHT) { sb.append("rankdir=LR;"); SvekUtils.println(sb); } @@ -176,7 +206,7 @@ line.appendLine(sb); } root.fillRankMin(rankMin); - root.printCluster2(sb, bibliotekon.allLines(), stringBounder, dotData.getDotMode(), getGraphvizVersion(), dotData.getUmlDiagramType()); + root.printCluster2(sb, bibliotekon.allLines(), stringBounder, dotMode, getGraphvizVersion(), umlDiagramType); printMinRanking(sb); for (Line line : bibliotekon.lines1()) { @@ -192,11 +222,11 @@ final List minPointCluster = new ArrayList(); final List maxPointCluster = new ArrayList(); for (Cluster cluster : bibliotekon.allCluster()) { - final String minPoint = cluster.getMinPoint(dotData.getUmlDiagramType()); + final String minPoint = cluster.getMinPoint(umlDiagramType); if (minPoint != null) { minPointCluster.add(minPoint); } - final String maxPoint = cluster.getMaxPoint(dotData.getUmlDiagramType()); + final String maxPoint = cluster.getMaxPoint(umlDiagramType); if (maxPoint != null) { maxPointCluster.add(maxPoint); } @@ -224,7 +254,7 @@ } private int getMinRankSep() { - if (dotData.getUmlDiagramType() == UmlDiagramType.ACTIVITY) { + if (umlDiagramType == UmlDiagramType.ACTIVITY) { // return 29; return 40; } @@ -232,7 +262,7 @@ } private int getMinNodeSep() { - if (dotData.getUmlDiagramType() == UmlDiagramType.ACTIVITY) { + if (umlDiagramType == UmlDiagramType.ACTIVITY) { // return 15; return 20; } @@ -240,7 +270,7 @@ } public GraphvizVersion getGraphvizVersion() { - final Graphviz graphviz = GraphvizUtils.create("foo;", "svg"); + final Graphviz graphviz = GraphvizUtils.create(skinParam, "foo;", "svg"); final File f = graphviz.getDotExe(); return GraphvizVersions.getInstance().getVersion(f); } @@ -253,7 +283,7 @@ SvekUtils.traceDotString(dotString); } - final Graphviz graphviz = GraphvizUtils.create(dotString, "svg"); + final Graphviz graphviz = GraphvizUtils.create(skinParam, dotString, "svg"); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final ProcessState state = graphviz.createFile3(baos); baos.close(); @@ -272,13 +302,13 @@ } public boolean illegalDotExe() { - final Graphviz graphviz = GraphvizUtils.create(null, "svg"); + final Graphviz graphviz = GraphvizUtils.create(skinParam, "svg"); final File dotExe = graphviz.getDotExe(); return dotExe == null || dotExe.isFile() == false || dotExe.canRead() == false; } public File getDotExe() { - final Graphviz graphviz = GraphvizUtils.create(null, "svg"); + final Graphviz graphviz = GraphvizUtils.create(skinParam, "svg"); return graphviz.getDotExe(); } @@ -299,7 +329,8 @@ for (Shape sh : bibliotekon.allShapes()) { int idx = svg.indexOf("" + sh.getUid() + ""); - if (sh.getType() == ShapeType.RECTANGLE || sh.getType() == ShapeType.DIAMOND) { + if (sh.getType() == ShapeType.RECTANGLE || sh.getType() == ShapeType.FOLDER + || sh.getType() == ShapeType.DIAMOND) { final List points = SvekUtils.extractPointsList(svg, idx, fullHeight); final double minX = SvekUtils.getMinX(points); final double minY = SvekUtils.getMinY(points); @@ -392,7 +423,7 @@ public void openCluster(IGroup g, int titleAndAttributeWidth, int titleAndAttributeHeight, TextBlock title, TextBlock stereo) { this.current = current.createChild(g, titleAndAttributeWidth, titleAndAttributeHeight, title, stereo, - colorSequence, dotData.getSkinParam()); + colorSequence, skinParam); bibliotekon.addCluster(this.current); } @@ -420,4 +451,8 @@ return bibliotekon; } + public ColorSequence getColorSequence() { + return colorSequence; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/EmptySvgException.java plantuml-8039/src/net/sourceforge/plantuml/svek/EmptySvgException.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/EmptySvgException.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/EmptySvgException.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/EntityDomain.java plantuml-8039/src/net/sourceforge/plantuml/svek/EntityDomain.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/EntityDomain.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/EntityDomain.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.awt.geom.Dimension2D; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.SymbolContext; import net.sourceforge.plantuml.graphic.TextBlock; @@ -45,7 +46,7 @@ import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class EntityDomain implements TextBlock { +public class EntityDomain extends AbstractTextBlock implements TextBlock { private final double margin = 4; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/EntityImageProtected.java plantuml-8039/src/net/sourceforge/plantuml/svek/EntityImageProtected.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/EntityImageProtected.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/EntityImageProtected.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,20 +35,27 @@ package net.sourceforge.plantuml.svek; import java.awt.geom.Dimension2D; +import java.awt.geom.Rectangle2D; import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.cucadiagram.dot.Neighborhood; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UTranslate; -public class EntityImageProtected implements IEntityImage, Untranslated { +public class EntityImageProtected extends AbstractTextBlock implements IEntityImage, Untranslated { private final IEntityImage orig; private final double border; private final Bibliotekon bibliotekon; private final Neighborhood neighborhood; + + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + throw new UnsupportedOperationException(); + } + public EntityImageProtected(IEntityImage orig, double border, Neighborhood neighborhood, Bibliotekon bibliotekon) { this.orig = orig; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrowAndCircle.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrowAndCircle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrowAndCircle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrowAndCircle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -47,10 +47,15 @@ class ExtremityArrowAndCircle extends Extremity { private UPolygon polygon = new UPolygon(); - // private final ULine line; private final Point2D contact; private final Point2D dest; private final double radius = 5; + + @Override + public Point2D somePoint() { + return contact; + } + public ExtremityArrowAndCircle(Point2D p1, double angle, Point2D center) { angle = manageround(angle); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrow.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrow.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrow.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -47,9 +47,33 @@ private UPolygon polygon = new UPolygon(); private final ULine line; private final Point2D contact; + + @Override + public Point2D somePoint() { + return contact; + } + public ExtremityArrow(Point2D p1, double angle, Point2D center) { angle = manageround(angle); + final int xContact = buildPolygon(); + polygon.rotate(angle + Math.PI / 2); + polygon = polygon.translate(p1.getX(), p1.getY()); + contact = new Point2D.Double(p1.getX() - xContact * Math.cos(angle + Math.PI / 2), p1.getY() - xContact + * Math.sin(angle + Math.PI / 2)); + this.line = new ULine(center.getX() - contact.getX(), center.getY() - contact.getY()); + } + + public ExtremityArrow(Point2D p0, double angle) { + this.line = null; + angle = manageround(angle); + buildPolygon(); + polygon.rotate(angle); + polygon = polygon.translate(p0.getX(), p0.getY()); + contact = p0; + } + + private int buildPolygon() { polygon.addPoint(0, 0); final int xAile = 9; final int yOuverture = 4; @@ -58,19 +82,16 @@ polygon.addPoint(-xContact, 0); polygon.addPoint(-xAile, yOuverture); polygon.addPoint(0, 0); - polygon.rotate(angle + Math.PI / 2); - polygon = polygon.translate(p1.getX(), p1.getY()); - contact = new Point2D.Double(p1.getX() - xContact * Math.cos(angle + Math.PI / 2), p1.getY() - xContact - * Math.sin(angle + Math.PI / 2)); - this.line = new ULine(center.getX() - contact.getX(), center.getY() - contact.getY()); + return xContact; } public void drawU(UGraphic ug) { ug = ug.apply(new UChangeBackColor(ug.getParam().getColor())); ug.draw(polygon); - if (line.getLength() > 2) { + if (line != null && line.getLength() > 2) { ug.apply(new UTranslate(contact.getX(), contact.getY())).draw(line); } } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircleConnect.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircleConnect.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircleConnect.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircleConnect.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -52,6 +52,11 @@ private final double radius2 = 10; private final double ortho; + @Override + public Point2D somePoint() { + return dest; + } + public ExtremityCircleConnect(Point2D p1, double ortho) { this.px = p1.getX() - radius; this.py = p1.getY() - radius; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircleCross.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircleCross.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircleCross.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircleCross.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -51,6 +51,11 @@ private final Point2D dest; private final double radius = 7; + @Override + public Point2D somePoint() { + return dest; + } + public ExtremityCircleCross(Point2D p1) { this.px = p1.getX() - radius; this.py = p1.getY() - radius; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircle.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityCircle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -48,6 +48,11 @@ private final Point2D dest; private final double radius = 6; + @Override + public Point2D somePoint() { + return dest; + } + public ExtremityCircle(Point2D p1) { this.dest = new Point2D.Double(p1.getX(), p1.getY()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityDiamond.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityDiamond.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityDiamond.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityDiamond.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,7 @@ import java.awt.geom.Point2D; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UPolygon; @@ -44,9 +45,17 @@ private UPolygon polygon = new UPolygon(); private final boolean fill; + private final Point2D contact; + + @Override + public Point2D somePoint() { + return contact; + } + public ExtremityDiamond(Point2D p1, double angle, boolean fill) { this.fill = fill; + this.contact = new Point2D.Double(p1.getX(), p1.getY()); angle = manageround(angle); polygon.addPoint(0, 0); final int xAile = 6; @@ -62,6 +71,8 @@ public void drawU(UGraphic ug) { if (fill) { ug = ug.apply(new UChangeBackColor(ug.getParam().getColor())); + } else { + ug = ug.apply(new UChangeBackColor(HtmlColorUtils.WHITE)); } ug.draw(polygon); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryArrowAndCircle.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryArrowAndCircle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryArrowAndCircle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryArrowAndCircle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryArrow.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryArrow.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryArrow.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryArrow.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,9 +41,14 @@ public class ExtremityFactoryArrow extends AbstractExtremityFactory implements ExtremityFactory { + public UDrawable createUDrawable(Point2D p0, double angle) { + return new ExtremityArrow(p0, angle); + } + public UDrawable createUDrawable(Point2D p0, Point2D p1, Point2D p2) { final double ortho = atan2(p0, p2); final Point2D center = new Point2D.Double((p0.getX() + p2.getX()) / 2, (p0.getY() + p2.getY()) / 2); return new ExtremityArrow(p1, ortho, center); } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircleConnect.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircleConnect.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircleConnect.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircleConnect.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircleCross.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircleCross.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircleCross.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircleCross.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircle.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryCircle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryDiamond.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryDiamond.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryDiamond.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryDiamond.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -43,9 +43,15 @@ private final boolean fill; + @Override + public UDrawable createUDrawable(Point2D p0, double angle) { + return new ExtremityDiamond(p0, angle - Math.PI / 2, fill); + } + public ExtremityFactoryDiamond(boolean fill) { this.fill = fill; } + public UDrawable createUDrawable(Point2D p0, Point2D p1, Point2D p2) { final double ortho = atan2(p0, p2); return new ExtremityDiamond(p1, ortho, fill); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactory.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactory.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactory.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,5 +41,7 @@ public interface ExtremityFactory { public UDrawable createUDrawable(Point2D p0, Point2D p1, Point2D p2); + + public UDrawable createUDrawable(Point2D p0, double angle); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryParenthesis.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryParenthesis.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryParenthesis.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryParenthesis.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryPlus.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryPlus.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryPlus.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryPlus.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,9 +41,14 @@ public class ExtremityFactoryPlus extends AbstractExtremityFactory implements ExtremityFactory { + @Override + public UDrawable createUDrawable(Point2D center, double angle) { + return ExtremityPlus.create(center, angle - Math.PI / 2); + } + public UDrawable createUDrawable(Point2D p0, Point2D p1, Point2D p2) { final double ortho = atan2(p0, p2); - return new ExtremityPlus(p1, ortho); + return ExtremityPlus.create(p1, ortho); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactorySquarre.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactorySquarre.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactorySquarre.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactorySquarre.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,6 +41,10 @@ public class ExtremityFactorySquarre extends AbstractExtremityFactory implements ExtremityFactory { + public UDrawable createUDrawable(Point2D p0, double angle) { + return new ExtremitySquarre(p0); + } + public UDrawable createUDrawable(Point2D p0, Point2D p1, Point2D p2) { // final double ortho = atan2(p0, p2); return new ExtremitySquarre(p1); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryTriangle.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryTriangle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryTriangle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityFactoryTriangle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/Extremity.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/Extremity.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/Extremity.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/Extremity.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,9 +34,11 @@ */ package net.sourceforge.plantuml.svek.extremity; +import java.awt.geom.Point2D; + import net.sourceforge.plantuml.graphic.UDrawable; -abstract class Extremity implements UDrawable { +public abstract class Extremity implements UDrawable { protected double manageround(double angle) { @@ -65,5 +67,7 @@ } return false; } + + public abstract Point2D somePoint(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityParenthesis2.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityParenthesis2.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityParenthesis2.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityParenthesis2.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -62,6 +62,12 @@ final double len = Math.round(distance1 + EntityImageLollipopInterfaceEye2.SIZE / 2); this.center = new Point2D.Double(contact.getX() + dx / distance1 * len, contact.getY() + dy / distance1 * len); } + + @Override + public Point2D somePoint() { + return contact; + } + public void drawU(UGraphic ug) { final double deg = -ortho * 180 / Math.PI + 90 - ang; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityParenthesis.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityParenthesis.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityParenthesis.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityParenthesis.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -53,6 +53,12 @@ this.dest = new Point2D.Double(p1.getX(), p1.getY()); this.ortho = ortho; } + + @Override + public Point2D somePoint() { + return dest; + } + public void drawU(UGraphic ug) { final double deg = -ortho * 180 / Math.PI + 90 - ang; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityPlus.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityPlus.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityPlus.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityPlus.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,6 +37,7 @@ import java.awt.geom.Point2D; import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.UDrawable; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UEllipse; import net.sourceforge.plantuml.ugraphic.UGraphic; @@ -48,14 +49,26 @@ private final UEllipse circle; private final double px; private final double py; - private final double radius = 8; + private static final double radius = 8; private final double angle; - public ExtremityPlus(Point2D p1, double angle) { + private ExtremityPlus(double x, double y, double angle) { this.angle = angle; this.circle = new UEllipse(2 * radius, 2 * radius); - this.px = p1.getX() - radius + radius * Math.sin(angle); - this.py = p1.getY() - radius - radius * Math.cos(angle); + this.px = x; + this.py = y; + } + + @Override + public Point2D somePoint() { + return new Point2D.Double(px, py); + } + + + public static UDrawable create(Point2D p1, double angle) { + final double x = p1.getX() - radius + radius * Math.sin(angle); + final double y = p1.getY() - radius - radius * Math.cos(angle); + return new ExtremityPlus(x, y, angle); } public void drawU(UGraphic ug) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremitySquarre.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremitySquarre.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremitySquarre.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremitySquarre.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -48,6 +48,11 @@ private final Point2D dest; private final double radius = 5; + @Override + public Point2D somePoint() { + return dest; + } + public ExtremitySquarre(Point2D p1) { this.dest = new Point2D.Double(p1.getX(), p1.getY()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityStateLine1.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityStateLine1.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityStateLine1.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityStateLine1.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -51,6 +51,12 @@ private final Point2D dest; private final double radius = 7; private final double angle; + + @Override + public Point2D somePoint() { + return dest; + } + public ExtremityStateLine1(double angle, Point2D center) { this.angle = manageround(angle); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityStateLine2.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityStateLine2.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityStateLine2.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityStateLine2.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -50,6 +50,12 @@ private final Point2D dest; private final double radius = 5; private final double angle; + + @Override + public Point2D somePoint() { + return dest; + } + public ExtremityStateLine2(double angle, Point2D center) { this.angle = manageround(angle); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityTriangle.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityTriangle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/ExtremityTriangle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/ExtremityTriangle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,9 +44,17 @@ private UPolygon polygon = new UPolygon(); private final boolean fill; + private final Point2D contact; + + @Override + public Point2D somePoint() { + return contact; + } + public ExtremityTriangle(Point2D p1, double angle, boolean fill) { this.fill = fill; + this.contact = new Point2D.Double(p1.getX(), p1.getY()); angle = manageround(angle); polygon.addPoint(0, 0); final int xAile = 8; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleCircleCircled.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleCircleCircled.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleCircleCircled.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleCircleCircled.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,8 @@ */ package net.sourceforge.plantuml.svek.extremity; +import java.awt.geom.Point2D; + import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; @@ -56,6 +58,12 @@ this.angle = angle; this.mode = mode; } + + @Override + public Point2D somePoint() { + return null; + } + public void drawU(UGraphic ug) { ug = ug.apply(new UChangeBackColor(HtmlColorUtils.WHITE)); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleCircleCircledMode.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleCircleCircledMode.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleCircleCircledMode.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleCircleCircledMode.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleCircle.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleCircle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleCircle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleCircle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,8 @@ */ package net.sourceforge.plantuml.svek.extremity; +import java.awt.geom.Point2D; + import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UEllipse; @@ -45,6 +47,12 @@ private final double radius = 6; private final UEllipse circle = new UEllipse(2 * radius, 2 * radius); + + @Override + public Point2D somePoint() { + return null; + } + public void drawU(UGraphic ug) { ug.apply(new UChangeBackColor(HtmlColorUtils.WHITE)).apply(new UStroke(1.5)).apply(new UTranslate(-radius, -radius)).draw(circle); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleFactoryCircleCircled.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleFactoryCircleCircled.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleFactoryCircleCircled.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleFactoryCircleCircled.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleFactoryCircle.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleFactoryCircle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleFactoryCircle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleFactoryCircle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleFactory.java plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/extremity/MiddleFactory.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/extremity/MiddleFactory.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/FrontierCalculator.java plantuml-8039/src/net/sourceforge/plantuml/svek/FrontierCalculator.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/FrontierCalculator.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/FrontierCalculator.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,11 +37,11 @@ import java.awt.geom.Point2D; import java.util.Collection; -import net.sourceforge.plantuml.svek.image.EntityImageStateBorder; +import net.sourceforge.plantuml.cucadiagram.EntityPosition; public class FrontierCalculator { - private static final double DELTA = 3 * EntityImageStateBorder.RADIUS; + private static final double DELTA = 3 * EntityPosition.RADIUS; private ClusterPosition core; private final ClusterPosition initial; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/GraphvizCrash.java plantuml-8039/src/net/sourceforge/plantuml/svek/GraphvizCrash.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/GraphvizCrash.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/GraphvizCrash.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,6 +45,7 @@ import net.sourceforge.plantuml.flashcode.FlashCodeFactory; import net.sourceforge.plantuml.flashcode.FlashCodeUtils; import net.sourceforge.plantuml.fun.IconLoader; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.GraphicPosition; import net.sourceforge.plantuml.graphic.GraphicStrings; import net.sourceforge.plantuml.graphic.HtmlColor; @@ -58,7 +59,7 @@ import net.sourceforge.plantuml.ugraphic.UTranslate; import net.sourceforge.plantuml.version.Version; -public class GraphvizCrash implements IEntityImage { +public class GraphvizCrash extends AbstractTextBlock implements IEntityImage { private static final UFont font = new UFont("SansSerif", Font.PLAIN, 12); @@ -90,7 +91,8 @@ strings.add("Cannot determine dot version: " + e.toString()); } strings.add(" "); - strings.add("You should send this diagram and this image to plantuml@gmail.com to solve this issue."); + strings.add("You should send this diagram and this image to plantuml@gmail.com or"); + strings.add("post to http://plantuml.com/qa to solve this issue."); strings.add("You can try to turn arround this issue by simplifing your diagram."); if (flashCode != null) { addDecodeHint(strings); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/GroupPngMakerActivity.java plantuml-8039/src/net/sourceforge/plantuml/svek/GroupPngMakerActivity.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/GroupPngMakerActivity.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/GroupPngMakerActivity.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -52,6 +52,7 @@ import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.cucadiagram.dot.DotData; import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.skin.rose.Rose; import net.sourceforge.plantuml.svek.image.EntityImageState; import net.sourceforge.plantuml.ugraphic.UFont; @@ -96,7 +97,7 @@ public IEntityImage getImage() throws IOException, InterruptedException { // final List display = group.getDisplay(); - // final TextBlock title = TextBlockUtils.create(display, new FontConfiguration( + // final TextBlock title = Display.create(display, new FontConfiguration( // getFont(FontParam.STATE), HtmlColorUtils.BLACK), HorizontalAlignment.CENTER, diagram.getSkinParam()); if (group.size() == 0) { @@ -117,8 +118,8 @@ if (group.getGroupType() == GroupType.INNER_ACTIVITY) { final Stereotype stereo = group.getStereotype(); final HtmlColor borderColor = getColor(ColorParam.activityBorder, stereo); - final HtmlColor backColor = group.getSpecificBackColor() == null ? getColor(ColorParam.background, stereo) - : group.getSpecificBackColor(); + final HtmlColor backColor = group.getColors(skinParam).getColor(ColorType.BACK) == null ? getColor( + ColorParam.background, stereo) : group.getColors(skinParam).getColor(ColorType.BACK); return new InnerActivity(svek2.createFile(), borderColor, backColor, skinParam.shadowing()); } @@ -128,7 +129,7 @@ private UFont getFont(FontParam fontParam) { final ISkinParam skinParam = diagram.getSkinParam(); - return skinParam.getFont(fontParam, null, false); + return skinParam.getFont(null, false, fontParam); } private final Rose rose = new Rose(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/GroupPngMakerState.java plantuml-8039/src/net/sourceforge/plantuml/svek/GroupPngMakerState.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/GroupPngMakerState.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/GroupPngMakerState.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,7 +34,6 @@ */ package net.sourceforge.plantuml.svek; -import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -54,17 +53,15 @@ import net.sourceforge.plantuml.cucadiagram.Link; import net.sourceforge.plantuml.cucadiagram.Member; import net.sourceforge.plantuml.cucadiagram.MethodsOrFieldsArea; -import net.sourceforge.plantuml.cucadiagram.Rankdir; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.cucadiagram.dot.DotData; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockEmpty; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.graphic.TextBlockWidth; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.skin.rose.Rose; import net.sourceforge.plantuml.svek.image.EntityImageState; import net.sourceforge.plantuml.ugraphic.UFont; @@ -111,11 +108,11 @@ public IEntityImage getImage() { final Display display = group.getDisplay(); final ISkinParam skinParam = diagram.getSkinParam(); - final TextBlock title = TextBlockUtils.create(display, new FontConfiguration(getFont(FontParam.STATE), - HtmlColorUtils.BLACK, skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()), - HorizontalAlignment.CENTER, diagram.getSkinParam()); + final TextBlock title = display.create( + new FontConfiguration(skinParam, FontParam.STATE, group.getStereotype()), HorizontalAlignment.CENTER, + diagram.getSkinParam()); - if (group.size() == 0) { + if (group.size() == 0 && group.getChildren().size() == 0) { return new EntityImageState(group, diagram.getSkinParam()); } final List links = getPureInnerLinks(); @@ -134,7 +131,7 @@ final CucaDiagramFileMakerSvek2 svek2 = new CucaDiagramFileMakerSvek2(dotData, diagram.getEntityFactory(), diagram.getSource(), diagram.getPragma()); - UStroke stroke = group.getSpecificLineStroke(); + UStroke stroke = group.getColors(skinParam).getSpecificLineStroke(); if (stroke == null) { stroke = new UStroke(1.5); } @@ -143,19 +140,19 @@ // return new InnerStateConcurrent(svek2.createFile()); return svek2.createFile(); } else if (group.getGroupType() == GroupType.STATE) { - HtmlColor borderColor = group.getSpecificLineColor(); + HtmlColor borderColor = group.getColors(skinParam).getColor(ColorType.LINE); if (borderColor == null) { borderColor = getColor(ColorParam.stateBorder, group.getStereotype()); } final Stereotype stereo = group.getStereotype(); - final HtmlColor backColor = group.getSpecificBackColor() == null ? getColor(ColorParam.stateBackground, - stereo) : group.getSpecificBackColor(); - final List members = ((IEntity) group).getFieldsToDisplay(); + final HtmlColor backColor = group.getColors(skinParam).getColor(ColorType.BACK) == null ? getColor( + ColorParam.stateBackground, stereo) : group.getColors(skinParam).getColor(ColorType.BACK); + final List members = ((IEntity) group).getBodier().getFieldsToDisplay(); final TextBlockWidth attribute; if (members.size() == 0) { attribute = new TextBlockEmpty(); } else { - attribute = new MethodsOrFieldsArea(members, FontParam.STATE_ATTRIBUTE, diagram.getSkinParam()); + attribute = new MethodsOrFieldsArea(members, FontParam.STATE_ATTRIBUTE, diagram.getSkinParam(), group.getStereotype()); } final Stereotype stereotype = group.getStereotype(); @@ -186,7 +183,7 @@ private UFont getFont(FontParam fontParam) { final ISkinParam skinParam = diagram.getSkinParam(); - return skinParam.getFont(fontParam, null, false); + return skinParam.getFont(null, false, fontParam); } private final Rose rose = new Rose(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/HeaderLayout.java plantuml-8039/src/net/sourceforge/plantuml/svek/HeaderLayout.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/HeaderLayout.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/HeaderLayout.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/IEntityImage.java plantuml-8039/src/net/sourceforge/plantuml/svek/IEntityImage.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/IEntityImage.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/IEntityImage.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/Circle.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/Circle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/Circle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/Circle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/ConnectedCircle.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/ConnectedCircle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/ConnectedCircle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/ConnectedCircle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/ContainingEllipse.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/ContainingEllipse.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/ContainingEllipse.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/ContainingEllipse.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageActivity.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageActivity.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageActivity.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageActivity.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -49,7 +49,7 @@ import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.Bibliotekon; import net.sourceforge.plantuml.svek.Shape; @@ -75,9 +75,7 @@ this.bibliotekon = bibliotekon; final Stereotype stereotype = entity.getStereotype(); - this.desc = TextBlockUtils.create(entity.getDisplay(), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), FontParam.ACTIVITY, stereotype), SkinParamUtils.getFontColor(getSkinParam(), FontParam.ACTIVITY, stereotype), - getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), + this.desc = entity.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.ACTIVITY, stereotype), HorizontalAlignment.CENTER, skinParam); this.url = entity.getUrl99(); } @@ -136,7 +134,7 @@ private UGraphic applyColors(UGraphic ug) { ug = ug.apply(new UChangeColor(SkinParamUtils.getColor(getSkinParam(), ColorParam.activityBorder, getStereo()))); - HtmlColor backcolor = getEntity().getSpecificBackColor(); + HtmlColor backcolor = getEntity().getColors(getSkinParam()).getColor(ColorType.BACK); if (backcolor == null) { backcolor = SkinParamUtils.getColor(getSkinParam(), ColorParam.activityBackground, getStereo()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageArcCircle.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageArcCircle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageArcCircle.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageArcCircle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -65,20 +65,15 @@ final Stereotype stereotype = entity.getStereotype(); - this.name = TextBlockUtils.create( - entity.getDisplay(), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.COMPONENT, stereotype), SkinParamUtils.getFontColor(getSkinParam(), - FontParam.COMPONENT, stereotype), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam); + this.name = entity.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.COMPONENT, stereotype), + HorizontalAlignment.CENTER, skinParam); if (stereotype == null || stereotype.getLabel(false) == null) { this.stereo = null; } else { - this.stereo = TextBlockUtils.create( - Display.getWithNewlines(stereotype.getLabel(getSkinParam().useGuillemet())), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.COMPONENT_STEREOTYPE, stereotype), SkinParamUtils.getFontColor(getSkinParam(), - FontParam.COMPONENT_STEREOTYPE, null), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam); + this.stereo = Display.getWithNewlines(stereotype.getLabel(getSkinParam().useGuillemet())).create( + new FontConfiguration(getSkinParam(), FontParam.COMPONENT_STEREOTYPE, stereotype), + HorizontalAlignment.CENTER, skinParam); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageAssociation.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageAssociation.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageAssociation.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageAssociation.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageAssociationPoint.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageAssociationPoint.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageAssociationPoint.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageAssociationPoint.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageBranch.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageBranch.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageBranch.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageBranch.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageCircleEnd.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageCircleEnd.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageCircleEnd.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageCircleEnd.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageCircleStart.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageCircleStart.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageCircleStart.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageCircleStart.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageClassHeader2.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageClassHeader2.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageClassHeader2.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageClassHeader2.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,6 +40,7 @@ import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.SkinParamUtils; +import net.sourceforge.plantuml.creole.CreoleMode; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.EntityPortion; import net.sourceforge.plantuml.cucadiagram.ILeaf; @@ -73,35 +74,32 @@ final HtmlColor color = SkinParamUtils.getFontColor(getSkinParam(), FontParam.CLASS, getStereo()); final Stereotype stereotype = entity.getStereotype(); final String generic = entity.getGeneric(); - FontConfiguration fontConfigurationName = new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), FontParam.CLASS, stereotype), - color, getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()); + FontConfiguration fontConfigurationName = new FontConfiguration(getSkinParam(), FontParam.CLASS, stereotype); if (italic) { fontConfigurationName = fontConfigurationName.italic(); } - final TextBlock name = TextBlockUtils.withMargin(TextBlockUtils.create(entity.getDisplay(), - fontConfigurationName, HorizontalAlignment.CENTER, skinParam), 3, 3, 0, 0); + final TextBlock name = TextBlockUtils.withMargin( + entity.getDisplay().createWithNiceCreoleMode(fontConfigurationName, HorizontalAlignment.CENTER, + skinParam), 3, 3, 0, 0); final TextBlock stereo; if (stereotype == null || stereotype.getLabel(false) == null || portionShower.showPortion(EntityPortion.STEREOTYPE, entity) == false) { stereo = null; } else { - stereo = TextBlockUtils.withMargin(TextBlockUtils.create( - Display.create(stereotype.getLabels(skinParam.useGuillemet())), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.CLASS_STEREOTYPE, stereotype), SkinParamUtils.getFontColor(getSkinParam(), - FontParam.CLASS_STEREOTYPE, stereotype), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam), 1, 0); + stereo = TextBlockUtils.withMargin( + Display.create(stereotype.getLabels(skinParam.useGuillemet())).create( + new FontConfiguration(getSkinParam(), FontParam.CLASS_STEREOTYPE, stereotype), + HorizontalAlignment.CENTER, skinParam), 1, 0); } TextBlock genericBlock; if (generic == null) { genericBlock = null; } else { - genericBlock = TextBlockUtils.create( - Display.getWithNewlines(generic), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.CLASS_STEREOTYPE, stereotype), SkinParamUtils.getFontColor(getSkinParam(), - FontParam.CLASS_STEREOTYPE, stereotype), skinParam.getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam); + genericBlock = Display.getWithNewlines(generic).create( + new FontConfiguration(getSkinParam(), FontParam.CLASS_STEREOTYPE, stereotype), + HorizontalAlignment.CENTER, skinParam); genericBlock = TextBlockUtils.withMargin(genericBlock, 1, 1); final HtmlColor classBackground = SkinParamUtils .getColor(getSkinParam(), ColorParam.background, stereotype); @@ -124,7 +122,7 @@ private TextBlock getCircledCharacter(ILeaf entity, ISkinParam skinParam) { final Stereotype stereotype = entity.getStereotype(); if (stereotype != null && stereotype.getSprite() != null) { - return skinParam.getSprite(stereotype.getSprite()).asTextBlock(stereotype.getHtmlColor()); + return skinParam.getSprite(stereotype.getSprite()).asTextBlock(stereotype.getHtmlColor(), 1); } final UFont font = SkinParamUtils.getFont(getSkinParam(), FontParam.CIRCLED_CHARACTER, null); final HtmlColor classBorder = SkinParamUtils.getColor(getSkinParam(), ColorParam.classBorder, stereotype); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageClass.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageClass.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageClass.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageClass.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.svek.image; import java.awt.geom.Dimension2D; +import java.awt.geom.Rectangle2D; import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.Dimension2DDouble; @@ -45,13 +46,14 @@ import net.sourceforge.plantuml.SkinParamUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.creole.Stencil; +import net.sourceforge.plantuml.cucadiagram.EntityPortion; import net.sourceforge.plantuml.cucadiagram.ILeaf; import net.sourceforge.plantuml.cucadiagram.PortionShower; import net.sourceforge.plantuml.cucadiagram.dot.GraphvizVersion; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.ShapeType; import net.sourceforge.plantuml.ugraphic.Shadowable; @@ -69,26 +71,21 @@ final private int shield; final private EntityImageClassHeader2 header; final private Url url; - final private TextBlock mouseOver; final private double roundCorner; final private LineConfigurable lineConfig; public EntityImageClass(GraphvizVersion version, ILeaf entity, ISkinParam skinParam, PortionShower portionShower) { - super(entity, skinParam); + super(entity, entity.getColors(skinParam).mute(skinParam)); this.lineConfig = entity; - this.roundCorner = skinParam.getRoundCorner(); + this.roundCorner = getSkinParam().getRoundCorner(); this.shield = version != null && version.useShield() && entity.hasNearDecoration() ? 16 : 0; - this.body = entity.getBody(portionShower).asTextBlock(FontParam.CLASS_ATTRIBUTE, skinParam); + final boolean showMethods = portionShower.showPortion(EntityPortion.METHOD, entity); + final boolean showFields = portionShower.showPortion(EntityPortion.FIELD, entity); + this.body = entity.getBodier().getBody(FontParam.CLASS_ATTRIBUTE, getSkinParam(), showMethods, showFields, entity.getStereotype()); - header = new EntityImageClassHeader2(entity, skinParam, portionShower); + header = new EntityImageClassHeader2(entity, getSkinParam(), portionShower); this.url = entity.getUrl99(); - if (entity.getMouseOver() == null) { - this.mouseOver = null; - } else { - this.mouseOver = entity.getMouseOver().asTextBlock(FontParam.CLASS_ATTRIBUTE, skinParam); - } - } // private int marginEmptyFieldsOrMethod = 13; @@ -104,36 +101,22 @@ return new Dimension2DDouble(width, height); } + @Override + public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) { + final Rectangle2D result = body.getInnerPosition(member, stringBounder); + if (result == null) { + return result; + } + final Dimension2D dimHeader = header.calculateDimension(stringBounder); + final UTranslate translate = new UTranslate(0, dimHeader.getHeight()); + return translate.apply(result); + } + final public void drawU(UGraphic ug) { if (url != null) { ug.startUrl(url); } drawInternal(ug); - if (mouseOver != null) { - // final UGroup g = ug.createGroup(); - // ug = ug.apply(new UChangeBackColor(SkinParamUtils.getColor(getSkinParam(), ColorParam.classBackground, - // getStereo()))); - // final Dimension2D dim = mouseOver.calculateDimension(ug.getStringBounder()); - // final Shadowable rect = new URectangle(dim.getWidth(), dim.getHeight()); - // if (getSkinParam().shadowing()) { - // rect.setDeltaShadow(4); - // } - // - // final HtmlColor classBorder = SkinParamUtils.getColor(getSkinParam(), ColorParam.classBorder, - // getStereo()); - // ug = ug.apply( - // new UChangeBackColor(SkinParamUtils.getColor(getSkinParam(), ColorParam.classBackground, - // getStereo()))).apply(new UChangeColor(classBorder)); - // - // final double x = 30; - // final double y = 30; - // // ug.getParam().setStroke(new UStroke(1.5)); - // // g.draw(x, y, rect); - // // ug.getParam().resetStroke(); - // final UGraphic ug2 = new UGraphicHorizontalLine(ug, x, x + dim.getWidth(), getStroke()); - // mouseOver.drawUNewWayINLINED(ug2.apply(new UTranslate(x, y))); - // g.close(); - } if (url != null) { ug.closeAction(); @@ -152,12 +135,12 @@ rect.setDeltaShadow(4); } - HtmlColor classBorder = lineConfig.getSpecificLineColor(); + HtmlColor classBorder = lineConfig.getColors(getSkinParam()).getColor(ColorType.LINE); if (classBorder == null) { classBorder = SkinParamUtils.getColor(getSkinParam(), ColorParam.classBorder, getStereo()); } ug = ug.apply(new UChangeColor(classBorder)); - HtmlColor backcolor = getEntity().getSpecificBackColor(); + HtmlColor backcolor = getEntity().getColors(getSkinParam()).getColor(ColorType.BACK); if (backcolor == null) { backcolor = SkinParamUtils.getColor(getSkinParam(), ColorParam.classBackground, getStereo()); } @@ -166,7 +149,10 @@ final UStroke stroke = getStroke(); ug.apply(stroke).draw(rect); - final HtmlColor headerBackcolor = getSkinParam().getHtmlColor(ColorParam.classHeaderBackground, getStereo(), false); + HtmlColor headerBackcolor = getEntity().getColors(getSkinParam()).getColor(ColorType.HEADER); + if (headerBackcolor == null) { + headerBackcolor = getSkinParam().getHtmlColor(ColorParam.classHeaderBackground, getStereo(), false); + } if (headerBackcolor != null) { final Shadowable rect2 = new URectangle(widthTotal, dimHeader.getHeight()); ug.apply(new UChangeBackColor(headerBackcolor)).apply(stroke).draw(rect2); @@ -175,12 +161,13 @@ if (body != null) { final UGraphic ug2 = new UGraphicStencil(ug, this, stroke); - body.drawU(ug2.apply(new UTranslate(0, dimHeader.getHeight()))); + final UTranslate translate = new UTranslate(0, dimHeader.getHeight()); + body.drawU(ug2.apply(translate)); } } private UStroke getStroke() { - UStroke stroke = lineConfig.getSpecificLineStroke(); + UStroke stroke = lineConfig.getColors(getSkinParam()).getSpecificLineStroke(); if (stroke == null) { stroke = getSkinParam().getThickness(LineParam.classBorder, getStereo()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageComponent.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageComponent.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageComponent.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageComponent.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,129 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.svek.image; - -import java.awt.geom.Dimension2D; - -import net.sourceforge.plantuml.ISkinParam; -import net.sourceforge.plantuml.SkinParamUtils; -import net.sourceforge.plantuml.Url; -import net.sourceforge.plantuml.cucadiagram.BodyEnhanced; -import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.cucadiagram.EntityPortion; -import net.sourceforge.plantuml.cucadiagram.ILeaf; -import net.sourceforge.plantuml.cucadiagram.PortionShower; -import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.FontConfiguration; -import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.StringBounder; -import net.sourceforge.plantuml.graphic.SymbolContext; -import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; -import net.sourceforge.plantuml.graphic.USymbol; -import net.sourceforge.plantuml.svek.AbstractEntityImage; -import net.sourceforge.plantuml.svek.ShapeType; -import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.ugraphic.UStroke; - -public class EntityImageComponent extends AbstractEntityImage { - - final private Url url; - - private final TextBlock asSmall; - - public EntityImageComponent(ILeaf entity, ISkinParam skinParam, PortionShower portionShower) { - super(entity, skinParam); - final Stereotype stereotype = entity.getStereotype(); - final USymbol symbol = entity.getUSymbol() == null ? (skinParam.useUml2ForComponent() ? USymbol.COMPONENT2 - : USymbol.COMPONENT1) : entity.getUSymbol(); - if (symbol == null) { - throw new IllegalArgumentException(); - } - - final TextBlock desc = entity.getDisplay().isWhite() ? TextBlockUtils.empty(0, 0) : new BodyEnhanced( - entity.getDisplay(), symbol.getFontParam(), skinParam, HorizontalAlignment.CENTER, stereotype, - symbol.manageHorizontalLine(), false); - - this.url = entity.getUrl99(); - - HtmlColor backcolor = getEntity().getSpecificBackColor(); - if (backcolor == null) { - backcolor = SkinParamUtils.getColor(getSkinParam(), symbol.getColorParamBack(), getStereo()); - } - // backcolor = HtmlColorUtils.BLUE; - final HtmlColor forecolor = SkinParamUtils.getColor(getSkinParam(), symbol.getColorParamBorder(), getStereo()); - final SymbolContext ctx = new SymbolContext(backcolor, forecolor).withStroke(new UStroke(1.5)).withShadow( - getSkinParam().shadowing2(symbol.getSkinParameter())); - - TextBlock stereo = TextBlockUtils.empty(0, 0); - - if (stereotype != null && stereotype.getLabel(false) != null - && portionShower.showPortion(EntityPortion.STEREOTYPE, entity)) { - stereo = TextBlockUtils.create( - Display.getWithNewlines(stereotype.getLabel(getSkinParam().useGuillemet())), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), symbol.getFontParamStereotype(), - stereotype), SkinParamUtils.getFontColor(getSkinParam(), symbol.getFontParamStereotype(), - null), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), - HorizontalAlignment.CENTER, skinParam); - } - - asSmall = symbol.asSmall(desc, stereo, ctx); - } - - public Dimension2D calculateDimension(StringBounder stringBounder) { - return asSmall.calculateDimension(stringBounder); - } - - final public void drawU(UGraphic ug) { - if (url != null) { - ug.startUrl(url); - } - asSmall.drawU(ug); - - if (url != null) { - ug.closeAction(); - } - } - - public ShapeType getShapeType() { - return ShapeType.RECTANGLE; - } - - public int getShield() { - return 0; - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageDescription.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageDescription.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageDescription.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageDescription.java 2016-04-22 16:26:32.000000000 +0000 @@ -0,0 +1,146 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.svek.image; + +import java.awt.geom.Dimension2D; + +import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.SkinParamUtils; +import net.sourceforge.plantuml.Url; +import net.sourceforge.plantuml.cucadiagram.BodyEnhanced; +import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.EntityPortion; +import net.sourceforge.plantuml.cucadiagram.ILeaf; +import net.sourceforge.plantuml.cucadiagram.PortionShower; +import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.FontConfiguration; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.SymbolContext; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.USymbol; +import net.sourceforge.plantuml.graphic.USymbolFolder; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.svek.AbstractEntityImage; +import net.sourceforge.plantuml.svek.ShapeType; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UStroke; + +public class EntityImageDescription extends AbstractEntityImage { + + private final ShapeType shapeType; + + final private Url url; + + private final TextBlock asSmall; + + private final TextBlock name; + + public EntityImageDescription(ILeaf entity, ISkinParam skinParam, PortionShower portionShower) { + super(entity, entity.getColors(skinParam).mute(skinParam)); + final Stereotype stereotype = entity.getStereotype(); + USymbol symbol = entity.getUSymbol() == null ? (getSkinParam().useUml2ForComponent() ? USymbol.COMPONENT2 + : USymbol.COMPONENT1) : entity.getUSymbol(); + if (symbol == null) { + throw new IllegalArgumentException(); + } + shapeType = symbol == USymbol.FOLDER ? ShapeType.FOLDER : ShapeType.RECTANGLE; + + final Display codeDisplay = Display.getWithNewlines(entity.getCode()); + final TextBlock desc = (entity.getDisplay().equals(codeDisplay) && symbol instanceof USymbolFolder) + || entity.getDisplay().isWhite() ? TextBlockUtils.empty(0, 0) : new BodyEnhanced(entity.getDisplay(), + symbol.getFontParam(), getSkinParam(), HorizontalAlignment.CENTER, stereotype, + symbol.manageHorizontalLine(), false, false); + + this.url = entity.getUrl99(); + + HtmlColor backcolor = getEntity().getColors(getSkinParam()).getColor(ColorType.BACK); + if (backcolor == null) { + backcolor = SkinParamUtils.getColor(getSkinParam(), symbol.getColorParamBack(), getStereo()); + } + // backcolor = HtmlColorUtils.BLUE; + final HtmlColor forecolor = SkinParamUtils.getColor(getSkinParam(), symbol.getColorParamBorder(), getStereo()); + final SymbolContext ctx = new SymbolContext(backcolor, forecolor).withStroke(new UStroke(1.5)).withShadow( + getSkinParam().shadowing2(symbol.getSkinParameter())); + + TextBlock stereo = TextBlockUtils.empty(0, 0); + + if (stereotype != null && stereotype.getSprite() != null + && getSkinParam().getSprite(stereotype.getSprite()) != null) { + symbol = symbol.withStereoAlignment(HorizontalAlignment.RIGHT); + stereo = getSkinParam().getSprite(stereotype.getSprite()).asTextBlock(stereotype.getHtmlColor(), 1); + } else if (stereotype != null && stereotype.getLabel(false) != null + && portionShower.showPortion(EntityPortion.STEREOTYPE, entity)) { + stereo = Display.getWithNewlines(stereotype.getLabel(getSkinParam().useGuillemet())).create( + new FontConfiguration(getSkinParam(), symbol.getFontParamStereotype(), stereotype), + HorizontalAlignment.CENTER, getSkinParam()); + } + + name = new BodyEnhanced(codeDisplay, symbol.getFontParam(), getSkinParam(), HorizontalAlignment.CENTER, + stereotype, symbol.manageHorizontalLine(), false, false); + + asSmall = symbol.asSmall(name, desc, stereo, ctx); + } + + public Dimension2D getNameDimension(StringBounder stringBounder) { + return name.calculateDimension(stringBounder); + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + return asSmall.calculateDimension(stringBounder); + } + + final public void drawU(UGraphic ug) { + if (url != null) { + ug.startUrl(url); + } + asSmall.drawU(ug); + + if (url != null) { + ug.closeAction(); + } + } + + public ShapeType getShapeType() { + return shapeType; + } + + public int getShield() { + return 0; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage2.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage2.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage2.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage2.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,117 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.svek.image; - -import java.awt.geom.Dimension2D; - -import net.sourceforge.plantuml.ColorParam; -import net.sourceforge.plantuml.Dimension2DDouble; -import net.sourceforge.plantuml.FontParam; -import net.sourceforge.plantuml.ISkinParam; -import net.sourceforge.plantuml.LineParam; -import net.sourceforge.plantuml.SkinParamUtils; -import net.sourceforge.plantuml.cucadiagram.ILeaf; -import net.sourceforge.plantuml.cucadiagram.Stereotype; -import net.sourceforge.plantuml.graphic.FontConfiguration; -import net.sourceforge.plantuml.graphic.HorizontalAlignment; -import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.StringBounder; -import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; -import net.sourceforge.plantuml.svek.AbstractEntityImage; -import net.sourceforge.plantuml.svek.Cluster; -import net.sourceforge.plantuml.svek.ClusterDecoration; -import net.sourceforge.plantuml.svek.ShapeType; -import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.ugraphic.UStroke; - -public class EntityImageEmptyPackage2 extends AbstractEntityImage { - - final private TextBlock desc; - final private static int MARGIN = 10; - final private HtmlColor specificBackColor; - final private ISkinParam skinParam; - final private Stereotype stereotype; - - public EntityImageEmptyPackage2(ILeaf entity, ISkinParam skinParam) { - super(entity, skinParam); - this.skinParam = skinParam; - this.specificBackColor = entity.getSpecificBackColor(); - this.stereotype = entity.getStereotype(); - this.desc = TextBlockUtils.create(entity.getDisplay(), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), FontParam.PACKAGE, stereotype), - SkinParamUtils.getFontColor(getSkinParam(), FontParam.PACKAGE, stereotype), getSkinParam() - .getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), - HorizontalAlignment.CENTER, skinParam); - } - - public Dimension2D calculateDimension(StringBounder stringBounder) { - final Dimension2D dim = desc.calculateDimension(stringBounder); - return Dimension2DDouble.delta(dim, MARGIN * 2, MARGIN * 2 + dim.getHeight() * 2); - } - - private UStroke getStroke() { - UStroke stroke = getSkinParam().getThickness(LineParam.packageBorder, getStereo()); - if (stroke == null) { - stroke = new UStroke(2.0); - } - return stroke; - } - - final public void drawU(UGraphic ug) { - final StringBounder stringBounder = ug.getStringBounder(); - final Dimension2D dimTotal = calculateDimension(stringBounder); - - final double widthTotal = dimTotal.getWidth(); - final double heightTotal = dimTotal.getHeight(); - - final HtmlColor stateBack = Cluster.getStateBackColor(specificBackColor, skinParam, stereotype); - - final ClusterDecoration decoration = new ClusterDecoration(getSkinParam().getPackageStyle(), null, desc, - TextBlockUtils.empty(0, 0), stateBack, 0, 0, widthTotal, heightTotal, getStroke()); - - decoration.drawU(ug, SkinParamUtils.getColor(getSkinParam(), ColorParam.packageBorder, getStereo()), - getSkinParam().shadowing()); - } - - public ShapeType getShapeType() { - return ShapeType.RECTANGLE; - } - - public int getShield() { - return 0; - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage.java 2016-04-22 16:26:32.000000000 +0000 @@ -0,0 +1,116 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.svek.image; + +import java.awt.geom.Dimension2D; + +import net.sourceforge.plantuml.ColorParam; +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.LineParam; +import net.sourceforge.plantuml.SkinParamUtils; +import net.sourceforge.plantuml.cucadiagram.ILeaf; +import net.sourceforge.plantuml.cucadiagram.Stereotype; +import net.sourceforge.plantuml.graphic.FontConfiguration; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.svek.AbstractEntityImage; +import net.sourceforge.plantuml.svek.Cluster; +import net.sourceforge.plantuml.svek.ClusterDecoration; +import net.sourceforge.plantuml.svek.ShapeType; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UStroke; + +public class EntityImageEmptyPackage extends AbstractEntityImage { + + final private TextBlock desc; + final private static int MARGIN = 10; + final private HtmlColor specificBackColor; + final private ISkinParam skinParam; + final private Stereotype stereotype; + + public EntityImageEmptyPackage(ILeaf entity, ISkinParam skinParam) { + super(entity, skinParam); + this.skinParam = skinParam; + this.specificBackColor = entity.getColors(skinParam).getColor(ColorType.BACK); + this.stereotype = entity.getStereotype(); + this.desc = entity.getDisplay().create( + new FontConfiguration(getSkinParam(), FontParam.PACKAGE, stereotype), + HorizontalAlignment.CENTER, skinParam); + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + final Dimension2D dim = desc.calculateDimension(stringBounder); + return Dimension2DDouble.delta(dim, MARGIN * 2, MARGIN * 2 + dim.getHeight() * 2); + } + + private UStroke getStroke() { + UStroke stroke = getSkinParam().getThickness(LineParam.packageBorder, getStereo()); + if (stroke == null) { + stroke = new UStroke(2.0); + } + return stroke; + } + + final public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + final Dimension2D dimTotal = calculateDimension(stringBounder); + + final double widthTotal = dimTotal.getWidth(); + final double heightTotal = dimTotal.getHeight(); + + final HtmlColor back = Cluster.getBackColor(specificBackColor, skinParam, stereotype); + + final ClusterDecoration decoration = new ClusterDecoration(getSkinParam().getPackageStyle(), null, desc, + TextBlockUtils.empty(0, 0), 0, 0, widthTotal, heightTotal, getStroke()); + + decoration.drawU(ug, back, + SkinParamUtils.getColor(getSkinParam(), ColorParam.packageBorder, getStereo()), getSkinParam().shadowing()); + } + + public ShapeType getShapeType() { + return ShapeType.RECTANGLE; + } + + public int getShield() { + return 0; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageGroup.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageGroup.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageGroup.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageGroup.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -51,7 +51,7 @@ public EntityImageGroup(ILeaf entity, ISkinParam skinParam) { super(entity, skinParam); - // this.desc = TextBlockUtils.create(StringUtils.getWithNewlines(entity.getDisplay()), new FontConfiguration( + // this.desc = Display.create(StringUtils.getWithNewlines(entity.getDisplay()), new FontConfiguration( // getFont(FontParam.ACTIVITY), HtmlColorUtils.BLACK), HorizontalAlignment.CENTER); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye1.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye1.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye1.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye1.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -50,7 +50,6 @@ import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.Bibliotekon; import net.sourceforge.plantuml.svek.Line; @@ -73,11 +72,8 @@ super(entity, skinParam); this.bibliotekon = bibliotekon; final Stereotype stereotype = entity.getStereotype(); - this.desc = TextBlockUtils.create( - entity.getDisplay(), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.CLASS, stereotype), SkinParamUtils.getFontColor(getSkinParam(), FontParam.CLASS, - stereotype), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam); + this.desc = entity.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.CLASS, stereotype), + HorizontalAlignment.CENTER, skinParam); this.url = entity.getUrl99(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye2.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye2.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye2.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye2.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -54,6 +54,7 @@ import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.graphic.USymbol; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.ShapeType; import net.sourceforge.plantuml.ugraphic.UEllipse; @@ -80,11 +81,11 @@ } this.desc = new BodyEnhanced(entity.getDisplay(), symbol.getFontParam(), skinParam, HorizontalAlignment.CENTER, - stereotype, symbol.manageHorizontalLine(), false); + stereotype, symbol.manageHorizontalLine(), false, false); this.url = entity.getUrl99(); - HtmlColor backcolor = getEntity().getSpecificBackColor(); + HtmlColor backcolor = getEntity().getColors(getSkinParam()).getColor(ColorType.BACK); if (backcolor == null) { backcolor = SkinParamUtils.getColor(getSkinParam(), symbol.getColorParamBack(), getStereo()); } @@ -95,11 +96,9 @@ if (stereotype != null && stereotype.getLabel(false) != null && portionShower.showPortion(EntityPortion.STEREOTYPE, entity)) { - stereo = TextBlockUtils.create( - Display.getWithNewlines(stereotype.getLabel(getSkinParam().useGuillemet())), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - symbol.getFontParamStereotype(), stereotype), SkinParamUtils.getFontColor(getSkinParam(), - symbol.getFontParamStereotype(), null), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam); + stereo = Display.getWithNewlines(stereotype.getLabel(getSkinParam().useGuillemet())).create( + new FontConfiguration(getSkinParam(), symbol.getFontParamStereotype(), stereotype), + HorizontalAlignment.CENTER, skinParam); } else { stereo = TextBlockUtils.empty(0, 0); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterface.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterface.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterface.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterface.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -48,7 +48,6 @@ import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.ShapeType; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; @@ -67,11 +66,8 @@ public EntityImageLollipopInterface(ILeaf entity, ISkinParam skinParam) { super(entity, skinParam); final Stereotype stereotype = entity.getStereotype(); - this.desc = TextBlockUtils.create( - entity.getDisplay(), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.CLASS, stereotype), SkinParamUtils.getFontColor(getSkinParam(), FontParam.CLASS, - stereotype), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam); + this.desc = entity.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.CLASS, stereotype), + HorizontalAlignment.CENTER, skinParam); this.url = entity.getUrl99(); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageNote.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageNote.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageNote.java 2015-05-03 15:06:24.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageNote.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,6 +44,7 @@ import net.sourceforge.plantuml.FontParam; import net.sourceforge.plantuml.ISkinParam; import net.sourceforge.plantuml.SkinParamBackcolored; +import net.sourceforge.plantuml.SkinParamUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.creole.Stencil; import net.sourceforge.plantuml.cucadiagram.BodyEnhanced2; @@ -58,6 +59,8 @@ import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockEmpty; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.posimo.DotPath; import net.sourceforge.plantuml.skin.rose.Rose; import net.sourceforge.plantuml.svek.AbstractEntityImage; @@ -66,7 +69,6 @@ import net.sourceforge.plantuml.svek.ShapeType; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; -import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UGraphicStencil; import net.sourceforge.plantuml.ugraphic.ULine; @@ -88,35 +90,42 @@ private final TextBlock textBlock; public EntityImageNote(ILeaf entity, ISkinParam skinParam) { - super(entity, getSkin(skinParam, entity)); - this.skinParam = skinParam; + super(entity, getSkin(getISkinParam(skinParam, entity), entity)); + this.skinParam = getISkinParam(skinParam, entity); - this.withShadow = skinParam.shadowing(); + this.withShadow = getSkinParam().shadowing(); final Display strings = entity.getDisplay(); final Rose rose = new Rose(); - if (entity.getSpecificBackColor() == null) { - noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.noteBackground); + if (entity.getColors(getSkinParam()).getColor(ColorType.BACK) == null) { + noteBackgroundColor = rose.getHtmlColor(getSkinParam(), ColorParam.noteBackground); } else { - noteBackgroundColor = entity.getSpecificBackColor(); + noteBackgroundColor = entity.getColors(getSkinParam()).getColor(ColorType.BACK); } - borderColor = rose.getHtmlColor(skinParam, ColorParam.noteBorder); - final HtmlColor fontColor = rose.getFontColor(skinParam, FontParam.NOTE); - final UFont fontNote = skinParam.getFont(FontParam.NOTE, null, false); + // this.borderColor = rose.getHtmlColor(skinParam, ColorParam.noteBorder); + this.borderColor = SkinParamUtils.getColor(getSkinParam(), ColorParam.noteBorder, null); + // final HtmlColor fontColor = rose.getFontColor(getSkinParam(), FontParam.NOTE); + // final UFont fontNote = getSkinParam().getFont(FontParam.NOTE, null, false); if (strings.size() == 1 && strings.get(0).length() == 0) { textBlock = new TextBlockEmpty(); } else { - textBlock = new BodyEnhanced2(strings, FontParam.NOTE, skinParam, HorizontalAlignment.LEFT, - new FontConfiguration(fontNote, fontColor, skinParam.getHyperlinkColor(), - skinParam.useUnderlineForHyperlink())); + textBlock = new BodyEnhanced2(strings, FontParam.NOTE, getSkinParam(), HorizontalAlignment.LEFT, + new FontConfiguration(getSkinParam(), FontParam.NOTE, null)); } } - private static ISkinParam getSkin(ISkinParam skinParam, IEntity entity) { + private static ISkinParam getISkinParam(ISkinParam skinParam, IEntity entity) { + if (entity.getColors(skinParam) != null) { + return entity.getColors(skinParam).mute(skinParam); + } + return skinParam; + } + + static ISkinParam getSkin(ISkinParam skinParam, IEntity entity) { final Stereotype stereotype = entity.getStereotype(); - HtmlColor back = entity.getSpecificBackColor(); + HtmlColor back = entity.getColors(skinParam).getColor(ColorType.BACK); if (back != null) { return new SkinParamBackcolored(skinParam, back); } @@ -191,20 +200,27 @@ if (p1.distance(center) > p2.distance(center)) { path = path.reverse(); p1 = path.getStartPoint(); - p2 = path.getEndPoint(); + // p2 = path.getEndPoint(); } final Direction strategy = getOpaleStrategy(textWidth, textHeight, p1); final Point2D pp1 = path.getStartPoint(); final Point2D pp2 = path.getEndPoint(); + final Point2D newRefpp2 = move(pp2, shape.getMinX(), shape.getMinY()); + final Point2D projection = move(other.projection(newRefpp2, stringBounder), -shape.getMinX(), + -shape.getMinY()); final Opale opale = new Opale(borderColor, noteBackgroundColor, textBlock, skinParam.shadowing(), true); - opale.setOpale(strategy, pp1, pp2); - opale.drawU(ug2); + opale.setOpale(strategy, pp1, projection); + opale.drawU(Colors.applyStroke(ug2, getEntity().getColors(skinParam))); } if (url != null) { ug.closeAction(); } } + private static Point2D move(Point2D pt, double dx, double dy) { + return new Point2D.Double(pt.getX() + dx, pt.getY() + dy); + } + private void drawNormal(UGraphic ug) { final StringBounder stringBounder = ug.getStringBounder(); final UPolygon polygon = getPolygonNormal(stringBounder); @@ -261,11 +277,15 @@ private Line opaleLine; private Shape shape; + private Shape other; - public void setOpaleLine(Line line, Shape shape) { + public void setOpaleLine(Line line, Shape shape, Shape other) { + if (other == null) { + throw new IllegalArgumentException(); + } this.opaleLine = line; this.shape = shape; - + this.other = other; } public double getStartingX(StringBounder stringBounder, double y) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageNoteLink.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageNoteLink.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageNoteLink.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageNoteLink.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,10 +38,11 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.ISkinParam; -import net.sourceforge.plantuml.SkinParamBackcolored; import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.skin.Area; import net.sourceforge.plantuml.skin.Component; import net.sourceforge.plantuml.skin.ComponentType; @@ -51,13 +52,13 @@ import net.sourceforge.plantuml.svek.ShapeType; import net.sourceforge.plantuml.ugraphic.UGraphic; -public class EntityImageNoteLink implements IEntityImage { +public class EntityImageNoteLink extends AbstractTextBlock implements IEntityImage { private final Component comp; - public EntityImageNoteLink(Display note, HtmlColor htmlColor, ISkinParam skinParam) { + public EntityImageNoteLink(Display note, Colors colors, ISkinParam skinParam) { final Rose skin = new Rose(); - comp = skin.createComponent(ComponentType.NOTE, null, new SkinParamBackcolored(skinParam, htmlColor), note); + comp = skin.createComponent(ComponentType.NOTE, null, colors.mute(skinParam), note); } public Dimension2D calculateDimension(StringBounder stringBounder) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -46,10 +46,7 @@ import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.creole.Stencil; import net.sourceforge.plantuml.cucadiagram.Display; -import net.sourceforge.plantuml.cucadiagram.EntityPortion; -import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.ILeaf; -import net.sourceforge.plantuml.cucadiagram.PortionShower; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; @@ -59,6 +56,7 @@ import net.sourceforge.plantuml.graphic.TextBlockEmpty; import net.sourceforge.plantuml.graphic.TextBlockLineBefore; import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.ShapeType; import net.sourceforge.plantuml.ugraphic.PlacementStrategyY1Y2; @@ -87,33 +85,21 @@ this.lineConfig = entity; final Stereotype stereotype = entity.getStereotype(); this.roundCorner = skinParam.getRoundCorner(); - this.name = TextBlockUtils.withMargin(TextBlockUtils.create( - entity.getDisplay(), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.OBJECT, stereotype), SkinParamUtils.getFontColor(getSkinParam(), FontParam.OBJECT, - stereotype), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam), 2, 2); + this.name = TextBlockUtils.withMargin( + entity.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.OBJECT, stereotype), + HorizontalAlignment.CENTER, skinParam), 2, 2); if (stereotype == null || stereotype.getLabel(false) == null) { this.stereo = null; } else { - this.stereo = TextBlockUtils.create( - Display.getWithNewlines(stereotype.getLabel(getSkinParam().useGuillemet())), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.OBJECT_STEREOTYPE, stereotype), SkinParamUtils.getFontColor(getSkinParam(), - FontParam.OBJECT_STEREOTYPE, stereotype), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam); + this.stereo = Display.getWithNewlines(stereotype.getLabel(getSkinParam().useGuillemet())).create( + new FontConfiguration(getSkinParam(), FontParam.OBJECT_STEREOTYPE, stereotype), + HorizontalAlignment.CENTER, skinParam); } - if (entity.getFieldsToDisplay().size() == 0) { + if (entity.getBodier().getFieldsToDisplay().size() == 0) { this.fields = new TextBlockLineBefore(new TextBlockEmpty(10, 16)); } else { - // this.fields = - // entity.getFieldsToDisplay().asTextBlock(FontParam.OBJECT_ATTRIBUTE, - // skinParam); - this.fields = entity.getBody(new PortionShower() { - public boolean showPortion(EntityPortion portion, IEntity entity) { - return true; - } - }).asTextBlock(FontParam.OBJECT_ATTRIBUTE, skinParam); - + this.fields = entity.getBodier().getBody(FontParam.OBJECT_ATTRIBUTE, skinParam, false, true, entity.getStereotype()); } this.url = entity.getUrl99(); @@ -143,7 +129,7 @@ } ug = ug.apply(new UChangeColor(SkinParamUtils.getColor(getSkinParam(), ColorParam.objectBorder, getStereo()))); - HtmlColor backcolor = getEntity().getSpecificBackColor(); + HtmlColor backcolor = getEntity().getColors(getSkinParam()).getColor(ColorType.BACK); if (backcolor == null) { backcolor = SkinParamUtils.getColor(getSkinParam(), ColorParam.objectBackground, getStereo()); } @@ -160,7 +146,7 @@ header.add(stereo); } header.add(name); - header.drawU(ug, 0, 0, dimTotal.getWidth(), dimTitle.getHeight()); + header.drawU(ug, dimTotal.getWidth(), dimTitle.getHeight()); final UGraphic ug2 = new UGraphicStencil(ug, this, stroke); fields.drawU(ug2.apply(new UTranslate(0, dimTitle.getHeight()))); @@ -171,7 +157,7 @@ } private UStroke getStroke() { - UStroke stroke = lineConfig.getSpecificLineStroke(); + UStroke stroke = lineConfig.getColors(getSkinParam()).getSpecificLineStroke(); if (stroke == null) { stroke = getSkinParam().getThickness(LineParam.objectBorder, getStereo()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImagePseudoState.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImagePseudoState.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImagePseudoState.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImagePseudoState.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -48,7 +48,6 @@ import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.ShapeType; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; @@ -66,10 +65,7 @@ public EntityImagePseudoState(ILeaf entity, ISkinParam skinParam) { super(entity, skinParam); final Stereotype stereotype = entity.getStereotype(); - this.desc = TextBlockUtils.create(Display.create("H"), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.STATE, stereotype), SkinParamUtils.getFontColor(getSkinParam(), FontParam.STATE, - stereotype), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), + this.desc = Display.create("H").create(new FontConfiguration(getSkinParam(), FontParam.STATE, stereotype), HorizontalAlignment.CENTER, skinParam); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageState2.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageState2.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageState2.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageState2.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -52,6 +52,7 @@ import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.graphic.USymbol; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.ShapeType; import net.sourceforge.plantuml.ugraphic.UGraphic; @@ -71,13 +72,13 @@ final Stereotype stereotype = entity.getStereotype(); Display list = Display.empty(); - for (Member att : entity.getFieldsToDisplay()) { + for (Member att : entity.getBodier().getFieldsToDisplay()) { list = list.addAll(Display.getWithNewlines(att.getDisplay(true))); } final USymbol symbol = USymbol.FRAME; - HtmlColor backcolor = getEntity().getSpecificBackColor(); + HtmlColor backcolor = getEntity().getColors(getSkinParam()).getColor(ColorType.BACK); if (backcolor == null) { backcolor = SkinParamUtils.getColor(getSkinParam(), symbol.getColorParamBack(), getStereo()); } @@ -91,9 +92,9 @@ TextBlock stereo = TextBlockUtils.empty(0, 0); final TextBlock desc = new BodyEnhanced(entity.getDisplay(), symbol.getFontParam(), skinParam, - HorizontalAlignment.CENTER, stereotype, symbol.manageHorizontalLine(), false); + HorizontalAlignment.CENTER, stereotype, symbol.manageHorizontalLine(), false, false); - asSmall = symbol.asSmall(desc, stereo, ctx); + asSmall = symbol.asSmall(null, desc, stereo, ctx); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageStateBorder.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageStateBorder.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageStateBorder.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageStateBorder.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,38 +44,37 @@ import net.sourceforge.plantuml.SkinParamUtils; import net.sourceforge.plantuml.cucadiagram.EntityPosition; import net.sourceforge.plantuml.cucadiagram.ILeaf; +import net.sourceforge.plantuml.cucadiagram.Rankdir; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.Bibliotekon; import net.sourceforge.plantuml.svek.Cluster; import net.sourceforge.plantuml.svek.Shape; import net.sourceforge.plantuml.svek.ShapeType; -import net.sourceforge.plantuml.ugraphic.Shadowable; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; import net.sourceforge.plantuml.ugraphic.UChangeColor; -import net.sourceforge.plantuml.ugraphic.UEllipse; import net.sourceforge.plantuml.ugraphic.UGraphic; -import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; public class EntityImageStateBorder extends AbstractEntityImage { - public static final double RADIUS = 6; private final TextBlock desc; private final Cluster stateParent; private final EntityPosition entityPosition; private final Bibliotekon bibliotekon; + private final Rankdir rankdir; public EntityImageStateBorder(ILeaf leaf, ISkinParam skinParam, Cluster stateParent, final Bibliotekon bibliotekon) { super(leaf, skinParam); this.bibliotekon = bibliotekon; + this.rankdir = skinParam.getRankdir(); this.entityPosition = leaf.getEntityPosition(); if (entityPosition == EntityPosition.NORMAL) { @@ -84,9 +83,7 @@ this.stateParent = stateParent; final Stereotype stereotype = leaf.getStereotype(); - this.desc = TextBlockUtils.create(leaf.getDisplay(), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), FontParam.STATE, stereotype), SkinParamUtils.getFontColor(getSkinParam(), FontParam.STATE, stereotype), - getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), + this.desc = leaf.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.STATE, stereotype), HorizontalAlignment.CENTER, skinParam); } @@ -97,7 +94,7 @@ } public Dimension2D calculateDimension(StringBounder stringBounder) { - return new Dimension2DDouble(RADIUS * 2, RADIUS * 2); + return entityPosition.getDimension(rankdir); } public double getMaxWidthFromLabelForEntryExit(StringBounder stringBounder) { @@ -106,56 +103,31 @@ } final public void drawU(UGraphic ug) { - final Shadowable circle = new UEllipse(RADIUS * 2, RADIUS * 2); - // if (getSkinParam().shadowing()) { - // circle.setDeltaShadow(4); - // } double y = 0; final Dimension2D dimDesc = desc.calculateDimension(ug.getStringBounder()); - final double x = 0 - (dimDesc.getWidth() - 2 * RADIUS) / 2; + final double x = 0 - (dimDesc.getWidth() - 2 * EntityPosition.RADIUS) / 2; if (upPosition()) { - y -= 2 * RADIUS + dimDesc.getHeight(); + y -= 2 * EntityPosition.RADIUS + dimDesc.getHeight(); } else { - y += 2 * RADIUS; + y += 2 * EntityPosition.RADIUS; } desc.drawU(ug.apply(new UTranslate(x, y))); ug = ug.apply(new UStroke(1.5)).apply( new UChangeColor(SkinParamUtils.getColor(getSkinParam(), ColorParam.stateBorder, getStereo()))); - HtmlColor backcolor = getEntity().getSpecificBackColor(); + HtmlColor backcolor = getEntity().getColors(getSkinParam()).getColor(ColorType.BACK); if (backcolor == null) { backcolor = SkinParamUtils.getColor(getSkinParam(), ColorParam.stateBackground, getStereo()); } ug = ug.apply(new UChangeBackColor(backcolor)); - ug.draw(circle); - if (entityPosition == EntityPosition.EXIT_POINT) { - final double xc = 0 + RADIUS + .5; - final double yc = 0 + RADIUS + .5; - final double radius = RADIUS - .5; - drawLine(ug, getPointOnCircle(xc, yc, Math.PI / 4, radius), - getPointOnCircle(xc, yc, Math.PI + Math.PI / 4, radius)); - drawLine(ug, getPointOnCircle(xc, yc, -Math.PI / 4, radius), - getPointOnCircle(xc, yc, Math.PI - Math.PI / 4, radius)); - } - } - - private Point2D getPointOnCircle(double xc, double yc, double angle, double radius) { - final double x = xc + radius * Math.cos(angle); - final double y = yc + radius * Math.sin(angle); - return new Point2D.Double(x, y); - } - - static private void drawLine(UGraphic ug, Point2D p1, Point2D p2) { - final double dx = p2.getX() - p1.getX(); - final double dy = p2.getY() - p1.getY(); - ug.apply(new UTranslate(p1.getX(), p1.getY())).draw(new ULine(dx, dy)); + entityPosition.drawSymbol(ug, rankdir); } public ShapeType getShapeType() { - return ShapeType.CIRCLE; + return entityPosition.getShapeType(); } public int getShield() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageStateEmptyDescription.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageStateEmptyDescription.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageStateEmptyDescription.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageStateEmptyDescription.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -51,7 +51,7 @@ import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; -import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.ShapeType; import net.sourceforge.plantuml.ugraphic.Shadowable; @@ -74,14 +74,11 @@ super(entity, skinParam); final Stereotype stereotype = entity.getStereotype(); - this.desc = TextBlockUtils.create( - entity.getDisplay(), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.STATE, stereotype), SkinParamUtils.getFontColor(getSkinParam(), FontParam.STATE, - stereotype), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam); + this.desc = entity.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.STATE, stereotype), + HorizontalAlignment.CENTER, skinParam); Display list = Display.empty(); - for (Member att : entity.getFieldsToDisplay()) { + for (Member att : entity.getBodier().getFieldsToDisplay()) { list = list.addAll(Display.getWithNewlines(att.getDisplay(true))); } @@ -112,7 +109,7 @@ ug = ug.apply(new UStroke(1.5)).apply( new UChangeColor(SkinParamUtils.getColor(getSkinParam(), ColorParam.stateBorder, getStereo()))); - HtmlColor backcolor = getEntity().getSpecificBackColor(); + HtmlColor backcolor = getEntity().getColors(getSkinParam()).getColor(ColorType.BACK); if (backcolor == null) { backcolor = SkinParamUtils.getColor(getSkinParam(), ColorParam.stateBackground, getStereo()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageState.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageState.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageState.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageState.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -53,6 +53,7 @@ import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.ShapeType; import net.sourceforge.plantuml.ugraphic.Shadowable; @@ -89,24 +90,18 @@ final Stereotype stereotype = entity.getStereotype(); this.withSymbol = stereotype != null && stereotype.isWithOOSymbol(); - this.desc = TextBlockUtils.create( - entity.getDisplay(), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.STATE, stereotype), SkinParamUtils.getFontColor(getSkinParam(), FontParam.STATE, - stereotype), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam); + this.desc = entity.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.STATE, stereotype), + HorizontalAlignment.CENTER, skinParam); Display list = Display.empty(); - for (Member att : entity.getFieldsToDisplay()) { + for (Member att : entity.getBodier().getFieldsToDisplay()) { list = list.addAll(Display.getWithNewlines(att.getDisplay(true))); } this.url = entity.getUrl99(); - this.fields = TextBlockUtils.create( - list, - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.STATE_ATTRIBUTE, stereotype), SkinParamUtils.getFontColor(getSkinParam(), - FontParam.STATE_ATTRIBUTE, stereotype), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.LEFT, skinParam); + this.fields = list.create(new FontConfiguration(getSkinParam(), FontParam.STATE_ATTRIBUTE, stereotype), + HorizontalAlignment.LEFT, skinParam); } @@ -136,12 +131,12 @@ rect.setDeltaShadow(4); } - HtmlColor classBorder = lineConfig.getSpecificLineColor(); + HtmlColor classBorder = lineConfig.getColors(getSkinParam()).getColor(ColorType.LINE); if (classBorder == null) { classBorder = SkinParamUtils.getColor(getSkinParam(), ColorParam.stateBorder, getStereo()); } ug = ug.apply(getStroke()).apply(new UChangeColor(classBorder)); - HtmlColor backcolor = getEntity().getSpecificBackColor(); + HtmlColor backcolor = getEntity().getColors(getSkinParam()).getColor(ColorType.BACK); if (backcolor == null) { backcolor = SkinParamUtils.getColor(getSkinParam(), ColorParam.stateBackground, getStereo()); } @@ -174,7 +169,7 @@ } private UStroke getStroke() { - UStroke stroke = lineConfig.getSpecificLineStroke(); + UStroke stroke = lineConfig.getColors(getSkinParam()).getSpecificLineStroke(); if (stroke == null) { stroke = new UStroke(1.5); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageSynchroBar.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageSynchroBar.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageSynchroBar.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageSynchroBar.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageTips.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageTips.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageTips.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageTips.java 2016-04-22 16:26:32.000000000 +0000 @@ -0,0 +1,165 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.svek.image; + +import java.awt.geom.Dimension2D; +import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; +import java.util.Map; + +import net.sourceforge.plantuml.ColorParam; +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.FontParam; +import net.sourceforge.plantuml.ISkinParam; +import net.sourceforge.plantuml.command.Position; +import net.sourceforge.plantuml.cucadiagram.BodyEnhanced2; +import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.IEntity; +import net.sourceforge.plantuml.cucadiagram.ILeaf; +import net.sourceforge.plantuml.graphic.FontConfiguration; +import net.sourceforge.plantuml.graphic.HorizontalAlignment; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.graphic.color.ColorType; +import net.sourceforge.plantuml.skin.rose.Rose; +import net.sourceforge.plantuml.svek.AbstractEntityImage; +import net.sourceforge.plantuml.svek.Bibliotekon; +import net.sourceforge.plantuml.svek.Shape; +import net.sourceforge.plantuml.svek.ShapeType; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class EntityImageTips extends AbstractEntityImage { + + final private Rose rose = new Rose(); + private final ISkinParam skinParam; + + private final HtmlColor noteBackgroundColor; + private final HtmlColor borderColor; + + private final Bibliotekon bibliotekon; + + private final double ySpacing = 10; + + public EntityImageTips(ILeaf entity, ISkinParam skinParam, Bibliotekon bibliotekon) { + super(entity, EntityImageNote.getSkin(skinParam, entity)); + this.skinParam = skinParam; + this.bibliotekon = bibliotekon; + + if (entity.getColors(skinParam).getColor(ColorType.BACK) == null) { + noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.noteBackground); + } else { + noteBackgroundColor = entity.getColors(skinParam).getColor(ColorType.BACK); + } + this.borderColor = rose.getHtmlColor(skinParam, ColorParam.noteBorder); + } + + private Position getPosition() { + if (getEntity().getCode().getFullName().endsWith(Position.RIGHT.name())) { + return Position.RIGHT; + } + return Position.LEFT; + } + + public ShapeType getShapeType() { + return ShapeType.RECTANGLE; + } + + public int getShield() { + return 0; + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + double width = 0; + double height = 0; + for (Map.Entry ent : getEntity().getTips().entrySet()) { + final Display display = ent.getValue(); + final Dimension2D dim = getOpale(display).calculateDimension(stringBounder); + height += dim.getHeight(); + height += ySpacing; + width = Math.max(width, dim.getWidth()); + } + return new Dimension2DDouble(width, height); + } + + public void drawU(UGraphic ug) { + final StringBounder stringBounder = ug.getStringBounder(); + + final IEntity other = bibliotekon.getOnlyOther(getEntity()); + + final Shape shapeMe = bibliotekon.getShape(getEntity()); + final Shape shapeOther = bibliotekon.getShape(other); + final Point2D positionMe = shapeMe.getPosition(); + final Point2D positionOther = shapeOther.getPosition(); + bibliotekon.getShape(getEntity()); + final Position position = getPosition(); + double height = 0; + for (Map.Entry ent : getEntity().getTips().entrySet()) { + final Display display = ent.getValue(); + final Rectangle2D memberPosition = shapeOther.getImage().getInnerPosition(ent.getKey(), stringBounder); + final Opale opale = getOpale(display); + final Dimension2D dim = opale.calculateDimension(stringBounder); + final Point2D pp1 = new Point2D.Double(0, dim.getHeight() / 2); + double x = positionOther.getX() - positionMe.getX(); + if (position == Position.RIGHT) { + x += memberPosition.getMaxX(); + } else { + x += 4; + } + if (memberPosition == null) { + return; + } + final double y = positionOther.getY() - positionMe.getY() - height + memberPosition.getCenterY(); + final Point2D pp2 = new Point2D.Double(x, y); + opale.setOpale(position.reverseDirection(), pp1, pp2); + opale.drawU(ug); + ug = ug.apply(new UTranslate(0, dim.getHeight() + ySpacing)); + height += dim.getHeight(); + height += ySpacing; + } + + } + + private Opale getOpale(final Display display) { + // final HtmlColor fontColor = rose.getFontColor(skinParam, FontParam.NOTE); + // final UFont fontNote = skinParam.getFont(FontParam.NOTE, null, false); + final TextBlock textBlock = new BodyEnhanced2(display, FontParam.NOTE, skinParam, HorizontalAlignment.LEFT, + new FontConfiguration(skinParam, FontParam.NOTE, null)); + final Opale opale = new Opale(borderColor, noteBackgroundColor, textBlock, skinParam.shadowing(), true); + return opale; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageUseCase.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageUseCase.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/EntityImageUseCase.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/EntityImageUseCase.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -52,6 +52,7 @@ import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.graphic.TextBlockUtils; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.svek.AbstractEntityImage; import net.sourceforge.plantuml.svek.ShapeType; import net.sourceforge.plantuml.ugraphic.AbstractUGraphicHorizontalLine; @@ -77,16 +78,14 @@ final Stereotype stereotype = entity.getStereotype(); final TextBlock tmp = new BodyEnhanced(entity.getDisplay(), FontParam.USECASE, skinParam, - HorizontalAlignment.CENTER, stereotype, true, false); + HorizontalAlignment.CENTER, stereotype, true, false, false); if (stereotype == null || stereotype.getLabel(false) == null) { this.desc = tmp; } else { - final TextBlock stereo = TextBlockUtils.create( - Display.getWithNewlines(stereotype.getLabel(getSkinParam().useGuillemet())), - new FontConfiguration(SkinParamUtils.getFont(getSkinParam(), - FontParam.ACTOR_STEREOTYPE, stereotype), SkinParamUtils.getFontColor(getSkinParam(), - FontParam.ACTOR_STEREOTYPE, null), getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER, skinParam); + final TextBlock stereo = Display.getWithNewlines(stereotype.getLabel(getSkinParam().useGuillemet())) + .create(new FontConfiguration(getSkinParam(), FontParam.ACTOR_STEREOTYPE, stereotype), + HorizontalAlignment.CENTER, skinParam); this.desc = TextBlockUtils.mergeTB(stereo, tmp, HorizontalAlignment.CENTER); } this.url = entity.getUrl99(); @@ -110,7 +109,7 @@ ug = ug.apply(stroke).apply( new UChangeColor(SkinParamUtils.getColor(getSkinParam(), ColorParam.usecaseBorder, getStereo()))); - HtmlColor backcolor = getEntity().getSpecificBackColor(); + HtmlColor backcolor = getEntity().getColors(getSkinParam()).getColor(ColorType.BACK); if (backcolor == null) { backcolor = SkinParamUtils.getColor(getSkinParam(), ColorParam.usecaseBackground, getStereo()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/Footprint.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/Footprint.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/Footprint.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/Footprint.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/Opale.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/Opale.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/Opale.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/Opale.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.Direction; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; @@ -51,7 +52,7 @@ import net.sourceforge.plantuml.ugraphic.UTranslate; import net.sourceforge.plantuml.utils.MathUtils; -public class Opale implements TextBlock { +public class Opale extends AbstractTextBlock implements TextBlock { private final int cornersize = 10; private final HtmlColor noteBackgroundColor; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/SmallestEnclosingCircle.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/SmallestEnclosingCircle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/SmallestEnclosingCircle.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/SmallestEnclosingCircle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/image/YTransformer.java plantuml-8039/src/net/sourceforge/plantuml/svek/image/YTransformer.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/image/YTransformer.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/image/YTransformer.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/InnerActivity.java plantuml-8039/src/net/sourceforge/plantuml/svek/InnerActivity.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/InnerActivity.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/InnerActivity.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,7 @@ import java.awt.geom.Dimension2D; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; @@ -44,7 +45,7 @@ import net.sourceforge.plantuml.ugraphic.URectangle; import net.sourceforge.plantuml.ugraphic.UStroke; -public final class InnerActivity implements IEntityImage { +public final class InnerActivity extends AbstractTextBlock implements IEntityImage { private final IEntityImage im; private final HtmlColor borderColor; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/InnerStateAutonom.java plantuml-8039/src/net/sourceforge/plantuml/svek/InnerStateAutonom.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/InnerStateAutonom.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/InnerStateAutonom.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,6 +38,7 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.Url; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; @@ -48,7 +49,7 @@ import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; -public final class InnerStateAutonom implements IEntityImage { +public final class InnerStateAutonom extends AbstractTextBlock implements IEntityImage { private final IEntityImage im; private final TextBlock title; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/IShapePseudo.java plantuml-8039/src/net/sourceforge/plantuml/svek/IShapePseudo.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/IShapePseudo.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/IShapePseudo.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/Line.java plantuml-8039/src/net/sourceforge/plantuml/svek/Line.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/Line.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/Line.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -53,10 +53,10 @@ import net.sourceforge.plantuml.cucadiagram.Link; import net.sourceforge.plantuml.cucadiagram.LinkArrow; import net.sourceforge.plantuml.cucadiagram.LinkDecor; -import net.sourceforge.plantuml.cucadiagram.LinkHat; import net.sourceforge.plantuml.cucadiagram.LinkMiddleDecor; import net.sourceforge.plantuml.cucadiagram.LinkType; import net.sourceforge.plantuml.cucadiagram.dot.GraphvizVersion; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.HtmlColor; @@ -67,12 +67,14 @@ import net.sourceforge.plantuml.graphic.UDrawable; import net.sourceforge.plantuml.graphic.USymbolFolder; import net.sourceforge.plantuml.graphic.VerticalAlignment; +import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.posimo.BezierUtils; import net.sourceforge.plantuml.posimo.DotPath; import net.sourceforge.plantuml.posimo.Moveable; import net.sourceforge.plantuml.posimo.Positionable; import net.sourceforge.plantuml.posimo.PositionableUtils; import net.sourceforge.plantuml.svek.SvekUtils.PointListIterator; +import net.sourceforge.plantuml.svek.extremity.Extremity; import net.sourceforge.plantuml.svek.extremity.ExtremityFactory; import net.sourceforge.plantuml.svek.image.EntityImageNoteLink; import net.sourceforge.plantuml.ugraphic.UChangeBackColor; @@ -85,8 +87,8 @@ public class Line implements Moveable, Hideable { - private final String ltail; - private final String lhead; + private final Cluster ltail; + private final Cluster lhead; private final Link link; private final String startUid; @@ -94,7 +96,7 @@ private final TextBlock startTailText; private final TextBlock endHeadText; - private final TextBlock noteLabelText; + private final TextBlock labelText; private final int lineColor; private final int noteLabelColor; @@ -108,7 +110,7 @@ private Positionable startTailLabelXY; private Positionable endHeadLabelXY; - private Positionable noteLabelXY; + private Positionable labelXY; private UDrawable extremity2; private UDrawable extremity1; @@ -138,7 +140,7 @@ return super.toString() + " color=" + lineColor; } - class DirectionalTextBlock implements TextBlock { + class DirectionalTextBlock extends AbstractTextBlock implements TextBlock { private final TextBlock right; private final TextBlock left; @@ -202,12 +204,16 @@ // return startUid.startsWith(Cluster.CENTER_ID); // } - public Line(String startUid, String endUid, Link link, ColorSequence colorSequence, String ltail, String lhead, + public Line(String startUid, String endUid, Link link, ColorSequence colorSequence, Cluster ltail, Cluster lhead, ISkinParam skinParam, StringBounder stringBounder, FontConfiguration labelFont, Bibliotekon bibliotekon, GraphvizVersion graphvizVersion, Pragma pragma) { if (startUid == null || endUid == null || link == null) { throw new IllegalArgumentException(); } + if (link.getColors() != null) { + skinParam = link.getColors().mute(skinParam); + labelFont = labelFont.mute(link.getColors()); + } this.graphvizVersion = graphvizVersion; this.pragma = pragma; this.bibliotekon = bibliotekon; @@ -224,7 +230,7 @@ this.endHeadColor = colorSequence.getValue(); final TextBlock labelOnly; - if (link.getLabel() == null) { + if (Display.isNull(link.getLabel())) { if (getLinkArrow() == LinkArrow.NONE) { labelOnly = null; } else { @@ -237,8 +243,8 @@ } else { final double marginLabel = startUid.equals(endUid) ? 6 : 1; final TextBlock label = TextBlockUtils.withMargin( - TextBlockUtils.create(link.getLabel(), labelFont, skinParam.getDefaultTextAlignment(), skinParam), - marginLabel, marginLabel); + link.getLabel().create(labelFont, skinParam.getDefaultTextAlignment(), skinParam), marginLabel, + marginLabel); if (getLinkArrow() == LinkArrow.NONE) { labelOnly = label; } else { @@ -258,45 +264,45 @@ if (link.getNote() == null) { noteOnly = null; } else { - noteOnly = new EntityImageNoteLink(link.getNote(), link.getNoteColor(), skinParam); + noteOnly = new EntityImageNoteLink(link.getNote(), link.getNoteColors(), skinParam); } if (labelOnly != null && noteOnly != null) { if (link.getNotePosition() == Position.LEFT) { - noteLabelText = TextBlockUtils.mergeLR(noteOnly, labelOnly, VerticalAlignment.CENTER); + labelText = TextBlockUtils.mergeLR(noteOnly, labelOnly, VerticalAlignment.CENTER); } else if (link.getNotePosition() == Position.RIGHT) { - noteLabelText = TextBlockUtils.mergeLR(labelOnly, noteOnly, VerticalAlignment.CENTER); + labelText = TextBlockUtils.mergeLR(labelOnly, noteOnly, VerticalAlignment.CENTER); } else if (link.getNotePosition() == Position.TOP) { - noteLabelText = TextBlockUtils.mergeTB(noteOnly, labelOnly, HorizontalAlignment.CENTER); + labelText = TextBlockUtils.mergeTB(noteOnly, labelOnly, HorizontalAlignment.CENTER); } else { - noteLabelText = TextBlockUtils.mergeTB(labelOnly, noteOnly, HorizontalAlignment.CENTER); + labelText = TextBlockUtils.mergeTB(labelOnly, noteOnly, HorizontalAlignment.CENTER); } } else if (labelOnly != null) { - noteLabelText = labelOnly; + labelText = labelOnly; } else if (noteOnly != null) { - noteLabelText = noteOnly; + labelText = noteOnly; } else { - noteLabelText = null; + labelText = null; } if (link.getQualifier1() == null) { startTailText = null; } else { - startTailText = TextBlockUtils.create(Display.getWithNewlines(link.getQualifier1()), labelFont, - HorizontalAlignment.CENTER, skinParam); + startTailText = Display.getWithNewlines(link.getQualifier1()).create(labelFont, HorizontalAlignment.CENTER, + skinParam); } if (link.getQualifier2() == null) { endHeadText = null; } else { - endHeadText = TextBlockUtils.create(Display.getWithNewlines(link.getQualifier2()), labelFont, - HorizontalAlignment.CENTER, skinParam); + endHeadText = Display.getWithNewlines(link.getQualifier2()).create(labelFont, HorizontalAlignment.CENTER, + skinParam); } } public boolean hasNoteLabelText() { - return noteLabelText != null; + return labelText != null; } private LinkArrow getLinkArrow() { @@ -315,7 +321,7 @@ sb.append(endUid); // } sb.append("["); - final LinkType linkType = link.getType(); + final LinkType linkType = link.getTypePatchCluster(); String decoration = linkType.getSpecificDecorationSvek(); if (decoration.endsWith(",") == false) { decoration += ","; @@ -331,10 +337,10 @@ sb.append(","); } sb.append("color=\"" + StringUtils.getAsHtml(lineColor) + "\""); - if (noteLabelText != null) { + if (labelText != null) { sb.append(","); sb.append("label=<"); - appendTable(sb, noteLabelText.calculateDimension(stringBounder), noteLabelColor); + appendTable(sb, labelText.calculateDimension(stringBounder), noteLabelColor); sb.append(">"); // sb.append(",labelfloat=true"); } @@ -354,16 +360,6 @@ // sb.append(",labelangle=0"); } - if (ltail != null) { - sb.append(","); - sb.append("ltail="); - sb.append(ltail); - } - if (lhead != null) { - sb.append(","); - sb.append("lhead="); - sb.append(lhead); - } if (link.isInvis()) { sb.append(","); sb.append("style=invis"); @@ -426,9 +422,18 @@ return endUid; } - public UDrawable getExtremity(LinkHat hat, LinkDecor decor, PointListIterator pointListIterator) { + private UDrawable getExtremity(LinkDecor decor, PointListIterator pointListIterator, Point2D center, double angle, + Cluster cluster) { final ExtremityFactory extremityFactory = decor.getExtremityFactory(); + if (cluster != null) { + if (extremityFactory != null) { + // System.err.println("angle=" + angle * 180 / Math.PI); + return extremityFactory.createUDrawable(center, angle); + } + return null; + } + if (extremityFactory != null) { final List points = pointListIterator.next(); final Point2D p0 = points.get(0); @@ -463,19 +468,52 @@ } final int end = svg.indexOf("\"", idx + 3); final String path = svg.substring(idx + 3, end); + dotPath = new DotPath(path, fullHeight); - final PointListIterator pointListIterator = new PointListIterator(svg.substring(end), fullHeight); + if (projectionCluster != null) { + // System.err.println("Line::solveLine1 projectionCluster=" + projectionCluster.getClusterPosition()); + projectionCluster.manageEntryExitPoint(TextBlockUtils.getDummyStringBounder()); + // System.err.println("Line::solveLine2 projectionCluster=" + projectionCluster.getClusterPosition()); + // if (lhead != null) + // System.err.println("Line::solveLine ltail=" + lhead.getClusterPosition()); + // if (ltail != null) + // System.err.println("Line::solveLine ltail=" + ltail.getClusterPosition()); + } + dotPath = dotPath.simulateCompound(lhead, ltail); + + PointListIterator pointListIterator = new PointListIterator(svg.substring(end), fullHeight); final LinkType linkType = link.getType(); - this.extremity2 = getExtremity(linkType.getHat2(), linkType.getDecor2(), pointListIterator); - this.extremity1 = getExtremity(linkType.getHat1(), linkType.getDecor1(), pointListIterator); + this.extremity1 = getExtremity(linkType.getDecor2(), pointListIterator, dotPath.getStartPoint(), + dotPath.getStartAngle() + Math.PI, ltail); + this.extremity2 = getExtremity(linkType.getDecor1(), pointListIterator, dotPath.getEndPoint(), + dotPath.getEndAngle(), lhead); + if (extremity1 instanceof Extremity && extremity2 instanceof Extremity) { + final Point2D p1 = ((Extremity) extremity1).somePoint(); + final Point2D p2 = ((Extremity) extremity2).somePoint(); + if (p1 != null && p2 != null) { + // http://plantuml.sourceforge.net/qa/?qa=4240/some-relations-point-wrong-direction-when-the-linetype-ortho + final double dist1start = p1.distance(dotPath.getStartPoint()); + final double dist1end = p1.distance(dotPath.getEndPoint()); + final double dist2start = p2.distance(dotPath.getStartPoint()); + final double dist2end = p2.distance(dotPath.getEndPoint()); + if (dist1start > dist1end && dist2end > dist2start) { + pointListIterator = new PointListIterator(svg.substring(end), fullHeight); + this.extremity2 = getExtremity(linkType.getDecor1(), pointListIterator, dotPath.getEndPoint(), + dotPath.getEndAngle(), lhead); + this.extremity1 = getExtremity(linkType.getDecor2(), pointListIterator, dotPath.getStartPoint(), + dotPath.getStartAngle() + Math.PI, ltail); + } + } - if (this.noteLabelText != null) { + } + + if (this.labelText != null) { final Point2D pos = getXY(svg, this.noteLabelColor, fullHeight); if (pos != null) { corner1.manage(pos); - this.noteLabelXY = TextBlockUtils.asPositionable(noteLabelText, stringBounder, pos); + this.labelXY = TextBlockUtils.asPositionable(labelText, stringBounder, pos); } } @@ -492,6 +530,7 @@ if (pos != null) { corner1.manage(pos); this.endHeadLabelXY = TextBlockUtils.asPositionable(endHeadText, stringBounder, pos); + corner1.manage(pos.getX() - 15, pos.getY()); } } @@ -548,8 +587,10 @@ if (link.isAutoLinkOfAGroup()) { final Cluster cl = bibliotekon.getCluster((IGroup) link.getEntity1()); - x += cl.getWidth(); - x -= dotPath.getStartPoint().getX() - cl.getMinX(); + if (cl != null) { + x += cl.getWidth(); + x -= dotPath.getStartPoint().getX() - cl.getMinX(); + } } x += dx; @@ -558,74 +599,67 @@ if (link.isInvis()) { return; } - if (this.link.getSpecificColor() != null) { + + if (this.link.getColors() != null) { + final HtmlColor newColor = this.link.getColors().getColor(ColorType.ARROW, ColorType.LINE); + if (newColor != null) { + color = newColor; + } + + } else if (this.link.getSpecificColor() != null) { color = this.link.getSpecificColor(); } ug = ug.apply(new UChangeBackColor(null)).apply(new UChangeColor(color)); final LinkType linkType = link.getType(); - ug = ug.apply(linkType.getStroke()); - double moveStartX = 0; - double moveStartY = 0; - double moveEndX = 0; + UStroke stroke = linkType.getStroke(); + if (link.getColors() != null && link.getColors().getSpecificLineStroke() != null) { + stroke = link.getColors().getSpecificLineStroke(); + } + ug = ug.apply(stroke); double moveEndY = 0; - if (projectionCluster != null && link.getEntity1() == projectionCluster.getGroup()) { - final DotPath copy = new DotPath(dotPath); - final Point2D start = copy.getStartPoint(); - final Point2D proj = projectionCluster.getClusterPosition().getProjectionOnFrontier(start); - moveStartX = proj.getX() - start.getX(); - moveStartY = proj.getY() - start.getY(); - copy.forceStartPoint(proj.getX(), proj.getY()); - ug.apply(new UTranslate(x, y)).draw(copy); - } else if (projectionCluster != null && link.getEntity2() == projectionCluster.getGroup()) { - final DotPath copy = new DotPath(dotPath); - final Point2D end = copy.getEndPoint(); - final Point2D proj = projectionCluster.getClusterPosition().getProjectionOnFrontier(end); - moveEndX = proj.getX() - end.getX(); - moveEndY = proj.getY() - end.getY(); - copy.forceEndPoint(proj.getX(), proj.getY()); - ug.apply(new UTranslate(x, y)).draw(copy); - } else { - if (dotPath == null) { - Log.info("DotPath is null for " + this); - return; - } - DotPath todraw = dotPath; - if (link.getEntity2().isGroup() && link.getEntity2().getUSymbol() instanceof USymbolFolder) { - final Cluster endCluster = bibliotekon.getCluster((IGroup) link.getEntity2()); - if (endCluster != null) { - final double deltaFolderH = endCluster.checkFolderPosition(dotPath.getEndPoint(), - ug.getStringBounder()); - todraw = new DotPath(dotPath); - todraw.moveEndPoint(0, deltaFolderH); - moveEndY = deltaFolderH; - } - } - ug.apply(new UTranslate(x, y)).draw(todraw); + if (dotPath == null) { + Log.info("DotPath is null for " + this); + return; + } + DotPath todraw = dotPath; + if (link.getEntity2().isGroup() && link.getEntity2().getUSymbol() instanceof USymbolFolder) { + final Cluster endCluster = bibliotekon.getCluster((IGroup) link.getEntity2()); + if (endCluster != null) { + final double deltaFolderH = endCluster + .checkFolderPosition(dotPath.getEndPoint(), ug.getStringBounder()); + todraw = new DotPath(dotPath); + todraw.moveEndPoint(0, deltaFolderH); + moveEndY = deltaFolderH; + } } + ug.apply(new UTranslate(x, y)).draw(todraw); + ug = ug.apply(new UStroke()).apply(new UChangeColor(color)); - if (this.extremity1 != null) { + if (this.extremity2 != null) { if (linkType.getDecor1().isFill()) { ug = ug.apply(new UChangeBackColor(color)); } else { ug = ug.apply(new UChangeBackColor(null)); } - this.extremity1.drawU(ug.apply(new UTranslate(x + moveEndX, y + moveEndY))); + // System.err.println("Line::draw EXTREMITY1"); + this.extremity2.drawU(ug.apply(new UTranslate(x, y))); } - if (this.extremity2 != null) { + if (this.extremity1 != null) { if (linkType.getDecor2().isFill()) { ug = ug.apply(new UChangeBackColor(color)); } else { ug = ug.apply(new UChangeBackColor(null)); } - this.extremity2.drawU(ug.apply(new UTranslate(x + moveStartX, y + moveStartY))); + // System.err.println("Line::draw EXTREMITY2"); + this.extremity1.drawU(ug.apply(new UTranslate(x, y))); } - if (this.noteLabelText != null && this.noteLabelXY != null) { - this.noteLabelText.drawU(ug.apply(new UTranslate(x + this.noteLabelXY.getPosition().getX(), y - + this.noteLabelXY.getPosition().getY()))); + if (this.labelText != null && this.labelXY != null) { + this.labelText.drawU(ug.apply(new UTranslate(x + this.labelXY.getPosition().getX(), y + + this.labelXY.getPosition().getY()))); } if (this.startTailText != null) { this.startTailText.drawU(ug.apply(new UTranslate(x + this.startTailLabelXY.getPosition().getX(), y @@ -670,8 +704,8 @@ } else { return 0; } - if (noteLabelText != null) { - strategy.eat(noteLabelText.calculateDimension(stringBounder).getWidth()); + if (labelText != null) { + strategy.eat(labelText.calculateDimension(stringBounder).getWidth()); } if (startTailText != null) { strategy.eat(startTailText.calculateDimension(stringBounder).getWidth()); @@ -694,8 +728,8 @@ return 0; } final ArithmeticStrategy strategy = new ArithmeticStrategySum(); - if (noteLabelText != null) { - strategy.eat(noteLabelText.calculateDimension(stringBounder).getHeight()); + if (labelText != null) { + strategy.eat(labelText.calculateDimension(stringBounder).getHeight()); } if (startTailText != null) { strategy.eat(startTailText.calculateDimension(stringBounder).getHeight()); @@ -846,4 +880,11 @@ return new Point2D.Double(dx + end.getX(), dy + end.getY()); } + public IEntity getOther(IEntity entity) { + if (link.contains(entity)) { + return link.getOther(entity); + } + return null; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/MinFinder.java plantuml-8039/src/net/sourceforge/plantuml/svek/MinFinder.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/MinFinder.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/MinFinder.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/Oscillator.java plantuml-8039/src/net/sourceforge/plantuml/svek/Oscillator.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/Oscillator.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/Oscillator.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/PackageStyle.java plantuml-8039/src/net/sourceforge/plantuml/svek/PackageStyle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/PackageStyle.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/PackageStyle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,6 +38,7 @@ import java.util.EnumSet; import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.USymbol; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UPath; @@ -58,6 +59,31 @@ } return null; } + + public USymbol toUSymbol() { + if (this == NODE) { + return USymbol.NODE; + } + if (this == CARD) { + return USymbol.CARD; + } + if (this == DATABASE) { + return USymbol.DATABASE; + } + if (this == CLOUD) { + return USymbol.CLOUD; + } + if (this == FRAME) { + return USymbol.FRAME; + } + if (this == RECT) { + return USymbol.RECTANGLE; + } + if (this == FOLDER) { + return USymbol.FOLDER; + } + return null; + } public void drawU(UGraphic ug, Dimension2D dim, Dimension2D titleDim, boolean shadowing) { if (titleDim == null) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/PointAndAngle.java plantuml-8039/src/net/sourceforge/plantuml/svek/PointAndAngle.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/PointAndAngle.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/PointAndAngle.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/PointDirected.java plantuml-8039/src/net/sourceforge/plantuml/svek/PointDirected.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/PointDirected.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/PointDirected.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/RoundedContainer.java plantuml-8039/src/net/sourceforge/plantuml/svek/RoundedContainer.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/RoundedContainer.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/RoundedContainer.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/Shape.java plantuml-8039/src/net/sourceforge/plantuml/svek/Shape.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/Shape.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/Shape.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,13 +40,14 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.Hideable; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.cucadiagram.EntityPosition; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.posimo.Positionable; +import net.sourceforge.plantuml.svek.image.EntityImageDescription; import net.sourceforge.plantuml.svek.image.EntityImageStateBorder; import net.sourceforge.plantuml.ugraphic.Shadowable; import net.sourceforge.plantuml.ugraphic.UPolygon; -import net.sourceforge.plantuml.StringUtils; public class Shape implements Positionable, IShapePseudo, Hideable { @@ -80,6 +81,11 @@ this.cluster = cluster; } + @Override + public String toString() { + return super.toString() + " " + image + " " + type; + } + public Shape(IEntityImage image, ShapeType type, double width, double height, ColorSequence colorSequence, boolean top, int shield, EntityPosition entityPosition) { this.entityPosition = entityPosition; @@ -179,7 +185,7 @@ private void appendShapeInternal(StringBuilder sb) { if (type == ShapeType.RECTANGLE && shield > 0) { throw new UnsupportedOperationException(); - } else if (type == ShapeType.RECTANGLE) { + } else if (type == ShapeType.RECTANGLE || type == ShapeType.FOLDER) { sb.append("shape=rect"); } else if (type == ShapeType.OCTAGON) { sb.append("shape=octagon"); @@ -261,4 +267,22 @@ return octagon; } + public Point2D getPoint2D(double x, double y) { + return new Point2D.Double(minX + x, minY + y); + } + + public Point2D projection(Point2D pt, StringBounder stringBounder) { + if (getType() != ShapeType.FOLDER) { + return pt; + } + final ClusterPosition clusterPosition = new ClusterPosition(minX, minY, minX + width, minY + height); + if (clusterPosition.isPointJustUpper(pt)) { + final Dimension2D dimName = ((EntityImageDescription) image).getNameDimension(stringBounder); + if (pt.getX() < minX + dimName.getWidth()) { + return pt; + } + return new Point2D.Double(pt.getX(), pt.getY() + dimName.getHeight() + 4); + } + return pt; + } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/ShapePseudoImpl.java plantuml-8039/src/net/sourceforge/plantuml/svek/ShapePseudoImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/ShapePseudoImpl.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/ShapePseudoImpl.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/ShapeType.java plantuml-8039/src/net/sourceforge/plantuml/svek/ShapeType.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/ShapeType.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/ShapeType.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,6 @@ public enum ShapeType { - RECTANGLE, ROUND_RECTANGLE, CIRCLE, CIRCLE_IN_RECT, OVAL, DIAMOND, OCTAGON + RECTANGLE, ROUND_RECTANGLE, CIRCLE, CIRCLE_IN_RECT, OVAL, DIAMOND, OCTAGON, FOLDER } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/SingleStrategy.java plantuml-8039/src/net/sourceforge/plantuml/svek/SingleStrategy.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/SingleStrategy.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/SingleStrategy.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,6 +39,7 @@ import java.util.Collections; import java.util.List; +import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.cucadiagram.IEntity; import net.sourceforge.plantuml.cucadiagram.ILeaf; import net.sourceforge.plantuml.cucadiagram.Link; @@ -64,11 +65,11 @@ final Link link; if (dist == branch) { final IEntity ent1 = standalones.get(headBranch); - link = new Link(ent1, ent2, linkType, null, 2); + link = new Link(ent1, ent2, linkType, Display.NULL, 2); headBranch = i; } else { final IEntity ent1 = standalones.get(i - 1); - link = new Link(ent1, ent2, linkType, null, 1); + link = new Link(ent1, ent2, linkType, Display.NULL, 1); } result.add(link); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/SvekResult.java plantuml-8039/src/net/sourceforge/plantuml/svek/SvekResult.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/SvekResult.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/SvekResult.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -39,8 +39,8 @@ import net.sourceforge.plantuml.ColorParam; import net.sourceforge.plantuml.UmlDiagramType; import net.sourceforge.plantuml.cucadiagram.dot.DotData; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.posimo.Moveable; import net.sourceforge.plantuml.skin.rose.Rose; @@ -50,7 +50,7 @@ import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; -public final class SvekResult implements IEntityImage, Moveable { +public final class SvekResult extends AbstractTextBlock implements IEntityImage, Moveable { private final Rose rose = new Rose(); @@ -67,7 +67,7 @@ public void drawU(UGraphic ug) { for (Cluster cluster : dotStringFactory.getBibliotekon().allCluster()) { - cluster.drawU(ug, dotData, new UStroke(1.5)); + cluster.drawU(ug, new UStroke(1.5), dotData.getUmlDiagramType(), dotData.getSkinParam()); } final HtmlColor color = rose.getHtmlColor(dotData.getSkinParam(), getArrowColorParam(), null); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/SvekUtils.java plantuml-8039/src/net/sourceforge/plantuml/svek/SvekUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/SvekUtils.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/SvekUtils.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/TextBlockBackcolored.java plantuml-8039/src/net/sourceforge/plantuml/svek/TextBlockBackcolored.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/TextBlockBackcolored.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/TextBlockBackcolored.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/UGraphicForSnake.java plantuml-8039/src/net/sourceforge/plantuml/svek/UGraphicForSnake.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/UGraphicForSnake.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/UGraphicForSnake.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svek/Untranslated.java plantuml-8039/src/net/sourceforge/plantuml/svek/Untranslated.java --- plantuml-8024/src/net/sourceforge/plantuml/svek/Untranslated.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svek/Untranslated.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svg/SvgData.java plantuml-8039/src/net/sourceforge/plantuml/svg/SvgData.java --- plantuml-8024/src/net/sourceforge/plantuml/svg/SvgData.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svg/SvgData.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -38,6 +38,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.StringUtils; + public final class SvgData { private String svg; @@ -93,8 +95,8 @@ while (st.hasMoreTokens()) { final String token = st.nextToken(); final StringTokenizer st2 = new StringTokenizer(token, ","); - final double x = Double.parseDouble(st2.nextToken().trim()); - final double y = Double.parseDouble(st2.nextToken().trim()); + final double x = Double.parseDouble(StringUtils.trin(st2.nextToken())); + final double y = Double.parseDouble(StringUtils.trin(st2.nextToken())); if (x < minX) { minX = x; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/svg/SvgGraphics.java plantuml-8039/src/net/sourceforge/plantuml/svg/SvgGraphics.java --- plantuml-8024/src/net/sourceforge/plantuml/svg/SvgGraphics.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/svg/SvgGraphics.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -56,6 +56,7 @@ import javax.xml.transform.stream.StreamResult; import net.sourceforge.plantuml.Log; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.code.Base64Coder; import net.sourceforge.plantuml.eps.EpsGraphics; import net.sourceforge.plantuml.graphic.HtmlColorGradient; @@ -63,7 +64,6 @@ import net.sourceforge.plantuml.ugraphic.UPath; import net.sourceforge.plantuml.ugraphic.USegment; import net.sourceforge.plantuml.ugraphic.USegmentType; -import net.sourceforge.plantuml.StringUtils; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -271,23 +271,31 @@ } public void closeLink() { - final Element element = pendingLink2.get(0); - pendingLink2.remove(0); - getG().appendChild(element); + if (pendingLink2.size() > 0) { + final Element element = pendingLink2.get(0); + pendingLink2.remove(0); + getG().appendChild(element); + } } private final List pendingLink2 = new ArrayList(); - public void openLink(String url, String title) { + public void openLink(String url, String title, String target) { if (url == null) { throw new IllegalArgumentException(); } + if (pendingLink2.size() > 0) { + closeLink(); + } + pendingLink2.add(0, (Element) document.createElement("a")); + pendingLink2.get(0).setAttribute("target", target); pendingLink2.get(0).setAttribute("xlink:href", url); if (title == null) { pendingLink2.get(0).setAttribute("xlink:title", url); } else { + title = title.replaceAll("\\\\n", "\n"); pendingLink2.get(0).setAttribute("xlink:title", title); } } @@ -387,7 +395,8 @@ } public void text(String text, double x, double y, String fontFamily, int fontSize, String fontWeight, - String fontStyle, String textDecoration, double textLength, Map attributes) { + String fontStyle, String textDecoration, double textLength, Map attributes, + String textBackColor) { if (hidden == false) { final Element elt = (Element) document.createElement("text"); elt.setAttribute("x", format(x)); @@ -409,6 +418,10 @@ if (fontFamily != null) { elt.setAttribute("font-family", fontFamily); } + if (textBackColor != null) { + final String backFilterId = getFilterBackColor(textBackColor); + elt.setAttribute("filter", "url(#" + backFilterId + ")"); + } for (Map.Entry ent : attributes.entrySet()) { elt.setAttribute(ent.getKey(), ent.getValue()); } @@ -431,8 +444,33 @@ ensureVisible(x + textLength, y); } - public final Element getDefs() { - return defs; + private final Map filterBackColor = new HashMap(); + + private String getIdFilterBackColor(String color) { + String result = filterBackColor.get(color); + if (result == null) { + result = "b" + filterBackColor.size(); + filterBackColor.put(color, result); + } + return result; + } + + private String getFilterBackColor(String color) { + String id = filterBackColor.get(color); + if (id != null) { + return id; + } + id = getIdFilterBackColor(color); + final Element filter = (Element) document.createElement("filter"); + filter.setAttribute("id", id); + filter.setAttribute("x", "0"); + filter.setAttribute("y", "0"); + filter.setAttribute("width", "1"); + filter.setAttribute("height", "1"); + addFilter(filter, "feFlood", "flood-color", color); + addFilter(filter, "feComposite", "in", "SourceGraphic"); + defs.appendChild(filter); + return id; } private Transformer getTransformer() throws TransformerException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/swing/AboutWindow.java plantuml-8039/src/net/sourceforge/plantuml/swing/AboutWindow.java --- plantuml-8024/src/net/sourceforge/plantuml/swing/AboutWindow.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/swing/AboutWindow.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/swing/ImageHelper.java plantuml-8039/src/net/sourceforge/plantuml/swing/ImageHelper.java --- plantuml-8024/src/net/sourceforge/plantuml/swing/ImageHelper.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/swing/ImageHelper.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/swing/ImageWindow2.java plantuml-8039/src/net/sourceforge/plantuml/swing/ImageWindow2.java --- plantuml-8024/src/net/sourceforge/plantuml/swing/ImageWindow2.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/swing/ImageWindow2.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,6 +44,11 @@ import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseMotionAdapter; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.BufferedImage; @@ -60,11 +65,14 @@ import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JPanel; +import javax.swing.JScrollBar; import javax.swing.JScrollPane; import javax.swing.ListModel; +import javax.swing.SwingUtilities; import javax.swing.WindowConstants; import net.sourceforge.plantuml.FileFormat; +import net.sourceforge.plantuml.FileFormatOption; import net.sourceforge.plantuml.GeneratedImage; import net.sourceforge.plantuml.graphic.GraphicStrings; import net.sourceforge.plantuml.ugraphic.ColorMapperIdentity; @@ -73,15 +81,16 @@ class ImageWindow2 extends JFrame { - final private static Preferences prefs = Preferences.userNodeForPackage(ImageWindow2.class); - final private static String KEY_ZOOM_FIT = "zoomfit"; + private final static Preferences prefs = Preferences.userNodeForPackage(ImageWindow2.class); + private final static String KEY_ZOOM_FIT = "zoomfit"; private SimpleLine2 simpleLine2; - final private JScrollPane scrollPane; + private final JScrollPane scrollPane; private final JButton next = new JButton("Next"); private final JButton copy = new JButton("Copy"); private final JButton previous = new JButton("Previous"); private final JCheckBox zoomFitButt = new JCheckBox("Zoom fit"); + private final MainWindow2 main; private final ListModel listModel; private int index; @@ -92,33 +101,40 @@ private SizeMode sizeMode = SizeMode.FULL_SIZE; + private int startX, startY; + public ImageWindow2(SimpleLine2 simpleLine, final MainWindow2 main, ListModel listModel, int index) { super(simpleLine.toString()); setIconImage(PSystemVersion.getPlantumlSmallIcon2()); this.simpleLine2 = simpleLine; this.listModel = listModel; this.index = index; + this.main = main; final JPanel north = new JPanel(); north.add(previous); north.add(copy); north.add(next); north.add(zoomFitButt); + copy.setFocusable(false); copy.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { copy(); } }); + next.setFocusable(false); next.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { next(); } }); + previous.setFocusable(false); previous.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { previous(); } }); + zoomFitButt.setFocusable(false); zoomFitButt.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { zoomFit(); @@ -140,10 +156,11 @@ } }); + this.addComponentListener(new java.awt.event.ComponentAdapter() { public void componentResized(java.awt.event.ComponentEvent e) { super.componentResized(e); - refreshImage(); + refreshImage(false); } }); @@ -153,6 +170,34 @@ sizeMode = SizeMode.ZOOM_FIT; } + this.setFocusable(true); + this.addKeyListener(new KeyAdapter() { + public void keyPressed(KeyEvent evt) { + if (evt.isControlDown() && evt.getKeyCode() == KeyEvent.VK_RIGHT) { + next(); + } else if (evt.isControlDown() && evt.getKeyCode() == KeyEvent.VK_LEFT) { + previous(); + } else if (evt.isAltDown() && evt.getKeyCode() == KeyEvent.VK_RIGHT) { + next(); + } else if (evt.isAltDown() && evt.getKeyCode() == KeyEvent.VK_LEFT) { + previous(); + } else if (evt.getKeyCode() == KeyEvent.VK_RIGHT) { + imageRight(); + } else if (evt.getKeyCode() == KeyEvent.VK_LEFT) { + imageLeft(); + } else if (evt.getKeyCode() == KeyEvent.VK_DOWN) { + imageDown(); + } else if (evt.getKeyCode() == KeyEvent.VK_UP) { + imageUp(); + } else if (evt.getKeyCode() == KeyEvent.VK_C) { + copy(); + } else if (evt.getKeyCode() == KeyEvent.VK_Z) { + zoomFitButt.setSelected(!zoomFitButt.isSelected()); + zoomFit(); + } + } + }); + } private void next() { @@ -165,6 +210,26 @@ updateSimpleLine(); } + private void imageDown() { + final JScrollBar bar = scrollPane.getVerticalScrollBar(); + bar.setValue(bar.getValue() + bar.getBlockIncrement()); + } + + private void imageUp() { + final JScrollBar bar = scrollPane.getVerticalScrollBar(); + bar.setValue(bar.getValue() - bar.getBlockIncrement()); + } + + private void imageLeft() { + final JScrollBar bar = scrollPane.getHorizontalScrollBar(); + bar.setValue(bar.getValue() - bar.getBlockIncrement()); + } + + private void imageRight() { + final JScrollBar bar = scrollPane.getHorizontalScrollBar(); + bar.setValue(bar.getValue() + bar.getBlockIncrement()); + } + private void zoomFit() { final boolean selected = zoomFitButt.isSelected(); prefs.putBoolean(KEY_ZOOM_FIT, selected); @@ -173,7 +238,7 @@ } else { sizeMode = SizeMode.FULL_SIZE; } - refreshImage(); + refreshImage(false); } private void updateSimpleLine() { @@ -185,7 +250,16 @@ } simpleLine2 = (SimpleLine2) listModel.getElementAt(index); setTitle(simpleLine2.toString()); - refreshImage(); + refreshImage(false); + } + + private void refreshSimpleLine() { + for (SimpleLine2 line : main.getCurrentDirectoryListing2()) { + if (line.getFile().equals(simpleLine2.getFile())) { + simpleLine2 = line; + setTitle(simpleLine2.toString()); + } + } } private ScrollablePicture buildScrollablePicture() { @@ -212,10 +286,10 @@ final GraphicStrings error = GraphicStrings.createDefault(Arrays.asList(msg), false); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, error.getBackcolor(), null, null, 0, 0, null, false); - imageBuilder.addUDrawable(error); + imageBuilder.setUDrawable(error); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { - imageBuilder.writeImageTOBEMOVED(FileFormat.PNG, baos); + imageBuilder.writeImageTOBEMOVED(new FileFormatOption(FileFormat.PNG), baos); baos.close(); image = ImageIO.read(new ByteArrayInputStream(baos.toByteArray())); } catch (IOException e) { @@ -224,6 +298,28 @@ } final ImageIcon imageIcon = new ImageIcon(image, simpleLine2.toString()); final ScrollablePicture scrollablePicture = new ScrollablePicture(imageIcon, 1); + + scrollablePicture.addMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent me) { + super.mousePressed(me); + startX = me.getX(); + startY = me.getY(); + } + }); + scrollablePicture.addMouseMotionListener(new MouseMotionAdapter() { + public void mouseDragged(MouseEvent me) { + super.mouseDragged(me); + final int diffX = me.getX() - startX; + final int diffY = me.getY() - startY; + + final JScrollBar hbar = scrollPane.getHorizontalScrollBar(); + hbar.setValue(hbar.getValue() - diffX); + final JScrollBar vbar = scrollPane.getVerticalScrollBar(); + vbar.setValue(vbar.getValue() - diffY); + } + }); + + return scrollablePicture; } @@ -242,9 +338,34 @@ return simpleLine2; } - public void refreshImage() { + private int v1; + private int v2; + + public void refreshImage(boolean external) { + final JScrollBar bar1 = scrollPane.getVerticalScrollBar(); + final JScrollBar bar2 = scrollPane.getHorizontalScrollBar(); + if (external && isError() == false) { + v1 = bar1.getValue(); + v2 = bar2.getValue(); + } scrollPane.setViewportView(buildScrollablePicture()); force(); + if (external) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + refreshSimpleLine(); + if (isError() == false) { + bar1.setValue(v1); + bar2.setValue(v2); + } + } + }); + } + } + + private boolean isError() { + return simpleLine2.getGeneratedImage() != null && simpleLine2.getGeneratedImage().lineErrorRaw() != -1; + } private void force() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/swing/LicenseWindow.java plantuml-8039/src/net/sourceforge/plantuml/swing/LicenseWindow.java --- plantuml-8024/src/net/sourceforge/plantuml/swing/LicenseWindow.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/swing/LicenseWindow.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/swing/MainWindow2.java plantuml-8039/src/net/sourceforge/plantuml/swing/MainWindow2.java --- plantuml-8024/src/net/sourceforge/plantuml/swing/MainWindow2.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/swing/MainWindow2.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -354,7 +354,7 @@ final File file = ent.getKey(); removeAllThatUseThisFile(file); final Future> future = ent.getValue(); - final SimpleLine2 simpleLine = new SimpleLine2(file, null, future); + final SimpleLine2 simpleLine = SimpleLine2.fromFuture(file, future); currentDirectoryListing2.add(simpleLine); changed = true; } @@ -366,7 +366,7 @@ final Future> future = line.getFuture(); for (GeneratedImage im : future.get()) { mayRefreshImageWindow(im.getPngFile()); - final SimpleLine2 simpleLine = new SimpleLine2(line.getFile(), im, null); + final SimpleLine2 simpleLine = SimpleLine2.fromGeneratedImage(line.getFile(), im); currentDirectoryListing2.add(simpleLine); } } @@ -390,7 +390,7 @@ continue; } if (pngFile.equals(win.getSimpleLine().getGeneratedImage().getPngFile())) { - win.refreshImage(); + win.refreshImage(true); } } @@ -403,4 +403,8 @@ } } + public List getCurrentDirectoryListing2() { + return Collections.unmodifiableList(currentDirectoryListing2); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/swing/ScrollablePicture.java plantuml-8039/src/net/sourceforge/plantuml/swing/ScrollablePicture.java --- plantuml-8024/src/net/sourceforge/plantuml/swing/ScrollablePicture.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/swing/ScrollablePicture.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/swing/SimpleLine2.java plantuml-8039/src/net/sourceforge/plantuml/swing/SimpleLine2.java --- plantuml-8024/src/net/sourceforge/plantuml/swing/SimpleLine2.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/swing/SimpleLine2.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -46,7 +46,15 @@ private final GeneratedImage generatedImage; private final Future> future; - public SimpleLine2(File file, GeneratedImage generatedImage, Future> future) { + public static SimpleLine2 fromFuture(File file, Future> future) { + return new SimpleLine2(file, null, future); + } + + public static SimpleLine2 fromGeneratedImage(File file, GeneratedImage generatedImage) { + return new SimpleLine2(file, generatedImage, null); + } + + private SimpleLine2(File file, GeneratedImage generatedImage, Future> future) { this.generatedImage = generatedImage; this.file = file; this.future = future; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/swing/SpriteWindow.java plantuml-8039/src/net/sourceforge/plantuml/swing/SpriteWindow.java --- plantuml-8024/src/net/sourceforge/plantuml/swing/SpriteWindow.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/swing/SpriteWindow.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -52,8 +52,8 @@ import javax.swing.Timer; import net.sourceforge.plantuml.Log; -import net.sourceforge.plantuml.ugraphic.SpriteGrayLevel; -import net.sourceforge.plantuml.ugraphic.SpriteUtils; +import net.sourceforge.plantuml.ugraphic.sprite.SpriteGrayLevel; +import net.sourceforge.plantuml.ugraphic.sprite.SpriteUtils; import net.sourceforge.plantuml.version.PSystemVersion; public class SpriteWindow extends JFrame { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/syntax/LanguageDescriptor.java plantuml-8039/src/net/sourceforge/plantuml/syntax/LanguageDescriptor.java --- plantuml-8024/src/net/sourceforge/plantuml/syntax/LanguageDescriptor.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/syntax/LanguageDescriptor.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -79,6 +79,7 @@ keyword.add("as"); keyword.add("also"); keyword.add("autonumber"); + keyword.add("caption"); keyword.add("title"); keyword.add("newpage"); keyword.add("box"); @@ -90,6 +91,9 @@ keyword.add("break"); keyword.add("critical"); keyword.add("note"); + keyword.add("rnote"); + keyword.add("hnote"); + keyword.add("legend"); keyword.add("group"); keyword.add("left"); keyword.add("right"); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/syntax/SyntaxChecker.java plantuml-8039/src/net/sourceforge/plantuml/syntax/SyntaxChecker.java --- plantuml-8024/src/net/sourceforge/plantuml/syntax/SyntaxChecker.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/syntax/SyntaxChecker.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -96,6 +96,7 @@ result.setError(true); final PSystemError sys = (PSystemError) system; result.setErrorLinePosition(sys.getHigherErrorPosition()); + result.setLineLocation(sys.getLineLocation()); for (ErrorUml er : sys.getErrorsUml()) { result.addErrorText(er.getError()); } @@ -129,6 +130,7 @@ result.setError(true); final PSystemError sys = (PSystemError) system; result.setErrorLinePosition(sys.getHigherErrorPosition()); + result.setLineLocation(sys.getLineLocation()); for (ErrorUml er : sys.getErrorsUml()) { result.addErrorText(er.getError()); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/syntax/SyntaxResult.java plantuml-8039/src/net/sourceforge/plantuml/syntax/SyntaxResult.java --- plantuml-8024/src/net/sourceforge/plantuml/syntax/SyntaxResult.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/syntax/SyntaxResult.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -42,6 +42,7 @@ import java.util.TreeSet; import net.sourceforge.plantuml.FileFormatOption; +import net.sourceforge.plantuml.LineLocation; import net.sourceforge.plantuml.PSystemError; import net.sourceforge.plantuml.UmlDiagramType; @@ -55,6 +56,7 @@ private List suggest; private boolean hasCmapData; private PSystemError systemError; + private LineLocation lineLocation; public UmlDiagramType getUmlDiagramType() { return umlDiagramType; @@ -124,4 +126,12 @@ systemError.exportDiagram(os, 0, fileFormatOption); } + public void setLineLocation(LineLocation lineLocation) { + this.lineLocation = lineLocation; + } + + public LineLocation getLineLocation() { + return lineLocation; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/telnet/AcceptTelnetClient.java plantuml-8039/src/net/sourceforge/plantuml/telnet/AcceptTelnetClient.java --- plantuml-8024/src/net/sourceforge/plantuml/telnet/AcceptTelnetClient.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/telnet/AcceptTelnetClient.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/telnet/TelnetServer.java plantuml-8039/src/net/sourceforge/plantuml/telnet/TelnetServer.java --- plantuml-8024/src/net/sourceforge/plantuml/telnet/TelnetServer.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/telnet/TelnetServer.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/tikz/TikzGraphics.java plantuml-8039/src/net/sourceforge/plantuml/tikz/TikzGraphics.java --- plantuml-8024/src/net/sourceforge/plantuml/tikz/TikzGraphics.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/tikz/TikzGraphics.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,6 +44,7 @@ import java.util.Map; import net.sourceforge.plantuml.Log; +import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.eps.EpsGraphics; import net.sourceforge.plantuml.ugraphic.UPath; import net.sourceforge.plantuml.ugraphic.USegment; @@ -56,6 +57,7 @@ // http://cremeronline.com/LaTeX/minimaltikz.pdf private final List cmd = new ArrayList(); + private final boolean withPreamble; private Color color = Color.BLACK; private Color fillcolor = Color.BLACK; @@ -64,6 +66,10 @@ private final Map colornames = new LinkedHashMap(); + public TikzGraphics(boolean withPreamble) { + this.withPreamble = withPreamble; + } + private String getColorName(Color c) { if (c.equals(Color.WHITE)) { return "white"; @@ -79,12 +85,51 @@ } public void createData(OutputStream os) throws IOException { - out(os, "\\documentclass{article}"); - out(os, "\\usepackage{tikz}"); - out(os, "\\usepackage{aeguill}"); - // out(os, "\\usetikzlibrary{trees}"); - out(os, "\\begin{document}"); + if (withPreamble) { + out(os, "\\documentclass{article}"); + out(os, "\\usepackage{tikz}"); + out(os, "\\usepackage{aeguill}"); + if (hasUrl) { + out(os, "\\usetikzlibrary{calc}"); + out(os, "\\usepackage{hyperref}"); + } + out(os, "\\begin{document}"); + } out(os, "% generated by Plantuml " + Version.versionString(10)); + if (hasUrl && withPreamble) { + out(os, "\\tikzset{"); + out(os, " href node/.style={"); + out(os, " alias=sourcenode,"); + out(os, " append after command={"); + out(os, " let \\p1 = (sourcenode.north west),"); + out(os, " \\p2=(sourcenode.south east),"); + out(os, " \\n1={\\x2-\\x1},"); + out(os, " \\n2={\\y2-\\y1} in"); + out(os, + " node [inner sep=0pt, outer sep=0pt,anchor=north west,at=(\\p1)] {\\href{#1}{\\XeTeXLinkBox{\\phantom{\\rule{\\n1}{\\n2}}}}}"); + out(os, " %xelatex needs \\XeTeXLinkBox, won't create a link unless it"); + out(os, " %finds text --- rules don't work without \\XeTeXLinkBox."); + out(os, " %Still builds correctly with pdflatex and lualatex"); + out(os, " }"); + out(os, " }"); + out(os, "}"); + out(os, "\\tikzset{"); + out(os, " hyperref node/.style={"); + out(os, " alias=sourcenode,"); + out(os, " append after command={"); + out(os, " let \\p1 = (sourcenode.north west),"); + out(os, " \\p2=(sourcenode.south east),"); + out(os, " \\n1={\\x2-\\x1},"); + out(os, " \\n2={\\y2-\\y1} in"); + out(os, + " node [inner sep=0pt, outer sep=0pt,anchor=north west,at=(\\p1)] {\\hyperref [#1]{\\XeTeXLinkBox{\\phantom{\\rule{\\n1}{\\n2}}}}}"); + out(os, " %xelatex needs \\XeTeXLinkBox, won't create a link unless it"); + out(os, " %finds text --- rules don't work without \\XeTeXLinkBox."); + out(os, " %Still builds correctly with pdflatex and lualatex"); + out(os, " }"); + out(os, " }"); + out(os, "}"); + } for (Map.Entry ent : colornames.entrySet()) { out(os, definecolor(ent.getValue(), ent.getKey())); @@ -94,7 +139,9 @@ out(os, s); } out(os, "\\end{tikzpicture}"); - out(os, "\\end{document}"); + if (withPreamble) { + out(os, "\\end{document}"); + } } private String definecolor(String name, Color color) { @@ -104,19 +151,45 @@ public void rectangle(double x, double y, double width, double height) { final StringBuilder sb = new StringBuilder(); - sb.append("\\draw["); - if (color != null) { - sb.append("color=" + getColorName(color) + ","); - } - if (fillcolor != null) { - sb.append("fill=" + getColorName(fillcolor) + ","); - if (color == null) { - sb.append("color=" + getColorName(fillcolor) + ","); + if (pendingUrl == null) { + sb.append("\\draw["); + if (color != null) { + sb.append("color=" + getColorName(color) + ","); + } + if (fillcolor != null) { + sb.append("fill=" + getColorName(fillcolor) + ","); + if (color == null) { + sb.append("color=" + getColorName(fillcolor) + ","); + } + } + sb.append("line width=" + thickness + "pt] "); + sb.append(couple(x, y) + " rectangle " + couple(x + width, y + height)); + sb.append(";"); + } else { + sb.append("\\node at " + couple(x, y) + "[draw, "); + if (color != null) { + sb.append("color=" + getColorName(color) + ","); } + if (fillcolor != null) { + sb.append("fill=" + getColorName(fillcolor) + ","); + if (color == null) { + sb.append("color=" + getColorName(fillcolor) + ","); + } + } + sb.append("line width=" + thickness + "pt,"); + sb.append("below right,"); + sb.append("inner sep=2ex,"); + sb.append("minimum width=" + format(width) + "pt,"); + sb.append("minimum height=" + format(height) + "pt,"); + if (Url.isLatex(pendingUrl)) { + sb.append("hyperref node=" + extractInternalHref(pendingUrl)); + } else { + sb.append("href node=" + pendingUrl); + } + sb.append("] "); + sb.append(" {};"); + urlIgnoreText = true; } - sb.append("line width=" + thickness + "pt] "); - sb.append(couple(x, y) + " rectangle " + couple(x + width, y + height)); - sb.append(";"); cmd.add(sb.toString()); } @@ -134,8 +207,36 @@ } public void text(double x, double y, String text) { - final String s = "\\node at " + couple(x, y) + "[below right]{" + protectText(text) + "};"; - cmd.add(s); + final StringBuilder sb = new StringBuilder("\\node at " + couple(x, y) + "[below right]{"); + if (pendingUrl == null || urlIgnoreText) { + sb.append(protectText(text)); + } else { + appendPendingUrl(sb); + sb.append("{"); + sb.append(protectText(text)); + sb.append("}"); + } + sb.append("};"); + cmd.add(sb.toString()); + } + + private void appendPendingUrl(final StringBuilder sb) { + if (Url.isLatex(pendingUrl)) { + sb.append("\\hyperref["); + sb.append(extractInternalHref(pendingUrl)); + sb.append("]"); + } else { + sb.append("\\href{"); + sb.append(pendingUrl); + sb.append("}"); + } + } + + private static String extractInternalHref(String pendingUrl) { + if (Url.isLatex(pendingUrl) == false) { + throw new IllegalArgumentException(); + } + return pendingUrl.substring("latex://".length()); } private String protectText(String text) { @@ -299,4 +400,34 @@ this.dash = dash; } + private String pendingUrl = null; + private boolean urlIgnoreText = false; + private boolean hasUrl = false; + + public void openLink(String url, String title) { + if (url == null) { + throw new IllegalArgumentException(); + } + this.hasUrl = true; + this.urlIgnoreText = false; + this.pendingUrl = url; + // + // if (pendingLink2.size() > 0) { + // closeLink(); + // } + // + // pendingLink2.add(0, (Element) document.createElement("a")); + // pendingLink2.get(0).setAttribute("target", target); + // pendingLink2.get(0).setAttribute("xlink:href", url); + // if (title == null) { + // pendingLink2.get(0).setAttribute("xlink:title", url); + // } else { + // pendingLink2.get(0).setAttribute("xlink:title", title); + // } + } + + public void closeLink() { + this.pendingUrl = null; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/AbstractCommonUGraphic.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/AbstractCommonUGraphic.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/AbstractCommonUGraphic.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/AbstractCommonUGraphic.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/AbstractPlacementStrategy.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/AbstractPlacementStrategy.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/AbstractPlacementStrategy.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/AbstractPlacementStrategy.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/AbstractShadowable.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/AbstractShadowable.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/AbstractShadowable.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/AbstractShadowable.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphicHorizontalLine.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphicHorizontalLine.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphicHorizontalLine.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphicHorizontalLine.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,9 +34,6 @@ */ package net.sourceforge.plantuml.ugraphic; -import java.io.IOException; -import java.io.OutputStream; - import net.sourceforge.plantuml.graphic.UGraphicDelegator; public abstract class AbstractUGraphicHorizontalLine extends UGraphicDelegator { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphic.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphic.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphic.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphic.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/arc/ExtendedGeneralPath.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/arc/ExtendedGeneralPath.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/arc/ExtendedGeneralPath.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/arc/ExtendedGeneralPath.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/arc/ExtendedPathIterator.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/arc/ExtendedPathIterator.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/arc/ExtendedPathIterator.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/arc/ExtendedPathIterator.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ClipContainer.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ClipContainer.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ClipContainer.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ClipContainer.java 2016-04-22 16:26:32.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ColorChangerMonochrome.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ColorChangerMonochrome.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ColorChangerMonochrome.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ColorChangerMonochrome.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ColorMapperIdentity.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ColorMapperIdentity.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ColorMapperIdentity.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ColorMapperIdentity.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ColorMapper.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ColorMapper.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ColorMapper.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ColorMapper.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ColorMapperMonochrome.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ColorMapperMonochrome.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ColorMapperMonochrome.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ColorMapperMonochrome.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ColorMapperTransparentWrapper.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ColorMapperTransparentWrapper.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ColorMapperTransparentWrapper.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ColorMapperTransparentWrapper.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/CompressionTransform.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/CompressionTransform.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/CompressionTransform.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/CompressionTransform.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/crossing/UGraphicCrossing.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/crossing/UGraphicCrossing.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/crossing/UGraphicCrossing.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/crossing/UGraphicCrossing.java 2016-04-22 16:26:33.000000000 +0000 @@ -0,0 +1,194 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.ugraphic.crossing; + +import java.awt.geom.Point2D; +import java.util.ArrayList; +import java.util.List; + +import net.sourceforge.plantuml.Url; +import net.sourceforge.plantuml.cute.Balloon; +import net.sourceforge.plantuml.cute.CrossingSegment; +import net.sourceforge.plantuml.geom.LineSegmentDouble; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.posimo.DotPath; +import net.sourceforge.plantuml.ugraphic.ColorMapper; +import net.sourceforge.plantuml.ugraphic.UChange; +import net.sourceforge.plantuml.ugraphic.UChangeBackColor; +import net.sourceforge.plantuml.ugraphic.UChangeColor; +import net.sourceforge.plantuml.ugraphic.UEllipse; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UParam; +import net.sourceforge.plantuml.ugraphic.UShape; +import net.sourceforge.plantuml.ugraphic.UTranslate; + +public class UGraphicCrossing implements UGraphic { + + private final UGraphic ug; + private final List lines; + private final UTranslate translate; + + static class Pending { + final UGraphic ug; + final LineSegmentDouble segment; + final UTranslate translate; + + Pending(UGraphic ug, UTranslate translate, LineSegmentDouble segment) { + this.ug = ug; + this.segment = segment; + this.translate = translate; + } + + void drawNow(HtmlColor color) { + if (color == null) { + segment.draw(ug); + } else { + segment.draw(ug.apply(new UChangeColor(color))); + } + } + + List getCollisionsWith(List others) { + final List result = new ArrayList(); + for (Pending other : others) { + if (isClose(segment.getP1(), other.segment.getP1()) || isClose(segment.getP1(), other.segment.getP2()) + || isClose(segment.getP2(), other.segment.getP1()) + || isClose(segment.getP2(), other.segment.getP2())) { + continue; + } + final Point2D inter = segment.getSegIntersection(other.segment); + if (inter != null) { + result.add(inter); + } + } + return result; + } + } + + public UGraphicCrossing(UGraphic ug) { + this(ug, new UTranslate(), new ArrayList()); + } + + private static boolean isClose(Point2D p1, Point2D p2) { + return p1.distance(p2) < 0.1; + } + + private UGraphicCrossing(UGraphic ug, UTranslate translate, List lines) { + this.ug = ug; + this.translate = translate; + this.lines = lines; + } + + public StringBounder getStringBounder() { + return ug.getStringBounder(); + } + + public UParam getParam() { + return ug.getParam(); + } + + public void draw(UShape shape) { + if (shape instanceof DotPath) { + drawDotPath((DotPath) shape); + } else { + ug.draw(shape); + } + } + + private void drawDotPath(DotPath dotPath) { + if (dotPath.isLine()) { + for (LineSegmentDouble seg : dotPath.getLineSegments()) { + lines.add(new Pending(ug.apply(translate.reverse()), translate, seg.translate(translate))); + } + } else { + ug.draw(dotPath); + } + } + + public UGraphic apply(UChange change) { + if (change instanceof UTranslate) { + return new UGraphicCrossing(ug.apply(change), translate.compose((UTranslate) change), lines); + } else { + return new UGraphicCrossing(ug.apply(change), translate, lines); + } + } + + public ColorMapper getColorMapper() { + return ug.getColorMapper(); + } + + public void startUrl(Url url) { + ug.startUrl(url); + } + + public void closeAction() { + ug.closeAction(); + } + + public void flushUg() { + final List pendings = new ArrayList(); + final List balloons = new ArrayList(); + for (Pending p : lines) { + final List tmp = p.getCollisionsWith(lines); + for (Point2D pt : tmp) { + balloons.add(new Balloon(pt, 5)); + } + // if (tmp.size() == 0) { + // p.drawNow(null); + // } else { + // pendings.add(p); + // } + } + for (Balloon b : balloons) { + b.drawU(ug.apply(new UChangeBackColor(HtmlColorUtils.GREEN)).apply(new UChangeColor(HtmlColorUtils.GREEN))); + } + for (Pending p : lines) { + for (Balloon b : balloons) { + List pts = new CrossingSegment(b, p.segment).intersection(); + for (Point2D pt : pts) { + final Balloon s2 = new Balloon(pt, 2); + s2.drawU(ug.apply(new UChangeBackColor(HtmlColorUtils.BLUE)).apply(new UChangeColor(HtmlColorUtils.BLUE))); + } + } + } + ug.flushUg(); + } + + public boolean isSpecialTxt() { + return false; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverCenteredCharacterEps.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverCenteredCharacterEps.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverCenteredCharacterEps.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverCenteredCharacterEps.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverDotPathEps.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverDotPathEps.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverDotPathEps.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverDotPathEps.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverEllipseEps.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverEllipseEps.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverEllipseEps.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverEllipseEps.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverImageEps.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverImageEps.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverImageEps.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverImageEps.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverLineEps.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverLineEps.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverLineEps.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverLineEps.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverPathEps.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverPathEps.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverPathEps.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverPathEps.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverPolygonEps.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverPolygonEps.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverPolygonEps.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverPolygonEps.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverRectangleEps.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverRectangleEps.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverRectangleEps.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverRectangleEps.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverTextEps.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverTextEps.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/DriverTextEps.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/DriverTextEps.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/UGraphicEps.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/UGraphicEps.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/eps/UGraphicEps.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/eps/UGraphicEps.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/FontChecker.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/FontChecker.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/FontChecker.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/FontChecker.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -53,6 +53,7 @@ import javax.xml.transform.TransformerException; import net.sourceforge.plantuml.FileFormat; +import net.sourceforge.plantuml.FileFormatOption; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.HtmlColorUtils; import net.sourceforge.plantuml.graphic.TextBlockUtils; @@ -165,22 +166,22 @@ public BufferedImage getBufferedImage(final char c) throws IOException { assert c != '\t'; - final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1, null, null, null, 0, 0, null, false); + final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1, null, null, null, 0, 0, null, + false); final double dim = 20; - imageBuilder.addUDrawable(new UDrawable() { + imageBuilder.setUDrawable(new UDrawable() { public void drawU(UGraphic ug) { ug = ug.apply(new UChangeColor(HtmlColorUtils.BLACK)); ug.draw(new URectangle(dim - 1, dim - 1)); if (ug instanceof UGraphic2) { ug = (UGraphic2) ug.apply(new UTranslate(dim / 3, 2 * dim / 3)); - final UText text = new UText("" + c, new FontConfiguration(font, HtmlColorUtils.BLACK, - HtmlColorUtils.BLUE, true)); + final UText text = new UText("" + c, FontConfiguration.blackBlueTrue(font)); ug.draw(text); } } }); final ByteArrayOutputStream os = new ByteArrayOutputStream(); - imageBuilder.writeImageTOBEMOVED(FileFormat.PNG, os); + imageBuilder.writeImageTOBEMOVED(new FileFormatOption(FileFormat.PNG), os); os.close(); return ImageIO.read(new ByteArrayInputStream(os.toByteArray())); } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverCenteredCharacterG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverCenteredCharacterG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverCenteredCharacterG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverCenteredCharacterG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverDotPathG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverDotPathG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverDotPathG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverDotPathG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverEllipseG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverEllipseG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverEllipseG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverEllipseG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverImageG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverImageG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverImageG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverImageG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverLineG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverLineG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverLineG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverLineG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathG2dLegacy.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathG2dLegacy.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathG2dLegacy.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathG2dLegacy.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathOldG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathOldG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathOldG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPathOldG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPixelG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPixelG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPixelG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPixelG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPolygonG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPolygonG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPolygonG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPolygonG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverRectangleG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverRectangleG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverRectangleG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverRectangleG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverShadowedG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverShadowedG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverShadowedG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverShadowedG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -100,6 +100,8 @@ destination = simpleBlur.filter(destination, null); } catch (OutOfMemoryError error) { Log.info("Warning: Cannot draw shadow, image too big."); + } catch (Exception e) { + Log.info("Warning: Cannot draw shadow: " + e); } if (destination != null) { final AffineTransform at = g2d.getTransform(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextAsPathG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextAsPathG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextAsPathG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextAsPathG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -83,7 +83,7 @@ final FontConfiguration fontConfiguration = shape.getFontConfiguration(); final UFont font = fontConfiguration.getFont().scaled(param.getScale()); - final Dimension2D dimBack = calculateDimension(StringBounderUtils.asStringBounder(g2d), font, shape.getText()); + final Dimension2D dimBack = calculateDimension(StringBounderUtils.asStringBounder(), font, shape.getText()); if (fontConfiguration.containsStyle(FontStyle.BACKCOLOR)) { final Color extended = mapper.getMappedColor(fontConfiguration.getExtendedColor()); if (extended != null) { @@ -108,14 +108,14 @@ if (extended != null) { g2d.setColor(mapper.getMappedColor(extended)); } - final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(g2d), font, shape.getText()); + final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(), font, shape.getText()); final int ypos = (int) (y + 2.5); g2d.setStroke(new BasicStroke((float) 1)); g2d.drawLine((int) x, ypos, (int) (x + dim.getWidth()), ypos); g2d.setStroke(new BasicStroke()); } if (fontConfiguration.containsStyle(FontStyle.WAVE)) { - final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(g2d), font, shape.getText()); + final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(), font, shape.getText()); final int ypos = (int) (y + 2.5) - 1; final HtmlColor extended = fontConfiguration.getExtendedColor(); if (extended != null) { @@ -127,7 +127,7 @@ } } if (fontConfiguration.containsStyle(FontStyle.STRIKE)) { - final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(g2d), font, shape.getText()); + final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(), font, shape.getText()); final FontMetrics fm = g2d.getFontMetrics(font.getFont()); final int ypos = (int) (y - fm.getDescent() - 0.5); final HtmlColor extended = fontConfiguration.getExtendedColor(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -79,7 +79,7 @@ final FontConfiguration fontConfiguration = shape.getFontConfiguration(); final UFont font = fontConfiguration.getFont().scaled(param.getScale()); - final Dimension2D dimBack = calculateDimension(StringBounderUtils.asStringBounder(g2d), font, shape.getText()); + final Dimension2D dimBack = calculateDimension(StringBounderUtils.asStringBounder(), font, shape.getText()); if (fontConfiguration.containsStyle(FontStyle.BACKCOLOR)) { final Color extended = mapper.getMappedColor(fontConfiguration.getExtendedColor()); if (extended != null) { @@ -101,14 +101,14 @@ if (extended != null) { g2d.setColor(mapper.getMappedColor(extended)); } - final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(g2d), font, shape.getText()); + final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(), font, shape.getText()); final int ypos = (int) (y + 2.5); g2d.setStroke(new BasicStroke((float) 1)); g2d.drawLine((int) x, ypos, (int) (x + dim.getWidth()), ypos); g2d.setStroke(new BasicStroke()); } if (fontConfiguration.containsStyle(FontStyle.WAVE)) { - final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(g2d), font, shape.getText()); + final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(), font, shape.getText()); final int ypos = (int) (y + 2.5) - 1; final HtmlColor extended = fontConfiguration.getExtendedColor(); if (extended != null) { @@ -120,7 +120,7 @@ } } if (fontConfiguration.containsStyle(FontStyle.STRIKE)) { - final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(g2d), font, shape.getText()); + final Dimension2D dim = calculateDimension(StringBounderUtils.asStringBounder(), font, shape.getText()); final FontMetrics fm = g2d.getFontMetrics(font.getFont()); final int ypos = (int) (y - fm.getDescent() - 0.5); final HtmlColor extended = fontConfiguration.getExtendedColor(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/UGraphicG2d.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/UGraphicG2d.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/g2d/UGraphicG2d.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/g2d/UGraphicG2d.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -157,7 +157,7 @@ if (hasAffineTransform) { return TextBlockUtils.getDummyStringBounder(); } - return StringBounderUtils.asStringBounder(getGraphicObject()); + return StringBounderUtils.asStringBounder(); } @Override diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/HandJiggle.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/HandJiggle.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/HandJiggle.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/HandJiggle.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/UDotPathHand.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/UDotPathHand.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/UDotPathHand.java 2015-05-03 15:06:25.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/UDotPathHand.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/UEllipseHand.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/UEllipseHand.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/UEllipseHand.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/UEllipseHand.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/UGraphicHandwritten.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/UGraphicHandwritten.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/UGraphicHandwritten.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/UGraphicHandwritten.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/ULineHand.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/ULineHand.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/ULineHand.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/ULineHand.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/UPathHand.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/UPathHand.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/UPathHand.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/UPathHand.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/UPolygonHand.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/UPolygonHand.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/UPolygonHand.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/UPolygonHand.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/URectangleHand.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/URectangleHand.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/hand/URectangleHand.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/hand/URectangleHand.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -48,7 +48,7 @@ final HandJiggle jiggle; final double rx = Math.min(rectangle.getRx() / 2, width / 2); final double ry = Math.min(rectangle.getRy() / 2, height / 2); - System.err.println("rx=" + rx + " ry=" + ry); + // System.err.println("rx=" + rx + " ry=" + ry); if (rx == 0 && ry == 0) { jiggle = new HandJiggle(0, 0, 1.5); jiggle.lineTo(width, 0); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/html5/DriverLineHtml5.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/html5/DriverLineHtml5.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/html5/DriverLineHtml5.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/html5/DriverLineHtml5.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/html5/DriverNopHtml5.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/html5/DriverNopHtml5.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/html5/DriverNopHtml5.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/html5/DriverNopHtml5.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/html5/DriverRectangleHtml5.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/html5/DriverRectangleHtml5.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/html5/DriverRectangleHtml5.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/html5/DriverRectangleHtml5.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/html5/Html5Drawer.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/html5/Html5Drawer.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/html5/Html5Drawer.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/html5/Html5Drawer.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/html5/UGraphicHtml5.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/html5/UGraphicHtml5.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/html5/UGraphicHtml5.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/html5/UGraphicHtml5.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -55,7 +55,10 @@ import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.EmptyImageBuilder; import net.sourceforge.plantuml.FileFormat; +import net.sourceforge.plantuml.FileFormatOption; import net.sourceforge.plantuml.FileUtils; +import net.sourceforge.plantuml.OptionFlags; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.Url; import net.sourceforge.plantuml.anim.AffineTransformation; import net.sourceforge.plantuml.anim.Animation; @@ -70,6 +73,7 @@ import net.sourceforge.plantuml.graphic.TextBlockUtils; import net.sourceforge.plantuml.graphic.UDrawable; import net.sourceforge.plantuml.mjpeg.MJPEGGenerator; +import net.sourceforge.plantuml.ugraphic.crossing.UGraphicCrossing; import net.sourceforge.plantuml.ugraphic.eps.UGraphicEps; import net.sourceforge.plantuml.ugraphic.g2d.UGraphicG2d; import net.sourceforge.plantuml.ugraphic.hand.UGraphicHandwritten; @@ -77,7 +81,6 @@ import net.sourceforge.plantuml.ugraphic.svg.UGraphicSvg; import net.sourceforge.plantuml.ugraphic.tikz.UGraphicTikz; import net.sourceforge.plantuml.ugraphic.visio.UGraphicVdx; -import net.sourceforge.plantuml.StringUtils; public class ImageBuilder { @@ -88,17 +91,13 @@ private final String warningOrError; private final double margin1; private final double margin2; - private final Animation affineTransformations; + private final Animation animation; private final boolean useHandwritten; - // private final AffineTransform affineTransform; - // private final boolean withMetadata; - // private final boolean useRedForError; - private UDrawable udrawable; public ImageBuilder(ColorMapper colorMapper, double dpiFactor, HtmlColor mybackcolor, String metadata, - String warningOrError, double margin1, double margin2, Animation affineTransformations, + String warningOrError, double margin1, double margin2, Animation animation, boolean useHandwritten) { this.colorMapper = colorMapper; this.dpiFactor = dpiFactor; @@ -107,41 +106,41 @@ this.warningOrError = warningOrError; this.margin1 = margin1; this.margin2 = margin2; - this.affineTransformations = affineTransformations; + this.animation = animation; this.useHandwritten = useHandwritten; } - public void addUDrawable(UDrawable udrawable) { + public void setUDrawable(UDrawable udrawable) { this.udrawable = udrawable; } - public ImageData writeImageTOBEMOVED(FileFormat fileFormat, OutputStream os) throws IOException { + public ImageData writeImageTOBEMOVED(FileFormatOption fileFormatOption, OutputStream os) throws IOException { + final FileFormat fileFormat = fileFormatOption.getFileFormat(); if (fileFormat == FileFormat.MJPEG) { return writeImageMjpeg(os); } else if (fileFormat == FileFormat.ANIMATED_GIF) { return writeImageAnimatedGif(os); } - return writeImageTOBEMOVED(fileFormat, os, affineTransformations); + return writeImageInternal(fileFormatOption, os, animation); } - private ImageData writeImageTOBEMOVED(FileFormat fileFormat, OutputStream os, Animation affineTransforms) + private ImageData writeImageInternal(FileFormatOption fileFormatOption, OutputStream os, Animation animationArg) throws IOException { - final LimitFinder limitFinder = new LimitFinder(TextBlockUtils.getDummyStringBounder(), true); - udrawable.drawU(limitFinder); - Dimension2D dim = new Dimension2DDouble(limitFinder.getMaxX() + 1 + margin1 + margin2, limitFinder.getMaxY() - + 1 + margin1 + margin2); + Dimension2D dim = getFinalDimension(); double dx = 0; double dy = 0; - if (affineTransforms != null) { - final MinMax minmax = affineTransformations.getMinMax(dim); - affineTransforms.setDimension(dim); + if (animationArg != null) { + final MinMax minmax = animation.getMinMax(dim); + animationArg.setDimension(dim); dim = minmax.getDimension(); dx = -minmax.getMinX(); dy = -minmax.getMinY(); } - final UGraphic2 ug = createUGraphic(fileFormat, dim, affineTransforms, dx, dy); - udrawable.drawU(handwritten(ug.apply(new UTranslate(margin1, margin1)))); + final UGraphic2 ug = createUGraphic(fileFormatOption, dim, animationArg, dx, dy); + final UGraphic ugDecored = handwritten(ug.apply(new UTranslate(margin1, margin1))); + udrawable.drawU(ugDecored); + ugDecored.flushUg(); ug.writeImageTOBEMOVED(os, metadata, 96); os.flush(); @@ -156,11 +155,23 @@ return new ImageDataSimple(dim); } + public Dimension2D getFinalDimension() { + final LimitFinder limitFinder = new LimitFinder(TextBlockUtils.getDummyStringBounder(), true); + udrawable.drawU(limitFinder); + Dimension2D dim = new Dimension2DDouble(limitFinder.getMaxX() + 1 + margin1 + margin2, limitFinder.getMaxY() + + 1 + margin1 + margin2); + return dim; + } + private UGraphic handwritten(UGraphic ug) { if (useHandwritten) { return new UGraphicHandwritten(ug); } - return ug; + if (OptionFlags.OMEGA_CROSSING) { + return new UGraphicCrossing(ug); + } else { + return ug; + } } private ImageData writeImageMjpeg(OutputStream os) throws IOException { @@ -201,7 +212,7 @@ final Dimension2D dim = new Dimension2DDouble(limitFinder.getMaxX() + 1 + margin1 + margin2, limitFinder.getMaxY() + 1 + margin1 + margin2); - final MinMax minmax = affineTransformations.getMinMax(dim); + final MinMax minmax = animation.getMinMax(dim); final AnimatedGifEncoder e = new AnimatedGifEncoder(); // e.setQuality(1); @@ -212,7 +223,7 @@ e.setDelay(60); // 16 frame per sec // e.setDelay(50); // 20 frame per sec - for (AffineTransformation at : affineTransformations.getAll()) { + for (AffineTransformation at : animation.getAll()) { final ImageIcon ii = new ImageIcon(getAviImage(at)); e.addFrame((BufferedImage) ii.getImage()); } @@ -223,7 +234,7 @@ private Image getAviImage(AffineTransformation affineTransform) throws IOException { final ByteArrayOutputStream baos = new ByteArrayOutputStream(); - writeImageTOBEMOVED(FileFormat.PNG, baos, Animation.singleton(affineTransform)); + writeImageInternal(new FileFormatOption(FileFormat.PNG), baos, Animation.singleton(affineTransform)); baos.close(); final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); @@ -232,13 +243,14 @@ return im; } - private UGraphic2 createUGraphic(FileFormat fileFormat, final Dimension2D dim, Animation affineTransforms, - double dx, double dy) { + private UGraphic2 createUGraphic(FileFormatOption fileFormatOption, final Dimension2D dim, + Animation animationArg, double dx, double dy) { + final FileFormat fileFormat = fileFormatOption.getFileFormat(); switch (fileFormat) { case PNG: - return createUGraphicPNG(colorMapper, dpiFactor, dim, mybackcolor, affineTransforms, dx, dy); + return createUGraphicPNG(colorMapper, dpiFactor, dim, mybackcolor, animationArg, dx, dy); case SVG: - return createUGraphicSVG(colorMapper, dpiFactor, dim, mybackcolor); + return createUGraphicSVG(colorMapper, dpiFactor, dim, mybackcolor, fileFormatOption.getSvgLinkTarget()); case EPS: return new UGraphicEps(colorMapper, EpsStrategy.getDefault2()); case EPS_TEXT: @@ -248,24 +260,27 @@ case VDX: return new UGraphicVdx(colorMapper); case LATEX: - return new UGraphicTikz(colorMapper); + return new UGraphicTikz(colorMapper, true); + case LATEX_NO_PREAMBLE: + return new UGraphicTikz(colorMapper, false); default: throw new UnsupportedOperationException(fileFormat.toString()); } } - private UGraphic2 createUGraphicSVG(ColorMapper colorMapper, double scale, Dimension2D dim, HtmlColor mybackcolor) { + private UGraphic2 createUGraphicSVG(ColorMapper colorMapper, double scale, Dimension2D dim, HtmlColor mybackcolor, + String svgLinkTarget) { Color backColor = Color.WHITE; if (mybackcolor instanceof HtmlColorSimple) { backColor = colorMapper.getMappedColor(mybackcolor); } final UGraphicSvg ug; if (mybackcolor instanceof HtmlColorGradient) { - ug = new UGraphicSvg(colorMapper, (HtmlColorGradient) mybackcolor, false, scale); + ug = new UGraphicSvg(colorMapper, (HtmlColorGradient) mybackcolor, false, scale, svgLinkTarget); } else if (backColor == null || backColor.equals(Color.WHITE)) { - ug = new UGraphicSvg(colorMapper, false, scale); + ug = new UGraphicSvg(colorMapper, false, scale, svgLinkTarget); } else { - ug = new UGraphicSvg(colorMapper, StringUtils.getAsHtml(backColor), false, scale); + ug = new UGraphicSvg(colorMapper, StringUtils.getAsHtml(backColor), false, scale, svgLinkTarget); } return ug; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/InflaterSet.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/InflaterSet.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/InflaterSet.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/InflaterSet.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/LimitFinder.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/LimitFinder.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/LimitFinder.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/LimitFinder.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/MinMax.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/MinMax.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/MinMax.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/MinMax.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/MinMaxMutable.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/MinMaxMutable.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/MinMaxMutable.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/MinMaxMutable.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategy.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategy.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategy.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategy.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyVisibility.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyVisibility.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyVisibility.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyVisibility.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyX1X2.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyX1X2.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyX1X2.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyX1X2.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyX1Y2Y3.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyX1Y2Y3.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyX1Y2Y3.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyX1Y2Y3.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2Center.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2Center.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2Center.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2Center.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2Left.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2Left.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2Left.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/PlacementStrategyY1Y2Left.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/Scalable.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/Scalable.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/Scalable.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/Scalable.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/Shadowable.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/Shadowable.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/Shadowable.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/Shadowable.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ShadowManager.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ShadowManager.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ShadowManager.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ShadowManager.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SlotFinder.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SlotFinder.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SlotFinder.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SlotFinder.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SlotFinderX.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SlotFinderX.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SlotFinderX.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SlotFinderX.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/Slot.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/Slot.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/Slot.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/Slot.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SlotSet.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SlotSet.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SlotSet.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SlotSet.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/PSystemListInternalSpritesFactory.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/PSystemListInternalSpritesFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/PSystemListInternalSpritesFactory.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/PSystemListInternalSpritesFactory.java 2016-04-22 16:26:33.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.ugraphic.sprite; + +import net.sourceforge.plantuml.AbstractPSystem; +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.command.PSystemSingleLineFactory; + +public class PSystemListInternalSpritesFactory extends PSystemSingleLineFactory { + + @Override + protected AbstractPSystem executeLine(String line) { + final String lineLower = StringUtils.goLowerCase(line); + if (lineLower.startsWith("listsprite")) { + return new PSystemListInternalSprites(); + } + return null; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/PSystemListInternalSprites.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/PSystemListInternalSprites.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/PSystemListInternalSprites.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/PSystemListInternalSprites.java 2016-04-22 16:26:33.000000000 +0000 @@ -0,0 +1,94 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.ugraphic.sprite; + +import java.awt.Font; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import net.sourceforge.plantuml.AbstractPSystem; +import net.sourceforge.plantuml.FileFormatOption; +import net.sourceforge.plantuml.core.DiagramDescription; +import net.sourceforge.plantuml.core.DiagramDescriptionImpl; +import net.sourceforge.plantuml.core.ImageData; +import net.sourceforge.plantuml.graphic.GraphicStrings; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.ugraphic.ColorMapperIdentity; +import net.sourceforge.plantuml.ugraphic.ImageBuilder; +import net.sourceforge.plantuml.ugraphic.UAntiAliasing; +import net.sourceforge.plantuml.ugraphic.UFont; + +public class PSystemListInternalSprites extends AbstractPSystem { + + public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException { + final GraphicStrings result = getGraphicStrings(); + final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), + getMetadata(), null, 0, 0, null, false); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); + } + + private GraphicStrings getGraphicStrings() throws IOException { + final List lines = new ArrayList(); + lines.add("List Current Sprits"); + lines.add("Credit to"); + lines.add("http://www.archimatetool.com"); + lines.add(" "); + for (String folder : RessourcesUtils.getJarFile("sprites", true)) { + lines.add("" + folder + " :"); + lines.add(" "); + for (String png : RessourcesUtils.getJarFile("sprites/" + folder, false)) { + if (png.endsWith(".png")) { + final String spriteName = png.substring(0, png.length() - 4); + lines.add("<$archimate/" + spriteName + "> " + spriteName); + } + } + } + + final UFont font = new UFont("SansSerif", Font.PLAIN, 12); + final GraphicStrings graphicStrings = new GraphicStrings(lines, font, HtmlColorUtils.BLACK, + HtmlColorUtils.WHITE, UAntiAliasing.ANTI_ALIASING_ON); + graphicStrings.setMaxLine(35); + return graphicStrings; + } + + public DiagramDescription getDescription() { + return new DiagramDescriptionImpl("(Sprites)", getClass()); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/RessourcesUtils.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/RessourcesUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/RessourcesUtils.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/RessourcesUtils.java 2016-04-22 16:26:33.000000000 +0000 @@ -0,0 +1,118 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.ugraphic.sprite; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLDecoder; +import java.util.Collections; +import java.util.Enumeration; +import java.util.Set; +import java.util.TreeSet; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; + +import net.sourceforge.plantuml.version.Version; + +public class RessourcesUtils { + + public static Set getJarFile(String path, boolean folder) throws IOException { + if (path.startsWith("/") || path.endsWith("/")) { + throw new IllegalArgumentException(); + } + final URL resource = Version.class.getClassLoader().getResource("net/sourceforge/plantuml/version/logo.png"); + final String protocol = resource.getProtocol(); + if ("file".equals(protocol)) { + final URL local = Version.class.getClassLoader().getResource(path); + try { + return listEntry(new File(local.toURI())); + } catch (URISyntaxException e) { + e.printStackTrace(); + return null; + } + } + if ("jar".equals(protocol)) { + final String classFile = Version.class.getName().replace(".", "/") + ".class"; + final URL versionURL = Version.class.getClassLoader().getResource(classFile); + final String jarPath = versionURL.getPath().substring(5, versionURL.getPath().indexOf("!")); + if (folder) { + return listFolders(new JarFile(URLDecoder.decode(jarPath, "UTF-8")), path + "/"); + } else { + return listFiles(new JarFile(URLDecoder.decode(jarPath, "UTF-8")), path + "/"); + + } + } + return Collections. emptySet(); + } + + private static Set listFiles(JarFile jarFile, String path) { + final Enumeration entries = jarFile.entries(); + final Set result = new TreeSet(); + while (entries.hasMoreElements()) { + final String name = entries.nextElement().getName(); + if (name.startsWith(path)) { + result.add(name.substring(path.length())); + } + } + return result; + } + + private static Set listFolders(JarFile jarFile, String path) { + final Enumeration entries = jarFile.entries(); + final Set result = new TreeSet(); + while (entries.hasMoreElements()) { + final String name = entries.nextElement().getName(); + if (name.startsWith(path)) { + final String folder = name.substring(path.length()); + final int x = folder.indexOf('/'); + if (x != -1) { + result.add(folder.substring(0, x)); + } + } + } + return result; + } + + private static Set listEntry(File dir) { + final Set result = new TreeSet(); + for (String n : dir.list()) { + result.add(n); + } + return result; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteGrayLevel.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteGrayLevel.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteGrayLevel.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteGrayLevel.java 2016-04-22 16:26:33.000000000 +0000 @@ -0,0 +1,282 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.ugraphic.sprite; + +import java.awt.Color; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import net.sourceforge.plantuml.StringUtils; +import net.sourceforge.plantuml.code.AsciiEncoder; +import net.sourceforge.plantuml.code.CompressionZlib; +import net.sourceforge.plantuml.ugraphic.ColorChangerMonochrome; + +public enum SpriteGrayLevel { + + GRAY_16(16), GRAY_8(8), GRAY_4(4); + + private final int nbColor; + private static final ColorChangerMonochrome mono = new ColorChangerMonochrome(); + + private SpriteGrayLevel(int nbColor) { + this.nbColor = nbColor; + } + + public static SpriteGrayLevel get(int n) { + if (n == 4) { + return SpriteGrayLevel.GRAY_4; + } + if (n == 8) { + return SpriteGrayLevel.GRAY_8; + } + if (n == 16) { + return SpriteGrayLevel.GRAY_16; + } + throw new UnsupportedOperationException(); + } + + public int getNbColor() { + return nbColor; + } + + public List encode(BufferedImage img) { + if (this == GRAY_16) { + return encode16(img); + } + if (this == GRAY_8) { + return encode8(img); + } + if (this == GRAY_4) { + return encode4(img); + } + throw new UnsupportedOperationException(); + } + + private List encode16(BufferedImage img) { + final int width = img.getWidth(); + final int height = img.getHeight(); + // final int type = img.getType(); + + final List result = new ArrayList(); + + for (int y = 0; y < height; y++) { + final StringBuilder sb = new StringBuilder(); + for (int x = 0; x < width; x++) { + final int level = getGrayOn16(img, x, y); + final char code = "0123456789ABCDEF".charAt(level); + sb.append(code); + } + result.add(sb.toString()); + } + return Collections.unmodifiableList(result); + } + + private List encode8(BufferedImage img) { + final int width = img.getWidth(); + final int height = img.getHeight(); + // final int type = img.getType(); + + final List result = new ArrayList(); + final AsciiEncoder encoder = new AsciiEncoder(); + + for (int y = 0; y < height; y += 2) { + final StringBuilder sb = new StringBuilder(); + for (int x = 0; x < width; x++) { + final int level1 = getGrayOn16(img, x, y) / 2; + assert level1 >= 0 && level1 <= 7; + final int level2 = getGrayOn16(img, x, y + 1) / 2; + assert level2 >= 0 && level2 <= 7; + final int v = level1 * 8 + level2; + sb.append(encoder.encode6bit((byte) v)); + } + result.add(sb.toString()); + } + return Collections.unmodifiableList(result); + } + + private List encode4(BufferedImage img) { + final int width = img.getWidth(); + final int height = img.getHeight(); + // final int type = img.getType(); + + final List result = new ArrayList(); + final AsciiEncoder encoder = new AsciiEncoder(); + + for (int y = 0; y < height; y += 3) { + final StringBuilder sb = new StringBuilder(); + for (int x = 0; x < width; x++) { + final int level1 = getGrayOn16(img, x, y) / 4; + assert level1 >= 0 && level1 <= 3; + final int level2 = getGrayOn16(img, x, y + 1) / 4; + assert level2 >= 0 && level2 <= 3; + final int level3 = getGrayOn16(img, x, y + 2) / 4; + assert level3 >= 0 && level3 <= 3; + final int v = level1 * 16 + level2 * 4 + level3; + sb.append(encoder.encode6bit((byte) v)); + } + result.add(sb.toString()); + } + return Collections.unmodifiableList(result); + } + + private int getGrayOn16(BufferedImage img, int x, int y) { + if (x >= img.getWidth()) { + return 0; + } + if (y >= img.getHeight()) { + return 0; + } + final Color g = mono.getChangedColor(new Color(img.getRGB(x, y))); + final int grey = 255 - g.getRed(); + return grey / 16; + } + + public Sprite buildSprite(int width, int height, List strings) { + if (this == SpriteGrayLevel.GRAY_16) { + return buildSprite16(strings); + } + if (this == SpriteGrayLevel.GRAY_8) { + return buildSprite8(width, height, strings); + } + if (this == SpriteGrayLevel.GRAY_4) { + return buildSprite4(width, height, strings); + } + throw new UnsupportedOperationException(toString()); + } + + private Sprite buildSprite16(List strings) { + final SpriteMonochrome result = new SpriteMonochrome(strings.get(0).length(), strings.size(), 16); + for (int col = 0; col < result.getWidth(); col++) { + for (int line = 0; line < result.getHeight(); line++) { + if (col >= strings.get(line).length()) { + continue; + } + if (strings.get(line).charAt(col) != '0') { + final String s = "" + strings.get(line).charAt(col); + final int x = Integer.parseInt(StringUtils.goUpperCase(s), 16); + result.setPixel(col, line, x); + } + } + } + return result; + } + + private Sprite buildSprite8(int width, int height, List strings) { + final AsciiEncoder encoder = new AsciiEncoder(); + final SpriteMonochrome result = new SpriteMonochrome(width, height, 8); + for (int col = 0; col < result.getWidth(); col++) { + for (int line = 0; line < strings.size(); line++) { + if (col >= strings.get(line).length()) { + continue; + } + final int v = encoder.decode6bit(strings.get(line).charAt(col)); + final int w1 = v / 8; + final int w2 = v % 8; + result.setPixel(col, line * 2, w1); + result.setPixel(col, line * 2 + 1, w2); + + } + } + return result; + } + + private Sprite buildSprite4(int width, int height, List strings) { + final AsciiEncoder encoder = new AsciiEncoder(); + final SpriteMonochrome result = new SpriteMonochrome(width, height, 4); + for (int col = 0; col < result.getWidth(); col++) { + for (int line = 0; line < strings.size(); line++) { + if (col >= strings.get(line).length()) { + continue; + } + int v = encoder.decode6bit(strings.get(line).charAt(col)); + final int w1 = v / 16; + v = v % 16; + final int w2 = v / 4; + final int w3 = v % 4; + result.setPixel(col, line * 3, w1); + result.setPixel(col, line * 3 + 1, w2); + result.setPixel(col, line * 3 + 2, w3); + + } + } + return result; + } + + public List encodeZ(BufferedImage img) { + final int width = img.getWidth(); + final int height = img.getHeight(); + final byte raw[] = new byte[width * height]; + final BufferedImage grayImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + int cpt = 0; + final int coef = 16 / nbColor; + for (int y = 0; y < height; y++) { + for (int x = 0; x < width; x++) { + final int color = getGrayOn16(img, x, y) / coef; + raw[cpt++] = (byte) color; + grayImg.setRGB(x, y, color * coef); + } + } + final byte[] comp = new CompressionZlib().compress(raw); + return cut(new AsciiEncoder().encode(comp)); + } + + private List cut(String s) { + final List result = new ArrayList(); + for (int i = 0; i < s.length(); i += 120) { + final int j = Math.min(i + 120, s.length()); + result.add(s.substring(i, j)); + + } + return Collections.unmodifiableList(result); + } + + public Sprite buildSpriteZ(int width, int height, String compressed) throws IOException { + final byte comp[] = new AsciiEncoder().decode(compressed); + final byte img[] = new CompressionZlib().decompress(comp); + final SpriteMonochrome result = new SpriteMonochrome(width, height, nbColor); + int cpt = 0; + for (int line = 0; line < result.getHeight(); line++) { + for (int col = 0; col < result.getWidth(); col++) { + result.setPixel(col, line, img[cpt++]); + + } + } + return result; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteImage.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteImage.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteImage.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteImage.java 2016-04-22 16:26:33.000000000 +0000 @@ -0,0 +1,96 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.ugraphic.sprite; + +import java.awt.geom.Dimension2D; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.io.InputStream; + +import javax.imageio.ImageIO; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UImage; + +public class SpriteImage implements Sprite { + + private final UImage img; + + public SpriteImage(BufferedImage img) { + this.img = new UImage(img); + } + + public TextBlock asTextBlock(final HtmlColor color, final double scale) { + return new AbstractTextBlock() { + + public void drawU(UGraphic ug) { + ug.draw(img.scale(scale)); + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + return new Dimension2DDouble(img.getWidth() * scale, img.getHeight() * scale); + } + }; + } + + public static Sprite fromInternal(String name) { + if (name.endsWith(".png")) { + throw new IllegalArgumentException(); + } + final InputStream is = getInternalSprite(name + ".png"); + if (is == null) { + return null; + } + try { + return new SpriteImage(ImageIO.read(is)); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + + } + + public static InputStream getInternalSprite(final String inner) { + final String path = "/sprites/" + inner; + final InputStream is = SpriteImage.class.getResourceAsStream(path); + return is; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/Sprite.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/Sprite.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/Sprite.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/Sprite.java 2016-04-22 16:26:33.000000000 +0000 @@ -0,0 +1,44 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.ugraphic.sprite; + +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.TextBlock; + +public interface Sprite { + + public TextBlock asTextBlock(final HtmlColor color, double scale); + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteMonochrome.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteMonochrome.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteMonochrome.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteMonochrome.java 2016-04-22 16:26:33.000000000 +0000 @@ -0,0 +1,124 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.ugraphic.sprite; + +import java.awt.Color; +import java.awt.geom.Dimension2D; +import java.awt.image.BufferedImage; + +import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; +import net.sourceforge.plantuml.graphic.HtmlColor; +import net.sourceforge.plantuml.graphic.HtmlColorGradient; +import net.sourceforge.plantuml.graphic.HtmlColorUtils; +import net.sourceforge.plantuml.graphic.StringBounder; +import net.sourceforge.plantuml.graphic.TextBlock; +import net.sourceforge.plantuml.ugraphic.ColorMapper; +import net.sourceforge.plantuml.ugraphic.UGraphic; +import net.sourceforge.plantuml.ugraphic.UImage; + +public class SpriteMonochrome implements Sprite { + + private final int width; + private final int height; + private final int grayLevel; + private final int pixels[][]; + + SpriteMonochrome(int width, int height, int grayLevel) { + if (grayLevel != 2 && grayLevel != 4 && grayLevel != 8 && grayLevel != 16) { + throw new IllegalArgumentException(); + } + this.width = width; + this.height = height; + this.grayLevel = grayLevel; + this.pixels = new int[height][width]; + } + + void setPixel(int x, int y, int level) { + if (x < 0 || x >= width) { + return; + } + if (y < 0 || y >= height) { + return; + } + if (level < 0 || level >= grayLevel) { + throw new IllegalArgumentException("level=" + level + " grayLevel=" + grayLevel); + } + pixels[y][x] = level; + } + + public int getHeight() { + return height; + } + + int getWidth() { + return width; + } + + public UImage toUImage(ColorMapper colorMapper, HtmlColor backcolor, HtmlColor color) { + final BufferedImage im = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + + if (backcolor == null) { + backcolor = HtmlColorUtils.WHITE; + } + if (color == null) { + color = HtmlColorUtils.BLACK; + } + final HtmlColorGradient gradient = new HtmlColorGradient(backcolor, color, '\0'); + for (int col = 0; col < width; col++) { + for (int line = 0; line < height; line++) { + final double coef = 1.0 * pixels[line][col] / (grayLevel - 1); + final Color c = gradient.getColor(colorMapper, coef); + im.setRGB(col, line, c.getRGB()); + } + } + return new UImage(im); + } + + public TextBlock asTextBlock(final HtmlColor color, final double scale) { + return new AbstractTextBlock() { + + public void drawU(UGraphic ug) { + final UImage image = toUImage(ug.getColorMapper(), ug.getParam().getBackcolor(), color); + ug.draw(image.scale(scale)); + } + + public Dimension2D calculateDimension(StringBounder stringBounder) { + return new Dimension2DDouble(getWidth() * scale, getHeight() * scale); + } + }; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteUtils.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteUtils.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/sprite/SpriteUtils.java 2016-04-22 16:26:33.000000000 +0000 @@ -0,0 +1,78 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.ugraphic.sprite; + +import java.awt.image.BufferedImage; +import java.util.List; + +public class SpriteUtils { + + public static final String SPRITE_NAME = "[-\\p{L}0-9_/]+"; + + private SpriteUtils() { + } + + public static String encode(BufferedImage img, String name, SpriteGrayLevel level) { + final StringBuilder sb = new StringBuilder(); + sb.append("sprite $" + name + " [" + img.getWidth() + "x" + img.getHeight() + "/" + level.getNbColor() + + "] {\n"); + final List result = level.encode(img); + for (String s : result) { + sb.append(s); + sb.append("\n"); + } + sb.append("}\n"); + return sb.toString(); + } + + public static String encodeCompressed(BufferedImage img, String name, SpriteGrayLevel level) { + final StringBuilder sb = new StringBuilder(); + sb.append("sprite $" + name + " [" + img.getWidth() + "x" + img.getHeight() + "/" + level.getNbColor() + "z] "); + final List list = level.encodeZ(img); + if (list.size() == 1) { + sb.append(list.get(0)); + sb.append("\n"); + } else { + sb.append("{\n"); + for (String s : list) { + sb.append(s); + sb.append("\n"); + } + sb.append("}\n"); + } + return sb.toString(); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SpriteGrayLevel.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SpriteGrayLevel.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SpriteGrayLevel.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SpriteGrayLevel.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,281 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.ugraphic; - -import java.awt.Color; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import net.sourceforge.plantuml.StringUtils; -import net.sourceforge.plantuml.code.AsciiEncoder; -import net.sourceforge.plantuml.code.CompressionZlib; - -public enum SpriteGrayLevel { - - GRAY_16(16), GRAY_8(8), GRAY_4(4); - - private final int nbColor; - private static final ColorChangerMonochrome mono = new ColorChangerMonochrome(); - - private SpriteGrayLevel(int nbColor) { - this.nbColor = nbColor; - } - - public static SpriteGrayLevel get(int n) { - if (n == 4) { - return SpriteGrayLevel.GRAY_4; - } - if (n == 8) { - return SpriteGrayLevel.GRAY_8; - } - if (n == 16) { - return SpriteGrayLevel.GRAY_16; - } - throw new UnsupportedOperationException(); - } - - public int getNbColor() { - return nbColor; - } - - public List encode(BufferedImage img) { - if (this == GRAY_16) { - return encode16(img); - } - if (this == GRAY_8) { - return encode8(img); - } - if (this == GRAY_4) { - return encode4(img); - } - throw new UnsupportedOperationException(); - } - - private List encode16(BufferedImage img) { - final int width = img.getWidth(); - final int height = img.getHeight(); - // final int type = img.getType(); - - final List result = new ArrayList(); - - for (int y = 0; y < height; y++) { - final StringBuilder sb = new StringBuilder(); - for (int x = 0; x < width; x++) { - final int level = getGrayOn16(img, x, y); - final char code = "0123456789ABCDEF".charAt(level); - sb.append(code); - } - result.add(sb.toString()); - } - return Collections.unmodifiableList(result); - } - - private List encode8(BufferedImage img) { - final int width = img.getWidth(); - final int height = img.getHeight(); - // final int type = img.getType(); - - final List result = new ArrayList(); - final AsciiEncoder encoder = new AsciiEncoder(); - - for (int y = 0; y < height; y += 2) { - final StringBuilder sb = new StringBuilder(); - for (int x = 0; x < width; x++) { - final int level1 = getGrayOn16(img, x, y) / 2; - assert level1 >= 0 && level1 <= 7; - final int level2 = getGrayOn16(img, x, y + 1) / 2; - assert level2 >= 0 && level2 <= 7; - final int v = level1 * 8 + level2; - sb.append(encoder.encode6bit((byte) v)); - } - result.add(sb.toString()); - } - return Collections.unmodifiableList(result); - } - - private List encode4(BufferedImage img) { - final int width = img.getWidth(); - final int height = img.getHeight(); - // final int type = img.getType(); - - final List result = new ArrayList(); - final AsciiEncoder encoder = new AsciiEncoder(); - - for (int y = 0; y < height; y += 3) { - final StringBuilder sb = new StringBuilder(); - for (int x = 0; x < width; x++) { - final int level1 = getGrayOn16(img, x, y) / 4; - assert level1 >= 0 && level1 <= 3; - final int level2 = getGrayOn16(img, x, y + 1) / 4; - assert level2 >= 0 && level2 <= 3; - final int level3 = getGrayOn16(img, x, y + 2) / 4; - assert level3 >= 0 && level3 <= 3; - final int v = level1 * 16 + level2 * 4 + level3; - sb.append(encoder.encode6bit((byte) v)); - } - result.add(sb.toString()); - } - return Collections.unmodifiableList(result); - } - - private int getGrayOn16(BufferedImage img, int x, int y) { - if (x >= img.getWidth()) { - return 0; - } - if (y >= img.getHeight()) { - return 0; - } - final Color g = mono.getChangedColor(new Color(img.getRGB(x, y))); - final int grey = 255 - g.getRed(); - return grey / 16; - } - - public Sprite buildSprite(int width, int height, List strings) { - if (this == SpriteGrayLevel.GRAY_16) { - return buildSprite16(strings); - } - if (this == SpriteGrayLevel.GRAY_8) { - return buildSprite8(width, height, strings); - } - if (this == SpriteGrayLevel.GRAY_4) { - return buildSprite4(width, height, strings); - } - throw new UnsupportedOperationException(toString()); - } - - private Sprite buildSprite16(List strings) { - final SpriteMonochrome result = new SpriteMonochrome(strings.get(0).length(), strings.size(), 16); - for (int col = 0; col < result.getWidth(); col++) { - for (int line = 0; line < result.getHeight(); line++) { - if (col >= strings.get(line).length()) { - continue; - } - if (strings.get(line).charAt(col) != '0') { - final String s = "" + strings.get(line).charAt(col); - final int x = Integer.parseInt(StringUtils.goUpperCase(s), 16); - result.setPixel(col, line, x); - } - } - } - return result; - } - - private Sprite buildSprite8(int width, int height, List strings) { - final AsciiEncoder encoder = new AsciiEncoder(); - final SpriteMonochrome result = new SpriteMonochrome(width, height, 8); - for (int col = 0; col < result.getWidth(); col++) { - for (int line = 0; line < strings.size(); line++) { - if (col >= strings.get(line).length()) { - continue; - } - final int v = encoder.decode6bit(strings.get(line).charAt(col)); - final int w1 = v / 8; - final int w2 = v % 8; - result.setPixel(col, line * 2, w1); - result.setPixel(col, line * 2 + 1, w2); - - } - } - return result; - } - - private Sprite buildSprite4(int width, int height, List strings) { - final AsciiEncoder encoder = new AsciiEncoder(); - final SpriteMonochrome result = new SpriteMonochrome(width, height, 4); - for (int col = 0; col < result.getWidth(); col++) { - for (int line = 0; line < strings.size(); line++) { - if (col >= strings.get(line).length()) { - continue; - } - int v = encoder.decode6bit(strings.get(line).charAt(col)); - final int w1 = v / 16; - v = v % 16; - final int w2 = v / 4; - final int w3 = v % 4; - result.setPixel(col, line * 3, w1); - result.setPixel(col, line * 3 + 1, w2); - result.setPixel(col, line * 3 + 2, w3); - - } - } - return result; - } - - public List encodeZ(BufferedImage img) { - final int width = img.getWidth(); - final int height = img.getHeight(); - final byte raw[] = new byte[width * height]; - final BufferedImage grayImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - int cpt = 0; - final int coef = 16 / nbColor; - for (int y = 0; y < height; y++) { - for (int x = 0; x < width; x++) { - final int color = getGrayOn16(img, x, y) / coef; - raw[cpt++] = (byte) color; - grayImg.setRGB(x, y, color * coef); - } - } - final byte[] comp = new CompressionZlib().compress(raw); - return cut(new AsciiEncoder().encode(comp)); - } - - private List cut(String s) { - final List result = new ArrayList(); - for (int i = 0; i < s.length(); i += 120) { - final int j = Math.min(i + 120, s.length()); - result.add(s.substring(i, j)); - - } - return Collections.unmodifiableList(result); - } - - public Sprite buildSpriteZ(int width, int height, String compressed) throws IOException { - final byte comp[] = new AsciiEncoder().decode(compressed); - final byte img[] = new CompressionZlib().decompress(comp); - final SpriteMonochrome result = new SpriteMonochrome(width, height, nbColor); - int cpt = 0; - for (int line = 0; line < result.getHeight(); line++) { - for (int col = 0; col < result.getWidth(); col++) { - result.setPixel(col, line, img[cpt++]); - - } - } - return result; - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SpriteImage.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SpriteImage.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SpriteImage.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SpriteImage.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.ugraphic; - -import java.awt.geom.Dimension2D; -import java.awt.image.BufferedImage; - -import net.sourceforge.plantuml.Dimension2DDouble; -import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.StringBounder; -import net.sourceforge.plantuml.graphic.TextBlock; - -public class SpriteImage implements Sprite { - - private final UImage img; - - public SpriteImage(BufferedImage img) { - this.img = new UImage(img); - } - - public TextBlock asTextBlock(final HtmlColor color) { - return new TextBlock() { - - public void drawU(UGraphic ug) { - ug.draw(img); - } - - public Dimension2D calculateDimension(StringBounder stringBounder) { - return new Dimension2DDouble(img.getWidth(), img.getHeight()); - } - }; - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/Sprite.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/Sprite.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/Sprite.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/Sprite.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.ugraphic; - -import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.TextBlock; - -public interface Sprite { - - public TextBlock asTextBlock(final HtmlColor color); - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SpriteMonochrome.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SpriteMonochrome.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SpriteMonochrome.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SpriteMonochrome.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,119 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.ugraphic; - -import java.awt.Color; -import java.awt.geom.Dimension2D; -import java.awt.image.BufferedImage; - -import net.sourceforge.plantuml.Dimension2DDouble; -import net.sourceforge.plantuml.graphic.HtmlColor; -import net.sourceforge.plantuml.graphic.HtmlColorGradient; -import net.sourceforge.plantuml.graphic.HtmlColorUtils; -import net.sourceforge.plantuml.graphic.StringBounder; -import net.sourceforge.plantuml.graphic.TextBlock; - -public class SpriteMonochrome implements Sprite { - - private final int width; - private final int height; - private final int grayLevel; - private final int pixels[][]; - - SpriteMonochrome(int width, int height, int grayLevel) { - if (grayLevel != 2 && grayLevel != 4 && grayLevel != 8 && grayLevel != 16) { - throw new IllegalArgumentException(); - } - this.width = width; - this.height = height; - this.grayLevel = grayLevel; - this.pixels = new int[height][width]; - } - - void setPixel(int x, int y, int level) { - if (x < 0 || x >= width) { - return; - } - if (y < 0 || y >= height) { - return; - } - if (level < 0 || level >= grayLevel) { - throw new IllegalArgumentException("level=" + level + " grayLevel=" + grayLevel); - } - pixels[y][x] = level; - } - - public int getHeight() { - return height; - } - - int getWidth() { - return width; - } - - public UImage toUImage(ColorMapper colorMapper, HtmlColor backcolor, HtmlColor color) { - final BufferedImage im = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - - if (backcolor == null) { - backcolor = HtmlColorUtils.WHITE; - } - if (color == null) { - backcolor = HtmlColorUtils.BLACK; - } - final HtmlColorGradient gradient = new HtmlColorGradient(backcolor, color, '\0'); - for (int col = 0; col < width; col++) { - for (int line = 0; line < height; line++) { - final double coef = 1.0 * pixels[line][col] / (grayLevel - 1); - final Color c = gradient.getColor(colorMapper, coef); - im.setRGB(col, line, c.getRGB()); - } - } - return new UImage(im); - } - - public TextBlock asTextBlock(final HtmlColor color) { - return new TextBlock() { - - public void drawU(UGraphic ug) { - ug.draw(toUImage(ug.getColorMapper(), ug.getParam().getBackcolor(), color)); - } - - public Dimension2D calculateDimension(StringBounder stringBounder) { - return new Dimension2DDouble(getWidth(), getHeight()); - } - }; - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SpriteUtils.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SpriteUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/SpriteUtils.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/SpriteUtils.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.ugraphic; - -import java.awt.image.BufferedImage; -import java.util.List; - -public class SpriteUtils { - - private SpriteUtils() { - } - - public static String encode(BufferedImage img, String name, SpriteGrayLevel level) { - final StringBuilder sb = new StringBuilder(); - sb.append("sprite $" + name + " [" + img.getWidth() + "x" + img.getHeight() + "/" + level.getNbColor() - + "] {\n"); - final List result = level.encode(img); - for (String s : result) { - sb.append(s); - sb.append("\n"); - } - sb.append("}\n"); - return sb.toString(); - } - - public static String encodeCompressed(BufferedImage img, String name, SpriteGrayLevel level) { - final StringBuilder sb = new StringBuilder(); - sb.append("sprite $" + name + " [" + img.getWidth() + "x" + img.getHeight() + "/" + level.getNbColor() + "z] "); - final List list = level.encodeZ(img); - if (list.size() == 1) { - sb.append(list.get(0)); - sb.append("\n"); - } else { - sb.append("{\n"); - for (String s : list) { - sb.append(s); - sb.append("\n"); - } - sb.append("}\n"); - } - return sb.toString(); - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverCenteredCharacterSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverCenteredCharacterSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverCenteredCharacterSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverCenteredCharacterSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverDotPathSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverDotPathSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverDotPathSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverDotPathSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverEllipseSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverEllipseSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverEllipseSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverEllipseSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverImagePng.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverImagePng.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverImagePng.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverImagePng.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverImageSvgSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverImageSvgSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverImageSvgSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverImageSvgSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverLineSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverLineSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverLineSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverLineSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverPathSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverPathSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverPathSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverPathSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverPolygonSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverPolygonSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverPolygonSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverPolygonSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverRectangleSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverRectangleSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverRectangleSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverRectangleSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextAsPathSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextAsPathSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextAsPathSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextAsPathSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,7 +34,9 @@ */ package net.sourceforge.plantuml.ugraphic.svg; +import java.awt.Color; import java.awt.geom.Dimension2D; +import java.awt.geom.Rectangle2D; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.FontStyle; @@ -86,6 +88,11 @@ textDecoration = "line-through"; } + String backColor = null; + if (fontConfiguration.containsStyle(FontStyle.BACKCOLOR)) { + backColor = StringUtils.getAsHtml(mapper.getMappedColor(fontConfiguration.getExtendedColor())); + } + svg.setFillColor(StringUtils.getAsHtml(mapper.getMappedColor(fontConfiguration.getColor()))); String text = shape.getText(); if (text.startsWith(" ")) { @@ -95,9 +102,9 @@ text = text.substring(1); } } - text = text.trim(); + text = StringUtils.trin(text); final Dimension2D dim = stringBounder.calculateDimension(font, text); svg.text(text, x, y, font.getFamily(UFontContext.SVG), font.getSize(), fontWeight, fontStyle, textDecoration, - dim.getWidth(), fontConfiguration.getAttributes()); + dim.getWidth(), fontConfiguration.getAttributes(), backColor); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/UGraphicSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/UGraphicSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/svg/UGraphicSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/svg/UGraphicSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -64,6 +64,7 @@ private final StringBounder stringBounder; private final boolean textAsPath2; + private final String target; @Override protected AbstractCommonUGraphic copyUGraphic() { @@ -74,19 +75,20 @@ super(other); this.stringBounder = other.stringBounder; this.textAsPath2 = other.textAsPath2; + this.target = other.target; register(); } - public UGraphicSvg(ColorMapper colorMapper, String backcolor, boolean textAsPath, double scale) { - this(colorMapper, new SvgGraphics(backcolor, scale), textAsPath); + public UGraphicSvg(ColorMapper colorMapper, String backcolor, boolean textAsPath, double scale, String linkTarget) { + this(colorMapper, new SvgGraphics(backcolor, scale), textAsPath, linkTarget); } - public UGraphicSvg(ColorMapper colorMapper, boolean textAsPath, double scale) { - this(colorMapper, new SvgGraphics(scale), textAsPath); + public UGraphicSvg(ColorMapper colorMapper, boolean textAsPath, double scale, String linkTarget) { + this(colorMapper, new SvgGraphics(scale), textAsPath, linkTarget); } - public UGraphicSvg(ColorMapper mapper, HtmlColorGradient gr, boolean textAsPath, double scale) { - this(mapper, new SvgGraphics(scale), textAsPath); + public UGraphicSvg(ColorMapper mapper, HtmlColorGradient gr, boolean textAsPath, double scale, String linkTarget) { + this(mapper, new SvgGraphics(scale), textAsPath, linkTarget); final SvgGraphics svg = getGraphicObject(); svg.paintBackcolorGradient(mapper, gr); @@ -107,10 +109,11 @@ getGraphicObject().setHidden(false); } - private UGraphicSvg(ColorMapper colorMapper, SvgGraphics svg, boolean textAsPath) { + private UGraphicSvg(ColorMapper colorMapper, SvgGraphics svg, boolean textAsPath, String linkTarget) { super(colorMapper, svg); - stringBounder = TextBlockUtils.getDummyStringBounder(); + this.stringBounder = TextBlockUtils.getDummyStringBounder(); this.textAsPath2 = textAsPath; + this.target = linkTarget; register(); } @@ -148,7 +151,7 @@ } public void startUrl(Url url) { - getGraphicObject().openLink(url.getUrl(), url.getTooltip()); + getGraphicObject().openLink(url.getUrl(), url.getTooltip(), target); } public void closeAction() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/TextBlockInEllipse.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/TextBlockInEllipse.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/TextBlockInEllipse.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/TextBlockInEllipse.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,12 +37,13 @@ import java.awt.geom.Dimension2D; import java.awt.geom.Point2D; +import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; import net.sourceforge.plantuml.svek.image.ContainingEllipse; import net.sourceforge.plantuml.svek.image.Footprint; -public class TextBlockInEllipse implements TextBlock { +public class TextBlockInEllipse extends AbstractTextBlock implements TextBlock { private final TextBlock text; private final ContainingEllipse ellipse; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/TextLimitFinder.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/TextLimitFinder.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/TextLimitFinder.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/TextLimitFinder.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverAtomTextTikz.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverAtomTextTikz.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverAtomTextTikz.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverAtomTextTikz.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverDotPathTikz.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverDotPathTikz.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverDotPathTikz.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverDotPathTikz.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverEllipseTikz.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverEllipseTikz.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverEllipseTikz.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverEllipseTikz.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverLineTikz.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverLineTikz.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverLineTikz.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverLineTikz.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverNoneTikz.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverNoneTikz.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverNoneTikz.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverNoneTikz.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverPolygonTikz.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverPolygonTikz.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverPolygonTikz.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverPolygonTikz.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverRectangleTikz.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverRectangleTikz.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverRectangleTikz.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverRectangleTikz.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUPathTikz.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUPathTikz.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUPathTikz.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUPathTikz.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUTextTikz.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUTextTikz.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUTextTikz.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUTextTikz.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/UGraphicTikz.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/UGraphicTikz.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/tikz/UGraphicTikz.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/tikz/UGraphicTikz.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -69,8 +69,8 @@ } - public UGraphicTikz(ColorMapper colorMapper) { - this(colorMapper, new TikzGraphics()); + public UGraphicTikz(ColorMapper colorMapper, boolean withPreamble) { + this(colorMapper, new TikzGraphics(withPreamble)); } @@ -104,9 +104,11 @@ } public void startUrl(Url url) { + getGraphicObject().openLink(url.getUrl(), url.getTooltip()); } public void closeAction() { + getGraphicObject().closeLink(); } public void writeImageTOBEMOVED(OutputStream os, String metadata, int dpi) throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/txt/UGraphicTxt.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/txt/UGraphicTxt.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/txt/UGraphicTxt.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/txt/UGraphicTxt.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UAntiAliasing.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UAntiAliasing.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UAntiAliasing.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UAntiAliasing.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UCenteredCharacter.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UCenteredCharacter.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UCenteredCharacter.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UCenteredCharacter.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UChangeBackColor.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UChangeBackColor.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UChangeBackColor.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UChangeBackColor.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UChangeColor.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UChangeColor.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UChangeColor.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UChangeColor.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UChange.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UChange.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UChange.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UChange.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UClip.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UClip.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UClip.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UClip.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UDriver.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UDriver.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UDriver.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UDriver.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UEllipse.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UEllipse.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UEllipse.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UEllipse.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UEmpty.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UEmpty.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UEmpty.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UEmpty.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UFontContext.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UFontContext.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UFontContext.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UFontContext.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UFont.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UFont.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UFont.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UFont.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -62,8 +62,9 @@ return font; } - public FontConfiguration toFont2(HtmlColor color, boolean useUnderlineForHyperlink, HtmlColor hyperlinkColor) { - return new FontConfiguration(this, color, hyperlinkColor, useUnderlineForHyperlink); + public FontConfiguration toFont2(HtmlColor color, boolean useUnderlineForHyperlink, HtmlColor hyperlinkColor, + int tabSize) { + return new FontConfiguration(this, color, hyperlinkColor, useUnderlineForHyperlink, tabSize); } public UFont scaled(double scale) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UFontUser.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UFontUser.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UFontUser.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UFontUser.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphic2.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphic2.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphic2.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphic2.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicCompress2.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicCompress2.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicCompress2.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicCompress2.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicCompress.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicCompress.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicCompress.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicCompress.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -79,11 +79,20 @@ } private void drawLine(double x1, double y1, double x2, double y2) { + if (y1 > y2) { + drawLine(x2, y2, x1, y1); + return; + } + assert y1 <= y2; final double xmin = Math.min(x1, x2); final double xmax = Math.max(x1, x2); final double ymin = Math.min(y1, y2); final double ymax = Math.max(y1, y2); - getUg().apply(new UTranslate(xmin, ymin)).draw(new ULine(xmax - xmin, ymax - ymin)); + if (x2 >= x1) { + getUg().apply(new UTranslate(xmin, ymin)).draw(new ULine(xmax - xmin, ymax - ymin)); + } else { + getUg().apply(new UTranslate(xmax, ymin)).draw(new ULine(-(xmax - xmin), ymax - ymin)); + } } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicFilter.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicFilter.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicFilter.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicFilter.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphic.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphic.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphic.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphic.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicNull.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicNull.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicNull.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicNull.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicStencil.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicStencil.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicStencil.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicStencil.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicUtils.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UGraphicUtils.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UGraphicUtils.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -72,7 +72,7 @@ PngIO.write(im, os, fileFormatOption.isWithMetadata() ? metadata : null, 96); } else if (fileFormat == FileFormat.SVG) { final UGraphicSvg svg = new UGraphicSvg(colorMapper, StringUtils.getAsHtml(colorMapper - .getMappedColor(background)), false, 1.0); + .getMappedColor(background)), false, 1.0, fileFormatOption.getSvgLinkTarget()); image.drawU(svg); svg.createXml(os); } else if (fileFormat == FileFormat.EPS) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UHidden.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UHidden.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UHidden.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UHidden.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UHorizontalLine.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UHorizontalLine.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UHorizontalLine.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UHorizontalLine.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UImage.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UImage.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UImage.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UImage.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,6 +34,8 @@ */ package net.sourceforge.plantuml.ugraphic; +import java.awt.geom.AffineTransform; +import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; public class UImage implements UShape { @@ -44,16 +46,35 @@ this.image = image; } + public UImage(BufferedImage before, double scale) { + if (scale == 1) { + this.image = before; + return; + } + + final int w = (int) Math.round(before.getWidth() * scale); + final int h = (int) Math.round(before.getHeight() * scale); + final BufferedImage after = new BufferedImage(w, h, before.getType()); + final AffineTransform at = new AffineTransform(); + at.scale(scale, scale); + final AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR); + this.image = scaleOp.filter(before, after); + } + + public UImage scale(double scale) { + return new UImage(image, scale); + } + public final BufferedImage getImage() { return image; } public double getWidth() { - return image.getWidth(); + return image.getWidth()-1; } public double getHeight() { - return image.getHeight(); + return image.getHeight()-1; } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UImageSvg.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UImageSvg.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UImageSvg.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UImageSvg.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ULayoutGroup.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ULayoutGroup.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ULayoutGroup.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ULayoutGroup.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,8 +35,10 @@ package net.sourceforge.plantuml.ugraphic; import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; import java.util.Map; +import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; public class ULayoutGroup { @@ -47,11 +49,11 @@ this.placementStrategy = placementStrategy; } - public void drawU(UGraphic ug, double x, double y, double width, double height) { + public void drawU(UGraphic ug, double width, double height) { for (Map.Entry ent : placementStrategy.getPositions(width, height).entrySet()) { final TextBlock block = ent.getKey(); final Point2D pos = ent.getValue(); - block.drawU(ug.apply(new UTranslate((x + pos.getX()), (y + pos.getY())))); + block.drawU(ug.apply(new UTranslate(pos))); } } @@ -60,4 +62,16 @@ } + public Rectangle2D getInnerPosition(String member, double width, double height, StringBounder stringBounder) { + for (Map.Entry ent : placementStrategy.getPositions(width, height).entrySet()) { + final TextBlock block = ent.getKey(); + final Rectangle2D result = block.getInnerPosition(member, stringBounder); + if (result != null) { + final UTranslate translate = new UTranslate(ent.getValue()); + return translate.apply(result); + } + } + return null; + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ULine.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ULine.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/ULine.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/ULine.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UMotif.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UMotif.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UMotif.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UMotif.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UParam.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UParam.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UParam.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UParam.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UParamNull.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UParamNull.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UParamNull.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UParamNull.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UPath.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UPath.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UPath.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UPath.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UPattern.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UPattern.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UPattern.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UPattern.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UPixel.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UPixel.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UPixel.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UPixel.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UPolygon.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UPolygon.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UPolygon.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UPolygon.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/URectangle.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/URectangle.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/URectangle.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/URectangle.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UScale.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UScale.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UScale.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UScale.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/USegment.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/USegment.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/USegment.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/USegment.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/USegmentType.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/USegmentType.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/USegmentType.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/USegmentType.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UShape.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UShape.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UShape.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UShape.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UStroke.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UStroke.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UStroke.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UStroke.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UText.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UText.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UText.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UText.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UTranslate.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UTranslate.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/UTranslate.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/UTranslate.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.ugraphic; import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; public class UTranslate implements UChange { @@ -86,4 +87,8 @@ return new UTranslate(-dx, -dy); } + public Rectangle2D apply(Rectangle2D rect) { + return new Rectangle2D.Double(rect.getX() + dx, rect.getY() + dy, rect.getWidth(), rect.getHeight()); + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverDotPathVdx.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverDotPathVdx.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverDotPathVdx.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverDotPathVdx.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverLineVdx.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverLineVdx.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverLineVdx.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverLineVdx.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverNoneVdx.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverNoneVdx.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverNoneVdx.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverNoneVdx.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverPolygonVdx.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverPolygonVdx.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverPolygonVdx.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverPolygonVdx.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverRectangleVdx.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverRectangleVdx.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverRectangleVdx.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverRectangleVdx.java 2016-04-22 16:26:33.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverTextVdx.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverTextVdx.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverTextVdx.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverTextVdx.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -36,6 +36,7 @@ import java.awt.geom.Dimension2D; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.ColorMapper; @@ -70,7 +71,7 @@ } } - text = text.trim(); + text = StringUtils.trin(text); final Dimension2D dim = stringBounder.calculateDimension(font, text); visio.text(text, x, y, font.getFamily(UFontContext.SVG), font.getSize(), dim.getWidth(), dim.getHeight(), fontConfiguration.getAttributes()); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverUPathVdx.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverUPathVdx.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/DriverUPathVdx.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/DriverUPathVdx.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/UGraphicVdx.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/UGraphicVdx.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/UGraphicVdx.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/UGraphicVdx.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/VisioGraphics.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/VisioGraphics.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/VisioGraphics.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/VisioGraphics.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/VisioLine.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/VisioLine.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/VisioLine.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/VisioLine.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/VisioRectangle.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/VisioRectangle.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/VisioRectangle.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/VisioRectangle.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/VisioShape.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/VisioShape.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/VisioShape.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/VisioShape.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/VisioText.java plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/VisioText.java --- plantuml-8024/src/net/sourceforge/plantuml/ugraphic/visio/VisioText.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/ugraphic/visio/VisioText.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/UmlDiagram.java plantuml-8039/src/net/sourceforge/plantuml/UmlDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/UmlDiagram.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/UmlDiagram.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -56,10 +56,11 @@ import net.sourceforge.plantuml.anim.Animation; import net.sourceforge.plantuml.anim.AnimationDecoder; import net.sourceforge.plantuml.api.ImageDataSimple; +import net.sourceforge.plantuml.command.CommandExecutionResult; import net.sourceforge.plantuml.core.Diagram; import net.sourceforge.plantuml.core.ImageData; import net.sourceforge.plantuml.core.UmlSource; -import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.DisplayPositionned; import net.sourceforge.plantuml.cucadiagram.UnparsableGraphvizException; import net.sourceforge.plantuml.flashcode.FlashCodeFactory; import net.sourceforge.plantuml.flashcode.FlashCodeUtils; @@ -77,41 +78,47 @@ import net.sourceforge.plantuml.svek.GraphvizCrash; import net.sourceforge.plantuml.ugraphic.ColorMapperIdentity; import net.sourceforge.plantuml.ugraphic.ImageBuilder; -import net.sourceforge.plantuml.ugraphic.Sprite; import net.sourceforge.plantuml.ugraphic.UAntiAliasing; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UGraphic; import net.sourceforge.plantuml.ugraphic.UImage; import net.sourceforge.plantuml.ugraphic.UTranslate; +import net.sourceforge.plantuml.ugraphic.sprite.Sprite; import net.sourceforge.plantuml.version.Version; -public abstract class UmlDiagram extends AbstractPSystem implements Diagram { +public abstract class UmlDiagram extends AbstractPSystem implements Diagram, Annotated { private boolean rotation; private boolean hideUnlinkedData; private int minwidth = Integer.MAX_VALUE; - private Display title; - private Display header; - private Display footer; - private Display legend = null; - private HorizontalAlignment legendAlignment = HorizontalAlignment.CENTER; - private VerticalAlignment legendVerticalAlignment = VerticalAlignment.BOTTOM; + private DisplayPositionned title = DisplayPositionned.none(HorizontalAlignment.CENTER, VerticalAlignment.TOP); + private DisplayPositionned caption = DisplayPositionned.none(HorizontalAlignment.CENTER, VerticalAlignment.BOTTOM); + private DisplayPositionned header = DisplayPositionned.none(HorizontalAlignment.RIGHT, VerticalAlignment.TOP); + private DisplayPositionned footer = DisplayPositionned.none(HorizontalAlignment.CENTER, VerticalAlignment.BOTTOM); + private DisplayPositionned legend = DisplayPositionned.none(HorizontalAlignment.CENTER, VerticalAlignment.BOTTOM); - private HorizontalAlignment headerAlignment = HorizontalAlignment.RIGHT; - private HorizontalAlignment footerAlignment = HorizontalAlignment.CENTER; private final Pragma pragma = new Pragma(); private Scale scale; private Animation animation; private final SkinParam skinParam = new SkinParam(); - final public void setTitle(Display strings) { - this.title = strings; + final public void setTitle(DisplayPositionned title) { + this.title = title; } - final public Display getTitle() { + final public void setCaption(DisplayPositionned caption) { + this.caption = caption; + } + + final public DisplayPositionned getCaption() { + return caption; + } + + @Override + final public DisplayPositionned getTitle() { return title; } @@ -139,36 +146,30 @@ skinParam.setParam(StringUtils.goLowerCase(key), value); } - public final Display getHeader() { + public final DisplayPositionned getHeader() { return header; } - public final void setHeader(Display header) { + public final void setHeader(DisplayPositionned header) { this.header = header; } - public final Display getFooter() { + public final DisplayPositionned getFooter() { return footer; } - public final void setFooter(Display footer) { + public final void setFooter(DisplayPositionned footer) { this.footer = footer; } - public final HorizontalAlignment getHeaderAlignment() { - return headerAlignment; - } - - public final void setHeaderAlignment(HorizontalAlignment headerAlignment) { - this.headerAlignment = headerAlignment; - } - - public final HorizontalAlignment getFooterAlignment() { - return footerAlignment; - } - - public final void setFooterAlignment(HorizontalAlignment footerAlignment) { - this.footerAlignment = footerAlignment; + public final DisplayPositionned getFooterOrHeaderTeoz(FontParam param) { + if (param == FontParam.FOOTER) { + return getFooter(); + } + if (param == FontParam.HEADER) { + return getHeader(); + } + throw new IllegalArgumentException(); } abstract public UmlDiagramType getUmlDiagramType(); @@ -185,7 +186,7 @@ return scale; } - final public void setAnimation(List animationData) { + final public void setAnimation(Iterable animationData) { try { final AnimationDecoder animationDecoder = new AnimationDecoder(animationData); this.animation = Animation.create(animationDecoder.decode()); @@ -231,36 +232,27 @@ return imageData; } catch (UnparsableGraphvizException e) { e.printStackTrace(); - exportDiagramError(os, e.getCause(), fileFormatOption, e.getGraphvizVersion(), e.getDebugData()); + exportDiagramError(os, e.getCause(), fileFormatOption, e.getGraphvizVersion()); } catch (Exception e) { e.printStackTrace(); - exportDiagramError(os, e, fileFormatOption, null, null); + exportDiagramError(os, e, fileFormatOption, null); } return new ImageDataSimple(); + } + public void exportDiagramError(OutputStream os, Throwable exception, FileFormatOption fileFormat, + String graphvizVersion) throws IOException { + exportDiagramError(os, exception, fileFormat, getMetadata(), getFlashData(), + getFailureText1(exception, graphvizVersion)); } - private void exportDiagramError(OutputStream os, Throwable exception, FileFormatOption fileFormat, - String graphvizVersion, String svg) throws IOException { + public static void exportDiagramError(OutputStream os, Throwable exception, FileFormatOption fileFormat, + String metadata, String flash, List strings) throws IOException { final UFont font = new UFont("SansSerif", Font.PLAIN, 12); - final List strings = getFailureText(exception, graphvizVersion); - - final String flash = getFlashData(); - for (StackTraceElement ste : exception.getStackTrace()) { - strings.add(" " + ste.toString()); - } - if (exception.getCause() != null) { - final Throwable cause = exception.getCause(); - strings.add(" "); - strings.add("Caused by " + cause.toString()); - for (StackTraceElement ste : cause.getStackTrace()) { - strings.add(" " + ste.toString()); - } - - } + strings.addAll(CommandExecutionResult.getStackTrace(exception)); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, HtmlColorUtils.WHITE, - getMetadata(), null, 0, 0, null, getSkinParam().handwritten()); + metadata, null, 0, 0, null, false); final FlashCodeUtils utils = FlashCodeFactory.getFlashCodeUtils(); final BufferedImage im = utils.exportFlashcode(flash); @@ -273,9 +265,9 @@ GraphicPosition.BACKGROUND_CORNER_TOP_RIGHT); if (im == null) { - imageBuilder.addUDrawable(graphicStrings); + imageBuilder.setUDrawable(graphicStrings); } else { - imageBuilder.addUDrawable(new UDrawable() { + imageBuilder.setUDrawable(new UDrawable() { public void drawU(UGraphic ug) { graphicStrings.drawU(ug); final double height = graphicStrings.calculateDimension(ug.getStringBounder()).getHeight(); @@ -284,20 +276,17 @@ } }); } - imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.writeImageTOBEMOVED(fileFormat, os); } - private String getFlashData() { - // for (Map.Entry ent : System.getProperties().entrySet()) { - // System.err.println("p1=" + ent.getKey() + " " + ent.getValue()); - // } + public String getFlashData() { final StringBuilder result = new StringBuilder(); final UmlSource source = getSource(); result.append(source.getPlainString()); return result.toString(); } - private List getFailureText(Throwable exception, String graphvizVersion) { + static private List getFailureText1(Throwable exception, String graphvizVersion) { final List strings = new ArrayList(); strings.add("An error has occured : " + exception); final String quote = QuoteUtils.getSomeQuote(); @@ -318,10 +307,24 @@ strings.add(" - a bug in PlantUML"); strings.add(" - a problem in GraphViz"); strings.add(" "); - strings.add("You should send this diagram and this image to plantuml@gmail.com to solve this issue."); + strings.add("You should send this diagram and this image to plantuml@gmail.com or"); + strings.add("post to http://plantuml.com/qa to solve this issue."); + strings.add(" "); + return strings; + } + + public static List getFailureText2(Throwable exception) { + final List strings = new ArrayList(); + strings.add("An error has occured : " + exception); + final String quote = QuoteUtils.getSomeQuote(); + strings.add("" + quote); + strings.add(" "); + strings.add("PlantUML (" + Version.versionString() + ") has crashed."); + strings.add(" "); + strings.add("You should send this diagram and this image to plantuml@gmail.com or"); + strings.add("post to http://plantuml.com/qa to solve this issue."); strings.add("You can try to turn arround this issue by simplifing your diagram."); strings.add(" "); - strings.add(exception.toString()); return strings; } @@ -410,21 +413,25 @@ skinParam.addSprite(name, sprite); } - public final Display getLegend() { + public final DisplayPositionned getLegend() { return legend; } - public final HorizontalAlignment getLegendAlignment() { - return legendAlignment; + public final void setLegend(DisplayPositionned legend) { + this.legend = legend; + } + + private boolean useJDot; + + public void setUseJDot(boolean useJDot) { + this.useJDot = useJDot; } - public final VerticalAlignment getLegendVerticalAlignment() { - return legendVerticalAlignment; + public boolean isUseJDot() { + return useJDot; } - public final void setLegend(Display legend, HorizontalAlignment horizontalAlignment, VerticalAlignment valignment) { - this.legend = legend; - this.legendAlignment = horizontalAlignment; - this.legendVerticalAlignment = valignment; + public void setDotExecutable(String dotExecutable) { + skinParam.setDotExecutable(dotExecutable); } } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/UmlDiagramType.java plantuml-8039/src/net/sourceforge/plantuml/UmlDiagramType.java --- plantuml-8024/src/net/sourceforge/plantuml/UmlDiagramType.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/UmlDiagramType.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/UrlBuilder.java plantuml-8039/src/net/sourceforge/plantuml/UrlBuilder.java --- plantuml-8024/src/net/sourceforge/plantuml/UrlBuilder.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/UrlBuilder.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -45,7 +45,22 @@ STRICT, AT_START, ANYWHERE, AT_END } - private static final String URL_PATTERN = "\\[\\[([%g][^%g]+[%g]|[^{}%s\\]\\[]*)(?:[%s]*\\{([^{}]+)\\})?(?:[%s]*([^\\]\\[]+))?\\]\\]"; + private static String level0() { + return "(?:[^{}]|\\{[^{}]*\\})+"; + } + + private static String levelN(int n) { + if (n == 0) { + return level0(); + } + return "(?:[^{}]|\\{" + levelN(n - 1) + "\\})+"; + } + + private static final String URL_PATTERN_OLD = "\\[\\[([%g][^%g]+[%g]|[^{}%s\\]\\[]*)(?:[%s]*\\{((?:[^{}]|\\{[^{}]*\\})+)\\})?(?:[%s]*([^\\]\\[]+))?\\]\\]"; + private static final String URL_PATTERN = "\\[\\[([%g][^%g]+[%g])?([\\w\\W]*)\\]\\]"; + + private static final String URL_PATTERN_BAD = "\\[\\[([%g][^%g]+[%g]|[^{}%s\\]\\[]*)(?:[%s]*\\{" + "(" + levelN(3) + + ")" + "\\})?(?:[%s]*([^\\]\\[]+))?\\]\\]"; private final String topurl; private ModeUrl mode; @@ -55,6 +70,21 @@ this.mode = mode; } + public static String multilineTooltip(String label) { + final Pattern p = MyPattern.cmpile("(?i)^(" + URL_PATTERN + ")?(.*)$"); + final Matcher m = p.matcher(label); + if (m.matches() == false) { + return label; + } + String gr1 = m.group(1); + if (gr1 == null) { + return label; + } + final String gr2 = m.group(m.groupCount()); + gr1 = gr1.replaceAll("\\\\n", "\n"); + return gr1 + gr2; + } + public Url getUrl(String s) { final Pattern p; if (mode == ModeUrl.STRICT) { @@ -68,18 +98,45 @@ } else { throw new IllegalStateException(); } - final Matcher m = p.matcher(s.trim()); + final Matcher m = p.matcher(StringUtils.trinNoTrace(s)); if (m.matches() == false) { return null; } - String url = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m.group(1)); - if (url.startsWith("http:") == false && url.startsWith("https:") == false) { - // final String top = getSystem().getSkinParam().getValue("topurl"); - if (topurl != null) { - url = topurl + url; + // String url = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m.group(1)); + // if (url.startsWith("http:") == false && url.startsWith("https:") == false) { + // // final String top = getSystem().getSkinParam().getValue("topurl"); + // if (topurl != null) { + // url = topurl + url; + // } + // } + + final String quotedPart = m.group(1); + final String full = m.group(2); + final int openBracket = full.indexOf('{'); + final int closeBracket = full.lastIndexOf('}'); + if (quotedPart == null) { + if (openBracket != -1 && closeBracket != -1) { + return new Url(withTopUrl(full.substring(0, openBracket)), + full.substring(openBracket + 1, closeBracket), full.substring(closeBracket + 1).trim()); + } + final int firstSpace = full.indexOf(' '); + if (firstSpace == -1) { + return new Url(full, null, null); } + return new Url(withTopUrl(full.substring(0, firstSpace)), null, full.substring(firstSpace + 1).trim()); + } + if (openBracket != -1 && closeBracket != -1) { + return new Url(withTopUrl(quotedPart), full.substring(openBracket + 1, closeBracket), full.substring( + closeBracket + 1).trim()); + } + return new Url(withTopUrl(quotedPart), null, null); + } + + private String withTopUrl(String url) { + if (url.startsWith("http:") == false && url.startsWith("https:") == false && topurl != null) { + return topurl + url; } - return new Url(url, m.group(2), m.group(3)); + return url; } public static String getRegexp() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/Url.java plantuml-8039/src/net/sourceforge/plantuml/Url.java --- plantuml-8024/src/net/sourceforge/plantuml/Url.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/Url.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -57,7 +57,7 @@ if (tooltip == null) { this.tooltip = url; } else { - this.tooltip = tooltip; + this.tooltip = StringUtils.manageNewLine(tooltip); } if (label == null) { this.label = url; @@ -65,6 +65,15 @@ this.label = label; } } + + public static boolean isLatex(String pendingUrl) { + return pendingUrl.startsWith("latex://"); + } + + public boolean isLatex() { + return isLatex(url); + } + public final String getUrl() { return url; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/utils/CharHidder.java plantuml-8039/src/net/sourceforge/plantuml/utils/CharHidder.java --- plantuml-8024/src/net/sourceforge/plantuml/utils/CharHidder.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/utils/CharHidder.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -59,11 +59,13 @@ result.append(c); } } + // System.err.println("---> " + result); return result.toString(); } private static boolean isToBeHidden(final char c) { - if (c == '_' || c == '\"' || c == '#' || c == ']' || c == '[' || c == '*' || c == '.' || c == '/') { + if (c == '_' || c == '-' || c == '\"' || c == '#' || c == ']' || c == '[' || c == '*' || c == '.' || c == '/' + || c == '<') { return true; } return false; diff -Nru plantuml-8024/src/net/sourceforge/plantuml/utils/MathUtils.java plantuml-8039/src/net/sourceforge/plantuml/utils/MathUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/utils/MathUtils.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/utils/MathUtils.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -41,11 +41,15 @@ } public static double max(double a, double b, double c) { - return Math.max(Math.max(a, b), c); + return max(max(a, b), c); } public static double max(double a, double b, double c, double d) { - return Math.max(Math.max(a, b), Math.max(c, d)); + return max(max(a, b), max(c, d)); + } + + public static double max(double a, double b, double c, double d, double e) { + return max(max(a, b, c), max(d, e)); } public static double limitation(double v, double min, double max) { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/utils/StartUtils.java plantuml-8039/src/net/sourceforge/plantuml/utils/StartUtils.java --- plantuml-8024/src/net/sourceforge/plantuml/utils/StartUtils.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/utils/StartUtils.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -37,36 +37,39 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.plantuml.CharSequence2; +import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.command.regex.MyPattern; public class StartUtils { - public static boolean isArobaseStartDiagram(String s) { - s = s.trim(); - return s.startsWith("@start"); + public static final String PAUSE_PATTERN = "(?i)((?:\\W|\\<[^<>]*\\>)*)@unpause"; + public static final String START_PATTERN = "(?i)((?:[^\\w~]|\\<[^<>]*\\>)*)@start"; + + + public static boolean isArobaseStartDiagram(CharSequence s) { + return StringUtils.trinNoTrace(s).startsWith("@start"); } - public static boolean isArobaseEndDiagram(String s) { - s = s.trim(); - return s.startsWith("@end"); + public static boolean isArobaseEndDiagram(CharSequence s) { + return StringUtils.trinNoTrace(s).startsWith("@end"); } - public static boolean isArobasePauseDiagram(String s) { - s = s.trim(); - return s.startsWith("@pause"); + public static boolean isArobasePauseDiagram(CharSequence s) { + return StringUtils.trinNoTrace(s).startsWith("@pause"); } - public static boolean isArobaseUnpauseDiagram(String s) { - s = s.trim(); - return s.startsWith("@unpause"); + public static boolean isArobaseUnpauseDiagram(CharSequence s) { + return StringUtils.trinNoTrace(s).startsWith("@unpause"); } private static final Pattern append = MyPattern.cmpile("^\\W*@append"); - public static String getPossibleAppend(String s) { + public static CharSequence2 getPossibleAppend(CharSequence2 s) { final Matcher m = append.matcher(s); if (m.find()) { - return s.substring(m.group(0).length()).trim(); + return s.subSequence(m.group(0).length(), s.length()).trin(); + //return StringUtils.trin(s.toString().substring(m.group(0).length())); } return null; } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/utils/UniqueSequence.java plantuml-8039/src/net/sourceforge/plantuml/utils/UniqueSequence.java --- plantuml-8024/src/net/sourceforge/plantuml/utils/UniqueSequence.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/utils/UniqueSequence.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/version/IteratorCounter2Impl.java plantuml-8039/src/net/sourceforge/plantuml/version/IteratorCounter2Impl.java --- plantuml-8024/src/net/sourceforge/plantuml/version/IteratorCounter2Impl.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/version/IteratorCounter2Impl.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,86 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.version; + +import java.util.List; + +import net.sourceforge.plantuml.CharSequence2; + +public class IteratorCounter2Impl implements IteratorCounter2 { + + private final List data; + private int nb; + + public IteratorCounter2Impl(List data) { + this(data, 0); + } + + private IteratorCounter2Impl(List data, int nb) { + this.data = data; + this.nb = nb; + } + + public int currentNum() { + return nb; + } + + public boolean hasNext() { + return nb < data.size(); + } + + public CharSequence2 next() { + return data.get(nb++); + } + + public CharSequence2 peek() { + return data.get(nb); + } + + public CharSequence2 peekPrevious() { + if (nb == 0) { + return null; + } + return data.get(nb - 1); + } + + public void remove() { + throw new UnsupportedOperationException(); + } + + public IteratorCounter2 cloneMe() { + return new IteratorCounter2Impl(data, nb); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/version/IteratorCounter2.java plantuml-8039/src/net/sourceforge/plantuml/version/IteratorCounter2.java --- plantuml-8024/src/net/sourceforge/plantuml/version/IteratorCounter2.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/version/IteratorCounter2.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,51 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.version; + +import java.util.Iterator; + +import net.sourceforge.plantuml.CharSequence2; + +public interface IteratorCounter2 extends Iterator { + + public int currentNum(); + + public IteratorCounter2 cloneMe(); + + public CharSequence2 peek(); + + public CharSequence2 peekPrevious(); + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/version/IteratorCounterImpl.java plantuml-8039/src/net/sourceforge/plantuml/version/IteratorCounterImpl.java --- plantuml-8024/src/net/sourceforge/plantuml/version/IteratorCounterImpl.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/version/IteratorCounterImpl.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.version; - -import java.util.Iterator; - -public class IteratorCounterImpl implements IteratorCounter { - - private final Iterator it; - private int nb; - - public IteratorCounterImpl(Iterator it) { - this.it = it; - this.nb = 0; - } - - public int currentNum() { - return nb; - } - - public boolean hasNext() { - return it.hasNext(); - } - - public String next() { - nb++; - return it.next(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/version/IteratorCounter.java plantuml-8039/src/net/sourceforge/plantuml/version/IteratorCounter.java --- plantuml-8024/src/net/sourceforge/plantuml/version/IteratorCounter.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/version/IteratorCounter.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2014, Arnaud Roques - * - * Project Info: http://plantuml.sourceforge.net - * - * This file is part of PlantUML. - * - * Licensed under The MIT License (Massachusetts Institute of Technology License) - * - * See http://opensource.org/licenses/MIT - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * Original Author: Arnaud Roques - */ -package net.sourceforge.plantuml.version; - -import java.util.Iterator; - -public interface IteratorCounter extends Iterator { - - public int currentNum(); - -} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/version/License.java plantuml-8039/src/net/sourceforge/plantuml/version/License.java --- plantuml-8024/src/net/sourceforge/plantuml/version/License.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/version/License.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -40,7 +40,7 @@ public enum License { - GPL, LGPL, APACHE, EPL, MIT; + GPL, LGPL, APACHE, EPL, MIT, BSD; public static License getCurrent() { return MIT; @@ -117,6 +117,48 @@ text.add("by the very same license."); } + private void addBsd(final List text) { + text.add("PlantUML is free software; you can redistribute it and/or modify it"); + text.add("under the terms of the Revised BSD License."); + text.add(""); + text.add("All rights reserved."); + text.add("Redistribution and use in source and binary forms, with or without"); + text.add("modification, are permitted provided that the following conditions are met:"); + text.add(""); + text.add("* Redistributions of source code must retain the above copyright"); + text.add(" notice, this list of conditions and the following disclaimer."); + text.add("* Redistributions in binary form must reproduce the above copyright"); + text.add(" notice, this list of conditions and the following disclaimer in the"); + text.add(" documentation and/or other materials provided with the distribution."); + text.add("* Neither the name of the University of California, Berkeley nor the"); + text.add(" names of its contributors may be used to endorse or promote products"); + text.add(" derived from this software without specific prior written permission."); + text.add(""); + text.add("THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY"); + text.add("EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED"); + text.add("WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE"); + text.add("DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY"); + text.add("DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES"); + text.add("(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;"); + text.add("LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND"); + text.add("ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT"); + text.add("(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS"); + text.add("SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."); + text.add(""); + text.add("Note that images (whatever their format : PNG, SVG...) generated by running PlantUML"); + text.add("are owned by the author of their corresponding sources code (that is, their"); + text.add("textual description in PlantUML language). Those images are not covered by"); + text.add("the Eclipse Public License."); + text.add(""); + text.add("The generated images can then be used without any reference to the Eclipse Public License."); + text.add("It is not even necessary to stipulate that they have been generated with PlantUML,"); + text.add("also this will be appreciate by PlantUML team."); + text.add(""); + text.add("There is an exception : if the textual description in PlantUML language is also covered"); + text.add("by a license (like the BSD), then the generated images are logically covered"); + text.add("by the very same license."); + } + private void addApache(final List text) { text.add("PlantUML is free software; you can redistribute it and/or modify it"); text.add("under the terms of the Apache Software License."); @@ -213,9 +255,9 @@ text.add("PlantUML : a free UML diagram generator"); text.add("========================================================================"); text.add(""); - text.add("(C) Copyright 2009-2014, Arnaud Roques"); + text.add("(C) Copyright 2009-2017, Arnaud Roques"); text.add(""); - text.add("Project Info: http://plantuml.sourceforge.net"); + text.add("Project Info: http://plantuml.com"); text.add(""); return text; } @@ -226,9 +268,9 @@ h.add(" * PlantUML : a free UML diagram generator"); h.add(" * ========================================================================"); h.add(" *"); - h.add(" * (C) Copyright 2009-2014, Arnaud Roques"); + h.add(" * (C) Copyright 2009-2017, Arnaud Roques"); h.add(" *"); - h.add(" * Project Info: http://plantuml.sourceforge.net"); + h.add(" * Project Info: http://plantuml.com"); h.add(" * "); h.add(" * This file is part of PlantUML."); h.add(" *"); @@ -278,6 +320,32 @@ h.add(" * See the License for the specific language governing permissions and"); h.add(" * limitations under the License."); h.add(" * "); + } else if (this == License.BSD) { + h.add(" * Licensed under the Revised BSD License (the Revised Berkeley Software Distribution)"); + h.add(" * "); + h.add(" * Redistribution and use in source and binary forms, with or without"); + h.add(" * modification, are permitted provided that the following conditions are met:"); + h.add(" * "); + h.add(" * * Redistributions of source code must retain the above copyright"); + h.add(" * notice, this list of conditions and the following disclaimer."); + h.add(" * * Redistributions in binary form must reproduce the above copyright"); + h.add(" * notice, this list of conditions and the following disclaimer in the"); + h.add(" * documentation and/or other materials provided with the distribution."); + h.add(" * * Neither the name of the University of California, Berkeley nor the"); + h.add(" * names of its contributors may be used to endorse or promote products"); + h.add(" * derived from this software without specific prior written permission."); + h.add(" * "); + h.add(" * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY"); + h.add(" * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED"); + h.add(" * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE"); + h.add(" * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY"); + h.add(" * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES"); + h.add(" * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;"); + h.add(" * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND"); + h.add(" * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT"); + h.add(" * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS"); + h.add(" * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."); + h.add(" * "); } else if (this == License.MIT) { h.add(" * Licensed under The MIT License (Massachusetts Institute of Technology License)"); h.add(" * "); @@ -315,6 +383,8 @@ addMit(text); } else if (this == License.EPL) { addEpl(text); + } else if (this == License.BSD) { + addBsd(text); } else if (this == License.APACHE) { addApache(text); } else if (this == License.LGPL) { @@ -323,7 +393,8 @@ throw new IllegalStateException(); } text.add(""); - text.add("Icon provided by OpenIconic : https://useiconic.com/open/"); + text.add("Icons provided by OpenIconic : https://useiconic.com/open"); + text.add("Archimate sprites provided by Archi : http://www.archimatetool.com"); text.add(""); return text; } Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/net/sourceforge/plantuml/version/out.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/net/sourceforge/plantuml/version/out.png differ diff -Nru plantuml-8024/src/net/sourceforge/plantuml/version/PSystemLicenseFactory.java plantuml-8039/src/net/sourceforge/plantuml/version/PSystemLicenseFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/version/PSystemLicenseFactory.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/version/PSystemLicenseFactory.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/version/PSystemLicense.java plantuml-8039/src/net/sourceforge/plantuml/version/PSystemLicense.java --- plantuml-8024/src/net/sourceforge/plantuml/version/PSystemLicense.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/version/PSystemLicense.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -65,8 +65,8 @@ final GraphicStrings result = getGraphicStrings(); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } public static PSystemLicense create() throws IOException { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/version/PSystemVersionFactory.java plantuml-8039/src/net/sourceforge/plantuml/version/PSystemVersionFactory.java --- plantuml-8024/src/net/sourceforge/plantuml/version/PSystemVersionFactory.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/version/PSystemVersionFactory.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/version/PSystemVersion.java plantuml-8039/src/net/sourceforge/plantuml/version/PSystemVersion.java --- plantuml-8024/src/net/sourceforge/plantuml/version/PSystemVersion.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/version/PSystemVersion.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -141,14 +141,15 @@ final GraphicStrings result = getGraphicStrings(); final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(), getMetadata(), null, 0, 0, null, false); - imageBuilder.addUDrawable(result); - return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os); + imageBuilder.setUDrawable(result); + return imageBuilder.writeImageTOBEMOVED(fileFormat, os); } public static PSystemVersion createShowVersion() { final List strings = new ArrayList(); strings.add("PlantUML version " + Version.versionString() + " (" + Version.compileTimeString() + ")"); strings.add("(" + License.getCurrent() + " source distribution)"); + strings.add("Loaded from " + Version.getJarPath()); strings.add(" "); strings.addAll(GraphvizUtils.getTestDotStrings(true)); @@ -177,7 +178,7 @@ strings.add("Logo: Benjamin Croizet"); strings.add(" "); - strings.add("http://plantuml.sourceforge.net"); + strings.add("http://plantuml.com"); strings.add(" "); return new PSystemVersion(true, strings); } @@ -191,7 +192,7 @@ int lim = 7; if (lastversion == -1) { strings.add("Error"); - strings.add("Cannot connect to http://plantuml.sourceforge.net/"); + strings.add("Cannot connect to http://plantuml.com/"); strings.add("Maybe you should set your proxy ?"); strings.add("@startuml"); strings.add("checkversion(proxy=myproxy.com,port=8080)"); @@ -199,7 +200,7 @@ lim = 9; } else if (lastversion == 0) { strings.add("Error"); - strings.add("Cannot retrieve last version from http://plantuml.sourceforge.net/"); + strings.add("Cannot retrieve last version from http://plantuml.com/"); } else { strings.add("Last available version for download : " + lastversion); strings.add(" "); @@ -224,7 +225,7 @@ } try { - final URL url = new URL("http://plantuml.sourceforge.net/download.html"); + final URL url = new URL("http://plantuml.com/download.html"); final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setUseCaches(false); urlConnection.connect(); @@ -262,8 +263,8 @@ private GraphicStrings getGraphicStrings() throws IOException { final UFont font = new UFont("SansSerif", Font.PLAIN, 12); - return new GraphicStrings(strings, font, HtmlColorUtils.BLACK, HtmlColorUtils.WHITE, UAntiAliasing.ANTI_ALIASING_ON, - image, GraphicPosition.BACKGROUND_CORNER_BOTTOM_RIGHT); + return new GraphicStrings(strings, font, HtmlColorUtils.BLACK, HtmlColorUtils.WHITE, + UAntiAliasing.ANTI_ALIASING_ON, image, GraphicPosition.BACKGROUND_CORNER_BOTTOM_RIGHT); } public DiagramDescription getDescription() { diff -Nru plantuml-8024/src/net/sourceforge/plantuml/version/Version.java plantuml-8039/src/net/sourceforge/plantuml/version/Version.java --- plantuml-8024/src/net/sourceforge/plantuml/version/Version.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/version/Version.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -34,16 +34,17 @@ */ package net.sourceforge.plantuml.version; +import java.net.URL; import java.util.Date; public class Version { public static int version() { - return 8024; + return 8039; } public static String versionString() { - if (beta() != 0) { + if (beta() != 1) { return "" + (version() + 1) + "beta" + beta(); } return "" + version(); @@ -63,7 +64,7 @@ } private static long compileTime() { - return 1430665511202L; + return 1461342268180L; } public static String compileTimeString() { @@ -73,4 +74,23 @@ return new Date(Version.compileTime()).toString(); } + public static String getJarPath() { + try { + final ClassLoader loader = Version.class.getClassLoader(); + if (loader == null) { + return "No ClassLoader?"; + } + final URL url = loader.getResource("net/sourceforge/plantuml/version/Version.class"); + if (url == null) { + return "No URL?"; + } + String fullpath = url.toString(); + fullpath = fullpath.replaceAll("net/sourceforge/plantuml/version/Version\\.class", ""); + return fullpath; + } catch (Throwable t) { + t.printStackTrace(); + return t.toString(); + } + } + } diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/BoolDecoder.java plantuml-8039/src/net/sourceforge/plantuml/webp/BoolDecoder.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/BoolDecoder.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/BoolDecoder.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,169 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . + */ +package net.sourceforge.plantuml.webp; + +import java.io.IOException; + +import javax.imageio.stream.ImageInputStream; + +public class BoolDecoder { + int bit_count; /* # of bits shifted out of value, at most 7 */ + ImageInputStream data; + private long offset; /* pointer to next compressed data byte */ + private int range; /* always identical to encoder's range */ + private int value; /* contains at least 24 significant bits */ + + BoolDecoder(ImageInputStream frame, long offset) throws IOException { + this.data = frame; + this.offset = offset; + initBoolDecoder(); + } + + private void initBoolDecoder() throws IOException { + + value = 0; /* value = first 16 input bits */ + + data.seek(offset); + value = data.readUnsignedByte() << 8; + // value = (data[offset]) << 8; + offset++; + + range = 255; /* initial range is full */ + bit_count = 0; /* have not yet shifted out any bits */ + } + + public int readBit() throws IOException { + return readBool(128); + } + + public int readBool(int probability) throws IOException { + + int bit = 0; + int split; + int bigsplit; + int range = this.range; + int value = this.value; + split = 1 + (((range - 1) * probability) >> 8); + bigsplit = (split << 8); + range = split; + + if (value >= bigsplit) { + range = this.range - split; + value = value - bigsplit; + bit = 1; + } + + { + int count = this.bit_count; + int shift = Globals.vp8dxBitreaderNorm[range]; + range <<= shift; + value <<= shift; + count -= shift; + + if (count <= 0) { + // data.seek(offset); + value |= data.readUnsignedByte() << (-count); + // value |= data[offset] << (-count); + offset++; + count += 8; + } + + this.bit_count = count; + } + this.value = value; + this.range = range; + return bit; + } + + /* + * Convenience function reads a "literal", that is, a "num_bits" wide + * unsigned value whose bits come high- to low-order, with each bit encoded + * at probability 128 (i.e., 1/2). + */ + public int readLiteral(int num_bits) throws IOException { + int v = 0; + while (num_bits-- > 0) + v = (v << 1) + readBool(128); + return v; + } + + int readTree(int t[], /* tree specification */ + int p[] /* corresponding interior node probabilities */ + ) throws IOException { + int i = 0; /* begin at root */ + + /* Descend tree until leaf is reached */ + while ((i = t[i + readBool(p[i >> 1])]) > 0) { + } + return -i; /* return value is negation of nonpositive index */ + + } + + int readTreeSkip(int t[], /* tree specification */ + int p[], /* corresponding interior node probabilities */ + int skip_branches) throws IOException { + int i = skip_branches * 2; /* begin at root */ + + /* Descend tree until leaf is reached */ + while ((i = t[i + readBool(p[i >> 1])]) > 0) { + } + return -i; /* return value is negation of nonpositive index */ + + } + + public void seek() throws IOException { + data.seek(offset); + } + + public String toString() { + return "bc: " + value; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/DeltaQ.java plantuml-8039/src/net/sourceforge/plantuml/webp/DeltaQ.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/DeltaQ.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/DeltaQ.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,56 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . + */ + +package net.sourceforge.plantuml.webp; + +public class DeltaQ { + public boolean update = false; + public int v = 0; +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/Globals.java plantuml-8039/src/net/sourceforge/plantuml/webp/Globals.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/Globals.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/Globals.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,854 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . + */ +package net.sourceforge.plantuml.webp; + +public class Globals { + + public static final int DC_PRED = 0; /* + * predict DC using row above and column + * to the left + */ + public static final int V_PRED = 1; /* predict rows using row above */ + public static final int H_PRED = 2; /* + * predict columns using column to the + * left + */ + public static final int TM_PRED = 3; /* + * propagate second differences a la + * "true motion" + */ + public static final int B_PRED = 4; /* + * each Y subblock is independently + * predicted + */ + + public static String getModeAsString(int mode) { + switch (mode) { + case DC_PRED: + return "DC_PRED"; + case V_PRED: + return "V_PRED"; + case H_PRED: + return "H_PRED"; + case TM_PRED: + return "TM_PRED"; + case B_PRED: + return "B_PRED"; + } + return "not found"; + } + + /* intra_bmode */ + public static final int B_DC_PRED = 0; /* + * predict DC using row above and + * column to the left + */ + public static final int B_TM_PRED = 1; /* + * propagate second differences a la + * "true motion" + */ + public static final int B_VE_PRED = 2; /* predict rows using row above */ + public static final int B_HE_PRED = 3; /* + * predict columns using column to + * the left + */ + public static final int B_LD_PRED = 4; /* + * southwest (left and down) 45 + * degree diagonal prediction + */ + public static final int B_RD_PRED = 5; /* southeast (right and down) "" */ + public static final int B_VR_PRED = 6; /* + * SSE (vertical right) diagonal + * prediction + */ + public static final int B_VL_PRED = 7; /* SSW (vertical left) "" */ + public static final int B_HD_PRED = 8; /* ESE (horizontal down) "" */ + public static final int B_HU_PRED = 9; /* ENE (horizontal up) "" */ + + public static String getSubBlockModeAsString(int mode) { + switch (mode) { + case B_DC_PRED: + return "B_DC_PRED"; + case B_TM_PRED: + return "B_TM_PRED"; + case B_VE_PRED: + return "B_VE_PRED"; + case B_HE_PRED: + return "B_HE_PRED"; + case B_LD_PRED: + return "B_LD_PRED"; + case B_RD_PRED: + return "B_RD_PRED"; + case B_VR_PRED: + return "B_VR_PRED"; + case B_VL_PRED: + return "B_VL_PRED"; + case B_HD_PRED: + return "B_HD_PRED"; + case B_HU_PRED: + return "B_HU_PRED"; + } + return "not found"; + } + + public static final int MAX_MB_SEGMENTS = 4; + public static final int MB_LVL_MAX = 2; + public static int[] vp8MacroBlockFeatureDataBits = { 7, 6 }; + public static final int MB_FEATURE_TREE_PROBS = 3; + + public static int macroBlockSegmentTree[] = { 2, 4, + /* root: "0", "1" subtrees */ + -0, -1, + /* "00" = 0th value, "01" = 1st value */ + -2, -3 + /* "10" = 2nd value, "11" = 3rd value */ + }; + + public static int vp8KeyFrameYModeTree[] = { -B_PRED, 2, 4, 6, -DC_PRED, + -V_PRED, -H_PRED, -TM_PRED }; + + public static int vp8SubBlockModeTree[] = { -B_DC_PRED, 2, /* + * B_DC_PRED = + * "0" + */ + -B_TM_PRED, 4, /* B_TM_PRED = "10" */ + -B_VE_PRED, 6, /* B_VE_PRED = "110" */ + 8, 12, -B_HE_PRED, 10, /* B_HE_PRED = "1110" */ + -B_RD_PRED, -B_VR_PRED, /* B_RD_PRED = "111100", B_VR_PRED = "111101" */ + -B_LD_PRED, 14, /* B_LD_PRED = "111110" */ + -B_VL_PRED, 16, /* B_VL_PRED = "1111110" */ + -B_HD_PRED, -B_HU_PRED /* HD = "11111110", HU = "11111111" */ + }; + + public static int vp8KeyFrameYModeProb[] = { 145, 156, 163, 128 }; + + // uv + public static int vp8UVModeTree[] = { -DC_PRED, 2, /* + * root: DC_PRED = "0", + * "1" subtree + */ + -V_PRED, 4, /* "1" subtree: V_PRED = "10", "11" subtree */ + -H_PRED, -TM_PRED /* "11" subtree: H_PRED = "110", TM_PRED = "111" */ + }; + public static int vp8KeyFrameUVModeProb[] = { 142, 114, 183 }; + + public static int vp8KeyFrameSubBlockModeProb[][][] = { + { { 231, 120, 48, 89, 115, 113, 120, 152, 112 }, + { 152, 179, 64, 126, 170, 118, 46, 70, 95 }, + { 175, 69, 143, 80, 85, 82, 72, 155, 103 }, + { 56, 58, 10, 171, 218, 189, 17, 13, 152 }, + { 144, 71, 10, 38, 171, 213, 144, 34, 26 }, + { 114, 26, 17, 163, 44, 195, 21, 10, 173 }, + { 121, 24, 80, 195, 26, 62, 44, 64, 85 }, + { 170, 46, 55, 19, 136, 160, 33, 206, 71 }, + { 63, 20, 8, 114, 114, 208, 12, 9, 226 }, + { 81, 40, 11, 96, 182, 84, 29, 16, 36 } }, + { { 134, 183, 89, 137, 98, 101, 106, 165, 148 }, + { 72, 187, 100, 130, 157, 111, 32, 75, 80 }, + { 66, 102, 167, 99, 74, 62, 40, 234, 128 }, + { 41, 53, 9, 178, 241, 141, 26, 8, 107 }, + { 104, 79, 12, 27, 217, 255, 87, 17, 7 }, + { 74, 43, 26, 146, 73, 166, 49, 23, 157 }, + { 65, 38, 105, 160, 51, 52, 31, 115, 128 }, + { 87, 68, 71, 44, 114, 51, 15, 186, 23 }, + { 47, 41, 14, 110, 182, 183, 21, 17, 194 }, + { 66, 45, 25, 102, 197, 189, 23, 18, 22 } }, + { { 88, 88, 147, 150, 42, 46, 45, 196, 205 }, + { 43, 97, 183, 117, 85, 38, 35, 179, 61 }, + { 39, 53, 200, 87, 26, 21, 43, 232, 171 }, + { 56, 34, 51, 104, 114, 102, 29, 93, 77 }, + { 107, 54, 32, 26, 51, 1, 81, 43, 31 }, + { 39, 28, 85, 171, 58, 165, 90, 98, 64 }, + { 34, 22, 116, 206, 23, 34, 43, 166, 73 }, + { 68, 25, 106, 22, 64, 171, 36, 225, 114 }, + { 34, 19, 21, 102, 132, 188, 16, 76, 124 }, + { 62, 18, 78, 95, 85, 57, 50, 48, 51 } }, + { { 193, 101, 35, 159, 215, 111, 89, 46, 111 }, + { 60, 148, 31, 172, 219, 228, 21, 18, 111 }, + { 112, 113, 77, 85, 179, 255, 38, 120, 114 }, + { 40, 42, 1, 196, 245, 209, 10, 25, 109 }, + { 100, 80, 8, 43, 154, 1, 51, 26, 71 }, + { 88, 43, 29, 140, 166, 213, 37, 43, 154 }, + { 61, 63, 30, 155, 67, 45, 68, 1, 209 }, + { 142, 78, 78, 16, 255, 128, 34, 197, 171 }, + { 41, 40, 5, 102, 211, 183, 4, 1, 221 }, + { 51, 50, 17, 168, 209, 192, 23, 25, 82 } }, + { { 125, 98, 42, 88, 104, 85, 117, 175, 82 }, + { 95, 84, 53, 89, 128, 100, 113, 101, 45 }, + { 75, 79, 123, 47, 51, 128, 81, 171, 1 }, + { 57, 17, 5, 71, 102, 57, 53, 41, 49 }, + { 115, 21, 2, 10, 102, 255, 166, 23, 6 }, + { 38, 33, 13, 121, 57, 73, 26, 1, 85 }, + { 41, 10, 67, 138, 77, 110, 90, 47, 114 }, + { 101, 29, 16, 10, 85, 128, 101, 196, 26 }, + { 57, 18, 10, 102, 102, 213, 34, 20, 43 }, + { 117, 20, 15, 36, 163, 128, 68, 1, 26 } }, + { { 138, 31, 36, 171, 27, 166, 38, 44, 229 }, + { 67, 87, 58, 169, 82, 115, 26, 59, 179 }, + { 63, 59, 90, 180, 59, 166, 93, 73, 154 }, + { 40, 40, 21, 116, 143, 209, 34, 39, 175 }, + { 57, 46, 22, 24, 128, 1, 54, 17, 37 }, + { 47, 15, 16, 183, 34, 223, 49, 45, 183 }, + { 46, 17, 33, 183, 6, 98, 15, 32, 183 }, + { 65, 32, 73, 115, 28, 128, 23, 128, 205 }, + { 40, 3, 9, 115, 51, 192, 18, 6, 223 }, + { 87, 37, 9, 115, 59, 77, 64, 21, 47 } }, + { { 104, 55, 44, 218, 9, 54, 53, 130, 226 }, + { 64, 90, 70, 205, 40, 41, 23, 26, 57 }, + { 54, 57, 112, 184, 5, 41, 38, 166, 213 }, + { 30, 34, 26, 133, 152, 116, 10, 32, 134 }, + { 75, 32, 12, 51, 192, 255, 160, 43, 51 }, + { 39, 19, 53, 221, 26, 114, 32, 73, 255 }, + { 31, 9, 65, 234, 2, 15, 1, 118, 73 }, + { 88, 31, 35, 67, 102, 85, 55, 186, 85 }, + { 56, 21, 23, 111, 59, 205, 45, 37, 192 }, + { 55, 38, 70, 124, 73, 102, 1, 34, 98 } }, + { { 102, 61, 71, 37, 34, 53, 31, 243, 192 }, + { 69, 60, 71, 38, 73, 119, 28, 222, 37 }, + { 68, 45, 128, 34, 1, 47, 11, 245, 171 }, + { 62, 17, 19, 70, 146, 85, 55, 62, 70 }, + { 75, 15, 9, 9, 64, 255, 184, 119, 16 }, + { 37, 43, 37, 154, 100, 163, 85, 160, 1 }, + { 63, 9, 92, 136, 28, 64, 32, 201, 85 }, + { 86, 6, 28, 5, 64, 255, 25, 248, 1 }, + { 56, 8, 17, 132, 137, 255, 55, 116, 128 }, + { 58, 15, 20, 82, 135, 57, 26, 121, 40 } }, + { { 164, 50, 31, 137, 154, 133, 25, 35, 218 }, + { 51, 103, 44, 131, 131, 123, 31, 6, 158 }, + { 86, 40, 64, 135, 148, 224, 45, 183, 128 }, + { 22, 26, 17, 131, 240, 154, 14, 1, 209 }, + { 83, 12, 13, 54, 192, 255, 68, 47, 28 }, + { 45, 16, 21, 91, 64, 222, 7, 1, 197 }, + { 56, 21, 39, 155, 60, 138, 23, 102, 213 }, + { 85, 26, 85, 85, 128, 128, 32, 146, 171 }, + { 18, 11, 7, 63, 144, 171, 4, 4, 246 }, + { 35, 27, 10, 146, 174, 171, 12, 26, 128 } }, + { { 190, 80, 35, 99, 180, 80, 126, 54, 45 }, + { 85, 126, 47, 87, 176, 51, 41, 20, 32 }, + { 101, 75, 128, 139, 118, 146, 116, 128, 85 }, + { 56, 41, 15, 176, 236, 85, 37, 9, 62 }, + { 146, 36, 19, 30, 171, 255, 97, 27, 20 }, + { 71, 30, 17, 119, 118, 255, 17, 18, 138 }, + { 101, 38, 60, 138, 55, 70, 43, 26, 142 }, + { 138, 45, 61, 62, 219, 1, 81, 188, 64 }, + { 32, 41, 20, 117, 151, 142, 20, 21, 163 }, + { 112, 19, 12, 61, 195, 128, 48, 4, 24 } } }; + + static int vp8CoefUpdateProbs[][][][] = new int[][][][] { + { + { + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 176, 246, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 223, 241, 252, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 249, 253, 253, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 244, 252, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 234, 254, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 246, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 239, 253, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 254, 255, 254, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 248, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 251, 255, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 253, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 251, 254, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 254, 255, 254, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 254, 253, 255, 254, 255, 255, 255, 255, 255, + 255 }, + { 250, 255, 254, 255, 254, 255, 255, 255, 255, 255, + 255 }, + + { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } } }, + { + { + { 217, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 225, 252, 241, 253, 255, 255, 254, 255, 255, 255, + 255 }, + { 234, 250, 241, 250, 253, 255, 253, 254, 255, 255, + 255 } }, + { + { 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 223, 254, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 238, 253, 254, 254, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 248, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 249, 254, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 247, 254, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 253, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 254, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 254, 253, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } } }, + { + { + { 186, 251, 250, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 234, 251, 244, 254, 255, 255, 255, 255, 255, 255, + 255 }, + { 251, 251, 243, 253, 254, 255, 254, 255, 255, 255, + 255 } }, + { + + { 255, 253, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 236, 253, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 251, 253, 253, 254, 254, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 254, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } } }, + { + { + { 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 250, 254, 252, 254, 255, 255, 255, 255, 255, 255, + 255 }, + { 248, 254, 249, 253, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 253, 253, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 246, 253, 253, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 252, 254, 251, 254, 254, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 254, 252, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 248, 254, 253, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 253, 255, 254, 254, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 251, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 245, 251, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + + { 255, 251, 253, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 249, 255, 254, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } }, + { + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 }, + { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255 } } } }; + + public static int[][][][] getDefaultCoefProbs() { + int r[][][][] = new int[vp8DefaultCoefProbs.length][vp8DefaultCoefProbs[0].length][vp8DefaultCoefProbs[0][0].length][vp8DefaultCoefProbs[0][0][0].length]; + for (int i = 0; i < vp8DefaultCoefProbs.length; i++) + for (int j = 0; j < vp8DefaultCoefProbs[0].length; j++) + for (int k = 0; k < vp8DefaultCoefProbs[0][0].length; k++) + for (int l = 0; l < vp8DefaultCoefProbs[0][0][0].length; l++) + r[i][j][k][l] = vp8DefaultCoefProbs[i][j][k][l]; + return r; + } + + private static int vp8DefaultCoefProbs[][][][] = new int[][][][] { + { + { + { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128 }, + { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128 }, + { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128 } }, + { + { 253, 136, 254, 255, 228, 219, 128, 128, 128, 128, + 128 }, + { 189, 129, 242, 255, 227, 213, 255, 219, 128, 128, + 128 }, + { 106, 126, 227, 252, 214, 209, 255, 255, 128, 128, + 128 } }, + { + { 1, 98, 248, 255, 236, 226, 255, 255, 128, 128, + 128 }, + { 181, 133, 238, 254, 221, 234, 255, 154, 128, 128, + 128 }, + { 78, 134, 202, 247, 198, 180, 255, 219, 128, 128, + 128 } }, + { + { 1, 185, 249, 255, 243, 255, 128, 128, 128, 128, + 128 }, + { 184, 150, 247, 255, 236, 224, 128, 128, 128, 128, + 128 }, + { 77, 110, 216, 255, 236, 230, 128, 128, 128, 128, + 128 } }, + { + { 1, 101, 251, 255, 241, 255, 128, 128, 128, 128, + 128 }, + { 170, 139, 241, 252, 236, 209, 255, 255, 128, 128, + 128 }, + { 37, 116, 196, 243, 228, 255, 255, 255, 128, 128, + 128 } }, + { + + { 1, 204, 254, 255, 245, 255, 128, 128, 128, 128, + 128 }, + { 207, 160, 250, 255, 238, 128, 128, 128, 128, 128, + 128 }, + { 102, 103, 231, 255, 211, 171, 128, 128, 128, 128, + 128 } }, + { + { 1, 152, 252, 255, 240, 255, 128, 128, 128, 128, + 128 }, + { 177, 135, 243, 255, 234, 225, 128, 128, 128, 128, + 128 }, + { 80, 129, 211, 255, 194, 224, 128, 128, 128, 128, + 128 } }, + { + { 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 }, + { 246, 1, 255, 128, 128, 128, 128, 128, 128, 128, + 128 }, + { 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128 } } }, + { + { + { 198, 35, 237, 223, 193, 187, 162, 160, 145, 155, + 62 }, + { 131, 45, 198, 221, 172, 176, 220, 157, 252, 221, + 1 }, + { 68, 47, 146, 208, 149, 167, 221, 162, 255, 223, + 128 } }, + { + { 1, 149, 241, 255, 221, 224, 255, 255, 128, 128, + 128 }, + { 184, 141, 234, 253, 222, 220, 255, 199, 128, 128, + 128 }, + { 81, 99, 181, 242, 176, 190, 249, 202, 255, 255, + 128 } }, + { + { 1, 129, 232, 253, 214, 197, 242, 196, 255, 255, + 128 }, + { 99, 121, 210, 250, 201, 198, 255, 202, 128, 128, + 128 }, + { 23, 91, 163, 242, 170, 187, 247, 210, 255, 255, + 128 } }, + { + { 1, 200, 246, 255, 234, 255, 128, 128, 128, 128, + 128 }, + { 109, 178, 241, 255, 231, 245, 255, 255, 128, 128, + 128 }, + { 44, 130, 201, 253, 205, 192, 255, 255, 128, 128, + 128 } }, + { + { 1, 132, 239, 251, 219, 209, 255, 165, 128, 128, + 128 }, + { 94, 136, 225, 251, 218, 190, 255, 255, 128, 128, + 128 }, + { 22, 100, 174, 245, 186, 161, 255, 199, 128, 128, + 128 } }, + { + { 1, 182, 249, 255, 232, 235, 128, 128, 128, 128, + 128 }, + { 124, 143, 241, 255, 227, 234, 128, 128, 128, 128, + 128 }, + { 35, 77, 181, 251, 193, 211, 255, 205, 128, 128, + 128 } }, + { + { 1, 157, 247, 255, 236, 231, 255, 255, 128, 128, + 128 }, + { 121, 141, 235, 255, 225, 227, 255, 255, 128, 128, + 128 }, + { 45, 99, 188, 251, 195, 217, 255, 224, 128, 128, + 128 } }, + { + { 1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128 }, + { 203, 1, 248, 255, 255, 128, 128, 128, 128, 128, + 128 }, + { 137, 1, 177, 255, 224, 255, 128, 128, 128, 128, + 128 } } }, + + { + { + { 253, 9, 248, 251, 207, 208, 255, 192, 128, 128, + 128 }, + { 175, 13, 224, 243, 193, 185, 249, 198, 255, 255, + 128 }, + { 73, 17, 171, 221, 161, 179, 236, 167, 255, 234, + 128 } }, + { + { 1, 95, 247, 253, 212, 183, 255, 255, 128, 128, + 128 }, + { 239, 90, 244, 250, 211, 209, 255, 255, 128, 128, + 128 }, + { 155, 77, 195, 248, 188, 195, 255, 255, 128, 128, + 128 } }, + { + { 1, 24, 239, 251, 218, 219, 255, 205, 128, 128, + 128 }, + { 201, 51, 219, 255, 196, 186, 128, 128, 128, 128, + 128 }, + { 69, 46, 190, 239, 201, 218, 255, 228, 128, 128, + 128 } }, + { + { 1, 191, 251, 255, 255, 128, 128, 128, 128, 128, + 128 }, + { 223, 165, 249, 255, 213, 255, 128, 128, 128, 128, + 128 }, + { 141, 124, 248, 255, 255, 128, 128, 128, 128, 128, + 128 } }, + { + { 1, 16, 248, 255, 255, 128, 128, 128, 128, 128, + 128 }, + { 190, 36, 230, 255, 236, 255, 128, 128, 128, 128, + 128 }, + { 149, 1, 255, 128, 128, 128, 128, 128, 128, 128, + 128 } }, + { + { 1, 226, 255, 128, 128, 128, 128, 128, 128, 128, + 128 }, + { 247, 192, 255, 128, 128, 128, 128, 128, 128, 128, + 128 }, + { 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, + 128 } }, + { + { 1, 134, 252, 255, 255, 128, 128, 128, 128, 128, + 128 }, + { 213, 62, 250, 255, 255, 128, 128, 128, 128, 128, + 128 }, + { 55, 93, 255, 128, 128, 128, 128, 128, 128, 128, + 128 } }, + { + { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128 }, + { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128 }, + { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128 } } }, + { + { + { 202, 24, 213, 235, 186, 191, 220, 160, 240, 175, + 255 }, + { 126, 38, 182, 232, 169, 184, 228, 174, 255, 187, + 128 }, + { 61, 46, 138, 219, 151, 178, 240, 170, 255, 216, + 128 } }, + { + { 1, 112, 230, 250, 199, 191, 247, 159, 255, 255, + 128 }, + { 166, 109, 228, 252, 211, 215, 255, 174, 128, 128, + 128 }, + { 39, 77, 162, 232, 172, 180, 245, 178, 255, 255, + 128 } }, + { + { 1, 52, 220, 246, 198, 199, 249, 220, 255, 255, + 128 }, + { 124, 74, 191, 243, 183, 193, 250, 221, 255, 255, + 128 }, + { 24, 71, 130, 219, 154, 170, 243, 182, 255, 255, + 128 } + + }, + { + { 1, 182, 225, 249, 219, 240, 255, 224, 128, 128, + 128 }, + { 149, 150, 226, 252, 216, 205, 255, 171, 128, 128, + 128 }, + { 28, 108, 170, 242, 183, 194, 254, 223, 255, 255, + 128 } }, + { + { 1, 81, 230, 252, 204, 203, 255, 192, 128, 128, + 128 }, + { 123, 102, 209, 247, 188, 196, 255, 233, 128, 128, + 128 }, + { 20, 95, 153, 243, 164, 173, 255, 203, 128, 128, + 128 } }, + { + { 1, 222, 248, 255, 216, 213, 128, 128, 128, 128, + 128 }, + { 168, 175, 246, 252, 235, 205, 255, 255, 128, 128, + 128 }, + { 47, 116, 215, 255, 211, 212, 255, 255, 128, 128, + 128 } }, + { + { 1, 121, 236, 253, 212, 214, 255, 255, 128, 128, + 128 }, + { 141, 84, 213, 252, 201, 202, 255, 219, 128, 128, + 128 }, + { 42, 80, 160, 240, 162, 185, 255, 205, 128, 128, + 128 } }, + { + { 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 }, + { 244, 1, 255, 128, 128, 128, 128, 128, 128, 128, + 128 }, + { 238, 1, 255, 128, 128, 128, 128, 128, 128, 128, + 128 } } } }; + + public static final int DCT_0 = 0; /* value 0 */ + public static final int DCT_1 = 1; /* 1 */ + public static final int DCT_2 = 2; /* 2 */ + public static final int DCT_3 = 3; /* 3 */ + public static final int DCT_4 = 4; /* 4 */ + public static final int dct_cat1 = 5; /* range 5 - 6 (size 2) */ + public static final int dct_cat2 = 6; /* 7 - 10 (4) */ + public static final int dct_cat3 = 7; /* 11 - 18 (8) */ + public static final int dct_cat4 = 8; /* 19 - 34 (16) */ + public static final int dct_cat5 = 9; /* 35 - 66 (32) */ + public static final int dct_cat6 = 10; /* 67 - 2048 (1982) */ + public static final int dct_eob = 11; /* end of block */ + + public static final int vp8CoefTree[] = { -dct_eob, 2, /* eob = "0" */ + -DCT_0, 4, /* 0 = "10" */ + -DCT_1, 6, /* 1 = "110" */ + 8, 12, -DCT_2, 10, /* 2 = "11100" */ + -DCT_3, -DCT_4, /* 3 = "111010", 4 = "111011" */ + 14, 16, -dct_cat1, -dct_cat2, /* cat1 = "111100", cat2 = "111101" */ + 18, 20, -dct_cat3, -dct_cat4, /* cat3 = "1111100", cat4 = "1111101" */ + -dct_cat5, -dct_cat6 /* cat4 = "1111110", cat4 = "1111111" */ + }; + + public static final int vp8CoefTreeNoEOB[] = { + // -dct_eob, 2, /* eob = "0" */ + -DCT_0, 4, /* 0 = "10" */ + -DCT_1, 6, /* 1 = "110" */ + 8, 12, -DCT_2, 10, /* 2 = "11100" */ + -DCT_3, -DCT_4, /* 3 = "111010", 4 = "111011" */ + 14, 16, -dct_cat1, -dct_cat2, /* cat1 = "111100", cat2 = "111101" */ + 18, 20, -dct_cat3, -dct_cat4, /* cat3 = "1111100", cat4 = "1111101" */ + -dct_cat5, -dct_cat6 /* cat4 = "1111110", cat4 = "1111111" */ + }; + + public final static int Pcat1[] = { 159, 0 }; + public final static int Pcat2[] = { 165, 145, 0 }; + public final static int Pcat3[] = { 173, 148, 140, 0 }; + public final static int Pcat4[] = { 176, 155, 140, 135, 0 }; + public final static int Pcat5[] = { 180, 157, 141, 134, 130, 0 }; + public final static int Pcat6[] = { 254, 254, 243, 230, 196, 177, 153, 140, + 133, 130, 129, 0 }; + public static final int vp8CoefBands[] = { 0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, + 6, 6, 6, 6, 7 }; + public static final int vp8defaultZigZag1d[] = { 0, 1, 4, 8, 5, 2, 3, 6, 9, + 12, 13, 10, 7, 11, 14, 15, }; + + public static final int vp8dxBitreaderNorm[] = { 0, 7, 6, 6, 5, 5, 5, 5, 4, + 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0 }; + + public static final int vp8DcQLookup[] = { 4, 5, 6, 7, 8, 9, 10, 10, 11, + 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 21, 22, 22, 23, 23, + 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 91, 93, 95, 96, 98, 100, 101, 102, 104, 106, 108, 110, 112, + 114, 116, 118, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, + 143, 145, 148, 151, 154, 157, }; + + public static final int vp8AcQLookup[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 66, 68, + 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, + 102, 104, 106, 108, 110, 112, 114, 116, 119, 122, 125, 128, 131, + 134, 137, 140, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, + 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, + 225, 229, 234, 239, 245, 249, 254, 259, 264, 269, 274, 279, 284, }; + + public static String toHex(int c) { + String r = new String(); + r = String.format("%1$#x ", c); + return r; + } + + // clamp between 0 and value + public static int clamp(int input, int value) { + int r = input; + if (r > value) + r = value; + if (r < 0) + r = 0; + return r; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/IDCT.java plantuml-8039/src/net/sourceforge/plantuml/webp/IDCT.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/IDCT.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/IDCT.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,172 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . + */ +package net.sourceforge.plantuml.webp; + +public class IDCT { + /* IDCT implementation */ + private static final int cospi8sqrt2minus1 = 20091; + + private static final int sinpi8sqrt2 = 35468; + + public static int[][] idct4x4llm(int input[]) { + + int i; + int a1, b1, c1, d1; + int offset = 0; + + int[] output = new int[16]; + int temp1, temp2; + + for (i = 0; i < 4; i++) { + a1 = input[offset + 0] + input[offset + 8]; + b1 = input[offset + 0] - input[offset + 8]; + + temp1 = (input[offset + 4] * sinpi8sqrt2) >> 16; + temp2 = input[offset + 12] + + ((input[offset + 12] * cospi8sqrt2minus1) >> 16); + + c1 = temp1 - temp2; + + temp1 = input[offset + 4] + + ((input[offset + 4] * cospi8sqrt2minus1) >> 16); + temp2 = (input[offset + 12] * sinpi8sqrt2) >> 16; + d1 = temp1 + temp2; + + output[offset + (0 * 4)] = a1 + d1; + output[offset + (3 * 4)] = a1 - d1; + output[offset + (1 * 4)] = b1 + c1; + output[offset + (2 * 4)] = b1 - c1; + + offset++; + } + + int diffo = 0; + int diff[][] = new int[4][4]; + offset = 0; + for (i = 0; i < 4; i++) { + a1 = output[(offset * 4) + 0] + output[(offset * 4) + 2]; + b1 = output[(offset * 4) + 0] - output[(offset * 4) + 2]; + + temp1 = (output[(offset * 4) + 1] * sinpi8sqrt2) >> 16; + temp2 = output[(offset * 4) + 3] + + ((output[(offset * 4) + 3] * cospi8sqrt2minus1) >> 16); + c1 = temp1 - temp2; + + temp1 = output[(offset * 4) + 1] + + ((output[(offset * 4) + 1] * cospi8sqrt2minus1) >> 16); + temp2 = (output[(offset * 4) + 3] * sinpi8sqrt2) >> 16; + d1 = temp1 + temp2; + + output[(offset * 4) + 0] = (a1 + d1 + 4) >> 3; + output[(offset * 4) + 3] = (a1 - d1 + 4) >> 3; + output[(offset * 4) + 1] = (b1 + c1 + 4) >> 3; + output[(offset * 4) + 2] = (b1 - c1 + 4) >> 3; + + diff[0][diffo] = (a1 + d1 + 4) >> 3; + diff[3][diffo] = (a1 - d1 + 4) >> 3; + diff[1][diffo] = (b1 + c1 + 4) >> 3; + diff[2][diffo] = (b1 - c1 + 4) >> 3; + + offset++; + diffo++; + } + + return diff; + + } + + public static int[][] iwalsh4x4(int input[]) { + int i; + int a1, b1, c1, d1; + int a2, b2, c2, d2; + + int[] output = new int[16]; + int diff[][] = new int[4][4]; + int offset = 0; + for (i = 0; i < 4; i++) { + a1 = input[offset + 0] + input[offset + 12]; + b1 = input[offset + 4] + input[offset + 8]; + c1 = input[offset + 4] - input[offset + 8]; + d1 = input[offset + 0] - input[offset + 12]; + + output[offset + 0] = a1 + b1; + output[offset + 4] = c1 + d1; + output[offset + 8] = a1 - b1; + output[offset + 12] = d1 - c1; + offset++; + } + + offset = 0; + + for (i = 0; i < 4; i++) { + a1 = output[offset + 0] + output[offset + 3]; + b1 = output[offset + 1] + output[offset + 2]; + c1 = output[offset + 1] - output[offset + 2]; + d1 = output[offset + 0] - output[offset + 3]; + + a2 = a1 + b1; + b2 = c1 + d1; + c2 = a1 - b1; + d2 = d1 - c1; + output[offset + 0] = (a2 + 3) >> 3; + output[offset + 1] = (b2 + 3) >> 3; + output[offset + 2] = (c2 + 3) >> 3; + output[offset + 3] = (d2 + 3) >> 3; + diff[0][i] = (a2 + 3) >> 3; + diff[1][i] = (b2 + 3) >> 3; + diff[2][i] = (c2 + 3) >> 3; + diff[3][i] = (d2 + 3) >> 3; + offset += 4; + } + + return diff; + + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/LoopFilter.java plantuml-8039/src/net/sourceforge/plantuml/webp/LoopFilter.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/LoopFilter.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/LoopFilter.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,656 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . + */ +package net.sourceforge.plantuml.webp; + +public class LoopFilter { + private static int abs(int v) { + return v < 0 ? -v : v; + } + + private static int c(int v) { + // return (int) (v < -128 ? -128 : (v > 127 ? v : 127)); + int r = v; + if (v < -128) + r = -128; + if (v > 127) + r = 127; + return r; + } + + private static int common_adjust(boolean use_outer_taps, /* + * filter is 2 or 4 + * taps wide + */ + Segment seg) { + int p1 = u2s(seg.P1); /* retrieve and convert all 4 pixels */ + int p0 = u2s(seg.P0); + int q0 = u2s(seg.Q0); + int q1 = u2s(seg.Q1); + + /* + * Disregarding clamping, when "use_outer_taps" is false, "a" is + * 3*(q0-p0). Since we are about to divide "a" by 8, in this case we end + * up multiplying the edge difference by 5/8. When "use_outer_taps" is + * true (as for the simple filter), "a" is p1 - 3*p0 + 3*q0 - q1, which + * can be thought of as a refinement of 2*(q0 - p0) and the adjustment + * is something like (q0 - p0)/4. + */ + int a = c((use_outer_taps ? c(p1 - q1) : 0) + 3 * (q0 - p0)); + /* + * b is used to balance the rounding of a/8 in the case where the + * "fractional" part "f" of a/8 is exactly 1/2. + */ + int b = (c(a + 3)) >> 3; + /* + * Divide a by 8, rounding up when f >= 1/2. Although not strictly part + * of the "C" language, the right-shift is assumed to propagate the sign + * bit. + */ + a = c(a + 4) >> 3; + /* Subtract "a" from q0, "bringing it closer" to p0. */ + seg.Q0 = s2u(q0 - a); + /* + * Add "a" (with adjustment "b") to p0, "bringing it closer" to q0. The + * clamp of "a+b", while present in the reference decoder, is + * superfluous; we have -16 <= a <= 15 at this point. + */ + seg.P0 = s2u(p0 + b); + + return a; + } + + /* + * All functions take (among other things) a segment (of length at most 4 + + * 4 = 8) symmetrically straddling an edge. The pixel values (or pointers) + * are always given in order, from the "beforemost" to the "aftermost". So, + * for a horizontal edge (written "|"), an 8-pixel segment would be ordered + * p3 p2 p1 p0 | q0 q1 q2 q3. + */ + /* + * Filtering is disabled if the difference between any two adjacent + * "interior" pixels in the 8-pixel segment exceeds the relevant threshold + * (I). A more complex thresholding calculation is done for the group of + * four pixels that straddle the edge, in line with the calculation in + * simple_segment() above. + */ + public static boolean filter_yes(int I, /* limit on interior differences */ + int E, /* limit at the edge */ + int p3, int p2, int p1, int p0, /* pixels before edge */ + int q0, int q1, int q2, int q3 /* pixels after edge */ + ) { + return (abs(p0 - q0) * 2 + abs(p1 - q1) / 2) <= E && abs(p3 - p2) <= I + && abs(p2 - p1) <= I && abs(p1 - p0) <= I && abs(q3 - q2) <= I + && abs(q2 - q1) <= I && abs(q1 - q0) <= I; + } + + private static Segment getSegH(SubBlock rsb, SubBlock lsb, int a) { + Segment seg = new Segment(); + int[][] rdest = rsb.getDest(); + int[][] ldest = lsb.getDest(); + seg.P0 = ldest[3][a]; + seg.P1 = ldest[2][a]; + seg.P2 = ldest[1][a]; + seg.P3 = ldest[0][a]; + seg.Q0 = rdest[0][a]; + seg.Q1 = rdest[1][a]; + seg.Q2 = rdest[2][a]; + seg.Q3 = rdest[3][a]; + return seg; + } + + private static Segment getSegV(SubBlock bsb, SubBlock tsb, int a) { + Segment seg = new Segment(); + int[][] bdest = bsb.getDest(); + int[][] tdest = tsb.getDest(); + + seg.P0 = tdest[a][3]; + seg.P1 = tdest[a][2]; + seg.P2 = tdest[a][1]; + seg.P3 = tdest[a][0]; + seg.Q0 = bdest[a][0]; + seg.Q1 = bdest[a][1]; + seg.Q2 = bdest[a][2]; + seg.Q3 = bdest[a][3]; + return seg; + } + + /* + * Filtering is altered if (at least) one of the differences on either side + * of the edge exceeds a threshold (we have "high edge variance"). + */ + public static boolean hev(int threshold, int p1, int p0, /* + * pixels before + * edge + */ + int q0, int q1 /* pixels after edge */ + ) { + return abs(p1 - p0) > threshold || abs(q1 - q0) > threshold; + } + + public static void loopFilter(VP8Frame frame) { + frame.fireLFProgressUpdate(0); + if (frame.getFilterType() == 2) { + loopFilterUV(frame); + frame.fireLFProgressUpdate(50); + loopFilterY(frame); + } else if (frame.getFilterType() == 1) { + loopFilterSimple(frame); + } + frame.fireLFProgressUpdate(100); + } + + public static void loopFilterSimple(VP8Frame frame) { + for (int y = 0; y < frame.getMacroBlockRows(); y++) { + frame.fireLFProgressUpdate((100.0f * ((float) (y + 1) / (float) (frame + .getMacroBlockRows())))); + for (int x = 0; x < frame.getMacroBlockCols(); x++) { + // System.out.println("x: "+x+" y: "+y); + MacroBlock rmb = frame.getMacroBlock(x, y); + MacroBlock bmb = frame.getMacroBlock(x, y); + + int loop_filter_level = rmb.getFilterLevel(); + if(loop_filter_level!=0) { + int interior_limit = rmb.getFilterLevel(); + + int sharpnessLevel = frame.getSharpnessLevel(); + if (sharpnessLevel > 0) { + interior_limit >>= sharpnessLevel > 4 ? 2 : 1; + if (interior_limit > 9 - sharpnessLevel) + interior_limit = 9 - sharpnessLevel; + } + if (interior_limit == 0) + interior_limit = 1; + + /* Luma and Chroma use the same inter-subblock edge limit */ + int sub_bedge_limit = (loop_filter_level * 2) + interior_limit; + if(sub_bedge_limit < 1) + sub_bedge_limit = 1; + + /* Luma and Chroma use the same inter-macroblock edge limit */ + int mbedge_limit = sub_bedge_limit+4; + + // left + if (x > 0) { + MacroBlock lmb = frame.getMacroBlock(x - 1, y); + for (int b = 0; b < 4; b++) { + SubBlock rsb = rmb.getSubBlock(SubBlock.PLANE.Y1, 0, b); + SubBlock lsb = lmb.getSubBlock(SubBlock.PLANE.Y1, 3, b); + for (int a = 0; a < 4; a++) { + Segment seg = getSegH(rsb, lsb, a); + // MBfilter(hev_threshold, interior_limit, + // mbedge_limit, seg); + // System.out.println(mbedge_limit); + simple_segment(mbedge_limit, seg); + setSegH(rsb, lsb, seg, a); + } + } + } + + // sb left + if (!rmb.isSkip_inner_lf()) { + + for (int a = 1; a < 4; a++) { + for (int b = 0; b < 4; b++) { + SubBlock lsb = rmb.getSubBlock(SubBlock.PLANE.Y1, + a - 1, b); + SubBlock rsb = rmb.getSubBlock(SubBlock.PLANE.Y1, + a, b); + for (int c = 0; c < 4; c++) { + // System.out.println("sbleft a:"+a+" b:"+b+" c:"+c); + Segment seg = getSegH(rsb, lsb, c); + simple_segment(sub_bedge_limit, seg); + // System.out.println(sub_bedge_limit); + // subblock_filter(hev_threshold,interior_limit,sub_bedge_limit, + // seg); + setSegH(rsb, lsb, seg, c); + } + } + } + } + + // top + if (y > 0) { + MacroBlock tmb = frame.getMacroBlock(x, y - 1); + for (int b = 0; b < 4; b++) { + SubBlock tsb = tmb.getSubBlock(SubBlock.PLANE.Y1, b, 3); + SubBlock bsb = bmb.getSubBlock(SubBlock.PLANE.Y1, b, 0); + for (int a = 0; a < 4; a++) { + Segment seg = getSegV(bsb, tsb, a); + simple_segment(mbedge_limit, seg); + // System.out.println(mbedge_limit); + // MBfilter(hev_threshold, interior_limit, + // mbedge_limit, seg); + setSegV(bsb, tsb, seg, a); + } + } + } + + // sb top + if (!rmb.isSkip_inner_lf()) { + for (int a = 1; a < 4; a++) { + for (int b = 0; b < 4; b++) { + SubBlock tsb = bmb.getSubBlock(SubBlock.PLANE.Y1, + b, a - 1); + SubBlock bsb = bmb.getSubBlock(SubBlock.PLANE.Y1, + b, a); + for (int c = 0; c < 4; c++) { + // System.out.println("sbtop"); + Segment seg = getSegV(bsb, tsb, c); + simple_segment(sub_bedge_limit, seg); + // System.out.println(sub_bedge_limit); + // subblock_filter(hev_threshold,interior_limit,sub_bedge_limit, + // seg); + setSegV(bsb, tsb, seg, c); + } + } + } + } + } + } + } + } + + public static void loopFilterUV(VP8Frame frame) { + for (int y = 0; y < frame.getMacroBlockRows(); y++) { + frame.fireLFProgressUpdate((100.0f * ((float) (y + 1) / (float) (frame + .getMacroBlockRows()))) / 2); + for (int x = 0; x < frame.getMacroBlockCols(); x++) { + MacroBlock rmb = frame.getMacroBlock(x, y); + MacroBlock bmb = frame.getMacroBlock(x, y); + int sharpnessLevel = frame.getSharpnessLevel(); + int loop_filter_level = rmb.getFilterLevel(); + if(loop_filter_level!=0) { + int interior_limit = rmb.getFilterLevel(); + if (sharpnessLevel > 0) { + interior_limit >>= sharpnessLevel > 4 ? 2 : 1; + if (interior_limit > 9 - sharpnessLevel) + interior_limit = 9 - sharpnessLevel; + } + if (interior_limit == 0) + interior_limit = 1; + + int hev_threshold = 0; + if (frame.getFrameType() == 0) /* current frame is a key frame */ + { + if (loop_filter_level >= 40) + hev_threshold = 2; + else if (loop_filter_level >= 15) + hev_threshold = 1; + } else /* current frame is an interframe */ + { + if (loop_filter_level >= 40) + hev_threshold = 3; + else if (loop_filter_level >= 20) + hev_threshold = 2; + else if (loop_filter_level >= 15) + hev_threshold = 1; + } + + /* Luma and Chroma use the same inter-macroblock edge limit */ + int mbedge_limit = ((loop_filter_level + 2) * 2) + + interior_limit; + /* Luma and Chroma use the same inter-subblock edge limit */ + int sub_bedge_limit = (loop_filter_level * 2) + interior_limit; + + if (x > 0) { + MacroBlock lmb = frame.getMacroBlock(x - 1, y); + for (int b = 0; b < 2; b++) { + SubBlock rsbU = rmb.getSubBlock(SubBlock.PLANE.U, 0, b); + SubBlock lsbU = lmb.getSubBlock(SubBlock.PLANE.U, 1, b); + SubBlock rsbV = rmb.getSubBlock(SubBlock.PLANE.V, 0, b); + SubBlock lsbV = lmb.getSubBlock(SubBlock.PLANE.V, 1, b); + for (int a = 0; a < 4; a++) { + Segment seg = getSegH(rsbU, lsbU, a); + MBfilter(hev_threshold, interior_limit, + mbedge_limit, seg); + setSegH(rsbU, lsbU, seg, a); + seg = getSegH(rsbV, lsbV, a); + MBfilter(hev_threshold, interior_limit, + mbedge_limit, seg); + setSegH(rsbV, lsbV, seg, a); + + } + } + } + // sb left + + if (!rmb.isSkip_inner_lf()) { + for (int a = 1; a < 2; a++) { + for (int b = 0; b < 2; b++) { + SubBlock lsbU = rmb.getSubBlock(SubBlock.PLANE.U, + a - 1, b); + SubBlock rsbU = rmb.getSubBlock(SubBlock.PLANE.U, + a, b); + SubBlock lsbV = rmb.getSubBlock(SubBlock.PLANE.V, + a - 1, b); + SubBlock rsbV = rmb.getSubBlock(SubBlock.PLANE.V, + a, b); + for (int c = 0; c < 4; c++) { + Segment seg = getSegH(rsbU, lsbU, c); + subblock_filter(hev_threshold, interior_limit, + sub_bedge_limit, seg); + setSegH(rsbU, lsbU, seg, c); + seg = getSegH(rsbV, lsbV, c); + subblock_filter(hev_threshold, interior_limit, + sub_bedge_limit, seg); + setSegH(rsbV, lsbV, seg, c); + } + } + } + } + // top + if (y > 0) { + MacroBlock tmb = frame.getMacroBlock(x, y - 1); + for (int b = 0; b < 2; b++) { + SubBlock tsbU = tmb.getSubBlock(SubBlock.PLANE.U, b, 1); + SubBlock bsbU = bmb.getSubBlock(SubBlock.PLANE.U, b, 0); + SubBlock tsbV = tmb.getSubBlock(SubBlock.PLANE.V, b, 1); + SubBlock bsbV = bmb.getSubBlock(SubBlock.PLANE.V, b, 0); + for (int a = 0; a < 4; a++) { + // System.out.println("l"); + Segment seg = getSegV(bsbU, tsbU, a); + MBfilter(hev_threshold, interior_limit, + mbedge_limit, seg); + setSegV(bsbU, tsbU, seg, a); + seg = getSegV(bsbV, tsbV, a); + MBfilter(hev_threshold, interior_limit, + mbedge_limit, seg); + setSegV(bsbV, tsbV, seg, a); + } + } + } + // sb top + + if (!rmb.isSkip_inner_lf()) { + for (int a = 1; a < 2; a++) { + for (int b = 0; b < 2; b++) { + SubBlock tsbU = bmb.getSubBlock(SubBlock.PLANE.U, + b, a - 1); + SubBlock bsbU = bmb.getSubBlock(SubBlock.PLANE.U, + b, a); + SubBlock tsbV = bmb.getSubBlock(SubBlock.PLANE.V, + b, a - 1); + SubBlock bsbV = bmb.getSubBlock(SubBlock.PLANE.V, + b, a); + for (int c = 0; c < 4; c++) { + Segment seg = getSegV(bsbU, tsbU, c); + subblock_filter(hev_threshold, interior_limit, + sub_bedge_limit, seg); + setSegV(bsbU, tsbU, seg, c); + seg = getSegV(bsbV, tsbV, c); + subblock_filter(hev_threshold, interior_limit, + sub_bedge_limit, seg); + setSegV(bsbV, tsbV, seg, c); + } + } + } + } + } + } + } + } + + public static void loopFilterY(VP8Frame frame) { + for (int y = 0; y < frame.getMacroBlockRows(); y++) { + frame.fireLFProgressUpdate(50 + (100.0f * ((float) (y + 1) / (float) (frame + .getMacroBlockRows()))) / 2); + for (int x = 0; x < frame.getMacroBlockCols(); x++) { + MacroBlock rmb = frame.getMacroBlock(x, y); + MacroBlock bmb = frame.getMacroBlock(x, y); + int sharpnessLevel = frame.getSharpnessLevel(); + int loop_filter_level = rmb.getFilterLevel(); + + if(loop_filter_level!=0) { + int interior_limit = rmb.getFilterLevel(); + + if (sharpnessLevel > 0) { + interior_limit >>= sharpnessLevel > 4 ? 2 : 1; + if (interior_limit > 9 - sharpnessLevel) + interior_limit = 9 - sharpnessLevel; + } + if (interior_limit == 0) + interior_limit = 1; + + int hev_threshold = 0; + if (frame.getFrameType() == 0) /* current frame is a key frame */ + { + if (loop_filter_level >= 40) + hev_threshold = 2; + else if (loop_filter_level >= 15) + hev_threshold = 1; + } else /* current frame is an interframe */ + { + if (loop_filter_level >= 40) + hev_threshold = 3; + else if (loop_filter_level >= 20) + hev_threshold = 2; + else if (loop_filter_level >= 15) + hev_threshold = 1; + } + + /* Luma and Chroma use the same inter-macroblock edge limit */ + int mbedge_limit = ((loop_filter_level + 2) * 2) + + interior_limit; + /* Luma and Chroma use the same inter-subblock edge limit */ + int sub_bedge_limit = (loop_filter_level * 2) + interior_limit; + + // left + if (x > 0) { + MacroBlock lmb = frame.getMacroBlock(x - 1, y); + for (int b = 0; b < 4; b++) { + SubBlock rsb = rmb.getSubBlock(SubBlock.PLANE.Y1, 0, b); + SubBlock lsb = lmb.getSubBlock(SubBlock.PLANE.Y1, 3, b); + for (int a = 0; a < 4; a++) { + Segment seg = getSegH(rsb, lsb, a); + MBfilter(hev_threshold, interior_limit, + mbedge_limit, seg); + setSegH(rsb, lsb, seg, a); + } + } + } + // sb left + if (!rmb.isSkip_inner_lf()) { + for (int a = 1; a < 4; a++) { + for (int b = 0; b < 4; b++) { + SubBlock lsb = rmb.getSubBlock(SubBlock.PLANE.Y1, + a - 1, b); + SubBlock rsb = rmb.getSubBlock(SubBlock.PLANE.Y1, + a, b); + for (int c = 0; c < 4; c++) { + // System.out.println("sbleft a:"+a+" b:"+b+" c:"+c); + Segment seg = getSegH(rsb, lsb, c); + subblock_filter(hev_threshold, interior_limit, + sub_bedge_limit, seg); + setSegH(rsb, lsb, seg, c); + } + } + } + } + // top + if (y > 0) { + MacroBlock tmb = frame.getMacroBlock(x, y - 1); + for (int b = 0; b < 4; b++) { + SubBlock tsb = tmb.getSubBlock(SubBlock.PLANE.Y1, b, 3); + SubBlock bsb = bmb.getSubBlock(SubBlock.PLANE.Y1, b, 0); + for (int a = 0; a < 4; a++) { + Segment seg = getSegV(bsb, tsb, a); + MBfilter(hev_threshold, interior_limit, + mbedge_limit, seg); + setSegV(bsb, tsb, seg, a); + } + } + } + // sb top + if (!rmb.isSkip_inner_lf()) { + for (int a = 1; a < 4; a++) { + for (int b = 0; b < 4; b++) { + SubBlock tsb = bmb.getSubBlock(SubBlock.PLANE.Y1, + b, a - 1); + SubBlock bsb = bmb.getSubBlock(SubBlock.PLANE.Y1, + b, a); + for (int c = 0; c < 4; c++) { + Segment seg = getSegV(bsb, tsb, c); + subblock_filter(hev_threshold, interior_limit, + sub_bedge_limit, seg); + setSegV(bsb, tsb, seg, c); + } + } + } + } + } + } + } + } + + static void MBfilter(int hev_threshold, /* detect high edge variance */ + int interior_limit, /* possibly disable filter */ + int edge_limit, Segment seg) { + int p3 = u2s(seg.P3), p2 = u2s(seg.P2), p1 = u2s(seg.P1), p0 = u2s(seg.P0); + int q0 = u2s(seg.Q0), q1 = u2s(seg.Q1), q2 = u2s(seg.Q2), q3 = u2s(seg.Q3); + if (filter_yes(interior_limit, edge_limit, q3, q2, q1, q0, p0, p1, p2, + p3)) { + if (!hev(hev_threshold, p1, p0, q0, q1)) { + // Same as the initial calculation in "common_adjust", + // w is something like twice the edge difference + int w = c(c(p1 - q1) + 3 * (q0 - p0)); + + // 9/64 is approximately 9/63 = 1/7 and 1<<7 = 128 = 2*64. + // So this a, used to adjust the pixels adjacent to the edge, + // is something like 3/7 the edge difference. + int a = (27 * w + 63) >> 7; + + seg.Q0 = s2u(q0 - a); + seg.P0 = s2u(p0 + a); + // Next two are adjusted by 2/7 the edge difference + a = (18 * w + 63) >> 7; + // System.out.println("a: "+a); + seg.Q1 = s2u(q1 - a); + seg.P1 = s2u(p1 + a); + // Last two are adjusted by 1/7 the edge difference + a = (9 * w + 63) >> 7; + seg.Q2 = s2u(q2 - a); + seg.P2 = s2u(p2 + a); + } else + // if hev, do simple filter + common_adjust(true, seg); // using outer taps + } + } + + /* Clamp, then convert signed number back to pixel value. */ + private static int s2u(int v) { + return (int) (c(v) + 128); + } + + private static void setSegH(SubBlock rsb, SubBlock lsb, Segment seg, int a) { + int[][] rdest = rsb.getDest(); + int[][] ldest = lsb.getDest(); + ldest[3][a] = seg.P0; + ldest[2][a] = seg.P1; + ldest[1][a] = seg.P2; + ldest[0][a] = seg.P3; + rdest[0][a] = seg.Q0; + rdest[1][a] = seg.Q1; + rdest[2][a] = seg.Q2; + rdest[3][a] = seg.Q3; + + } + + private static void setSegV(SubBlock bsb, SubBlock tsb, Segment seg, int a) { + int[][] bdest = bsb.getDest(); + int[][] tdest = tsb.getDest(); + tdest[a][3] = seg.P0; + tdest[a][2] = seg.P1; + tdest[a][1] = seg.P2; + tdest[a][0] = seg.P3; + bdest[a][0] = seg.Q0; + bdest[a][1] = seg.Q1; + bdest[a][2] = seg.Q2; + bdest[a][3] = seg.Q3; + + } + + private static void simple_segment(int edge_limit, /* + * do nothing if edge + * difference exceeds + * limit + */ + Segment seg) { + if ((abs(seg.P0 - seg.Q0) * 2 + abs(seg.P1 - seg.Q1) / 2) <= edge_limit) { + common_adjust(true, seg); /* use outer taps */ + } else { + } + } + + public static void subblock_filter(int hev_threshold, /* + * detect high edge + * variance + */ + int interior_limit, /* possibly disable filter */ + int edge_limit, Segment seg) { + int p3 = u2s(seg.P3), p2 = u2s(seg.P2), p1 = u2s(seg.P1), p0 = u2s(seg.P0); + int q0 = u2s(seg.Q0), q1 = u2s(seg.Q1), q2 = u2s(seg.Q2), q3 = u2s(seg.Q3); + if (filter_yes(interior_limit, edge_limit, q3, q2, q1, q0, p0, p1, p2, + p3)) { + boolean hv = hev(hev_threshold, p1, p0, q0, q1); + int a = (common_adjust(hv, seg) + 1) >> 1; + if (!hv) { + seg.Q1 = s2u(q1 - a); + seg.P1 = s2u(p1 + a); + } + } else { + } + + } + + /* Convert pixel value (0 <= v <= 255) to an 8-bit signed number. */ + private static int u2s(int v) { + return (int) (v - 128); + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/MacroBlock.java plantuml-8039/src/net/sourceforge/plantuml/webp/MacroBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/MacroBlock.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/MacroBlock.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,798 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . + */ +package net.sourceforge.plantuml.webp; + +import java.io.IOException; + +public class MacroBlock { + + private int filterLevel; + private boolean keepDebugInfo = false; + private int segmentId; + private int skipCoeff; + private boolean skipInnerLoopFilter; + SubBlock[][] uSubBlocks; + private int uVFilterLevel; + + private int uvMode; + SubBlock[][] vSubBlocks; + private int x, y; + SubBlock y2SubBlock; + private int yMode; + SubBlock[][] ySubBlocks; + + MacroBlock(int x, int y, boolean keepDebugInfo) { + this.x = x - 1; + this.y = y - 1; + this.keepDebugInfo = keepDebugInfo; + + ySubBlocks = new SubBlock[4][4]; + uSubBlocks = new SubBlock[2][2]; + vSubBlocks = new SubBlock[2][2]; + SubBlock above = null; + SubBlock left = null; + + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + left = null; + above = null; + if (j > 0) + left = ySubBlocks[j - 1][i]; + if (i > 0) + above = ySubBlocks[j][i - 1]; + ySubBlocks[j][i] = new SubBlock(this, above, left, + SubBlock.PLANE.Y1); + } + } + + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + left = null; + above = null; + if (j > 0) + left = uSubBlocks[j - 1][i]; + if (i > 0) + above = uSubBlocks[j][i - 1]; + uSubBlocks[j][i] = new SubBlock(this, above, left, + SubBlock.PLANE.U); + } + } + + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + left = null; + above = null; + if (j > 0) + left = vSubBlocks[j - 1][i]; + if (i > 0) + above = vSubBlocks[j][i - 1]; + vSubBlocks[j][i] = new SubBlock(this, above, left, + SubBlock.PLANE.V); + } + } + y2SubBlock = new SubBlock(this, null, null, SubBlock.PLANE.Y2); + + } + + public void decodeMacroBlock(VP8Frame frame) throws IOException { + MacroBlock mb = this; + if (mb.getSkipCoeff() > 0) { + if (mb.getYMode() != Globals.B_PRED) + mb.skipInnerLoopFilter = true; + } else if (mb.getYMode() != Globals.B_PRED) { + decodeMacroBlockTokens(frame, true); + } else { + decodeMacroBlockTokens(frame, false); + } + } + + private void decodeMacroBlockTokens(VP8Frame frame, boolean withY2) + throws IOException { + skipInnerLoopFilter = false; + if (withY2) { + skipInnerLoopFilter = skipInnerLoopFilter + | decodePlaneTokens(frame, 1, SubBlock.PLANE.Y2, false); + } + skipInnerLoopFilter = skipInnerLoopFilter + | decodePlaneTokens(frame, 4, SubBlock.PLANE.Y1, withY2); + skipInnerLoopFilter = skipInnerLoopFilter + | decodePlaneTokens(frame, 2, SubBlock.PLANE.U, false); + skipInnerLoopFilter = skipInnerLoopFilter + | decodePlaneTokens(frame, 2, SubBlock.PLANE.V, false); + skipInnerLoopFilter = !skipInnerLoopFilter; + } + + private boolean decodePlaneTokens(VP8Frame frame, int dimentions, + SubBlock.PLANE plane, boolean withY2) throws IOException { + MacroBlock mb = this; + boolean r = false; + for (int y = 0; y < dimentions; y++) { + for (int x = 0; x < dimentions; x++) { + int L = 0; + int A = 0; + int lc = 0; + SubBlock sb = mb.getSubBlock(plane, x, y); + SubBlock left = frame.getLeftSubBlock(sb, plane); + SubBlock above = frame.getAboveSubBlock(sb, plane); + if (left.hasNoZeroToken()) { + + L = 1; + } + + lc += L; + + if (above.hasNoZeroToken()) { + + A = 1; + } + + lc += A; + sb.decodeSubBlock(frame.getTokenBoolDecoder(), + frame.getCoefProbs(), lc, + SubBlock.planeToType(plane, withY2), withY2); + r = r | sb.hasNoZeroToken(); + } + } + return r; + } + + public void dequantMacroBlock(VP8Frame frame) { + MacroBlock mb = this; + if (mb.getYMode() != Globals.B_PRED) { + SubBlock sb = mb.getY2SubBlock(); + int acQValue = frame.getSegmentQuants().getSegQuants()[this.getSegmentId()] + .getY2ac_delta_q(); + int dcQValue = frame.getSegmentQuants().getSegQuants()[this.getSegmentId()].getY2dc(); + + int input[] = new int[16]; + input[0] = sb.getTokens()[0] * dcQValue; + + for (int x = 1; x < 16; x++) + input[x] = sb.getTokens()[x] * acQValue; + + sb.setDiff(IDCT.iwalsh4x4(input)); + for (int j = 0; j < 4; j++) { + for (int i = 0; i < 4; i++) { + SubBlock ysb = mb.getYSubBlock(i, j); + ysb.dequantSubBlock(frame, sb.getDiff()[i][j]); + } + } + + mb.predictY(frame); + mb.predictUV(frame); + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + SubBlock uvsb = mb.getUSubBlock(j, i); + uvsb.dequantSubBlock(frame, null); + uvsb = mb.getVSubBlock(i, j); + uvsb.dequantSubBlock(frame, null); + } + } + mb.recon_mb(); + + } else { + for (int j = 0; j < 4; j++) { + for (int i = 0; i < 4; i++) { + SubBlock sb = mb.getYSubBlock(i, j); + sb.dequantSubBlock(frame, null); + sb.predict(frame); + sb.reconstruct(); + } + } + mb.predictUV(frame); + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + SubBlock sb = mb.getUSubBlock(j, i); + sb.dequantSubBlock(frame, null); + sb.reconstruct(); + } + } + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + SubBlock sb = mb.getVSubBlock(j, i); + sb.dequantSubBlock(frame, null); + sb.reconstruct(); + } + } + } + } + + public void drawDebug() { + for (int j = 0; j < 4; j++) + for (int i = 0; i < 4; i++) { + SubBlock sb = ySubBlocks[i][0]; + sb.drawDebugH(); + sb = ySubBlocks[0][j]; + sb.drawDebugV(); + } + } + + public SubBlock getBottomSubBlock(int x, SubBlock.PLANE plane) { + if (plane == SubBlock.PLANE.Y1) { + return ySubBlocks[x][3]; + } else if (plane == SubBlock.PLANE.U) { + return uSubBlocks[x][1]; + } else if (plane == SubBlock.PLANE.V) { + return vSubBlocks[x][1]; + } else if (plane == SubBlock.PLANE.Y2) { + return y2SubBlock; + } + return null; + } + + public String getDebugString() { + String r = new String(); + r = r + " YMode: " + Globals.getModeAsString(yMode); + r = r + "\n UVMode: " + Globals.getModeAsString(uvMode); + r = r + "\n SegmentID: " + segmentId; + r = r + "\n Filter Level: " + filterLevel; + r = r + "\n UV Filter Level: " + uVFilterLevel; + r = r + "\n Skip Coeff: " + skipCoeff; + + return r; + } + + public int getFilterLevel() { + return this.filterLevel; + } + + public SubBlock getLeftSubBlock(int y, SubBlock.PLANE plane) { + if (plane == SubBlock.PLANE.Y1) { + return ySubBlocks[0][y]; + } + + else if (plane == SubBlock.PLANE.V) { + return vSubBlocks[0][y]; + } + if (plane == SubBlock.PLANE.Y2) { + return y2SubBlock; + } else if (plane == SubBlock.PLANE.U) { + return uSubBlocks[0][y]; + } + return null; + } + + public SubBlock getRightSubBlock(int y, SubBlock.PLANE plane) { + if (plane == SubBlock.PLANE.Y1) { + return ySubBlocks[3][y]; + } else if (plane == SubBlock.PLANE.U) { + return uSubBlocks[1][y]; + } else if (plane == SubBlock.PLANE.V) { + return vSubBlocks[1][y]; + } else if (plane == SubBlock.PLANE.Y2) { + return y2SubBlock; + } + return null; + } + + public int getSkipCoeff() { + return skipCoeff; + } + + public SubBlock getSubBlock(SubBlock.PLANE plane, int i, int j) { + switch (plane) { + case Y1: + return getYSubBlock(i, j); + case U: + return getUSubBlock(i, j); + + case V: + return getVSubBlock(i, j); + case Y2: + return getY2SubBlock(); + } + return null; + } + + public int getSubblockX(SubBlock sb) { + if (sb.getPlane() == SubBlock.PLANE.Y1) { + for (int y = 0; y < 4; y++) + for (int x = 0; x < 4; x++) + if (ySubBlocks[x][y] == sb) + return x; + } else if (sb.getPlane() == SubBlock.PLANE.U) { + for (int y = 0; y < 2; y++) + for (int x = 0; x < 2; x++) + if (uSubBlocks[x][y] == sb) + return x; + } else if (sb.getPlane() == SubBlock.PLANE.V) { + for (int y = 0; y < 2; y++) + for (int x = 0; x < 2; x++) + if (vSubBlocks[x][y] == sb) + return x; + } else if (sb.getPlane() == SubBlock.PLANE.Y2) { + return 0; + } + + return -100; + + } + + public int getSubblockY(SubBlock sb) { + if (sb.getPlane() == SubBlock.PLANE.Y1) { + for (int y = 0; y < 4; y++) + for (int x = 0; x < 4; x++) + if (ySubBlocks[x][y] == sb) + return y; + } else if (sb.getPlane() == SubBlock.PLANE.U) { + for (int y = 0; y < 2; y++) + for (int x = 0; x < 2; x++) + if (uSubBlocks[x][y] == sb) + return y; + } else if (sb.getPlane() == SubBlock.PLANE.V) { + for (int y = 0; y < 2; y++) + for (int x = 0; x < 2; x++) + if (vSubBlocks[x][y] == sb) + return y; + } else if (sb.getPlane() == SubBlock.PLANE.Y2) { + return 0; + } + + return -100; + } + + public SubBlock getUSubBlock(int i, int j) { + return uSubBlocks[i][j]; + } + + public int getUVFilterLevel() { + return this.uVFilterLevel; + } + + public int getUvMode() { + return uvMode; + } + + public SubBlock getVSubBlock(int i, int j) { + return vSubBlocks[i][j]; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public SubBlock getY2SubBlock() { + return y2SubBlock; + } + + public int getYMode() { + return yMode; + } + + public SubBlock getYSubBlock(int i, int j) { + return ySubBlocks[i][j]; + } + + public boolean isKeepDebugInfo() { + return keepDebugInfo; + } + + public boolean isSkip_inner_lf() { + return skipInnerLoopFilter; + } + + public void predictUV(VP8Frame frame) { + MacroBlock aboveMb = frame.getMacroBlock(x, y - 1); + MacroBlock leftMb = frame.getMacroBlock(x - 1, y); + + switch (this.uvMode) { + case Globals.DC_PRED: + // System.out.println("UV DC_PRED"); + + boolean up_available = false; + boolean left_available = false; + int Uaverage = 0; + int Vaverage = 0; + int expected_udc = 0; + int expected_vdc = 0; + if (x > 0) + left_available = true; + if (y > 0) + up_available = true; + if (up_available || left_available) { + if (up_available) { + for (int j = 0; j < 2; j++) { + SubBlock usb = aboveMb.getUSubBlock(j, 1); + SubBlock vsb = aboveMb.getVSubBlock(j, 1); + for (int i = 0; i < 4; i++) { + Uaverage += usb.getDest()[i][3]; + Vaverage += vsb.getDest()[i][3]; + } + } + } + + if (left_available) { + for (int j = 0; j < 2; j++) { + SubBlock usb = leftMb.getUSubBlock(1, j); + SubBlock vsb = leftMb.getVSubBlock(1, j); + for (int i = 0; i < 4; i++) { + Uaverage += usb.getDest()[3][i]; + Vaverage += vsb.getDest()[3][i]; + } + } + } + + int shift = 2; + if (up_available) + shift++; + if (left_available) + shift++; + + expected_udc = (Uaverage + (1 << (shift - 1))) >> shift; + expected_vdc = (Vaverage + (1 << (shift - 1))) >> shift; + } else { + expected_udc = 128; + expected_vdc = 128; + } + + int ufill[][] = new int[4][4]; + for (int y = 0; y < 4; y++) + for (int x = 0; x < 4; x++) + ufill[x][y] = expected_udc; + + int vfill[][] = new int[4][4]; + for (int y = 0; y < 4; y++) + for (int x = 0; x < 4; x++) + vfill[x][y] = expected_vdc; + + for (int y = 0; y < 2; y++) + for (int x = 0; x < 2; x++) { + SubBlock usb = uSubBlocks[x][y]; + SubBlock vsb = vSubBlocks[x][y]; + usb.setPredict(ufill); + vsb.setPredict(vfill); + } + + break; + case Globals.V_PRED: + // System.out.println("UV V_PRED"); + + SubBlock[] aboveUSb = new SubBlock[2]; + SubBlock[] aboveVSb = new SubBlock[2]; + for (int x = 0; x < 2; x++) { + aboveUSb[x] = aboveMb.getUSubBlock(x, 1); + aboveVSb[x] = aboveMb.getVSubBlock(x, 1); + } + + for (int y = 0; y < 2; y++) + for (int x = 0; x < 2; x++) { + SubBlock usb = uSubBlocks[y][x]; + SubBlock vsb = vSubBlocks[y][x]; + int ublock[][] = new int[4][4]; + int vblock[][] = new int[4][4]; + for (int j = 0; j < 4; j++) + for (int i = 0; i < 4; i++) { + ublock[j][i] = aboveUSb[y] + .getMacroBlockPredict(Globals.V_PRED)[j][3]; + vblock[j][i] = aboveVSb[y] + .getMacroBlockPredict(Globals.V_PRED)[j][3]; + } + usb.setPredict(ublock); + vsb.setPredict(vblock); + } + + break; + + case Globals.H_PRED: + // System.out.println("UV H_PRED"); + + SubBlock[] leftUSb = new SubBlock[2]; + SubBlock[] leftVSb = new SubBlock[2]; + for (int x = 0; x < 2; x++) { + leftUSb[x] = leftMb.getUSubBlock(1, x); + leftVSb[x] = leftMb.getVSubBlock(1, x); + } + + for (int y = 0; y < 2; y++) + for (int x = 0; x < 2; x++) { + SubBlock usb = uSubBlocks[x][y]; + SubBlock vsb = vSubBlocks[x][y]; + int ublock[][] = new int[4][4]; + int vblock[][] = new int[4][4]; + for (int j = 0; j < 4; j++) + for (int i = 0; i < 4; i++) { + ublock[i][j] = leftUSb[y] + .getMacroBlockPredict(Globals.H_PRED)[3][j]; + vblock[i][j] = leftVSb[y] + .getMacroBlockPredict(Globals.H_PRED)[3][j]; + } + usb.setPredict(ublock); + vsb.setPredict(vblock); + } + + break; + case Globals.TM_PRED: + // TODO: + // System.out.println("UV TM_PRED MB"); + MacroBlock ALMb = frame.getMacroBlock(x - 1, y - 1); + SubBlock ALUSb = ALMb.getUSubBlock(1, 1); + int alu = ALUSb.getDest()[3][3]; + SubBlock ALVSb = ALMb.getVSubBlock(1, 1); + int alv = ALVSb.getDest()[3][3]; + + aboveUSb = new SubBlock[2]; + leftUSb = new SubBlock[2]; + aboveVSb = new SubBlock[2]; + leftVSb = new SubBlock[2]; + for (int x = 0; x < 2; x++) { + aboveUSb[x] = aboveMb.getUSubBlock(x, 1); + leftUSb[x] = leftMb.getUSubBlock(1, x); + aboveVSb[x] = aboveMb.getVSubBlock(x, 1); + leftVSb[x] = leftMb.getVSubBlock(1, x); + } + + for (int b = 0; b < 2; b++) { + for (int a = 0; a < 4; a++) { + for (int d = 0; d < 2; d++) { + for (int c = 0; c < 4; c++) { + + int upred = leftUSb[b].getDest()[3][a] + + aboveUSb[d].getDest()[c][3] - alu; + upred = Globals.clamp(upred, 255); + uSubBlocks[d][b].setPixel(c, a, upred); + + int vpred = leftVSb[b].getDest()[3][a] + + aboveVSb[d].getDest()[c][3] - alv; + vpred = Globals.clamp(vpred, 255); + vSubBlocks[d][b].setPixel(c, a, vpred); + + } + } + + } + } + + break; + default: + System.out.println("TODO predict_mb_uv: " + this.yMode); + System.exit(0); + } + } + + public void predictY(VP8Frame frame) { + MacroBlock aboveMb = frame.getMacroBlock(x, y - 1); + MacroBlock leftMb = frame.getMacroBlock(x - 1, y); + + switch (this.yMode) { + case Globals.DC_PRED: + // System.out.println("DC_PRED"); + boolean up_available = false; + boolean left_available = false; + + int average = 0; + int expected_dc = 0; + if (x > 0) + left_available = true; + if (y > 0) + up_available = true; + + if (up_available || left_available) { + if (up_available) { + for (int j = 0; j < 4; j++) { + SubBlock sb = aboveMb.getYSubBlock(j, 3); + for (int i = 0; i < 4; i++) { + average += sb.getDest()[i][3]; + } + } + } + + if (left_available) { + for (int j = 0; j < 4; j++) { + SubBlock sb = leftMb.getYSubBlock(3, j); + for (int i = 0; i < 4; i++) { + average += sb.getDest()[3][i]; + } + } + } + + int shift = 3; + if (up_available) + shift++; + if (left_available) + shift++; + + expected_dc = (average + (1 << (shift - 1))) >> shift; + } else { + expected_dc = 128; + } + + int fill[][] = new int[4][4]; + for (int y = 0; y < 4; y++) + for (int x = 0; x < 4; x++) + fill[x][y] = expected_dc; + for (int y = 0; y < 4; y++) + for (int x = 0; x < 4; x++) { + SubBlock sb = ySubBlocks[x][y]; + sb.setPredict(fill); + } + + break; + case Globals.V_PRED: + // System.out.println("V_PRED"); + + SubBlock[] aboveYSb = new SubBlock[4]; + for (int x = 0; x < 4; x++) + aboveYSb[x] = aboveMb.getYSubBlock(x, 3); + + for (int y = 0; y < 4; y++) { + for (int x = 0; x < 4; x++) { + SubBlock sb = ySubBlocks[x][y]; + int block[][] = new int[4][4]; + for (int j = 0; j < 4; j++) + for (int i = 0; i < 4; i++) { + block[i][j] = aboveYSb[x].getPredict( + Globals.B_VE_PRED, false)[i][3]; + } + sb.setPredict(block); + + } + } + + break; + + case Globals.H_PRED: + // System.out.println("H_PRED"); + + SubBlock[] leftYSb = new SubBlock[4]; + for (int x = 0; x < 4; x++) + leftYSb[x] = leftMb.getYSubBlock(3, x); + + for (int y = 0; y < 4; y++) + for (int x = 0; x < 4; x++) { + SubBlock sb = ySubBlocks[x][y]; + int block[][] = new int[4][4]; + for (int j = 0; j < 4; j++) + for (int i = 0; i < 4; i++) { + block[i][j] = leftYSb[y].getPredict( + Globals.B_DC_PRED, true)[3][j]; + } + sb.setPredict(block); + } + + SubBlock[] leftUSb = new SubBlock[2]; + for (int x = 0; x < 2; x++) + leftUSb[x] = leftMb.getYSubBlock(1, x); + + break; + case Globals.TM_PRED: + // System.out.println("TM_PRED MB"); + MacroBlock ALMb = frame.getMacroBlock(x - 1, y - 1); + SubBlock ALSb = ALMb.getYSubBlock(3, 3); + int al = ALSb.getDest()[3][3]; + + aboveYSb = new SubBlock[4]; + leftYSb = new SubBlock[4]; + for (int x = 0; x < 4; x++) + aboveYSb[x] = aboveMb.getYSubBlock(x, 3); + for (int x = 0; x < 4; x++) + leftYSb[x] = leftMb.getYSubBlock(3, x); + fill = new int[4][4]; + + for (int b = 0; b < 4; b++) { + for (int a = 0; a < 4; a++) { + + for (int d = 0; d < 4; d++) { + for (int c = 0; c < 4; c++) { + + int pred = leftYSb[b].getDest()[3][a] + + aboveYSb[d].getDest()[c][3] - al; + + ySubBlocks[d][b].setPixel(c, a, + Globals.clamp(pred, 255)); + + } + } + + } + } + + break; + default: + System.out.println("TODO predict_mb_y: " + this.yMode); + System.exit(0); + } + } + + public void recon_mb() { + for (int j = 0; j < 4; j++) + for (int i = 0; i < 4; i++) { + SubBlock sb = ySubBlocks[i][j]; + sb.reconstruct(); + } + + for (int j = 0; j < 2; j++) + for (int i = 0; i < 2; i++) { + SubBlock sb = uSubBlocks[i][j]; + sb.reconstruct(); + } + for (int j = 0; j < 2; j++) + for (int i = 0; i < 2; i++) { + SubBlock sb = vSubBlocks[i][j]; + sb.reconstruct(); + } + + } + + public void setFilterLevel(int value) { + this.filterLevel = value; + } + + public void setSegmentId(int value) { + this.segmentId = value; + } + + public void setSkipCoeff(int mbSkipCoeff) { + skipCoeff = mbSkipCoeff; + } + + public void setUVFilterLevel(int value) { + this.uVFilterLevel = value; + } + + public void setUvMode(int mode) { + this.uvMode = mode; + } + + public void setYMode(int yMode) { + this.yMode = yMode; + } + + public String toString() { + return "x: " + x + "y: " + y; + } + + public int getSegmentId() { + return segmentId; + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/Portrait.java plantuml-8039/src/net/sourceforge/plantuml/webp/Portrait.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/Portrait.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/Portrait.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,85 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.webp; + +import java.awt.image.BufferedImage; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; + +import javax.imageio.ImageIO; +import javax.imageio.stream.ImageInputStream; + +public class Portrait { + + private final String name; + private final int age; + private final String quote; + private final byte webp[]; + + public Portrait(String name, int age, String quote, byte webp[]) throws IOException { + this.name = name; + this.quote = quote; + this.age = age; + this.webp = webp; + } + + public BufferedImage getBufferedImage() { + try { + final InputStream is = new ByteArrayInputStream(webp); + final ImageInputStream iis = ImageIO.createImageInputStream(is); + final VP8Decoder vp8Decoder = new VP8Decoder(); + vp8Decoder.decodeFrame(iis, false); + iis.close(); + return vp8Decoder.getFrame().getBufferedImage(); + } catch (IOException e) { + return null; + } + + } + + public String getName() { + return name; + } + + public int getAge() { + return age; + } + + public String getQuote() { + return quote; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/Portraits.java plantuml-8039/src/net/sourceforge/plantuml/webp/Portraits.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/Portraits.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/Portraits.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,154 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.webp; + +import java.io.DataInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.text.Normalizer; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.regex.Pattern; + +import net.sourceforge.plantuml.version.PSystemVersion; + +public class Portraits { + + private final static List all = new ArrayList(); + private final static AtomicInteger current = new AtomicInteger(); + + private static InputStream getInputStream() { + return PSystemVersion.class.getResourceAsStream("out.png"); + } + + static { + final InputStream is = getInputStream(); + if (is != null) { + try { + read(is); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + is.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + } + + private static void read(InputStream is) throws IOException { + final DataInputStream dis = new DataInputStream(is); + final int nb = dis.readShort(); + final List names = new ArrayList(); + final List ages = new ArrayList(); + final List quotes = new ArrayList(); + for (int i = 0; i < nb; i++) { + names.add(dis.readUTF()); + ages.add((int) dis.readByte()); + quotes.add(dis.readUTF()); + } + for (int i = 0; i < nb; i++) { + final int len = dis.readShort(); + final byte data[] = new byte[len]; + dis.readFully(data); + all.add(new Portrait(names.get(i), ages.get(i), quotes.get(i), data)); + } + Collections.shuffle(all); + } + + public static Portrait getOne() { + if (all.size() == 0) { + return null; + } + final int nb = current.get() % all.size(); + return all.get(nb); + } + + public static void nextOne() { + current.getAndIncrement(); + } + + public static Portrait getOne(String line) { + Portrait candidat = null; + for (Portrait p : all) { + final int dist = similar(p.getName(), line); + if (dist <= 3) { + if (candidat != null && dist < similar(candidat.getName(), line)) { + continue; + } + candidat = p; + } + } + return candidat; + } + + public static int similar(String s1, String s2) { + final int[] tab1 = countLetter(s1); + final int[] tab2 = countLetter(s2); + int result = 0; + for (int i = 0; i < tab1.length; i++) { + result += Math.abs(tab1[i] - tab2[i]); + } + return result; + } + + private static String noAccent(String str) { + final String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD); + final Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+"); + return pattern.matcher(nfdNormalizedString).replaceAll(""); + } + + private static int[] countLetter(String s) { + s = noAccent(s).toLowerCase(Locale.US); + final int[] result = new int[26]; + for (int i = 0; i < s.length(); i++) { + final char c = s.charAt(i); + if (c >= 'a' && c <= 'z') { + result[c - 'a']++; + } + } + return result; + } + + static final List getAll() { + return all; + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/Segment.java plantuml-8039/src/net/sourceforge/plantuml/webp/Segment.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/Segment.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/Segment.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,62 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . + */ +package net.sourceforge.plantuml.webp; + +public class Segment { + int P0, P1, P2, P3; + int Q0, Q1, Q2, Q3; + + public String toString() { + return "" + Globals.toHex(P3) + " " + Globals.toHex(P2) + " " + + Globals.toHex(P1) + " " + Globals.toHex(P0) + " " + + Globals.toHex(Q0) + " " + Globals.toHex(Q1) + " " + + Globals.toHex(Q2) + " " + Globals.toHex(Q3); + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/SegmentQuant.java plantuml-8039/src/net/sourceforge/plantuml/webp/SegmentQuant.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/SegmentQuant.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/SegmentQuant.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,137 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . + */ +package net.sourceforge.plantuml.webp; + +public class SegmentQuant { + private int filterStrength; + private int Qindex; + private int uvac; + private int uvdc; + private int y1ac; + private int y1dc; + private int y2ac; + private int y2dc; + + private int clip(int val, int max) { + int r = val; + if (val > max) + r = max; + if (r < 0) + r = 0; + return r; + } + + public int getQindex() { + return Qindex; + } + + public int getUvac_delta_q() { + return uvac; + } + + public int getUvdc_delta_q() { + return uvdc; + } + + public int getY1ac() { + return y1ac; + } + + public int getY1dc() { + return y1dc; + } + + public int getY2ac_delta_q() { + return y2ac; + } + + public int getY2dc() { + return y2dc; + } + + public void setFilterStrength(int value) { + this.filterStrength = value; + } + + public void setQindex(int qindex) { + Qindex = qindex; + } + + public void setUvac_delta_q(int uvac_delta_q) { + this.uvac = Globals.vp8AcQLookup[clip(Qindex + uvac_delta_q, 127)]; + } + + public void setUvdc_delta_q(int uvdc_delta_q) { + this.uvdc = Globals.vp8DcQLookup[clip(Qindex + uvdc_delta_q, 127)]; + } + + public void setY1ac() { + this.y1ac = Globals.vp8AcQLookup[clip(Qindex, 127)]; + } + + public void setY1dc(int y1dc) { + this.y1dc = Globals.vp8DcQLookup[clip(Qindex + y1dc, 127)]; + this.setY1ac(); + } + + public void setY2ac_delta_q(int y2ac_delta_q) { + this.y2ac = Globals.vp8AcQLookup[clip(Qindex + y2ac_delta_q, 127)] * 155 / 100; + if (this.y2ac < 8) + this.y2ac = 8; + } + + public void setY2dc(int y2dc_delta_q) { + this.y2dc = Globals.vp8DcQLookup[clip(Qindex + y2dc_delta_q, 127)] * 2; + } + + public int getFilterStrength() { + return filterStrength; + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/SegmentQuants.java plantuml-8039/src/net/sourceforge/plantuml/webp/SegmentQuants.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/SegmentQuants.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/SegmentQuants.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,132 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . + */ +package net.sourceforge.plantuml.webp; + +import java.io.IOException; + +public class SegmentQuants { + + private static DeltaQ get_delta_q(BoolDecoder bc, int prev) + throws IOException { + DeltaQ ret = new DeltaQ(); + ret.v = 0; + ret.update = false; + + if (bc.readBit() > 0) { + ret.v = bc.readLiteral(4); + + if (bc.readBit() > 0) + ret.v = -ret.v; + } + + /* Trigger a quantizer update if the delta-q value has changed */ + if (ret.v != prev) + ret.update = true; + + return ret; + } + + private int qIndex; + + private SegmentQuant[] segQuants = new SegmentQuant[Globals.MAX_MB_SEGMENTS]; + + public SegmentQuants() { + for (int x = 0; x < Globals.MAX_MB_SEGMENTS; x++) + segQuants[x] = new SegmentQuant(); + } + + public int getqIndex() { + return qIndex; + } + + public SegmentQuant[] getSegQuants() { + return segQuants; + } + + public void parse(BoolDecoder bc, boolean segmentation_enabled, + boolean mb_segement_abs_delta) throws IOException { + qIndex = bc.readLiteral(7); + boolean q_update = false; + DeltaQ v = get_delta_q(bc, 0); + int y1dc_delta_q = v.v; + q_update = q_update || v.update; + v = get_delta_q(bc, 0); + int y2dc_delta_q = v.v; + q_update = q_update || v.update; + v = get_delta_q(bc, 0); + int y2ac_delta_q = v.v; + q_update = q_update || v.update; + v = get_delta_q(bc, 0); + int uvdc_delta_q = v.v; + q_update = q_update || v.update; + v = get_delta_q(bc, 0); + int uvac_delta_q = v.v; + q_update = q_update || v.update; + + for (SegmentQuant s : segQuants) { + if (!segmentation_enabled) { + s.setQindex(qIndex); + } else if (!mb_segement_abs_delta) { + s.setQindex(s.getQindex() + qIndex); + } + + s.setY1dc(y1dc_delta_q); + s.setY2dc(y2dc_delta_q); + s.setY2ac_delta_q(y2ac_delta_q); + s.setUvdc_delta_q(uvdc_delta_q); + s.setUvac_delta_q(uvac_delta_q); + + } + } + + public void setSegQuants(SegmentQuant[] segQuants) { + this.segQuants = segQuants; + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/SubBlock.java plantuml-8039/src/net/sourceforge/plantuml/webp/SubBlock.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/SubBlock.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/SubBlock.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,651 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . + */ +package net.sourceforge.plantuml.webp; + +import java.io.IOException; + +public class SubBlock { + public static enum PLANE { + U, V, Y1, Y2 + }; + + public static final int UV = 2; + public static final int Y = 3; + public static final int Y_AFTER_Y2 = 0; + public static final int Y2 = 1; + + public static int planeToType(PLANE plane, Boolean withY2) { + switch (plane) { + case Y2: + return 1; + case Y1: + if (withY2) + return 0; + else + return 3; + case U: + return 2; + case V: + return 2; + } + return -1; + + } + + private SubBlock above; + + private int[][] dest; + private int[][] diff; + private boolean hasNoZeroToken; + private SubBlock left; + private MacroBlock macroBlock; + private int mode; + private PLANE plane; + private int predict[][]; + private int tokens[]; + + public SubBlock(MacroBlock macroBlock, SubBlock above, SubBlock left, + SubBlock.PLANE plane) { + this.macroBlock = macroBlock; + this.plane = plane; + this.above = above; + this.left = left; + mode = 0; + tokens = new int[16]; + for (int z = 0; z < 16; z++) + tokens[z] = 0; + } + + private int DCTextra(BoolDecoder bc2, int p[]) throws IOException { + int v = 0; + int offset = 0; + do { + v += v + bc2.readBool(p[offset]); + offset++; + } while (p[offset] > 0); + return v; + } + + public void decodeSubBlock(BoolDecoder bc2, int[][][][] coef_probs, + int ilc, int type, boolean withY2) throws IOException { + SubBlock sb = this; + int startAt = 0; + if (withY2) + startAt = 1; + int lc = ilc; + int c = 0; + int v = 1; + + boolean skip = false; + + while (!(v == Globals.dct_eob) && c + startAt < 16) { + + if (!skip) + v = bc2.readTree(Globals.vp8CoefTree, + coef_probs[type][Globals.vp8CoefBands[c + startAt]][lc]); + else + v = bc2.readTreeSkip( + Globals.vp8CoefTree, + coef_probs[type][Globals.vp8CoefBands[c + startAt]][lc], + 1); + + int dv = decodeToken(bc2, v); + lc = 0; + skip = false; + if (dv == 1 || dv == -1) + lc = 1; + else if (dv > 1 || dv < -1) + lc = 2; + else if (dv == Globals.DCT_0) + skip = true; + + int tokens[] = sb.getTokens(); + + if (v != Globals.dct_eob) + tokens[Globals.vp8defaultZigZag1d[c + startAt]] = dv; + c++; + } + hasNoZeroToken = false; + for (int x = 0; x < 16; x++) + if (tokens[x] != 0) + hasNoZeroToken = true; + } + + private int decodeToken(BoolDecoder bc2, int v) throws IOException { + int r = v; + + if (v == Globals.dct_cat1) { + r = 5 + DCTextra(bc2, Globals.Pcat1); + } + if (v == Globals.dct_cat2) { + r = 7 + DCTextra(bc2, Globals.Pcat2); + } + if (v == Globals.dct_cat3) { + r = 11 + DCTextra(bc2, Globals.Pcat3); + } + if (v == Globals.dct_cat4) { + r = 19 + DCTextra(bc2, Globals.Pcat4); + } + if (v == Globals.dct_cat5) { + r = 35 + DCTextra(bc2, Globals.Pcat5); + } + if (v == Globals.dct_cat6) { + r = 67 + DCTextra(bc2, Globals.Pcat6); + } + if (v != Globals.DCT_0 && v != Globals.dct_eob) { + if (bc2.readBit() > 0) + r = -r; + } + + return r; + } + + public void dequantSubBlock(VP8Frame frame, Integer Dc) { + SubBlock sb = this; + + int[] adjustedValues = new int[16]; + for (int i = 0; i < 16; i++) { + int QValue; + if (plane == PLANE.U || plane == PLANE.V) { + QValue = frame.getSegmentQuants().getSegQuants()[this.getMacroBlock().getSegmentId()] + .getUvac_delta_q(); + if (i == 0) + QValue = frame.getSegmentQuants().getSegQuants()[this.getMacroBlock().getSegmentId()] + .getUvdc_delta_q(); + } else { + QValue = frame.getSegmentQuants().getSegQuants()[this.getMacroBlock().getSegmentId()].getY1ac(); + if (i == 0) + QValue = frame.getSegmentQuants().getSegQuants()[this.getMacroBlock().getSegmentId()] + .getY1dc(); + } + + int inputValue = sb.getTokens()[i]; + adjustedValues[i] = inputValue * QValue; + + } + + if (Dc != null) + adjustedValues[0] = Dc; + + int[][] diff = IDCT.idct4x4llm(adjustedValues); + sb.setDiff(diff); + + } + + public void drawDebug() { + if (dest != null) { + dest[0][0] = 128; + dest[1][0] = 128; + dest[2][0] = 128; + dest[3][0] = 128; + dest[0][0] = 128; + dest[0][1] = 128; + dest[0][2] = 128; + dest[0][3] = 128; + } + + } + + public void drawDebugH() { + if (dest != null) { + dest[0][0] = 0; + dest[1][0] = 0; + dest[2][0] = 0; + dest[3][0] = 0; + } + + } + + public void drawDebugV() { + if (dest != null) { + dest[0][0] = 0; + dest[0][1] = 0; + dest[0][2] = 0; + dest[0][3] = 0; + } + } + + public SubBlock getAbove() { + + return above; + } + + public String getDebugString() { + String r = new String(); + r = r + " " + plane; + if (getMacroBlock().getYMode() == Globals.B_PRED + && plane == SubBlock.PLANE.Y1) + r = r + "\n " + Globals.getSubBlockModeAsString(mode); + return r; + } + + public int[][] getDest() { + if (dest != null) + return dest; + else + return new int[4][4]; + } + + public int[][] getDiff() { + + return diff; + } + + public SubBlock getLeft() { + + return left; + } + + public MacroBlock getMacroBlock() { + return macroBlock; + } + + public int[][] getMacroBlockPredict(int intra_mode) { + if (dest != null) + return dest; + + else { + int rv = 127; + if (intra_mode == Globals.H_PRED) + rv = 129; + int r[][] = new int[4][4]; + for (int j = 0; j < 4; j++) + for (int i = 0; i < 4; i++) + r[i][j] = rv; + return r; + } + } + + public int getMode() { + return mode; + } + + public PLANE getPlane() { + return plane; + } + + public int[][] getPredict() { + if (predict != null) + return predict; + return getPredict(Globals.B_DC_PRED, false); + } + + public int[][] getPredict(int intra_bmode, boolean left) { + if (dest != null) + return dest; + if (predict != null) + return predict; + else { + int rv = 127; + + if ((intra_bmode == Globals.B_TM_PRED + || intra_bmode == Globals.B_DC_PRED + || intra_bmode == Globals.B_VE_PRED + || intra_bmode == Globals.B_HE_PRED + || intra_bmode == Globals.B_VR_PRED + || intra_bmode == Globals.B_RD_PRED || intra_bmode == Globals.B_HD_PRED) + && left) + + rv = 129; + int r[][] = new int[4][4]; + for (int j = 0; j < 4; j++) + for (int i = 0; i < 4; i++) + r[i][j] = rv; + return r; + } + } + + int[] getTokens() { + return tokens; + } + + public boolean hasNoZeroToken() { + return hasNoZeroToken; + } + + public boolean isDest() { + if (dest == null) + return false; + return true; + } + + public void predict(VP8Frame frame) { + SubBlock sb = this; + SubBlock aboveSb = frame.getAboveSubBlock(sb, sb.getPlane()); + SubBlock leftSb = frame.getLeftSubBlock(sb, sb.getPlane()); + + int[] above = new int[4]; + int[] left = new int[4]; + + above[0] = aboveSb.getPredict(sb.getMode(), false)[0][3]; + above[1] = aboveSb.getPredict(sb.getMode(), false)[1][3]; + above[2] = aboveSb.getPredict(sb.getMode(), false)[2][3]; + above[3] = aboveSb.getPredict(sb.getMode(), false)[3][3]; + left[0] = leftSb.getPredict(sb.getMode(), true)[3][0]; + left[1] = leftSb.getPredict(sb.getMode(), true)[3][1]; + left[2] = leftSb.getPredict(sb.getMode(), true)[3][2]; + left[3] = leftSb.getPredict(sb.getMode(), true)[3][3]; + SubBlock AL = frame.getLeftSubBlock(aboveSb, sb.getPlane()); + + // for above left if left and above is null use left (129?) else use + // above (127?) + int al; + if (!leftSb.isDest() && !aboveSb.isDest()) { + + al = AL.getPredict(sb.getMode(), false)[3][3]; + } else if (!aboveSb.isDest()) { + + al = AL.getPredict(sb.getMode(), false)[3][3]; + } else + al = AL.getPredict(sb.getMode(), true)[3][3]; + SubBlock AR = frame.getAboveRightSubBlock(sb, sb.plane); + int ar[] = new int[4]; + ar[0] = AR.getPredict(sb.getMode(), false)[0][3]; + ar[1] = AR.getPredict(sb.getMode(), false)[1][3]; + ar[2] = AR.getPredict(sb.getMode(), false)[2][3]; + ar[3] = AR.getPredict(sb.getMode(), false)[3][3]; + int[][] p = new int[4][4]; + int pp[]; + switch (sb.getMode()) { + case Globals.B_DC_PRED: + // System.out.println("B_DC_PRED"); + int expected_dc = 0; + + for (int i = 0; i < 4; i++) { + expected_dc += above[i]; + expected_dc += left[i]; + } + expected_dc = (expected_dc + 4) >> 3; + + for (int y = 0; y < 4; y++) + for (int x = 0; x < 4; x++) + p[x][y] = expected_dc; + + break; + case Globals.B_TM_PRED: + + // System.out.println("B_TM_PRED"); + + // prediction similar to true_motion prediction + + for (int r = 0; r < 4; r++) { + for (int c = 0; c < 4; c++) { + + int pred = above[c] - al + left[r]; + if (pred < 0) + pred = 0; + + if (pred > 255) + pred = 255; + + p[c][r] = pred; + } + } + break; + case Globals.B_VE_PRED: + // System.out.println("B_VE_PRED"); + + int ap[] = new int[4]; + ap[0] = (al + 2 * above[0] + above[1] + 2) >> 2; + ap[1] = (above[0] + 2 * above[1] + above[2] + 2) >> 2; + ap[2] = (above[1] + 2 * above[2] + above[3] + 2) >> 2; + ap[3] = (above[2] + 2 * above[3] + ar[0] + 2) >> 2; + + for (int r = 0; r < 4; r++) { + for (int c = 0; c < 4; c++) { + + p[c][r] = ap[c]; + + } + } + break; + case Globals.B_HE_PRED: + // System.out.println("B_HE_PRED"); + + int lp[] = new int[4]; + lp[0] = (al + 2 * left[0] + left[1] + 2) >> 2; + lp[1] = (left[0] + 2 * left[1] + left[2] + 2) >> 2; + lp[2] = (left[1] + 2 * left[2] + left[3] + 2) >> 2; + lp[3] = (left[2] + 2 * left[3] + left[3] + 2) >> 2; + + for (int r = 0; r < 4; r++) { + for (int c = 0; c < 4; c++) { + p[c][r] = lp[r]; + } + } + break; + case Globals.B_LD_PRED: + // System.out.println("B_LD_PRED"); + p[0][0] = (above[0] + above[1] * 2 + above[2] + 2) >> 2; + p[1][0] = p[0][1] = (above[1] + above[2] * 2 + above[3] + 2) >> 2; + p[2][0] = p[1][1] = p[0][2] = (above[2] + above[3] * 2 + ar[0] + 2) >> 2; + p[3][0] = p[2][1] = p[1][2] = p[0][3] = (above[3] + ar[0] * 2 + + ar[1] + 2) >> 2; + p[3][1] = p[2][2] = p[1][3] = (ar[0] + ar[1] * 2 + ar[2] + 2) >> 2; + p[3][2] = p[2][3] = (ar[1] + ar[2] * 2 + ar[3] + 2) >> 2; + p[3][3] = (ar[2] + ar[3] * 2 + ar[3] + 2) >> 2; + + break; + case Globals.B_RD_PRED: + // System.out.println("B_RD_PRED"); + pp = new int[9]; + + pp[0] = left[3]; + pp[1] = left[2]; + pp[2] = left[1]; + pp[3] = left[0]; + pp[4] = al; + pp[5] = above[0]; + pp[6] = above[1]; + pp[7] = above[2]; + pp[8] = above[3]; + + p[0][3] = (pp[0] + pp[1] * 2 + pp[2] + 2) >> 2; + p[1][3] = p[0][2] = (pp[1] + pp[2] * 2 + pp[3] + 2) >> 2; + p[2][3] = p[1][2] = p[0][1] = (pp[2] + pp[3] * 2 + pp[4] + 2) >> 2; + p[3][3] = p[2][2] = p[1][1] = p[0][0] = (pp[3] + pp[4] * 2 + pp[5] + 2) >> 2; + p[3][2] = p[2][1] = p[1][0] = (pp[4] + pp[5] * 2 + pp[6] + 2) >> 2; + p[3][1] = p[2][0] = (pp[5] + pp[6] * 2 + pp[7] + 2) >> 2; + p[3][0] = (pp[6] + pp[7] * 2 + pp[8] + 2) >> 2; + break; + + case Globals.B_VR_PRED: + // System.out.println("B_VR_PRED"); + pp = new int[9]; + + pp[0] = left[3]; + pp[1] = left[2]; + pp[2] = left[1]; + pp[3] = left[0]; + pp[4] = al; + pp[5] = above[0]; + pp[6] = above[1]; + pp[7] = above[2]; + pp[8] = above[3]; + + p[0][3] = (pp[1] + pp[2] * 2 + pp[3] + 2) >> 2; + p[0][2] = (pp[2] + pp[3] * 2 + pp[4] + 2) >> 2; + p[1][3] = p[0][1] = (pp[3] + pp[4] * 2 + pp[5] + 2) >> 2; + p[1][2] = p[0][0] = (pp[4] + pp[5] + 1) >> 1; + p[2][3] = p[1][1] = (pp[4] + pp[5] * 2 + pp[6] + 2) >> 2; + p[2][2] = p[1][0] = (pp[5] + pp[6] + 1) >> 1; + p[3][3] = p[2][1] = (pp[5] + pp[6] * 2 + pp[7] + 2) >> 2; + p[3][2] = p[2][0] = (pp[6] + pp[7] + 1) >> 1; + p[3][1] = (pp[6] + pp[7] * 2 + pp[8] + 2) >> 2; + p[3][0] = (pp[7] + pp[8] + 1) >> 1; + + break; + case Globals.B_VL_PRED: + // System.out.println("B_VL_PRED"); + + p[0][0] = (above[0] + above[1] + 1) >> 1; + p[0][1] = (above[0] + above[1] * 2 + above[2] + 2) >> 2; + p[0][2] = p[1][0] = (above[1] + above[2] + 1) >> 1; + p[1][1] = p[0][3] = (above[1] + above[2] * 2 + above[3] + 2) >> 2; + p[1][2] = p[2][0] = (above[2] + above[3] + 1) >> 1; + p[1][3] = p[2][1] = (above[2] + above[3] * 2 + ar[0] + 2) >> 2; + p[3][0] = p[2][2] = (above[3] + ar[0] + 1) >> 1; + p[3][1] = p[2][3] = (above[3] + ar[0] * 2 + ar[1] + 2) >> 2; + p[3][2] = (ar[0] + ar[1] * 2 + ar[2] + 2) >> 2; + p[3][3] = (ar[1] + ar[2] * 2 + ar[3] + 2) >> 2; + + break; + case Globals.B_HD_PRED: + // System.out.println("B_HD_PRED"); + pp = new int[9]; + pp[0] = left[3]; + pp[1] = left[2]; + pp[2] = left[1]; + pp[3] = left[0]; + pp[4] = al; + pp[5] = above[0]; + pp[6] = above[1]; + pp[7] = above[2]; + pp[8] = above[3]; + + p[0][3] = (pp[0] + pp[1] + 1) >> 1; + p[1][3] = (pp[0] + pp[1] * 2 + pp[2] + 2) >> 2; + p[0][2] = p[2][3] = (pp[1] + pp[2] + 1) >> 1; + p[1][2] = p[3][3] = (pp[1] + pp[2] * 2 + pp[3] + 2) >> 2; + p[2][2] = p[0][1] = (pp[2] + pp[3] + 1) >> 1; + p[3][2] = p[1][1] = (pp[2] + pp[3] * 2 + pp[4] + 2) >> 2; + p[2][1] = p[0][0] = (pp[3] + pp[4] + 1) >> 1; + p[3][1] = p[1][0] = (pp[3] + pp[4] * 2 + pp[5] + 2) >> 2; + p[2][0] = (pp[4] + pp[5] * 2 + pp[6] + 2) >> 2; + p[3][0] = (pp[5] + pp[6] * 2 + pp[7] + 2) >> 2; + break; + case Globals.B_HU_PRED: + // System.out.println("B_HU_PRED"); + + p[0][0] = (left[0] + left[1] + 1) >> 1; + p[1][0] = (left[0] + left[1] * 2 + left[2] + 2) >> 2; + p[2][0] = p[0][1] = (left[1] + left[2] + 1) >> 1; + p[3][0] = p[1][1] = (left[1] + left[2] * 2 + left[3] + 2) >> 2; + p[2][1] = p[0][2] = (left[2] + left[3] + 1) >> 1; + p[3][1] = p[1][2] = (left[2] + left[3] * 2 + left[3] + 2) >> 2; + p[2][2] = p[3][2] = p[0][3] = p[1][3] = p[2][3] = p[3][3] = left[3]; + break; + + default: + System.out.println("TODO: " + sb.getMode()); + System.exit(0); + break; + } + + sb.setPredict(p); + } + + public void reconstruct() { + SubBlock sb = this; + + int r, c; + int p[][] = sb.getPredict(1, false); + + int dest[][] = new int[4][4]; + int diff[][] = sb.getDiff(); + + for (r = 0; r < 4; r++) { + for (c = 0; c < 4; c++) { + int a = diff[r][c] + p[r][c]; + + if (a < 0) + a = 0; + + if (a > 255) + a = 255; + + dest[r][c] = a; + + } + + } + + sb.setDest(dest); + if (!this.getMacroBlock().isKeepDebugInfo()) { + sb.diff = null; + sb.predict = null; + sb.tokens = null; + } + } + + public void setDest(int[][] dest) { + this.dest = dest; + } + + public void setDiff(int[][] diff) { + this.diff = diff; + } + + public void setMode(int mode) { + this.mode = mode; + } + + public void setPixel(int x, int y, int p) { + if (dest == null) { + dest = new int[4][4]; + } + dest[x][y] = p; + } + + public void setPredict(int[][] predict) { + this.predict = predict; + + } + + public String toString() { + String r = "["; + for (int x = 0; x < 16; x++) + r = r + tokens[x] + " "; + r = r + "]"; + + return r; + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/VP8Decoder.java plantuml-8039/src/net/sourceforge/plantuml/webp/VP8Decoder.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/VP8Decoder.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/VP8Decoder.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,191 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . + */ +package net.sourceforge.plantuml.webp; + +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; + +import javax.imageio.stream.ImageInputStream; + +public class VP8Decoder { + private int[][][][] coefProbs; + VP8Frame f; + private int frameCount = 0; + + public VP8Decoder() { + coefProbs = Globals.getDefaultCoefProbs(); + } + + public void decodeFrame(ImageInputStream stream, boolean debug) + throws IOException { + coefProbs = Globals.getDefaultCoefProbs(); + f = new VP8Frame(stream, coefProbs); + if (f.decodeFrame(debug)) { + + } + frameCount++; + } + + public VP8Frame getFrame() { + return f; + } + + public int getHeight() { + return f.getHeight(); + } + + public int getWidth() { + return f.getWidth(); + } + + @SuppressWarnings("unused") + private void writeFile(int[][] data) { + FileOutputStream out; + try { + out = new FileOutputStream("outagain.raw"); + for (int y = 0; y < data[0].length; y++) + for (int x = 0; x < data.length; x++) { + out.write(data[x][y]); + out.write(data[x][y]); + out.write(data[x][y]); + } + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void writePGMFile(String fileName, VP8Frame frame) { + + + FileOutputStream out; + try { + int[][] yData = frame.getYBuffer(); + int[][] uData = frame.getUBuffer(); + int[][] vData = frame.getVBuffer(); + int outStride = (f.getWidth()+1)& ~1; + int uvHeight = (f.getHeight() +1) / 2; + out = new FileOutputStream(fileName); + out.write((byte) 'P'); + out.write((byte) '5'); + out.write((byte) 0x0a); + out.write(("" + outStride).getBytes()); + out.write((byte) ' '); + + out.write(("" + (f.getHeight() + uvHeight)).getBytes()); + + out.write((byte) 0x0a); + out.write(("255").getBytes()); + out.write((byte) 0xa); + for (int y = 0; y < f.getHeight(); y++) { + for (int x = 0; x < f.getWidth(); x++) { + out.write(yData[x][y]); + } + if((f.getWidth() & 1)==1) + out.write(0x0); + } + for (int y = 0; y < (f.getHeight() + 1) / 2; y++) { + for (int x = 0; x < (f.getWidth() + 1) / 2; x++) { + out.write(uData[x][y]); + } + for (int x = 0; x < (f.getWidth() + 1) / 2; x++) { + out.write(vData[x][y]); + } + + } + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void writeYV12File(String fileName, VP8Frame frame) { + + FileOutputStream out; + try { + int[][] yData = frame.getYBuffer(); + int[][] uData = frame.getUBuffer(); + int[][] vData = frame.getVBuffer(); + out = new FileOutputStream(fileName); + out.write((byte) 'P'); + out.write((byte) '5'); + out.write((byte) 0x0a); + out.write(("" + f.getWidth()).getBytes()); + out.write((byte) ' '); + + out.write(("" + (f.getHeight() * 3 / 2)).getBytes()); + out.write((byte) 0x0a); + out.write(("255").getBytes()); + out.write((byte) 0xa); + for (int y = 0; y < f.getHeight(); y++) { + for (int x = 0; x < f.getWidth(); x++) { + out.write(yData[x][y]); + } + + } + for (int y = 0; y < (f.getHeight() + 1) / 2; y++) + for (int x = 0; x < (f.getWidth() + 1) / 2; x++) { + out.write(uData[x][y]); + } + for (int y = 0; y < (f.getHeight() + 1) / 2; y++) + for (int x = 0; x < (f.getWidth() + 1) / 2; x++) { + out.write(vData[x][y]); + } + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/webp/VP8Frame.java plantuml-8039/src/net/sourceforge/plantuml/webp/VP8Frame.java --- plantuml-8024/src/net/sourceforge/plantuml/webp/VP8Frame.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/webp/VP8Frame.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,1090 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +/* This file is part of javavp8decoder. + + javavp8decoder 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 3 of the License, or + (at your option) any later version. + + javavp8decoder is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with javavp8decoder. If not, see . +*/ +package net.sourceforge.plantuml.webp; + +import java.awt.image.BufferedImage; +import java.awt.image.WritableRaster; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Vector; + +import javax.imageio.event.IIOReadProgressListener; +import javax.imageio.stream.ImageInputStream; + + +public class VP8Frame { + private static int BLOCK_TYPES = 4; + private static int COEF_BANDS = 8; + private static int MAX_ENTROPY_TOKENS = 12; + private static int MAX_MODE_LF_DELTAS = 4; + private static int MAX_REF_LF_DELTAS = 4; + private static int PREV_COEF_CONTEXTS = 3; + + + private ArrayList _listeners = new ArrayList(); + + private int bufferCount; + private int buffersToCreate=1; + private int[][][][] coefProbs; + private boolean debug=false; + private int filterLevel; + + private int filterType; + + private ImageInputStream frame; + private int frameType; + private int height; + private int macroBlockCols; + private int macroBlockNoCoeffSkip; + private int macroBlockRows; + + private MacroBlock[][] macroBlocks; + private int macroBlockSegementAbsoluteDelta; + private int[] macroBlockSegmentTreeProbs; + private int[] modeLoopFilterDeltas = new int[MAX_MODE_LF_DELTAS]; + private int modeRefLoopFilterDeltaEnabled; + private int modeRefLoopFilterDeltaUpdate; + private int multiTokenPartition = 0; + + private long offset; + private int[] refLoopFilterDeltas = new int[MAX_REF_LF_DELTAS]; + private int refreshEntropyProbs; + private int refreshLastFrame; + private int segmentationIsEnabled; + private SegmentQuants segmentQuants; + private int sharpnessLevel; + private int simpleFilter; + private BoolDecoder tokenBoolDecoder; + private Vector tokenBoolDecoders; + private int updateMacroBlockSegmentationMap; + private int updateMacroBlockSegmentatonData; + private int width; + public VP8Frame(ImageInputStream stream) throws IOException { + this.frame = stream; + offset = frame.getStreamPosition(); + this.coefProbs=Globals.getDefaultCoefProbs(); + tokenBoolDecoders = new Vector(); + } + public VP8Frame(ImageInputStream stream, int[][][][] coefProbs) throws IOException { + this.frame = stream; + offset = frame.getStreamPosition(); + this.coefProbs=coefProbs; + tokenBoolDecoders = new Vector(); + } + public void addIIOReadProgressListener(IIOReadProgressListener listener) { + _listeners.add(listener); + } + private void createMacroBlocks() { + macroBlocks = new MacroBlock[macroBlockCols+2][macroBlockRows+2]; + for(int x=0; x> 4; + macroBlockCols=tWidth >> 4; + createMacroBlocks(); + + BoolDecoder bc = new BoolDecoder(frame, offset); + + if (frameType == 0) { + int clr_type = bc.readBit(); + int clamp_type = bc.readBit(); + + } + segmentationIsEnabled = bc.readBit(); + if (segmentationIsEnabled > 0) { + updateMacroBlockSegmentationMap = bc.readBit(); + updateMacroBlockSegmentatonData = bc.readBit(); + if(updateMacroBlockSegmentatonData > 0 ) { + + macroBlockSegementAbsoluteDelta = bc.readBit(); + /* For each segmentation feature (Quant and loop filter level) */ + for (int i = 0; i < Globals.MAX_MB_SEGMENTS; i++) { + int value =0; + if (bc.readBit() > 0) { + value = bc.readLiteral(Globals.vp8MacroBlockFeatureDataBits[0]); + if(bc.readBit()>0) + value=-value; + } + this.segmentQuants.getSegQuants()[i].setQindex(value); + } + for (int i = 0; i < Globals.MAX_MB_SEGMENTS; i++) { + int value = 0; + if (bc.readBit() > 0) { + value = bc.readLiteral(Globals.vp8MacroBlockFeatureDataBits[1]); + if(bc.readBit()>0) + value=-value; + } + this.segmentQuants.getSegQuants()[i].setFilterStrength(value); + } + + if(updateMacroBlockSegmentationMap > 0) { + macroBlockSegmentTreeProbs = new int[Globals.MB_FEATURE_TREE_PROBS]; + for (int i = 0; i < Globals.MB_FEATURE_TREE_PROBS; i++) { + int value=255; + if (bc.readBit()>0) { + value = bc.readLiteral(8); + } + else + value = 255; + macroBlockSegmentTreeProbs[i] = value; + } + } + } + } + simpleFilter = bc.readBit(); + filterLevel = bc.readLiteral(6); + + sharpnessLevel = bc.readLiteral(3); + modeRefLoopFilterDeltaEnabled = bc.readBit(); + if (modeRefLoopFilterDeltaEnabled > 0) { + // Do the deltas need to be updated + modeRefLoopFilterDeltaUpdate = bc.readBit(); + if (modeRefLoopFilterDeltaUpdate > 0) { + for (int i = 0; i < MAX_REF_LF_DELTAS; i++) { + + if (bc.readBit() > 0) { + refLoopFilterDeltas[i] = bc.readLiteral(6); + if (bc.readBit() > 0) // Apply sign + refLoopFilterDeltas[i] = refLoopFilterDeltas[i] * -1; + } + } + for (int i = 0; i < MAX_MODE_LF_DELTAS; i++) { + + if (bc.readBit() > 0) { + modeLoopFilterDeltas[i] = bc.readLiteral(6); + if (bc.readBit() > 0) // Apply sign + modeLoopFilterDeltas[i] = modeLoopFilterDeltas[i] * -1; + } + } + } + } + + filterType = (filterLevel == 0) ? 0 : (simpleFilter>0) ? 1 : 2; + setupTokenDecoder(bc, firstPartitionLengthInBytes, + offset); + bc.seek(); + + segmentQuants.parse(bc, segmentationIsEnabled==1, macroBlockSegementAbsoluteDelta==1); + + // Determine if the golden frame or ARF buffer should be updated and + // how. + // For all non key frames the GF and ARF refresh flags and sign bias + // flags must be set explicitly. + if (frameType != 0) { + throw new IllegalArgumentException("bad input: not intra"); + } + refreshEntropyProbs = bc.readBit(); + if (refreshEntropyProbs > 0) { + + } + refreshLastFrame = 0; + if (frameType == 0) + refreshLastFrame = 1; + else + refreshLastFrame = bc.readBit(); + for (int i = 0; i < BLOCK_TYPES; i++) + for (int j = 0; j < COEF_BANDS; j++) + for (int k = 0; k < PREV_COEF_CONTEXTS; k++) + for (int l = 0; l < MAX_ENTROPY_TOKENS - 1; l++) { + + if (bc.readBool(Globals.vp8CoefUpdateProbs[i][j][k][l]) > 0) { + int newp = bc.readLiteral(8); + this.coefProbs[i][j][k][l] = newp; + } + } + + // Read the mb_no_coeff_skip flag + macroBlockNoCoeffSkip = (int) bc.readBit(); + if (frameType == 0) { + readModes(bc); + } else { + throw new IllegalArgumentException("bad input: not intra"); + } + + int ibc = 0; + int num_part = 1 << multiTokenPartition; + + for (int mb_row = 0; mb_row < macroBlockRows; mb_row++) { + + if (num_part > 1) { + + tokenBoolDecoder = tokenBoolDecoders.elementAt(ibc); + tokenBoolDecoder.seek(); + + decodeMacroBlockRow(mb_row); + + ibc++; + if(ibc==num_part) + ibc=0; + } + else + decodeMacroBlockRow(mb_row); + fireProgressUpdate(mb_row); + + } + + if(this.getFilterType()>0 && this.getFilterLevel()!=0) + this.loopFilter(); + return true; + } + private void decodeMacroBlockRow(int mbRow) throws IOException { + for (int mbCol = 0; mbCol < macroBlockCols; mbCol++) { + + MacroBlock mb = getMacroBlock(mbCol, mbRow); + + mb.decodeMacroBlock(this); + + mb.dequantMacroBlock(this); + + } + } + + public void fireLFProgressUpdate(float p) { + java.util.Iterator listeners = _listeners.iterator(); + while( listeners.hasNext() ) { + ( (IIOReadProgressListener)listeners.next() ).imageProgress( null, (100/buffersToCreate)+(p/buffersToCreate)); + } + } + private void fireProgressUpdate(int mb_row) { + java.util.Iterator listeners = _listeners.iterator(); + while( listeners.hasNext() ) { + ( (IIOReadProgressListener)listeners.next() ).imageProgress( null, (100.0f*((float)(mb_row+1)/(float)getMacroBlockRows()))/buffersToCreate); + } + } + public void fireRGBProgressUpdate(float p) { + java.util.Iterator listeners = _listeners.iterator(); + while( listeners.hasNext() ) { + ( (IIOReadProgressListener)listeners.next() ).imageProgress( null, ((bufferCount+4)*(100/buffersToCreate))+(p/buffersToCreate)); + } + } + + public SubBlock getAboveRightSubBlock(SubBlock sb, SubBlock.PLANE plane) { + // this might break at right edge + SubBlock r; + MacroBlock mb = sb.getMacroBlock(); + int x = mb.getSubblockX(sb); + int y = mb.getSubblockY(sb); + + if(plane==SubBlock.PLANE.Y1) { + + // top row + if(y==0 && x<3) { + + MacroBlock mb2=this.getMacroBlock(mb.getX(), mb.getY()-1); + r = mb2.getSubBlock(plane, x+1, 3); + return r; + } + //top right + else if(y==0 && x==3) { + + MacroBlock mb2=this.getMacroBlock(mb.getX()+1, mb.getY()-1); + r = mb2.getSubBlock(plane, 0, 3); + + if(mb2.getX()==this.getMacroBlockCols()) { + + int dest[][] = new int [4][4]; + for(int b=0; b<4; b++) + for(int a=0; a<4; a++) { + if(mb2.getY()<0) + dest[a][b]=127; + else + dest[a][b]=this.getMacroBlock(mb.getX(), mb.getY()-1).getSubBlock(SubBlock.PLANE.Y1, 3, 3).getDest()[3][3]; + } + r=new SubBlock(mb2,null, null, SubBlock.PLANE.Y1); + r.setDest(dest); + + + } + + return r; + } + //not right edge or top row + else if(y>0 && x<3) { + + r = mb.getSubBlock(plane, x+1, y-1); + return r; + } + //else use top right + else { + SubBlock sb2 = mb.getSubBlock(sb.getPlane(), 3, 0); + return this.getAboveRightSubBlock(sb2, plane); + } + } + else { + throw new IllegalArgumentException("bad input: getAboveRightSubBlock()"); + } + } + + public SubBlock getAboveSubBlock(SubBlock sb, SubBlock.PLANE plane) { + + SubBlock r = sb.getAbove(); + if(r==null) { + MacroBlock mb = sb.getMacroBlock(); + int x = mb.getSubblockX(sb); + + MacroBlock mb2 = getMacroBlock(mb.getX(), mb.getY()-1); + //TODO: SPLIT + while(plane==SubBlock.PLANE.Y2 && mb2.getYMode()== Globals.B_PRED) { + mb2 = getMacroBlock(mb2.getX(), mb2.getY()-1); + } + r = mb2.getBottomSubBlock(x, sb.getPlane()); + + } + + return r; + } + + private boolean getBit(int data, int bit) { + int r = data & (1 << bit); + if (r > 0) + return true; + return false; + } + + private int getBitAsInt(int data, int bit) { + int r = data & (1 << bit); + if (r > 0) + return 1; + return 0; + } + + public BufferedImage getBufferedImage() { + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + useBufferedImage(bi); + bufferCount++; + return bi; + } + + + + public int[][][][] getCoefProbs() { + return coefProbs; + } + + public BufferedImage getDebugImageDiff() { + + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + WritableRaster imRas = bi.getWritableTile(0, 0); + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int yy, u, v; + yy = 127+this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.Y1, (x%16)/4, (y%16)/4).getDiff()[x%4][y%4]; + u = 127+this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.U, ((x/2)%8)/4, ((y/2)%8)/4).getDiff()[(x/2)%4][(y/2)%4]; + v = 127+this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.V, ((x/2)%8)/4, ((y/2)%8)/4).getDiff()[(x/2)%4][(y/2)%4]; + c[0] = (int)( 1.164*(yy-16)+1.596*(v-128) ); + c[1] = (int)( 1.164*(yy-16)-0.813*(v-128)-0.391*(u-128) ); + c[2] = (int)( 1.164*(yy-16)+2.018*(u-128) ); + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + bufferCount++; + return bi; + } + + public BufferedImage getDebugImagePredict() { + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + WritableRaster imRas = bi.getWritableTile(0, 0); + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int yy, u, v; + yy = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.Y1, (x%16)/4, (y%16)/4).getPredict()[x%4][y%4]; + u = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.U, ((x/2)%8)/4, ((y/2)%8)/4).getPredict()[(x/2)%4][(y/2)%4]; + v = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.V, ((x/2)%8)/4, ((y/2)%8)/4).getPredict()[(x/2)%4][(y/2)%4]; + c[0] = (int)( 1.164*(yy-16)+1.596*(v-128) ); + c[1] = (int)( 1.164*(yy-16)-0.813*(v-128)-0.391*(u-128) ); + c[2] = (int)( 1.164*(yy-16)+2.018*(u-128) ); + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + bufferCount++; + return bi; + } + + public BufferedImage getDebugImageUBuffer() { + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + WritableRaster imRas = bi.getWritableTile(0, 0); + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int u; + u = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.U, ((x/2)%8)/4, ((y/2)%8)/4).getDest()[(x/2)%4][(y/2)%4]; + c[0] = u; + c[1] = u; + c[2] = u; + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + bufferCount++; + return bi; + } + + public BufferedImage getDebugImageUDiffBuffer() { + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + WritableRaster imRas = bi.getWritableTile(0, 0); + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int u; + u = 127+this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.U, ((x/2)%8)/4, ((y/2)%8)/4).getDiff()[(x/2)%4][(y/2)%4]; + c[0] = u; + c[1] = u; + c[2] = u; + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + bufferCount++; + return bi; + } + + public BufferedImage getDebugImageUPredBuffer() { + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + WritableRaster imRas = bi.getWritableTile(0, 0); + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int u; + u = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.U, ((x/2)%8)/4, ((y/2)%8)/4).getPredict()[(x/2)%4][(y/2)%4]; + c[0] = u; + c[1] = u; + c[2] = u; + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + bufferCount++; + return bi; + } + + public BufferedImage getDebugImageVBuffer() { + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + WritableRaster imRas = bi.getWritableTile(0, 0); + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int v; + v = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.V, ((x/2)%8)/4, ((y/2)%8)/4).getDest()[(x/2)%4][(y/2)%4]; + c[0] = v; + c[1] = v; + c[2] = v; + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + bufferCount++; + return bi; + } + + public BufferedImage getDebugImageVDiffBuffer() { + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + WritableRaster imRas = bi.getWritableTile(0, 0); + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int v; + v = 127+this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.V, ((x/2)%8)/4, ((y/2)%8)/4).getDiff()[(x/2)%4][(y/2)%4]; + c[0] = v; + c[1] = v; + c[2] = v; + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + bufferCount++; + return bi; + } + public BufferedImage getDebugImageVPredBuffer() { + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + WritableRaster imRas = bi.getWritableTile(0, 0); + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int v; + v = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.V, ((x/2)%8)/4, ((y/2)%8)/4).getPredict()[(x/2)%4][(y/2)%4]; + c[0] = v; + c[1] = v; + c[2] = v; + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + bufferCount++; + return bi; + } + + public BufferedImage getDebugImageYBuffer() { + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + WritableRaster imRas = bi.getWritableTile(0, 0); + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int yy; + yy = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.Y1, (x%16)/4, (y%16)/4).getDest()[x%4][y%4]; + c[0] = yy; + c[1] = yy; + c[2] = yy; + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + bufferCount++; + return bi; + } + + public BufferedImage getDebugImageYDiffBuffer() { + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + WritableRaster imRas = bi.getWritableTile(0, 0); + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int yy; + yy = 127+this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.Y1, (x%16)/4, (y%16)/4).getDiff()[x%4][y%4]; + c[0] = yy; + c[1] = yy; + c[2] = yy; + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + bufferCount++; + return bi; + } + + public BufferedImage getDebugImageYPredBuffer() { + BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); + WritableRaster imRas = bi.getWritableTile(0, 0); + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int yy; + yy = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.Y1, (x%16)/4, (y%16)/4).getPredict()[x%4][y%4]; + c[0] = yy; + c[1] = yy; + c[2] = yy; + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + bufferCount++; + return bi; + } + + public int getFilterLevel() { + return filterLevel; + } + public int getFilterType() { + return filterType; + } + public int getFrameType() { + return frameType; + } + + public int getHeight() { + return height; + } + public SubBlock getLeftSubBlock(SubBlock sb, SubBlock.PLANE plane) { + SubBlock r = sb.getLeft(); + if(r==null) { + MacroBlock mb = sb.getMacroBlock(); + int y = mb.getSubblockY(sb); + MacroBlock mb2 = getMacroBlock(mb.getX()-1, mb.getY()); + //TODO: SPLIT + + while(plane==SubBlock.PLANE.Y2 && mb2.getYMode()== Globals.B_PRED) + mb2 = getMacroBlock(mb2.getX()-1, mb2.getY()); + + r = mb2.getRightSubBlock(y, sb.getPlane()); + + } + + return r; + } + public MacroBlock getMacroBlock(int mbCol, int mbRow) { + return macroBlocks[mbCol+1][mbRow+1]; + } + public int getMacroBlockCols() { + return macroBlockCols; + } + public String getMacroBlockDebugString(int mbx, int mby, int sbx, int sby) { + String r = new String(); + if(mbx 0) { + prob_skip_false = bc.readLiteral(8); + } + + while (++mb_row < macroBlockRows) { + int mb_col = -1; + while (++mb_col < macroBlockCols) { + + //if (this.segmentation_enabled > 0) { + // logger.log(Level.SEVERE, "TODO:"); + // throw new IllegalArgumentException("bad input: segmentation_enabled()"); + //} + // Read the macroblock coeff skip flag if this feature is in + // use, else default to 0 + MacroBlock mb = getMacroBlock(mb_col, mb_row); + + if ((segmentationIsEnabled >0) &&( updateMacroBlockSegmentationMap > 0)) { + int value = bc.readTree(Globals.macroBlockSegmentTree, this.macroBlockSegmentTreeProbs); + mb.setSegmentId(value); + } + + if(modeRefLoopFilterDeltaEnabled > 0) { + int level = filterLevel; + level = level + refLoopFilterDeltas[0]; + level = (level < 0) ? 0 : (level > 63) ? 63 : level; + mb.setFilterLevel(level); + } + else { + mb.setFilterLevel(segmentQuants.getSegQuants()[mb.getSegmentId()].getFilterStrength()); +// logger.error("TODO:"); + } + + int mb_skip_coeff = 0; + if (macroBlockNoCoeffSkip > 0) + mb_skip_coeff = bc.readBool(prob_skip_false); + else + mb_skip_coeff = 0; + mb.setSkipCoeff(mb_skip_coeff); + + int y_mode = readYMode(bc); + + mb.setYMode(y_mode); + + if (y_mode == Globals.B_PRED) { + + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + + SubBlock sb = mb.getYSubBlock(j, i); + + SubBlock A = getAboveSubBlock(sb, SubBlock.PLANE.Y1); + + SubBlock L = getLeftSubBlock(sb, SubBlock.PLANE.Y1); + + int mode = readSubBlockMode(bc, A.getMode(), L.getMode()); + + sb.setMode(mode); + + } + } + if(modeRefLoopFilterDeltaEnabled > 0) { + int level = mb.getFilterLevel(); + level = level + this.modeLoopFilterDeltas[0]; + level = (level < 0) ? 0 : (level > 63) ? 63 : level; + mb.setFilterLevel(level); + } + } else { + int BMode; + + + switch (y_mode) { + case Globals.DC_PRED: + BMode = Globals.B_DC_PRED; + break; + case Globals.V_PRED: + BMode = Globals.B_VE_PRED; + break; + case Globals.H_PRED: + BMode = Globals.B_HE_PRED; + break; + case Globals.TM_PRED: + BMode = Globals.B_TM_PRED; + break; + default: + BMode = Globals.B_DC_PRED; + break; + } + for (int x = 0; x < 4; x++) { + for (int y = 0; y < 4; y++) { + SubBlock sb = mb.getYSubBlock(x, y); + sb.setMode(BMode); + } + } + } + int mode = readUvMode(bc); + mb.setUvMode(mode); + } + } + } + + + + private int readPartitionSize(long l) throws IOException { + frame.seek(l); + int size =frame.readUnsignedByte() + (frame.readUnsignedByte() << 8) + (frame.readUnsignedByte() << 16); + return size; + + } + private int readSubBlockMode(BoolDecoder bc, int A, int L) throws IOException { + int i = bc.readTree(Globals.vp8SubBlockModeTree, Globals.vp8KeyFrameSubBlockModeProb[A][L]); + return i; + } + private int readUvMode(BoolDecoder bc) throws IOException { + int i = bc.readTree(Globals.vp8UVModeTree, Globals.vp8KeyFrameUVModeProb); + return i; + } + + private int readYMode(BoolDecoder bc) throws IOException { + int i = bc.readTree(Globals.vp8KeyFrameYModeTree, Globals.vp8KeyFrameYModeProb); + return i; + } + + public void removeIIOReadProgressListener(IIOReadProgressListener listener) { + _listeners.remove(listener); + } + + public void setBuffersToCreate (int count) { + this.buffersToCreate = 3+count; + this.bufferCount=0; + } + + private void setupTokenDecoder(BoolDecoder bc, int first_partition_length_in_bytes, long offset) throws IOException { + + long partitionSize = 0; + long partitionsStart = offset+first_partition_length_in_bytes; + long partition = partitionsStart; + multiTokenPartition = bc.readLiteral(2); + int num_part = 1 << multiTokenPartition; + if (num_part > 1) { + partition += 3 * (num_part - 1); + } + for (int i = 0; i < num_part; i++) { + /* + * Calculate the length of this partition. The last partition size + * is implicit. + */ + if (i < num_part - 1) { + + partitionSize = readPartitionSize(partitionsStart+(i*3)); + bc.seek(); + } else { + partitionSize = frame.length() - partition; + } + + tokenBoolDecoders.add(new BoolDecoder(frame, partition)); + partition+=partitionSize; + } + tokenBoolDecoder = tokenBoolDecoders.elementAt(0); + } + + public void useBufferedImage(BufferedImage dst) { + WritableRaster imRas = dst.getWritableTile(0, 0); + + for(int x = 0; x< getWidth(); x++) { + for(int y = 0; y< getHeight(); y++) { + int c[] = new int[3]; + int yy, u, v; + yy = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.Y1, (x%16)/4, (y%16)/4).getDest()[x%4][y%4]; + u = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.U, ((x/2)%8)/4, ((y/2)%8)/4).getDest()[(x/2)%4][(y/2)%4]; + v = this.getMacroBlock(x/16, y/16).getSubBlock(SubBlock.PLANE.V, ((x/2)%8)/4, ((y/2)%8)/4).getDest()[(x/2)%4][(y/2)%4]; + c[0] = (int)( 1.164*(yy-16)+1.596*(v-128) ); + c[1] = (int)( 1.164*(yy-16)-0.813*(v-128)-0.391*(u-128) ); + c[2] = (int)( 1.164*(yy-16)+2.018*(u-128) ); + + for(int z=0; z<3; z++) { + if(c[z]<0) + c[z]=0; + if(c[z]>255) + c[z]=255; + } + imRas.setPixel(x, y, c); + } + fireRGBProgressUpdate(100.0F*x/getWidth()); + } + } + public void setFrame(ImageInputStream frame) { + try { + this.frame.flush(); + this.frame.close(); + this.frame = frame; + offset = frame.getStreamPosition(); + this.coefProbs=Globals.getDefaultCoefProbs(); + tokenBoolDecoders = new Vector(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/xmi/CucaDiagramXmiMaker.java plantuml-8039/src/net/sourceforge/plantuml/xmi/CucaDiagramXmiMaker.java --- plantuml-8024/src/net/sourceforge/plantuml/xmi/CucaDiagramXmiMaker.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/xmi/CucaDiagramXmiMaker.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -44,6 +44,7 @@ import net.sourceforge.plantuml.Log; import net.sourceforge.plantuml.classdiagram.ClassDiagram; import net.sourceforge.plantuml.cucadiagram.CucaDiagram; +import net.sourceforge.plantuml.statediagram.StateDiagram; public final class CucaDiagramXmiMaker { @@ -58,7 +59,9 @@ public void createFiles(OutputStream fos) throws IOException { try { final IXmiClassDiagram xmi; - if (fileFormat == FileFormat.XMI_STANDARD) { + if (diagram instanceof StateDiagram) { + xmi = new XmiStateDiagram((StateDiagram) diagram); + } else if (fileFormat == FileFormat.XMI_STANDARD) { xmi = new XmiClassDiagramStandard((ClassDiagram) diagram); } else if (fileFormat == FileFormat.XMI_ARGO) { xmi = new XmiClassDiagramArgo((ClassDiagram) diagram); @@ -68,8 +71,6 @@ throw new UnsupportedOperationException(); } xmi.transformerXml(fos); - // fos.close(); - // return Collections.singletonList(suggestedFile); } catch (ParserConfigurationException e) { Log.error(e.toString()); e.printStackTrace(); diff -Nru plantuml-8024/src/net/sourceforge/plantuml/xmi/IXmiClassDiagram.java plantuml-8039/src/net/sourceforge/plantuml/xmi/IXmiClassDiagram.java --- plantuml-8024/src/net/sourceforge/plantuml/xmi/IXmiClassDiagram.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/xmi/IXmiClassDiagram.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * diff -Nru plantuml-8024/src/net/sourceforge/plantuml/xmi/XmiClassDiagramArgo.java plantuml-8039/src/net/sourceforge/plantuml/xmi/XmiClassDiagramArgo.java --- plantuml-8024/src/net/sourceforge/plantuml/xmi/XmiClassDiagramArgo.java 2015-05-03 15:06:26.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/xmi/XmiClassDiagramArgo.java 2016-04-22 16:26:34.000000000 +0000 @@ -2,9 +2,9 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2014, Arnaud Roques + * (C) Copyright 2009-2017, Arnaud Roques * - * Project Info: http://plantuml.sourceforge.net + * Project Info: http://plantuml.com * * This file is part of PlantUML. * @@ -241,7 +241,7 @@ final Element feature = document.createElement("UML:Classifier.feature"); cla.appendChild(feature); - for (Member m : entity.getFieldsToDisplay()) { + for (Member m : entity.getBodier().getFieldsToDisplay()) { // + final Element model = document.createElement("UML:Model"); + model.setAttribute("xmi.id", "model1"); + model.setAttribute("name", "PlantUML "+Version.versionString()); + content.appendChild(model); + + // + this.ownedElement = document.createElement("UML:Namespace.ownedElement"); + model.appendChild(ownedElement); + + for (final IGroup gr : diagram.getGroups(false)) { + if (gr.getParentContainer() instanceof GroupRoot) { + addState(gr, ownedElement); + } + } + + for (final IEntity ent : diagram.getLeafsvalues()) { + if (ent.getParentContainer() instanceof GroupRoot) { + addState(ent, ownedElement); + } + } + + for (final Link link : diagram.getLinks()) { + addLink(link); + } + } + + private void addState(final IEntity tobeAdded, Element container) { + final Element elementState = createEntityNode(tobeAdded); + container.appendChild(elementState); + for (final IEntity ent : diagram.getGroups(false)) { + if (ent.getParentContainer() == tobeAdded) { + addState(ent, elementState); + } + } + for (final IEntity ent : diagram.getLeafsvalues()) { + if (ent.getParentContainer() == tobeAdded) { + addState(ent, elementState); + } + } + } + + public static String forXMI(String s) { + return s.replace(':', ' '); + } + + public static String forXMI(Display s) { + return s.get(0).toString().replace(':', ' '); + } + + private void addLink(Link link) { + final String assId = "ass" + UniqueSequence.getValue(); + + final Element association = document.createElement("UML:Association"); + association.setAttribute("xmi.id", assId); + association.setAttribute("namespace", "model1"); + if (Display.isNull(link.getLabel()) == false) { + association.setAttribute("name", forXMI(link.getLabel())); + } + + final Element connection = document.createElement("UML:Association.connection"); + final Element end1 = document.createElement("UML:AssociationEnd"); + end1.setAttribute("xmi.id", "end" + UniqueSequence.getValue()); + end1.setAttribute("association", assId); + end1.setAttribute("type", link.getEntity1().getUid()); + if (link.getQualifier1() != null) { + end1.setAttribute("name", forXMI(link.getQualifier1())); + } + final Element endparticipant1 = document.createElement("UML:AssociationEnd.participant"); + + if (link.getType().getDecor2() == LinkDecor.COMPOSITION) { + end1.setAttribute("aggregation", "composite"); + } + if (link.getType().getDecor2() == LinkDecor.AGREGATION) { + end1.setAttribute("aggregation", "aggregate"); + } + // } + end1.appendChild(endparticipant1); + connection.appendChild(end1); + + final Element end2 = document.createElement("UML:AssociationEnd"); + end2.setAttribute("xmi.id", "end" + UniqueSequence.getValue()); + end2.setAttribute("association", assId); + end2.setAttribute("type", link.getEntity2().getUid()); + if (link.getQualifier2() != null) { + end2.setAttribute("name", forXMI(link.getQualifier2())); + } + final Element endparticipant2 = document.createElement("UML:AssociationEnd.participant"); + if (link.getType().getDecor1() == LinkDecor.COMPOSITION) { + end2.setAttribute("aggregation", "composite"); + } + if (link.getType().getDecor1() == LinkDecor.AGREGATION) { + end2.setAttribute("aggregation", "aggregate"); + } + // } + end2.appendChild(endparticipant2); + connection.appendChild(end2); + + association.appendChild(connection); + + ownedElement.appendChild(association); + + } + + private Element createEntityNode(IEntity entity) { + // + final Element cla = document.createElement("UML:State"); + + cla.setAttribute("xmi.id", entity.getUid()); + cla.setAttribute("name", entity.getDisplay().get(0).toString()); + cla.setAttribute("namespace", "model1"); + + final Element feature = document.createElement("UML:Classifier.feature"); + cla.appendChild(feature); + + for (Member m : entity.getBodier().getFieldsToDisplay()) { + // + final Element attribute = document.createElement("UML:Attribute"); + attribute.setAttribute("xmi.id", "att" + UniqueSequence.getValue()); + attribute.setAttribute("name", m.getDisplay(false)); + feature.appendChild(attribute); + } + + for (Member m : entity.getBodier().getMethodsToDisplay()) { + // + final Element operation = document.createElement("UML:Operation"); + operation.setAttribute("xmi.id", "att" + UniqueSequence.getValue()); + operation.setAttribute("name", m.getDisplay(false)); + feature.appendChild(operation); + } + return cla; + } + + public void transformerXml(OutputStream os) throws TransformerException, ParserConfigurationException { + final Source source = new DOMSource(document); + + final Result resultat = new StreamResult(os); + + final TransformerFactory fabrique = TransformerFactory.newInstance(); + final Transformer transformer = fabrique.newTransformer(); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + // transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1"); + transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); + // tf.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + transformer.transform(source, resultat); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/xmlsc/ScxmlStateDiagramStandard.java plantuml-8039/src/net/sourceforge/plantuml/xmlsc/ScxmlStateDiagramStandard.java --- plantuml-8024/src/net/sourceforge/plantuml/xmlsc/ScxmlStateDiagramStandard.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/xmlsc/ScxmlStateDiagramStandard.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,139 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.xmlsc; + +import java.io.OutputStream; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import net.sourceforge.plantuml.cucadiagram.Display; +import net.sourceforge.plantuml.cucadiagram.IEntity; +import net.sourceforge.plantuml.cucadiagram.LeafType; +import net.sourceforge.plantuml.cucadiagram.Link; +import net.sourceforge.plantuml.statediagram.StateDiagram; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class ScxmlStateDiagramStandard { + + private final StateDiagram diagram; + private final Document document; + + public ScxmlStateDiagramStandard(StateDiagram diagram) throws ParserConfigurationException { + this.diagram = diagram; + final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + + final DocumentBuilder builder = factory.newDocumentBuilder(); + this.document = builder.newDocument(); + document.setXmlVersion("1.0"); + document.setXmlStandalone(true); + + final Element scxml = document.createElement("scxml"); + scxml.setAttribute("xmlns", "http://www.w3.org/2005/07/scxml"); + scxml.setAttribute("version", "1.0"); + final String initial = getInitial(); + if (initial != null) { + scxml.setAttribute("initial", initial); + } + document.appendChild(scxml); + + for (final IEntity ent : diagram.getLeafsvalues()) { + scxml.appendChild(createState(ent)); + } + + } + + private String getInitial() { + for (final IEntity ent : diagram.getLeafsvalues()) { + if (ent.getEntityType() == LeafType.CIRCLE_START) { + return getId(ent); + } + } + return null; + } + + private Element createState(IEntity entity) { + final Element state = document.createElement("state"); + state.setAttribute("id", getId(entity)); + for (final Link link : diagram.getLinks()) { + if (link.getEntity1() == entity) { + addLink(state, link); + } + } + return state; + } + + private void addLink(Element state, Link link) { + final Element transition = document.createElement("transition"); + final Display label = link.getLabel(); + if (Display.isNull(label) == false) { + final String event = label.get(0).toString(); + transition.setAttribute("event", event); + } + transition.setAttribute("target", getId(link.getEntity2())); + state.appendChild(transition); + + } + + private String getId(IEntity entity) { + String result = entity.getDisplay().get(0).toString(); + result = result.replaceAll("\\*", ""); + return result; + } + + public void transformerXml(OutputStream os) throws TransformerException, ParserConfigurationException { + final Source source = new DOMSource(document); + + final Result resultat = new StreamResult(os); + + final TransformerFactory fabrique = TransformerFactory.newInstance(); + final Transformer transformer = fabrique.newTransformer(); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); + transformer.transform(source, resultat); + } + +} diff -Nru plantuml-8024/src/net/sourceforge/plantuml/xmlsc/StateDiagramScxmlMaker.java plantuml-8039/src/net/sourceforge/plantuml/xmlsc/StateDiagramScxmlMaker.java --- plantuml-8024/src/net/sourceforge/plantuml/xmlsc/StateDiagramScxmlMaker.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/net/sourceforge/plantuml/xmlsc/StateDiagramScxmlMaker.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,70 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package net.sourceforge.plantuml.xmlsc; + +import java.io.IOException; +import java.io.OutputStream; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import net.sourceforge.plantuml.Log; +import net.sourceforge.plantuml.statediagram.StateDiagram; + +public final class StateDiagramScxmlMaker { + + private final StateDiagram diagram; + + public StateDiagramScxmlMaker(StateDiagram diagram) throws IOException { + this.diagram = diagram; + } + + public void createFiles(OutputStream fos) throws IOException { + try { + final ScxmlStateDiagramStandard xmi; + xmi = new ScxmlStateDiagramStandard(diagram); + xmi.transformerXml(fos); + } catch (ParserConfigurationException e) { + Log.error(e.toString()); + e.printStackTrace(); + throw new IOException(e.toString()); + } catch (TransformerException e) { + Log.error(e.toString()); + e.printStackTrace(); + throw new IOException(e.toString()); + } + } + +} diff -Nru plantuml-8024/src/smetana/core/ACCESS.java plantuml-8039/src/smetana/core/ACCESS.java --- plantuml-8024/src/smetana/core/ACCESS.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/ACCESS.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,44 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +public interface ACCESS { + + O get(); + + void set(O obj); + +} diff -Nru plantuml-8024/src/smetana/core/AllH.java plantuml-8039/src/smetana/core/AllH.java --- plantuml-8024/src/smetana/core/AllH.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/AllH.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,48 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import h.*; + +public interface AllH extends Agraph_s, Agobj_s, Agrec_s, Agdesc_s, Agmemdisc_s, Agclos_s, Agiddisc_s, _dtmethod_s, + _dtdisc_s, _dt_s, _dtdata_s, refstr_t, _dtlink_s, Agdatadict_s, Agattr_s, Agsubnode_s, Agnode_s, Agtag_s, + Agedge_s, Agedgepair_s, Agsym_s, GVC_s, gvlayout_features_t, gvlayout_engine_s, gvplugin_installed_t, pointf, + pack_info, aspect_t, fontinfo, shape_functions, polygon_t, shape_desc, textlabel_t, IMapEntry_t, textspan_t, + textfont_t, point, port, elist, Dtmemory_f, nlist_t, nodequeue, Agnodeinfo_t, Agedgeinfo_t, spline_info_t, + splineInfo, path, pathend_t, boxf, Ppoly_t, pointnlink_t, deque_t, triangle_t, tna_t, Pedge_t, splines, bezier, + inside_t, arrowdir_t, arrowtype_t, label_params_t, object_t, xlabel_t, adjmatrix_t { + +} diff -Nru plantuml-8024/src/smetana/core/amiga/AreaDouble.java plantuml-8039/src/smetana/core/amiga/AreaDouble.java --- plantuml-8024/src/smetana/core/amiga/AreaDouble.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/amiga/AreaDouble.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,60 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core.amiga; + +public class AreaDouble implements Area { + + private double data = 0; + + public void memcopyFrom(Area source) { + AreaDouble other = (AreaDouble) source; + this.data = other.data; + } + + public void setInternal(double newData) { + this.data = newData; + } + + public double getInternal() { + return data; + } + + @Override + public String toString() { + return super.toString() + " " + data; + } + +} diff -Nru plantuml-8024/src/smetana/core/amiga/AreaInt.java plantuml-8039/src/smetana/core/amiga/AreaInt.java --- plantuml-8024/src/smetana/core/amiga/AreaInt.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/amiga/AreaInt.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,81 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core.amiga; + +public class AreaInt implements Area { + + private int data = 0; + + private final int UID = StarStruct.CPT++; + + private String getUID36() { + return Integer.toString(UID, 36); + } + + @Override + public String toString() { + return "AreaArray " + getUID36() + " " + data; + } + + public void memcopyFrom(Area source) { + AreaInt other = (AreaInt) source; + this.data = other.data; + } + + public void setInternal(int data) { + this.data = data; + if (trace()) { + System.err.println("set I AM " + this); + } + } + + private boolean trace() { + return false; + //return getUID36().equals("2z7"); + } + + public int getInternal() { + if (trace()) { + // System.err.println("get I AM " + this); + } + return data; + } + + // public void incInternal(int increment) { + // data += increment; + // + // } +} diff -Nru plantuml-8024/src/smetana/core/amiga/Area.java plantuml-8039/src/smetana/core/amiga/Area.java --- plantuml-8024/src/smetana/core/amiga/Area.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/amiga/Area.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,42 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core.amiga; + +public interface Area { + + void memcopyFrom(Area source); + +} diff -Nru plantuml-8024/src/smetana/core/amiga/BucketToAreaFactory.java plantuml-8039/src/smetana/core/amiga/BucketToAreaFactory.java --- plantuml-8024/src/smetana/core/amiga/BucketToAreaFactory.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/amiga/BucketToAreaFactory.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,159 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core.amiga; + +import smetana.core.Bucket; +import smetana.core.CType; +import smetana.core.JUtils; +import smetana.core.__array_of_double__; +import smetana.core.__array_of_integer__; +import smetana.core.__array_of_ptr__; +import smetana.core.__array_of_struct__; + +public class BucketToAreaFactory { + + public static Area createArea(Bucket bucket, StarStruct parent) { + if (bucket.ctype.getArrayLength() != 0) { + return createAreaArray(bucket, bucket.ctype.getArrayLength()); + } + if (bucket.ctype.functionPointer()) { + // return PointerToNull.nullPointerTo(); + // return new AreaFunctionPointer(); + return null; + } + if (bucket.ctype.isIntStar()) { + return null; + } + if (bucket.ctype.isDoubleStar()) { + return null; + } + if (bucket.ctype.isVoidStar()) { + return null; + // return PointerToNull.nullPointerTo(); + // return new AreaVoidStar(); + } + if (bucket.ctype.containsStar()) { + final String type = bucket.ctype.getType(); + if (type.matches("\\w+\\*")) { + final Class theClass = CType.getClassFrom(type.substring(0, type.length() - 1)); + JUtils.LOG("theClass=" + theClass); + // return PointerToNull.nullPointerTo(); + return null; + } + throw new UnsupportedOperationException(bucket.toString()); + } + if (bucket.ctype.isEnum()) { + return new AreaInt(); + } + if (bucket.ctype.isPrimitive()) { + if (bucket.ctype.isInteger()) { + return new AreaInt(); + } + if (bucket.ctype.isChar()) { + return new AreaInt(); + } + if (bucket.ctype.isShort()) { + return new AreaInt(); + } + if (bucket.ctype.isLong()) { + return new AreaInt(); + } + if (bucket.ctype.isBoolean()) { + return new AreaInt(); + } + if (bucket.ctype.isDoubleOrFloat()) { + return new AreaDouble(); + } + throw new UnsupportedOperationException(); + } + if (bucket.inlineStruct()) { + final Class theClass = bucket.ctype.getTypeClass(); + return new StarStruct(theClass, parent); + } + if (bucket.ctype.isArrayOfCString()) { + return null; + } + if (bucket.ctype.isCString()) { + // return new AreaCString(); + // return PointerToNull.nullPointerTo(); + return null; + } + final Class theClass = bucket.ctype.getTypeClass(); + if (theClass != null) { + return null; + // return PointerToNull.nullPointerTo(); + } + JUtils.LOG("BucketToAreaFactory:: theClass = " + theClass); + JUtils.LOG("BucketToAreaFactory:: bucket=" + bucket); + JUtils.LOG("BucketToAreaFactory:: bucket.ctype=" + bucket.ctype); + throw new UnsupportedOperationException(); + } + + private static Area createAreaArray(Bucket bucket, int arrayLength) { + JUtils.LOG("BucketToAreaFactory:createAreaArray: bucket=" + bucket); + JUtils.LOG("BucketToAreaFactory:createAreaArray: arrayLength=" + arrayLength); + JUtils.LOG("BucketToAreaFactory:createAreaArray: type=" + bucket.ctype); + if (bucket.ctype.getType().matches("char \\w+\\[\\d+\\]")) { + // Array of char + return __array_of_integer__.mallocInteger(arrayLength); + } + if (bucket.ctype.getType().matches("int \\w+\\[\\d+\\]")) { + // Array of int + return __array_of_integer__.mallocInteger(arrayLength); + } + if (bucket.ctype.getType().matches("double \\w+\\[\\d+\\]")) { + // Array of double + return __array_of_double__.mallocDouble(arrayLength); + } + if (bucket.ctype.getType().matches("\\w+ \\*\\w+\\[\\d+\\]")) { + // Array of pointer + final String element = bucket.ctype.getType().split(" ")[0]; + JUtils.LOG("element=" + element); + final Class theClass = CType.getClassFrom(element); + JUtils.LOG("theClass=" + theClass); + return __array_of_ptr__.malloc_empty(arrayLength); + } + if (bucket.ctype.getType().matches("\\w+ \\w+\\[\\d+\\]")) { + // Array of Struct + final String element = bucket.ctype.getType().split(" ")[0]; + JUtils.LOG("element=" + element); + final Class theClass = CType.getClassFrom(element); + JUtils.LOG("theClass=" + theClass); + return __array_of_struct__.malloc(theClass, arrayLength); + } + throw new UnsupportedOperationException(); + } +} diff -Nru plantuml-8024/src/smetana/core/amiga/BuilderArea.java plantuml-8039/src/smetana/core/amiga/BuilderArea.java --- plantuml-8024/src/smetana/core/amiga/BuilderArea.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/amiga/BuilderArea.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,42 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core.amiga; + +public interface BuilderArea { + + public Area createArea(); + +} diff -Nru plantuml-8024/src/smetana/core/amiga/StarArrayOfCString.java plantuml-8039/src/smetana/core/amiga/StarArrayOfCString.java --- plantuml-8024/src/smetana/core/amiga/StarArrayOfCString.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/amiga/StarArrayOfCString.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,72 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core.amiga; + +import smetana.core.AllH; +import smetana.core.UnsupportedC; +import smetana.core.__array_of_cstring__; +import smetana.core.__ptr__; + +public class StarArrayOfCString extends UnsupportedC implements Area, AllH { + + private final __array_of_cstring__ array; + + public StarArrayOfCString(__array_of_cstring__ array) { + this.array = array; + } + + public void realloc(int nb) { + array.realloc(nb); + } + + public String getUID36() { + return array.getUID36(); + } + + public void memcopyFrom(Area source) { + throw new UnsupportedOperationException(); + } + + public final __array_of_cstring__ getInternalArray() { + return array; + } + + public __ptr__ plus(int pointerMove) { + return new StarArrayOfCString(array.move(pointerMove)); + } + + +} diff -Nru plantuml-8024/src/smetana/core/amiga/StarArrayOfInteger.java plantuml-8039/src/smetana/core/amiga/StarArrayOfInteger.java --- plantuml-8024/src/smetana/core/amiga/StarArrayOfInteger.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/amiga/StarArrayOfInteger.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,86 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core.amiga; + +import smetana.core.AllH; +import smetana.core.UnsupportedC; +import smetana.core.__array_of_integer__; +import smetana.core.__array_of_ptr__; +import smetana.core.__ptr__; + +public class StarArrayOfInteger extends UnsupportedC implements Area, AllH { + + private final __array_of_integer__ array; + + public StarArrayOfInteger(__array_of_integer__ array) { + this.array = array; + } + + public void realloc(int nb) { + array.realloc(nb); + } + + public String getUID36() { + return array.getUID36(); + } + + public void memcopyFrom(Area source) { + throw new UnsupportedOperationException(); + } + + public final __array_of_integer__ getInternalArray() { + return array; + } + + public __ptr__ plus(int pointerMove) { + return new StarArrayOfInteger(array.move(pointerMove)); + } + + public void setInt(int value) { + array.setInt(value); + } + + public int getInt() { + return array.getInt(); + } + + + public void swap(int i, int j) { + ((__array_of_integer__) array).swap(i, j); + + } + +} diff -Nru plantuml-8024/src/smetana/core/amiga/StarArrayOfPtr.java plantuml-8039/src/smetana/core/amiga/StarArrayOfPtr.java --- plantuml-8024/src/smetana/core/amiga/StarArrayOfPtr.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/amiga/StarArrayOfPtr.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,190 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core.amiga; + +import smetana.core.AllH; +import smetana.core.UnsupportedC; +import smetana.core.__array_of_ptr__; +import smetana.core.__array_of_struct__; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class StarArrayOfPtr extends UnsupportedC implements Area, AllH { + + private final __array_of_ptr__ array; + + public StarArrayOfPtr(__array_of_ptr__ array) { + this.array = array; + } + + public void realloc(int nb) { + array.realloc(nb); + } + + public String getUID36() { + return array.getUID36(); + } + + public void memcopyFrom(Area source) { + throw new UnsupportedOperationException(); + } + + public final __array_of_ptr__ getInternalArray() { + return array; + } + + public __ptr__ plus(int pointerMove) { + return new StarArrayOfPtr(array.move(pointerMove)); + } + + public void setInt(int value) { + array.setInt(value); + } + + public int getInt() { + return array.getInt(); + } + + public __struct__ getStruct() { + return array.getStruct(); + } + + public void copyDataFrom(__struct__ other) { + ((StarStruct) array.getInternal(0)).copyDataFrom(other); + } + + public void setPtr(__ptr__ value) { + array.setPtr(value); + } + + public int minus(__ptr__ other) { + StarArrayOfPtr other2 = (StarArrayOfPtr) other; + int res = array.comparePointerInternal(other2.array); + return res; + } + + public void setStruct(__struct__ value) { + array.setStruct(value); + } + + public __ptr__ getPtr() { + return array.getPtr(); + } + + public __ptr__ getPtrForEquality() { + return array.getStruct().amp(); + } + + public int comparePointer(__ptr__ other) { + return array.comparePointerInternal(((StarArrayOfPtr) other).array); + } + + public boolean isSameThan(StarArrayOfPtr other) { + return array.comparePointerInternal(other.array) == 0; + } + + // Fieldname + public void setStruct(String fieldName, __struct__ data) { + ((__ptr__) array.getInternal(0)).setStruct(fieldName, data); + } + + public __ptr__ setPtr(String fieldName, __ptr__ data) { + final Area tmp1 = array.getInternal(0); + if (tmp1 instanceof __struct__) { + return ((__struct__) tmp1).setPtr(fieldName, data); + } + return ((__ptr__) tmp1).setPtr(fieldName, data); + } + + public void setInt(String fieldName, int data) { + ((__ptr__) array.getInternal(0)).setInt(fieldName, data); + } + + public __ptr__ getPtr(String fieldName) { + final Area tmp1 = array.getInternal(0); + if (tmp1 instanceof __struct__) { + return ((__struct__) tmp1).getPtr(fieldName); + } + return ((__ptr__) tmp1).getPtr(fieldName); + } + + public __struct__ getStruct(String fieldName) { + return ((__ptr__) array.getInternal(0)).getStruct(fieldName); + } + + public void setDouble(String fieldName, double data) { + ((__ptr__) array.getInternal(0)).setDouble(fieldName, data); + } + + public int getInt(String fieldName) { + final Area tmp1 = array.getInternal(0); + if (tmp1 instanceof __struct__) { + return ((__struct__) tmp1).getInt(fieldName); + } + return ((__ptr__) tmp1).getInt(fieldName); + } + + public __array_of_struct__ getArrayOfStruct(String fieldName) { + return ((__ptr__) array.getInternal(0)).getArrayOfStruct(fieldName); + } + + public __array_of_ptr__ getArrayOfPtr(String fieldName) { + return ((__ptr__) array.getInternal(0)).getArrayOfPtr(fieldName); + } + + public boolean getBoolean(String fieldName) { + return ((__ptr__) array.getInternal(0)).getBoolean(fieldName); + } + + public void setBoolean(String fieldName, boolean value) { + ((__ptr__) array.getInternal(0)).setBoolean(fieldName, value); + } + + + public __ptr__ castTo(Class dest) { + return ((__ptr__) array.getInternal(0)).castTo(dest); + } + + + public double getDouble(String fieldName) { + final Area tmp1 = array.getInternal(0); + if (tmp1 instanceof __struct__) { + return ((__struct__) tmp1).getDouble(fieldName); + } + return ((__ptr__) tmp1).getDouble(fieldName); + } + +} diff -Nru plantuml-8024/src/smetana/core/amiga/StarArrayOfStruct.java plantuml-8039/src/smetana/core/amiga/StarArrayOfStruct.java --- plantuml-8024/src/smetana/core/amiga/StarArrayOfStruct.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/amiga/StarArrayOfStruct.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,129 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core.amiga; + +import smetana.core.AllH; +import smetana.core.UnsupportedC; +import smetana.core.__array_of_struct__; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class StarArrayOfStruct extends UnsupportedC implements Area, AllH { + + private final __array_of_struct__ array; + + public StarArrayOfStruct(__array_of_struct__ array) { + this.array = array; + } + + public void realloc(int nb) { + array.realloc(nb); + } + + public String getUID36() { + return array.getUID36(); + } + + public void memcopyFrom(Area source) { + throw new UnsupportedOperationException(); + } + + public final __array_of_struct__ getInternalArray() { + return array; + } + + public __ptr__ plus(int pointerMove) { + return new StarArrayOfStruct(array.move(pointerMove)); + } + + public __struct__ getStruct() { + return array.getStruct(); + } + + public __ptr__ getPtr() { + return array.getPtr(); + } + + public int minus(__ptr__ other) { + StarArrayOfStruct other2 = (StarArrayOfStruct) other; + int res = array.comparePointerInternal(other2.array); + return res; + } + + public void setStruct(__struct__ value) { + array.setStruct(value); + } + + public __ptr__ getPtrForEquality() { + return array.getStruct().amp(); + } + + public int comparePointer(__ptr__ other) { + return array.comparePointerInternal(((StarArrayOfStruct) other).array); + } + + public boolean isSameThan(StarArrayOfStruct other) { + return array.comparePointerInternal(other.array) == 0; + } + + // Fieldname + + public __ptr__ setPtr(String fieldName, __ptr__ data) { + final Area tmp1 = array.getInternal(0); + return ((__struct__) tmp1).setPtr(fieldName, data); + } + + public __ptr__ getPtr(String fieldName) { + final Area tmp1 = array.getInternal(0); + return ((__struct__) tmp1).getPtr(fieldName); + } + + public int getInt(String fieldName) { + final Area tmp1 = array.getInternal(0); + return ((__struct__) tmp1).getInt(fieldName); + } + + public double getDouble(String fieldName) { + final Area tmp1 = array.getInternal(0); + return ((__struct__) tmp1).getDouble(fieldName); + } + + public void setDouble(String fieldName, double data) { + final Area tmp1 = array.getInternal(0); + ((__struct__) tmp1).setDouble(fieldName, data); + } + +} diff -Nru plantuml-8024/src/smetana/core/amiga/StarStar.java plantuml-8039/src/smetana/core/amiga/StarStar.java --- plantuml-8024/src/smetana/core/amiga/StarStar.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/amiga/StarStar.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,117 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core.amiga; + +import smetana.core.UnsupportedC; +import smetana.core.__array_of_ptr__; +import smetana.core.__ptr__; + +public class StarStar extends UnsupportedC implements Area { + + private Area area; + + StarStar(Area area) { + this.area = area; + } + + public static StarStar array_of_array_of_something_empty(final Class cl, int nb) { + // if (allocated) { + // return new StarStar(__array__.malloc(cl, nb)); + // } + return new StarStar(__array_of_ptr__.malloc_empty(nb)); + } + + public String toString() { + return "->" + area; + } + + Area getArea() { + return area; + } + + public void swap(int i, int j) { + ((__array_of_ptr__) area).swap(i, j); + + } + + public void memcopyFrom(Area source) { + StarStar other = (StarStar) source; + this.area = other.area; + } + + // public __ptr__ getBracket(int idx) { + // return ((AreaArray) area).getBracket(idx); + // } + // + public void realloc(int nb) { + ((__array_of_ptr__) area).realloc(nb); + } + + // + // // __c__ + // public void setBracket(int idx, Object data) { + // ((AreaArray) area).setBracket(idx, data); + // } + // + // public __ptr__ plus(int pointerMove) { + // return ((AreaArray) area).plus(pointerMove); + // } + + public __ptr__ plus(int pointerMove) { + return new StarStar(((__array_of_ptr__) area).move(pointerMove)); + } + + public __ptr__ getPtr(String fieldName) { + return ((__array_of_ptr__) area).asPtr().getPtr(fieldName); + } + + public __ptr__ getPtr() { + return (__ptr__) ((__array_of_ptr__) area).getInternal(0); + } + + public void setPtr(__ptr__ value) { + ((__array_of_ptr__) area).setInternalByIndex(0, (Area) value); + } + + public void setDouble(String fieldName, double data) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public int comparePointer(__ptr__ other) { + return ((__array_of_ptr__) area).comparePointerInternal(((__array_of_ptr__) ((StarStar) other).area)); + } + +} diff -Nru plantuml-8024/src/smetana/core/amiga/StarStruct.java plantuml-8039/src/smetana/core/amiga/StarStruct.java --- plantuml-8024/src/smetana/core/amiga/StarStruct.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/amiga/StarStruct.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,648 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core.amiga; + +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; + +import smetana.core.AllH; +import smetana.core.Bucket; +import smetana.core.CFunction; +import smetana.core.CFunctionImpl; +import smetana.core.CObject; +import smetana.core.CString; +import smetana.core.JUtils; +import smetana.core.MutableDoublePtr; +import smetana.core.OFFSET; +import smetana.core.StructureDefinition; +import smetana.core.UnsupportedC; +import smetana.core.__array_of_cstring__; +import smetana.core.__array_of_integer__; +import smetana.core.__array_of_ptr__; +import smetana.core.__array_of_struct__; +import smetana.core.__ptr__; +import smetana.core.__struct__; + +public class StarStruct extends UnsupportedC implements Area, AllH { + + public static int CPT = 0; + + private final int UID = CPT++; + private final Map fields; + private final Set inlineFields = new HashSet(); + private final StarStruct parent; + private final Class theClass; + + public boolean isSameThan(StarStruct other) { + return this.UID == other.UID; + } + + @Override + public String toString() { + return "StarStruct " + getUID36() + " " + theClass + " " + fields.keySet() + " {parent=" + parent + "}"; + } + + public static StarStruct malloc(Class cl) { + return new StarStruct(cl, null); + } + + public Class getRealClass() { + return theClass; + } + + private int getIndexOf(Area searched) { + int i = 0; + for (Area a : fields.values()) { + if (a == searched) { + return i; + } + i++; + } + throw new IllegalArgumentException(); + } + + private Area getAreaByIndex(int idx) { + int i = 0; + for (Area a : fields.values()) { + if (i == idx) { + return a; + } + i++; + } + throw new IllegalArgumentException(); + } + + public __struct__ getStruct() { + return new __struct__(this); + } + + public StarStruct(Class theClass, StarStruct parent) { + this.parent = parent; + this.theClass = theClass; + this.fields = new LinkedHashMap(); + JUtils.LOG("Creation Struct " + getUID36()); + if (getUID36().equals("2tg")) { + JUtils.LOG("It's me"); + } + final StructureDefinition structureDefinition = StructureDefinition.from(theClass); + final Map bucketsMap = structureDefinition.getBucketsMap(); + + JUtils.LOG("FIELDS = " + theClass + " " + bucketsMap.keySet()); + for (Map.Entry ent : bucketsMap.entrySet()) { + // JUtils.LOG("AreaStruct entrie=" + ent.getKey()); + final Bucket bucket = ent.getValue(); + fields.put(bucket.name, BucketToAreaFactory.createArea(bucket, this)); + if (bucket.inlineStruct() && bucket.functionPointer() == false) { + inlineFields.add(bucket.name); + } + } + } + + public Area getArea(String name) { + if (fields.containsKey(name) == false) { + System.err.println("fields=" + fields.keySet()); + throw new IllegalArgumentException("No such field " + name); + } + final Area result = fields.get(name); + return result; + } + + public String getUID36() { + return Integer.toString(UID, 36); + } + + // __c__ + + public String getDebug(String fieldName) { + throw new UnsupportedOperationException(); + } + + public void setInt(String fieldName, int data) { + final AreaInt area = (AreaInt) getArea(fieldName); + area.setInternal(data); + } + + public void setBoolean(String fieldName, boolean data) { + final AreaInt area = (AreaInt) getArea(fieldName); + area.setInternal(data ? 1 : 0); + } + + public void setDouble(String fieldName, double data) { + // if (fieldName.equals("x") && Math.round(data) == 54) { + // System.err.println("setDoubleTrace 54!!"); + // } + final AreaDouble area = (AreaDouble) getArea(fieldName); + area.setInternal(data); + } + + public int getInt(String fieldName) { + final AreaInt area = (AreaInt) getArea(fieldName); + return area.getInternal(); + } + + public double getDouble(String fieldName) { + final AreaDouble area = (AreaDouble) getArea(fieldName); + return area.getInternal(); + } + + public boolean getBoolean(String fieldName) { + final AreaInt area = (AreaInt) getArea(fieldName); + if (area == null) { + return false; + } + return area.getInternal() != 0; + } + + // public int getArrayAsInt(String fieldName, int idx) { + // final AreaArray tab = (AreaArray) getArea(fieldName); + // final AreaInt area = (AreaInt) tab.getInternal(idx); + // return area.getInternal(); + // } + // + // public __ptr__ getArray(String fieldName, int idx) { + // Area tab = getArea(fieldName); + // if (tab instanceof AreaArray) { + // final Area area = ((AreaArray) tab).getInternal(idx); + // return (__ptr__) area; + // } + // if (tab instanceof StarStar) { + // final Area area = ((AreaArray) ((StarStar) tab).getArea()).getInternal(idx); + // return (__ptr__) area; + // } + // throw new UnsupportedOperationException(); + // } + // + // public void setArrayAsCString(String fieldName, int idx, CString value) { + // Area area = getArea(fieldName); + // if (area instanceof CObject) { + // area = ((CObject) area).convertToAreaArray(); + // fields.put(fieldName, area); + // } + // final AreaArray tab = (AreaArray) area; + // tab.setInternalByIndex(idx, value); + // } + // + // public CString getArrayAsCString(String fieldName, int idx) { + // final AreaArray tab = (AreaArray) getArea(fieldName); + // return (CString) tab.getInternal(idx); + // } + // + // public void setArrayAsInt(String fieldName, int idx, int value) { + // final AreaArray tab = (AreaArray) getArea(fieldName); + // final AreaInt area = (AreaInt) tab.getInternal(idx); + // area.setInternal(value); + // } + // + // public void setArray(String fieldName, int idx, Object data) { + // JUtils.LOG("---------- set " + fieldName); + // JUtils.LOG("I AM " + this); + // Area area = getArea(fieldName); + // JUtils.LOG("area1 " + area); + // final AreaArray tab; + // if (area instanceof StarStar) { + // tab = (AreaArray) ((StarStar) area).getArea(); + // } else { + // tab = ((AreaArray) area); + // } + // JUtils.LOG("tab " + tab); + // tab.setBracket(idx, data); + // } + + public __ptr__ plus(int pointerMove) { + JUtils.LOG("******************* plus =" + pointerMove); + JUtils.LOG("me=" + this); + if (parent != null) { + int idx = parent.getIndexOf(this); + JUtils.LOG("idx=" + idx); + idx += pointerMove; + final Area result = parent.getAreaByIndex(idx); + JUtils.LOG("result=" + result); + return (__ptr__) result; + } + throw new UnsupportedOperationException(getClass().toString()); + } + + public CString getCString(String fieldName) { + return (CString) getArea(fieldName); + } + + // public __array__ getArray(String fieldName) { + // Area area = getArea(fieldName); + // if (area instanceof StarArray) { + // area = ((StarArray) area).getInternalArray(); + // } else if (area instanceof StarStar) { + // area = ((StarStar) area).getArea(); + // } + // return (__array__) area; + // } + + public __array_of_struct__ getArrayOfStruct(String fieldName) { + Area area = getArea(fieldName); + if (area instanceof StarArrayOfStruct) { + return ((StarArrayOfStruct) area).getInternalArray(); + } + return (__array_of_struct__) area; + } + + public __array_of_ptr__ getArrayOfPtr(String fieldName) { + Area area = getArea(fieldName); + if (area instanceof StarStar) { + return (__array_of_ptr__) ((StarStar) area).getArea(); + } + if (area instanceof StarArrayOfPtr) { + return (__array_of_ptr__) ((StarArrayOfPtr) area).getInternalArray(); + } + return (__array_of_ptr__) area; + } + + public __array_of_cstring__ getArrayOfCString(String fieldName) { + Area area = getArea(fieldName); + if (area instanceof StarArrayOfCString) { + return ((StarArrayOfCString) area).getInternalArray(); + } + return (__array_of_cstring__) area; + } + + public __array_of_integer__ getArrayOfInteger(String fieldName) { + Area area = getArea(fieldName); + if (area instanceof StarArrayOfInteger) { + return ((StarArrayOfInteger) area).getInternalArray(); + } + return (__array_of_integer__) area; + } + + public __struct__ getStruct(String fieldName) { + // if (getArea(fieldName) instanceof __array__) { + // return ((__array__) getArea(fieldName)).getStruct(0); + // } + if (getArea(fieldName) != null && getArea(fieldName) instanceof __ptr__ == false) { + throw new IllegalArgumentException("Issue in getStruct with " + fieldName + " " + + getArea(fieldName).getClass()); + } + final __ptr__ area = (__ptr__) getArea(fieldName); + // if (area instanceof StarArray) { + // final __array__ array = ((StarArray) area).getInternalArray(); + // return new __struct__<__ptr__>((StarStruct) array.getInternal(0)); + // } + if (area instanceof StarStruct == false) { + throw new IllegalStateException(area.getClass().toString()); + } + if (area instanceof StarStruct && this.inlineFields.contains(fieldName) == false) { + throw new IllegalArgumentException(fieldName + " is NOT inline!"); + } + return new __struct__<__ptr__>((StarStruct) area); + } + + public __ptr__ getPtr(String fieldName) { + if (getArea(fieldName) != null && getArea(fieldName) instanceof __ptr__ == false) { + throw new IllegalArgumentException("Issue in getStruct with " + fieldName + " " + + getArea(fieldName).getClass()); + } + final __ptr__ area = (__ptr__) getArea(fieldName); + if (area == null) { + return null; + } + if (area instanceof StarStruct == false && area instanceof CFunctionImpl == false + && area instanceof CString == false && area instanceof StarStar == false + && area instanceof StarArrayOfPtr == false && area instanceof StarArrayOfStruct == false + && area instanceof StarArrayOfInteger == false && area instanceof MutableDoublePtr == false + /* && area instanceof AreaArray == false */) { + throw new IllegalStateException(area.getClass().toString()); + } + + if (area instanceof StarStruct && this.inlineFields.contains(fieldName)) { + throw new IllegalArgumentException(fieldName + " is inline!"); + } + return area; + } + + public void setStruct(String fieldName, __struct__ newData) { + if (newData == null) { + throw new IllegalArgumentException(); + } + if (inlineFields.contains(fieldName) == false) { + throw new UnsupportedOperationException("IMPOSSIBLE2 " + fieldName); + } + final StarStruct existing = (StarStruct) fields.get(fieldName); + if (existing == null) { + throw new UnsupportedOperationException("IMPOSSIBLE3 " + fieldName); + } + existing.copyDataFrom(newData); + } + + public void setCString(String fieldName, CString newData) { + if (newData == null) { + fields.put(fieldName, null); + } else { + fields.put(fieldName, (Area) newData); + ((CString) newData).setMyFather(this); + } + } + + public __ptr__ setPtr(String fieldName, __ptr__ newData) { + if (newData instanceof CFunction) { + fields.put(fieldName, (Area) newData); + return newData; + } + if (inlineFields.contains(fieldName)) { + throw new UnsupportedOperationException("IMPOSSIBLE5 " + fieldName); + } + if (newData == null) { + fields.put(fieldName, null); + return null; + } + if (newData instanceof StarStruct) { + if (inlineFields.contains(fieldName)) { + throw new UnsupportedOperationException("IMPOSSIBLE1"); + } else { + fields.put(fieldName, (Area) newData); + } + return newData; + } + if (newData instanceof CString) { + fields.put(fieldName, (Area) newData); + ((CString) newData).setMyFather(this); + return newData; + } + if (newData instanceof StarArrayOfPtr) { + fields.put(fieldName, (Area) newData); + return newData; + } + if (newData instanceof StarArrayOfStruct) { + fields.put(fieldName, (Area) newData); + return newData; + } + if (newData instanceof StarStar) { + fields.put(fieldName, (Area) newData); + return newData; + } + if (newData instanceof StarArrayOfCString) { + fields.put(fieldName, (Area) newData); + return newData; + } + if (newData instanceof MutableDoublePtr) { + fields.put(fieldName, (Area) newData); + return newData; + } + if (newData instanceof StarArrayOfInteger) { + fields.put(fieldName, (Area) newData); + return newData; + } + // if (newData instanceof AreaArray) { + // fields.put(fieldName, (Area) newData); + // return newData; + // } + throw new UnsupportedOperationException("en cours1 ! " + newData.getClass()); + } + + private Object setOld(String fieldName, Object newData) { + JUtils.LOG("set " + fieldName); + if (fields.containsKey(fieldName) == false) { + throw new IllegalArgumentException(); + } + if (newData == null) { + fields.put(fieldName, null); + return null; + } + final Area field = getArea(fieldName); + if (newData instanceof CFunction) { + fields.put(fieldName, (Area) newData); + return newData; + } + if (newData instanceof CString) { + fields.put(fieldName, (Area) newData); + ((CString) newData).setMyFather(this); + return newData; + } + if (newData instanceof Boolean) { + final AreaInt area = (AreaInt) field; + area.setInternal((Boolean) newData == true ? 1 : 0); + return newData; + } + if (newData instanceof Integer) { + final AreaInt area = (AreaInt) field; + area.setInternal((Integer) newData); + return newData; + } + if (newData instanceof Double) { + final AreaDouble area = (AreaDouble) field; + area.setInternal((Double) newData); + return newData; + } + if (newData instanceof StarStruct) { + StarStruct existing = (StarStruct) fields.get(fieldName); + if (inlineFields.contains(fieldName)) { + System.err.println("I AM " + this); + System.err.println("fieldName=" + fieldName); + System.err.println("existing=" + existing); + existing.copyDataFrom((__ptr__) newData); + } else { + fields.put(fieldName, (Area) newData); + } + return newData; + } + if (newData instanceof __struct__) { + return setPtr(fieldName, ((StarStruct) ((__struct__) newData).getInternalData())); + } + if (newData instanceof CObject) { + fields.put(fieldName, (Area) newData); + return newData; + } + // if (newData instanceof AreaArray) { + // fields.put(fieldName, (Area) newData); + // return newData; + // } + if (newData instanceof StarStar) { + fields.put(fieldName, (Area) newData); + return newData; + } + throw new UnsupportedOperationException(newData.getClass().toString()); + } + + public void memcopyFrom(Area source) { + if (source instanceof StarArrayOfPtr) { + final __array_of_ptr__ array = ((StarArrayOfPtr) source).getInternalArray(); + copyDataFrom((StarStruct) array.getInternal(0)); + } else if (source instanceof __struct__) { + copyDataFrom((__struct__) source); + } else { + copyDataFrom((StarStruct) source); + } + } + + public void copyDataFrom(__struct__ other) { + copyDataFrom(other.getInternalData()); + } + + public void setStruct(__struct__ value) { + copyDataFrom(value); + } + + public void copyDataFrom(__ptr__ arg) { + JUtils.LOG("copyDataFrom I AM " + this); + JUtils.LOG("other=" + arg); + JUtils.LOG("FIELDS=" + fields.keySet()); + if (this.getClass() != arg.getClass()) { + throw new UnsupportedOperationException(getClass().toString()); + } + StarStruct other = (StarStruct) arg; + if (fields.keySet().equals(other.fields.keySet()) == false) { + throw new IllegalStateException(); + } + for (String fieldName : new TreeSet(fields.keySet())) { + Area field = fields.get(fieldName); + final Area otherField = other.getArea(fieldName); + if (field == null && otherField == null) { + continue; + } + if (field == null) { + if (otherField instanceof StarStruct && inlineFields.contains(fieldName) == false) { + fields.put(fieldName, otherField); + } else if (otherField instanceof CString) { + fields.put(fieldName, otherField); + } else if (otherField instanceof StarStar) { + fields.put(fieldName, otherField); + } else if (otherField instanceof StarArrayOfPtr) { + fields.put(fieldName, otherField); + } else if (otherField instanceof CFunction) { + fields.put(fieldName, otherField); + } else if (otherField instanceof StarArrayOfStruct) { + fields.put(fieldName, otherField); + } else { + System.err.println("XX otherField = " + otherField); + throw new UnsupportedOperationException(otherField.getClass().toString()); + } + } else if (field instanceof AreaInt) { + field.memcopyFrom(otherField); + } else if (field instanceof AreaDouble) { + field.memcopyFrom(otherField); + } else if (field instanceof CString) { + field.memcopyFrom(otherField); + } else if (field instanceof StarStar) { + if (otherField == null) { + fields.put(fieldName, null); + } else { + field.memcopyFrom(otherField); + } + } else if (field instanceof StarStruct && inlineFields.contains(fieldName)) { + field.memcopyFrom(otherField); + } else if (field instanceof StarStruct && inlineFields.contains(fieldName) == false) { + fields.put(fieldName, otherField); + } else if (field instanceof StarArrayOfPtr) { + field.memcopyFrom(otherField); + } else { + System.err.println("fieldName=" + fieldName + " " + field); + System.err.println("otherField = " + otherField); + throw new UnsupportedOperationException(field.getClass().toString()); + } + } + } + + public Object call(String fieldName, Object... args) { + final CFunction area = (CFunction) getArea(fieldName); + return area.exe(args); + } + + public __ptr__ castTo(Class dest) { + JUtils.LOG("******************* castTo =" + dest); + JUtils.LOG("me=" + this); + if (theClass == dest) { + return this; + } + if (parent != null && parent.theClass == dest) { + JUtils.LOG("IT's my father!"); + return parent; + } + + final Area first = fields.values().iterator().next(); + JUtils.LOG("first=" + first); + if (first instanceof StarStruct) { + final StarStruct first2 = (StarStruct) first; + JUtils.LOG("first.parent=" + first2.parent); + if (first2.parent != this) { + throw new IllegalStateException(); + } + if (dest == first2.theClass) { + return first2; + } + } + throw new UnsupportedOperationException(); + } + + public Object addVirtualBytes(int virtualBytes) { + JUtils.LOG("#### addVirtualBytes " + virtualBytes); + if (virtualBytes == 0) { + return this; + } + JUtils.LOG("this=" + toString()); + if (virtualBytes < 0) { + final OFFSET offset = OFFSET.fromInt(-virtualBytes); + JUtils.LOG("OFFSET1=" + offset); + if (parent == null) { + throw new UnsupportedOperationException("No father! How to go back?"); + } + JUtils.LOG("father=" + parent); + if (parent.theClass != offset.getTheClass()) { + throw new UnsupportedOperationException("Bad class matching1!"); + } + final Object checking = parent.addVirtualBytes(-virtualBytes); + JUtils.LOG("checking=" + checking); + if (checking != this) { + throw new UnsupportedOperationException("Cheking fail!"); + } + return parent; + } + final OFFSET offset = OFFSET.fromInt(virtualBytes); + JUtils.LOG("OFFSET2=" + offset); + final String field = offset.getField(); + JUtils.LOG("field=" + field); + JUtils.LOG("fields=" + fields.keySet()); + final Area result = fields.get(field); + if (result == null && parent != null) { + return parent.addVirtualBytes(virtualBytes); + } + if (result == null) { + throw new UnsupportedOperationException(); + } + return result; + } + + // __c__ + +} diff -Nru plantuml-8024/src/smetana/core/__array_of_cstring__.java plantuml-8039/src/smetana/core/__array_of_cstring__.java --- plantuml-8024/src/smetana/core/__array_of_cstring__.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/__array_of_cstring__.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,153 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.util.ArrayList; +import java.util.List; + +import smetana.core.amiga.Area; +import smetana.core.amiga.BuilderArea; +import smetana.core.amiga.StarStruct; + +public class __array_of_cstring__ implements Area { + + private final List data; + private final int currentPos; + + private final int UID = StarStruct.CPT++; + + public String getUID36() { + return Integer.toString(UID, 36); + } + + public void swap(int i, int j) { + Area e1 = data.get(i); + Area e2 = data.get(j); + data.set(i, e2); + data.set(j, e1); + } + + @Override + public String toString() { + if (data.get(0) != null) { + return "__array__ " + getUID36() + " " + currentPos + "/" + data.size() + " " + data.get(0).toString(); + } + return "__array__ " + getUID36() + " " + currentPos + "/" + data.size(); + } + + public void realloc(int nb) { + while (data.size() < nb + currentPos) { + data.add(null); + } + } + + // public __ptr__ asPtr() { + // return new StarArray(this); + // } + + public int comparePointerInternal(__array_of_cstring__ other) { + if (this.data != other.data) { + throw new IllegalArgumentException(); + } + return this.currentPos - other.currentPos; + } + public static __array_of_cstring__ mallocStarChar(int nb) { + return new __array_of_cstring__(nb, new BuilderArea() { + public Area createArea() { + return null; + } + }); + } + + private __array_of_cstring__(List data, int currentPos) { + this.data = data; + this.currentPos = currentPos; + check(); + } + + private __array_of_cstring__(int size, BuilderArea builder) { + this.data = new ArrayList(); + this.currentPos = 0; + for (int i = 0; i < size; i++) { + final Area tmp = builder.createArea(); + data.add(tmp); + } + check(); + } + + private void check() { + if (getUID36().equals("194")) { + JUtils.LOG("It's me"); + } + } + + public __array_of_cstring__ move(int delta) { + return new __array_of_cstring__(data, currentPos + delta); + } + + public __array_of_cstring__ plus(int delta) { + return move(delta); + } + + public Area getInternal(int idx) { + return data.get(idx + currentPos); + } + + public void setInternalByIndex(int idx, Area value) { + if (value == this) { + throw new IllegalArgumentException(); + } + if (value instanceof __array_of_cstring__) { + throw new IllegalArgumentException(); + } + data.set(idx + currentPos, value); + } + + public void memcopyFrom(Area source) { + throw new UnsupportedOperationException(); + } + + // + + public CString getCString() { + return (CString) getInternal(0); + } + + public void setCString(CString value) { + setInternalByIndex(0, value); + } + +} diff -Nru plantuml-8024/src/smetana/core/__array_of_double__.java plantuml-8039/src/smetana/core/__array_of_double__.java --- plantuml-8024/src/smetana/core/__array_of_double__.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/__array_of_double__.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,138 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.util.ArrayList; +import java.util.List; + +import smetana.core.amiga.Area; +import smetana.core.amiga.AreaInt; +import smetana.core.amiga.BuilderArea; +import smetana.core.amiga.StarStruct; + +public class __array_of_double__ implements Area { + + private final List data; + private final int currentPos; + + private final int UID = StarStruct.CPT++; + + public String getUID36() { + return Integer.toString(UID, 36); + } + + public void swap(int i, int j) { + Area e1 = data.get(i); + Area e2 = data.get(j); + data.set(i, e2); + data.set(j, e1); + } + + @Override + public String toString() { + if (data.get(0) != null) { + return "__array__ " + getUID36() + " " + currentPos + "/" + data.size() + " " + data.get(0).toString(); + } + return "__array__ " + getUID36() + " " + currentPos + "/" + data.size(); + } + + public void realloc(int nb) { + while (data.size() < nb + currentPos) { + data.add(null); + } + } + + // public __ptr__ asPtr() { + // return new StarArray(this); + // } + + public int comparePointerInternal(__array_of_double__ other) { + if (this.data != other.data) { + throw new IllegalArgumentException(); + } + return this.currentPos - other.currentPos; + } + + public static __array_of_double__ mallocDouble(int nb) { + return new __array_of_double__(nb, new BuilderArea() { + public Area createArea() { + return new AreaInt(); + } + }); + } + + private __array_of_double__(List data, int currentPos) { + this.data = data; + this.currentPos = currentPos; + check(); + } + + private __array_of_double__(int size, BuilderArea builder) { + this.data = new ArrayList(); + this.currentPos = 0; + for (int i = 0; i < size; i++) { + final Area tmp = builder.createArea(); + data.add(tmp); + } + check(); + } + + private void check() { + if (getUID36().equals("194")) { + JUtils.LOG("It's me"); + } + } + + public __array_of_double__ move(int delta) { + return new __array_of_double__(data, currentPos + delta); + } + + public __array_of_double__ plus(int delta) { + return move(delta); + } + + public Area getInternal(int idx) { + return data.get(idx + currentPos); + } + + + public void memcopyFrom(Area source) { + throw new UnsupportedOperationException(); + } + + // + +} diff -Nru plantuml-8024/src/smetana/core/__array_of_integer__.java plantuml-8039/src/smetana/core/__array_of_integer__.java --- plantuml-8024/src/smetana/core/__array_of_integer__.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/__array_of_integer__.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,146 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.util.ArrayList; +import java.util.List; + +import smetana.core.amiga.Area; +import smetana.core.amiga.AreaInt; +import smetana.core.amiga.BuilderArea; +import smetana.core.amiga.StarStruct; + +public class __array_of_integer__ implements Area { + + private final List data; + private final int currentPos; + + private final int UID = StarStruct.CPT++; + + public String getUID36() { + return Integer.toString(UID, 36); + } + + public void swap(int i, int j) { + Area e1 = data.get(i); + Area e2 = data.get(j); + data.set(i, e2); + data.set(j, e1); + } + + @Override + public String toString() { + if (data.get(0) != null) { + return "__array__ " + getUID36() + " " + currentPos + "/" + data.size() + " " + data.get(0).toString(); + } + return "__array__ " + getUID36() + " " + currentPos + "/" + data.size(); + } + + public void realloc(int nb) { + while (data.size() < nb + currentPos) { + data.add(new AreaInt()); + } + } + + // public __ptr__ asPtr() { + // return new StarArray(this); + // } + + public int comparePointerInternal(__array_of_integer__ other) { + if (this.data != other.data) { + throw new IllegalArgumentException(); + } + return this.currentPos - other.currentPos; + } + + public static __array_of_integer__ mallocInteger(int nb) { + return new __array_of_integer__(nb, new BuilderArea() { + public Area createArea() { + return new AreaInt(); + } + }); + } + + private __array_of_integer__(List data, int currentPos) { + this.data = data; + this.currentPos = currentPos; + check(); + } + + private __array_of_integer__(int size, BuilderArea builder) { + this.data = new ArrayList(); + this.currentPos = 0; + for (int i = 0; i < size; i++) { + final Area tmp = builder.createArea(); + data.add(tmp); + } + check(); + } + + private void check() { + if (getUID36().equals("194")) { + JUtils.LOG("It's me"); + } + } + + public __array_of_integer__ move(int delta) { + return new __array_of_integer__(data, currentPos + delta); + } + + public __array_of_integer__ plus(int delta) { + return move(delta); + } + + public Area getInternal(int idx) { + return data.get(idx + currentPos); + } + + + public void memcopyFrom(Area source) { + throw new UnsupportedOperationException(); + } + + // + + public int getInt() { + return ((AreaInt) getInternal(0)).getInternal(); + } + + public void setInt(int value) { + ((AreaInt) getInternal(0)).setInternal(value); + } + +} diff -Nru plantuml-8024/src/smetana/core/__array_of_ptr__.java plantuml-8039/src/smetana/core/__array_of_ptr__.java --- plantuml-8024/src/smetana/core/__array_of_ptr__.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/__array_of_ptr__.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,225 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.util.ArrayList; +import java.util.List; + +import smetana.core.amiga.Area; +import smetana.core.amiga.AreaInt; +import smetana.core.amiga.BuilderArea; +import smetana.core.amiga.StarArrayOfPtr; +import smetana.core.amiga.StarStruct; + +public class __array_of_ptr__ implements Area { + + private final List data; + private final int currentPos; + private final BuilderArea builder; + + private final int UID = StarStruct.CPT++; + + public String getUID36() { + return Integer.toString(UID, 36); + } + + public void memcopyFrom(Area source) { + __array_of_ptr__ other = (__array_of_ptr__) source; + System.err.println("sizeMe=" + this.data.size()); + System.err.println("sizeOt=" + other.data.size()); + + throw new UnsupportedOperationException(); + } + + public void swap(int i, int j) { + Area e1 = data.get(i); + Area e2 = data.get(j); + data.set(i, e2); + data.set(j, e1); + } + + @Override + public String toString() { + if (data.get(0) != null) { + return "__array__ " + getUID36() + " " + currentPos + "/" + data.size() + " " + data.get(0).toString(); + } + return "__array__ " + getUID36() + " " + currentPos + "/" + data.size(); + } + + public void realloc(int nb) { + while (data.size() < nb + currentPos) { + data.add(builder.createArea()); + } + } + + public __ptr__ asPtr() { + return new StarArrayOfPtr(this); + } + + public int comparePointerInternal(__array_of_ptr__ other) { + if (this.data != other.data) { + throw new IllegalArgumentException(); + } + return this.currentPos - other.currentPos; + } + + public static __array_of_ptr__ malloc_allocated(final Class cl, int nb) { + return new __array_of_ptr__(nb, new BuilderArea() { + public Area createArea() { + return new StarStruct(cl, null); + } + }); + } + + public static __array_of_ptr__ malloc_empty(int nb) { + return new __array_of_ptr__(nb, new BuilderArea() { + public Area createArea() { + return null; + } + }); + } + + private __array_of_ptr__(List data, int currentPos, BuilderArea builderArea) { + this.data = data; + this.currentPos = currentPos; + this.builder = builderArea; + check(); + } + + private __array_of_ptr__(int size, BuilderArea builder) { + this.data = new ArrayList(); + this.builder = builder; + this.currentPos = 0; + for (int i = 0; i < size; i++) { + data.add(builder.createArea()); + } + check(); + } + + private void check() { + if (getUID36().equals("194")) { + JUtils.LOG("It's me"); + } + } + + public __array_of_ptr__ move(int delta) { + return new __array_of_ptr__(data, currentPos + delta, builder); + } + + public __array_of_ptr__ plus(int delta) { + return move(delta); + } + + public Area getInternal(int idx) { + return data.get(idx + currentPos); + } + + public void setInternalByIndex(int idx, Area value) { + if (value == this) { + throw new IllegalArgumentException(); + } + if (value instanceof __array_of_ptr__) { + throw new IllegalArgumentException(); + } + data.set(idx + currentPos, value); + } + + // + + public int getInt() { + return ((AreaInt) getInternal(0)).getInternal(); + } + + public CString getCString() { + return (CString) getInternal(0); + } + + public __ptr__ getPtr() { + if (getInternal(0) instanceof __struct__) { + return ((__struct__) getInternal(0)).amp(); + } + return (__ptr__) getInternal(0); + } + + public __struct__ getStruct() { + if (getInternal(0) instanceof __ptr__) { + return getPtr().getStruct(); + } + return (__struct__) getInternal(0); + } + + public void setInt(int value) { + ((AreaInt) getInternal(0)).setInternal(value); + } + + public void setCString(CString value) { + setInternalByIndex(0, value); + } + + public void setPtr(__ptr__ value) { + setInternalByIndex(0, (Area) value); + } + + public void setStruct(__struct__ value) { + final Area area = getInternal(0); + if (area instanceof StarStruct) { + ((StarStruct) area).copyDataFrom(value); + } else if (area instanceof StarArrayOfPtr) { + ((StarArrayOfPtr) area).copyDataFrom(value); + } else { + ((__struct__) area).____(value); + } + } + + public double getDouble(String fieldName) { + final Area tmp1 = getInternal(0); + return ((StarStruct) tmp1).getDouble(fieldName); + } + + public void setDouble(String fieldName, double value) { + final Area tmp1 = getInternal(0); + if (tmp1 instanceof __struct__) { + ((__struct__) tmp1).setDouble(fieldName, value); + return; + } + ((StarStruct) tmp1).setDouble(fieldName, value); + } + + public __struct__ getStruct(String fieldName) { + return ((StarStruct) getInternal(0)).getStruct(fieldName); + } + +} diff -Nru plantuml-8024/src/smetana/core/__array_of_struct__.java plantuml-8039/src/smetana/core/__array_of_struct__.java --- plantuml-8024/src/smetana/core/__array_of_struct__.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/__array_of_struct__.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,175 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.util.ArrayList; +import java.util.List; + +import smetana.core.amiga.Area; +import smetana.core.amiga.BuilderArea; +import smetana.core.amiga.StarArrayOfStruct; +import smetana.core.amiga.StarStruct; + +public class __array_of_struct__ implements Area { + + private final List data; + private final int currentPos; + + private final int UID = StarStruct.CPT++; + + public String getUID36() { + return Integer.toString(UID, 36); + } + + public void swap(int i, int j) { + Area e1 = data.get(i); + Area e2 = data.get(j); + data.set(i, e2); + data.set(j, e1); + } + + @Override + public String toString() { + if (data.get(0) != null) { + return "__array_of_struct__ " + getUID36() + " " + currentPos + "/" + data.size() + " " + + data.get(0).toString(); + } + return "__array_of_struct__ " + getUID36() + " " + currentPos + "/" + data.size(); + } + + public void realloc(int nb) { + while (data.size() < nb + currentPos) { + data.add(null); + } + } + + public __ptr__ asPtr() { + return new StarArrayOfStruct(this); + } + + public int comparePointerInternal(__array_of_struct__ other) { + if (this.data != other.data) { + throw new IllegalArgumentException(); + } + return this.currentPos - other.currentPos; + } + + public static __array_of_struct__ malloc(final Class cl, int nb) { + return new __array_of_struct__(nb, new BuilderArea() { + public Area createArea() { + return new __struct__(cl); + } + }); + } + + private __array_of_struct__(List data, int currentPos) { + this.data = data; + this.currentPos = currentPos; + check(); + } + + public __array_of_struct__(int size, BuilderArea builder) { + this.data = new ArrayList(); + this.currentPos = 0; + for (int i = 0; i < size; i++) { + final Area tmp = builder.createArea(); + data.add(tmp); + } + check(); + } + + private void check() { + if (getUID36().equals("194")) { + JUtils.LOG("It's me"); + } + } + + public __array_of_struct__ move(int delta) { + return new __array_of_struct__(data, currentPos + delta); + } + + public __array_of_struct__ plus(int delta) { + return move(delta); + } + + public Area getInternal(int idx) { + return data.get(idx + currentPos); + } + + public void setInternalByIndex(int idx, Area value) { + if (value == this) { + throw new IllegalArgumentException(); + } + if (value instanceof __array_of_struct__) { + throw new IllegalArgumentException(); + } + data.set(idx + currentPos, value); + } + + public void memcopyFrom(Area source) { + throw new UnsupportedOperationException(); + } + + // + + public __ptr__ getPtr() { + return ((__struct__) getInternal(0)).amp(); + } + + public __struct__ getStruct() { + return (__struct__) getInternal(0); + } + + public void setStruct(__struct__ value) { + final Area area = getInternal(0); + ((__struct__) area).____(value); + } + + public double getDouble(String fieldName) { + final Area tmp1 = getInternal(0); + return ((__struct__) tmp1).getDouble(fieldName); + } + + public void setDouble(String fieldName, double value) { + final Area tmp1 = getInternal(0); + ((__struct__) tmp1).setDouble(fieldName, value); + } + + public __struct__ getStruct(String fieldName) { + return ((StarStruct) getInternal(0)).getStruct(fieldName); + } + +} diff -Nru plantuml-8024/src/smetana/core/Bucket.java plantuml-8039/src/smetana/core/Bucket.java --- plantuml-8024/src/smetana/core/Bucket.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/Bucket.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,373 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class Bucket { + + final public String name; + final public CType ctype; + final private boolean inlineStruct; + + private Bucket addPrefix(String prefix) { + return new Bucket(prefix + "." + name, ctype, inlineStruct); + } + + public static Bucket buildEnum(String name, List definition) { + return new Bucket(name, new CType("enum"), false); + } + + Bucket(String name, String type, boolean inlineStruct) { + this(name, new CType(type), inlineStruct); + } + + private Bucket(String name, CType ctype, boolean inlineStruct) { + this.name = name; + this.ctype = ctype; + this.inlineStruct = inlineStruct; + } + + @Override + public String toString() { + return "[" + ctype + "==" + name + "]"; + } + + public boolean inlineStruct() { + return inlineStruct; + } + + public boolean functionPointer() { + if (ctype == null) { + return false; + } + return ctype.functionPointer(); + } + + public static Map buildSome(Iterator it) { + + String def = it.next(); + JUtils.LOG("DEF1=" + def); + def = def.replaceAll("unsigned int", "int"); + def = def.replaceAll("unsigned long", "int"); + def = def.replaceAll("unsigned short", "short"); + def = def.replaceAll("unsigned char", "char"); + def = def.replaceAll("const ", ""); + def = def.replaceAll("struct ", ""); + def = def.replaceAll("\\[\\s*[+]1\\s*[+]1\\s*[+]1\\s*[+]1\\s*[+]1\\s*\\]", "[5]"); + // JUtils.LOG("DEF2=" + def); + // int foo + + if (def.equals("union")) { + return createStruct(it); + } else if (def.equals("struct")) { + return createStruct(it); + } + + final Map result = new LinkedHashMap(); + + // Dummy foo; + Pattern p1 = Pattern.compile("^(\\w+)\\s+(\\w+)$"); + Matcher m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1); + final boolean inline = CType.isPrimitive(type) == false; + result.put(m1.group(2), new Bucket(m1.group(2), type, inline)); + return result; + } + // Dummy A, B + p1 = Pattern.compile("^(\\w+)\\s+(\\w+),\\s*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1); + final boolean inline = CType.isPrimitive(type) == false; + result.put(m1.group(2), new Bucket(m1.group(2), type, inline)); + result.put(m1.group(3), new Bucket(m1.group(3), type, inline)); + return result; + } + // Dummy A, B, C + p1 = Pattern.compile("^(\\w+)\\s+(\\w+),\\s*(\\w+),\\s*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1); + final boolean inline = CType.isPrimitive(type) == false; + result.put(m1.group(2), new Bucket(m1.group(2), type, inline)); + result.put(m1.group(3), new Bucket(m1.group(3), type, inline)); + result.put(m1.group(4), new Bucket(m1.group(4), type, inline)); + return result; + } + // Dummy A, B, C, D + p1 = Pattern.compile("^(\\w+)\\s+(\\w+),\\s*(\\w+),\\s*(\\w+),\\s*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1); + final boolean inline = CType.isPrimitive(type) == false; + result.put(m1.group(2), new Bucket(m1.group(2), type, inline)); + result.put(m1.group(3), new Bucket(m1.group(3), type, inline)); + result.put(m1.group(4), new Bucket(m1.group(4), type, inline)); + result.put(m1.group(5), new Bucket(m1.group(5), type, inline)); + return result; + } + // Dummy A, B, C, D, E + p1 = Pattern.compile("^(\\w+)\\s+(\\w+),\\s*(\\w+),\\s*(\\w+),\\s*(\\w+),\\s*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1); + final boolean inline = CType.isPrimitive(type) == false; + result.put(m1.group(2), new Bucket(m1.group(2), type, inline)); + result.put(m1.group(3), new Bucket(m1.group(3), type, inline)); + result.put(m1.group(4), new Bucket(m1.group(4), type, inline)); + result.put(m1.group(5), new Bucket(m1.group(5), type, inline)); + result.put(m1.group(6), new Bucket(m1.group(6), type, inline)); + return result; + } + // int (*foo)() + p1 = Pattern.compile("^.*(\\(\\*(\\w+)\\)).*$"); + m1 = p1.matcher(def); + if (m1.find()) { + result.put(m1.group(1), new Bucket(m1.group(2), def, false)); + return result; + } + // void *data + p1 = Pattern.compile("^(void)\\s+\\*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + result.put(m1.group(2), new Bucket(m1.group(2), "void*", false)); + return result; + } + // char *data + p1 = Pattern.compile("^(char)\\s+\\*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + result.put(m1.group(2), new Bucket(m1.group(2), "CString", false)); + return result; + } + // int *data + p1 = Pattern.compile("^(int)\\s+\\*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + result.put(m1.group(2), new Bucket(m1.group(2), "int*", false)); + return result; + } + // char **data + p1 = Pattern.compile("^(char)\\s+\\*\\*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + result.put(m1.group(2), new Bucket(m1.group(2), "CString[]", false)); + return result; + } + // void* foo + p1 = Pattern.compile("^(void)(\\s+\\*|\\*\\s+)(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = "void*"; + // final Class cl = CType.getClassFrom(type); + result.put(m1.group(3), new Bucket(m1.group(3), type, false)); + return result; + } + // dummy* foo + p1 = Pattern.compile("^(\\w+)(\\s+\\*|\\*\\s+)(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1); + // final Class cl = CType.getClassFrom(type); + result.put(m1.group(3), new Bucket(m1.group(3), type, false)); + return result; + } + // foo *A, *B + p1 = Pattern.compile("^(\\w+)\\s+\\*(\\w+),\\s*\\*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1); + // final Class cl = CType.getClassFrom(type); + result.put(m1.group(2), new Bucket(m1.group(2), type, false)); + result.put(m1.group(3), new Bucket(m1.group(3), type, false)); + return result; + } + // foo *A, *B, *C + p1 = Pattern.compile("^(\\w+)\\s+\\*(\\w+),\\s*\\*(\\w+),\\s*\\*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1); + // final Class cl = CType.getClassFrom(type); + result.put(m1.group(2), new Bucket(m1.group(2), type, false)); + result.put(m1.group(3), new Bucket(m1.group(3), type, false)); + result.put(m1.group(4), new Bucket(m1.group(4), type, false)); + return result; + } + // foo *A, *B, *C, *D + p1 = Pattern.compile("^(\\w+)\\s+\\*(\\w+),\\s*\\*(\\w+),\\s*\\*(\\w+),\\s*\\*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1); + // final Class cl = CType.getClassFrom(type); + result.put(m1.group(2), new Bucket(m1.group(2), type, false)); + result.put(m1.group(3), new Bucket(m1.group(3), type, false)); + result.put(m1.group(4), new Bucket(m1.group(4), type, false)); + result.put(m1.group(5), new Bucket(m1.group(5), type, false)); + return result; + } + p1 = Pattern.compile("^(unsigned|int)\\s+(\\w+):([-sizeof ntunsged()0-9*]+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + result.put(m1.group(2), new Bucket(m1.group(2), "int", false)); + return result; + } + // Dummy foo[3] + p1 = Pattern.compile("^(\\w+)\\s+(\\w+)\\[\\d+\\]$"); + m1 = p1.matcher(def); + if (m1.find()) { + result.put(m1.group(1), new Bucket(m1.group(2), def, true)); + return result; + } + // Dummy *foo[3] + p1 = Pattern.compile("^(\\w+)\\s+\\*(\\w+)\\[\\d+\\]$"); + m1 = p1.matcher(def); + if (m1.find()) { + final Bucket tmp = new Bucket(m1.group(2), def, false); + JUtils.LOG("size=" + tmp.getArrayLength()); + result.put(m1.group(1), tmp); + return result; + } + // graph_t **clust + p1 = Pattern.compile("^(\\w+)\\s+\\*\\*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1) + "*"; + result.put(m1.group(2), new Bucket(m1.group(2), type, false)); + return result; + } + // node_t **store, **limit, **head, **tail + p1 = Pattern.compile("^(\\w+)\\s+\\*\\*(\\w+),\\s*\\*\\*(\\w+),\\s*\\*\\*(\\w+),\\s*\\*\\*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1) + "*"; + result.put(m1.group(2), new Bucket(m1.group(2), type, false)); + result.put(m1.group(3), new Bucket(m1.group(3), type, false)); + result.put(m1.group(4), new Bucket(m1.group(4), type, false)); + result.put(m1.group(5), new Bucket(m1.group(5), type, false)); + return result; + } + // foo *A, **B + p1 = Pattern.compile("^(\\w+)\\s+\\*(\\w+),\\s*\\*\\*(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1); + result.put(m1.group(2), new Bucket(m1.group(2), type, false)); + result.put(m1.group(3), new Bucket(m1.group(3), type + "*", false)); + return result; + } + // foo **B + p1 = Pattern.compile("^(\\w+)\\*\\*\\s+(\\w+)$"); + m1 = p1.matcher(def); + if (m1.find()) { + final String type = m1.group(1) + "*"; + result.put(m1.group(2), new Bucket(m1.group(2), type, false)); + return result; + } + if (def.equals("double **dist, **spring, **sum_t, ***t")) { + // Let's skip this one... + return result; + } + if (def.equals("double *pos, dist")) { + result.put("pos", new Bucket("pos", "double*", false)); + result.put("dist", new Bucket("dist", "double", false)); + return result; + } + // p1 = Pattern.compile("^unsigned\\s+long\\s+(\\w+)$"); + // m1 = p1.matcher(def); + // if (m1.find()) { + // mem.put(m1.group(1), new Bucket(m1.group(1), "int", false, 4, false)); + // return; + // } + JUtils.LOG("def=" + def); + throw new UnsupportedOperationException(def); + } + + private static Map createStruct(Iterator it) { + String current = it.next(); + if (current.equals("{") == false) { + throw new UnsupportedOperationException("current=" + current); + } + final Map tmp = new LinkedHashMap(); + final List inner = new ArrayList(); + while (true) { + current = it.next(); + if (current.equals("union") || current.equals("struct")) { + Map internal = createStruct(it); + JUtils.LOG("internal=" + internal); + tmp.putAll(internal); + } else if (current.endsWith("}")) { + final String name = it.next(); + JUtils.LOG("name=" + name); + JUtils.LOG("inner=" + inner); + // final Map some = new LinkedHashMap(); + final Iterator innerIt = inner.iterator(); + while (innerIt.hasNext()) { + tmp.putAll(buildSome(innerIt)); + } + final Map result = new LinkedHashMap(); + for (Map.Entry ent : tmp.entrySet()) { + final String n = ent.getKey(); + final Bucket bucket = ent.getValue().addPrefix(name); + JUtils.LOG("n=" + n); + JUtils.LOG("bucket=" + bucket); + result.put(name + "." + n, bucket); + } + return result; + } else { + inner.add(current); + } + } + // JUtils.LOG("some=" + some); + // throw new UnsupportedOperationException(); + + } + + public int getArrayLength() { + if (ctype == null) { + return 0; + } + return ctype.getArrayLength(); + } + +} diff -Nru plantuml-8024/src/smetana/core/CEnumInterpretor.java plantuml-8039/src/smetana/core/CEnumInterpretor.java --- plantuml-8024/src/smetana/core/CEnumInterpretor.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/CEnumInterpretor.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,96 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.util.ArrayList; +import java.util.List; + +public class CEnumInterpretor { + + private final List keys = new ArrayList(); + private String keyRef; + private int valueRef; + + public CEnumInterpretor(Class enumClass) { + List def = CType.getDefinition(enumClass); + JUtils.LOG("def1=" + def); + if (def.get(0).equals("typedef enum") == false) { + throw new IllegalArgumentException(); + } + if (def.get(1).equals("{") == false) { + throw new IllegalArgumentException(); + } + if (def.get(def.size() - 2).equals("}") == false) { + throw new IllegalArgumentException(); + } + def = def.subList(2, def.size() - 2); + JUtils.LOG("def2=" + def); + + for (String s1 : def) { + for (String s2 : s1.split(",")) { + s2 = s2.trim(); + final int idx = s2.indexOf('='); + final String k = idx == -1 ? s2 : s2.substring(0, idx); + keys.add(k.trim()); + if (idx == -1) { + continue; + } + if (keyRef != null) { + throw new IllegalStateException(); + } + keyRef = k.trim(); + valueRef = Integer.parseInt(s2.substring(idx + 1).trim()); + } + } + JUtils.LOG("keys=" + keys); + } + + public int valueOf(String name) { + JUtils.LOG("keys=" + keys); + final int idx = keys.indexOf(name); + if (idx == -1) { + throw new IllegalArgumentException(name + " is no enum value"); + } + if (keyRef == null) { + return idx; + } + final int keyRefIndex = keys.indexOf(keyRef); + if (keyRefIndex == -1) { + throw new IllegalStateException(); + } + return idx - keyRefIndex + valueRef; + } +} diff -Nru plantuml-8024/src/smetana/core/__c__fields.java plantuml-8039/src/smetana/core/__c__fields.java --- plantuml-8024/src/smetana/core/__c__fields.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/__c__fields.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + + + +public interface __c__fields { + + public __ptr__ getPtr(String fieldName); + public __struct__ getStruct(String fieldName); + public boolean getBoolean(String fieldName); + public double getDouble(String fieldName); + public CString getCString(String fieldName); + public int getInt(String fieldName); + + public __ptr__ setPtr(String fieldName, __ptr__ value); + public void setCString(String fieldName, CString value); + public void setStruct(String fieldName, __struct__ value); + public void setInt(String fieldName, int value); + public void setBoolean(String fieldName, boolean value); + public void setDouble(String fieldName, double value); + + // public __array__ getArray(String fieldName); + public __array_of_integer__ getArrayOfInteger(String fieldName); + public __array_of_struct__ getArrayOfStruct(String fieldName); + public __array_of_ptr__ getArrayOfPtr(String fieldName); + public __array_of_cstring__ getArrayOfCString(String fieldName); + + +} diff -Nru plantuml-8024/src/smetana/core/CFunctionImpl.java plantuml-8039/src/smetana/core/CFunctionImpl.java --- plantuml-8024/src/smetana/core/CFunctionImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/CFunctionImpl.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,99 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +import smetana.core.amiga.Area; + +public class CFunctionImpl extends UnsupportedC implements CFunction, Area { + + private final Class codingClass; + private final String name; + private final Method method; + + public static CFunctionImpl create(Class codingClass, String name) { + return new CFunctionImpl(codingClass, name); + } + + private CFunctionImpl(Class codingClass, String name) { + this.codingClass = codingClass; + this.name = name; + for (Method m : codingClass.getMethods()) { + if (m.getName().equals(name)) { + this.method = m; + return; + } + } + JUtils.LOG("CANNOT FIND METHOD " + name + " IN " + codingClass); + throw new IllegalStateException("codingClass=" + codingClass + " name=" + name); + } + + @Override + public String toString() { + return codingClass.getName() + "::" + name; + } + + public Object exe(Object... args) { + JUtils.LOG("-------"); + for (Object arg : args) { + JUtils.LOG("arg=" + arg); + } + JUtils.LOG("method="+method); + try { + return this.method.invoke(null, args); + } catch (InvocationTargetException e) { + e.printStackTrace(); + throw new UnsupportedOperationException(toString()); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + throw new UnsupportedOperationException(toString()); + } catch (IllegalAccessException e) { + e.printStackTrace(); + throw new UnsupportedOperationException(toString()); + } + } + + public String getName() { + return name; + } + + public void memcopyFrom(Area source) { + throw new UnsupportedOperationException(); + } + +} diff -Nru plantuml-8024/src/smetana/core/CFunction.java plantuml-8039/src/smetana/core/CFunction.java --- plantuml-8024/src/smetana/core/CFunction.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/CFunction.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,45 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import h.*; + +public interface CFunction extends __ptr__, Dtmemory_f, Dtcompar_f, Dtsearch_f { + + public Object exe(Object... args); + + +} diff -Nru plantuml-8024/src/smetana/core/CObject.java plantuml-8039/src/smetana/core/CObject.java --- plantuml-8024/src/smetana/core/CObject.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/CObject.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,79 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.util.ArrayList; +import java.util.List; + +import smetana.core.amiga.Area; + +public class CObject implements Area { + + private static int ID; + + private final int size; + private int id = ++ID; + + public CObject(int size, Class tobeAllocated) { + this.size = size; + } + + @Override + public String toString() { + return super.toString() + " id=" + id; + } + + public List convertToListOfCString() { + final ArrayList result = new ArrayList(); + for (int i = 0; i < size; i++) { + result.add(null); + } + return result; + } + +// public AreaArray convertToAreaArray() { +// return new AreaArray(size, new BuilderArea() { +// public Area createArea() { +// return null; +// } +// }); +// } + + public void memcopyFrom(Area source) { + throw new UnsupportedOperationException(); + } + +} diff -Nru plantuml-8024/src/smetana/core/CString.java plantuml-8039/src/smetana/core/CString.java --- plantuml-8024/src/smetana/core/CString.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/CString.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,238 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.util.ArrayList; +import java.util.List; + +import smetana.core.amiga.Area; +import smetana.core.amiga.StarStruct; + +public class CString extends UnsupportedC implements __ptr__, Area { + + private static int UID = 100; + + private final Throwable creation = new Throwable(); + private final List data2; + private final int currentStart; + private final List<__ptr__> fathers = new ArrayList<__ptr__>(); + private final int uid; + + public boolean isSameThan(CString other) { + if (this.data2 != other.data2) { + throw new UnsupportedOperationException(); + } + return this.currentStart == other.currentStart; + + } + + public void memcopyFrom(Area source) { + final CString other = (CString) source; + this.data2.clear(); + this.data2.addAll(other.data2); + } + + public CString(String string) { + this(new ArrayList(), 0); + for (int i = 0; i < string.length(); i++) { + data2.add(string.charAt(i)); + } + data2.add('\0'); + } + + public CString duplicate() { + // return this; + + return new CString(new ArrayList(this.data2), currentStart); + + // final CString result = new CString(this.data.size()); + // for (int i = 0; i < result.data.size(); i++) { + // result.data.set(i, this.data.get(i)); + // } + // return result; + } + + public CString strdup() { + return duplicate(); + } + + public CString(int size) { + this(new ArrayList(), 0); + for (int i = 0; i < size; i++) { + data2.add('\0'); + } + } + + private CString(List data2, int currentStart) { + this.data2 = data2; + this.currentStart = currentStart; + this.uid = UID; + UID+=2; + creation.fillInStackTrace(); + } + + public __ptr__ addVirtualBytes(int bytes) { + JUtils.LOG("CString::addVirtualBytes " + bytes); + JUtils.LOG("AM " + this); + if (bytes < 0) { + OFFSET offset = OFFSET.fromInt(-bytes); + JUtils.LOG("offset=" + offset); + for (__ptr__ f : fathers) { + JUtils.LOG("f=" + f); + if (f instanceof StarStruct && ((StarStruct) f).getRealClass() == offset.getTheClass()) { + JUtils.LOG("FOUND1!!"); + if (f.getPtr(offset.getField()).equals(this)) { + JUtils.LOG("FOUND2!!"); + return f; + } + } + } + } else { + JUtils.LOG("father=" + fathers); + JUtils.LOG("CString created on the following place:"); + creation.printStackTrace(); + } + throw new UnsupportedOperationException(); + } + + @Override + public CString plus(int pointerMove) { + return new CString(data2, currentStart + pointerMove); + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + for (Character c : getData()) { + if (c == '\0') { + sb.append("(0)"); + } else { + sb.append(c); + } + } + return "CString:" + sb; + } + + private List getData() { + return data2.subList(currentStart, data2.size()); + } + + public String getContent() { + final StringBuilder sb = new StringBuilder(); + for (Character c : getData()) { + if (c == '\0') { + return sb.toString(); + } else { + sb.append(c); + } + } + throw new UnsupportedOperationException(); + } + + public char charAt(int i) { + if (i >= getData().size()) { + return '\0'; + } + return getData().get(i); + } + + public char setCharAt(int i, char c) { + getData().set(i, c); + return c; + } + + public int length() { + int len = 0; + for (Character c : getData()) { + if (c == '\0') { + return len; + } + len++; + } + throw new IllegalStateException(); + } + + public int compareTo(CString other) { + for (int i = 0; i < data2.size() - currentStart; i++) { + final int diff = this.charAt(i) - other.charAt(i); + if (this.charAt(i) == '\0' || diff != 0) { + return diff; + } + } + throw new IllegalStateException(); + } + + public int compareTo(CString other, int num) { + for (int i = 0; i < data2.size() - currentStart && i def = CType.getDefinition(cl); + JUtils.LOG("def3=" + def); + if (def.get(0).equals("typedef enum")) { + return true; + } + return false; + } + + @Override + public String toString() { + return "CTYPE:" + type; + } + + public Class getTypeClass() { + if (isPrimitive()) { + return null; + } + if (type.equals("Ppolyline_t")) { + return Ppoly_t.class; + } + return getClassFrom(type); + } + + public static Class getClassFrom(String type) { + if (type == null) { + throw new IllegalArgumentException(); + } + if (type.equals("h.pointf_s")) { + return pointf.class; + } + if (type.equals("pointf_s")) { + return pointf.class; + } + if (type.endsWith("htmllabel_t")) { + return htmllabel_t.class; + } + try { + final Class result = Class.forName("h." + type); + final List definition = getDefinition(result); + if (definition.size() != 1) { + return result; + } + final String single = definition.get(0); + final Pattern p1 = Pattern.compile("^typedef\\s+struct\\s+(\\w+)\\s+(\\w+)$"); + final Matcher m1 = p1.matcher(single); + if (m1.find() == false) { + // return null; + throw new IllegalStateException(single); + } + if (m1.group(2).equals(type) == false) { + throw new IllegalStateException(single); + } + return getClassFrom(m1.group(1)); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + private List getDefinition() { + return getDefinition(getTypeClass()); + } + + static List getDefinition(Class inter) { + try { + // JUtils.LOG("TR1=" + inter); + if (inter == null) { + return null; + } + final Field field = inter.getField("DEFINITION"); + return (List) field.get(null); + } catch (NoSuchFieldException e) { + System.err.println("inter=" + inter); + e.printStackTrace(); + throw new UnsupportedOperationException(); + } catch (SecurityException e) { + e.printStackTrace(); + throw new UnsupportedOperationException(); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + throw new UnsupportedOperationException(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + throw new UnsupportedOperationException(); + } + } + + public boolean functionPointer() { + // int (*foo)() + if (isPrimitive()) { + return false; + } + boolean result = type.matches("^.*(\\(\\*(\\w+)\\)).*$"); + if (result == true) { + return true; + } + try { + final List definition = getDefinition(Class.forName("h." + type)); + JUtils.LOG("def=" + definition); + if (definition.size() != 1) { + return false; + } + assert definition.size() == 1; + result = definition.get(0).matches("^.*(\\(\\*(\\w+)\\)).*$"); + JUtils.LOG("checking " + type + " " + result); + return result; + } catch (ClassNotFoundException e) { + JUtils.LOG("typeXXX=" + type); + return false; + } + + } + + public static boolean isPrimitive(String type) { + if (type.equals("char") || type.equals("long") || type.equals("int") || type.equals("packval_t") + || type.equals("boolean") || type.equals("double") || type.equals("float") || type.equals("short")) { + return true; + } + return false; + } + + public boolean isPrimitive() { + return isPrimitive(type); + } + + public Class getClassFrom() { + return getClassFrom(type); + } + + public int getArrayLength() { + final Pattern p = Pattern.compile(".*\\[(\\d+)\\]$"); + final Matcher m = p.matcher(type); + if (m.find() == false) { + return 0; + } + return Integer.parseInt(m.group(1)); + } + + public boolean isIntStar() { + return "int*".equals(type); + } + + public boolean isDoubleStar() { + return "double*".equals(type); + } + + public boolean isVoidStar() { + return "void*".equals(type); + } + + public String getType() { + return type; + } + + public boolean isCString() { + return type.equals("CString"); + } + + public boolean isArrayOfCString() { + return type.equals("CString[]"); + } + + public boolean containsStar() { + return type.contains("*"); + } + +} diff -Nru plantuml-8024/src/smetana/core/debug/Debug.java plantuml-8039/src/smetana/core/debug/Debug.java --- plantuml-8024/src/smetana/core/debug/Debug.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/debug/Debug.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,45 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package smetana.core.debug; + +public class Debug { + + public void entering(String signature, String methodName) { + } + + public void leaving(String signature, String methodName) { + } + +} diff -Nru plantuml-8024/src/smetana/core/gvformatter_engine_s.java plantuml-8039/src/smetana/core/gvformatter_engine_s.java --- plantuml-8024/src/smetana/core/gvformatter_engine_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/gvformatter_engine_s.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,39 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +public interface gvformatter_engine_s extends __ptr__ { +} diff -Nru plantuml-8024/src/smetana/core/jmp_buf.java plantuml-8039/src/smetana/core/jmp_buf.java --- plantuml-8024/src/smetana/core/jmp_buf.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/jmp_buf.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,51 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +public class jmp_buf { + + private boolean hasBeenCalled; + + public boolean hasBeenCalled() { + return hasBeenCalled; + } + + public void saveCallingEnvironment() { + // System.err.println("jmp_buf::saveCallingEnvironment"); + hasBeenCalled = true; + } + +} diff -Nru plantuml-8024/src/smetana/core/JUtilsDebug.java plantuml-8039/src/smetana/core/JUtilsDebug.java --- plantuml-8024/src/smetana/core/JUtilsDebug.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/JUtilsDebug.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,52 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import smetana.core.debug.Debug; + +public class JUtilsDebug { + + private final static Debug debug = new Debug(); + + static public void ENTERING(String signature, String methodName) { + debug.entering(signature, methodName); + } + + static public void LEAVING(String signature, String methodName) { + debug.leaving(signature, methodName); + } + +} diff -Nru plantuml-8024/src/smetana/core/JUtils.java plantuml-8039/src/smetana/core/JUtils.java --- plantuml-8024/src/smetana/core/JUtils.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/JUtils.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,363 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import h.Agedge_s; +import h.Agedgeinfo_t; +import h.bezier; +import h.boxf; +import h.pointf; +import h.splines; +import smetana.core.amiga.StarArrayOfInteger; +import smetana.core.amiga.StarArrayOfPtr; +import smetana.core.amiga.StarArrayOfStruct; +import smetana.core.amiga.StarStar; +import smetana.core.amiga.StarStruct; + +// http://docs.oracle.com/javase/specs/jls/se5.0/html/expressions.html#15.7.4 +// http://www.jbox.dk/sanos/source/lib/string.c.html + +public class JUtils { + + public static int USHRT_MAX = 65535; + + public static size_t sizeof(Class cl) { + return new size_t_struct(cl); + } + + public static size_t sizeof(__ptr__ element) { + return new size_t_of_element(element); + } + + public static size_t sizeof(String name, int sz) { + if (name.equals("char*")) { + return new size_t_array_of_charstars(sz); + } + throw new UnsupportedOperationException(); + } + + public static size_t sizeof(Class cl, int nb) { + return new size_t_array_of_something(cl, nb); + } + + public static size_t size_t_array_of_integer(int nb) { + return new size_t_array_of_integer(nb); + } + + public static size_t sizeof_starstar_empty(Class cl, int nb) { + return new size_t_array_of_array_of_something_empty(cl, nb); + } + + public static int strcmp(CString s1, CString s2) { + return s1.compareTo(s2); + } + + public static int strncmp(CString s1, CString s2, int n) { + return s1.compareTo(s2, n); + } + + public static CString strstr(CString s1, CString s2) { + throw new UnsupportedOperationException("s1=" + s1 + " s2=" + s2); + } + + public static void strncpy(CString destination, CString source, int nb) { + destination.copyFrom(source, nb); + } + + public static CString strchr(CString str, char c) { + return str.strchr(c); + } + + public static int strtol(CString str, CString[] endptr, int base) { + if (base != 10) { + throw new IllegalArgumentException(); + } + CString end = str; + int result = Integer.parseInt(end.getContent()); + endptr[0] = end.plus(("" + result).length()); + return result; + } + + public static double strtod(CString str, CString[] endptr) { + final double result = Double.parseDouble(str.getContent()); + return result; + } + + public static double atof(CString str) { + return Double.parseDouble(str.getContent()); + } + + public static int memcmp(__ptr__ s1, __ptr__ s2, int sz) { + throw new UnsupportedOperationException("s1=" + s1 + " s2=" + s2 + " sz=" + sz); + } + + public static void memset(__ptr__ obj, int value, size_t nbytes) { + if (value != 0) { + throw new UnsupportedOperationException(); + } + } + + public static int strlen(CString s) { + return s.length(); + } + + public static double abs(double x) { + return Math.abs(x); + } + + public static double cos(double x) { + return Math.cos(x); + } + + public static double sin(double x) { + return Math.sin(x); + } + + public static double sqrt(double x) { + return Math.sqrt(x); + } + + public static double atan2(double a, double b) { + return Math.atan2(a, b); + } + + public static double pow(double a, double b) { + return Math.pow(a, b); + } + + public static boolean isdigit(char c) { + return Character.isDigit(c); + } + + public static int atoi(CString s) { + return Integer.parseInt(s.getContent()); + } + + public static char tolower(char c) { + return Character.toLowerCase(c); + } + + public static CFunction function(Class codingClass, String name) { + return CFunctionImpl.create(codingClass, name); + } + + public static int enumAsInt(Class enumClass, String name) { + CEnumInterpretor interpretor = new CEnumInterpretor(enumClass); + final int result = interpretor.valueOf(name); + JUtils.LOG("result for " + name + " is " + result); + return result; + } + + public static CString getenv(CString var) { + return null; + } + + public static void LOG(String s) { + // System.err.println(s); + } + + public static void LOG2(String s) { + // System.err.println(s); + } + + public static boolean EQ(Object o1, Object o2) { + if (o1 == o2) { + return true; + } + if (o1 == null && o2 != null) { + return false; + } + if (o2 == null && o1 != null) { + return false; + } + // if (o1 instanceof AreaArray && o2 instanceof AreaArray) { + // return ((AreaArray) o1).isSameThan((AreaArray) o2); + // } + if (o1 instanceof StarStruct && o2 instanceof StarStruct) { + return ((StarStruct) o1).isSameThan((StarStruct) o2); + } + if (o1 instanceof CString && o2 instanceof CString) { + return ((CString) o1).isSameThan((CString) o2); + } + if (o1 instanceof StarArrayOfPtr && o2 instanceof StarArrayOfPtr) { + return ((StarArrayOfPtr) o1).isSameThan((StarArrayOfPtr) o2); + } + if (o1 instanceof StarStar && o2 instanceof StarStruct) { + __ptr__ o1b = ((StarStar) o1).getPtr(); + if (((StarStruct) o1b).getRealClass() != ((StarStruct) o2).getRealClass()) { + throw new UnsupportedOperationException(); + } + return EQ(o1b, o2); + } + if (o1 instanceof StarStruct && o2 instanceof StarArrayOfPtr) { + __ptr__ o2b = ((StarArrayOfPtr) o2).getPtrForEquality(); + if (((StarStruct) o1).getRealClass() != ((StarStruct) o2b).getRealClass()) { + throw new UnsupportedOperationException(); + } + return EQ(o1, o2b); + } + if (o1 instanceof StarStruct && o2 instanceof StarArrayOfStruct) { + __ptr__ o2b = ((StarArrayOfStruct) o2).getPtrForEquality(); + if (((StarStruct) o1).getRealClass() != ((StarStruct) o2b).getRealClass()) { + throw new UnsupportedOperationException(); + } + return EQ(o1, o2b); + } + if (o1 instanceof StarStar && o2 instanceof StarArrayOfPtr) { + __ptr__ o1b = ((StarStar) o1).getPtr(); + __ptr__ o2b = ((StarArrayOfPtr) o2).getPtr(); + if (((StarStruct) o1b).getRealClass() != ((StarStruct) o2b).getRealClass()) { + throw new UnsupportedOperationException(); + } + return EQ(o1b, o2b); + } + if (o1 instanceof StarArrayOfStruct && o2 instanceof StarArrayOfStruct) { + StarArrayOfStruct oo1 = (StarArrayOfStruct) o1; + StarArrayOfStruct oo2 = (StarArrayOfStruct) o2; + return oo1.isSameThan(oo2); + } + if (o1 instanceof StarArrayOfPtr && o2 instanceof StarArrayOfStruct) { + StarArrayOfPtr oo1 = (StarArrayOfPtr) o1; + StarArrayOfStruct oo2 = (StarArrayOfStruct) o2; + __struct__ s1 = oo1.getStruct(); + __struct__ s2 = oo2.getStruct(); + boolean result = s1.getInternalData().isSameThan(s2.getInternalData()); + return result; + } + System.err.println("o1=" + o1.getClass() + " " + o1); + System.err.println("o2=" + o2.getClass() + " " + o2); + throw new UnsupportedOperationException(); + } + + public static boolean NEQ(Object o1, Object o2) { + return EQ(o1, o2) == false; + } + + public static void qsort(__ptr__ array, int nb, size_t size, CFunction compare) { + if (nb <= 1) { + return; + } + JUtils.LOG("array=" + array); + JUtils.LOG("nb=" + nb); + JUtils.LOG("size=" + size); + JUtils.LOG("compare=" + compare); + boolean change; + do { + change = false; + for (int i = 0; i < nb - 1; i++) { + __ptr__ element1 = array.plus(i); + __ptr__ element2 = array.plus(i + 1); + Integer cmp = (Integer) compare.exe(element1, element2); + JUtils.LOG("cmp=" + cmp); + if (cmp.intValue() > 0) { + change = true; + if (array instanceof StarArrayOfInteger) { + ((StarArrayOfInteger) array).swap(i, i + 1); + } else { + ((StarStar) array).swap(i, i + 1); + } + } + } + } while (change); + for (int i = 0; i < nb - 1; i++) { + __ptr__ element1 = array.plus(i); + __ptr__ element2 = array.plus(i + 1); + JUtils.LOG("element1=" + element1); + JUtils.LOG("element2=" + element2); + Integer cmp = (Integer) compare.exe(element1, element2); + JUtils.LOG("cmp=" + cmp); + if (cmp.intValue() > 0) { + throw new IllegalStateException(); + } + } + } + + static public int setjmp(jmp_buf jmp) { + // if (jmp.hasBeenCalled()) { + // throw new UnsupportedOperationException(); + // } + jmp.saveCallingEnvironment(); + return 0; + } + + // DEBUG + + public static void printDebugEdge(Agedge_s e) { + System.err.println("*********** PRINT EDGE ********** "); + final Agedgeinfo_t data = (Agedgeinfo_t) Macro.AGDATA(e).castTo(Agedgeinfo_t.class); + final splines splines = (splines) data.getPtr("spl"); + __struct__ bb = splines.getStruct("bb"); + final bezier list = (bezier) splines.getPtr("list"); + System.err.println("splines.size=" + splines.getInt("size")); + System.err.println("bb.LL=" + pointftoString(bb.getStruct("LL"))); + System.err.println("bb.UR=" + pointftoString(bb.getStruct("UR"))); + printDebugBezier((bezier) splines.getPtr("list").getPtr()); + + } + + private static String pointftoString(__struct__ point) { + final StringBuilder sb = new StringBuilder(); + sb.append("("); + sb.append(point.getDouble("x")); + sb.append(" ; "); + sb.append(point.getDouble("y")); + sb.append(")"); + return sb.toString(); + } + + private static void printDebugBezier(bezier bezier) { + System.err.println("bezier.size=" + bezier.getInt("size")); + System.err.println("bezier.sflag=" + bezier.getInt("sflag")); + System.err.println("splines.eflag=" + bezier.getInt("eflag")); + System.err.println("bezier.sp=" + pointftoString(bezier.getStruct("sp"))); + System.err.println("bezier.ep=" + pointftoString(bezier.getStruct("ep"))); + for (int i = 0; i < bezier.getInt("size"); i++) { + final __ptr__ pt = bezier.getPtr("list").plus(i).getPtr(); + System.err.println("pt=" + pointftoString(pt)); + } + } + + private static String pointftoString(__ptr__ point) { + final StringBuilder sb = new StringBuilder(); + sb.append("("); + sb.append(point.getDouble("x")); + sb.append(" ; "); + sb.append(point.getDouble("y")); + sb.append(")"); + return sb.toString(); + } + +} diff -Nru plantuml-8024/src/smetana/core/Macro.java plantuml-8039/src/smetana/core/Macro.java --- plantuml-8024/src/smetana/core/Macro.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/Macro.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,1373 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import h.Agedge_s; +import h.Agedgeinfo_t; +import h.Agnode_s; +import h.Agnodeinfo_t; +import h.Agobj_s; +import h.Agraph_s; +import h.Agraphinfo_t; +import h.Agtag_s; +import h.GVC_s; +import h.boxf; +import h.elist; +import h.nlist_t; +// http://docs.oracle.com/javase/specs/jls/se5.0/html/expressions.html#15.7.4 +// http://www.jbox.dk/sanos/source/lib/string.c.html +import h.pointf; +import h.port; +import h.splines; +import h.textlabel_t; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class Macro { + + public static O F(O result, Object... dummy) { + return result; + } + + public static int ASINT(boolean v) { + return v ? 1 : 0; + } + + public static boolean N(boolean v) { + return v == false; + } + + public static boolean N(int i) { + return i == 0; + } + + public static boolean N(char c) { + return c == 0; + } + + public static boolean N(Object o) { + if (o instanceof Boolean) { + throw new IllegalArgumentException(); + } + if (o instanceof Integer) { + throw new IllegalArgumentException(); + } + return o == null; + } + + public static boolean NOT(boolean v) { + return v == false; + } + + public static boolean NOT(int i) { + return i == 0; + } + + public static boolean NOT(char c) { + return c == 0; + } + + public static boolean NOT(Object o) { + return o == null; + } + + public static void TRACE(String functionName) { + // System.err.println(functionName); + } + + public static __ptr__ UNSUPPORTED(String comment) { + throw new UnsupportedOperationException(comment); + } + + public static int UNSUPPORTED_INT(String comment) { + throw new UnsupportedOperationException(comment); + } + + // Graphviz + + // #define AGRAPH 0 /* can't exceed 2 bits. see Agtag_t. */ + // #define AGNODE 1 + // #define AGOUTEDGE 2 + // #define AGINEDGE 3 /* (1 << 1) indicates an edge tag. */ + // #define AGEDGE AGOUTEDGE /* synonym in object kind args */ + public final static int AGRAPH = 0; + public final static int AGNODE = 1; + public final static int AGOUTEDGE = 2; + public final static int AGINEDGE = 3; + public final static int AGEDGE = AGOUTEDGE; + + // #define AGTAG(obj) (((Agobj_t*)(obj))->tag) + public static __struct__ AGTAG(__ptr__ obj) { + return obj.castTo(Agobj_s.class).getStruct("tag"); + } + + // #define AGTYPE(obj) (AGTAG(obj).objtype) + public static int AGTYPE(__ptr__ obj) { + return AGTAG(obj).getInt("objtype"); + } + + public static void AGTYPE(__ptr__ obj, int v) { + AGTAG(obj).setInt("objtype", v); + } + + // #define AGID(obj) (AGTAG(obj).id) + public static int AGID(__ptr__ obj) { + return AGTAG(obj).getInt("id"); + } + + public static void AGID(__ptr__ obj, int v) { + AGTAG(obj).setInt("id", v); + } + + // #define AGSEQ(obj) (AGTAG(obj).seq) + public static int AGSEQ(__ptr__ obj) { + return AGTAG(obj).getInt("seq"); + } + + public static void AGSEQ(__ptr__ obj, int v) { + AGTAG(obj).setInt("seq", v); + } + + // #define AGATTRWF(obj) (AGTAG(obj).attrwf) + // #define AGDATA(obj) (((Agobj_t*)(obj))->data) + public static __ptr__ AGDATA(__ptr__ obj) { + return obj.castTo(Agobj_s.class).getPtr("data"); + } + + public static void AGDATA(__ptr__ obj, __ptr__ v) { + obj.castTo(Agobj_s.class).setPtr("data", v); + } + + // #define AGIN2OUT(e) ((e)-1) + public static __ptr__ AGIN2OUT(__ptr__ e) { + return e.plus(-1); + } + + // #define AGOUT2IN(e) ((e)+1) + public static __ptr__ AGOUT2IN(__ptr__ e) { + return e.plus(1); + } + + // #define AGOPP(e) ((AGTYPE(e)==AGINEDGE)?AGIN2OUT(e):AGOUT2IN(e)) + public static Agedge_s AGOPP(Agedge_s e) { + return (Agedge_s) (AGTYPE(e) == AGINEDGE ? AGIN2OUT(e) : AGOUT2IN(e)); + } + + // #define AGMKOUT(e) (AGTYPE(e) == AGOUTEDGE? (e): AGIN2OUT(e)) + public static Agedge_s AGMKOUT(__ptr__ e) { + return (Agedge_s) (AGTYPE(e) == AGOUTEDGE ? (e) : AGIN2OUT(e)); + } + + // #define AGMKIN(e) (AGTYPE(e) == AGINEDGE? (e): AGOUT2IN(e)) + public static Agedge_s AGMKIN(__ptr__ e) { + return (Agedge_s) (AGTYPE(e) == AGINEDGE ? (e) : AGOUT2IN(e)); + } + + // #define AGTAIL(e) (AGMKIN(e)->node) + public static Agnode_s AGTAIL(__ptr__ e) { + return (Agnode_s) AGMKIN(e).getPtr("node"); + } + + public static Agnode_s agtail(__ptr__ e) { + return (Agnode_s) AGMKIN(e).getPtr("node"); + } + + public static void agtail(Agedge_s e, __ptr__ v) { + AGMKIN(e).setPtr("node", v); + } + + // #define AGHEAD(e) (AGMKOUT(e)->node) + public static Agnode_s AGHEAD(__ptr__ e) { + return (Agnode_s) AGMKOUT(e).getPtr("node"); + } + + private static Agnode_s aghead(Agedge_s e) { + return (Agnode_s) AGMKOUT(e).getPtr("node"); + } + + public static void aghead(Agedge_s e, __ptr__ v) { + AGMKOUT(e).setPtr("node", v); + } + + // #define agtail(e) AGTAIL(e) + // #define aghead(e) AGHEAD(e) + // #define agopp(e) AGOPP(e) + // #define ageqedge(e,f) (AGMKOUT(e) == AGMKOUT(f)) + + // #define AGHEADPOINTER(g) ((Agnoderef_t*)(g->n_seq->data->hh._head)) + // #define AGRIGHTPOINTER(rep) ((Agnoderef_t*)((rep)->seq_link.right?((void*)((rep)->seq_link.right) - + // offsetof(Agsubnode_t,seq_link)):0)) + // #define AGLEFTPOINTER(rep) ((Agnoderef_t*)((rep)->seq_link.hl._left?((void*)((rep)->seq_link.hl._left) - + // offsetof(Agsubnode_t,seq_link)):0)) + // + // #define FIRSTNREF(g) (agflatten(g,1), AGHEADPOINTER(g)) + // + // #define NEXTNREF(g,rep) (AGRIGHTPOINTER(rep) == AGHEADPOINTER(g)?0:AGRIGHTPOINTER(rep)) + // + // #define PREVNREF(g,rep) (((rep)==AGHEADPOINTER(g))?0:(AGLEFTPOINTER(rep))) + // + // #define LASTNREF(g) (agflatten(g,1), AGHEADPOINTER(g)?AGLEFTPOINTER(AGHEADPOINTER(g)):0) + // #define NODEOF(rep) ((rep)->node) + // + // #define FIRSTOUTREF(g,sn) (agflatten(g,1), (sn)->out_seq) + // #define LASTOUTREF(g,sn) (agflatten(g,1), (Agedgeref_t*)dtlast(sn->out_seq)) + // #define FIRSTINREF(g,sn) (agflatten(g,1), (sn)->in_seq) + // #define NEXTEREF(g,rep) ((rep)->right) + // #define PREVEREF(g,rep) ((rep)->hl._left) + // /* this is expedient but a bit slimey because it "knows" that dict entries of both nodes + // and edges are embedded in main graph objects but allocated separately in subgraphs */ + // #define AGSNMAIN(sn) ((sn)==(&((sn)->node->mainsub))) + // #define EDGEOF(sn,rep) (AGSNMAIN(sn)?((Agedge_t*)((unsigned char*)(rep) - offsetof(Agedge_t,seq_link))) : + // ((Dthold_t*)(rep))->obj) + + // #define LENGTH(e) (ND_rank(aghead(e)) - ND_rank(agtail(e))) + public static int LENGTH(Agedge_s e) { + return ND_rank(aghead(e)) - ND_rank(agtail(e)); + } + + // #define SLACK(e) (LENGTH(e) - ED_minlen(e)) + public static int SLACK(Agedge_s e) { + return LENGTH(e) - ED_minlen(e); + } + + // #define SEQ(a,b,c) (((a) <= (b)) && ((b) <= (c))) + public static boolean SEQ(int a, int b, int c) { + return (((a) <= (b)) && ((b) <= (c))); + } + + // #define TREE_EDGE(e) (ED_tree_index(e) >= 0) + public static boolean TREE_EDGE(Agedge_s e) { + return ED_tree_index(e) >= 0; + } + + // #define GD_parent(g) (((Agraphinfo_t*)AGDATA(g))->parent) + public static __ptr__ GD_parent(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getPtr("parent"); + } + public static void GD_parent(Agraph_s g, __ptr__ v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("parent", v); + } + + // #define GD_level(g) (((Agraphinfo_t*)AGDATA(g))->level) + // #define GD_drawing(g) (((Agraphinfo_t*)AGDATA(g))->drawing) + public static __ptr__ GD_drawing(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getPtr("drawing"); + } + + public static void GD_drawing(Agraph_s g, __ptr__ v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("drawing", v); + } + + // #define GD_bb(g) (((Agraphinfo_t*)AGDATA(g))->bb) + public static __struct__ GD_bb(__ptr__ g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getStruct("bb"); + } + + // #define GD_gvc(g) (((Agraphinfo_t*)AGDATA(g))->gvc) + public static GVC_s GD_gvc(Agraph_s g) { + return (GVC_s) AGDATA(g).castTo(Agraphinfo_t.class).getPtr("gvc"); + } + + public static void GD_gvc(Agraph_s g, GVC_s v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("gvc", v); + } + + // #define GD_cleanup(g) (((Agraphinfo_t*)AGDATA(g))->cleanup) + public static __ptr__ GD_cleanup(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getPtr("cleanup"); + } + + // #define GD_dist(g) (((Agraphinfo_t*)AGDATA(g))->dist) + // #define GD_alg(g) (((Agraphinfo_t*)AGDATA(g))->alg) + // #define GD_border(g) (((Agraphinfo_t*)AGDATA(g))->border) + public static __array_of_struct__ GD_border(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getArrayOfStruct("border"); + } + + // #define GD_cl_cnt(g) (((Agraphinfo_t*)AGDATA(g))->cl_nt) + // #define GD_clust(g) (((Agraphinfo_t*)AGDATA(g))->clust) + public static __ptr__ GD_clust(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getPtr("clust"); + } + public static void GD_clust(Agraph_s g, __ptr__ v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("clust", v); + } + + // #define GD_dotroot(g) (((Agraphinfo_t*)AGDATA(g))->dotroot) + public static Agraph_s GD_dotroot(Agraph_s g) { + return (Agraph_s) AGDATA(g).castTo(Agraphinfo_t.class).getPtr("dotroot"); + } + + public static void GD_dotroot(Agraph_s g, __ptr__ v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("dotroot", v); + } + + // #define GD_comp(g) (((Agraphinfo_t*)AGDATA(g))->comp) + public static __struct__ GD_comp(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getStruct("comp"); + } + + // #define GD_exact_ranksep(g) (((Agraphinfo_t*)AGDATA(g))->exact_ranksep) + public static int GD_exact_ranksep(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("exact_ranksep"); + } + + public static void GD_exact_ranksep(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("exact_ranksep", v); + } + + // #define GD_expanded(g) (((Agraphinfo_t*)AGDATA(g))->expanded) + public static boolean GD_expanded(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getBoolean("expanded"); + } + public static void GD_expanded(Agraph_s g, boolean v) { + AGDATA(g).castTo(Agraphinfo_t.class).setBoolean("expanded", v); + } + + // #define GD_flags(g) (((Agraphinfo_t*)AGDATA(g))->flags) + public static int GD_flags(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("flags"); + } + + public static void GD_flags(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("flags", v); + } + + // #define GD_gui_state(g) (((Agraphinfo_t*)AGDATA(g))->gui_state) + // #define GD_charset(g) (((Agraphinfo_t*)AGDATA(g))->charset) + public static int GD_charset(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("charset"); + } + + public static void GD_charset(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("charset", v); + } + + // #define GD_has_labels(g) (((Agraphinfo_t*)AGDATA(g))->has_labels) + public static int GD_has_labels(__ptr__ g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("has_labels"); + } + + public static void GD_has_labels(__ptr__ g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("has_labels", v); + } + + // #define GD_has_images(g) (((Agraphinfo_t*)AGDATA(g))->has_images) + // #define GD_has_flat_edges(g) (((Agraphinfo_t*)AGDATA(g))->has_flat_edges) + public static int GD_has_flat_edges(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("has_flat_edges"); + } + public static void GD_has_flat_edges(Agraph_s g, boolean v) { + AGDATA(g).castTo(Agraphinfo_t.class).setBoolean("has_flat_edges", v); + } + + // #define GD_has_sourcerank(g) (((Agraphinfo_t*)AGDATA(g))->has_sourcerank) + // #define GD_has_sinkrank(g) (((Agraphinfo_t*)AGDATA(g))->has_sinkrank) + // #define GD_ht1(g) (((Agraphinfo_t*)AGDATA(g))->ht1) + public static double GD_ht1(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getDouble("ht1"); + } + + public static void GD_ht1(Agraph_s g, double v) { + AGDATA(g).castTo(Agraphinfo_t.class).setDouble("ht1", v); + } + + // #define GD_ht2(g) (((Agraphinfo_t*)AGDATA(g))->ht2) + public static double GD_ht2(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getDouble("ht2"); + } + + public static void GD_ht2(Agraph_s g, double v) { + AGDATA(g).castTo(Agraphinfo_t.class).setDouble("ht2", v); + } + + // #define GD_inleaf(g) (((Agraphinfo_t*)AGDATA(g))->inleaf) + // #define GD_installed(g) (((Agraphinfo_t*)AGDATA(g))->installed) + public static int GD_installed(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("installed"); + } + public static void GD_installed(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("installed", v); + } + + // #define GD_label(g) (((Agraphinfo_t*)AGDATA(g))->label) + public static textlabel_t GD_label(__ptr__ g) { + return (textlabel_t) AGDATA(g).castTo(Agraphinfo_t.class).getPtr("label"); + } + public static void GD_label(__ptr__ g, __ptr__ v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("label", v); + } + + // #define GD_leader(g) (((Agraphinfo_t*)AGDATA(g))->leader) + public static Agnode_s GD_leader(Agraph_s g) { + return (Agnode_s) AGDATA(g).castTo(Agraphinfo_t.class).getPtr("leader"); + } + public static void GD_leader(Agraph_s g, __ptr__ v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("leader", v); + } + + // #define GD_rankdir2(g) (((Agraphinfo_t*)AGDATA(g))->rankdir) + public static int GD_rankdir2(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("rankdir"); + } + + public static void GD_rankdir2(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("rankdir", v); + } + + // #define GD_rankdir(g) (((Agraphinfo_t*)AGDATA(g))->rankdir & 0x3) + public static int GD_rankdir(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("rankdir") & 0x3; + } + + // #define GD_flip(g) (GD_rankdir(g) & 1) + public static int GD_flip(Agraph_s g) { + return GD_rankdir(g) & 1; + } + + // #define GD_realrankdir(g) ((((Agraphinfo_t*)AGDATA(g))->rankdir) >> 2) + // #define GD_realflip(g) (GD_realrankdir(g) & 1) + // #define GD_ln(g) (((Agraphinfo_t*)AGDATA(g))->ln) + public static Agnode_s GD_ln(Agraph_s g) { + return (Agnode_s) AGDATA(g).castTo(Agraphinfo_t.class).getPtr("ln"); + } + public static void GD_ln(Agraph_s g, __ptr__ v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("ln", v); + } + + // #define GD_maxrank(g) (((Agraphinfo_t*)AGDATA(g))->maxrank) + public static int GD_maxrank(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("maxrank"); + } + + public static void GD_maxrank(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("maxrank", v); + } + + // #define GD_maxset(g) (((Agraphinfo_t*)AGDATA(g))->maxset) + public static __ptr__ GD_maxset(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getPtr("maxset"); + } + + // #define GD_minrank(g) (((Agraphinfo_t*)AGDATA(g))->minrank) + public static int GD_minrank(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("minrank"); + } + + public static void GD_minrank(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("minrank", v); + } + + // #define GD_minset(g) (((Agraphinfo_t*)AGDATA(g))->minset) + public static __ptr__ GD_minset(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getPtr("minset"); + } + + // #define GD_minrep(g) (((Agraphinfo_t*)AGDATA(g))->minrep) + // #define GD_maxrep(g) (((Agraphinfo_t*)AGDATA(g))->maxrep) + // #define GD_move(g) (((Agraphinfo_t*)AGDATA(g))->move) + // #define GD_n_cluster(g) (((Agraphinfo_t*)AGDATA(g))->n_cluster) + public static int GD_n_cluster(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("n_cluster"); + } + public static void GD_n_cluster(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("n_cluster", v); + } + + // #define GD_n_nodes(g) (((Agraphinfo_t*)AGDATA(g))->n_nodes) + public static int GD_n_nodes(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("n_nodes"); + } + + public static void GD_n_nodes(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("n_nodes", v); + } + + // #define GD_ndim(g) (((Agraphinfo_t*)AGDATA(g))->ndim) + // #define GD_odim(g) (((Agraphinfo_t*)AGDATA(g))->odim) + // #define GD_neato_nlist(g) (((Agraphinfo_t*)AGDATA(g))->neato_nlist) + // #define GD_nlist(g) (((Agraphinfo_t*)AGDATA(g))->nlist) + public static Agnode_s GD_nlist(Agraph_s g) { + return (Agnode_s) AGDATA(g).castTo(Agraphinfo_t.class).getPtr("nlist"); + } + + public static void GD_nlist(Agraph_s g, __ptr__ v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("nlist", v); + } + + // #define GD_nodesep(g) (((Agraphinfo_t*)AGDATA(g))->nodesep) + public static int GD_nodesep(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("nodesep"); + } + + public static void GD_nodesep(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("nodesep", v); + } + + // #define GD_outleaf(g) (((Agraphinfo_t*)AGDATA(g))->outleaf) + // #define GD_rank(g) (((Agraphinfo_t*)AGDATA(g))->rank) + public static __ptr__ GD_rank(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getPtr("rank"); + } + + public static void GD_rank(Agraph_s g, __ptr__ v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("rank", v); + } + + // #define GD_rankleader(g) (((Agraphinfo_t*)AGDATA(g))->rankleader) + public static __ptr__ GD_rankleader(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getPtr("rankleader"); + } + public static void GD_rankleader(Agraph_s g, __ptr__ v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("rankleader", v); + } + + // #define GD_ranksep(g) (((Agraphinfo_t*)AGDATA(g))->ranksep) + public static int GD_ranksep(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("ranksep"); + } + + public static void GD_ranksep(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("ranksep", v); + } + + // #define GD_rn(g) (((Agraphinfo_t*)AGDATA(g))->rn) + public static Agnode_s GD_rn(Agraph_s g) { + return (Agnode_s) AGDATA(g).castTo(Agraphinfo_t.class).getPtr("rn"); + } + public static void GD_rn(Agraph_s g, __ptr__ v) { + AGDATA(g).castTo(Agraphinfo_t.class).setPtr("rn", v); + } + + // #define GD_set_type(g) (((Agraphinfo_t*)AGDATA(g))->set_type) + public static int GD_set_type(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("set_type"); + } + public static void GD_set_type(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("set_type", v); + } + + + // #define GD_label_pos(g) (((Agraphinfo_t*)AGDATA(g))->label_pos) + public static int GD_label_pos(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("label_pos"); + } + public static void GD_label_pos(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("label_pos", v); + } + + // #define GD_showboxes(g) (((Agraphinfo_t*)AGDATA(g))->showboxes) + public static int GD_showboxes(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("showboxes"); + } + + public static void GD_showboxes(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("showboxes", v); + } + + // #define GD_fontnames(g) (((Agraphinfo_t*)AGDATA(g))->fontnames) + public static int GD_fontnames(Agraph_s g) { + return AGDATA(g).castTo(Agraphinfo_t.class).getInt("fontnames"); + } + + public static void GD_fontnames(Agraph_s g, int v) { + AGDATA(g).castTo(Agraphinfo_t.class).setInt("fontnames", v); + } + + // #define GD_spring(g) (((Agraphinfo_t*)AGDATA(g))->spring) + // #define GD_sum_t(g) (((Agraphinfo_t*)AGDATA(g))->sum_t) + // #define GD_t(g) (((Agraphinfo_t*)AGDATA(g))->t) + + // #define ND_id(n) (((Agnodeinfo_t*)AGDATA(n))->id) + public static int ND_id(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("id"); + } + + // #define ND_alg(n) (((Agnodeinfo_t*)AGDATA(n))->alg) + public static __ptr__ ND_alg(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("alg"); + } + public static void ND_alg(Agnode_s n, __ptr__ value) { + AGDATA(n).castTo(Agnodeinfo_t.class).setPtr("alg", value); + } + + // #define ND_UF_parent(n) (((Agnodeinfo_t*)AGDATA(n))->UF_parent) + public static Agnode_s ND_UF_parent(__ptr__ n) { + return (Agnode_s) AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("UF_parent"); + } + public static void ND_UF_parent(__ptr__ n, __ptr__ v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setPtr("UF_parent", v); + } + + // #define ND_set(n) (((Agnodeinfo_t*)AGDATA(n))->set) + // #define ND_UF_size(n) (((Agnodeinfo_t*)AGDATA(n))->UF_size) + public static int ND_UF_size(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("UF_size"); + } + public static void ND_UF_size(Agnode_s n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("UF_size", v); + } + + // #define ND_bb(n) (((Agnodeinfo_t*)AGDATA(n))->bb) + // #define ND_clust(n) (((Agnodeinfo_t*)AGDATA(n))->clust) + public static Agraph_s ND_clust(__ptr__ n) { + return (Agraph_s) AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("clust"); + } + + public static void ND_clust(Agnode_s n, __ptr__ v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setPtr("clust", v); + } + + // #define ND_coord(n) (((Agnodeinfo_t*)AGDATA(n))->coord) + public static __struct__ ND_coord(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getStruct("coord"); + } + + // #define ND_dist(n) (((Agnodeinfo_t*)AGDATA(n))->dist) + + // #define ND_flat_in(n) (((Agnodeinfo_t*)AGDATA(n))->flat_in) + public static __struct__ ND_flat_in(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getStruct("flat_in"); + } + + // #define ND_flat_out(n) (((Agnodeinfo_t*)AGDATA(n))->flat_out) + public static __struct__ ND_flat_out(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getStruct("flat_out"); + } + + // #define ND_gui_state(n) (((Agnodeinfo_t*)AGDATA(n))->gui_state) + // #define ND_has_port(n) (((Agnodeinfo_t*)AGDATA(n))->has_port) + public static boolean ND_has_port(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getBoolean("has_port"); + } + + // #define ND_rep(n) (((Agnodeinfo_t*)AGDATA(n))->rep) + // #define ND_heapindex(n) (((Agnodeinfo_t*)AGDATA(n))->heapindex) + // #define ND_height(n) (((Agnodeinfo_t*)AGDATA(n))->height) + public static double ND_height(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getDouble("height"); + } + + public static void ND_height(Agnode_s n, double v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setDouble("height", v); + } + + // #define ND_hops(n) (((Agnodeinfo_t*)AGDATA(n))->hops) + // #define ND_ht(n) (((Agnodeinfo_t*)AGDATA(n))->ht) + public static double ND_ht(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getDouble("ht"); + } + + public static void ND_ht(Agnode_s n, double v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setDouble("ht", v); + } + + // #define ND_in(n) (((Agnodeinfo_t*)AGDATA(n))->in) + public static __struct__ ND_in(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getStruct("in"); + } + + public static void ND_in(__ptr__ n, __struct__ v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setStruct("in", v); + } + + // #define ND_inleaf(n) (((Agnodeinfo_t*)AGDATA(n))->inleaf) + public static __ptr__ ND_inleaf(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("inleaf"); + } + + // #define ND_label(n) (((Agnodeinfo_t*)AGDATA(n))->label) + public static textlabel_t ND_label(Agnode_s n) { + return (textlabel_t) AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("label"); + } + + public static void ND_label(Agnode_s n, __ptr__ v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setPtr("label", v); + } + + // #define ND_xlabel(n) (((Agnodeinfo_t*)AGDATA(n))->xlabel) + public static __ptr__ ND_xlabel(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("xlabel"); + } + + // #define ND_lim(n) (((Agnodeinfo_t*)AGDATA(n))->lim) + public static int ND_lim(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("lim"); + } + + public static void ND_lim(Agnode_s n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("lim", v); + } + + // #define ND_low(n) (((Agnodeinfo_t*)AGDATA(n))->low) + public static int ND_low(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("low"); + } + + public static void ND_low(Agnode_s n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("low", v); + } + + // #define ND_lw(n) (((Agnodeinfo_t*)AGDATA(n))->lw) + public static double ND_lw(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getDouble("lw"); + } + + public static void ND_lw(Agnode_s n, double v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setDouble("lw", v); + } + + // #define ND_mark(n) (((Agnodeinfo_t*)AGDATA(n))->mark) + public static int ND_mark(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("mark"); + } + public static void ND_mark(__ptr__ n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("mark", v); + } + public static void ND_mark(__ptr__ n, boolean v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setBoolean("mark", v); + } + + // #define ND_mval(n) (((Agnodeinfo_t*)AGDATA(n))->mval) + public static double ND_mval(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getDouble("mval"); + } + public static void ND_mval(Agnode_s n, double v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setDouble("mval", v); + } + + // #define ND_n_cluster(n) (((Agnodeinfo_t*)AGDATA(n))->n_cluster) + // #define ND_next(n) (((Agnodeinfo_t*)AGDATA(n))->next) + public static Agnode_s ND_next(Agnode_s n) { + return (Agnode_s) AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("next"); + } + public static void ND_next(__ptr__ n, __ptr__ v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setPtr("next", v); + } + + // #define ND_node_type(n) (((Agnodeinfo_t*)AGDATA(n))->node_type) + public static int ND_node_type(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("node_type"); + } + public static void ND_node_type(Agnode_s n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("node_type", v); + } + + // #define ND_onstack(n) (((Agnodeinfo_t*)AGDATA(n))->onstack) + public static boolean ND_onstack(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getBoolean("onstack"); + } + public static void ND_onstack(Agnode_s n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("onstack", v); + } + public static void ND_onstack(Agnode_s n, boolean v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setBoolean("onstack", v); + } + + // #define ND_order(n) (((Agnodeinfo_t*)AGDATA(n))->order) + public static int ND_order(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("order"); + } + public static void ND_order(__ptr__ n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("order", v); + } + + // #define ND_other(n) (((Agnodeinfo_t*)AGDATA(n))->other) + public static __struct__ ND_other(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getStruct("other"); + } + + // #define ND_out(n) (((Agnodeinfo_t*)AGDATA(n))->out) + public static __struct__ ND_out(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getStruct("out"); + } + public static void ND_out(__ptr__ n, __struct__ v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setStruct("out", v); + } + + // #define ND_outleaf(n) (((Agnodeinfo_t*)AGDATA(n))->outleaf) + public static __ptr__ ND_outleaf(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("outleaf"); + } + + // #define ND_par(n) (((Agnodeinfo_t*)AGDATA(n))->par) + public static Agedge_s ND_par(Agnode_s n) { + return (Agedge_s) AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("par"); + } + public static void ND_par(Agnode_s n, __ptr__ v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setPtr("par", v); + } + + // #define ND_pinned(n) (((Agnodeinfo_t*)AGDATA(n))->pinned) + // #define ND_pos(n) (((Agnodeinfo_t*)AGDATA(n))->pos) + // #define ND_prev(n) (((Agnodeinfo_t*)AGDATA(n))->prev) + public static __ptr__ ND_prev(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("prev"); + } + public static void ND_prev(Agnode_s n, __ptr__ v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setPtr("prev", v); + } + + // #define ND_priority(n) (((Agnodeinfo_t*)AGDATA(n))->priority) + public static int ND_priority(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("priority"); + } + public static void ND_priority(Agnode_s n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("priority", v); + } + + // #define ND_rank(n) (((Agnodeinfo_t*)AGDATA(n))->rank) + public static int ND_rank(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("rank"); + } + public static void ND_rank(__ptr__ n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("rank", v); + } + + // #define ND_ranktype(n) (((Agnodeinfo_t*)AGDATA(n))->ranktype) + public static int ND_ranktype(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("ranktype"); + } + public static void ND_ranktype(Agnode_s n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("ranktype", v); + } + + // #define ND_rw(n) (((Agnodeinfo_t*)AGDATA(n))->rw) + public static double ND_rw(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getDouble("rw"); + } + public static void ND_rw(Agnode_s n, double v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setDouble("rw", v); + } + + // #define ND_save_in(n) (((Agnodeinfo_t*)AGDATA(n))->save_in) + public static __struct__ ND_save_in(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getStruct("save_in"); + } + + public static void ND_save_in(Agnode_s n, __struct__ v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setStruct("save_in", v); + } + + // #define ND_save_out(n) (((Agnodeinfo_t*)AGDATA(n))->save_out) + public static __struct__ ND_save_out(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getStruct("save_out"); + } + public static void ND_save_out(Agnode_s n, __struct__ v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setStruct("save_out", v); + } + + // #define ND_shape(n) (((Agnodeinfo_t*)AGDATA(n))->shape) + public static __ptr__ ND_shape(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("shape"); + } + public static void ND_shape(Agnode_s n, __ptr__ v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setPtr("shape", v); + } + + // #define ND_shape_info(n) (((Agnodeinfo_t*)AGDATA(n))->shape_info) + public static __ptr__ ND_shape_info(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getPtr("shape_info"); + } + + // #define ND_showboxes(n) (((Agnodeinfo_t*)AGDATA(n))->showboxes) + public static int ND_showboxes(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("showboxes"); + } + public static void ND_showboxes(Agnode_s n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("showboxes", v); + } + + // #define ND_state(n) (((Agnodeinfo_t*)AGDATA(n))->state) + // #define ND_clustnode(n) (((Agnodeinfo_t*)AGDATA(n))->clustnode) + // #define ND_tree_in(n) (((Agnodeinfo_t*)AGDATA(n))->tree_in) + public static __struct__ ND_tree_in(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getStruct("tree_in"); + } + + // #define ND_tree_out(n) (((Agnodeinfo_t*)AGDATA(n))->tree_out) + public static __struct__ ND_tree_out(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getStruct("tree_out"); + } + + // #define ND_weight_class(n) (((Agnodeinfo_t*)AGDATA(n))->weight_class) + public static int ND_weight_class(Agnode_s n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getInt("weight_class"); + } + public static void ND_weight_class(Agnode_s n, int v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setInt("weight_class", v); + } + + // #define ND_width(n) (((Agnodeinfo_t*)AGDATA(n))->width) + public static double ND_width(__ptr__ n) { + return AGDATA(n).castTo(Agnodeinfo_t.class).getDouble("width"); + } + public static void ND_width(Agnode_s n, double v) { + AGDATA(n).castTo(Agnodeinfo_t.class).setDouble("width", v); + } + + // #define ND_xsize(n) (ND_lw(n)+ND_rw(n)) + // #define ND_ysize(n) (ND_ht(n)) + + // #define ED_alg(e) (((Agedgeinfo_t*)AGDATA(e))->alg) + // #define ED_conc_opp_flag(e) (((Agedgeinfo_t*)AGDATA(e))->conc_opp_flag) + public static boolean ED_conc_opp_flag(Agedge_s e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getBoolean("conc_opp_flag"); + } + public static void ED_conc_opp_flag(Agedge_s e, boolean v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setInt("conc_opp_flag", v ? 1 : 0); + } + + // #define ED_count(e) (((Agedgeinfo_t*)AGDATA(e))->count) + public static int ED_count(__ptr__ e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getInt("count"); + } + public static void ED_count(__ptr__ e, int v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setInt("count", v); + } + + // #define ED_cutvalue(e) (((Agedgeinfo_t*)AGDATA(e))->cutvalue) + public static int ED_cutvalue(Agedge_s e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getInt("cutvalue"); + } + public static void ED_cutvalue(Agedge_s e, int v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setInt("cutvalue", v); + } + + // #define ED_edge_type(e) (((Agedgeinfo_t*)AGDATA(e))->edge_type) + // #define ED_adjacent(e) (((Agedgeinfo_t*)AGDATA(e))->adjacent) + public static int ED_adjacent(__ptr__ e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getInt("adjacent"); + } + public static void ED_adjacent(Agedge_s e, int v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setInt("adjacent", v); + } + + // #define ED_factor(e) (((Agedgeinfo_t*)AGDATA(e))->factor) + // #define ED_gui_state(e) (((Agedgeinfo_t*)AGDATA(e))->gui_state) + // #define ED_head_label(e) (((Agedgeinfo_t*)AGDATA(e))->head_label) + public static __ptr__ ED_head_label(Agedge_s e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getPtr("head_label"); + } + + // #define ED_head_port(e) (((Agedgeinfo_t*)AGDATA(e))->head_port) + public static __struct__ ED_head_port(__ptr__ e) { + return (__struct__) AGDATA(e).castTo(Agedgeinfo_t.class).getStruct("head_port"); + } + public static void ED_head_port(Agedge_s e, __struct__ v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setStruct("head_port", v); + } + + // #define ED_label(e) (((Agedgeinfo_t*)AGDATA(e))->label) + public static textlabel_t ED_label(__ptr__ e) { + return (textlabel_t) AGDATA(e).castTo(Agedgeinfo_t.class).getPtr("label"); + } + public static void ED_label(Agedge_s e, __ptr__ v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setPtr("label", v); + } + + // #define ED_xlabel(e) (((Agedgeinfo_t*)AGDATA(e))->xlabel) + public static __ptr__ ED_xlabel(Agedge_s e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getPtr("xlabel"); + } + + // #define ED_label_ontop(e) (((Agedgeinfo_t*)AGDATA(e))->label_ontop) + public static boolean ED_label_ontop(Agedge_s e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getBoolean("label_ontop"); + } + public static void ED_label_ontop(Agedge_s e, boolean v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setBoolean("label_ontop", v); + } + + // #define ED_minlen(e) (((Agedgeinfo_t*)AGDATA(e))->minlen) + public static int ED_minlen(Agedge_s e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getInt("minlen"); + } + public static void ED_minlen(Agedge_s e, int v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setInt("minlen", v); + } + + // #define ED_path(e) (((Agedgeinfo_t*)AGDATA(e))->path) + // #define ED_showboxes(e) (((Agedgeinfo_t*)AGDATA(e))->showboxes) + public static int ED_showboxes(Agedge_s e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getInt("showboxes"); + } + public static void ED_showboxes(Agedge_s e, int v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setInt("showboxes", v); + } + + // #define ED_spl(e) (((Agedgeinfo_t*)AGDATA(e))->spl) + public static splines ED_spl(Agedge_s e) { + return (splines) AGDATA(e).castTo(Agedgeinfo_t.class).getPtr("spl"); + } + public static void ED_spl(Agedge_s e, __ptr__ v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setPtr("spl", v); + } + + // #define ED_tail_label(e) (((Agedgeinfo_t*)AGDATA(e))->tail_label) + public static __ptr__ ED_tail_label(Agedge_s e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getPtr("tail_label"); + } + + // #define ED_tail_port(e) (((Agedgeinfo_t*)AGDATA(e))->tail_port) + public static __struct__ ED_tail_port(__ptr__ e) { + return (__struct__) AGDATA(e).castTo(Agedgeinfo_t.class).getStruct("tail_port"); + } + public static void ED_tail_port(Agedge_s e, __struct__ v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setStruct("tail_port", v); + } + + // #define ED_to_orig(e) (((Agedgeinfo_t*)AGDATA(e))->to_orig) + public static Agedge_s ED_to_orig(__ptr__ e) { + return (Agedge_s) AGDATA(e).castTo(Agedgeinfo_t.class).getPtr("to_orig"); + } + public static void ED_to_orig(Agedge_s e, __ptr__ v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setPtr("to_orig", v); + } + + // #define ED_to_virt(e) (((Agedgeinfo_t*)AGDATA(e))->to_virt) + public static Agedge_s ED_to_virt(Agedge_s e) { + return (Agedge_s) AGDATA(e).castTo(Agedgeinfo_t.class).getPtr("to_virt"); + } + public static void ED_to_virt(Agedge_s e, __ptr__ v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setPtr("to_virt", v); + } + + // #define ED_tree_index(e) (((Agedgeinfo_t*)AGDATA(e))->tree_index) + public static int ED_tree_index(__ptr__ e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getInt("tree_index"); + } + public static void ED_tree_index(__ptr__ e, int v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setInt("tree_index", v); + } + + // #define ED_xpenalty(e) (((Agedgeinfo_t*)AGDATA(e))->xpenalty) + public static int ED_xpenalty(__ptr__ e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getInt("xpenalty"); + } + public static void ED_xpenalty(Agedge_s e, int v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setInt("xpenalty", v); + } + + // #define ED_dist(e) (((Agedgeinfo_t*)AGDATA(e))->dist) + public static double ED_dist(Agedge_s e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getDouble("dist"); + } + public static void ED_dist(Agedge_s e, double v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setDouble("dist", v); + } + + // #define ED_weight(e) (((Agedgeinfo_t*)AGDATA(e))->weight) + public static int ED_weight(Agedge_s e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getInt("weight"); + } + public static void ED_weight(Agedge_s e, int v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setInt("weight", v); + } + + // + // #define ED_alg(e) (((Agedgeinfo_t*)AGDATA(e))->alg) + // #define ED_conc_opp_flag(e) (((Agedgeinfo_t*)AGDATA(e))->conc_opp_flag) + // #define ED_count(e) (((Agedgeinfo_t*)AGDATA(e))->count) + // #define ED_cutvalue(e) (((Agedgeinfo_t*)AGDATA(e))->cutvalue) + // #define ED_edge_type(e) (((Agedgeinfo_t*)AGDATA(e))->edge_type) + public static int ED_edge_type(Agedge_s e) { + return AGDATA(e).castTo(Agedgeinfo_t.class).getInt("edge_type"); + } + public static void ED_edge_type(Agedge_s e, int v) { + AGDATA(e).castTo(Agedgeinfo_t.class).setInt("edge_type", v); + } + + // #define ED_adjacent(e) (((Agedgeinfo_t*)AGDATA(e))->adjacent) + // #define ED_factor(e) (((Agedgeinfo_t*)AGDATA(e))->factor) + // #define ED_gui_state(e) (((Agedgeinfo_t*)AGDATA(e))->gui_state) + // #define ED_head_label(e) (((Agedgeinfo_t*)AGDATA(e))->head_label) + // #define ED_head_port(e) (((Agedgeinfo_t*)AGDATA(e))->head_port) + // #define ED_label(e) (((Agedgeinfo_t*)AGDATA(e))->label) + // #define ED_xlabel(e) (((Agedgeinfo_t*)AGDATA(e))->xlabel) + // #define ED_label_ontop(e) (((Agedgeinfo_t*)AGDATA(e))->label_ontop) + // #define ED_minlen(e) (((Agedgeinfo_t*)AGDATA(e))->minlen) + // #define ED_path(e) (((Agedgeinfo_t*)AGDATA(e))->path) + // #define ED_showboxes(e) (((Agedgeinfo_t*)AGDATA(e))->showboxes) + // #define ED_spl(e) (((Agedgeinfo_t*)AGDATA(e))->spl) + // #define ED_tail_label(e) (((Agedgeinfo_t*)AGDATA(e))->tail_label) + // #define ED_tail_port(e) (((Agedgeinfo_t*)AGDATA(e))->tail_port) + // #define ED_to_orig(e) (((Agedgeinfo_t*)AGDATA(e))->to_orig) + // #define ED_to_virt(e) (((Agedgeinfo_t*)AGDATA(e))->to_virt) + // #define ED_tree_index(e) (((Agedgeinfo_t*)AGDATA(e))->tree_index) + // #define ED_xpenalty(e) (((Agedgeinfo_t*)AGDATA(e))->xpenalty) + // #define ED_dist(e) (((Agedgeinfo_t*)AGDATA(e))->dist) + // #define ED_weight(e) (((Agedgeinfo_t*)AGDATA(e))->weight) + + // #define elist_fastapp(item,L) do {L.list[L.size++] = item; L.list[L.size] = NULL;} while(0) + + // #define ALLOC(size,ptr,type) (ptr? (type*)realloc(ptr,(size)*sizeof(type)):(type*)malloc((size)*sizeof(type))) + public static __ptr__ ALLOC_empty(int size, __ptr__ ptr, Class type) { + return (__ptr__) (ptr != null ? JUtils.sizeof_starstar_empty(type, size).realloc(ptr) : JUtils + .sizeof_starstar_empty(type, size).malloc()); + } + + public static __ptr__ ALLOC_allocated2(int size, __ptr__ ptr, Class type) { + return (__ptr__) (ptr != null ? JUtils.sizeof(type, size).realloc(ptr) : JUtils.sizeof(type, size).malloc()); + } + + public static __ptr__ ALLOC_INT(int size, __ptr__ ptr) { + return (__ptr__) (ptr != null ? JUtils.size_t_array_of_integer(size).realloc(ptr) : JUtils + .size_t_array_of_integer(size).malloc()); + } + + // #define RALLOC(size,ptr,type) ((type*)realloc(ptr,(size)*sizeof(type))) + public static __ptr__ RALLOC(int nb, __ptr__ ptr, Class type) { + throw new UnsupportedOperationException(); + } + + public static __ptr__ ALLOC(int nb, __ptr__ ptr, Class type) { + if (ptr == null) { + return (__ptr__) JUtils.sizeof(type, nb).malloc(); + } + return (__ptr__) JUtils.sizeof(type, nb).realloc(ptr); + } + + // #define elist_append(item,L) do {L.list = ALLOC(L.size + 2,L.list,edge_t*); L.list[L.size++] = item; + // L.list[L.size] = NULL;} while(0) + public static void elist_append(__ptr__ item, __struct__ L) { + L.setPtr("list", ALLOC_empty(L.getInt("size") + 2, L.getPtr("list"), Agedge_s.class)); + L.getArrayOfPtr("list").plus(L.getInt("size")).setPtr(item); + L.setInt("size", 1 + L.getInt("size")); + L.getArrayOfPtr("list").plus(L.getInt("size")).setPtr(null); + } + + // #define alloc_elist(n,L) do {L.size = 0; L.list = N_NEW(n + 1,edge_t*); } while (0) + public static void alloc_elist(int n, __struct__ L, Class cl) { + L.setInt("size", 0); + L.setPtr("list", (__ptr__) JUtils.sizeof_starstar_empty(cl, n + 1).malloc()); + } + + // #define free_list(L) do {if (L.list) free(L.list);} while (0) + public static void free_list(__struct__ L) { + if (L.getPtr("list") != null) + Memory.free(L.getPtr("list")); + } + + public static double ABS(double a) { + return Math.abs(a); + } + + public static int ABS(int a) { + return Math.abs(a); + } + + public static double MAX(double a, double b) { + return Math.max(a, b); + } + + public static int MAX(int a, int b) { + return Math.max(a, b); + } + + public static double MIN(double a, double b) { + return Math.min(a, b); + } + + public static int MIN(int a, int b) { + return Math.min(a, b); + } + + // #define BETWEEN(a,b,c) (((a) <= (b)) && ((b) <= (c))) + public static boolean BETWEEN(double a, double b, double c) { + return (((a) <= (b)) && ((b) <= (c))); + } + + public static boolean BETWEEN(int a, int b, int c) { + return (((a) <= (b)) && ((b) <= (c))); + } + + // #define ROUND(f) ((f>=0)?(int)(f + .5):(int)(f - .5)) + public static int ROUND(double f) { + return ((f >= 0) ? (int) (f + .5) : (int) (f - .5)); + } + + // #define MAKEFWDEDGE(new, old) { \ + // edge_t *newp; \ + // Agedgeinfo_t *info; \ + // newp = new; \ + // info = (Agedgeinfo_t*)newp->base.data; \ + // *info = *(Agedgeinfo_t*)old->base.data; \ + // *newp = *old; \ + // newp->base.data = (Agrec_t*)info; \ + // AGTAIL(newp) = AGHEAD(old); \ + // AGHEAD(newp) = AGTAIL(old); \ + // ED_tail_port(newp) = ED_head_port(old); \ + // ED_head_port(newp) = ED_tail_port(old); \ + // ED_edge_type(newp) = VIRTUAL; \ + // ED_to_orig(newp) = old; \ + + public static void MAKEFWDEDGE(__ptr__ new_, __ptr__ old) { + Agedge_s newp; + Agedgeinfo_t info; + newp = (Agedge_s) new_; + info = (Agedgeinfo_t) newp.getStruct("base").getPtr("data"); + info.copyDataFrom(old.getStruct("base").getPtr("data").castTo(Agedgeinfo_t.class).getStruct()); + newp.copyDataFrom(old); + newp.getStruct("base").setPtr("data", info); + agtail(newp, AGHEAD(old)); + aghead(newp, AGTAIL(old)); + ED_tail_port(newp, ED_head_port(old)); + ED_head_port(newp, ED_tail_port(old)); + ED_edge_type(newp, VIRTUAL); + ED_to_orig(newp, old); + } + + // #define VIRTUAL 1 /* virtual nodes in long edge chains */ + public static final int VIRTUAL = 1; + + // #define ZALLOC(size,ptr,type,osize) (ptr? + // (type*)zrealloc(ptr,size,sizeof(type),osize):(type*)zmalloc((size)*sizeof(type))) + public static __ptr__ ZALLOC(int size, __ptr__ ptr, Class type, int osize) { + if (ptr != null) { + return Memory.realloc(ptr, JUtils.sizeof(type, size)); + } + return (__ptr__) JUtils.sizeof(type, size).malloc(); + } + + public static final int MAXSHORT = 0x7fff; + + public static final int INT_MAX = Integer.MAX_VALUE; + // #define INT_MIN (-INT_MAX - 1) + public static final int INT_MIN = Integer.MIN_VALUE; + static { + if (INT_MIN != -INT_MAX - 1) { + throw new IllegalStateException(); + } + } + + public static final double HUGE_VAL = Double.POSITIVE_INFINITY; + + public static double fabs(double x) { + return Math.abs(x); + } + + public static double hypot(double x, double y) { + double t; + x = Math.abs(x); + y = Math.abs(y); + t = Math.min(x, y); + x = Math.max(x, y); + t = t / x; + return x * Math.sqrt(1 + t * t); + } + + // #define SQR(a) ((a) * (a)) + public static double SQR(double a) { + return a * a; + } + + // #define MILLIPOINT .001 + // #define MICROPOINT .000001 + public static double MILLIPOINT = .001; + public static double MICROPOINT = .000001; + + // #define APPROXEQPT(p,q,tol) (DIST2((p),(q)) < SQR(tol)) + public static boolean APPROXEQPT(__ptr__ p, __ptr__ q, double tol) { + return (DIST2((p), (q)) < SQR(tol)); + } + + // #define LEN2(a,b) (SQR(a) + SQR(b)) + public static double LEN2(double a, double b) { + return (SQR(a) + SQR(b)); + } + + // #define LEN(a,b) (sqrt(LEN2((a),(b)))) + public static double LEN(double a, double b) { + return (Math.sqrt(LEN2((a), (b)))); + } + + // + // #define DIST2(p,q) (LEN2(((p).x - (q).x),((p).y - (q).y))) + public static double DIST2(__ptr__ p, __ptr__ q) { + return (LEN2(((p).getDouble("x") - (q).getDouble("x")), ((p).getDouble("y") - (q).getDouble("y")))); + } + + public static double DIST2(__struct__ p, __ptr__ q) { + return (LEN2(((p).getDouble("x") - (q).getDouble("x")), ((p).getDouble("y") - (q).getDouble("y")))); + } + + // #define DIST(p,q) (sqrt(DIST2((p),(q)))) + + // #define INSIDE(p,b) (BETWEEN((b).LL.x,(p).x,(b).UR.x) && BETWEEN((b).LL.y,(p).y,(b).UR.y)) + public static boolean INSIDE(__struct__ b, __struct__ p) { + return (BETWEEN(b.getStruct("LL").getDouble("x"), p.getDouble("x"), b.getStruct("UR").getDouble("x")) && BETWEEN( + b.getStruct("LL").getDouble("y"), p.getDouble("y"), b.getStruct("UR").getDouble("y"))); + } + + public static final double M_PI = Math.PI; + // #define SQRT2 1.41421356237309504880 + public static final double SQRT2 = Math.sqrt(2); + + // #define RADIANS(deg) ((deg)/180.0 * M_PI) + public static double RADIANS(double deg) { + return ((deg) / 180.0 * M_PI); + } + + // #define DISTSQ(a, b) ( \ + // (((a).x - (b).x) * ((a).x - (b).x)) + (((a).y - (b).y) * ((a).y - (b).y)) \ + // ) + + public static double DISTSQ(__struct__ a, __struct__ b) { + return (((a).getDouble("x") - (b).getDouble("x")) * ((a).getDouble("x") - (b).getDouble("x"))) + + (((a).getDouble("y") - (b).getDouble("y")) * ((a).getDouble("y") - (b).getDouble("y"))); + } + + public static void hackInitDimensionFromLabel(__struct__ size, String label) { + if (label.matches("_dim_\\d+_\\d+_")) { + Pattern p = Pattern.compile("_dim_(\\d+)_(\\d+)_"); + Matcher m = p.matcher(label); + if (m.matches() == false) { + throw new IllegalStateException(); + } + int ww = Integer.parseInt(m.group(1)); + int hh = Integer.parseInt(m.group(2)); + size.setDouble("x", ww); + size.setDouble("y", hh); + JUtils.LOG2("Hacking dimension to width=" + ww + " height=" + hh); + } + } + + public static CString createHackInitDimensionFromLabel(int width, int height) { + return new CString("_dim_" + width + "_" + height + "_"); + } +} diff -Nru plantuml-8024/src/smetana/core/Memory.java plantuml-8039/src/smetana/core/Memory.java --- plantuml-8024/src/smetana/core/Memory.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/Memory.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,92 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ +package smetana.core; + +import smetana.core.amiga.StarArrayOfPtr; +import smetana.core.amiga.StarStar; +import smetana.core.amiga.StarStruct; + +public class Memory { + + public static __ptr__ malloc(Class cl) { + JUtils.LOG("MEMORY::malloc " + cl); + return StarStruct.malloc(cl); + } + + public static __ptr__ malloc(size_t size) { + return (__ptr__) size.malloc(); + } + + public static __ptr__ realloc(__ptr__ old, size_t size) { + if (old instanceof StarArrayOfPtr) { + ((StarArrayOfPtr) old).realloc(((size_t_array_of_something) size).getNb()); + return old; + } + if (old instanceof StarStar) { + ((StarStar) old).realloc(((size_t_array_of_array_of_something_empty) size).getNb()); + return old; + } + throw new UnsupportedOperationException(); + } + + public static void free(Object arg) { + } + + public static int identityHashCode(CString data) { + if (data==null) { + return 0; + } + //int result = 2 * System.identityHashCode(data); + int result = data.getUid(); + Z._().all.put(result, data); + // System.err.println("Memory::identityHashCode data=" + data); + // System.err.println("Memory::identityHashCode result=" + result + " " + Z._().all.size()); + return result; + } + + public static Object fromIdentityHashCode(int hash) { + // System.err.println("Memory::fromIdentityHashCode hash=" + hash); + if (hash % 2 != 0) { + throw new IllegalArgumentException(); + } + Object result = Z._().all.get(hash); + // System.err.println("Memory::fromIdentityHashCode result=" + result); + if (result == null) { + throw new UnsupportedOperationException(); + } + return result; + } + +} diff -Nru plantuml-8024/src/smetana/core/MutableDouble.java plantuml-8039/src/smetana/core/MutableDouble.java --- plantuml-8024/src/smetana/core/MutableDouble.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/MutableDouble.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,63 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +public class MutableDouble { + + private double value; + + public MutableDouble(double init) { + this.value = init; + } + + public double getValue() { + return value; + } + + public void setValue(double value) { + this.value = value; + } + + public __ptr__ amp() { + return new MutableDoublePtr(this); + } + + @Override + public String toString() { + return "" + value; + } + +} diff -Nru plantuml-8024/src/smetana/core/MutableDoublePtr.java plantuml-8039/src/smetana/core/MutableDoublePtr.java --- plantuml-8024/src/smetana/core/MutableDoublePtr.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/MutableDoublePtr.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,57 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import smetana.core.amiga.Area; + +public class MutableDoublePtr extends UnsupportedC implements Area { + + private final MutableDouble value; + + public MutableDoublePtr(MutableDouble value) { + this.value = value; + } + + public void memcopyFrom(Area source) { + throw new UnsupportedOperationException(); + } + + @Override + public double getDouble() { + return value.getValue(); + } + +} diff -Nru plantuml-8024/src/smetana/core/OFFSET.java plantuml-8039/src/smetana/core/OFFSET.java --- plantuml-8024/src/smetana/core/OFFSET.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/OFFSET.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,98 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +public class OFFSET { + + private static int CPT = 10000; + private static Map byID = new HashMap(); + private static Map primaryKey = new HashMap(); + + private final Class cl; + private final String field; + private final int id; + + private OFFSET(Class cl, String field) { + this.cl = cl; + this.field = field; + this.id = CPT++; + JUtils.LOG("REAL CREATING OF " + this); + } + + @Override + public String toString() { + return cl.getName() + "::" + field; + } + + public static OFFSET create(Class cl, String field) { + final Object key = Arrays.asList(cl, field); + JUtils.LOG("getting OFFSET " + key); + OFFSET result = primaryKey.get(key); + if (result != null) { + JUtils.LOG("FOUND!"); + return result; + } + result = new OFFSET(cl, field); + byID.put(result.id, result); + primaryKey.put(key, result); + return result; + } + + public int toInt() { + return id; + } + + public static OFFSET fromInt(int value) { + final OFFSET result = byID.get(value); + if (result == null) { + throw new IllegalArgumentException("value=" + value); + } + return result; + } + + public final Class getTheClass() { + return cl; + } + + public final String getField() { + return field; + } + +} diff -Nru plantuml-8024/src/smetana/core/pointf_s.java plantuml-8039/src/smetana/core/pointf_s.java --- plantuml-8024/src/smetana/core/pointf_s.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/pointf_s.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,46 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +public interface pointf_s extends __ptr__ { + // typedef struct pointf_s + // { + // double x, y + // } + // pointf +} + +// typedef struct pointf_s { double x, y; } pointf; diff -Nru plantuml-8024/src/smetana/core/Ppolyline_t.java plantuml-8039/src/smetana/core/Ppolyline_t.java --- plantuml-8024/src/smetana/core/Ppolyline_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/Ppolyline_t.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,42 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import h.Ppoly_t; + +public interface Ppolyline_t extends Ppoly_t { + +} diff -Nru plantuml-8024/src/smetana/core/__ptr__.java plantuml-8039/src/smetana/core/__ptr__.java --- plantuml-8024/src/smetana/core/__ptr__.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/__ptr__.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,66 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + + + +public interface __ptr__ extends __c__fields { + + public __ptr__ castTo(Class dest); + public Object addVirtualBytes(int bytes); + public __ptr__ unsupported(); + public __ptr__ plus(int pointerMove); + public int comparePointer(__ptr__ other); + public int minus(__ptr__ other); + + public String getDebug(String fieldName); + + public void copyDataFrom(__ptr__ other); + public void copyDataFrom(__struct__ other); + + public int getInt(); + public void setInt(int value); + public double getDouble(); + public void setDouble(double value); + public __ptr__ getPtr(); + public void setPtr(__ptr__ value); + public __struct__ getStruct(); + public void setStruct(__struct__ value); + + public Object call(String name, Object... args); + + +} diff -Nru plantuml-8024/src/smetana/core/size_t_array_of_array_of_something_allocated.java plantuml-8039/src/smetana/core/size_t_array_of_array_of_something_allocated.java --- plantuml-8024/src/smetana/core/size_t_array_of_array_of_something_allocated.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/size_t_array_of_array_of_something_allocated.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,77 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + + +public class size_t_array_of_array_of_something_allocated implements size_t { + + final private int nb; + final private Class cl; + + public size_t_array_of_array_of_something_allocated(Class cl, int nb) { + this.nb = nb; + this.cl = cl; + } + + public boolean isZero() { + return nb == 0; + } + + public __ptr__ realloc(Object old) { + throw new UnsupportedOperationException(); + } + + public __array_of_struct__ malloc() { + return __array_of_struct__.malloc(cl, nb); + } + + public size_t negate() { + throw new UnsupportedOperationException(); + } + + public size_t plus(int length) { + throw new UnsupportedOperationException(); + } + + public boolean isStrictPositive() { + throw new UnsupportedOperationException(); + } + + public boolean isStrictNegative() { + throw new UnsupportedOperationException(); + } + +} diff -Nru plantuml-8024/src/smetana/core/size_t_array_of_array_of_something_empty.java plantuml-8039/src/smetana/core/size_t_array_of_array_of_something_empty.java --- plantuml-8024/src/smetana/core/size_t_array_of_array_of_something_empty.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/size_t_array_of_array_of_something_empty.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,88 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import smetana.core.amiga.StarStar; + +public class size_t_array_of_array_of_something_empty implements size_t { + + final private int nb; + final private Class cl; + + public size_t_array_of_array_of_something_empty(Class cl, int nb) { + this.nb = nb; + this.cl = cl; + } + + public boolean isZero() { + return nb == 0; + } + + public __ptr__ realloc(Object old) { + JUtils.LOG("realloc old1=" + old); + if (nb == 0) { + return null; + } + final StarStar data = (StarStar) old; + data.realloc(nb); + return data; + } + + public __ptr__ malloc() { + return StarStar.array_of_array_of_something_empty(cl, nb); + } + + public size_t negate() { + throw new UnsupportedOperationException(); + } + + public size_t plus(int length) { + throw new UnsupportedOperationException(); + } + + public boolean isStrictPositive() { + throw new UnsupportedOperationException(); + } + + public boolean isStrictNegative() { + throw new UnsupportedOperationException(); + } + + public final int getNb() { + return nb; + } + +} diff -Nru plantuml-8024/src/smetana/core/size_t_array_of_charstars.java plantuml-8039/src/smetana/core/size_t_array_of_charstars.java --- plantuml-8024/src/smetana/core/size_t_array_of_charstars.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/size_t_array_of_charstars.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,79 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import smetana.core.amiga.StarArrayOfCString; + + +public class size_t_array_of_charstars implements size_t { + + final private int size; + + public size_t_array_of_charstars(int size) { + this.size = size; + } + + public boolean isZero() { + return size == 0; + } + + public __ptr__ malloc() { + return new StarArrayOfCString(__array_of_cstring__.mallocStarChar(size)); + // return new StarArray(__array__.mallocStarChar(size)); + // return AreaArray.mallocStarChar(size); + } + + public size_t negate() { + throw new UnsupportedOperationException(); + } + + public size_t plus(int length) { + throw new UnsupportedOperationException(); + } + + public boolean isStrictPositive() { + throw new UnsupportedOperationException(); + } + + public boolean isStrictNegative() { + throw new UnsupportedOperationException(); + } + + public __ptr__ realloc(Object old) { + throw new UnsupportedOperationException(); + } + +} diff -Nru plantuml-8024/src/smetana/core/size_t_array_of_integer.java plantuml-8039/src/smetana/core/size_t_array_of_integer.java --- plantuml-8024/src/smetana/core/size_t_array_of_integer.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/size_t_array_of_integer.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,84 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import smetana.core.amiga.StarArrayOfInteger; + +/** + * "Pseudo size" of a C structure. In C, this is the actual size of the structure. In Java, this is an indication to + * know which structure we are going to allocate. + * + * @author Arnaud Roques + * + */ +public class size_t_array_of_integer implements size_t { + + final private int nb; + + public size_t_array_of_integer(int nb) { + this.nb = nb; + } + + public boolean isZero() { + return nb == 0; + } + + public __ptr__ malloc() { + return new StarArrayOfInteger(__array_of_integer__.mallocInteger(nb)); + } + + public size_t negate() { + throw new UnsupportedOperationException(); + } + + public size_t plus(int length) { + throw new UnsupportedOperationException(); + } + + public boolean isStrictPositive() { + throw new UnsupportedOperationException(); + } + + public boolean isStrictNegative() { + throw new UnsupportedOperationException(); + } + + public __ptr__ realloc(Object old) { + ((StarArrayOfInteger) old).realloc(nb); + return (__ptr__) old; + } + +} diff -Nru plantuml-8024/src/smetana/core/size_t_array_of_something.java plantuml-8039/src/smetana/core/size_t_array_of_something.java --- plantuml-8024/src/smetana/core/size_t_array_of_something.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/size_t_array_of_something.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,88 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import smetana.core.amiga.StarArrayOfPtr; +import smetana.core.amiga.StarStar; + +public class size_t_array_of_something implements size_t { + + final private int nb; + final private Class cl; + + public size_t_array_of_something(Class cl, int nb) { + this.nb = nb; + this.cl = cl; + } + + public boolean isZero() { + return nb == 0; + } + + public __ptr__ malloc() { + return new StarArrayOfPtr(__array_of_ptr__.malloc_allocated(cl, nb)); + } + + public size_t negate() { + throw new UnsupportedOperationException(); + } + + public size_t plus(int length) { + throw new UnsupportedOperationException(); + } + + public boolean isStrictPositive() { + throw new UnsupportedOperationException(); + } + + public boolean isStrictNegative() { + throw new UnsupportedOperationException(); + } + + public __ptr__ realloc(Object old) { + if (old instanceof StarStar) { + ((StarStar) old).realloc(nb); + return (__ptr__) old; + } + ((StarArrayOfPtr) old).realloc(nb); + return (__ptr__) old; + } + + public int getNb() { + return nb; + } + +} diff -Nru plantuml-8024/src/smetana/core/size_t.java plantuml-8039/src/smetana/core/size_t.java --- plantuml-8024/src/smetana/core/size_t.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/size_t.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,54 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +public interface size_t { + + Object malloc(); + + Object realloc(Object old); + + size_t negate(); + + size_t plus(int length); + + boolean isStrictPositive(); + + boolean isStrictNegative(); + + boolean isZero(); + +} diff -Nru plantuml-8024/src/smetana/core/size_t_of_element.java plantuml-8039/src/smetana/core/size_t_of_element.java --- plantuml-8024/src/smetana/core/size_t_of_element.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/size_t_of_element.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,78 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +/** + * "Pseudo size" of a C structure. In C, this is the actual size of the structure. In Java, this is an indication to + * know which structure we are going to allocate. + * + * @author Arnaud Roques + * + */ +public class size_t_of_element implements size_t { + + public size_t_of_element(Object foo) { + } + + public __ptr__ malloc() { + throw new UnsupportedOperationException(); + } + + public __ptr__ realloc(Object old) { + throw new UnsupportedOperationException(); + } + + public size_t negate() { + throw new UnsupportedOperationException(); + } + + public size_t plus(int length) { + throw new UnsupportedOperationException(); + } + + public boolean isStrictPositive() { + throw new UnsupportedOperationException(); + } + + public boolean isStrictNegative() { + throw new UnsupportedOperationException(); + } + + public boolean isZero() { + throw new UnsupportedOperationException(); + } + +} diff -Nru plantuml-8024/src/smetana/core/size_t_struct.java plantuml-8039/src/smetana/core/size_t_struct.java --- plantuml-8024/src/smetana/core/size_t_struct.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/size_t_struct.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,171 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +/** + * "Pseudo size" of a C structure. In C, this is the actual size of the structure. In Java, this is an indication to + * know which structure we are going to allocate. + * + * @author Arnaud Roques + * + */ +public class size_t_struct implements size_t { + + public final Class tobeAllocated; +// public final int bytes; + private boolean positive = true; + + public size_t_struct(Class tobeAllocated) { + this.tobeAllocated = tobeAllocated; + } + +// public size_t_struct(Class tobeAllocated, int arraySize) { +// this.tobeAllocated = tobeAllocated; +// this.bytes = 1; +// this.arraySize = arraySize; +// JUtils.LOG("building " + this); +// // Thread.dumpStack(); +// } +// + public size_t_struct negate() { + final size_t_struct result = new size_t_struct(tobeAllocated); + result.positive = !result.positive; + return result; + } + +// private size_t_struct(int bytes) { +// this.tobeAllocated = null; +// this.arraySize = 0; +// this.bytes = bytes; +// JUtils.LOG("building " + this); +// // Thread.dumpStack(); +// } + + public size_t_struct multiply(int sz) { +// if (tobeAllocated == null && arraySize == 0) { +// return new size_t_struct(bytes * sz); +// } + throw new UnsupportedOperationException(); + } + + // public static final size_t_struct MINUS_ONE = new size_t_struct(-1); + +// @Override +// public String toString() { +// return super.toString() + " size_t(" + tobeAllocated + "*" + arraySize + ", bytes=" + bytes + ")"; +// } + + public boolean isStrictPositive() { + return positive; + } + + public boolean isStrictNegative() { + return !positive; + } + + + // public boolean isStrictNegative() { + // return false; + // } + + // public static boolean isStrictNegative(size_t_struct v) { + // if (v == null) { + // return false; + // } + // return v.bytes < 0; + // } + // + // public static boolean isNegativeOrNull(size_t_struct v) { + // if (v == null) { + // return true; + // } + // return v.bytes <= 0; + // } + + public final Class getTobeAllocated() { + return tobeAllocated; + } + + public __ptr__ malloc() { + if (tobeAllocated != null) { + return Memory.malloc(tobeAllocated); + } + return (__ptr__) new CObject(-1, tobeAllocated); + } + + public size_t_struct plus(int strlen) { +// throw new UnsupportedOperationException(); + JUtils.LOG("adding " + strlen + " to " + this); + return this; + } + + public boolean isZero() { + return false; + } + +// public boolean isStrictLessThan(int v) { +// return false; +// } + +// public void setTo(int v) { +// throw new UnsupportedOperationException(); +// } + +// public size_t_struct multiplyBySizeofStarChar() { +// throw new UnsupportedOperationException(); +// } + +// public static size_t_struct fromInt(int bytes) { +// return new size_t_struct(bytes); +// } + +// public int getSizeInBytes() { +// return bytes; +// } +// +// /** +// * @return the arraySize +// */ +// public int getArraySize() { +// return arraySize; +// } + + public __ptr__ realloc(Object old) { + throw new UnsupportedOperationException(); + } + + +} diff -Nru plantuml-8024/src/smetana/core/STARSTAR.java plantuml-8039/src/smetana/core/STARSTAR.java --- plantuml-8024/src/smetana/core/STARSTAR.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/STARSTAR.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,57 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +public class STARSTAR { + + private final ACCESS getAndSet; + + private STARSTAR(ACCESS getAndSet) { + this.getAndSet = getAndSet; + } + + public static STARSTAR amp(ACCESS getAndSet) { + return new STARSTAR(getAndSet); + } + + public O getMe() { + return getAndSet.get(); + } + + public void setMe(O obj) { + getAndSet.set(obj); + } +} diff -Nru plantuml-8024/src/smetana/core/__struct__.java plantuml-8039/src/smetana/core/__struct__.java --- plantuml-8024/src/smetana/core/__struct__.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/__struct__.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,180 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import smetana.core.amiga.Area; +import smetana.core.amiga.StarArrayOfPtr; +import smetana.core.amiga.StarArrayOfStruct; +import smetana.core.amiga.StarStruct; + +public class __struct__ implements __c__fields, Area { + + final private StarStruct data; + + public __struct__(Class cl) { + this.data = (StarStruct) Memory.malloc(cl); + } + + @Override + public String toString() { + return super.toString() + " " + data.getUID36(); + } + + public __struct__(StarStruct data) { + this.data = data; + } + + public __struct__ copy() { + final __struct__ result = new __struct__(data.getRealClass()); + if (result.data.getRealClass() != this.data.getRealClass()) { + throw new IllegalStateException(); + } + result.____(this); + return result; + } + + public static __struct__ from(Class cl) { + return new __struct__(cl); + } + + public void ____(__struct__ other) { + data.copyDataFrom(other); + } + + public void ____(__ptr__ other) { + if (other instanceof StarArrayOfPtr) { + ____(((StarArrayOfPtr) other).getStruct()); + return; + } + if (other instanceof StarStruct) { + memcopyFrom((StarStruct) other); + return; + } + if (other instanceof StarArrayOfStruct) { + StarArrayOfStruct array = (StarArrayOfStruct) other; + memcopyFrom(array.getStruct()); + return; + } + throw new UnsupportedOperationException(); + } + + public void memcopyFrom(Area source) { + data.memcopyFrom(source); + } + + public StarStruct amp() { + return data; + } + + public StarStruct getInternalData() { + return data; + } + + public __ptr__ getPtr(String fieldName) { + return data.getPtr(fieldName); + } + + public __struct__ getStruct(String fieldName) { + return data.getStruct(fieldName); + } + + public boolean getBoolean(String fieldName) { + return data.getBoolean(fieldName); + } + + public double getDouble(String fieldName) { + return data.getDouble(fieldName); + } + + public void setCString(String fieldName, CString value) { + data.setCString(fieldName, value); + } + + + public CString getCString(String fieldName) { + return data.getCString(fieldName); + } + + public int getInt(String fieldName) { + return data.getInt(fieldName); + } + + public __ptr__ setPtr(String fieldName, __ptr__ value) { + return data.setPtr(fieldName, value); + } + + public void setStruct(String fieldName, __struct__ value) { + data.setStruct(fieldName, value); + } + + public void setDouble(String fieldName, double value) { + data.setDouble(fieldName, value); + } + + public void setInt(String fieldName, int value) { + data.setInt(fieldName, value); + } + + public void setBoolean(String fieldName, boolean value) { + data.setBoolean(fieldName, value); + } + + public Object call(String name, Object... args) { + return data.call(name, args); + } + +// public __array__ getArray(String fieldName) { +// return data.getArray(fieldName); +// } + + public __array_of_integer__ getArrayOfInteger(String fieldName) { + throw new UnsupportedOperationException(); + } + + public __array_of_struct__ getArrayOfStruct(String fieldName) { + return data.getArrayOfStruct(fieldName); + } + + public __array_of_ptr__ getArrayOfPtr(String fieldName) { + return data.getArrayOfPtr(fieldName); + } + + public __array_of_cstring__ getArrayOfCString(String fieldName) { + throw new UnsupportedOperationException(); + } + + +} diff -Nru plantuml-8024/src/smetana/core/StructureDefinition.java plantuml-8039/src/smetana/core/StructureDefinition.java --- plantuml-8024/src/smetana/core/StructureDefinition.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/StructureDefinition.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,154 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class StructureDefinition { + + private static final Map all = new HashMap(); + + public static StructureDefinition from(Class cl) { + if (cl == null) { + throw new IllegalArgumentException(); + } + StructureDefinition result = all.get(cl); + if (result == null) { + result = new StructureDefinition(cl); + all.put(cl, result); + } + return result; + } + + private final Class cl; + private Map buckets; // = new LinkedHashMap(); + + private StructureDefinition(Class cl) { + // JUtils.LOG("BUIDLING StructureDefinition " + cl); + this.cl = cl; + } + + public String toString() { + return (cl == null ? "NO_CLASS" : cl.getName()) + " " + buckets; + } + + private Map buckets() { + if (buckets == null) { + final List definition = CType.getDefinition(cl); + JUtils.LOG("StructureDefinition::run for " + cl); + JUtils.LOG("def=" + definition); + JUtils.LOG("first=" + definition.get(0)); + + buckets = new LinkedHashMap(); + + if (definition.get(0).equals("typedef enum")) { + final String last = definition.get(definition.size() - 1); + if (last.matches("\\w+") == false) { + throw new UnsupportedOperationException(); + } + buckets.put(last, Bucket.buildEnum(last, definition)); + return buckets; + } + + if (definition.get(0).equals("typedef struct gvplugin_active_textlayout_s") == false + && definition.get(0).equals("typedef struct color_s") == false + && definition.get(0).equals("typedef struct") == false + && definition.get(0).equals("typedef struct pointf_s") == false + && definition.get(0).equals("typedef struct gvplugin_active_layout_s") == false + && definition.get(0).equals("typedef struct GVCOMMON_s") == false + && definition.get(0).equals("struct " + cl.getSimpleName()) == false + && definition.get(0).equals("typedef struct " + cl.getSimpleName()) == false + && definition.get(0).equals("typedef struct " + cl.getSimpleName().replaceFirst("_t", "_s")) == false + && definition.get(0).equals("typedef union " + cl.getSimpleName()) == false) { + throw new IllegalStateException(" VERSUS <" + definition.get(0) + + ">"); + } + if (definition.get(1).equals("{") == false) { + throw new IllegalStateException(); + } + + int last = definition.size() - 1; + if (definition.get(definition.size() - 2).equals("}") + && definition.get(definition.size() - 1).equals(cl.getSimpleName())) { + last--; + } + + if (definition.get(last).equals("}") == false) { + throw new IllegalStateException(); + } + + for (Iterator it = definition.subList(2, last).iterator(); it.hasNext();) { + buckets.putAll(Bucket.buildSome(it)); + } + } + return buckets; + } + + public Set getFields() { + return buckets().keySet(); + } + + public Collection getBuckets() { + return buckets().values(); + } + + public Map getBucketsMap() { + return buckets(); + } + + public Bucket getBucket(String field) { + final Bucket result = buckets().get(field); + if (result == null) { + throw new IllegalArgumentException(field); + } + return result; + } + + public Class getTheClass() { + return cl; + } + + public boolean containsFieldName(String fieldName) { + return buckets().keySet().contains(fieldName); + } + +} diff -Nru plantuml-8024/src/smetana/core/tms.java plantuml-8039/src/smetana/core/tms.java --- plantuml-8024/src/smetana/core/tms.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/tms.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,39 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +public interface tms extends __ptr__ { +} diff -Nru plantuml-8024/src/smetana/core/UnsupportedC.java plantuml-8039/src/smetana/core/UnsupportedC.java --- plantuml-8024/src/smetana/core/UnsupportedC.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/UnsupportedC.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,181 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +public class UnsupportedC implements __ptr__ { + + public int getInt() { + throw new UnsupportedOperationException(getClass().toString()); + } + + public void setInt(int value) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public void setCString(String fieldName, CString value) { + throw new UnsupportedOperationException(getClass().toString()); + } + + + public int minus(__ptr__ other) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public double getDouble() { + throw new UnsupportedOperationException(getClass().toString()); + } + + public void setDouble(double value) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public __ptr__ getPtr() { + throw new UnsupportedOperationException(getClass().toString()); + } + + public void setPtr(__ptr__ value) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public __ptr__ getPtr(String fieldName) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public __struct__ getStruct() { + throw new UnsupportedOperationException(getClass().toString()); + } + + public void setStruct(__struct__ value) { + throw new UnsupportedOperationException(getClass().toString()); + } + + // public __array__ getArray(String fieldName) { + // throw new UnsupportedOperationException(getClass().toString()); + // } + + public __array_of_integer__ getArrayOfInteger(String fieldName) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public __array_of_struct__ getArrayOfStruct(String fieldName) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public __array_of_ptr__ getArrayOfPtr(String fieldName) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public __array_of_cstring__ getArrayOfCString(String fieldName) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public __struct__ getStruct(String fieldName) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public boolean getBoolean(String fieldName) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public double getDouble(String fieldName) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public CString getCString(String fieldName) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public int getInt(String fieldName) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public __ptr__ setPtr(String fieldName, __ptr__ data) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public void setStruct(String fieldName, __struct__ data) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public void setInt(String fieldName, int data) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public void setBoolean(String fieldName, boolean data) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public void setDouble(String fieldName, double data) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public __ptr__ castTo(Class dest) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public Object call(String name, Object... args) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public Object addVirtualBytes(int bytes) { + throw new UnsupportedOperationException(getClass().toString()); + } + + final public __ptr__ unsupported() { + throw new UnsupportedOperationException(getClass().toString()); + } + + public __ptr__ plus(int pointerMove) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public int comparePointer(__ptr__ other) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public String getDebug(String fieldName) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public void copyDataFrom(__ptr__ other) { + throw new UnsupportedOperationException(getClass().toString()); + } + + public void copyDataFrom(__struct__ other) { + throw new UnsupportedOperationException(getClass().toString()); + } + +} diff -Nru plantuml-8024/src/smetana/core/Z.java plantuml-8039/src/smetana/core/Z.java --- plantuml-8024/src/smetana/core/Z.java 1970-01-01 00:00:00.000000000 +0000 +++ plantuml-8039/src/smetana/core/Z.java 2016-04-22 16:26:34.000000000 +0000 @@ -0,0 +1,507 @@ +/* ======================================================================== + * PlantUML : a free UML diagram generator + * ======================================================================== + * + * (C) Copyright 2009-2017, Arnaud Roques + * + * Project Info: http://plantuml.com + * + * This file is part of PlantUML. + * + * Licensed under The MIT License (Massachusetts Institute of Technology License) + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * Original Author: Arnaud Roques + */ + +package smetana.core; + +import static smetana.core.JUtils.function; +import gen.lib.cdt.dttree__c; +import gen.lib.cgraph.attr__c; +import gen.lib.cgraph.edge__c; +import gen.lib.cgraph.graph__c; +import gen.lib.cgraph.id__c; +import gen.lib.cgraph.mem__c; +import gen.lib.cgraph.node__c; +import gen.lib.cgraph.utils__c; +import gen.lib.common.arrows__c; +import gen.lib.common.shapes__c; +import gen.lib.dotgen.dotsplines__c; +import h.Agdesc_s; +import h.Agedge_s; +import h.Agiddisc_s; +import h.Agmemdisc_s; +import h.Agnode_s; +import h.Agraph_s; +import h.Agsubnode_s; +import h.Agsym_s; +import h.Agtag_s; +import h._dt_s; +import h._dtdisc_s; +import h._dtmethod_s; +import h.arrowname_t; +import h.arrowtype_t; +import h.boxf; +import h.deque_t; +import h.elist; +import h.nlist_t; +import h.pointf; +import h.pointnlink_t; +import h.polygon_t; +import h.port; +import h.refstr_t; +import h.shape_desc; +import h.shape_functions; +import h.splineInfo; +import h.textfont_t; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; + +public class Z { + + private static final ThreadLocal> instances2 = new ThreadLocal>(); + + public final Map all = new HashMap(); + + public final __struct__<_dtmethod_s> _Dttree = __struct__.from(_dtmethod_s.class); + public final _dtmethod_s Dttree = _Dttree.amp(); + + public final __struct__<_dtdisc_s> AgDataDictDisc = __struct__.from(_dtdisc_s.class); + + public final __struct__ ProtoDesc = __struct__.from(Agdesc_s.class); + + public Agraph_s ProtoGraph; + + public final __struct__ Tag = __struct__.from(Agtag_s.class); + + public final __struct__<_dtdisc_s> Ag_mainedge_seq_disc = __struct__.from(_dtdisc_s.class); + + public final __struct__<_dtdisc_s> Ag_subedge_seq_disc = __struct__.from(_dtdisc_s.class); + + public final __struct__<_dtdisc_s> Ag_subedge_id_disc = __struct__.from(_dtdisc_s.class); + + public final __struct__<_dtdisc_s> Ag_subgraph_id_disc = __struct__.from(_dtdisc_s.class); + + public final __struct__ AgIdDisc = __struct__.from(Agiddisc_s.class); + + public final __struct__ AgMemDisc = __struct__.from(Agmemdisc_s.class); + + public final __struct__<_dtdisc_s> Ag_subnode_id_disc = __struct__.from(_dtdisc_s.class); + + public final __struct__<_dtdisc_s> Ag_subnode_seq_disc = __struct__.from(_dtdisc_s.class); + + public int HTML_BIT; + + public int CNT_BITS; + + public final __struct__<_dtdisc_s> Refstrdisc = __struct__.from(_dtdisc_s.class); + + public _dt_s Refdict_default; + + public Agraph_s Ag_dictop_G; + + public final __array_of_struct__ Arrowsynonyms = __array_of_struct__.malloc(arrowname_t.class, 1); + + public final __array_of_struct__ Arrownames = __array_of_struct__.malloc(arrowname_t.class, 3); + + public final __array_of_struct__ Arrowmods = __array_of_struct__.malloc(arrowname_t.class, 1); + + public final __array_of_struct__ Arrowtypes = __array_of_struct__.malloc(arrowtype_t.class, 9); + + public __ptr__ Show_boxes; + + public int CL_type; + + public boolean Concentrate; + + public int MaxIter; + + public int State; + + public int EdgeLabelsDone; + + public double Initial_dist; + + public Agsym_s G_activepencolor, G_activefillcolor, G_selectedpencolor, G_selectedfillcolor, G_visitedpencolor, + G_visitedfillcolor, G_deletedpencolor, G_deletedfillcolor, G_ordering, G_peripheries, G_penwidth, + G_gradientangle, G_margin; + + public Agsym_s N_height, N_width, N_shape, N_color, N_fillcolor, N_activepencolor, N_activefillcolor, + N_selectedpencolor, N_selectedfillcolor, N_visitedpencolor, N_visitedfillcolor, N_deletedpencolor, + N_deletedfillcolor, N_fontsize, N_fontname, N_fontcolor, N_margin, N_label, N_xlabel, N_nojustify, N_style, + N_showboxes, N_sides, N_peripheries, N_ordering, N_orientation, N_skew, N_distortion, N_fixed, + N_imagescale, N_layer, N_group, N_comment, N_vertices, N_z, N_penwidth, N_gradientangle; + + public Agsym_s E_weight, E_minlen, E_color, E_fillcolor, E_activepencolor, E_activefillcolor, E_selectedpencolor, + E_selectedfillcolor, E_visitedpencolor, E_visitedfillcolor, E_deletedpencolor, E_deletedfillcolor, + E_fontsize, E_fontname, E_fontcolor, E_label, E_xlabel, E_dir, E_style, E_decorate, E_showboxes, E_arrowsz, + E_constr, E_layer, E_comment, E_label_float, E_samehead, E_sametail, E_arrowhead, E_arrowtail, E_headlabel, + E_taillabel, E_labelfontsize, E_labelfontname, E_labelfontcolor, E_labeldistance, E_labelangle, E_tailclip, + E_headclip, E_penwidth; + + public int N_nodes, N_edges; + + public int Minrank, Maxrank; + + public int S_i; + + public int Search_size; + + public final __struct__ Tree_node = __struct__.from(nlist_t.class); + + public final __struct__ Tree_edge = __struct__.from(elist.class); + + public Agedge_s Enter; + + public int Low, Lim, Slack; + + public int Rankdir; + + public boolean Flip; + + public final __struct__ Offset = __struct__.from(pointf.class); + + public int nedges, nboxes; + + public int routeinit; + + public __ptr__ ps; + + public int maxpn; + + public __ptr__ polypoints; + + public int polypointn; + + public __ptr__ edges; + + public int edgen; + + public __array_of_struct__ boxes = __array_of_struct__.malloc(boxf.class, 1000); + + public int MinQuit; + + public double Convergence; + + public Agraph_s Root; + + public int GlobalMinRank, GlobalMaxRank; + + public boolean ReMincross; + + public __ptr__ TE_list; + + public __ptr__ TI_list; + + public Agnode_s Last_node_decomp; + public Agnode_s Last_node_rank; + + public char Cmark; + + public int trin, tril; + + public __ptr__ tris; + + public int pnln, pnll; + + public pointnlink_t pnls; + public __ptr__ pnlps; + + public final __struct__ Center = __struct__.from(port.class); + + public final __struct__ p_ellipse = __struct__.from(polygon_t.class); + + public final __struct__ p_box = __struct__.from(polygon_t.class); + + public final __struct__ poly_fns = __struct__.from(shape_functions.class); + + public __ptr__ tnas; + public int tnan; + + public final shape_desc Shapes[] = { __Shapes__("box", poly_fns.amp(), p_box.amp()), + __Shapes__("ellipse", poly_fns.amp(), p_ellipse.amp()), __Shapes__(null, null, null) }; + + public final __struct__<_dtdisc_s> Ag_mainedge_id_disc = __struct__.from(_dtdisc_s.class); + + public final __struct__ dq = __struct__.from(deque_t.class); + + public final __struct__ Agdirected = __struct__.from(Agdesc_s.class); + + public final __struct__ sinfo = __struct__.from(splineInfo.class); + + public Agnode_s lastn; /* last node argument */ + public polygon_t poly; + public int last, outp, sides; + public final __struct__ O = __struct__.from(pointf.class); /* point (0,0) */ + public pointf vertex; + public double xsize, ysize, scalex, scaley, box_URx, box_URy; + + public final __struct__ tf = __struct__.from(textfont_t.class); + + public __ptr__ pointfs; + public __ptr__ pointfs2; + public int numpts; + public int numpts2; + + public __ptr__ Count; + public int C; + + public int ctr = 1; + + public __struct__ template = __struct__.from(Agsubnode_s.class); + public __struct__ dummy = __struct__.from(Agnode_s.class); + + public Agraph_s G_ns; + public Agraph_s G_decomp; + + public int opl; + + public int opn_route; + public int opn_shortest; + + public __ptr__ ops_route; + public __ptr__ ops_shortest; + + public static Z _() { + return instances2.get().peekFirst(); + } + + public static void open() { + LinkedList list = instances2.get(); + if (list == null) { + list = new LinkedList(); + instances2.set(list); + } + list.addFirst(new Z()); + } + + public static void close() { + instances2.get().removeFirst(); + } + + private shape_desc __Shapes__(String s, shape_functions shape_functions, polygon_t polygon) { + shape_desc result = (shape_desc) Memory.malloc(shape_desc.class); + result.setPtr("name", s == null ? null : new CString(s)); + result.setPtr("fns", shape_functions); + result.setPtr("polygon", polygon); + return result; + } + + private final static __struct__ createArrowtypes(int type, double lenfact, CFunction function) { + final __struct__ result = __struct__.from(arrowtype_t.class); + result.setInt("type", type); + result.setDouble("lenfact", lenfact); + result.setPtr("gen", function); + return result; + } + + private final static __struct__ create_arrowname_t(String name, int type) { + final __struct__ result = __struct__.from(arrowname_t.class); + result.setCString("name", name == null ? null : new CString(name)); + result.setInt("type", type); + return result; + } + + private Z() { + + _Dttree.setPtr("searchf", function(dttree__c.class, "dttree")); + _Dttree.setInt("type", 0000004); + + AgDataDictDisc.setInt("key", OFFSET.create(Agsym_s.class, "name").toInt()); + AgDataDictDisc.setInt("size", -1); + AgDataDictDisc.setInt("link", OFFSET.create(Agsym_s.class, "link").toInt()); + AgDataDictDisc.setPtr("makef", null); + AgDataDictDisc.setPtr("freef", function(attr__c.class, "freesym")); + AgDataDictDisc.setPtr("comparf", null); + AgDataDictDisc.setPtr("hashf", null); + + ProtoDesc.setInt("directed", 1); + ProtoDesc.setInt("strict", 0); + ProtoDesc.setInt("no_loop", 1); + ProtoDesc.setInt("maingraph", 0); + ProtoDesc.setInt("flatlock", 1); + ProtoDesc.setInt("no_write", 1); + + Ag_mainedge_seq_disc.setInt("key", 0); + Ag_mainedge_seq_disc.setInt("size", 0); + Ag_mainedge_seq_disc.setInt("link", OFFSET.create(Agedge_s.class, "seq_link").toInt()); // seq_link is the third + // field in Agedge_t + Ag_mainedge_seq_disc.setPtr("makef", null); + Ag_mainedge_seq_disc.setPtr("freef", null); + Ag_mainedge_seq_disc.setPtr("comparf", function(edge__c.class, "agedgeseqcmpf")); + Ag_mainedge_seq_disc.setPtr("hashf", null); + Ag_mainedge_seq_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_mainedge_seq_disc.setPtr("eventf", null); + + Ag_subedge_seq_disc.setInt("key", 0); + Ag_subedge_seq_disc.setInt("size", 0); + Ag_subedge_seq_disc.setInt("link", -1); + Ag_subedge_seq_disc.setPtr("makef", null); + Ag_subedge_seq_disc.setPtr("freef", null); + Ag_subedge_seq_disc.setPtr("comparf", function(edge__c.class, "agedgeseqcmpf")); + Ag_subedge_seq_disc.setPtr("hashf", null); + Ag_subedge_seq_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_subedge_seq_disc.setPtr("eventf", null); + + Ag_subedge_id_disc.setInt("key", 0); + Ag_subedge_id_disc.setInt("size", 0); + Ag_subedge_id_disc.setInt("link", -1); + Ag_subedge_id_disc.setPtr("makef", null); + Ag_subedge_id_disc.setPtr("freef", null); + Ag_subedge_id_disc.setPtr("comparf", function(edge__c.class, "agedgeidcmpf")); + Ag_subedge_id_disc.setPtr("hashf", null); + Ag_subedge_id_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_subedge_id_disc.setPtr("eventf", null); + + Ag_subgraph_id_disc.setInt("key", 0); + Ag_subgraph_id_disc.setInt("size", 0); + Ag_subgraph_id_disc.setInt("link", OFFSET.create(Agraph_s.class, "link").toInt()); // link is the third field in + // Agraph_t + Ag_subgraph_id_disc.setPtr("makef", null); + Ag_subgraph_id_disc.setPtr("freef", null); + Ag_subgraph_id_disc.setPtr("comparf", function(graph__c.class, "agraphidcmpf")); + Ag_subgraph_id_disc.setPtr("hashf", null); + Ag_subgraph_id_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_subgraph_id_disc.setPtr("eventf", null); + + AgIdDisc.setPtr("open", function(id__c.class, "idopen")); + AgIdDisc.setPtr("map", function(id__c.class, "idmap")); + AgIdDisc.setPtr("alloc", function(id__c.class, "idalloc")); + AgIdDisc.setPtr("free", function(id__c.class, "idfree")); + AgIdDisc.setPtr("print", function(id__c.class, "idprint")); + AgIdDisc.setPtr("close", function(id__c.class, "idclose")); + AgIdDisc.setPtr("idregister", function(id__c.class, "idregister")); + + AgMemDisc.setPtr("open", function(mem__c.class, "memopen")); + AgMemDisc.setPtr("alloc", function(mem__c.class, "memalloc")); + AgMemDisc.setPtr("resize", function(mem__c.class, "memresize")); + AgMemDisc.setPtr("free", function(mem__c.class, "memfree")); + AgMemDisc.setPtr("close", null); + + Ag_subnode_id_disc.setInt("key", 0); + Ag_subnode_id_disc.setInt("size", 0); + Ag_subnode_id_disc.setInt("link", OFFSET.create(Agsubnode_s.class, "id_link").toInt()); // id_link is the second + // field in Agsubnode_t + Ag_subnode_id_disc.setPtr("makef", null); + Ag_subnode_id_disc.setPtr("freef", null); + Ag_subnode_id_disc.setPtr("comparf", function(node__c.class, "agsubnodeidcmpf")); + Ag_subnode_id_disc.setPtr("hashf", null); + Ag_subnode_id_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_subnode_id_disc.setPtr("eventf", null); + + Ag_subnode_seq_disc.setInt("key", 0); + Ag_subnode_seq_disc.setInt("size", 0); + Ag_subnode_seq_disc.setInt("link", OFFSET.create(Agsubnode_s.class, "seq_link").toInt()); // link is the first + // field in + // Agsubnode_t + Ag_subnode_seq_disc.setPtr("makef", null); + Ag_subnode_seq_disc.setPtr("freef", function(node__c.class, "free_subnode")); + Ag_subnode_seq_disc.setPtr("comparf", function(node__c.class, "agsubnodeseqcmpf")); + Ag_subnode_seq_disc.setPtr("hashf", null); + Ag_subnode_seq_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_subnode_seq_disc.setPtr("eventf", null); + + Refstrdisc.setInt("key", OFFSET.create(refstr_t.class, "s").toInt()); // *s is the third field in refstr_t + Refstrdisc.setInt("size", -1); + Refstrdisc.setInt("link", 0); + Refstrdisc.setPtr("makef", null); + Refstrdisc.setPtr("freef", function(utils__c.class, "agdictobjfree")); + Refstrdisc.setPtr("comparf", null); + Refstrdisc.setPtr("hashf", null); + Refstrdisc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Refstrdisc.setPtr("eventf", null); + + Arrowsynonyms.plus(0).setStruct(create_arrowname_t(null, 0)); + + Arrownames.plus(0).setStruct(create_arrowname_t("normal", 1)); + Arrownames.plus(1).setStruct(create_arrowname_t("none", 8)); + Arrownames.plus(2).setStruct(create_arrowname_t(null, 0)); + + Arrowmods.plus(0).setStruct(create_arrowname_t(null, 0)); + + Arrowtypes.plus(0).setStruct(createArrowtypes(1, 1.0, function(arrows__c.class, "arrow_type_normal"))); + Arrowtypes.plus(1).setStruct(createArrowtypes(2, 1.0, function(arrows__c.class, "arrow_type_crow"))); + Arrowtypes.plus(2).setStruct(createArrowtypes(3, 0.5, function(arrows__c.class, "arrow_type_tee"))); + Arrowtypes.plus(3).setStruct(createArrowtypes(4, 1.0, function(arrows__c.class, "arrow_type_box"))); + Arrowtypes.plus(4).setStruct(createArrowtypes(5, 1.2, function(arrows__c.class, "arrow_type_diamond"))); + Arrowtypes.plus(5).setStruct(createArrowtypes(6, 0.8, function(arrows__c.class, "arrow_type_dot"))); + Arrowtypes.plus(6).setStruct(createArrowtypes(7, 1.0, function(arrows__c.class, "arrow_type_curve"))); + Arrowtypes.plus(7).setStruct(createArrowtypes(8, 0.5, function(arrows__c.class, "arrow_type_gap"))); + Arrowtypes.plus(8).setStruct(createArrowtypes(0, 0.0, null)); + + Center.getStruct("p").setDouble("x", 0); + Center.getStruct("p").setDouble("y", 0); + Center.setDouble("theta", -1); + Center.setPtr("bp", null); + Center.setInt("defined", 0); + Center.setInt("constrained", 0); + Center.setInt("clip", 1); + Center.setInt("dyna", 0); + Center.setInt("order", 0); + Center.setInt("side", 0); + + p_ellipse.setInt("regular", 0); + p_ellipse.setInt("peripheries", 1); + p_ellipse.setInt("sides", 1); + p_ellipse.setDouble("orientation", 0.); + p_ellipse.setDouble("distortion", 0.); + p_ellipse.setDouble("skew", 0.); + + p_box.setInt("regular", 0); + p_box.setInt("peripheries", 1); + p_box.setInt("sides", 4); + p_box.setDouble("orientation", 0.); + p_box.setDouble("distortion", 0.); + p_box.setDouble("skew", 0.); + + poly_fns.setPtr("initfn", function(shapes__c.class, "poly_init")); + poly_fns.setPtr("freefn", function(shapes__c.class, "poly_free")); + poly_fns.setPtr("portfn", function(shapes__c.class, "poly_port")); + poly_fns.setPtr("insidefn", function(shapes__c.class, "poly_inside")); + poly_fns.setPtr("pboxfn", function(shapes__c.class, "poly_path")); + poly_fns.setPtr("codefn", function(shapes__c.class, "poly_gencode")); + + Ag_mainedge_id_disc.setInt("key", 0); + Ag_mainedge_id_disc.setInt("size", 0); + Ag_mainedge_id_disc.setInt("link", OFFSET.create(Agedge_s.class, "id_link").toInt()); // id_link is the second + // field in Agedge_t + Ag_mainedge_id_disc.setPtr("makef", null); + Ag_mainedge_id_disc.setPtr("freef", null); + Ag_mainedge_id_disc.setPtr("comparf", function(edge__c.class, "agedgeidcmpf")); + Ag_mainedge_id_disc.setPtr("hashf", null); + Ag_mainedge_id_disc.setPtr("memoryf", function(utils__c.class, "agdictobjmem")); + Ag_mainedge_id_disc.setPtr("eventf", null); + + Agdirected.setInt("directed", 1); + Agdirected.setInt("strict", 0); + Agdirected.setInt("no_loop", 0); + Agdirected.setInt("maingraph", 1); + + sinfo.setPtr("swapEnds", function(dotsplines__c.class, "swap_ends_p")); + sinfo.setPtr("splineMerge", function(dotsplines__c.class, "spline_merge")); + + } + +} Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/access.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/access.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/activity.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/activity.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/actor.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/actor.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/aggregation.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/aggregation.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/application-collaboration.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/application-collaboration.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/application-component.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/application-component.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/application-data-object.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/application-data-object.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/application-function.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/application-function.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/application-interaction.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/application-interaction.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/application-interface.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/application-interface.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/application-service.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/application-service.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/assessment-filled.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/assessment-filled.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/assessment.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/assessment.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/assignment.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/assignment.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/association.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/association.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-activity.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-activity.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-actor.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-actor.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-collaboration.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-collaboration.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-contract.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-contract.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-event.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-event.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-function.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-function.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-interaction.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-interaction.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-interface.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-interface.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-location.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-location.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-meaning.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-meaning.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-object.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-object.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-process.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-process.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-product.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-product.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-representation.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-representation.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-role.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-role.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-service.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-service.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/business-value.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/business-value.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/collaboration.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/collaboration.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/communication-path.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/communication-path.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/component.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/component.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/composition.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/composition.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/constraint-filled.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/constraint-filled.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/constraint.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/constraint.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/contract.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/contract.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/deliverable-filled.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/deliverable-filled.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/device.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/device.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/driver-filled.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/driver-filled.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/driver.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/driver.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/event.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/event.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/flow.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/flow.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/function.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/function.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/gap-filled.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/gap-filled.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/gap.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/gap.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/goal-filled.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/goal-filled.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/goal.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/goal.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/influence.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/influence.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/interaction.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/interaction.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/interface.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/interface.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/interface-required.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/interface-required.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/interface-symmetric.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/interface-symmetric.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/junction-and.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/junction-and.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/junction-or.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/junction-or.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/junction.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/junction.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/location.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/location.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/meaning.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/meaning.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/network.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/network.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/node.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/node.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/object.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/object.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/plateau.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/plateau.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/principle-filled.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/principle-filled.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/principle.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/principle.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/process.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/process.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/product.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/product.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/realisation.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/realisation.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/representation.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/representation.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/requirement-filled.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/requirement-filled.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/requirement.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/requirement.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/role.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/role.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/service.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/service.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/specialisation.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/specialisation.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/stakeholder-filled.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/stakeholder-filled.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/system-software.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/system-software.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/technology-artifact.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/technology-artifact.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/technology-communication-path.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/technology-communication-path.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/technology-device.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/technology-device.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/technology-function.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/technology-function.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/technology-infra-interface.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/technology-infra-interface.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/technology-infra-service.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/technology-infra-service.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/technology-network.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/technology-network.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/technology-node.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/technology-node.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/technology-system-software.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/technology-system-software.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/triggering.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/triggering.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/used-by.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/used-by.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/value.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/value.png differ Binary files /tmp/tmpZM3iiL/RhcnhfKn5Z/plantuml-8024/src/sprites/archimate/workpackage-filled.png and /tmp/tmpZM3iiL/_vWWRWuwnL/plantuml-8039/src/sprites/archimate/workpackage-filled.png differ